ワンクリックで
enclosure-design
Design and modify the OpenSCAD parametric enclosure for the handheld console
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Design and modify the OpenSCAD parametric enclosure for the handheld console
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
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-design |
| model | claude-haiku-4-5-20251001 |
| description | Design and modify the OpenSCAD parametric enclosure for the handheld console |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Write, Edit, Grep, Glob |
| argument-hint | <component-or-feature> (e.g. "dpad", "battery", "usb-c", "shoulder-buttons") |
Design and modify the parametric 3D enclosure for the ESP32 Emu Turbo handheld console.
Argument (optional): Component or feature to modify (e.g., dpad, battery, usb-c, shoulder-buttons).
The enclosure is a landscape handheld (170 x 85 x 25 mm) with:
| File | Purpose |
|---|---|
hardware/enclosure/enclosure.scad | Main enclosure (top/bottom shell, PCB, assembly, views) |
hardware/enclosure/modules/buttons.scad | Button cutout modules (D-pad, ABXY diamond, pill, shoulder) |
hardware/enclosure/modules/display.scad | Display viewport cutout and bezel |
hardware/enclosure/modules/ports.scad | USB-C, SD card, power switch, speaker grille cutouts |
hardware/enclosure/modules/battery.scad | Battery compartment, wire channel |
body_w=170, body_h=85, body_d=25 — Overall dimensionswall=2.0 — Wall thicknesscorner_r=8 — Corner radiustop_d=10, bot_d=15 — Shell splitdisp_w=86.4, disp_h=64.8 — Active areadisp_pcb_w=98, disp_pcb_h=72 — Module PCB sizedpad_x=-62, dpad_y=5 — D-pad centerabxy_x=62, abxy_y=5, abxy_spacing=10 — ABXY diamond center + spacingss_x=dpad_x, ss_y=-17 — Start/Select positionmenu_x=62, menu_y=-25 — Menu buttonusbc_x=0 — USB-C (centered)sd_x=60 — SD card (right)pwr_sw_x=-40 — Power switch (left)spk_x=-50, spk_y=-15 — Speaker grille (back)pcb_w=160, pcb_h=75, pcb_d=1.6, pcb_corner_r=6pcb_z=bot_d (15mm) — PCB sits on screw boss tops at shell splitbat_w=65, bat_h=55, bat_d=9.5 — LiPo dimensionsZ=0: Bottom shell outer face
Z=2: Bottom shell floor (wall=2)
Z=2-11.5: Battery (9.5mm)
Z=12-15: ESP32 module zone (3mm below PCB)
Z=15: PCB bottom face / shell split line
Z=16.6: PCB top face (1.6mm board)
Z=15-23: Top shell interior (8mm)
Z=23: Top shell ceiling
Z=25: Top shell outer face
enc_x = kicad_x - 80, enc_y = 37.5 - kicad_y
(KiCad origin is top-left of board outline at (0,0), board center at (80, 37.5))Each button cap has 3 parts:
Parameters: btn_flange_extra=3mm, btn_flange_h=0.8mm, btn_stem_d=2.0mm, btn_stem_h=2.0mm
The part variable selects the view:
assembly — Complete assembly (default)top / bottom — Individual shellsexploded — Exploded view with all componentscross_section — XZ plane cut at Y=0fit_check — Bottom shell open-top with internalsbattery_fit — Bottom shell + battery onlypcb — PCB model onlycase_top / case_bottom — Shells for STL exportpart_dpad, part_btn_a, etc. — Individual button capshardware/enclosure/enclosure.scad — Main enclosure designhardware/enclosure/modules/*.scad — Component modulesscripts/render-enclosure.sh — Render pipeline (7 views)website/static/img/renders/ — Output renderswebsite/docs/enclosure.md — Design documentation