FreeCAD Path — Free CAM & G-Code Generation

Workbench reference · Updated May 2026 · 9 min read

CNC milling machine cutting metal — FreeCAD Path workbench for CAM toolpath generation

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

  1. Build or import the part in Part Design.
  2. Create a Job: Path → Job. The Job holds machine setup, stock material, tools, and operations.
  3. Configure the Job: machine post-processor, stock dimensions, output file path.
  4. Add tools to the Tool Controller — endmills, drills, ball noses, with their dimensions and feeds/speeds.
  5. Add operations: Profile (outline cut), Pocket (cavity clear), Drilling, Adaptive, 3D Surface.
  6. 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 FreeCAD

Related 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.