Path Workbench/hr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(6 intermediate revisions by the same user not shown)
Line 9: Line 9:


[[Image:Workbench_Path.svg|thumb|128px|Path workbench icon]]
[[Image:Workbench_Path.svg|thumb|128px|Path workbench icon]]

{{TOCright}}


== Introduction ==
== Introduction ==


The [[Image:Workbench_Path.svg|24px]] [[Path_Workbench|Path Workbench]] is used to produce machine instructions for [https://en.wikipedia.org/wiki/CNC_router 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 [https://en.wikipedia.org/wiki/G-Code G-Code] dialect.
The [[Image:Workbench_Path.svg|24px]] [[Path_Workbench|Path Workbench]] is used to produce machine instructions for [https://en.wikipedia.org/wiki/CNC_router 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 [https://en.wikipedia.org/wiki/G-code G-code] dialect. A [https://www.ange-softs.com/SIMULCNCHTML/index.html general CNC lathe tool path sequence simulation example] is presented here.


[[Image:pathwb.png|600px]]
{{TOCright}}
[[Image:pathwb.png|none|600px]]


The FreeCAD Path Workbench workflow creates these machine instructions as follows:
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 the [[PartDesign_Workbench|Part Design]], [[Part_Workbench|Part]] or [[Draft_Workbench|Draft]] Workbenches.
* A 3D model is the base object, typically created using one or more of the [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench|Part Design]], [[Image:Workbench_Part.svg|24px]] [[Part_Workbench|Part]] or [[Image:Workbench_Draft.svg|24px]] [[Draft_Workbench|Draft]] Workbenches.
* A [[Path_Job|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 [[Path_ToolLibraryEdit|set of tools]] and it follows certain commands controlling speed and movements (usually G-Code).
* A [[Path_Job|Path Job]] is created in the 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 [[Path_ToolLibraryEdit|set of tools]] and it follows certain commands controlling speed and movements (usually G-code).
* Tools are selected as required by the Job Operations.
* [[Path_Tools|Path Tools]] are selected as required by the Job Operations.
* Milling paths are created using e.g. [[Path_Profile|Contour]] and [[Path_Pocket_3D|Pocket]] Operations. These [[Path objects|Path objects]] use internal FreeCAD G-Code dialect, independent of the CNC machine.
* Milling paths are created using e.g. [[Path_Profile|Contour]] and [[Path_Pocket_3D|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.
* Export the job with a G-code, matching to your machine. This step is called ''post processing''; there are different post processors available.


== General concepts ==
=== Links for the impatient ===
Depending on your interest in the Path workbench there are different topics for further reading:


The Path Workbench generates G-code defining the paths required to mill the Project represented by the 3D model on the target mill in [[Path_scripting#The_FreeCAD_Internal_GCode_Format|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.
* If you are a new new user trying to get familiar with Path, you might be interested in a fast [[Path Walkthrough for the Impatient|walk-through]] tutorial.
* If you have a special machine which cannot use one of the available postprocessors you may want to learn about [[Path_Postprocessor_Customization|post-processor customization]]
* As an experienced user you may want to write a macro or automate a process might need to learn about [[Path_scripting|scripting]]
* Power users who want to streamline their workflow can learn about [[Path_Customization|customization]].
* New developers who want to contribute to path might want to understand [[Path_Core_Concepts|core concepts]] and read the [[Path_Development_Roadmap|Development Roadmap]].


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 Supplemental Commands, and Path Modifications from the Path Menu, or GUI buttons.
== 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 [[Path_scripting#The_FreeCAD_Internal_GCode_Format|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.
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.


The Path Workbench has external dependencies including:
The Path Workbench has external dependencies including:
# The FreeCAD 3D model units are defined in the {{MenuCommand|Edit → Preference → General → Units tab's Units settings}}. The Postprocessor configuration defines the final G-Code units.
# The FreeCAD 3D model units are defined in the {{MenuCommand|Edit → Preference → General → Units tab's Units settings}}. The Postprocessor configuration defines the final G-code units.
# The Macro file path, and Geometric tolerances, are defined in the {{MenuCommand|Edit → Preferences → Path → Job Preferences}} tab.
# The Macro file path, and Geometric tolerances, are defined in the {{MenuCommand|Edit → Preferences → Path → Job Preferences}} tab.
# Colors are defined in the {{MenuCommand|Edit → Preferences → Path → Path colors}} tab.
# Colors are defined in the {{MenuCommand|Edit → Preferences → Path → Path colors}} tab.
Line 50: Line 43:


Some current limitations of which you should be aware are:
Some current limitations of which you should be aware are:
* Most of the Path Tools are not true 3D tools but only 2.5D capable. This means that they take a fixed 2D shape and can cut it down to a given depth. However, there are two tools which produce true 3D paths: {{KEY|[[Image:Path_3DPocket.svg|24px]] [[Path_Pocket_3D|3D Pocket]]}} and {{KEY|[[Image:Path 3DSurface.svg|24px]] [[Path_3DSurface|3D Surface]]}} (which is still an [[Path_experimental|experimental feature]] as of November 2020).
* Most of the Path Tools are not true 3D tools but only 2.5D capable. This means that they take a fixed 2D shape and can cut it down to a given depth. However, there are two tools which produce true 3D paths: {{KEY|[[Image:Path_3DPocket.svg|24px]] [[Path_Pocket_3D|3D Pocket]]}} and {{KEY|[[Image:Path_Surface.svg|24px]] [[Path_Surface|3D Surface]]}} (which is still an [[Path_experimental|experimental feature]] as of November 2020).
* Most of Path workbench is designed for a simple, standard 3-axis (xyz) CNC mill/router, but lathe tools are under development in 0.19_pre.
* Most of Path workbench is designed for a simple, standard 3-axis (xyz) CNC mill/router, but lathe tools are under development in 0.19_pre.
* Most operations in Path workbench will return paths based on a standard endmill tool/bit only, regardless of the tool/bit type assigned in a given tool controller with the exception of the {{KEY|[[Image:Path_Engrave.svg|24px]] [[Path_Engrave|Engrave]]}} and {{KEY|[[Image:Path 3DSurface.svg|24px]] [[Path_3DSurface|3D Surface]]}} operations.
* Most operations in Path workbench will return paths based on a standard endmill tool/bit only, regardless of the tool/bit type assigned in a given tool controller with the exception of the {{KEY|[[Image:Path_Engrave.svg|24px]] [[Path_Engrave|Engrave]]}} and {{KEY|[[Image:Path_Surface.svg|24px]] [[Path_Surface|3D Surface]]}} operations.
* The operations within the Path workbench are not aware of clamping mechanisms in use to secure the model to your machine. Consequently, please review and simulate the paths you generate prior to sending the code to your machine. If necessary, model your clamping mechanisms in FreeCAD in order to better inspect the paths generated. Look for possible collisions with clamps or other obstacles along the paths.
* The operations within the Path workbench are not aware of clamping mechanisms in use to secure the model to your machine. Consequently, please review and simulate the paths you generate prior to sending the code to your machine. If necessary, model your clamping mechanisms in FreeCAD in order to better inspect the paths generated. Look for possible collisions with clamps or other obstacles along the paths.


Line 76: Line 69:
# 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
# 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


== Heights and depths ==
==Path Commands==

Many of the commands have various heights and depths:
Many of the commands have various heights and depths:

[[File:Path-DepthsAndHeights.gif|center|500px]]
[[File:Path-DepthsAndHeights.gif|500px]]
{{Caption|Visual reference for Depth properties (settings)}}
{{Caption|Visual reference for Depth properties (settings)}}


== Commands ==


Some commands are experimental and not available by default. To enable them see [[Path_experimental|Path experimental]].
===Jobs, Tools, and Generating G-Code===
These commands are used for seting up a CNC project (a Job object), managing your Job templates, creating a tool(cutter) with its tool controller, and post processing the Job.


=== Project Commands ===
* [[Image:Path_Job.svg|32px]] [[Path_Job|Job]]: Creates a new CNC job


* [[Image:Path_ExportTemplate.svg|32px]] [[Path_ExportTemplate|Export Template]]: Export the current job as a template
* [[Image:Path_Job.svg|32px]] [[Path_Job|Job]]: Creates a new CNC job.


* [[Image:Path_ToolLibraryEdit.svg|32px]] [[Path_ToolLibraryEdit|Tool Manager]]: Edit the Tool Manager
* [[Image:Path_Post.svg|32px]] [[Path_Post|Post Process]]: Exports a project to G-code.


* [[File:Path_Sanity.svg|32px]] [[Path_Sanity|Check the path job for common errors]]: Checks the selected job for missing values. [[Path_experimental|{{Emphasis|Experimental}}]]. {{Version|0.19}}
* [[Image:Path_PostProcess.svg|32px]] [[Path_Post|Post Process]]: Exports a project to G-code


* [[Image:Path_ExportTemplate.svg|32px]] [[Path_ExportTemplate|Export Template]]: Export the current job as a template.
* [[Path_Tools|Path Tools]] '''''(0.19_pre)''''': Manage tools, bits, and the Tool Library


===Basic Path Operations===
=== Tool Commands ===


* [[File:Path_Inspect.svg|32px]] [[Path_Inspect|Inspect G-code]]: Shows the G-code for checking.


* [[File:Path_Simulator.svg|32px]] [[Path_Simulator|CAM Simulator]]: Shows the milling operation like it's done on the machine.
* [[Image:Path_Profile.svg|32px]] [[Path_Profile|Profile]] (New in 0.19): Creates a profile operation of the entire model, or from one or more selected faces or edges. This operation combined the pre-existing Contour, Profile Faces, and Profile Edges operations.


* [[Image:Path_Pocket.svg|32px]] [[Path_Pocket_Shape|Pocket]]: Creates a pocketing operation from one ore more selected pocket(s)
* [[File:Path_SelectLoop.svg|32px]] [[Path_SelectLoop|Finish Selecting Loop]]: Completes a loop from two selected edges.


* [[Image:Path_Slot.svg|32px]] [[Path_Slot|Slot]] (New in 0.19): Creates a slotting operation from selected features or custom points
* [[Image:Path_OpActiveToggle.svg|32px]] [[Path_OpActiveToggle|Toggle the Active State of the Operation]]: Activates or de-activates a path operation.


* [[Image:Path_ToolBitLibraryOpen.svg|32px]] [[Path_ToolBitLibraryOpen|ToolBit Library editor]]: Opens an editor to manage ToolBit libraries. {{Version|0.19}}
* [[Image:Path_Drilling.svg|32px]] [[Path_Drilling|Drilling]]: Performs a drilling cycle


* [[Image:Path_Adaptive.svg|32px]] [[Path_Adaptive|Adaptive]]: Creates an adaptive clearing and profiling operation
* [[Image:Path_ToolBitDock.svg|32px]] [[Path_ToolBitDock|ToolBit Dock]]: Toggles the ToolBit Dock. {{Version|0.19}}


=== Basic Operations ===
* [[Image:Path_Engrave.svg|32px]] [[Path_Engrave|Engrave]]: Creates a engraving path


* [[Image:Path_Face.svg|32px]] [[Path_MillFace|Mill Face]]: Creates a surfacing path
* [[Image:Path_Profile.svg|32px]] [[Path_Profile|Profile]]: Creates a profile operation of the entire model, or from one or more selected faces or edges. {{Version|0.19}}


* [[Image:Path_Helix.svg|32px]] [[Path_Helix|Helix]]: Creates a helical path
* [[Image:Path_Pocket_Shape.svg|32px]] [[Path_Pocket_Shape|Pocket Shape]]: Creates a pocketing operation from one ore more selected pocket(s).


* [[Image:Path_3DPocket.svg|32px]] [[Path_Pocket_3D|3D Pocket]]: Creates a path for a 3D pocket
* [[Image:Path_Drilling.svg|32px]] [[Path_Drilling|Drilling]]: Performs a drilling cycle.


* [[Image:Path_Vcarve.svg|32px]] [[Path_Vcarve|Vcarve]]: Creates a path for a 3D pocket
* [[Image:Path_Face.svg|32px]] [[Path_MillFace|Face]]: Creates a surfacing path.


* [[Image:Path_Helix.svg|32px]] [[Path_Helix|Helix]]: Creates a helical path.
===Path Dressup===


* [[Image:Path_DressupPathBoundary.svg|32px]] [[Path_DressupPathBoundary|Boundary Dressup]]: Adds a boundary dressup modification to a selected path
* [[Image:Path_Adaptive.svg|32px]] [[Path_Adaptive|Adaptive]]: Creates an adaptive clearing and profiling operation.


* [[Image:Path_Slot.svg|32px]] [[Path_Slot|Slot]]: Creates a slotting operation from selected features or custom points. [[Path_experimental|{{Emphasis|Experimental}}]]. {{Version|0.19}}
* [[Image:Path_DressupDogbone.svg|32px]] [[Path_DressupDogbone|Dogbone Dressup]]: Adds a dogbone dressup modification to a selected path


* [[Image:Path_DressupDragKnife.svg|32px]] [[Path_DressupDragKnife|Dragknife Dressup]]: Adds a dragknife dressup modification to a selected path
* [[Image:Path_Engrave.svg|32px]] [[Path_Engrave|Engrave]]: Creates an engraving path.


* [[Image:Path_DressupLeadInOut.svg|32px]] [[Path_DressupLeadInOut|Lead In Dressup]]: Adds a lead-in and/or lead-out point to a selected path
* [[Image:Path_Vcarve.svg|32px]] [[Path_Vcarve|Vcarve]]: Creates an engraving path using a V tool shape. {{Version|0.19}}


=== 3D Operations ===
* [[Image:Path_DressupRampEntry.svg|32px]] [[Path_DressupRampEntry|Ramp Entry Dressup]]: Adds ramp entry dressup modification to a selected path


* [[Image:Path_DressupTag.svg|32px]] [[Path_DressupTag|Tag Dressup]]: Adds a holding tag dressup modification to a selected path
* [[Image:Path_3DPocket.svg|32px]] [[Path_Pocket_3D|3D Pocket]]: Creates a path for a 3D pocket.


* [[Image:Path_Surface.svg|32px]] [[Path_Surface|3D Surface]]: Creates a path for a 3D surface. [[Path_experimental|{{Emphasis|Experimental}}]]. {{Version|0.19}}
===Partial Commands===


* [[Image:Path_Waterline.svg|32px]] [[Path_Waterline|Waterline]]: Creates a waterline path for a 3D surface. [[Path_experimental|{{Emphasis|Experimental}}]]. {{Version|0.19}}
* [[Image:Path_Fixture.svg|32px]] [[Path_Fixture|Fixture]]: Changes the fixture position


=== Path Dressup ===
* [[Image:Path_Comment.svg|32px]] [[Path_Comment|Comment]]: Inserts a comment in the G-code of a path


* [[Image:Path_Stop.svg|32px]] [[Path_Stop|Stop]]: Inserts a full stop of the machine
* [[Image:Path_DressupPathBoundary.svg|32px]] [[Path_DressupPathBoundary|Boundary Dressup]]: Adds a boundary dressup modification to a selected path.


* [[Image:Path_Custom.svg|32px]] [[Path_Custom|Custom]]: Inserts custom G-code
* [[Image:Path_DressupDogbone.svg|32px]] [[Path_DressupDogbone|Dogbone Dressup]]: Adds a dogbone dressup modification to a selected path.


* [[Image:Path_Shape.svg|32px]] [[Path_Shape|Gcode from a Shape]]: Creates a path object from a selected Part object
* [[Image:Path_DressupDragKnife.svg|32px]] [[Path_DressupDragKnife|DragKnife Dressup]]: Adds a dragknife dressup modification to a selected path.


* [[Image:Path_OpActiveToggle.svg|32px]] [[Path_OpActiveToggle|Op Active]]: Used to activate or de-activate a path operation
* [[Image:Path_DressupLeadInOut.svg|32px]] [[Path_DressupLeadInOut|LeadInOut Dressup]]: Adds a lead-in and/or lead-out point to a selected path.


* [[Image:Path_DressupRampEntry.svg|32px]] [[Path_DressupRampEntry|RampEntry Dressup]]: Adds ramp entry dressup modification to a selected path.
===Path Modification===


* [[Image:Path_Copy.svg|32px]] [[Path_Copy|Copy]]: Creates a parametric Copy of a selected path object
* [[Image:Path_DressupTag.svg|32px]] [[Path_DressupTag|Tag Dressup]]: Adds a holding tag dressup modification to a selected path.


=== Supplemental Commands ===
* [[Image:Path_Array.svg|32px]] [[Path_Array|Array]]: Creates an array by duplicating a selected path


* [[Image:Path_SimpleCopy.svg|32px]] [[Path_SimpleCopy|Simple Copy]]: Creates a non-parametric copy of a selected path object
* [[Image:Path_Fixture.svg|32px]] [[Path_Fixture|Fixture]]: Changes the fixture position.


* [[Image:Path_Comment.svg|32px]] [[Path_Comment|Comment]]: Inserts a comment in the G-code of a path.
===Path Utilities===


* [[File:Path_Inspect.svg|32px]] [[Path_Inspect|G-Code Inspector]]: Shows the G-code for checking
* [[Image:Path_Stop.svg|32px]] [[Path_Stop|Stop]]: Inserts a full stop of the machine.


* [[File:Path_Simulator.svg|32px]] [[Path_Simulator|Simulator]]: Shows the milling operation like it's done on the machine
* [[Image:Path_Custom.svg|32px]] [[Path_Custom|Custom]]: Inserts custom G-code.


* [[Image:Path_Shape.svg|32px]] [[Path_Shape|From Shape]]: Creates a path object from a selected Part object. [[Path_experimental|{{Emphasis|Experimental}}]].
===Other===


=== Path Modification ===
* [[Image:Path_3DSurface.svg|32px]] [[Path_3DSurface|3D Surface]]: Creates a path for a 3D surface ( experimental , December 2019 )


* [[Image:Path_Waterline.svg|32px]] [[Path_Waterline|Waterline]]: Creates a waterline path for a 3D surface ( experimental , 0.19_pre )
* [[Image:Path_Copy.svg|32px]] [[Path_Copy|Copy the operation in the job]]: Creates a parametric Copy of a selected path object.


* [[Image:Path_Area.svg|32px]] [[Path_Area|Feature area]]: Creates a feature area from selected objects
* [[Image:Path_Array.svg|32px]] [[Path_Array|Array]]: Creates an array by duplicating a selected path.


* [[Image:Path_Area_Workplane.svg|32px]] [[Path_Area_Workplane|Feature area workplane]]: Creates a feature area workplane
* [[Image:Path_SimpleCopy.svg|32px]] [[Path_SimpleCopy|Simple Copy]]: Creates a non-parametric copy of a selected path object.


=== Miscellaneous ===
* [[File:Path_Sanity.svg|32px]] [[Path_Sanity|Path Errors]]: Checks the selected Job for missing values


* [[File:Path_SelectLoop.svg|32px]] [[Path_SelectLoop|Complete Loop]]: Completes a loop from two selected edges
* [[Image:Path_Area.svg|32px]] [[Path_Area|Area]]: Creates a feature area from selected objects. [[Path_experimental|{{Emphasis|Experimental}}]].


* [[Image:Path_Area_Workplane.svg|32px]] [[Path_Area_Workplane|Area workplane]]: Creates a feature area workplane. [[Path_experimental|{{Emphasis|Experimental}}]].
* [[Fourth Axis]]: Developmental four axis milling


=== Obsolete ===

* [[Image:Path_ToolLibraryEdit.svg|32px]] [[Path_ToolLibraryEdit|Tool Manager]]: Edit the Tool Manager. 'Legacy' tool system. {{VersionMinus|0.18}}

== ToolBit architecture ==

Manage tools, bits, and the Tool Library. Based on the ToolBit architecture. {{Version|0.19}}

* [[Path_Tools|Path Tools]]
* [[Path_ToolShape|Path ToolShape]]
* [[Path_ToolBit|Path ToolBit]]
* [[Path_ToolBit_Library|Path ToolBit Library]]
* [[Path_ToolController|Path ToolController]]

== Other ==

* [[Path_FAQ|Path FAQ]]: The Path Workbench shares many concepts with other CAM software packages but has its own peculiarities. If something seems wrong this is a good place to start.
* [[Path_SetupSheet|Path SetupSheet]]: You can use a SetupSheet to customize how various property values for operations are calculated.
* [[Path_Postprocessor_Customization|Path Postprocessor Customization]]: If you have a special machine which cannot use one of the available post-processors you may need to write your own post-processor.
* [[Path_fourth_axis|Path fourth axis]]: Experimental four axis milling.

<div class="mw-translate-fuzzy">
===Postavke===
===Postavke===
</div>


* [[Image:Std_DlgPreferences.svg|32px]] [[Path_Preferences|Preferences...]]: Preferences available in Path Tools.
* [[Image:Preferences-path.svg|32px]] [[Path_Preferences|Preferences...]]: Preferences available for the Path Workbench.


== Scripting ==
== Scripting ==


See the [[Path scripting]] page.
See [[Path_scripting|Path scripting]].

== Tutorials ==

* [[Path_Walkthrough_for_the_Impatient|Path Walkthrough for the Impatient]]: a quick tutorial to get familiar with Path.


== Videos ==
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.


* [https://www.youtube.com/playlist?list=PLEuOia-QxyFKgzAeTyH62GKqWKVURiWJL FreeCAD Path: Custom paths with Python - Part 1 - 5]: a playlist with a series of 5 videos in English by sliptonic. This series shows how to work with the [[Path_Workbench|Path Workbench]].
== FAQ ==
* [https://www.youtube.com/playlist?list=PLUrr_kHPp4vhGdLlj6IemtF-OPUlRvSTC FreeCAD CAM Path Workbench]: a playlist with a series of 7 videos in English by CAD CAM Lessons.
* [https://www.youtube.com/playlist?list=PLUrr_kHPp4vh2n6DcIlegK4dEKIFjmISJ FreeCAD CAM CNC] a playlist with a series of 8 videos in English by CAD CAM Lessons.


== Roadmap ==
See the [[Path FAQ]]


* [[Path_Development_Roadmap|Path Development Roadmap]]: Read this if you are a developer and want to contribute to Path.
The Path Workbench shares many concepts with other CAM software packages but has its own peculiarities. If something seems wrong, this might be a good place to start.




Line 200: Line 225:
}}
}}


{{Path_Tools_navi{{#translation:}}}}
{{clear}}
{{Path Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]
[[Category:Workbenches{{#translation:}}]]

Revision as of 16:28, 5 March 2022


Path workbench icon

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 general CNC lathe tool path sequence simulation example is presented here.

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 the Part Design, Part or Draft Workbenches.
  • A Path Job is created in the 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).
  • Path 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.

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

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 workbench requirements, passes Check Geometry.

Limitations

Some current limitations of which you should be aware are:

  • Most of the Path Tools are not true 3D tools but only 2.5D capable. This means that they take a fixed 2D shape and can cut it down to a given depth. However, there are two tools which produce true 3D paths: 3D Pocket and 3D Surface (which is still an experimental feature as of November 2020).
  • Most of Path workbench is designed for a simple, standard 3-axis (xyz) CNC mill/router, but lathe tools are under development in 0.19_pre.
  • Most operations in Path workbench will return paths based on a standard endmill tool/bit only, regardless of the tool/bit type assigned in a given tool controller with the exception of the Engrave and 3D Surface operations.
  • The operations within the Path workbench are not aware of clamping mechanisms in use to secure the model to your machine. Consequently, please review and simulate the paths you generate prior to sending the code to your machine. If necessary, model your clamping mechanisms in FreeCAD in order to better inspect the paths generated. Look for possible collisions with clamps or other obstacles along the paths.

Jedinice

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

  1. 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
  2. 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'
  3. 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:

  1. 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
  2. Changing your preferred unit schema will have no effect on output but will help avoid input errors

Output:

  1. Generating the correct unit in output is the responsibility of the post-processor and is done only at that time
  2. Machine output unit is completely unrelated to your selected unit schema
  3. Post-processors produce either metric (G21) output, Imperial (G20) output or are configurable.
  4. Configurable post-processors default to metric (G21)
  5. 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:

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

Heights and depths

Many of the commands have various heights and depths:

Visual reference for Depth properties (settings)

Commands

Some commands are experimental and not available by default. To enable them see Path experimental.

Project Commands

  • Job: Creates a new CNC job.

Tool Commands

  • CAM Simulator: Shows the milling operation like it's done on the machine.

Basic Operations

  • Pocket Shape: Creates a pocketing operation from one ore more selected pocket(s).
  • Face: Creates a surfacing path.
  • Helix: Creates a helical path.
  • Adaptive: Creates an adaptive clearing and profiling operation.
  • Engrave: Creates an engraving path.

3D Operations

Path Dressup

  • Tag Dressup: Adds a holding tag dressup modification to a selected path.

Supplemental Commands

  • Fixture: Changes the fixture position.
  • Comment: Inserts a comment in the G-code of a path.
  • Stop: Inserts a full stop of the machine.
  • Custom: Inserts custom G-code.

Path Modification

  • Array: Creates an array by duplicating a selected path.
  • Simple Copy: Creates a non-parametric copy of a selected path object.

Miscellaneous

Obsolete

  • Tool Manager: Edit the Tool Manager. 'Legacy' tool system. version 0.18 and below

ToolBit architecture

Manage tools, bits, and the Tool Library. Based on the ToolBit architecture. introduced in version 0.19

Other

  • Path FAQ: The Path Workbench shares many concepts with other CAM software packages but has its own peculiarities. If something seems wrong this is a good place to start.
  • Path SetupSheet: You can use a SetupSheet to customize how various property values for operations are calculated.
  • Path Postprocessor Customization: If you have a special machine which cannot use one of the available post-processors you may need to write your own post-processor.
  • Path fourth axis: Experimental four axis milling.

Postavke

Scripting

See Path scripting.

Tutorials

Videos

Roadmap