I'm trying to draw this block diagram

Block diagram

and I'm not finding any similar diagram or any tutorial to know how to do it. Could anybody help me?

I have done this:

%Flowcharting techniques for easy maintenance
%Author: Brent Longborough

>=triangle 60,              % Nice arrows; your taste may be different
start chain=going below,    % General flow is top-to-bottom
node distance=6mm and 60mm, % Global setup of box spacing
every join/.style={norm},   % Default linetype for connecting boxes

base/.style={draw, on chain, on grid, align=center, minimum height=5ex},
base2/.style={draw, on chain, on grid, align=center, minimum height=7ex},
pric/.style={base2, rectangle, text width=6em},
proc/.style={base, rectangle, text width=18em},
pruc/.style={base, circle, text width=3em},
test/.style={base, diamond, aspect=1.5, text width=8em},
term/.style={proc, rounded corners},

coord/.style={coordinate, on chain, on grid, node distance=6mm and 25mm},
nmark/.style={draw, cyan, circle, font={\sffamily\bfseries}},

norm/.style={->, draw, lcnorm},
norm/.style={->, draw, lcnorm},
free/.style={->, draw, lcfree},
cong/.style={->, draw, lccong},

\node [pruc, join] (p0) {};

\node [term, join]      {};
\node [term, join]      {};
\node [term, join] (t0)     {};
\node [pric] (t1)      {};
\node [test] (t2) {};

 \node [term, join=by free] {};
  \node [pruc, join] (p0) {};
 \draw [<-,lcnorm] (t0) -- (t1);
 \draw [<-,lcnorm] (t1) -- (t2);
 % =================================================

enter image description here

But I don't know how to draw the intermediate boxes that are locates on the left and on the right.

Thanks in advance.


is it enough close to what you like to draw?

enter image description here

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, chains, shapes}
  suppress join/.code={\def\tikz@after@path{}},

node distance = 4mm and -4mm,   % Global setup of box spacing
  start chain = going above,    % General flow is top-to-bottom
   LA/.style = {Stealth-},
 base/.style = {draw,
                minimum size=3ex, inner sep=2mm, align=center,
                on chain, join=by LA},
 sbox/.style = {base, rectangle, text width=6em},
 wbox/.style = {base, rectangle, text width=18em},
 term/.style = {sbox, rectangle, rounded corners},
 test/.style = {base, diamond, aspect=1.5,
                inner xsep=0mm, text width=8em},
% from bottom to top
\node (n1)  [term]          {};
\node (n2)  [wbox]          {};
\node (n3)  [test]          {};
\node (n4)  [sbox, suppress join,
             minimum height=5ex]                        {};
% left column
\node (n5a) [sbox, suppress join, above  left=of n4]    {};
\node (n6a) [sbox]          {};
\node (n7a) [sbox]          {};
% right column
\node (n5b) [sbox, suppress join, above right=of n4]    {};
\node (n6b) [sbox]          {};
\node (n7b) [sbox]          {};
% top column
\node (n8)  [wbox, suppress join, above=of n7a.north -| n4]   {};
\node (n9)  [wbox]          {};
\node (n10) [wbox]          {};
\node (n11) [term]          {};
\draw[LA]   (n4) edge (n3)
            (n8) edge (n4);
\draw[LA]   (n7a) edge (n7a |- n8.south)  (n3) -| (n5a);
\draw[LA]   (n7b) edge (n7b |- n8.south)  (n3) -| (n5b);
| improve this answer | |
  • what you will retouch? my answer? :-) – Zarko Aug 21 '17 at 18:51
  • The ratio width/height of the rectangles ;) – kim_8 Aug 21 '17 at 19:21
  • i consider width of nodes, but heights i estimate to be to big, so i reduce it (to obtain smaller image). anyway, i get impression, that answer help you, so you can accept it :) – Zarko Aug 21 '17 at 19:56
  • but you still not accept answer :). newer mind, i can leave without your acceptance ... – Zarko Aug 23 '17 at 11:56

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.