# G141 3D+ Cutter Compensation (Group 07)

## Classic Control - Mill Operator's Manual

The Online Interactive Operator's Manual is currently available in English only.

A PDF version of the Operator's Manual is available for download in multiple languages. Click the link below to view the Operator's Manual in your language. Click "Continue" to view the online version in English.

X - X-Axis command
Y - Y-Axis command
Z - Z-Axis command
*A - A-Axis command (optional)
*B - B-Axis command (optional)
*D - Cutter Size Selection (modal)
I - X-Axis cutter compensation direction from program path
J - Y-Axis cutter compensation direction from program path
K - Z-Axis cutter compensation direction from program path
F - Feedrate

* indicates optional

This feature performs three-dimensional cutter compensation.

The form is:

G141 Xnnn Ynnn Znnn Innn Jnnn Knnn Fnnn Dnnn

Subsequent lines can be:

G01 Xnnn Ynnn Znnn Innn Jnnn Knnn Fnnn ;

Or

G00 Xnnn Ynnn Znnn Innn Jnnn Knnn ;

Some CAM systems are able to output the X, Y, and Z with values for I, J, K. The I, J, and K values tell the control the direction in which to apply the compensation at the machine. Similar to other uses of I, J, and K, these are incremental distances from the X, Y, and Z point called.

The I, J, and K specify the normal direction, relative to the center of the tool, to the contact point of the tool in the CAM system. The I, J, and K vectors are required by the control to be able to shift the toolpath in the correct direction. The value of the compensation can be in a positive or negative direction.

The offset amount entered in radius or diameter (Setting 40) for the tool will compensate the path by this amount, even if the tool motions are 2 or 3 axes. Only G00 and G01 can use G141. A Dnn will have to be programmed; the D-code selects which tool wear diameter offset to use. A feedrate must be programmed on each line if in G93 Inverse Time Feed mode.

With a unit vector, the length of the vector line must always equal 1. In the same way that a unit circle in mathematics is a circle with a radius of 1, a unit vector is a line that indicates a direction with a length of 1. Remember, the vector line does not tell the control how far to move the tool when a wear value is entered, just the direction in which to go.

Only the endpoint of the commanded block is compensated in the direction of I, J, and K. For this reason, this compensation is recommended only for surface toolpaths having a tight tolerance (small motion between blocks of code). G141 compensation does not prohibit the toolpath from crossing over itself when excessive cutter compensation is entered. The tool will be offset, in the direction of the vector line, by the combined values of the tool offset geometry plus the tool offset wear. If compensation values are in diameter mode (Setting 40), the move will be half the amount entered in these fields.

For best results, program from the tool center using a ball nose endmill.

% O61411 (G141 3D CUTTER COMPENSATION) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a ball nose endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 Z0 A0 B0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G141 D01 X0. Y0. Z0. ; (Rapid to position with 3D+ cutter comp) ; G01 G93 X.01 Y.01 Z.01 I.1 J.2 K.9747 F300. ; (Inverse time feed on, 1st linear motion) ; N1 X.02 Y.03 Z.04 I.15 J.25 K.9566 F300. (2nd motion) ; X.02 Y.055 Z.064 I.2 J.3 K.9327 F300. (3rd motion) ; X2.345 Y.1234 Z-1.234 I.25 J.35 K.9028 F200. ; (Last motion) ; (BEGIN COMPLETION BLOCKS) ; G94 F50. (Inverse time feed off) ; G00 G90 G40 Z0.1 M09 (Cutter comp off) ; (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %

In the above example, we can see where the I, J, and K were derived by plugging the points into the following formula:

AB = [(x2-x1)2 + (y2-y1)2 + (z2-z1)2], a 3D version of the distance formula. Looking at line N1, we use 0.15 for x2, 0.25 for y2, and 0.9566 for Z2. Because I, J, and K are incremental, we will use 0 for x1, y1, and z1.

## Unit Vector Example: The commanded line endpoint [1] is compensated in the direction of the vector line [2](I,J,K), by the amount of the Tool Offset Wear.

% AB=[(.15)2 + (.25)2 + (.9566)2] AB=[.0225 + .0625 + .9150] AB=1 %

A simplified example is listed below:

% O61412 (G141 SIMPLE 3D CUTTER COMPENSATION) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a ball nose endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G141 D01 X0. Y0. Z0. ; (Rapid to position with 3D+ cutter compensation) ; N1 G01 G93 X5. Y0. I0. J-1. K0. F300. ; (Inverse time feed on & linear motion) ; (BEGIN COMPLETION BLOCKS) ; G94 F50. (Inverse time feed off) ; G00 G90 G40 Z0.1 M09 (Cutter compensation off) ; (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %

In this case, the wear value (DIA) for T01 is set to -.02. Line N1 moves the tool from (X0., Y0., Z0.) to (X5., Y0., Z0.). The J value tells the control to compensate the endpoint of the programmed line only in the Y Axis.

Line N1 could have been written using only the J-1. (not using I0. or K0.), but a Y value must be entered if a compensation is to be made in this axis (J value used).

Be aware: Many service and repair procedures should be done only by authorized personnel. The service technicians at your Haas Factory Outlet (HFO) have the training, experience, and are certified to do these tasks safely and correctly. You should not do machine repair or service procedures unless you are qualified and knowledgeable about the processes.

Danger: Some service procedures can be dangerous or life-threatening. DO NOT attempt a procedure that you do not completely understand. Contact your Haas Factory Outlet (HFO) and schedule a service technician visit if you have any doubts about doing a procedure.