The Path workbench is used to produce G-Code instructions from a FreeCAD model. The G-Code language is used by CNC machines and some 3D printers to produce real-world 3D objects.

The primary tool of the Path workbench is the Path object. A Path object describes the movement that a machine head must perform in order to cut through a block of material, in the case of CNC machines, or to add a layer of printing material, in the case of 3D printers. Path objects can contain not only movement information, but also other instructions for the machine, such as the rotation speed that the cutter must have, or the amount of material that must be used.

Path objects can be created in may ways, by giving them manually the points through which they must pass, or deriving them from a wire-shaped FreeCAD object, or, more interestingly, by deriving them automatically from an existing 3D object, or parts of it. This is a complex task, and the tools below are there to do this, or part of this, in different ways. It requires some use to know them all, and choose which one is more suited to the particular task you need. Sometimes, you might also prefer to build your paths step-by-step, using partial tools, instead of using the more complex tools.

Path objects can also be combined into Compounds or Arrays, allowing you to use different tools to do different parts of the whole cutting operation, and join them into one final path.

Project objects, finally, allow you to manage different cutting operations that have to be performed by a same machine, and add machine-specific information such as a table of cutting tools available on the machine, with their characteristics. Some Path tools will then be able to refer to that table to obtain information like the diameter of a certain cutting tool.

Finally, since each type of machine often speaks a different G-Code dialect, when exporting your final Paths to G-Code, you might want to use one of the included post-processing scripts, which translates the machine-agnostic FreeCAD G-Code into a particular flavor recognized by your machine.

FreeCAD is also able to import G-Code files, for which a pre-processing script can also be used.

GUI tools


The Path workbench is still in early stages of development. Many of the tools below might not work as expected.

Project Setup tools

These tools are used to set a CNC project and define your tooltable.

Partial Commands

These tools perform a simple operation or command, meant to be inserted into a compound.

New Operations

These tools perform complex operations

  • Path Profile.png Profile: Creates a full profiling of an object starting from a face
  • Path Curve.png Curve: Performs a profiling operation using the kurve/libarea module
  • Path Pocket.png Pocket: Performs a full pocketing operation
  • Path Drilling.png Drilling: Performs a drilling cycle

Path Modification

These tools create additional features from existing paths

  • Path Copy.png Copy: Copies a selected path object
  • Path Compound.png Compound: Creates a compound from selected paths
  • Path Dressup.png Dress-up: Adds a modification to a certain position in a selected path
  • Path Hop.png Hop: Creates a "hop" movement by raising the tool vertically before translating it horizontally
  • Path Array.png Array: Creates an array by duplicating a selected path
  • Path SimpleCopy.png Simple Copy: Creates a non-parametric copy of a selected path object


The Path workbench offers a broad python scripting API. With it, you can create and modify paths from python scripts, or extend the available functionality of the workbench.

Other languages:
English • ‎français • ‎italiano • ‎português • ‎русский