Add standalone solder paste apertures - #3661
Open
dyoung7293 wants to merge 9 commits into
Open
Conversation
Part of the tested implementation for tscircuit#3577. Prepared with Codex AI assistance.
Part of the tested implementation for tscircuit#3577. Prepared with Codex AI assistance.
|
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.
Implements the existing
<solderpaste>primitive so a continuous copper pad can have multiple independent stencil apertures. The windowpane regression contains nine 3 mm square paste openings over one 20 mm diameter copper pad.Fixes #3577
The renderer registers rectangle/circle JSX elements, emits independent
pcb_solder_pasterecords, preserves footprint placement and board-side transforms, and moves the apertures during PCB layout. No new dependency or schema change is required. Usage documentation includes suppressing an SMT pad's default paste aperture.Validation: 17 focused solderpaste/SMT-pad tests passed (261 assertions); the three new tests passed again from the published branch (178 assertions). Full TypeScript check and package build passed. Two PCB snapshots were rendered and visually inspected. The original implementation fails the windowpane test with an unsupported component error. Tests compare rectangular paste perimeters to independently emitted copper geometry at 0, 90, 180, 270 and 37 degrees on both board sides.
This PR covers core Circuit JSON generation. The local windowpane example was also run through current exporters: Gerber output contains nine rectangular paste flashes over one continuous copper contact. The current KiCad exporter ignores independent paste records and recreates a full-pad paste layer, so KiCad support needs a separate downstream fix. Native application opening and physical stencil fabrication have not been validated.
Implementation, tests, and this description were prepared with Codex AI assistance.