A Fusion 360 add-in that generates a fully parametric, 3D-printable enclosures with a snap-fit lid. Configure dimensions, snap-fit clips, PCB standoffs, connector cutouts, and embossed/debossed text labels through a single panel — no manual CAD work required. Parameters update live in Fusion's Modify → Change Parameters dialog after the initial run.
- Parametric box + lid with snap-fit clips. Reliable, print-tested geometry: tapered triangular nubs with chamfers on both the box and the lid cavity for easy insertion, firm hold, and repeatable assembly.
- Interior OR exterior dimensions — toggle which one the L/W/H inputs represent; the other is shown as a live readout.
- Rounded corners, inside and out — independently configurable outer and inner fillet radius.
- Snap clip per side — enable/disable front/back/left/right independently.
- PCB standoffs on floor or lid, with optional screw hole and base fillet.
- Connector cutouts — round or rounded-rectangle, on any wall or the lid/floor.
- Embossed or debossed text labels on any of the six surfaces, with font, weight, size, depth, and rotation direction controls. Option to create text characters as separate bodies for multi-color printing.
- Custom Modifications component for anything the built-in features can't express. Draw arbitrary geometry (D-shaped holes, brackets, logo cuts, custom bosses) on six pre-built wall/floor/lid sketches, tag the resulting body with a naming prefix, and BoxMaker applies it as a Combine operation on every re-run — so your custom features survive parameter changes and live alongside the generated geometry.
- Construction sketches on every interior surface with a 0,0 origin marker and adjacent-surface labels, so placing features doesn't require extensive mental math. The 0,0 orgin always denotes the inside the walls origin.
- Print-ready STL or 3MF export — lid exports in flat build orientation regardless of how it's displayed in the assembly.
| Box nub (male) | Lid cavity (female) |
|---|---|
![]() |
![]() |
- Fusion 360 (Personal, Commercial, or Education).
- macOS or Windows.
- Python is built in to Fusion — no separate install needed.
Easy path (no Git required): on this repo's GitHub page, click the green <> Code button near the top → Download ZIP. Unzip the file. You'll get a folder called boxmaker-fusion-main. Inside it is a subfolder called BoxMaker (containing BoxMaker.py and BoxMaker.manifest) — that's the folder you'll point Fusion at in the steps below.
Git path (one line):
git clone https://github.com/dcityorg/boxmaker-fusion.git
Either way, put the folder somewhere persistent (your Documents folder, a ~/code/ directory, wherever) — Fusion needs to find the files at the same location every time it loads the add-in.
- Open Utilities → ADD-INS → Scripts and Add-Ins in Fusion. The dialog opens on the Add-Ins tab.
- Click the + icon next to the "My Add-Ins" list, then choose Script or add-in from device from the dropdown that appears.
- Navigate to the
BoxMakersubfolder (the folder that containsBoxMaker.pyandBoxMaker.manifest) and select it. Don't select the outerboxmaker-fusion-mainfolder — it has to be the inner one. - The add-in appears in the list. Enable Run on Startup so BoxMaker stays loaded across Fusion restarts (otherwise you have to come back here and click Run every time).
- Click Run. A BoxMaker entry now appears in the Utilities → ADD-INS dropdown in the Solid workspace. To launch BoxMaker any time after this, that's the path: Utilities → ADD-INS → BoxMaker.
Alternatively, copy or symlink the BoxMaker folder into:
~/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns/
Fusion auto-discovers add-ins in that folder on startup.
- Open Utilities → ADD-INS → Scripts and Add-Ins in Fusion. The dialog opens on the Add-Ins tab.
- Click the + icon next to the "My Add-Ins" list, then choose Script or add-in from device from the dropdown that appears.
- Navigate to the
BoxMakersubfolder (the folder containingBoxMaker.pyandBoxMaker.manifest) and select it. Don't select the outerboxmaker-fusion-mainfolder — it has to be the inner one. - Enable Run on Startup so BoxMaker stays loaded across Fusion restarts (otherwise you have to come back here and click Run every time), then click Run. A BoxMaker entry appears in the Utilities → ADD-INS dropdown in the Solid workspace — that's where you launch it from after install.
Alternatively, copy the BoxMaker folder into:
%APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\
Before you start: install the add-in first — see Installation (macOS) or Installation — Windows above. BoxMaker won't appear under Utilities → ADD-INS until it's been added and Run from Fusion's Scripts and Add-Ins dialog.
- Open or start any Fusion design.
- Click the BoxMaker button at Utilities → ADD-INS → BoxMaker.
- The BoxMaker panel opens with sensible defaults (100 × 70 × 40 mm exterior). Review or edit Box Dimensions, then click OK.
- Two new components appear in the browser: Box and Lid, plus a Custom Modifications component (empty on first run — see below).
- Re-open the panel at any time to adjust; BoxMaker remembers your last inputs.
- For live dimension edits without re-running, use Modify → Change Parameters. Most parameters update geometry immediately.
…and here's the same panel driving a real design — the Air Quality Monitor box with connector cutouts, side-wall labels, multi-color lid text, and PCB standoffs all configured from the inputs on the left:
The BoxMaker panel has three list-style inputs for adding common features — Standoffs, Cutouts, and Text Labels. Each input is a multi-line text box; one feature per line, comma-separated fields. Anything the built-in features can't express belongs in the Custom Modifications component (next section).
- Box / Lid / Snap-Fit Clips sections let you set all dimensions and toggle per-side snap clips.
- Standoffs — list one standoff per line (floor or lid surface):
floor,10,10,6,8,2.5,6,0 lid,20,15,4,3,2,3,1 - Cutouts — round or rounded-rectangle holes on any wall or the lid/floor:
front,Round,30,15,8 back,Rect,50,20,40,12,2 - Text Labels — embossed or debossed text on any surface:
front,15,20,emboss,0.6,5,Lid,Arial,yes,HELLO lid,40,30,deboss,0.6,4,Back,Arial,yes,BoxMaker
All X,Y coordinates are measured from the 0,0 marker drawn on each surface's construction sketch (bottom-left when viewed from inside the box). The 0,0 origin is inside the box walls.
See docs/usage.md for the full user guide, and ParameterList.md for the complete parameter reference.
For features the built-in inputs can't express (D-shaped connector holes, asymmetric brackets, logo cuts, custom bosses), draw directly inside the auto-generated Custom Modifications component. Tag the resulting body with a naming prefix — cut-box, cut-lid, join-box, or join-lid — and BoxMaker applies it as a Combine operation on every re-run. Your work survives parameter changes and regeneration. See docs/usage.md#custom-modifications for the full workflow.
Worked example designs live in docs/examples/. Each one is a real enclosure with all dimensions and inputs filled in — copy the values into the panel as a starting point and tweak from there.
- MicroLink — tiny USB-C passthrough case (50 × 35 × 15 mm). Demonstrates small-scale precision, opposite-wall cutouts, and a debossed lid label.
- Air Quality Monitor — mid-size sensor enclosure with display (125 × 82 × 76 mm). Demonstrates multi-color lid text, side-wall labels, and feature-dense layouts (16 standoffs across floor and lid, cutouts on three walls plus the lid).
- PortHub — small connector hub with a fan (80 × 60 × 50 mm). Demonstrates the Custom Modifications workflow end-to-end: a
join-lidpress-fit sensor mount fused to the lid interior, and acut-box8-slot radial fan grille cut through the left wall — features that the built-in CSV inputs can't express.
- Changing BoxHeight via Change Parameters requires a re-run of the add-in to reposition the snap nubs vertically.
- Toggling snap sides on/off requires a re-run — the nub geometry is created or skipped at script time.
- Floor and lid coordinates don't line up directly. Two reasons: (1) X is mirrored — the lid's 0,0 is at the assembled box's front-right corner, while the floor's 0,0 is at the front-left. (2) The lid's 0,0 is inset further from the box exterior than the floor's by
BoxGap + CoverShoulderWallThicknesson each side (because the lid sits down inside the box via its shoulder). To put a lid feature directly above a floor feature, compute the offset by hand — see docs/usage.md.
Panel doesn't remember my inputs. The panel reads saved values from Fusion User Parameters and design attributes on each open. If a value didn't persist, check that you clicked OK (not Cancel) in the last run.
Text label didn't appear. Make sure Direction isn't perpendicular to the surface — e.g. Direction=Front on the front wall doesn't make sense (text can't face "into" the wall). The parser warns about this but falls back to the surface default.
Re-run destroyed my custom modification. Custom geometry must live inside the Custom Modifications component, not directly in Box or Lid. Box and Lid are rebuilt from scratch on every run. See docs/usage.md#custom-modifications.
Snap-fit fit is too loose / too tight. Tune NubChamfer and NubChamferAmountOnCover in Change Parameters. 0.9 mm (default) is the tested sweet spot; 0.6 mm is noticeably firmer.
Issues and pull requests welcome. Please include your Fusion 360 version and OS in bug reports. For feature requests, a sketch or screenshot of the desired result helps a lot.
MIT — see LICENSE.




