Convert vendor-supplied STEP files of tool holders into Fusion 360 tool library holder definitions for CAM collision detection.
- Open your holder model - Import a STEP file or open an existing document containing the tool holder
- Switch to Manufacture workspace and click STEP to Holder in the Manage panel
- Select the gauge plane face - Click the flat face where the tool exits the holder (collet nut face)
- Fill in holder info - Description, vendor, product ID
- Save - Choose "Tool Library" to add directly, or "JSON File" to export
That's it! Your holder is ready for CAM collision checking.
- Automatic profile extraction using Fusion's Spun Profile API for accurate outer envelope capture
- Multi-body support - Handles holders with extensions (main body + extension as separate bodies)
- Taper auto-detection - Identifies CAT/BT, HSK, and Morse tapers to orient the holder correctly
- Direct tool library integration - Save holders directly to Document, Local, or Cloud libraries
- Rotated model support - Works with models not aligned to standard X/Y/Z axes
- Tool Library (direct) - Add to any Fusion tool library without file export
- JSON File - Export for backup, sharing, or manual import
- Hex nut corners captured via spun profile (true outer envelope)
- Context-aware bore filtering — inner bores removed only when coexisting with outer body geometry; narrow extension features (probe styluses, long tools) are preserved
- Narrow axial undercuts (break-away joints, wiper seals) automatically filled for conservative collision envelopes
- Large radial features (V-grooves, step-downs, tapers) preserved as real geometry
- Fillets simplified to conical segments
- Small tessellation artifacts consolidated
The add-in should be installed in your Fusion 360 add-ins directory:
Windows:
%APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\StepToHolder\
macOS:
~/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns/StepToHolder/
- In Fusion 360, go to Tools > Add-Ins
- Find "StepToHolder" in the Add-Ins tab
- Click Run (optionally check "Run on Startup")
- Access the command from Manufacture workspace → Manage panel → STEP to Holder
The gauge plane is the reference point where the tool exits the spindle - typically the face taper flange. This determines:
- Where gauge length is measured from
- Which geometry is included in the holder profile
Tips:
- Select a flat, circular face perpendicular to the holder axis
- The add-in auto-detects if most geometry is above or below your selection
If your holder consists of multiple bodies (e.g., main holder + extension), simply have all bodies in the active document. The add-in automatically collects and processes all solid bodies together, creating a unified profile.
The add-in identifies common spindle tapers by analyzing conical face angles:
| Taper Type | Half-Angle | Standards |
|---|---|---|
| CAT/BT | 8.297° | CAT, BT, NMTB, SK, ISO 40/50, R8 |
| HSK | 2.862° | HSK-A, HSK-E, HSK-F |
| Morse | 1.49° | MT0 through MT7 |
This helps orient the holder correctly (taper toward spindle).
| Option | Description |
|---|---|
| Description | Holder name (defaults to document name) |
| Vendor | Manufacturer name |
| Product ID | Part number / SKU |
| Draw Sketch | Show extracted profile overlaid on model |
| Debug Mode | Keep temporary geometry, write debug files |
Tool Library (direct):
[Document] Current Document- Saved with the Fusion document- Local libraries - Stored on your computer
- Cloud/Hub libraries - Synced to your Autodesk account
JSON File:
- Exports to
{name}_holder.json - Can be imported later via Tool Library > Import
The generated holder definition follows Fusion 360's tool library JSON schema:
{
"data": [{
"description": "BT30-ER20-60",
"gaugeLength": 60.77,
"guid": "{uuid}",
"product-id": "BT30-ER20-60",
"segments": [
{
"above-center": false,
"height": 2.0,
"lower-diameter": 30.0,
"upper-diameter": 33.8
}
],
"type": "holder",
"unit": "millimeters",
"vendor": "Maritool"
}]
}- Segments are ordered from gauge line toward spindle
lower-diameter= diameter at bottom (toward tool)upper-diameter= diameter at top (toward spindle)height= axial length of segment
- Body Collection - Gathers all solid bodies from root component and sub-components
- Axis Detection - Finds the largest cylindrical/conical face to determine axis of revolution
- Taper Identification - Matches cone angles to known tapers for correct orientation
- Spun Profile Creation - Uses Fusion's Spun Profile API to generate 2D silhouette
- Curve Processing - Converts sketch lines and arcs to profile segments
- Outer Envelope Filter - Context-aware removal of inner bore geometry while preserving extension features
- Undercut Fill - Fills narrow axial undercuts (≤1.5mm deep, ≤5mm span) for conservative collision checking
- Gauge Clipping - Clips profile to holder side of gauge plane
- Segment Generation - Builds holder segments with diameter/height data
- Axisymmetric bodies only - The holder must be a body of revolution (standard for tool holders)
- Outer envelope only - Internal features (drive dogs, keyways) are not captured in the holder profile
- Conservative undercut fill - Narrow axial undercuts (≤1.5mm deep) are filled; deeper grooves are preserved as-is
StepToHolder/
├── StepToHolder.py # Main add-in entry point
├── StepToHolder.manifest # Fusion add-in manifest
├── lib/
│ ├── profile_extractor.py # Spun profile extraction
│ └── holder_generator.py # JSON generation
├── tests/
│ ├── test_profile_extraction.py
│ └── test_outer_envelope.py
└── resources/ # Icons for Fusion UI
Tests run without Fusion 360 using mock data:
pytest tests/ -vThe add-in reloads lib/ modules on each command execution. After editing library code, simply close and reopen the command dialog to pick up changes.
MIT License - See LICENSE file.
USE AT YOUR OWN RISK. This software is provided "as is" without warranty of any kind. The generated holder profiles are approximations intended for collision detection only. Always verify holder dimensions against manufacturer specifications before use in production. The authors are not responsible for any damage to tools, workpieces, machines, or persons resulting from use of this software.
Contributions welcome! Please ensure tests pass before submitting pull requests.
- Built for use with Maritool holders, but works with any vendor's STEP files
- Thanks to the Fusion 360 API documentation and community