Background
Pathpilot is able to use parameterized and expression based programming in place of or with common G code commands. Two recommended resources on use of macro programming in Pathpilot are: the LinuxCNC documentation on G code syntax (http://linuxcnc.org/documents/ ) and the operator’s manual for your machine. Tormach makes every effort to maintain compatibility with LinuxCNC operation and the significant majority of our changes only add new functionality, however compatibility cannot be guaranteed and is at the sole discretion of Tormach.
This article is intended to detail a number of the additions to macro programming that Tormach has made from that of LinuxCNC.
Parameters
Tormach has created new named parameters that can be used in G code programs, their name and functions are listed here.
Parameter Name | Function |
---|---|
#<_motion_mode> | Returns the G value multiplied by 10 of G1/G2/G3/G5.2/G73/G80/G82/G83/G86/G87/G88/G89 (eg, G83 equals 830) |
#<_plane> | Returns the G value multiplied by 10 of G17/G18/G19/G17.1/G18.1/G19.1 (eg, G18.1 equals 181) |
#<_ccomp> | Returns the G value multiplied by 10 of G40/G41/G42 (eg, G40 equals 400) |
#<_ccomp_diameter> | Returns the diameter applied by cutter compensation, equivalent to parameter #5410 |
#<_metric> | Returns 1 if G21 is on |
#<_imperial> | Returns 1 if G20 is on |
#<_absolute> | Returns 1 if G90 is on |
#<_incremental> | Returns 1 if G91 is on |
#<_inverse_time> | Returns 1 if G93 is on |
#<_units_per_minute> | Returns 1 if G94 is on |
#<_units_per_rev> | Returns 1 if G95 is on |
#<_work_offset_number> | Returns 1-500 for the currently active work offset equivalent to G54.1 P# |
#<_tool_offset> | Returns 1 if G43 is on |
#<_retract_r_plane> | Returns 1 if G98 is set |
#<_retract_old_z> | Returns 1 if G99 is set |
#<_work_offset_x> | Returns the G53 X axis offset for the current work coordinate |
#<_work_offset_y> | Returns the G53 Y axis offset for the current work coordinate |
#<_work_offset_z> | Returns the G53 Z axis offset for the current work coordinate |
#<_work_offset_a> | Returns the G53 A axis offset for the current work coordinate |
#<_work_offset_b> | Returns the G53 B axis offset for the current work coordinate |
#<_work_offset_c> | Returns the G53 C axis offset for the current work coordinate |
#<_work_offset_u> | Returns the G53 U axis offset for the current work coordinate |
#<_work_offset_v> | Returns the G53 V axis offset for the current work coordinate |
#<_work_offset_w> | Returns the G53 W axis offset for the current work coordinate |
#<_tool_offset_x> | Returns the X axis offset for the currently active tool (on lathes the returned value will be half of what is shown in the tool table) |
#<_tool_offset_y> | Returns the Y axis offset for the currently active tool |
#<_tool_offset_z> | Returns the Z axis offset for the currently active tool |
#<_tool_offset_a> | Returns the A axis offset for the currently active tool |
#<_tool_offset_b> | Returns the B axis offset for the currently active tool |
#<_tool_offset_c> | Returns the C axis offset for the currently active tool |
#<_tool_offset_u> | Returns the U axis offset for the currently active tool |
#<_tool_offset_v> | Returns the V axis offset for the currently active tool |
#<_tool_offset_w> | Returns the W axis offset for the currently active tool |
#<_axis_offset_x> | Returns the value of an external offset applied to the X axis |
#<_axis_offset_y> | Returns the value of an external offset applied to the Y axis |
#<_axis_offset_z> | Returns the value of an external offset applied to the Z axis |
#<_axis_offset_a> | Returns the value of an external offset applied to the A axis |
#<_axis_offset_b> | Returns the value of an external offset applied to the B axis |
#<_axis_offset_c> | Returns the value of an external offset applied to the C axis |
#<_axis_offset_u> | Returns the value of an external offset applied to the U axis |
#<_axis_offset_v> | Returns the value of an external offset applied to the V axis |
#<_axis_offset_w> | Returns the value of an external offset applied to the W axis |
#<_x_machine> | Current G53 machine coordinates of the X axis |
#<_y_machine> | Current G53 machine coordinates of the Y axis |
#<_z_machine> | Current G53 machine coordinates of the Z axis |
#<_a_machine> | Current G53 machine coordinates of the A axis |
#<_b_machine> | Current G53 machine coordinates of the B axis |
#<_c_machine> | Current G53 machine coordinates of the C axis |
#<_u_machine> | Current G53 machine coordinates of the U axis |
#<_v_machine> | Current G53 machine coordinates of the V axis |
#<_w_machine> | Current G53 machine coordinates of the W axis |
#<_probe_result> | Returns the result of a G38 probe result, equivalent to parameter #5070 |
#<_probe_x> | Returns the coordinates of a G38 probe trip, equivalent to parameter #5061 |
#<_probe_y> | Returns the coordinates of a G38 probe trip, equivalent to parameter #5062 |
#<_probe_z> | Returns the coordinates of a G38 probe trip, equivalent to parameter #5063 |
#<_probe_a> | Returns the coordinates of a G38 probe trip, equivalent to parameter #5064 |
Lathe Specific Parameters
When using G10 on the 15L/8L P values of 1-99 will modify the wear offset values.
When using G10 on the 15L/8L P values of 10001-10099 will modify the geometry offset values.
Calling External Programs
When calling an external program an o*** call should be used in the calling program and o*** sub/o*** endsub commands at the in the called program. The called program’s name should be ***.nc (not o***.nc) and it should be placed in the “subroutines” folder of the machine directory.
If any change is made to the called program, the calling program must be cleared from being the active program and then reloaded. This is because when any program is made the active program it (including any called programs) are written to internal memory and the program is run from that internal memory.