The ortho edge implementation does not handle ports (see Regarding graphviz's "orthogonal" edge routing - #2 by steveroush, [Dot] orthogonal edges in dot (#352) · Issues · graphviz / graphviz · GitLab, or spline = ortho produces unexpected output with ports (#1415) · Issues · graphviz / graphviz · GitLab)
Here is a link (Graphviz: fixOrtho - a work-around to allow ortho edges to connect to ports · GitHub) to a gvpr program that will often allow ortho edges to connect to ports.
It is easy, but not trivial to use:
- run
dot -Gsplines=true myFile.gv > myFile.dot
(Use any layout engine. This will position all the nodes and ports) - run
gvpr -cf fixOrtho.gvpr myFile.dot >myfileFixed.dot
(This adds nodes and edges and alters existing edges) - run
neato -n -Tpng myFileFixed.dot >myfileFixed.png
(Creates viewable image)
Note: the commands above can also be run as a single pipeline.
This is modestly tested software (surprisingly complex). Please try it and comment on the gist page. If/when it settles down, it can become part of the Graphviz package it that is desired, though I consider this a temporary “fix”.
Here are three versions of the ports.gv file that is included in the Graphviz source. (The red edge components are just to show the changes)