Manage Fusion 360 CAM setups, stock, WCS, cutting tools, post-processing, and simulation. Use when the user asks to create a CAM setup, configure stock dimensions, set work coordinate system, manage tool libraries, post-process G-code, simulate toolpaths, estimate cycle time, or switch to the Manufacturing workspace.
Install
npx skillscat add peytoncasper/modeling/fusion-cam-setup Install via the SkillsCat registry.
Fusion 360 CAM Setup / Tools / Post-processing
Control Fusion 360 manufacturing infrastructure via tools/fusion-cam-setup. All dimensions are mm. Output is JSON.
Orient yourself first
Before creating setups, understand the current manufacturing state:
tools/fusion-cam-setup info # are we in Manufacturing workspace?
tools/fusion-cam-setup switch # switch to Manufacturing workspace
tools/fusion-cam-setup list # list all setups
tools/fusion-cam-setup list --show-params # with full parameter dump
tools/fusion-cam-setup operations # all operations across all setups
tools/fusion-cam-setup tools # available cutting toolsWorkflow overview
1. Switch to Manufacturing workspace → tools/fusion-cam-setup switch
2. Create a setup (stock, WCS, model) → tools/fusion-cam-setup create ...
3. Set machining model bodies → tools/fusion-cam-setup set-model ...
4. Create operations (use fusion-cam-2d / fusion-cam-3d)
5. Generate toolpaths → tools/fusion-cam-setup generate
6. Simulate to verify → tools/fusion-cam-setup simulate
7. Post-process to G-code → tools/fusion-cam-setup post ...Setup creation
Relative stock (default — offsets from model bounding box)
# Basic setup with default offsets (2mm sides, 4mm top)
tools/fusion-cam-setup create --name "Main Setup"
# Custom offsets
tools/fusion-cam-setup create --name "Tight Setup" --stock-offset 1 --stock-top 2Fixed stock (explicit dimensions)
# Fixed stock size — use when you know your blank dimensions
tools/fusion-cam-setup create --name "Board" \
--stock-mode fixed --stock-x 500 --stock-y 400 --stock-z 20
# With origin at top center (common for CNC routers)
tools/fusion-cam-setup create --name "Board" \
--stock-mode fixed --stock-x 500 --stock-y 400 --stock-z 20 \
--stock-point top-centerWCS origin (stock point)
Set where the WCS origin sits on the stock:
fusion-cam-setup create --name Setup1 --stock-point corner # stock box corner (most CNC-friendly)
fusion-cam-setup create --name Setup1 --stock-point center # center of stock
fusion-cam-setup create --name Setup1 --stock-point top-center # top face center
fusion-cam-setup create --name Setup1 --stock-point bottom-center # bottom face centerUse corner for most CNC workflows — it matches typical machine datum at the front-left corner of the stock.
Setup editing
# Edit stock dimensions
tools/fusion-cam-setup edit --setup "Main Setup" --stock-mode fixed --stock-x 600
# Fix WCS orientation (flip Z up)
tools/fusion-cam-setup fix --setup "Main Setup"
# Edit raw parameters directly
tools/fusion-cam-setup edit --setup "Main Setup" --params job_stockOffsetSides="3 mm"
# Discover available parameters
tools/fusion-cam-setup params --setup "Main Setup"
tools/fusion-cam-setup params --setup "Main Setup" --filter job_ # stock params only
tools/fusion-cam-setup params --setup "Main Setup" --filter wcs_ # WCS params onlySetup management
tools/fusion-cam-setup duplicate --setup "Main Setup" --new-name "Flip Side"
tools/fusion-cam-setup delete --setup "Old Setup"Model and fixture bodies
# Set which bodies to machine (by name)
tools/fusion-cam-setup set-model --setup "Main Setup" --bodies TopPanel,SidePanel
# Set fixture bodies (clamps — tool avoids these)
tools/fusion-cam-setup set-fixture --setup "Main Setup" --fixtures Clamp1,Clamp2
# Import a body from another Fusion design
tools/fusion-cam-setup derive-body --source /path/to/design.f3d --body BodyName --new-name ImportedPart
# Create corner keep-out zones (for clamp clearance)
tools/fusion-cam-setup keepout --setup "Main Setup" --corner-size 20Tool management
List available tools
# All tools (from document operations + local libraries)
tools/fusion-cam-setup tools
# Filter by type
tools/fusion-cam-setup tools --type flat_end
tools/fusion-cam-setup tools --type ball_end
tools/fusion-cam-setup tools --type chamfer
tools/fusion-cam-setup tools --type drill
tools/fusion-cam-setup tools --type v_bitCreate a new tool (auto-added to library)
# Flat end mill — automatically added to persistent Local library
tools/fusion-cam-setup create-tool --type "flat end mill" --diameter 6 --flutes 2
# Ball end mill
tools/fusion-cam-setup create-tool --type "ball end mill" --diameter 6 --flutes 2
# V-bit (chamfer mill)
tools/fusion-cam-setup create-tool --type "chamfer mill" --diameter 25 --tip-angle 90
# Drill
tools/fusion-cam-setup create-tool --type "drill" --diameter 5 --flutes 2
# With full specs
tools/fusion-cam-setup create-tool \
--type "flat end mill" --diameter 6 --flutes 3 \
--flute-length 20 --overall-length 50 \
--tool-number 1 --description "6mm 3-flute upcut"
# Create tool WITHOUT adding to library (document-only)
tools/fusion-cam-setup create-tool --type "flat end mill" --diameter 6 --no-libraryTool disambiguation
When multiple tools share the same tool number, use --tool-description on 2D/3D operations to pick the right one:
tools/fusion-cam-2d adaptive --setup S --name Rough --tool-number 2 --tool-description "1/2 inch"
tools/fusion-cam-3d parallel --setup S --name Finish --tool-number 2 --tool-description "ball"Library management (persistent across all documents)
The Local library persists across all Fusion 360 documents. Tools stored here are always available regardless of which document is open.
List library tools
tools/fusion-cam-setup library listAdd tools to library
# Add a tool definition directly
tools/fusion-cam-setup library add \
--type "flat end mill" --diameter 12.7 --flutes 2 \
--flute-length 25 --tool-number 3 --description "1/2in flat upcut"
# Copy a tool from a document operation into the library
tools/fusion-cam-setup library add-from-op --operation "Flat2"
# Bulk import all unique tools from the current document
tools/fusion-cam-setup library import-docRemove a tool
tools/fusion-cam-setup library remove --index 0Export / Import (backup, sharing, migration)
# Export to JSON file
tools/fusion-cam-setup library export --output ~/my-tools.json
# Import from JSON file (deduplicates automatically)
tools/fusion-cam-setup library import-file --input ~/my-tools.jsonRecommended workflow for new documents
# 1. All your tools are already in the Local library — just reference by number
tools/fusion-cam-2d adaptive --setup S --name Rough --tool-number 3
# 2. Or import tools from another document first
tools/fusion-cam-setup library import-docOperations query
# List all operations (all setups)
tools/fusion-cam-setup operations
# Operations in a specific setup
tools/fusion-cam-setup operations --setup "Main Setup"
# With full parameter dump (for debugging)
tools/fusion-cam-setup operations --setup "Main Setup" --show-params
# Note: --show-params filters out tool_* and holder_* params by default for cleaner output.
# To see ALL params including tool details, pass --operation NAME to filter to a specific operation.
# Set an operation to auto-detect geometry (silhouette)
tools/fusion-cam-setup silhouette --operation "2D Contour"Generate toolpaths
# Generate all toolpaths in all setups
tools/fusion-cam-setup generate
# Generate for one setup only
tools/fusion-cam-setup generate --setup "Main Setup"
# With extended timeout (for complex models)
tools/fusion-cam-setup generate --setup "Main Setup" --timeout 300Simulation
tools/fusion-cam-setup simulate --setup "Main Setup"Post-processing (G-code)
# Post-process to file
tools/fusion-cam-setup post --output /Users/me/gcode/part.nc --setup "Main Setup"
# With specific post-processor
tools/fusion-cam-setup post --output /path/output.nc --setup "Main Setup" --post-processor grbl
# Open in editor after post
tools/fusion-cam-setup post --output /path/output.nc --setup "Main Setup" --open-editorCycle time estimation
tools/fusion-cam-setup cycle-time --setup "Main Setup"
# Returns: total_seconds, total_minutes, per-operation breakdownDecision guide
| I want to... | Command |
|---|---|
| Start CAM work | switch then create --name ... |
| See what's set up | list or info |
| Set my blank size | create --stock-mode fixed --stock-x W --stock-y D --stock-z H |
| Fix upside-down WCS | fix --setup S |
| Choose bodies to cut | set-model --bodies B1,B2 |
| See available tools | tools |
| Add a tool | create-tool --type T --diameter D (auto-added to library) |
| See library tools | library list |
| Import doc tools to library | library import-doc |
| Backup my tool library | library export --output ~/tools.json |
| Make G-code | generate --setup S then post --output /path --setup S |
| Check machining time | cycle-time --setup S |
| Verify before cutting | simulate --setup S |
| Debug a parameter | params --setup S --filter prefix_ |
Common patterns
CNC router setup (flat stock, top-center origin)
tools/fusion-cam-setup switch
tools/fusion-cam-setup create --name "Router Job" \
--stock-mode fixed --stock-x 610 --stock-y 305 --stock-z 19 \
--stock-point top-center
tools/fusion-cam-setup set-model --setup "Router Job" --bodies Part1
tools/fusion-cam-setup keepout --setup "Router Job" --corner-size 25Full workflow (setup → operations → G-code)
# 1. Setup
tools/fusion-cam-setup switch
tools/fusion-cam-setup create --name "Job1" --stock-mode fixed --stock-x 300 --stock-y 200 --stock-z 25
# 2. Create operations (via fusion-cam-2d)
tools/fusion-cam-2d adaptive --setup "Job1" --name "Rough" --depth 19 --stepdown 4
tools/fusion-cam-2d contour --setup "Job1" --name "Profile" --depth 19 --tabs
# 3. Generate + verify + post
tools/fusion-cam-setup generate --setup "Job1"
tools/fusion-cam-setup cycle-time --setup "Job1"
tools/fusion-cam-setup simulate --setup "Job1"
tools/fusion-cam-setup post --output ~/gcode/job1.nc --setup "Job1" --post-processor grblCommon mistakes
- Not switching to Manufacturing workspace first — run
switchbefore any CAM commands - Forgetting to generate — operations must have toolpaths before post-processing
- Wrong stock point — CNC routers typically use
top-center; mills usecenter - Stock point defaulting to center — always specify
--stock-point cornerif your CNC expects origin at stock corner - Param listing only showing tool params — the 100-param cap has been removed, tool_* params are filtered by default
- Missing model selection — if operations show no geometry, run
set-modelto specify which bodies to machine - Wrong tool picked (duplicate tool numbers) — use
--tool-descriptionto disambiguate when multiple tools share the same number - Tools lost when operations deleted — always import important tools into the Local library first with
library import-docorlibrary add-from-op - Tools not available in new document — use the persistent Local library (
library list) instead of relying on document-embedded tools
Deploying addin changes
After editing handler files in the workspace, run ./deploy-addin.sh to copy them to the Fusion AddIns directory, then restart the addin.