Export OpenSCAD enclosure parts to STL files for 3D printing
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