No way to define paste-only apertures (windowpane) over a continuous pad; <solderpaste> is typed but has no renderer
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 58
- Forks
- 203
- Avg merge
- 7h 39m
- Merged PRs (30d)
- 286
Description
Requirement
I need to print a deliberate solder bump on a large continuous copper pad (a circular pressure-contact pad, roughly Ø20 mm) via the assembly house's paste stencil. The standard way to express this in a PCB design is a windowpane / segmented paste pattern: multiple small paste apertures over one uninterrupted copper region, so the stencil is generated with webbing and the paste doesn't ball up.
As far as I can tell, current tscircuit cannot express any paste geometry that is independent of a pad's own copper shape:
solderPasteMarginon a pad only produces a single paste region that is a margin-scaled copy of that same pad's shape — it cannot segment.@tscircuit/propsexports types for a standalone<solderpaste>primitive, but the installed@tscircuit/core(0.0.1759, via tscircuit CLI ~0.0.2422) appears to have no renderer/registration for it — placing it emits no paste geometry in circuit JSON.- The workaround of building the pad as a grid of small
<smtpad>s (each with its own paste) is not acceptable here, because it fragments the real copper — this pad must remain one continuous conductor (it is a mechanical/electrical contact surface).
Ask
Either of these would solve it:
- Implement the renderer for the already-typed
<solderpaste>primitive (paste-only aperture at arbitrary position/shape/layer), or - Add per-pad support for an explicit paste aperture list (shapes/offsets relative to the pad) so a single pad can carry a segmented paste pattern.
For KiCad interchange, these should land on the appropriate paste layer (F.Paste/B.Paste) — KiCad models the same concept as "aperture pads" (paste/mask only, no copper).
Note on screenshots
Sorry — I can't attach screenshots or the actual design files; the board this came up on is under NDA. The description above is self-contained, and I'm happy to answer questions or test a fix against a minimal repro (<smtpad shape="circle" ... solderPasteMargin> vs a <solderpaste> sibling).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing registration and rendering for the typed primitive in @tscircuit/core, comparing it with the existing and solderPasteMargin behavior. Use the minimal repro described in the issue and circuit JSON to verify that segmented geometry appears on F.Paste or B.Paste while the underlying copper remains one continuous pad.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100