← Commit history

compose-vias: record the Fusion layer verdict and John's layer contract (barrels only; Board/Pads own default-off groups)

John Lauer ·f1263b1024 ·1mo ago ·parent 97c8642
2 files changed +7−2
README.md+3−1
@@ -98,7 +98,9 @@ curl -X POST "$SVC/bake" -F [email protected] -F [email protected] # bake transforms i curl -X POST "$SVC/compose-vias" -F [email protected] -F [email protected]   # chip + named heatsink-via barrels, two toggleable solids ``` -`/compose-vias` composes a chip STEP with a via layer into one STEP whose root assembly holds two named components: `Adom.Chip` (the input geometry, untouched) and `Adom.HeatsinkVias` (copper barrels at each via centre, 0.3 mm hole and 0.6 mm OD by default, from z=0 down through a 1.6 mm board). Fusion 360 imports them as separately toggleable bodies. This is a **review artefact** (wiki widgets, chipsmith, "what this part needs" views), not the STEP that ships in an EDA library: vias are board features the EDA tool creates from the footprint's through pads, so a via body inside the package STEP would duplicate board geometry and assume a stack-up (the response reports `purpose: review-artifact` and the assumed thickness). The one editing layer that legitimately stays in a library STEP is the laser etch, because it is part of the physical package. The vias JSON is `{"vias":[{"x":-1.8,"y":-1.8}, ...]}` in footprint mm (Y-up, origin = exposed-pad centre) with optional `drill_mm`, `barrel_od_mm`, `board_thickness_mm`, `chip_name`, `vias_name`, `root_name`; adom-footprint emits this file for every heatsink footprint.+`/compose-vias` composes a chip STEP with a via layer into one STEP whose root assembly holds two named components: `Adom.Chip` (the input geometry, untouched) and `Adom.HeatsinkVias` (copper barrels at each via centre, 0.3 mm hole and 0.6 mm OD by default, from z=0 down through a 1.6 mm board). Fusion 360 imports them as separately toggleable bodies. This is a **review artefact** (wiki widgets, chipsmith, "what this part needs" views), not the STEP that ships in an EDA library: vias are board features the EDA tool creates from the footprint's through pads, so a via body inside the package STEP would duplicate board geometry and assume a stack-up (the response reports `purpose: review-artifact` and the assumed thickness). The one editing layer that legitimately stays in a library STEP is the laser etch, because it is part of the physical package.++**Layer contract** (proven in Fusion 360, 2026-08-30): each named solid group imports as its own occurrence with its own eye toggle (`Adom.Chip:1`, `Adom.HeatsinkVias:1` with 16 bodies), but a hidden state inside one STEP is *not* honoured when Fusion places the package on a 3D board, everything re-shows. So the toolchain uses two files, never one: the library STEP stays chip-only plus laser etch, and composed layers are review artefacts. `Adom.HeatsinkVias` contains via barrels only. Board stock and pads, if ever emitted, get their own groups (`Adom.Board`, `Adom.Pads`) that default off, never folded into the vias or chip groups: Fusion's own dashed pad outlines already prove the footprint lines up with the chip, which is more useful than rendered pads. The vias JSON is `{"vias":[{"x":-1.8,"y":-1.8}, ...]}` in footprint mm (Y-up, origin = exposed-pad centre) with optional `drill_mm`, `barrel_od_mm`, `board_thickness_mm`, `chip_name`, `vias_name`, `root_name`; adom-footprint emits this file for every heatsink footprint.  The service does not just read STEP files, it writes and edits them: generating chip bodies and footprint geometry from JSON specs, baking transforms, and embossing text. Output of every one of these is a downloadable STEP. 
SKILL.md+4−1
@@ -84,7 +84,10 @@ MPN into the die: embossed STEP + rendered iso), `/create-chip` + `/create-footprint` (JSON spec → STEP), `/bake` (bake transforms into geometry), `/compose-vias` (chip STEP + via JSON → STEP with named solids Adom.Chip + Adom.HeatsinkVias; a REVIEW artefact for widgets/chipsmith, never-the library STEP: vias are board features the EDA tool makes from the footprint),+the library STEP: vias are board features the EDA tool makes from the footprint,+and Fusion re-shows hidden bodies when placing a package on a board. Layer+contract: HeatsinkVias = barrels only; board stock/pads, if ever emitted, go in+their own default-off groups Adom.Board / Adom.Pads), `/step-meta` (names/structure/units). All async: 202 + job_id, poll `/jobs/{id}`, download `/jobs/{id}/result`. POSTs need `X-Client` + `X-Job-Name` headers.