0

I want to connect some diagrams from different size and to change the style of the line:

enter image description here

The red-circled line I would like to make it a dotted line and to conect it from the side of both blocks, not from the side of one block to the bottom of the other. The same with the dark-circled line. Here is the code for that figure:

\documentclass{article}
\usepackage[utf8]{inputenc} 
\usepackage{tikz}  
\usepackage{mathtools}  
\usepackage{amsmath}
\usepackage{amssymb} 
\usetikzlibrary{shapes,arrows, positioning, calc} 

% \usetikzlibrary{shapes,arrows}    

% \usetikzlibrary{positioning}  
% \usepackage{subfig} 
% \usepackage{geometry} 
\usepackage{float}

\title{Diagramas} 
\author{}
\date{}

% Modificaciones 
\tikzstyle{block} = [draw, fill=white, rectangle, 
    minimum height=3em, minimum width=6em   ]

\begin{document}

\maketitle 

\begin{figure}[H]\centering 
\hspace*{-3cm}
\begin{tikzpicture}[auto, node distance=2cm,>=latex',anchor=center]
%Declara los nodos 

% Producto final
\node[block, fill = gray!50] (system) {$\begin{array}{cc} \text{\textbf{Sistema de}}\\ \text{\textbf{Bola Balanza}} \end{array}$};       

% Nivel 7
\node[block, below of = system, fill = gray!50, left = 5cm] (dis_soft){$\begin{array}{cc} \text{\textbf{Diseño}}\\ \text{\textbf{del software}} \end{array}$}; 

\node[block, below of = system, fill = gray!50, right = 4cm] (model){\textbf{Modelado}};

% Nivel 6
\node[block, below of = dis_soft, fill = gray!50, left = -1.65cm] (prom_control){$\begin{array}{cc} \text{\textbf{Programación}}\\ \text{\textbf{del controlador}} \end{array}$};  

% Nivel 5 
\node[block, below of = prom_control, fill = gray!50, left = 1.65cm] (prom_plant){$\begin{array}{cc} \text{\textbf{Programación}}\\ \text{\textbf{de la planta}} \end{array}$};  

\node[block, below of = prom_control, fill = gray!50, right = 1cm] (dis_control){$\begin{array}{cc} \text{\textbf{Diseño}}\\ \text{\textbf{del controlador}} \end{array}$};

% Nivel 4 
\node[block, below of = dis_control, fill = gray!50, right = 7.3cm] (ident_sis){$\begin{array}{cc} \text{\textbf{Identificación}}\\ \text{\textbf{del sistema}} \end{array}$}; 

% Nivel 3 
\node[block, below of = ident_sis, fill = gray!50, left = 3.8cm] (plant_dis){$\begin{array}{cc} \text{\textbf{Diseño de }}\\ \text{\textbf{la planta}} \end{array}$}; 

% Nivel 2 
\node[block, below of = plant_dis, fill = gray!50, right = 3.8cm] (analisis_mat){$\begin{array}{cc} \text{\textbf{Análisis}}\\ \text{\textbf{matemático}} \end{array}$}; 

\node[block, below of = plant_dis, fill = gray!50, left = 3.8cm] (dis_cad){$\begin{array}{cc} \text{\textbf{Diseño}}\\ \text{\textbf{de CAD}} \end{array}$}; 

\node[block, below of = plant_dis, fill = gray!50, left = 7cm] (prom_elem){$\begin{array}{cc} \text{\textbf{Programación de}}\\ \text{\textbf{cada elemento}} \end{array}$};

% Nivel 1 
\node[block, below of = dis_cad, fill = gray!50, left = -1.05cm] (mat){\textbf{Materiales}};

%Ahora conectamos los bloques  
% Nivel 7
\draw[-] (system) -| (dis_soft);
\draw[-] (system) -| (model);   
% Nivel 6
\draw[-] (dis_soft) -- (prom_control); 
% Nivel 5
\draw[-] (prom_control) -| (dis_control); 
\draw[-] (dis_soft) -| (prom_plant);  
\draw[-] (dis_control) -| (model);
% Nivel 4 
\draw[-] (model) -- (ident_sis);    
% Nivel 3
\draw[-] (system) -- (plant_dis); 
\draw[-] (plant_dis) -| (prom_plant); 
\draw[-] (plant_dis) -| (ident_sis); 
% Nivel 2 
\draw[-] (model) -| (analisis_mat); 
\draw[-] (dis_cad) -| (plant_dis); 
% Nivel 1 
\draw[-] (mat) -- (dis_cad); 
\draw[-] (mat) -| (analisis_mat);


\end{tikzpicture} 
\caption{Estructura de todo el sistema}
\end{figure} 

I appreciate the help.

2

Like this?

enter image description here

\documentclass[border=3.14]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
                positioning}
\usepackage{amsmath}

\begin{document}
    \begin{tikzpicture}[
            > = Latex,
node distance = 8 mm and 4 mm, 
 block/.style = {draw, fill = gray!50, font=\bfseries, align=center,
                 minimum height=3em, minimum width=7em} %<---
                        ]
%Declara los nodos
% Producto final
    \begin{scope}[nodes=block]
