Pathpilot Post Processor Guidelines
Background
PathPilot is a dedicated machine controller designed specifically for Tormach machine tools. It shares common code with the open source LinuxCNC project, with Tormach specific additions. If your CAM system already supports a LinuxCNC post, this would be a good starting point for a PathPilot post.
PathPilot control implements 98 percent of the Fanuc standard. The entire list of supported codes is located below.
- 1 Background
- 1.1 Deviations from Fanuc G-code
- 1.1.1 Mill/Router
- 1.1.2 Lathe
- 1.1.3 Miscellaneous
- 1.2 Sample Programs
- 1.3 PathPilot Supported G and M Codes
- 1.3.1 G Codes
- 1.3.2 M Codes
- 1.3.3 Other Codes
- 1.1 Deviations from Fanuc G-code
Deviations from Fanuc G-code
Mill/Router
G07, G09 not supported
G12, G13 pocketing canned cycles are not supported
G52 local coordinate system offset is not supported. See G92 below
PathPilot supports G54 – G59, G59.1, G59.2, and G59.3 as well as G54.1 P1 - P500 (G54.1 P2 = G55) for work offset systems
G74 tapping cycle for left-hand threads is not supported
G87, G88 boring cycles are not supported
The number of tool offsets for mills is 1000
Tool changes are expressed as either “Txx M06” or “M06 Txx” on one line or by “Txx” and “M06” on separate lines
It is recommended to set the machine to path blending mode for most situations with G64. “G64” is equivalent to “G64 P0.005” and is recommend to be set on a separate line at the beginning of a program.
For roughing toolpaths P can be increased and Q can be specified. There are greatly diminishing returns setting Q larger than 0.002
Lathe
Diameter mode only – PathPilot does not allow programming in radius values
G07, G09 are not supported
PathPilot uses G33.1 in place of G32 for spindle-synched moves
G50 max RPM in CSS is not supported. See G96 below for max CSS rpm
G75 peck groove is not supported. Instead program G73 for chip break
G70-73 roughing cycles not supported
The number of tool offsets for lathes is 99
Tool changes are expressed as “Txx” or “Txxnn”
“Txx” of the tool call will both call the tool number and apply the geometry offset
“nn” of the tool call will call the wear offset
If a turret is installed calling tools 1-8 will automatically command the turret to rotate to pocket 1-8
If additional tools are installed in a given pocket, you must first call that pocket (eg, “T07”) and then call the desired tool offset (eg, “T1717”)
If a quick change tool post (QCTP) is installed an M0 or other break for the tool change is not needed, PathPilot will automatically pause at the tool call for a manual tool change
Miscellaneous
It is highly recommended to include a G30 command before a tool change.
Cancelling a canned cycle with G80 also cancels the motion mode. This means that you must explicitly call a G00 or G01 after cancelling a canned cycle before using axis values on a line.
G28/G30 moves cannot be made in G91 – machine must be in G90 before a G28 or G30 is executed
G41/G42 cutter compensation entry move must be a straight G01 move and must be greater than the tool radius
Characters such as “$” or “%” at the beginning/end of a program should not be used
End of block characters, “;”, should not be used
Sample Programs
Sample mill/router program
Sample lathe program
Sample plasma program
PathPilot Supported G and M Codes
G Codes
Motion | Name | Description | Supported Machines | |||
|---|---|---|---|---|---|---|
Mill | Router | Lathe | Plasma | |||
G0 | Rapid Motion | This command produces coordinated motion to the destination point at the rapid traverse rate. Axis words (X, Y, Z, or A) are optional, except that at least one must be used. | X | X | X | X |
G1 | Coordinated Motion | This command produces coordinated motion to the destination point at the specified traverse rate. Axis words (X, Y, Z, or A) are optional, except that at least one must be used. If a feed rate (F) is not specified on the line with G1, one must have been previously specified. | X | X | X | X |
G2 | Coordinated Helical Motion CW | This command produces coordinated motion to the destination point in a clockwise circular or helical arc at the specified traverse rate. | X | X | X | X |
G3 | Coordinated Helical Motion CCW | This command produces coordinated motion to the destination point in a counter clockwise circular or helical arc at the specified traverse rate. | X | X | X | X |
G4 | Dwell | This command produces a period of no activity for the amount of time specified by the P argument (P is specified in seconds). | X | X | X | X |
G10 L1 | Set Tool Table (Absolute) | This command sets the tool table entry of the tool specified by P to the value of the given arguments. P - tool number R - radius of the tool I - front angle (lathe) J - back angle (lathe) Q - tip orientation (lathe) | X | X | X | X |
G10 L2 | Set Coordinate System (Absolute) | This command sets the origin of the specified coordinate system to the value of the given arguments. P - coordinate system (1-500) X, Y, Z, A - axes R - rotation about the Z axis (degrees) | X | X | X | X |
G10 L10 | Set Tool Table | This command sets the tool table entry of the tool specified by P so that the current coordinates become the given arguments. P - tool number R - radius of the tool I - front angle (lathe) J - back angle (lathe) Q - tip orientation (lathe) | X | X | X | X |
G10 L20 | Set Coordinate System | This command sets the origin of the specified coordinate system so that the current coordinates become the given arguments. P - coordinate system (1-500) X, Y, Z, A - axes R - rotation about the Z axis (degrees) | X | X | X | X |
G15 | Workpiece Probe | This command will move the Z axis in a probing move towards the workpiece. The ohmic sensor or Z axis touch piece will trigger the end of the probing move depending on machine settings. | - | - | - | X |
G16 | Pierce | This command will move the Z axis to the parameter #<_PierceHeight> in G53 coordinates then command the plasma source to pierce a workpiece. | - | - | - | X |
G17 | Set Plane | This command will set the current plane to XY . | X | X | X | X |
G18 | Set Plane | This command will set the current plane to ZX. | X | X | X | X |
G19 | Set Plane | This command will set the current plane to YZ. | X | X | X | X |
G20 | Set Units | This command will set units to inches. | X | X | X | X |
G21 | Set Units | This command will set units to millimeters. | X | X | X | X |
G28 | Return to Predefined Position | This command will make a rapid move in G53 coordinate to the position specified by the values of parameters 5161-5166 (default 0s). If an X, Y, Z, or A value is given in conjunction with a G28 command the axis values will be treated as an offset from the G28 position to move to. The machine will first move to the offset position, then move to the final G28 position. Cutter compensation must be disabled during G28 moves. | X | X | X | X |
G28.1 | Return to Predefined Position | This command will store the current location in G53 coordinates to the parameters 5161-5166. | X | X | X | X |
G30 | Return to Predefined Position | This command will make a rapid move in G53 coordinate to the position specified by the values of parameters 5181-5186 (default 0s). If an X, Y, Z, or A value is given in conjunction with a G30 command the axis values will be treated as an offset from the G30 position to move to. The machine will first move to the offset position, then move to the final G30 position. Cutter compensation must be disabled during G30 moves. | X | X | X | X |
G30.1 | Return to Predefined Position | This command will store the current location in G53 coordinates to the parameters 5181-5186. | X | X | X | X |
G33.1 | Spindle Synchronized Motion | This command will synchronize the motion of the specified axis to the spindle rotation (only Z should be specified). An optional I argument can be used to command a different spindle speed for return. Use of an I argument will result in the starting plane being overshot during return by the distance multiplied by the I value. Peck tapping can be commanded by programming successive G33.1 cycles at increasing depths. For each G33.1 cycle the starting Z position should be identical. K - distance moved per spindle revolution I - spindle return speed multiplier | X | - | - | - |
G37 | Tool Measurement | This command will start a tool length measurement or tool breakage cycle. H and P arguments are optional. H - specifies the tool length offset to store (if not specified the current active offset will be used) P - existence commands a tool breakage check. The P value specifies the tolerance from the stored offset that is acceptable. | X | - | - | - |
G37.1 | Tool Measurement | This command will rapid move the Z axis to the G53 Z0 location, rapid move to the stored X and Y ETS coordinates, then rapid move to the stored Z ETS coordinate. | X | - | - | - |
G38.2 | Straight Probe | This command probes towards the workpiece, stops on contact, and signals an error if no contact is made. At least one axis word must be specified. | X | X | - | - |
G38.3 | Straight Probe | This command probes towards the workpiece and stops on contact. At least one axis word must be specified. | X | X | - | - |
G38.4 | Straight Probe | This command probes towards the workpiece, stops on loss of contact, and signals an error if contact is not lost. At least one axis word must be specified. | X | X | - | - |
G38.5 | Straight Probe | This command probes towards the workpiece and stops on loss of contact. At least one axis word must be specified. | X | X | - | - |
G40 | Cutter Compensation | This command will turn cutter compensation off. | X | X | X | X |
G41 | Cutter Compensation | This command turns cutter compensation on on the left side of the programmed tool path, with an optional D argument for the tool offset to use. If D is not specified the active tool offset is used. | X | X | X | X |
G41.1 | Dynamic Cutter Compensation | This command turns dynamic cutter compensation on on the left side of the programmed tool path, identical to G41 except with the D argument calling out the tool diameter. | X | X | X | X |
G42 | Cutter Compensation | This command turns cutter compensation on on the right side of the programmed tool path, with an optional D argument for the tool offset to use. If D is not specified the active tool offset is used. | X | X | X | X |
G42.1 | Dynamic Cutter Compensation | This command turns dynamic cutter compensation on on the left side of the programmed tool path, identical to G41 except with the D argument calling out the tool diameter. | X | X | X | X |
G43 | Tool Offset Selection | This command applies the tool offset number specified by an H argument. For plasma, this should always be set to H1. | X | - | X | X |
G47 | Engrave Sequential Serial Number | This command will engrave a serial number into a part, incrementing from an internal counter in PathPilot. Z - depth of cut of engraving R - retract height between numbers X - the starting X position, or the left side of the serial number – if omitted, the current X position is assumed. Y - the starting Y position, or the bottom side of the serial number – if omitted, the current Y position is assumed. P - the X extent (width) in current units (inches or millimeters) of the engraved number Q - the Y extent (height) in current units (inches or millimeters) of the engraved number D - the requested number of decimals of the engraved number – if the requested D value exceeds the number of decimals in the serial number, the serial number will show leading zeros. If the requested D value is less than the number of decimals in the serial number, only the digits of the serial number will show. Cutter comp must be disabled before calling G47. | X | X | - | - |
G49 | Tool Offset Cancellation | This command cancels a tool length offset. | X | X | X | X |