Repository navigation
fix: complete 3D models for STEP export, add board STEP/STL/GLB exports - #63
Merged
Merged
Conversation
…plete
The board's STEP export was missing the MCU, USB-C, side buttons, RGB LED,
accelerometer, charger, thumbstick and XBee. KiCad 10's stock HRO TYPE-C-31-M-12
and Alps SKRTLAE010 footprints reference models KiCad 10 doesn't ship, the ESP32
pointed at an old ${KICAD8_3RD_PARTY} path, and the custom footprints had none.
- Add PCB/libraries/3dmodels/ with EasyEDA models (USB-C, SKRTLAE010, QMA6100P,
ALPS RKJXV1224005 as a stand-in for the GuliKit stick) and a generated XBee 3 TH
envelope model built from Digi's mechanical drawing; README records sources.
- scripts/set_3d_models.py writes the model paths/offsets/rotations into the board
and the project footprint libraries; --check fails on any missing/unresolvable
model. Offsets were derived by matching model pins/pegs to footprint pads and
verified by per-part kicad-cli STEP exports.
- scripts/build_placeholder_3d_models.py regenerates the XBee placeholder.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
For enclosure (shell) design. snips_controller.step is the plain STEP for modelling; snips_controller_color.step and snips_controller.glb add solder mask (blue), silkscreen and copper for viewing. STL is geometry only. The colored exports were made from a copy with the stackup solder mask color set to "#0B2F8CD4": KiCad's STEP exporter gives the mask no color when the stackup uses the named color "Blue". Also includes the project-file STEP export path and designator list that KiCad updated during the export. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
The board's STEP export was missing the ESP32 module, USB-C port, the six side buttons, the RGB LED, the accelerometer, the charger IC, and the DNP thumbstick and XBee sockets. This PR adds working models for all of them, plus a check so it can't silently regress, and adds exports of the assembled board for designing the enclosure.
Why they were missing
USB_C_Receptacle_HRO_TYPE-C-31-M-12andSW_Push_1P1T-MP_NO_Horizontal_Alps_SKRTLAE010footprints point at model files that KiCad 10 doesn't install. They aren't in upstream kicad-packages3D either.${KICAD8_3RD_PARTY}path.Changes
PCB/libraries/3dmodels/: models downloaded from EasyEDA/LCSC for the USB-C (C165948), SKRTLAE010 (C110293), QMA6100P (C2887190) and ALPS RKJXV1224005 (C146170, standing in for the GuliKit stick), plus a generated XBee 3 TH outline model. The README records where each came from and how it was aligned.scripts/set_3d_models.py: sets the model paths, offsets and rotations in the board and the project footprint libraries.--checkfails on any missing or unresolvable model: 13 problems before this PR, 0 after.scripts/build_placeholder_3d_models.py: builds the XBee 3 TH model from Digi's mechanical drawing (HRM 90001543).(model ...)blocks. Pads, copper and footprint positions are untouched.PCB/:snips_controller.step(for modelling), plussnips_controller_color.stepandsnips_controller.glb(blue solder mask, silkscreen and copper, for viewing), andsnips_controller.stl.How it was checked
kicad-cliand its bounding box compared with its pads in board coordinates. All 13 designators are present in the full export.kicad-cli pcb render, top and bottom views.Caveats / follow-ups
SK6812MINI-E-012has none, so in 3D the LED goes into the board. Not confirmed against the manufacturer's datasheet: the PDF inPCB/datasheets/is actually for the 5050 SK6812. Worth confirming before the rev2 layout is final.scripts/set_3d_models.pyif that happens.#0B2F8CD4; the board file itself was not changed.🤖 Generated with Claude Code