Prove the 45-degree win: 29% shorter, DRC-clean, exact clearance load-bearing
Add diagonal_win.dsn: a 45-degree pin-to-pin net with a keepout placed inside the diagonal's bounding box but clear of the true thin copper. Orthogonal routing connects it with a Manhattan-length staircase (1600000); diagonal routing replaces that with a single 45-degree trace at the ideal hypotenuse length (1131371) -- a 29% reduction -- DRC-clean via the search tree and via an independent reconstruction of the emitted 45-degree copper's clearance octagon. test_exact_clearance_is_load_bearing shows the keepout overlaps the coarse bounding box but not the exact octagon, so the exact clearance (not the box) is what lets the diagonal route. Determinism, endpoints-on-pads, valid SES, and diagonal-off-equals-orthogonal (additive, over four fixtures) are covered.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
(pcb "diagonal_win.dsn"
|
||||
(parser
|
||||
(string_quote ")
|
||||
(space_in_quoted_tokens on)
|
||||
(host_cad "freeroute-test")
|
||||
(host_version "1.0")
|
||||
)
|
||||
(resolution um 10)
|
||||
(unit um)
|
||||
(structure
|
||||
(layer F.Cu
|
||||
(type signal)
|
||||
(property
|
||||
(index 0)
|
||||
)
|
||||
)
|
||||
(boundary
|
||||
(path pcb 0 0 0 120000 0 120000 -120000 0 -120000 0 0)
|
||||
)
|
||||
(keepout "corner"
|
||||
(rect F.Cu 22000 -98000 40000 -80000)
|
||||
)
|
||||
(rule
|
||||
(width 2000)
|
||||
(clearance 2000)
|
||||
)
|
||||
)
|
||||
(library
|
||||
(padstack Rect_Pad
|
||||
(shape (rect F.Cu -1000 -1000 1000 1000))
|
||||
(attach off)
|
||||
)
|
||||
(image PAD
|
||||
(pin Rect_Pad 1 0 0)
|
||||
)
|
||||
)
|
||||
(placement
|
||||
(component PAD
|
||||
(place A 20000 -20000 front 0)
|
||||
(place B 100000 -100000 front 0)
|
||||
)
|
||||
)
|
||||
(network
|
||||
(net NET_A
|
||||
(pins A-1 B-1)
|
||||
)
|
||||
(class default
|
||||
(rule
|
||||
(width 2000)
|
||||
(clearance 2000)
|
||||
)
|
||||
)
|
||||
)
|
||||
(wiring
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user