0

I have following format,

enter image description here

And i wish to use that format repeatedly in my document but the label and text in those diagram will vary each time. I searched and found about \newcommand but not able to integrate the diagram in that code. And how to implement the arguments.

code for this diagram is,

\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt

\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1] %uncomment if require: \path (0,300); %set diagram left start at 0, and has height of 300

%Rounded Rect [id:dp6745139746294115] \draw (130,112) .. controls (130,107.58) and (133.58,104) .. (138,104) -- (192,104) .. controls (196.42,104) and (200,107.58) .. (200,112) -- (200,136) .. controls (200,140.42) and (196.42,144) .. (192,144) -- (138,144) .. controls (133.58,144) and (130,140.42) .. (130,136) -- cycle ; %Rounded Rect [id:dp2346081594268501] \draw (443,113) .. controls (443,108.58) and (446.58,105) .. (451,105) -- (505,105) .. controls (509.42,105) and (513,108.58) .. (513,113) -- (513,137) .. controls (513,141.42) and (509.42,145) .. (505,145) -- (451,145) .. controls (446.58,145) and (443,141.42) .. (443,137) -- cycle ; %Rounded Rect [id:dp4863390492430908] \draw (280,182) .. controls (280,177.58) and (283.58,174) .. (288,174) -- (342,174) .. controls (346.42,174) and (350,177.58) .. (350,182) -- (350,206) .. controls (350,210.42) and (346.42,214) .. (342,214) -- (288,214) .. controls (283.58,214) and (280,210.42) .. (280,206) -- cycle ; %Rounded Rect [id:dp06235258287956036] \draw (124.5,254) .. controls (124.5,249.58) and (128.08,246) .. (132.5,246) -- (186.5,246) .. controls (190.92,246) and (194.5,249.58) .. (194.5,254) -- (194.5,278) .. controls (194.5,282.42) and (190.92,286) .. (186.5,286) -- (132.5,286) .. controls (128.08,286) and (124.5,282.42) .. (124.5,278) -- cycle ; %Rounded Rect [id:dp8014260453796969] \draw (439,256) .. controls (439,251.58) and (442.58,248) .. (447,248) -- (501,248) .. controls (505.42,248) and (509,251.58) .. (509,256) -- (509,280) .. controls (509,284.42) and (505.42,288) .. (501,288) -- (447,288) .. controls (442.58,288) and (439,284.42) .. (439,280) -- cycle ; %Straight Lines [id:da7375457222039625] \draw (200.5,143) -- (278.2,181.12) ; \draw [shift={(280,182)}, rotate = 206.13] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ; %Straight Lines [id:da18412385263751285] \draw (443.5,142) -- (351.84,181.21) ; \draw [shift={(350,182)}, rotate = 336.84000000000003] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ; %Straight Lines [id:da7861587969961661] \draw (354.5,213) -- (432.2,251.12) ; \draw [shift={(434,252)}, rotate = 206.13] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ; %Straight Lines [id:da6425514120743219] \draw (288,214) -- (196.34,253.21) ; \draw [shift={(194.5,254)}, rotate = 336.84000000000003] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ; %Shape: Circle [id:dp04946914310372019] \draw (134,72) .. controls (134,58.19) and (145.19,47) .. (159,47) .. controls (172.81,47) and (184,58.19) .. (184,72) .. controls (184,85.81) and (172.81,97) .. (159,97) .. controls (145.19,97) and (134,85.81) .. (134,72) -- cycle ; %Shape: Circle [id:dp5073664110852545] \draw (451,75) .. controls (451,61.19) and (462.19,50) .. (476,50) .. controls (489.81,50) and (501,61.19) .. (501,75) .. controls (501,88.81) and (489.81,100) .. (476,100) .. controls (462.19,100) and (451,88.81) .. (451,75) -- cycle ;

% Text Node \draw (138,27) node [anchor=north west][inner sep=0.75pt] [align=left] {label1}; % Text Node \draw (450,26) node [anchor=north west][inner sep=0.75pt] [align=left] {label2};

\end{tikzpicture}

Any guidance is appreciated.

Mercurial
  • 160
  • https://tex.stackexchange.com/a/308974/197451 -- is of great help -- besides this we need to rework your entire code -- its too lengthy -- have a look here -- https://tex.stackexchange.com/a/561247/197451 – js bibra Sep 04 '20 at 13:39

1 Answers1

4

I took the liberty to rework the code of your diagram and to define a pic environment. Feel free to modify all the dimensions in the styles defined to suit your needs.

\documentclass{standalone}

\usepackage{tikz} \usetikzlibrary{positioning} \usetikzlibrary{arrows.meta}

\tikzset{% myrectangles/.style = {% rectangle, draw, minimum width = 2.5cm, minimum height = 1cm, rounded corners = 2.5mm }, mycircle/.style = {% circle, draw, minimum size = 1.5cm
}, pics/mydiagram/.style n args = {9}{% code = {% \node[myrectangles] (center) at (0, 0) {#1}; \node[% myrectangles, above left = 1cm and 1.5cm of center ] (north west) {#2}; \node[% myrectangles, above right = 1cm and 1.5cm of center ] (north east) {#3}; \node[% myrectangles, below left = 1cm and 1.5cm of center ] (south west) {#4}; \node[% myrectangles, below right = 1cm and 1.5cm of center ] (south east) {#5};

        \draw[-Latex] (north west.south east) -- (center.north west);
        \draw[-Latex] (north east.south west) -- (center.north east);
        \draw[Latex-] (south west.north east) -- (center.south west);
        \draw[Latex-] (south east.north west) -- (center.south east);

        \node[%
            mycircle,%
            above = 0.2cm of north west,
            label = above:{#8}
        ] {#6}; 
        \node[%
            mycircle,%
            above = 0.2cm of north east,
            label = above:{#9}
        ] {#7}; 
    }
}

}

\begin{document}

\begin{tikzpicture}

    \draw pic {mydiagram = {text 1}{text 2}{text 3}{text 4}{text 5}{text 6}{text 7}{text 8}{text 9}};

\end{tikzpicture}   

\end{document}

which yields:

enter image description here

If there are nodes that you're sure will never contain any text, you can remove the arguments in the definition.

KersouMan
  • 1,850
  • 3
  • 13
  • 15