Introduction

The Path workbench is used to produce machine instructions for CNC machines from a FreeCAD 3D model. These produce real-world 3D objects on CNC machines such as mills, lathes, lasercutters, or similar. Typically, instructions are a G-Code dialect.

A 3D model is the base object, typically created using one or more of the Part Design, Part or Draft Workbenches.

A Job is created in Path Workbench. This contains all the information required to generate the necessary G-Code to process the Job on a CNC mill: there is Stock material, the mill has a certain set of tools and it follows certain commands controlling speed and movements (usually G-Code).

Tools are selected as required by the Job Operations.

Milling paths are created using e.g. Contour and Pocket Operations. These Path objects use internal FreeCAD G-Code dialect, independent of the CNC machine.

Export the job with a g-code, matching to your machine. This step is called post processing; there are different post processors available.

Links for the impatient

Depending on your interest in the Path workbench there are different topics for further reading:

If you are a new new user trying to get familiar with Path, you might be interested in a fast walk-through tutorial.

As an experienced user you may want to write a macro or automate a process might need to learn about scripting

Power users who want to streamline their workflow can learn about customization.

New developers who want to contribute to path might want to understand core concepts.

General concepts

The Path Workbench generates G-Code defining the paths required to mill the Project represented by the 3D model on the target mill in the Path Job Operations FreeCAD G-Code dialect, which is later translated to the appropriate dialect for the target CNC controller by selecting the appropriate postprocessor.

The G-Code is generated from directives and Operations contained in a Path Job. The Job Workflow lists these in the order they will be executed. The list is populated by adding Path Operations, Path Dressups, Path Partial Commands, and Path Modifications from the Path Menu, or GUI buttons.

The Path Workbench provides a Tool Manager (Library, Tool-Table), and G-Code Inspection, and Simulation tools. It links the Postprocessor, and allows importing and exporting Job Templates.

Units

Unit handling in Path can be confusing. There are several points to understand:

FreeCAD base units for length and time are 'mm' and 's' respectively. Velocity is thus 'mm/s'. This is what FreeCAD stores internally regardless of anything else

The default unit schema uses the default units. If you're using the default schema and you enter a feed rate without a unit string, it will get entered as 'mm/s'

Most CNC machines expect feed rate in the form of either 'mm/min' or 'in/min'. Most post-processors will automatically convert the unit when generating gcode.

Schemas:

Changing schema in preferences changes default unit string for the input fields. If you're a Path user and prefer to design in metric, it's highly recommended that you use the "Metric Small Parts & CNC" schema. If you design in US units, either the Imperial Decimal and Building US will work

Changing your preferred unit schema will have no effect on output but will help avoid input errors

Output:

Generating the correct unit in output is the responsibility of the post-processor and is done only at that time

If you want your configurable post-processor to output imperial gcode (G20), Set the correct argument in your job output configation (ie --inches for linuxcnc). This can be stored in a job template and set as your default template to make it automatic for all future jobs

Path Inspection:

If you use the Path Inspect tool to look at g-code, you will see it in 'mm/s' because it is not being post-processed

Path Commands

These commands are used for seting up a CNC project and manage your templates.