Communitygithub.com

leewsimpson/claudesk

Export the enclosure's printable parts (STL/3MF) and CAD (STEP/F3D) from Fusion 360. Use when the user wants files to print, slice, share, or archive a design revision.

What is claudesk?

claudesk is a Claude Code agent skill that export the enclosure's printable parts (STL/3MF) and CAD (STEP/F3D) from Fusion 360. Use when the user wants files to print, slice, share, or archive a design revision.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/leewsimpson/claudesk/tree/HEAD/3d-model/.claude/skills/fusion-export

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Exporting

Only export a build that passed fusion-inspect. Ghost bodies in Refs are never exported.

Run with the fusion-build runner:

import os
enc = wslib.find_occurrence('Enclosure').component
out = os.path.join(wslib.REPO, 'exports')
down = {'Shell': (0, -1, 0), 'Cap': (0, -1, 0)}   # model direction that faces the print bed
for b in enc.bRepBodies:
    wslib.export_for_print(b, os.path.join(out, b.name.lower() + '.stl'), down[b.name])
wslib.export_component(enc, os.path.join(wslib.REPO, 'cad', 'enclosure.step'))
  • export_for_print writes STLs already in print orientation: the part sits on z=0 and is centred in XY, so the user doesn't have to rotate anything in the slicer. When you add a new body, add its bed-facing direction to down.
    • Shell: rear opening down (v2). The rear half leans out at most about 41°, and the front shoulder leans in like the reference's top shoulder, so the lattice needs no supports. The tilted base-flat floor plate is 30° off vertical. The glass lip is the last layers, a 1.55 mm inward overhang, so check it in the slicer preview.
    • Cap: outer face down. The posts stand vertical.
    • Any new geometry must print in these orientations without supports. Keep downward-facing surfaces at ≥45°.
  • Shell lattice ribs are 0.65 mm (Siri-style knit), so the slicer spends much of the print laying gap fill in the ribs. After slicing in Orca (relative E), strip it: python scripts/strip_gapfill.py --keep-bottom 16 --keep-top 6 shell.gcode. The keep zones leave gap fill alone in the rear collar band and chamfer cone (first ~16 mm, rear down) and the front rim plus glass-pocket tube (last ~6 mm). The tilted floor plate runs the full height, so check that it still fills solid. Recompute them from derived() if the collar or margin parameters change. Inspect the result in the slicer preview first.
  • Gotcha: exportManager silently writes nothing for a body that was just added to a component (native or proxy). Export the component instead, which is what export_for_print does, and assert the file exists afterwards.
  • exports/ holds printables and is gitignored. cad/enclosure.step is committed as the revision's CAD snapshot.
  • Done when the files exist on disk and pass a sanity check: 0 non-manifold edges, min z = 0, and volume matches the body. List them for the user with their sizes.
    • cad/enclosure.step with the v2 lattice is about 29 MB. One export right after a long check run came out at only 256 KB with no error, so compare its size with git cat-file -s HEAD:cad/enclosure.step before committing it. Cause found 2026-10-04: STEP export skips hidden bodies, and the Shell had been hidden in the GUI. wslib.export_component now shows hidden bodies for the export and re-hides them afterwards.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Related Skills