Path Workbench

Introduction
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 many 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.

The Principles of the Process
The bracket for the various path elements is the Job. You can think of it as a job you have to do at a real mill: The mill has a certain set of control codes (usually GCode), you use a certain set of tools, you have some stock material, and you start to mill by using the different tools. You can use the same tool for different paths, e.g. milling different pockets.

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