← ClaudeAtlas

bambu-3mflisted

Build 3D objects and export them as 3MF files that Bambu Studio opens with the right colors on the right parts — one closed solid per color, each bound to its own filament and extruder, at test / good / extrafine quality. Use when asked to create, model, or export a 3D object for printing, to write or fix a 3MF (multicolor or single color), when colors land on the wrong filament or come in grey in Bambu Studio / PrusaSlicer, when a slicer shows "The 3mf file has invalid config", when a Color Count or Import Model dialog is clustering colors, or when working with AMS / multi-material assignment.
alexjfalcao/bambu-3mf-skill · ★ 0 · Data & Documents · score 73
Install: claude install-skill alexjfalcao/bambu-3mf-skill
# Bambu-compatible 3MF A 3MF that a slicer colors correctly is not "a mesh with colors". It is a small project: one closed solid per color, a part→extruder table, and a filament→color table. Miss the last one and the geometry still loads, but every part takes the color of whatever filament sits in that slot — the classic "colors are swapped". ## The chain ``` color of the design -> part i one closed solid per color, in 3D/3dmodel.model -> extruder i+1 Metadata/model_settings.config -> filament i+1 Metadata/project_settings.config (filament_colour[i]) ``` And that project config has to be a **complete, correctly sized** profile: half the ways to get it wrong load without a single complaint and fail only when the user hits Slice. All three links must be in the file. Never rely on `<basematerials>`/`pindex` (Bambu ignores it), on per-triangle colors, or on any nearest-color matching. ## Quick start ```bash S="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude}/skills/bambu-3mf/scripts" # 1. build parts (or produce vertices/triangles any other way) python3 - "$S" <<'PY' import sys, json sys.path.insert(0, sys.argv[1]) import solids tol = 0.10 # = the quality level's tolerance base = solids.cylinder(40, 2, tol) rim = solids.ring(38, 40, 4, tol, z0=2) json.dump({"parts": [ {"name": "base", "color": "#5B2A7A", "vertices": base[0], "triangles": base[1]}, {"name": "rim", "color": "#F2D02C", "vertices": rim[0], "triangles