Cutter Radius Compensation

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

Cutter radius compensation compensates for the radius of a cutting tool by causing the controller to maintain a constant offset that is perpendicular to the programmed path in a two-dimensional plane. You can use this feature to compensate for the diameter of a cutting tool or the width of a laser.

Before you enable Cutter Radius Compensation, make sure that you know the information that follows:

  • If you use Corner Rounding and Cutter Radius Compensation at the same time, then you must use the same two axes for both features. For more information about corner rounding, see Corner Rounding Functions.
  • When Cutter Radius Compensation is enabled, it causes the controller to activate lookahead.

Use the G44 G-code to specify the axis pair that makes the X and Y plane that is used for cutter radius compensation and cutter offset compensation. To specify the axis pair, you must:

  • Specify the axes in the correct order. The axes must be in the order specified by the circular plane specification.
  • Make sure that the axes in the G44 G-code are the same axes specified in the G17, G18, or G19 G-code.

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

Program Example

// Specify axis Z as the X-plane axis.
// Specify axis U as the Y-plane axis.
G44 Z U

Use the G43 G-code to specify the radius of the cutting tool or width of the laser. Use this command only when cutter radius compensation is disabled.

Program Example

// Specify the radius of the cutting tool or width of the laser to be 0.01 units.
G43 P0.01

Use the G41 G-code to enable cutter radius compensation so that the cutter path is to the left of the programmed path, relative to the direction of motion.

The CutterRadiusActiveLeft bit of Task Status 2 shows the active state of the G41 G-code. To see the active state of the G-code, refer to this bit in the TasksTask Status 2 section 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.

Use the G42 G-code to enable cutter radius compensation so that the cutter path is to the right of the programmed path, relative to the direction of motion.

The CutterRadiusActiveRight bit of Task Status 2 shows the active state of the G42 G-code. To see the active state of the G-code, refer to this bit in the TasksTask Status 2 section 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.

When Cutter Radius Compensation is enabled, the controller maintains an offset from the programmed path during coordinated motion (MoveLinear(), MoveCw(), and MoveCcw() motion) by keeping the center of the cutting tool on a line that is perpendicular to the programmed path. During MoveRapid() motion, the controller does not try to maintain the offset because MoveRapid() does not follow a coordinated path.

To enable Cutter Radius Compensation, the controller gradually adds offsets during a lead-on move. The lead-on move is the coordinated move that follows a G41 or G42 G-code.

Program Example

// Enable cutter radius compensation to the left of the programmed path and generate a lead-on move.
G41 G1 X10 Y10

If you do not put a lead-on move on the same line as the G41 or G42 G-code, 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 radius compensation.

Program Example

// Enable cutter radius compensation to the left of the programmed path.
G41
// The controller generates a lead-on move while it generates the move that follows.
G1 X5 Y-10

Figure: Lead-On Move Left shows the lead-on move from Point A to Point B where cutter radius compensation is configured with the cutter path to the left of the programmed path. In this figure, cutter radius compensation was configured with the G41 G-code.

Figure: Lead-On Move Right shows the lead-on move from Point A to Point B where cutter radius compensation is configured with the cutter path to the right of the programmed path. In this figure, cutter radius compensation was configured with the G42 G-code.

To disable cutter radius compensation, use the G40 G-code.

Tip: When you disable cutter radius compensation, Aerotech recommends that you put a lead-off move on the same line as the G40 G-code.

During the lead-off move, the controller gradually removes the offsets in order to disable cutter radius compensation.

Program Example

// Disable cutter radius compensation and generate a lead-off move.
G40 G1 X10 Y10

If you do not put a lead-off move on the same line as the G40 G-code, 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 radius of the cutting tool.

Program Example


// Disable cutter radius compensation.
G40
// The controller generates a lead-off move while it generates the move that follows.
G1 X5 Y-10

Figure: Lead-Off Move shows the lead-off move from Point A to Point B where cutter radius compensation is configured with the cutter path to the left of the programmed path. In this figure, cutter radius compensation was configured with the G41 G-code.

When you use the Home() function on an axis, the controller disables cutter radius compensation.