Path Workbench: Difference between revisions

From FreeCAD Documentation
mNo edit summary
No edit summary
Line 3: Line 3:


<!--T:2-->
<!--T:2-->
The Path workbench is used to produce machine instructions for [https://en.wikipedia.org/wiki/CNC_router CNC machines] from a FreeCAD model. This can be used to produce real-world 3D objects on machines like mills, lathes, lasercutters or alike. Usually these instructions are some kind of [https://en.wikipedia.org/wiki/G-code G-Code] dialect.
The Path workbench is used to produce machine instructions for [https://en.wikipedia.org/wiki/CNC_router CNC machines] from a FreeCAD model. These produce real-world 3D objects on CNC machines such as mills, lathes, lasercutters, or similar. Typically, these instructions are some kind of [https://en.wikipedia.org/wiki/G-code GCode] dialect.




Line 10: Line 10:


<!--T:3-->
<!--T:3-->
The FreeCAD process to create these machine instructions is as follows:
The FreeCAD Path Workbench Workflow creates these machine instructions as follows:
* You create a 3D model of your object, probably using one ore several of [[PartDesign Workbench|Part Design]], [[Part Workbench|Part]] or [[Draft Workbench|Draft]] workbench.
* A 3D model is the base object, typically created using one or more of [[PartDesign Workbench|Part Design]], [[Part Workbench|Part]] or [[Draft Workbench|Draft]] Workbenches.
* You create a [[Path_Job|Job]] in Path Workbench. You can think of it as a job you have to do at a real mill: You have some stock material, the mill has a certain [[Path_EditToolsTable|set of tools]] and it follows certain commands controlling speed and movements (usually G-Code).
* A [[Path_Job|Job]] is created in Path Workbench. This contains all the information necessary to generate the necessary G-Code to process Job on a CNC mill: there is Stock material, the mill has a certain [[Path_EditToolsTable|set of tools]] and it follows certain commands controlling speed and movements (usually G-Code).
* You select the tools you need to get the job done.
* Tools are selected as required by the Job Operations.
* You create milling paths using e.g. [[Path_Profile|Contour]] and [[Path_Pocket|Pocket]] operations. These [[Path objects|Path objects]] use a slightly abstract G-Code represention which is independent from the machine.
* Milling paths are created using e.g. [[Path_Profile|Contour]] and [[Path_Pocket|Pocket]] Operations. These [[Path objects|Path objects]] use an internal agnostic FreeCAD G-Code dialect which is independent from the machine. This allows the Job to be output to any number of different real-world CNC Controllers by invoking different Postprocessors.
* Since each CNC Controller speaks a specific G-Code dialect, a Dialect-correct Postprocessor translates the internal agnostic FreeCAD G-Code to the machine's G-Code dialect. Several Postprocessors are included allowing direct use or as a template for modification. Postprocessors contain configuration flags and are designed to be tuned by adding G-Codes and M-Codes to provided definitions for:
* Finally, since each type of machine often speaks a different G-Code dialect, you use a machine dependent post processor to create G-Code which. This translates the FreeCAD G-Code into the particular flavor recognized by your machine. There are several postprocessors included which you can use directly or use as a template for creating your own.
**Machine initialization
**Job finalization
**Tool-Changes
**Cooling on /off
**Etc...


=== Links for the impatient ===
=== Links for the impatient ===
Line 23: Line 28:
* If you have a special machine which cannot use one of the available postprocessors you may want to [[Write your own Postprocessor for the Path Workbench|write your own postprocessor]]
* If you have a special machine which cannot use one of the available postprocessors you may want to [[Write your own Postprocessor for the Path Workbench|write your own postprocessor]]
* As an experienced user you may want to write a [[Writing Macros for the Path Workbench|macro for the Path Workbench]]
* As an experienced user you may want to write a [[Writing Macros for the Path Workbench|macro for the Path Workbench]]
* Power user wanting to streamline process
* Power users may want to streamline processes.
* New Developer wanting to understand core concepts.
* New Developers might want to understand core concepts.


== General concepts ==
== General concepts ==
The Path Workbench generates the G-Code defining the paths required to mill the Project represented by the 3D Model on the destination mill—in a simple agnostic G-Code dialect.
The Path Workbench generates the G-Code defining the paths required to mill the Project represented by the 3D model on the destination mill—in a simple agnostic G-Code dialect which is later translated to the appropriate dialect for the target CNC controller by selecting the proper 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 invoking Path Operations, Path Dressups, Path Partial Commands, and Path Modifications—from the Path Menu, or GUI buttons.
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.


A summery of the contents of the Path Job includes:
A summary of the contents of the Path Job includes:
# A list of Tool-Controller definitions, specifying the geometry, Feeds, and Speeds for the Path Operations Tools.
# A list of Tool-Controller definitions, specifying the geometry, Feeds, and Speeds for the Path Operations Tools.
# A Workflow sequential list of Path Operations.
# A Workflow sequential list of Path Operations.
Line 46: Line 51:
# Colors are defined in the Edit->Preferences...->Path->Path colors tab.
# Colors are defined in the Edit->Preferences...->Path->Path colors tab.
# Holding tag parameters are defined in the Edit->Preferences...->Path->Dressups tab.
# Holding tag parameters are defined in the Edit->Preferences...->Path->Dressups tab.
# That the Base 3D Model quality supports the Path WB requirements—passes Check Geometry.
# That the Base 3D model quality supports the Path WB requirements—passes Check Geometry.


FreeCAD Path Workbench internal G-Code dialect represents Feed rates in Units/Second—what the G-Code Inspection tool will show. The Postprocessor is configured to generate the appropriate Feed rates—either in Units/Second or Units/Minute for the target mill.
FreeCAD Path Workbench internal G-Code dialect represents Feed rates in Units/Second—what the G-Code Inspection tool will show. The Postprocessor is configured to generate the appropriate Feed rates—either in Units/Second or Units/Minute for the target mill.
Line 61: Line 66:


== FAQ ==<!--T:14-->
== FAQ ==<!--T:14-->
===How many axis Path workbench is be able to handle?===
===How many axes can Path Workbench handle?===
At the moment Path workbench can handle up to 3 axis.
At the moment Path Workbench can handle up to 3 axis.
===What is the difference between clearance height and safe height?===
===What is the difference between Clearance Height and Safe Height?===
You cant find more detail info in [[Template:Depths/Heights| depths and heights]].
You can find more detailed information in [[Template:Depths/Heights| depths and heights]].


===Why does my operation not produce any output?===
===Why does my operation not produce output?===
===Can Path workbench be used for 3d surfacing machining?===
===Can Path Workbench perform 3D surfacing machining?===
===Can i make my owm post processor?===
===Can I modify an existing, or make my own Postprocessor?===
===How can I set metric/imperial to my path object?===
===How I can set metric/imperial to my path object?===
===How can I simulate my strategies?===
===How I can simulate my strategies?===


===What is the meaning of red paths?===
===What is the significance of paths red and green colors?===
===How can I check my G code sequence for correctness?===
===How do I check that my G-Code sequence is right?===
<!--T:15-->
<!--T:15-->
[[Category:User Documentation]]
[[Category:User Documentation]]

Revision as of 21:35, 15 January 2018

Introduction

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



The FreeCAD Path Workbench Workflow creates these machine instructions as follows:

  • A 3D model is the base object, typically created using one or more of Part Design, Part or Draft Workbenches.
  • A Job is created in Path Workbench. This contains all the information necessary to generate the necessary G-Code to process 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 an internal agnostic FreeCAD G-Code dialect which is independent from the machine. This allows the Job to be output to any number of different real-world CNC Controllers by invoking different Postprocessors.
  • Since each CNC Controller speaks a specific G-Code dialect, a Dialect-correct Postprocessor translates the internal agnostic FreeCAD G-Code to the machine's G-Code dialect. Several Postprocessors are included allowing direct use or as a template for modification. Postprocessors contain configuration flags and are designed to be tuned by adding G-Codes and M-Codes to provided definitions for:
    • Machine initialization
    • Job finalization
    • Tool-Changes
    • Cooling on /off
    • Etc...

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.
  • If you have a special machine which cannot use one of the available postprocessors you may want to write your own postprocessor
  • As an experienced user you may want to write a macro for the Path Workbench
  • Power users may want to streamline processes.
  • New Developers might want to understand core concepts.

General concepts

The Path Workbench generates the G-Code defining the paths required to mill the Project represented by the 3D model on the destination mill—in a simple agnostic G-Code dialect which is later translated to the appropriate dialect for the target CNC controller by selecting the proper 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.

A summary of the contents of the Path Job includes:

  1. A list of Tool-Controller definitions, specifying the geometry, Feeds, and Speeds for the Path Operations Tools.
  2. A Workflow sequential list of Path Operations.
  3. A Base Body—a clone used for offset.
  4. A Stock, representing the raw material that will be milled to Path Workbench.
  5. A SetupSheet, containing inputs used by the Path Operations, including static values and formulas.
  6. Configuration parameters specifying the output G-Code job's destination path, file name, and extension, and the Postprocessor—used to generate the appropriate dialect for the target CNC Controller, and customize Units, Tool Changes, Parking, etc...

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

The Path Workbench has external dependencies including:

  1. The FreeCAD 3D model units are defined in the Edit-> Preference...->General->Units tab's Units settings. The Postprocessor configuration defines the final G-Code units.
  2. The Macro file path, and Geometric tolerances, are defined in the Edit->Preferences...->Path->Job Preferences tab.
  3. Colors are defined in the Edit->Preferences...->Path->Path colors tab.
  4. Holding tag parameters are defined in the Edit->Preferences...->Path->Dressups tab.
  5. That the Base 3D model quality supports the Path WB requirements—passes Check Geometry.

FreeCAD Path Workbench internal G-Code dialect represents Feed rates in Units/Second—what the G-Code Inspection tool will show. The Postprocessor is configured to generate the appropriate Feed rates—either in Units/Second or Units/Minute for the target mill.

GUI tools

Template:Path Tools

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.

FAQ

How many axes can Path Workbench handle?

At the moment Path Workbench can handle up to 3 axis.

What is the difference between Clearance Height and Safe Height?

You can find more detailed information in depths and heights.

Why does my operation not produce output?

Can Path Workbench perform 3D surfacing machining?

Can I modify an existing, or make my own Postprocessor?

How I can set metric/imperial to my path object?

How I can simulate my strategies?

What is the significance of paths red and green colors?

How do I check that my G-Code sequence is right?