FreeCAD Path — Free CAM & G-Code Generation
Workbench reference · Updated May 2026 · 9 min read
Path is FreeCAD's CAM workbench — turn 3D models into G-code that drives a CNC mill, lathe, or router. It is the free alternative to Fusion 360 Manufacture, Mastercam, or HSMWorks. The interface is less polished, the documentation is community-driven rather than vendor-curated, but the core capability is real: 2D and 3D toolpaths, multi-axis support, post-processors for every major controller, all at zero subscription cost.
This page is the practical reference for running Path workbench end-to-end — from setting up a Job, through toolpath operations, to exporting G-code your machine actually runs.
When Path workbench fits
Use Path if:
- You run a hobby or small-shop CNC and don't want to pay for Fusion 360.
- Your CNC is on Linux (LinuxCNC) — Fusion 360 doesn't run on Linux at all.
- Your work is primarily 2D-and-2.5D milling: profiles, pockets, drilling, light surfacing.
- You need a custom post-processor for an unusual controller (Path is highly hackable).
Where Fusion 360 CAM still has the edge: high-speed adaptive clearing on complex 3D parts (Fusion's Adaptive is more refined), trochoidal milling, integrated simulation with cutter geometry, and the polish of one-click post-processing for hundreds of pre-configured machines.
The Path workflow — six steps
- Build or import the part in Part Design.
- Create a Job: Path → Job. The Job holds machine setup, stock material, tools, and operations.
- Configure the Job: machine post-processor, stock dimensions, output file path.
- Add tools to the Tool Controller — endmills, drills, ball noses, with their dimensions and feeds/speeds.
- Add operations: Profile (outline cut), Pocket (cavity clear), Drilling, Adaptive, 3D Surface.
- Post-process to G-code and load into your CNC controller.
Job setup — the foundation
Every Path operation lives inside a Job. The Job specifies:
- Base object: the part you're machining (a Body from Part Design).
- Stock: the rough material before cutting. From Bounding Box, Extruded sketch, or imported geometry.
- Post processor: the dialect of G-code your controller speaks. Pick from
linuxcnc,grbl,mach3,marlin(3D printer as CNC),centroid,fanuc, etc. - Output file: where to write the .nc / .gcode / .tap file.
- Setup sheet: optional documentation of the job for the machinist.
Tools and Tool Controllers
Path's tool model has two layers:
- Tool Bit: the physical cutter — endmill, ball-nose, V-bit, drill, chamfer mill. Defined by diameter, length, flute count, material.
- Tool Controller: a Tool Bit plus runtime settings — spindle speed, feed rate, plunge rate, rapid speed. Each operation references a Tool Controller.
Why two layers: the same physical endmill might run at different feeds/speeds in different materials. Aluminum endmill at 18,000 RPM, steel at 6,000 RPM, plywood at 24,000 RPM — three Tool Controllers wrapping the same Tool Bit.
FreeCAD ships a default Tool Library. Add your own tools by editing the library or defining new Tool Bits per Job.
Operations — the toolpath types
Each operation generates a slice of G-code. Combine them to machine the full part:
- Profile: follow the outline of a face or edge — outside cuts, contour cuts, perimeter passes.
- Pocket Shape: hollow out a closed pocket — cavities, lightening pockets.
- Drilling: peck-drill a list of holes. Pick faces or hole centers; FreeCAD plans the cycle.
- Adaptive: high-speed clearing with constant tool engagement — modern strategy that's gentler on the cutter than traditional pocketing.
- 3D Surface: follow a 3D surface with a ball-nose endmill — sculpted shapes, mold cavities, organic forms.
- Helix: spiral plunge — useful for entry into pockets without ramping.
- Engrave: follow text or a vector path with a V-bit — sign making, marking.
- Slot: cut a straight slot with optional finishing pass.
Post-processors — speaking your machine's dialect
G-code is a dialect, not a single standard. Same operation generates different output for LinuxCNC vs Mach3 vs Fanuc vs Marlin. FreeCAD's Path workbench handles this with post-processors — Python scripts that translate the internal toolpath representation into the specific G-code your controller wants.
Bundled post-processors include:
linuxcnc— the open-source CNC controller. Most common for hobby/small shop.grbl— Arduino-based controller used in many small CNC routers.mach3/mach4— proprietary Windows-based controller.marlin— 3D-printer firmware repurposed for light CNC.centroid,fanuc,haas,heidenhain— industrial controllers.
Custom post-processor: copy a bundled one as a template, edit the Python to match your controller's quirks. Real benefit: you can teach Path to drive any machine ever made.
Simulating before cutting
Path includes a simulator: Path → Simulate. It plays back the generated G-code with a representation of the cutter, removing material from the stock as it goes. Watch for:
- Air cuts (wasted time)
- Plunges into uncut stock at full feed (broken cutters)
- Tool collisions with clamps or fixtures (broken cutters AND broken machines)
- Unintended over-cuts beyond the part boundary
The simulator is approximate — it shows cutter geometry, not collision with the spindle or fixture. Always do a slow first cut on a real machine with the rapid feed set low.
Tips for productive Path use
- Save Tool Libraries. Don't redefine tools for every Job — build a Library.fctl file and reference it.
- Start with conservative feeds and speeds. Bump up after the first chip-load test on the actual machine.
- Use Adaptive for roughing wherever it fits. Faster, gentler on cutters, longer tool life.
- Drill cycles, not Profile circles. Profile around a 3mm hole works but Drilling is the right tool — gives you peck cycles, dwell, retract logic.
- Set up safety: SafeHeight, ClearanceHeight. The rapid-move plane above your part. Typically 5-10mm above the highest stock.
- Verify in NC simulator software. CAMotics (free) gives you a second opinion on the toolpath before you cut.
Try Path Workbench — FreeCAD 1.1.3
CAM included. Free CNC programming for Windows, Mac, Linux.
Download FreeCADRelated guides
Part Design — solids
Build the part you'll machine. Part Design is upstream of Path.
vs Fusion 360
Path is free; Fusion 360 Manufacture is paid. Polish vs cost.
3D Printing Guide
Use Marlin post-processor for 3D printers acting as light CNC.
All Workbenches
Part Design, Sketcher, FEM, BIM, TechDraw and more.