A Fusion 360 add-in that exports many bodies or components to STL in one pass, with refinement settings that are remembered between runs.
Fusion's own 3D Print dialog does neither: one object per invocation, and every setting forgotten the moment it closes.
{body},
{comp}, {occ}, {doc}, {nnn},
{date}, {kind}. Two objects that resolve to the same
name are always numbered apart, whatever the overwrite policy — collapsing them
into one file would lose a part silently.Custom. A preset lets Fusion scale the deviation to each body's
size, Custom applies one absolute tolerance to every file.Measured in Fusion 2704.1.23 by exporting known geometry and reading the files
back. The four STLExportOptions refinement properties carry the same
numbers the 3D Print dialog shows, not Fusion's internal centimetres.
| property | documented | actually |
|---|---|---|
surfaceDeviation | centimetres | millimetres |
normalDeviation | radians | degrees |
maximumEdgeLength | centimetres | millimetres |
aspectRatio | — | unitless |
maximumEdgeLength = 1.0 on a 30 mm ball produced a mesh whose
median edge is 0.98 mm; centimetres would have given ten times that.
normalDeviation = 5 held facet normals inside 1.19 deg, whereas five
radians is 286 deg and would constrain nothing. TriangleMeshCalculator,
by contrast, really does use the documented internal units — the two are not
interchangeable.
Pure functions of the bounding-box diagonal, measured across four bodies:
| preset | surface deviation | normal | maximum edge | aspect |
|---|---|---|---|---|
| High | diagonal / 19954 | 10 deg | diagonal | 21.5 |
| Medium | diagonal / 6310 | 15 deg | diagonal | 21.5 |
| Low | diagonal / 2512 | 30 deg | diagonal | 21.5 |
Maximum edge length is always the diagonal itself, which no triangle can
exceed — so no preset limits edge length at all, and 0 is the faithful
default rather than pinning one body's diagonal onto a whole batch.
It tracks the number you set, linearly, across three decades. On a 40 mm-radius cylinder the chord deviation came out at the value asked for almost exactly. On a 30 mm ball the worst facet-plane deviation came out at twice it, consistently:
| set | worst facet deviation | ratio |
|---|---|---|
| 0.001 mm | 0.002001 mm | 2.00 |
| 0.003 mm | 0.005968 mm | 2.00 |
| 0.010 mm | 0.020008 mm | 2.00 |
| 0.050 mm | 0.094434 mm | 1.89 |
Measured against a least-squares sphere fitted to the exported vertices. Using the vertex mean as the centre instead gives numbers up to 7× wrong, because a lat-lon tessellation crowds the poles.
A hidden body exports nothing.
exportManager.execute() returns true and no file appears.
The add-in switches the light bulb on for the duration and puts it back, and marks
those rows was hidden.
There is no triangle-count preview, deliberately.
TriangleMeshCalculator returned 128 880 triangles where the export
produced 7 224 at the same tolerance, and with no aspect or edge limit set it took
Fusion down entirely. Counts are read out of the written files instead.
git clone <this repo> powershell -File install.ps1
Then in Fusion: Utilities → ADD-INS → Scripts and Add-Ins → Add-Ins → Batch STL Export → Run. The button appears in Utilities → Make, next to 3D Print, and in Mesh → Export. No dependencies — it runs on Fusion's bundled Python, stdlib only.