Create 3D surface machining operations in Fusion 360 — adaptive clearing, pocket, parallel, scallop, pencil, contour (waterline), steep & shallow, horizontal, radial, spiral, morphed spiral, and flow. Use when the user asks to machine complex 3D surfaces, create finishing toolpaths, rough 3D geometry, use ball end mills, set scallop height, do rest machining, or create multi-axis style operations.
Install
npx skillscat add peytoncasper/modeling/fusion-cam-3d Install via the SkillsCat registry.
Fusion 360 CAM 3D Milling Operations
Create 3D surface machining operations via tools/fusion-cam-3d. All dimensions are mm. Output is JSON.
Orient yourself first
Before creating 3D operations, verify setup and available tools:
tools/fusion-cam-setup list # check for setups
tools/fusion-cam-setup operations # existing operations
tools/fusion-cam-setup tools --type ball_end # check for ball end millsIf no setup exists, create one first with tools/fusion-cam-setup create.
When to use 3D vs 2D
| Use 2D operations when... | Use 3D operations when... |
|---|---|
| Part is flat / prismatic | Part has curved surfaces |
| Vertical walls, flat floors | Sculpted / organic shapes |
| Pockets with flat bottoms | Mold cavities, dies |
| Simple profile cuts | Surface finishing quality matters |
| Drilling holes | Rest machining (remaining stock) |
Operations at a glance
Roughing (material removal)
| Operation | Best for |
|---|---|
adaptive |
Heavy roughing — constant engagement, fastest |
pocket |
Roughing with parallel passes |
Finishing (surface quality)
| Operation | Best for |
|---|---|
parallel |
General finishing — raster pattern |
scallop [Extension] |
Constant scallop height — best surface quality |
pencil [Extension] |
Inside corners and fillets |
contour [Extension] |
Waterline / Z-level — steep walls |
steep-shallow [Extension] |
Combined strategy — auto picks steep vs. shallow |
horizontal |
Flat areas only |
radial |
Round parts — passes radiate from center |
spiral |
Round parts — continuous spiral |
morphed-spiral [Extension] |
Freeform surfaces with guided spirals |
flow [Extension] |
UV-aligned finishing (guided by surface flow) |
License requirements
Operations marked [Extension] require the Fusion 360 Manufacturing Extension. If your license doesn't include it, the handler returns a clear error message suggesting alternatives. Stick to: adaptive, pocket, parallel, horizontal, radial, spiral on a basic license.
3D Roughing
3D Adaptive Clearing
The best roughing strategy — maintains constant tool engagement for maximum material removal with minimum tool stress. Always start here for 3D parts.
# Basic 3D adaptive
tools/fusion-cam-3d adaptive --name "Rough" --stepdown 3 --stock-to-leave 0.5
# With optimal load control
tools/fusion-cam-3d adaptive --name "Heavy Rough" --stepdown 4 --optimal-load 3
# Leave stock for finishing
tools/fusion-cam-3d adaptive --name "Rough" --stepdown 3 --stock-to-leave 0.5 --axial-stock 0.2
# Bi-directional for faster clearing
tools/fusion-cam-3d adaptive --name "Fast Rough" --optimal-load 3 --both-ways
# With flat area detection
tools/fusion-cam-3d adaptive --name "Rough" --stepdown 3 --flat-area-detection3D Pocket Clearing
Traditional roughing with parallel passes at each Z-level.
tools/fusion-cam-3d pocket --name "Pocket Rough" --stepdown 2 --stock-to-leave 0.5
tools/fusion-cam-3d pocket --name "Pocket Rough" --stepdown 2 --direction climb3D Finishing
Parallel (raster)
General-purpose finishing. Passes are parallel lines across the model. Good starting point for most finishes.
# Basic parallel finish
tools/fusion-cam-3d parallel --name "Finish" --stepover 0.5
# At 45° angle
tools/fusion-cam-3d parallel --name "Finish 45" --stepover 0.3 --pass-angle 45
# Zero stock to leave (final pass)
tools/fusion-cam-3d parallel --name "Final" --stepover 0.3 --stock-to-leave 0
# Both directions
tools/fusion-cam-3d parallel --name "Cross Finish" --stepover 0.5 --direction bothScallop
Constant scallop height — produces the most uniform surface quality. Passes follow the surface contours. Best for organic shapes.
tools/fusion-cam-3d scallop --name "Scallop Finish" --scallop-height 0.1
tools/fusion-cam-3d scallop --name "Fine Scallop" --scallop-height 0.05 --tolerance 0.005Pencil
Cleans inside corners and fillets that larger tools can't reach. Run after parallel/scallop to clean up remaining material in tight areas.
tools/fusion-cam-3d pencil --name "Corners" --tool-number 5
tools/fusion-cam-3d pencil --name "Fillets" --stock-to-leave 03D Contour (waterline / Z-level)
Cuts at constant Z-heights. Excellent for steep walls where parallel leaves poor finish.
tools/fusion-cam-3d contour --name "Walls" --stepdown 0.5
tools/fusion-cam-3d contour --name "Fine Walls" --stepdown 0.2 --stock-to-leave 0Steep & Shallow
Automatically combines waterline (steep areas) and raster (shallow areas) into one operation. Best all-around strategy when you don't know the geometry well.
# Default threshold (45°)
tools/fusion-cam-3d steep-shallow --name "Combined" --stepover 0.5
# Custom threshold angle
tools/fusion-cam-3d steep-shallow --name "Combined" \
--threshold-angle 40 --steep-stepdown 0.3 --shallow-stepover 0.5Horizontal
Finishes only flat/horizontal areas. Use after contour or parallel to clean up flats.
tools/fusion-cam-3d horizontal --name "Flats"Radial
Passes radiate from a center point. Good for round parts, bowls, domes.
tools/fusion-cam-3d radial --name "Radial Finish" --center 0,0 --stepover 0.5Spiral
Continuous spiral from outside in (or inside out). Good for round parts — no retract moves.
tools/fusion-cam-3d spiral --name "Spiral Finish" --stepover 0.5Morphed Spiral
Like spiral but guided by the surface shape. Good for freeform surfaces with complex boundaries.
tools/fusion-cam-3d morphed-spiral --name "Morphed" --stepover 0.3Flow
Follows the UV curves of the surface. Best when the surface has strong directional flow (like an airfoil or boat hull).
tools/fusion-cam-3d flow --name "Flow Finish" --stepover 0.3Common parameters (all 3D operations)
--setup "Setup Name" # target setup (defaults to last)
--name "Operation Name" # display name
--stock-to-leave 0.5 # radial stock to leave (mm)
--axial-stock 0.2 # axial stock to leave (mm)
--stepover 0.5 # lateral step between passes (mm)
--stepdown 3 # vertical step between levels (mm)
--tolerance 0.01 # surface tolerance (mm)
--boundary silhouette # auto-detect machining boundary
--tool-number 3 # select tool from library
--tool-type "ball end mill" # find tool by type
--rest-machining # only cut remaining stock
--clearance-height 30 # clearance from stock top (mm)
--retract-height 10 # retract from stock top (mm)
--top-height 0 # top height offset (mm)
--bottom-height 20 # bottom height (mm)
--top-from stock top # top height reference: 'stock top', 'model top' (default: 'stock top')
--bottom-from stock bottom # bottom height reference: 'stock bottom', 'model bottom' (default: 'stock bottom')Operation management
# Read current values of specific parameters
tools/fusion-cam-3d read-params --operation "Parallel" --params stockToLeave stepover topHeight_mode
# Duplicate an operation with all settings (tool, params, boundary)
tools/fusion-cam-3d duplicate --operation "Adaptive1" --new-name "Finish Pass"
# Edit an existing operation
tools/fusion-cam-3d edit --operation "Parallel" --stepover 0.3 --stock-to-leave 0
# Edit raw parameters
tools/fusion-cam-3d edit --operation "Adaptive" --params optimalLoad="2.5 mm"
# Rename
tools/fusion-cam-3d edit --operation "Parallel" --new-name "Final Finish"
# Suppress / unsuppress
tools/fusion-cam-3d suppress --operation "Scallop"
tools/fusion-cam-3d unsuppress --operation "Scallop"
# Delete
tools/fusion-cam-3d delete --operation "Old Rough"Decision guide
| I want to... | Command |
|---|---|
| Rough a 3D part | adaptive --stepdown 3 --stock-to-leave 0.5 |
| General finish | parallel --stepover 0.5 |
| Best surface quality | scallop --scallop-height 0.1 |
| Clean inside corners | pencil |
| Finish steep walls | contour --stepdown 0.5 |
| Auto-pick strategy | steep-shallow --stepover 0.5 |
| Finish flat areas | horizontal |
| Finish a dome/bowl | spiral --stepover 0.5 or radial --center x,y |
| Follow surface flow | flow --stepover 0.3 |
| Only cut remaining | parallel --rest-machining --stock-to-leave 0 |
| Edit existing op | edit --operation O --stepover S |
| Skip an operation | suppress --operation O |
Common patterns
Duplicate-and-edit pattern (fastest, most reliable)
Instead of creating operations from scratch, duplicate an existing one that's close to what you want:
tools/fusion-cam-3d duplicate --operation "Adaptive1" --new-name "Finish Pass"
tools/fusion-cam-3d edit --operation "Finish Pass" --stock-to-leave 0 --stepover 0.5This preserves tool, boundary selection, and heights from the source operation.
Rough → semi-finish → finish
# 1. Heavy roughing with 3D adaptive (leave 0.5mm)
tools/fusion-cam-3d adaptive --name "Rough" --stepdown 3 --stock-to-leave 0.5 --tool-number 1
# 2. Semi-finish parallel (leave 0.1mm)
tools/fusion-cam-3d parallel --name "Semi-Finish" --stepover 1.0 --stock-to-leave 0.1 --tool-number 2
# 3. Final scallop finish (zero stock)
tools/fusion-cam-3d scallop --name "Finish" --scallop-height 0.05 --stock-to-leave 0 --tool-number 3
# 4. Clean corners
tools/fusion-cam-3d pencil --name "Corners" --stock-to-leave 0 --tool-number 3Steep & shallow single-pass
tools/fusion-cam-3d adaptive --name "Rough" --stepdown 3 --stock-to-leave 0.3
tools/fusion-cam-3d steep-shallow --name "Finish" --stepover 0.3 --stock-to-leave 0Rest machining (smaller tool cleans up)
# Large tool roughing
tools/fusion-cam-3d adaptive --name "Rough 12mm" --stepdown 3 --stock-to-leave 0.5 --tool-number 1
# Smaller tool cleans remaining stock
tools/fusion-cam-3d adaptive --name "Rest Rough 6mm" --stepdown 2 --stock-to-leave 0.5 --tool-number 2 --rest-machiningKey parameter names
| What you want | Fusion parameter name | Example expression |
|---|---|---|
| Stock to leave | stockToLeave |
0.5 mm |
| Top height mode | topHeight_mode |
'from stock top' |
| Top height offset | topHeight_offset |
-0.5 mm |
| Bottom height mode | bottomHeight_mode |
'from stock bottom' |
| Bottom height offset | bottomHeight_offset |
0 mm |
| Rest machining | useRestMachining |
true |
| Rest source | restMaterialSource |
'previousOperations' |
| Boundary mode | boundaryMode |
'selection' or 'silhouette' |
| Pass angle | passAngle |
45 deg |
| Tolerance | tolerance |
0.01 mm |
Common mistakes
- Setting height offset without mode — always set
--top-from/--bottom-fromwith--top-height/--bottom-heightor useread-paramsfirst to check current mode - Using Extension-only operations without the license — check your Fusion license tier first, stick to parallel/adaptive/pocket on basic
- Using parallel on steep walls — parallel leaves a poor finish on walls >~60°. Use
contourorsteep-shallowinstead - Forgetting rest machining — when switching to a smaller tool, enable
--rest-machiningto avoid re-cutting already-machined areas - Too large stepover — for ball end mills, stepover should be much less than tool diameter (typically 10-30% of diameter for finishing)
- No roughing before finishing — finishing operations assume most material is already removed. Always rough first
- Wrong tool type — 3D finishing usually needs ball end mills (spherical tip). Flat end mills leave stair-stepping on curved surfaces
- Stock to leave mismatch — roughing should leave >= what the finishing pass expects. If rough leaves 0.5mm, finish should use stock_to_leave=0