Mit
coord/.style={coordinate, on grid, node distance=6mm and 20mm},
hast Du eingestellt, dass mit
\node [coord, below=of c] (hilfps) {};
das Zentrum der Node `hilfps` 6mm unterhalb der Mitte des Nodes `c` liegt und mit
\node [coord, below=of hilfps] (hilfps2) {};
das Zentrum der Node `hilfps2` 6mm unterhalb der Mitte des Nodes `hilfps` und damit 12mm unterhalb des Zentrums von `c` ist.
Für andere Nodes in der `tikzpicture` Umgebung hast Du aber
node distance=20mm and 30mm, % Vorgaben für Abstände zwischen Nodes in dieser Zeichnung
eingestellt. Damit liegt die Koordinate `hilfps2` noch oberhalb der Zentren von `d` und `e`, die von den Zentren `a` bzw. `b` 2cm entfernt sind.
Eine Möglichkeit wäre die Koordinate `hilfps` direkt auf der Höhe von `hilf` zu platzieren:
\node [coord, below=of e] (hilf) {};% Hilfskoordinate für definierten Zusatzabstand
\node [coord] (hilfps) at (hilf-|c) {};
\node [coord, below= of hilfps] (hilfps2) {};
Wenn Nodes und Koordinaten relativ zueinander positioniert werden, kann man die Reihenfolge von deren Definition naturgemäß nicht beliebig ändern.
Im folgenden Bild ist sind die Position von `hilfps2` Hilfspunkte mit einem roten Kreuz farbigen Kreuzen markiert:
![alt text][1]
Code:
Den Code habe ich nur ein klein wenig umsortiert:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta,calc}
\colorlet{lcfree}{green}
\colorlet{lcnorm}{blue}
\colorlet{lccong}{red}
% globale Settings
\tikzset{
base/.style={draw, on grid, align=center, minimum height=4ex},
proc/.style={base, rectangle, text width=10em},
var/.style={base, circle, text width=4ex},
%% Stil für Hilfskoordinaten
coord/.style={coordinate, on grid, node distance=6mm and 20mm},
% Stile für Verbindungslinien
norm/.style={->, draw, lcnorm},
free/.style={->, draw, lcfree},
cong/.style={->, draw, lccong},
% Stil für Kreuzungen von Pfaden
jump/.style args={(#1) to (#2) over (#3) by #4}{
insert path={
let \p1=($(#1)-(#3)$), \n1={veclen(\x1,\y1)},
\n2={atan2(\y1,\x1)}, \n3={abs(#4)}, \n4={#4>0 ?180:-180} in
(#1) -- ($(#1)!\n1-\n3!(#3)$)
arc (\n2:\n2+\n4:\n3) -- (#2)
}
}
}
\begin{document}
\begin{tikzpicture}[%
>={Triangle[angle=60:5pt]},% Form der Pfeilspitzen
node distance=20mm and 30mm, % Vorgaben für Abstände zwischen Nodes in dieser Zeichnung
every join/.style={norm}, % Default linetype for connecting boxes
]
\begin{scope}[nodes=var]
\node (0) {0};
\node [right=of 0] (a) {a};
\node [right=of a] (b) {b};
\node [right=of b] (c) {c};
\node [below=of a] (d) {d};
\node [below=of b] (e) {e};
\end{scope}
\node [coord, below=of \begin{scope}[nodes=coord]
\node [below=of e] (hilf) {};% Hilfskoordinate für definierten Zusatzabstand
\node [coord] (hilfps) at (hilf-|c) {};
\node [coord, below= of (hilf-|c){};
\node [below=of hilfps] (hilfps2) {};
\node[red] at(hilfps2){x};% nur zum Markieren der Position von Koordinate hilfps2
\end{scope}
\begin{scope}[nodes=proc]
\node [below=of hilf] (f) {f};
\node [below=of f] (g) {ggg};
\node (h) at (0|-g) {hhh};
\node [coord, right=12mm of h.north] (hilfps3){};
\end{scope}
% farbiges Markieren der Hilfspunkte
\foreach \coord/\color in {hilf/blue,hilfps/orange,hilfps2/red,hilfps3/black}
\node[\color]at(\coord){x};
\begin{scope}[every path/.append style=free]
\foreach \start/\end in
{a/d,b/e,e/f,0/h,f/g,h/g}
\path(\start)--(\end);
\path (c)|-(f);
\path (d)|-(f);
\path (hilfps2)-|(hilfps3);
%über Kreuz
\path (a) -- coordinate(bd-ae) (e);
\path [jump=(b) to (d) over (bd-ae) by 6pt];
\end{scope}
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/tw_flowchart1.pnghttp://texwelt.de/wissen/upfiles/tw_flowchart3.png