Repair trace overlaps using geometry-sized clearance detours - #130
Draft
Abse2001 wants to merge 7 commits into
Draft
Repair trace overlaps using geometry-sized clearance detours#130Abse2001 wants to merge 7 commits into
Abse2001 wants to merge 7 commits into
Conversation
Benchmark This PRRun benchmarks by commenting on this PR: Everything after Examples:
Any PR whose title contains |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When an overlap remains after force-based repair, fixed-distance doglegs can miss the same conflict at another size or across several trace vertices. Add a geometry-sized same-layer detour that uses the blocker extent, trace width, and declared clearance. It covers trace-to-pad, trace-to-plated-hole, trace-to-trace, and trace-to-via conflicts, including rotated obstacles.
The detour grows across same-layer vertices while preserving ports, layer transitions, through-obstacle spans, and other routes. It is attempted after existing candidates stall, without a low-DRC-count gate. Each stalled error is attempted once until the routes change. Acceptance requires fewer full-board DRC errors and no new DRC error identities. The repair does not change fabrication constraints or remove requested routes.
This is broader overlap handling, not a guarantee that every board is routable. Crowded multi-obstacle paths and terminals without a legal escape can remain unresolved. The original SRJ33 sample051 has not been demonstrated clean under its original fabrication rules. The existing explicitly permitted small-via test remains a separate configuration test.
Validation on
c51c84722093839f9f603d26f5a78e8f05c9af91:@tscircuit/checks@0.0.163version, added only as a test dependency.The existing terminal-via relocation overlap fix is retained, with its permission and drill-fit checks. This PR is stacked on the exact Repair03 dependency pinned by the autorouter baseline (
5f6c9af547dbb70c8948227011e1769b5dfa16a5).Applied autorouter PR: tscircuit/tscircuit-autorouter#2545. Full applied tests and unchanged-input same-machine benchmarks are pending. No tests, builds, installs, or solver benchmarks run locally.