Skip to content

Exit Corner Offset Dogleg

A passing line runs through a section on a per-line bundle offset, then exits and bypasses a higher row to climb to a far target. The onward run keeps the line's offset over the row-level traverse so it leaves the exit port straight, with the single level change a clean riser at the far gap rather than a one-offset-step jog at the exit corner.

Mermaid source
examples/topologies/exit_corner_offset_dogleg.mmd
%% Issue #939: a flow-aligned exit whose in-section run carries a per-line
%% bundle offset must keep that offset on the onward run, not step back to the
%% bare port-marker row right after the exit corner. `mid` receives two lines
%% from `src`, so the passing line `l2` runs through `mid` on an offset track;
%% it then exits and bypasses `blocker` (a higher row) to climb to `dst`. The
%% onward run must leave the exit port straight (stay on l2's offset track over
%% the row-level traverse), with the single level change a clean riser at the
%% far gap -- no ~one-offset-step vertical jog at the exit corner.
%%metro title: Exit-corner offset dogleg (#939)
%%metro style: dark
%%metro line: l1 | L1 | #f5c542
%%metro line: l2 | L2 | #e63946
%%metro grid: src | 0,0
%%metro grid: mid | 1,1
%%metro grid: blocker | 2,0
%%metro grid: dst | 3,0
graph LR
subgraph src [Src]
a1[A1]
end
subgraph mid [Mid]
m1[Mid]
end
subgraph blocker [Blocker]
b1[Blk]
end
subgraph dst [Dst]
d1[Dst]
end
a1 -->|l1| m1
a1 -->|l2| m1
m1 -->|l2| d1
a1 -->|l1| b1
b1 -->|l1| d1
CLI command
Terminal window
nf-metro render examples/topologies/exit_corner_offset_dogleg.mmd -o exit_corner_offset_dogleg.svg
Rendered map
Exit-corner offset dogleg (#939) 1 2 3 4 A1 Mid Blk Dst L1 L2 created with nf-metro v1.1.0+dev