\node (system)      {Sistema de\\ Bola Balanza};
% Nivel 7
\node (dis_soft)    [below  left=11mm and 22mm of system] {Diseño\\ del software};
\node  (model)      [below right=11mm and 22mm of system] {Modelado};
% Nivel 6
\node (prom_cntrl)  [below=of dis_soft]     {Programación\\ del controlador};
% Nivel 5
\node (prom_plant)  [below left =of prom_cntrl.south]   {Programación\\ de la planta};
\node (dis_control) [below right=of prom_cntrl.south]   {Diseño\\ del controlador};
% Nivel 4
\node (ident_sis)   [below=of model |- prom_cntrl.south]     {Identificación\\ del sistema};
% Nivel 3
\node (plant_dis)   [below=of dis_control.south -| system]     {Diseño de\\ la planta};
% Nivel 2
\node (analisis_mat)[below=of plant_dis -| ident_sis]  {Análisis\\ matemático};
% Nivel 1
\node (dis_cad)     [below left = of plant_dis]         {Diseño\\ de CAD};
\node (prom_elem)   [left= of dis_cad]                  {Programación de\\ cada elemento};
% Nivel 0
\node (mat)         [below= of dis_cad]                 {Materiales};
    \end{scope}

% Ahora conectamos los bloques
\draw   (system)    -| (dis_soft) 
        (system)    -| (model) 
        (system)    -- (plant_dis)
%       
        (dis_soft)  -| (prom_plant)
        (dis_soft)  -- (prom_cntrl)
        (model.east) -- + (1,0) |- (analisis_mat)
% 
        (prom_cntrl) -| (dis_control)
%
        (prom_plant) |- (plant_dis) -| (ident_sis)
        (plant_dis)  |- (dis_cad)   -- (mat) -| (analisis_mat);
\draw[densely dotted]
        (model.west) -- ++ (-1,0) |- ([yshift=+1ex] dis_control) %<---
        (analisis_mat.west) -- ++ (-1,0) |- ([yshift=-1em] dis_control); %<---
    \end{tikzpicture}
\end{document}

As you can notice, the image code is quite shorter by use defined node style and used `positioning syntax at modes placements.

1

Will this work for you? I also took the liberty to simplify some things for an easier handling.

\documentclass{article}
\usepackage[utf8]{inputenc} 
\usepackage{tikz}  
\usepackage{mathtools}  
\usepackage{amsmath}
\usepackage{amssymb} 
\usetikzlibrary{shapes,arrows, positioning, calc} 
\usepackage{float}

\title{Diagramas} 

% Modificaciones 
\tikzstyle{block} = [draw, fill=gray!50, rectangle, minimum height=3em, minimum width=6em, font=\bfseries, align=center]

\begin{document}
    
    \maketitle 
    
    \begin{figure}[H]\centering 
        \hspace*{-3cm}
        \begin{tikzpicture}[auto, node distance=2cm,>=latex',anchor=center]
        %Declara los nodos 
        
        % Producto final
        \node[block] (system) {Sistema de\\Bola Balanza};
        
        % Nivel 7
        \node[block, below of = system, left = 5cm] (dis_soft){Diseño\\del software};
        \node[block, below of = system, right = 4cm] (model){Modelado};
        
        % Nivel 6
        \node[block, below of = dis_soft] (prom_control){Programación\\del controlador};
        
        % Nivel 5 
        \node[block, below of = prom_control, left = 1.65cm] (prom_plant){Programación\\de la planta};
        
        \node[block, below of = prom_control, right = 1cm] (dis_control){Diseño\\del controlador};
        
        % Nivel 4 
        \node[block, below of = model, below = 4cm] (ident_sis){Identificación\\del sistema};
        
        % Nivel 3 
        \node[block, below of = system, below = 8cm] (plant_dis){Diseño de\\la planta}; 
        
        % Nivel 2 
        \node[block, below of = plant_dis, right = 3.8cm] (analisis_mat){Análisis\\matemático}; 
        \node[block, below of = plant_dis, left = 3.8cm] (dis_cad){Diseño\\de CAD};
        \node[block, below of = plant_dis, left = 7cm] (prom_elem){Programación de\\cada elemento};
        
        % Nivel 1 
        \node[block, below of = dis_cad, left = -1.05cm] (mat){Materiales};
        
        %Ahora conectamos los bloques  
        % Nivel 7
        \draw[-] (system) -| (dis_soft);
        \draw[-] (system) -| (model);   
        % Nivel 6
        \draw[-] (dis_soft) -- (prom_control); 
        % Nivel 5
        \draw[-] (prom_control) -| (dis_control); 
        \draw[-] (dis_soft) -| (prom_plant);
        \path[-] (dis_control) -| node[pos=.35, name=A] {} (model); % new one
        \draw[dashed] (dis_control) -- (A.center);
        \draw[dashed] (model.west) -| (A.center);
        \draw[dashed] (ident_sis.west) -| (A.center);
        % Nivel 4 
        \draw[-] (model) -- (ident_sis);    
        % Nivel 3
        \draw[-] (system) -- (plant_dis); 
        \draw[-] (plant_dis) -| (prom_plant); 
        \draw[-] (plant_dis) -| (ident_sis); 
        % Nivel 2 
        \coordinate[right of=ident_sis] (B);    % new one
        \draw[dashed] (model.east) -| (B.center);
        \draw[dashed] (analisis_mat) -| (B.center); 
        \draw[-] (dis_cad) -| (plant_dis); 
        % Nivel 1 
        \draw[-] (mat) -- (dis_cad); 
        \draw[-] (mat) -| (analisis_mat);
        
        
        \end{tikzpicture} 
        \caption{Estructura de todo el sistema}
    \end{figure} 
\end{document} 

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.