with one click
enclosure-export
Export OpenSCAD enclosure parts to STL files for 3D printing
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Export OpenSCAD enclosure parts to STL files for 3D printing
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Full PCB verification loop using local kicad-cli (DRC + 3D render + gerbers)
Create a new Claude Code skill for this project. Use when you need to add a new skill, improve an existing skill, or convert a workflow into a reusable skill.
Verifies that every PCB pad-to-net assignment matches the manufacturer datasheet pin specifications. Use when changing board.py/routing.py/footprints.py, after GPIO remapping, before releases, or when adding new components. Automated guard against wiring errors like unconnected VBUS, wrong pin assignments, or missing GND connections.
Design intent adversary — cross-checks GPIO, nets, power chains, signal paths across firmware/schematic/PCB/datasheet sources to find lost connections and inconsistencies
Analyze a DFM report and fix all issues in the PCB generation scripts
Run DFM guard tests and add new regression tests after fixing PCB issues
| name | enclosure-export |
| model | claude-haiku-4-5-20251001 |
| description | Export OpenSCAD enclosure parts to STL files for 3D printing |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Glob |
| argument-hint | ["all|top|bottom|buttons|dpad|abxy"] |
Export individual enclosure parts to STL files for FDM/SLA 3D printing.
Argument (optional): all (default), or specific part name.
Docker must be running with the OpenSCAD image built:
cd /Users/pierrejonnycau/Documents/WORKS/esp32-emu-turbo
docker compose build openscad
cd /Users/pierrejonnycau/Documents/WORKS/esp32-emu-turbo
mkdir -p hardware/enclosure/stl
# Top shell (display side)
docker compose run --rm openscad \
-o /output/case_top.stl \
-D 'part="case_top"' \
/project/enclosure.scad
# Bottom shell (battery side)
docker compose run --rm openscad \
-o /output/case_bottom.stl \
-D 'part="case_bottom"' \
/project/enclosure.scad
# D-pad cap
docker compose run --rm openscad \
-o /output/dpad.stl \
-D 'part="part_dpad"' \
/project/enclosure.scad
# ABXY button caps (4 individual)
for btn in a b x y; do
docker compose run --rm openscad \
-o "/output/btn_${btn}.stl" \
-D "part=\"part_btn_${btn}\"" \
/project/enclosure.scad
done
# Start, Menu, Select caps
for cap in start menu select; do
docker compose run --rm openscad \
-o "/output/${cap}.stl" \
-D "part=\"part_${cap}\"" \
/project/enclosure.scad
done
# Shoulder buttons
docker compose run --rm openscad \
-o /output/shoulder_l.stl \
-D 'part="part_shoulder_l"' \
/project/enclosure.scad
docker compose run --rm openscad \
-o /output/shoulder_r.stl \
-D 'part="part_shoulder_r"' \
/project/enclosure.scad
docker compose run --rm openscad \
-o /output/<part_name>.stl \
-D 'part="<part_selector>"' \
/project/enclosure.scad
| Part | Selector | Print Notes |
|---|---|---|
| Top shell | case_top | Print upside-down (flat face down) |
| Bottom shell | case_bottom | Print as-is (flat face down) |
| D-pad | part_dpad | Print cap-face down |
| Button A | part_btn_a | Print cap-face down |
| Button B | part_btn_b | Print cap-face down |
| Button X | part_btn_x | Print cap-face down |
| Button Y | part_btn_y | Print cap-face down |
| Start | part_start | Print cap-face down |
| Menu | part_menu | Print cap-face down |
| Select | part_select | Print cap-face down |
| Shoulder L | part_shoulder_l | Print cap-face down |
| Shoulder R | part_shoulder_r | Print cap-face down |
ls -la website/static/img/renders/*.stl 2>/dev/null || ls -la hardware/enclosure/stl/*.stl 2>/dev/null
hardware/enclosure/enclosure.scad — Main enclosure (all part selectors)hardware/enclosure/modules/*.scad — Component modulesdocker-compose.yml — OpenSCAD Docker servicewebsite/docs/enclosure.md — Design documentation