Preserve outer-layer routing access through empty inner layers - #146
Open
AnasSarkiz wants to merge 2 commits into
Open
Preserve outer-layer routing access through empty inner layers#146AnasSarkiz wants to merge 2 commits into
AnasSarkiz wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Pedometer bug report 103 has an inner ground plane alongside an empty inner layer. Outer-layer containment merging required copper-pour coverage on every intermediate layer, so it discarded otherwise valid top-to-bottom routing access.
Allow transit through empty inner layers or copper pours while continuing to reject solid inner obstacles. Merge the candidate with the supporting region's available layers, preserving existing inner-to-outer transitions. Keep one rectangle when support layers are uniform, and split at support boundaries when they differ. Remaining pieces retain their original layer sets, overlapping promotions are rejected, and pieces smaller than a via are left unpromoted.
This also corrects the initial version of this PR: separating a
[2,3]support into independent layer regions preserved area but removed inner2-to-bottom access. The new regression failed on that version (transition area 0 instead of 4) and passes on1a39ad6. Tests cover mixed support layers, solid inner obstacles, shared outer regions, unchanged input, non-overlapping layer coverage, and preservation of layer area and existing transition area across four boards.Validation: 77 tests passed, one existing skipped example; build, type check, and format check passed. Updated four affected SVG snapshots and inspected the resulting geometry.
Integration remains unresolved: with the corrected mesh, autorouter #2548 exhausts default-effort port-point routing before high density. An isolated run with the original rectdiff pin also exhausts that stage. The earlier full pedometer solve used this PR's defective first revision and is not current validation. Do not treat this dependency's passing tests as evidence that the pedometer fix is complete.
Companion PRs: tscircuit/tiny-hypergraph#185 and tscircuit/tscircuit-autorouter#2548. Follow-up to tscircuit/tscircuit-autorouter#2494.