Path Workbench: Difference between revisions
m (3D pocket ( experimental )) |
m (limit size of an image) |
||
(43 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
<translate> |
<translate> |
||
<!--T:86--> |
<!--T:86--> |
||
{{Docnav |
|||
{{docnav|[[PartDesign Workbench|PartDesign Workbench]]|[[Plot Workbench|Plot Workbench]]|IconL=Workbench_PartDesign.svg|IconR=Workbench_Plot.svg}} |
|||
|[[PartDesign Workbench|PartDesign Workbench]] |
|||
|[[Plot Workbench|Plot Workbench]] |
|||
|IconL=Workbench_PartDesign.svg |
|||
|IconR=Workbench_Plot.svg |
|||
}} |
|||
⚫ | |||
⚫ | |||
[[Image: |
[[Image:Workbench_Path.svg|thumb|128px|Path workbench icon]] |
||
<translate> |
|||
== Introduction == <!--T:1--> |
== Introduction == <!--T:1--> |
||
<!--T:2--> |
<!--T:2--> |
||
The Path |
The [[Image:Workbench_Path.svg|24px]] [[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. |
||
</translate> |
</translate> |
||
Line 52: | Line 56: | ||
# Holding tag parameters are defined in the {{MenuCommand|Edit → Preferences → Path → Dressups}} tab. |
# Holding tag parameters are defined in the {{MenuCommand|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. |
||
== Limitations == <!--T:91--> |
|||
<!--T:92--> |
|||
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. There are two tools which produce true 3D paths, one of which is still experimental ( December 2019 ). |
|||
There are currently no tools to face-mill a vertical face or to cut vertical non planar surfaces of a model. |
|||
== Units == <!--T:78--> |
== Units == <!--T:78--> |
||
Line 80: | Line 90: | ||
==Path Commands== <!--T:37--> |
==Path Commands== <!--T:37--> |
||
Many of the commands have various heights and depths: |
Many of the commands have various heights and depths: |
||
[[File:Path-DepthsAndHeights.gif|center]] |
[[File:Path-DepthsAndHeights.gif|center|500px]] |
||
{{Caption|Visual reference for Depth properties (settings)}} |
{{Caption|Visual reference for Depth properties (settings)}} |
||
Line 88: | Line 98: | ||
<!--T:39--> |
<!--T:39--> |
||
* [[Image: |
* [[Image:Path_Job.svg|32px]] [[Path_Job|Job]]: Creates a new CNC job |
||
<!--T:40--> |
<!--T:40--> |
||
* [[Image:Path_PostProcess. |
* [[Image:Path_PostProcess.svg|32px]] [[Path_Post|Post Process]]: Exports a project to G-code |
||
<!--T:41--> |
<!--T:41--> |
||
* [[Image: |
* [[Image:Path_ExportTemplate.svg|32px]] [[Path_ExportTemplate|Export Template]]: Export the current job as a template |
||
<!--T:42--> |
<!--T:42--> |
||
* [[File:Path_Inspect. |
* [[File:Path_Inspect.svg|32px]] [[Path_Inspect|G-Code Inspector]]: Shows the G-code for checking |
||
<!--T:43--> |
<!--T:43--> |
||
Line 106: | Line 116: | ||
<!--T:45--> |
<!--T:45--> |
||
* [[File: |
* [[File:Path_SelectLoop.svg|32px]] [[Path_SelectLoop|Complete Loop]]: Completes a loop from two selected edges |
||
<!--T:46--> |
<!--T:46--> |
||
* [[File:Path_Contour. |
* [[File:Path_Contour.svg|32px]] [[Path_Contour|Contour]]: Creates a path of the contour of the base object |
||
<!--T:47--> |
<!--T:47--> |
||
* [[Image: |
* [[Image:Path_Profile_Face.svg|32px]] [[Path_ProfileFace|Profile from Face]]: Creates a profiling path from a selected face |
||
<!--T:48--> |
<!--T:48--> |
||
* [[Image: |
* [[Image:Path_Profile_Edges.svg|32px]] [[Path_ProfileEdges|Profile from Edges]]: Creates a profiling path from selected edges |
||
<!--T:49--> |
<!--T:49--> |
||
* [[Image:Path_Pocket. |
* [[Image:Path_Pocket.svg|32px]] [[Path_Pocket_Shape|Pocket]]: Creates a pocketing operation from one ore more selected pocket(s) |
||
<!--T:50--> |
<!--T:50--> |
||
* [[Image:Path_Drilling. |
* [[Image:Path_Drilling.svg|32px]] [[Path_Drilling|Drilling]]: Performs a drilling cycle |
||
<!--T:90--> |
<!--T:90--> |
||
* [[Image: |
* [[Image:Path_Adaptive.svg|32px]] [[Path_Adaptive|Adaptive]]: Creates an adaptive clearing and profiling operation |
||
<!--T:51--> |
<!--T:51--> |
||
* [[Image: |
* [[Image:Path_Engrave.svg|32px]] [[Path_Engrave|Engrave]]: Creates a engraving path |
||
<!--T:52--> |
<!--T:52--> |
||
* [[Image: |
* [[Image:Path_Face.svg|32px]] [[Path_MillFace|Mill Face]]: Creates a surfacing path |
||
<!--T:53--> |
<!--T:53--> |
||
* [[Image: |
* [[Image:Path_Helix.svg|32px]] [[Path_Helix|Helix]]: Creates a helical path |
||
<!--T:54--> |
<!--T:54--> |
||
* [[Image: |
* [[Image:Path_3DPocket.svg|32px]] [[Path_Pocket_3D|3D Pocket]]: Creates a path for a 3D pocket |
||
===Path Dressup=== <!--T:55--> |
===Path Dressup=== <!--T:55--> |
||
<!--T:93--> |
|||
* [[Image:Path_DressupDogbone.png|32px]] [[Path_DressupBoundary|Boundary Dressup]]: Adds a boundary dressup modification to a selected path |
|||
<!--T:56--> |
<!--T:56--> |
||
Line 161: | Line 175: | ||
<!--T:65--> |
<!--T:65--> |
||
* [[Image:Path_Comment. |
* [[Image:Path_Comment.svg|32px]] [[Path_Comment|Comment]]: Inserts a comment in the G-code of a path |
||
<!--T:66--> |
<!--T:66--> |
||
* [[Image:Path_Stop. |
* [[Image:Path_Stop.svg|32px]] [[Path_Stop|Stop]]: Inserts a full stop of the machine |
||
<!--T:67--> |
<!--T:67--> |
||
* [[Image:Path_Custom. |
* [[Image:Path_Custom.svg|32px]] [[Path_Custom|Custom]]: Inserts custom G-code |
||
<!--T:68--> |
<!--T:68--> |
||
Line 178: | Line 192: | ||
<!--T:70--> |
<!--T:70--> |
||
* [[Image:Path_Copy. |
* [[Image:Path_Copy.svg|32px]] [[Path_Copy|Copy]]: Creates a parametric Copy of a selected path object |
||
<!--T:71--> |
<!--T:71--> |
||
* [[Image:Path_Array. |
* [[Image:Path_Array.svg|32px]] [[Path_Array|Array]]: Creates an array by duplicating a selected path |
||
<!--T:72--> |
<!--T:72--> |
||
* [[Image:Path_SimpleCopy. |
* [[Image:Path_SimpleCopy.svg|32px]] [[Path_SimpleCopy|Simple Copy]]: Creates a non-parametric copy of a selected path object |
||
===Other=== <!--T:73--> |
===Other=== <!--T:73--> |
||
<!--T:74--> |
<!--T:74--> |
||
* [[Image: |
* [[Image:Path_3DSurface.svg|32px]] [[Path_3DSurface|3D Surface]]: Creates a path for a 3D surface ( experimental , December 2019 ) |
||
<!--T:75--> |
<!--T:75--> |
||
* [[Image: |
* [[Image:Path_Area.svg|32px]] [[Path_Area|Feature area]]: Creates a feature area from selected objects |
||
<!--T:76--> |
<!--T:76--> |
||
* [[Image: |
* [[Image:Path_Area_Workplane.svg|32px]] [[Path_Area_Workplane|Feature area workplane]]: Creates a feature area workplane |
||
<!--T:77--> |
<!--T:77--> |
||
* [[File:Path_Sanity. |
* [[File:Path_Sanity.svg|32px]] [[Path_Sanity|Path Errors]]: Checks the selected Job for missing values |
||
<!--T:88--> |
<!--T:88--> |
||
Line 206: | Line 220: | ||
<!--T:84--> |
<!--T:84--> |
||
* [[Image:Std_DlgParameter. |
* [[Image:Std_DlgParameter.svg|32px]] [[Path_Preferences|Preferences...]]: Preferences disposable in Path Tools. |
||
== Scripting == <!--T:12--> |
== Scripting == <!--T:12--> |
||
Line 225: | Line 239: | ||
<!--T:34--> |
<!--T:34--> |
||
{{Docnav |
|||
{{docnav|[[PartDesign Workbench|PartDesign Workbench]]|[[Plot Workbench|Plot Workbench]]|IconL=Workbench_PartDesign.svg|IconR=Workbench_Plot.svg}} |
|||
|[[PartDesign Workbench|PartDesign Workbench]] |
|||
|[[Plot Workbench|Plot Workbench]] |
|||
|IconL=Workbench_PartDesign.svg |
|||
|IconR=Workbench_Plot.svg |
|||
}} |
|||
⚫ | |||
⚫ | |||
{{ |
{{clear}} |
||
[[Category:Path]] |
|||
⚫ | |||
{{Path Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
⚫ | |||
</translate> |
|||
{{clear}} |
Revision as of 02:10, 15 March 2020
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.
![](/images/thumb/8/8d/Pathwb.png/600px-Pathwb.png)
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 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.
- If you have a special machine which cannot use one of the available postprocessors you may want to learn about post-processor customization
- 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.
The Path Workbench has external dependencies including:
- 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.
- The Macro file path, and Geometric tolerances, are defined in the Edit → Preferences → Path → Job Preferences tab.
- Colors are defined in the Edit → Preferences → Path → Path colors 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.
Limitations
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. There are two tools which produce true 3D paths, one of which is still experimental ( December 2019 ). There are currently no tools to face-mill a vertical face or to cut vertical non planar surfaces of a model.
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
- Machine output unit is completely unrelated to your selected unit schema
- Post-processors produce either metric (G21) output, Imperial (G20) output or are configurable.
- Configurable post-processors default to metric (G21)
- 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
Many of the commands have various heights and depths:
![](/images/thumb/e/e4/Path-DepthsAndHeights.gif/500px-Path-DepthsAndHeights.gif)
Visual reference for Depth properties (settings)
These commands are used for seting up a CNC project and manage your templates.
Job: Creates a new CNC job
Post Process: Exports a project to G-code
Export Template: Export the current job as a template
G-Code Inspector: Shows the G-code for checking
Simulator: Shows the milling operation like it's done on the machine
Tool Manager: Edit the Tool Manager
Complete Loop: Completes a loop from two selected edges
Contour: Creates a path of the contour of the base object
Profile from Face: Creates a profiling path from a selected face
Profile from Edges: Creates a profiling path from selected edges
Pocket: Creates a pocketing operation from one ore more selected pocket(s)
Drilling: Performs a drilling cycle
Adaptive: Creates an adaptive clearing and profiling operation
Engrave: Creates a engraving path
Mill Face: Creates a surfacing path
Helix: Creates a helical path
3D Pocket: Creates a path for a 3D pocket
Path Dressup
Boundary Dressup: Adds a boundary dressup modification to a selected path
Dogbone Dressup: Adds a dogbone dressup modification to a selected path
Dragknife Dressup: Adds a dragknife dressup modification to a selected path
Lead In Dressup: Adds a lead-in and/or lead-out point to a selected path
Ramp Entry Dressup: Adds ramp entry dressup modification to a selected path
Tag Dressup: Adds a holding tag dressup modification to a selected path
Partial 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
Gcode From a Shape: Creates a path object from a selected Part object
Op Active: Used to activate or de-activate a path operation
Path Modification
Copy: Creates a parametric Copy of a selected path object
Array: Creates an array by duplicating a selected path
Simple Copy: Creates a non-parametric copy of a selected path object
Other
3D Surface: Creates a path for a 3D surface ( experimental , December 2019 )
Feature area: Creates a feature area from selected objects
Feature area workplane: Creates a feature area workplane
Path Errors: Checks the selected Job for missing values
- Fourth Axis: Developmental four axis milling
Preferences
Preferences...: Preferences disposable in Path Tools.
Scripting
See the Path scripting page.
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
See the Path FAQ
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.
- Project Commands: Job, Post Process, Check the path job for common errors, Export Template
- Tool Commands: Inspect Path Commands, CAM Simulator, Finish Selecting Loop, Toggle the Active State of the Operation, ToolBit Library editor, ToolBit Dock
- Basic Operations: Profile, Pocket Shape, Drilling, Face, Helix, Adaptive, Slot, Engrave, Deburr, Vcarve
- 3D Operations: 3D Pocket, 3D Surface, Waterline
- Path Modification: Copy the operation in the job, Array, Simple Copy
- Specialty Operations: Thread Milling
- Miscellaneous: Area, Area workplane
- ToolBit architecture: Tools, ToolShape, ToolBit, ToolBit Library, ToolController
- Additional: Preferences, Scripting
![](/images/thumb/9/94/User_hub.png/24px-User_hub.png)
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub