Path Workbench: Difference between revisions

From FreeCAD Documentation
(Moved Template:Path Commands into Path Workbench page, those template pages for commands are hell to translate. Not deleting template for now.)
(Marked this version for translation)
Line 51: Line 51:
{{Path_Commands}}
{{Path_Commands}}


==Path Commands==
==Path Commands== <!--T:37-->


<!--T:38-->
These commands are used for seting up a CNC project and manage your templates.
These commands are used for seting up a CNC project and manage your templates.


<!--T:39-->
* [[Image:Path-Job.png|32px]] [[Path_Job|Job]]: Creates a new CNC job
* [[Image:Path-Job.png|32px]] [[Path_Job|Job]]: Creates a new CNC job


<!--T:40-->
* [[Image:Path_PostProcess.png|32px]] [[Path_Post|Post Process]]: Exports a project to G-code
* [[Image:Path_PostProcess.png|32px]] [[Path_Post|Post Process]]: Exports a project to G-code


<!--T:41-->
* [[Image:Path-ExportTemplate.png|32px]] [[Path_ExportTemplate|Export Template]]: Export the current job as a template
* [[Image:Path-ExportTemplate.png|32px]] [[Path_ExportTemplate|Export Template]]: Export the current job as a template


<!--T:42-->
* [[File:Path_Inspect.png|32px]] [[Path_Inspect|G-Code Inspector]]: Shows the G-code for checking
* [[File:Path_Inspect.png|32px]] [[Path_Inspect|G-Code Inspector]]: Shows the G-code for checking


<!--T:43-->
* [[File:Path_Simulator.png|32px]] [[Path_Simulator|Simulator]]: Shows the milling operation like it's done on the machine
* [[File:Path_Simulator.png|32px]] [[Path_Simulator|Simulator]]: Shows the milling operation like it's done on the machine


<!--T:44-->
* [[Image:Path_ToolLibraryEdit.png|32px]] [[Path_ToolLibraryEdit|Tool Manager]]: Edit the Tool Manager
* [[Image:Path_ToolLibraryEdit.png|32px]] [[Path_ToolLibraryEdit|Tool Manager]]: Edit the Tool Manager


<!--T:45-->
* [[File:Path-CompleteLoop.png|32px]] [[Path_SelectLoop|Complete Loop]]: Completes a loop from two selected edges
* [[File:Path-CompleteLoop.png|32px]] [[Path_SelectLoop|Complete Loop]]: Completes a loop from two selected edges


<!--T:46-->
* [[File:Path_Contour.png|32px]] [[Path_Contour|Contour]]: Creates a path of the contour of the base object
* [[File:Path_Contour.png|32px]] [[Path_Contour|Contour]]: Creates a path of the contour of the base object


<!--T:47-->
* [[Image:Path-Profile-Face.png|32px]] [[Path_ProfileFace|Profile from Face]]: Creates a profiling path from a selected face
* [[Image:Path-Profile-Face.png|32px]] [[Path_ProfileFace|Profile from Face]]: Creates a profiling path from a selected face


<!--T:48-->
* [[Image:Path-Profile-Edges.png|32px]] [[Path_ProfileEdges|Profile from Edges]]: Creates a profiling path from selected edges
* [[Image:Path-Profile-Edges.png|32px]] [[Path_ProfileEdges|Profile from Edges]]: Creates a profiling path from selected edges


<!--T:49-->
* [[Image:Path_Pocket.png|32px]] [[Path_Pocket_Shape|Pocket]]: Creates a pocketing operation from one ore more selected pocket(s)
* [[Image:Path_Pocket.png|32px]] [[Path_Pocket_Shape|Pocket]]: Creates a pocketing operation from one ore more selected pocket(s)


<!--T:50-->
* [[Image:Path_Drilling.png|32px]] [[Path_Drilling|Drilling]]: Performs a drilling cycle
* [[Image:Path_Drilling.png|32px]] [[Path_Drilling|Drilling]]: Performs a drilling cycle


<!--T:51-->
* [[Image:Path-Engrave.png|32px]] [[Path_Engrave|Engrave]]: Creates a engraving path
* [[Image:Path-Engrave.png|32px]] [[Path_Engrave|Engrave]]: Creates a engraving path


<!--T:52-->
* [[Image:Path-Face.png|32px]] [[Path_MillFace|Mill Face]]: Creates a surfacing path
* [[Image:Path-Face.png|32px]] [[Path_MillFace|Mill Face]]: Creates a surfacing path


<!--T:53-->
* [[Image:Path-Helix.png|32px]] [[Path_Helix|Helix]]: Creates a helical path
* [[Image:Path-Helix.png|32px]] [[Path_Helix|Helix]]: Creates a helical path


<!--T:54-->
* [[Image:Path-3DPocket.png|32px]] [[Path_Pocket_3D|3D Pocket]]: Creates a path for a 3D pocket
* [[Image:Path-3DPocket.png|32px]] [[Path_Pocket_3D|3D Pocket]]: Creates a path for a 3D pocket


===Path Dressup===
===Path Dressup=== <!--T:55-->


<!--T:56-->
* [[Image:Path_Dressup.png|32px]] [[Path_DressupDogbone|Dogbone Dressup]]: Adds a dogbone dressup modification to a selected path
* [[Image:Path_Dressup.png|32px]] [[Path_DressupDogbone|Dogbone Dressup]]: Adds a dogbone dressup modification to a selected path


<!--T:57-->
* [[Image:Path_Dressup.png|32px]] [[Path_DressupDragKnife|Dragknife Dressup]]: Adds a dragknife dressup modification to a selected path
* [[Image:Path_Dressup.png|32px]] [[Path_DressupDragKnife|Dragknife Dressup]]: Adds a dragknife dressup modification to a selected path


