Cutter Offset Compensation

IMPORTANT: This feature applies to dominant axes only. To configure an axis as dominant, use the AxisType Parameter.

Cutter offset compensation compensates for the offsets of a cutting tool with regard to the programmed path. This is done by translating the entire programmed path in either the two-dimensional or three-dimensional plane, so you do not have to change the programmed path to adjust for tool offsets. When you enable cutter offset compensation, the controller gradually applies the offsets during a lead-on move. When you disable, it gradually removes the offsets during a lead-off move.

When you use the Home() function on an axis, the controller immediately disables cutter offset compensation. It does not gradually remove the offsets during a lead-off move.

For information about G-code commands, see G-Code Programming.

Specify the Axes

Use the CutterCompensationSetAxes() function or the G44 command to specify the axes that comprise the X-Y or X-Y-Z plane that is used for cutter offset compensation.

  • If you want to compensate for tool length, you must specify the third axis (Z plane).
  • Cutter offset compensation will occur on all axes specified by the CutterCompensationSetAxes() function or the G44 command even if that axis is not explicitly included in the lead-on move. If you do not specify the third axis, cutter offset compensation will be configured for two axes.

  • If you use cutter offset compensation at the same time as corner rounding or cutter radius compensation, then you must use the same axes for those features. For more information, see Corner Rounding Functions or Cutter Radius Compensation.

function CutterCompensationSetAxes($cutterAxes[] as axis)

Sets the axes to use in cutter offset and cutter radius compensation.

Arguments

$cutterAxes  The axes to use. You must specify either 2 or 3 axes.

Program Example

// Specify axis X as the X-plane axis.
// Specify axis Y as the Y-plane axis.
// Specify axis Z as the Z-plane axis.
					
CutterCompensationSetAxes([X, Y, Z])
// or
G44 X Y Z

Specify the Tool Offsets

Use the CutterCompensationSetOffsets() function to specify the tool offsets and lengths. You can specify zero, or any positive or negative value for the tool offsets and lengths. Use this command only when cutter offset compensation is disabled.

function CutterCompensationSetOffsets($cutterOffsets[] as real)

Sets the offsets to use in cutter offset compensation. The number of offsets that you specify must be the same as the number of axes specified to CutterCompensationSetAxes().

Arguments

$cutterOffsets  The cutter offsets. You must specify either 2 or 3 offsets.

Program Example

// Specify the x-offset as 1, the y-offset as -2, and the length of the cutting tool as 3.
CutterCompensationSetOffsets([1, -2, 3])

Enable Cutter Offset Compensation

You can use the G143 or G144 command to enable cutter offset compensation mode. The controller gradually applies the offsets during a lead-on move. We recommend that you put the coordinated move you want to use for the lead-on move on the same program line as the G143 or G144 command. If you do not, the controller uses the next coordinated move that it executes as the lead-on move. If the controller cannot find the next coordinated move, it does not use cutter offset compensation.

Tip: Put the lead-on move on the same program line as the G143 or G144 command to make sure cutter offset compensation offsets are applied.

WARNING: Before you apply a lead-on or lead-off move, make sure the moves will not damage the tool or part.

Add Offsets

The G143 command enables cutter offset compensation so that the cutter path adds the tool offsets and lengths to the programmed path.

Program Example

// Add tool offsets to the programmed path during a lead-on move.
G143 G1 X10 Y10

Figure: G143 Lead-On Move Positive shows the lead-on move from Point A to Point B where cutter offset compensation is configured to add all offsets to the programmed path to produce the cutter path. In this figure, cutter offset compensation was configured with the G143 command.

The CutterOffsetActivePositive bit of Task Status 2 shows the active state of the G143 command. To see the active state of the G-code command, refer to this bit in the TasksTask Status 2 tab of the Automation1 Status Utility. You can also retrieve the status of this bit by using the StatusGetTaskItem() function. For information about how to use this function, refer to the StatusGetTaskItem() example that includes the $additionalData argument in Controller Status Functions.

Subtract Offsets

The G144 command enables cutter offset compensation so that the cutter path subtracts the tool offsets and lengths from the programmed path.

Program Example

// Enable negative tool offsets.
G144

// Subtract tool offsets from the programmed path during the lead-on move.
G1 X10 Y10

Figure: G144 Lead-On Move Negative shows the lead-on move from Point A to Point B where cutter offset compensation is configured to subtract all offsets from the programmed path to produce the cutter path. In this figure, cutter offset compensation was configured with the G144 command.

The CutterOffsetActiveNegative bit of Task Status 2 shows the active state of the G144 command. To see the active state of the G-code command, refer to this bit in the TasksTask Status 2 tab of the Automation1 Status Utility. You can also retrieve the status of this bit by using the StatusGetTaskItem() function. For information about how to use this function, refer to the StatusGetTaskItem() example that includes the $additionalData argument in Controller Status Functions.

Disable Cutter Offset Compensation

Use the G149 command to disable cutter offset compensation so that the cutter path removes the tool offsets and lengths from the programmed path. The controller gradually removes the offsets during a lead-off move. We recommend that you put the coordinated move you want to use for the lead-off move on the same program line as the G149 command. If you do not, the controller uses the next coordinated move that it executes as the lead-off move. If the controller cannot find the next coordinated move, it does not remove compensation for the offsets and length of the cutting tool.

Tip: Put the lead-off move on the same line as the G149 command to make sure that all compensation is removed.

WARNING: Before you apply a lead-on or lead-off move, make sure the moves will not damage the tool or part.

Program Example

// Disable tool offsets to the programmed path during the lead-off move.
G149 G1 X10 Y10

Figure: G149 Lead-Off Move shows the lead-off move from Point A to Point B where cutter offset compensation is configured to remove the cutter offsets that were enabled by the G143 or G144 command from the cutter path to produce the original, programmed path. In this figure, cutter offset compensation was configured with the G144 command (lead-on move negative) and the G149 command (lead-off move).