<!--T:58-->
* [[Image:Path_Dressup.png|32px]] [[Path_DressupLeadInOut|Lead In Dressup]]: Adds a lead-in and/or lead-out point to a selected path
* [[Image:Path_Dressup.png|32px]] [[Path_DressupLeadInOut|Lead In Dressup]]: Adds a lead-in and/or lead-out point to a selected path


<!--T:59-->
* [[Image:Path_Dressup.png|32px]] [[Path_DressupRampEntry|Ramp Entry Dressup]]: Adds ramp entry dressup modification to a selected path
* [[Image:Path_Dressup.png|32px]] [[Path_DressupRampEntry|Ramp Entry Dressup]]: Adds ramp entry dressup modification to a selected path


<!--T:60-->
* [[Image:Path_Dressup.png|32px]] [[Path_DressupTag|Tag Dressup]]: Adds a holding tag dressup modification to a selected path
* [[Image:Path_Dressup.png|32px]] [[Path_DressupTag|Tag Dressup]]: Adds a holding tag dressup modification to a selected path


===Partial Commands===
===Partial Commands=== <!--T:61-->


<!--T:62-->
* [[Image:Path_SelectionPlane.png|32px]] [[Path_Plane|Plane]]: Changes the working plane of the machine
* [[Image:Path_SelectionPlane.png|32px]] [[Path_Plane|Plane]]: Changes the working plane of the machine


<!--T:63-->
* [[Image:Path_Fixture.png|32px]] [[Path_Fixture|Fixture]]: Changes the fixture position
* [[Image:Path_Fixture.png|32px]] [[Path_Fixture|Fixture]]: Changes the fixture position


<!--T:64-->
* [[Image:Path_ToolLenthOffset.png|32px]] [[Path_ToolLengthOffset|Tool Length Offset]]: Changes the offset of the current tool
* [[Image:Path_ToolLenthOffset.png|32px]] [[Path_ToolLengthOffset|Tool Length Offset]]: Changes the offset of the current tool


<!--T:65-->
* [[Image:Path_Comment.png|32px]] [[Path_Comment|Comment]]: Inserts a comment in the G-code of a path
* [[Image:Path_Comment.png|32px]] [[Path_Comment|Comment]]: Inserts a comment in the G-code of a path


<!--T:66-->
* [[Image:Path_Stop.png|32px]] [[Path_Stop|Stop]]: Inserts a full stop of the machine
* [[Image:Path_Stop.png|32px]] [[Path_Stop|Stop]]: Inserts a full stop of the machine


<!--T:67-->
* [[Image:Path_Custom.png|32px]] [[Path_Custom|Custom]]: Inserts custom G-code
* [[Image:Path_Custom.png|32px]] [[Path_Custom|Custom]]: Inserts custom G-code


<!--T:68-->
* [[Image:Path_GcodeFromShape.png|32px]] [[Path_FromShapes|Gcode From a Shape]]: Creates a path object from a selected Part object
* [[Image:Path_GcodeFromShape.png|32px]] [[Path_FromShapes|Gcode From a Shape]]: Creates a path object from a selected Part object


===Path Modification===
===Path Modification=== <!--T:69-->


<!--T:70-->
* [[Image:Path_Copy.png|32px]] [[Path_Copy|Copy]]: Creates a parametric Copie of a selected path object
* [[Image:Path_Copy.png|32px]] [[Path_Copy|Copy]]: Creates a parametric Copie of a selected path object


<!--T:71-->
* [[Image:Path_Array.png|32px]] [[Path_Array|Array]]: Creates an array by duplicating a selected path
* [[Image:Path_Array.png|32px]] [[Path_Array|Array]]: Creates an array by duplicating a selected path


<!--T:72-->
* [[Image:Path_SimpleCopy.png|32px]] [[Path_SimpleCopy|Simple Copy]]: Creates a non-parametric copy of a selected path object
* [[Image:Path_SimpleCopy.png|32px]] [[Path_SimpleCopy|Simple Copy]]: Creates a non-parametric copy of a selected path object


===Other===
===Other=== <!--T:73-->


<!--T:74-->
* [[Image:Path-3DSurface.png|32px]] [[Path_Surface|3D Surface]]: Creates a path for a 3D surface
* [[Image:Path-3DSurface.png|32px]] [[Path_Surface|3D Surface]]: Creates a path for a 3D surface


<!--T:75-->
* [[Image:Path-Area.png|32px]] [[Path_Area|Feature area]]: Creates a feature area from selected objects
* [[Image:Path-Area.png|32px]] [[Path_Area|Feature area]]: Creates a feature area from selected objects


<!--T:76-->
* [[Image:Path-Area-Workplane.png|32px]] [[Path_Area_Workplane|Feature area workplane]]: Creates a feature area workplane
* [[Image:Path-Area-Workplane.png|32px]] [[Path_Area_Workplane|Feature area workplane]]: Creates a feature area workplane


<!--T:77-->
* [[File:Path_Sanity.png|32px]] [[Path_Sanity|Path Errors]]: Checks the selected Job for missing values
* [[File:Path_Sanity.png|32px]] [[Path_Sanity|Path Errors]]: Checks the selected Job for missing values



Revision as of 05:28, 17 March 2018

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.



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.


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:

  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.


Template:Path Commands

Path Commands

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

  • Job: Creates a new CNC job
  • Simulator: Shows the milling operation like it's done on the machine
  • Pocket: Creates a pocketing operation from one ore more selected pocket(s)
  • Helix: Creates a helical path

Path Dressup

  • 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

Path Modification

  • Copy: Creates a parametric Copie 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

  • Path Errors: Checks the selected Job for missing values

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

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.