Cutter Compensation

The cutter compensation commands allow for small adjustments to the tool paths to be made without making any changes to the part program. These adjustments are often made in response to a decrease in end mill diameter caused by wear. Cutter compensation also simplifies the task of programming by allowing the programmer to program the centerline of the tool on the edge of the part. The tool can then be offset the radius of the tool to create a tool path that will produce a part with the desired dimension. The offset distance is stored in a table in the CNC machines controller's memory. Small adjustments to the offset value compensate for wear of the end mill and other conditions. To take advantage of the cutter compensation commands the program must be set up correctly. The G codes associated with cutter compensation are listed below.

G40 - cutter compensation cancel

G41 - cutter compensation to the left

G42 - cutter compensation to the right

Let's examine the example shown below. The tool begins at the "Start" position and moves sequentially to the numbered positions shown in order to mill a rectangular part. The part programmer will offset the tool to the left of the tool path by the radius of the endmill. This swill be accomplished with a G41 D31 call out. G41 sets the cutter compensation to the left and D31 is the memory location in the controller that contains the offset value. The offset value is usually the diameter of the endmill. Note that the start position must be more than 2 diameters of the tool away from the offset path. This distance allows the machine tool time to make the calculations to properly offset the tool. Failure to leave this distance will result in a fatal program error.

Figure 7. Cutter compensation example.

The codes listed below create the tool paths shown in figure 7.


O0001 (Part program for path shown in Figure 7)

N10 G90 G00 G40 G20 M06 T01 (Set up codes and selection of tool #1)

N20 G55 X-1. Y-1. M03 S1000 (Sets the work coordinates and sets the spindle speed to 1000 RPM)

N30 G43 H01 Z.1 (SET LENGTH OFFSET we will learn about this in the next section)

N40 G17 G41 D31 (SET CUTTER COMP. LEFT and retrieve offset distance in memory location D31)

N43 G01 Z-.5 F20 (Plunge into work piece with a feed rate of 20 in per min.)

N45 G01 X0 (move to position #1)

N50 G01 Y4. (move to position #2)

N60 G01 X6. (move to position #3)

N70 G01 Y0 (move to position #4)

N80 G01 X-.75 (move to position "end")

N90 G00 Z1. (rapid to 1 inch above part)

N100 G40 (Cancel cutter comp.)

N110 M30


If the value in D31 is .5 what are the overall dimensions of the part in figure 7? What happens if the value is .25?

[an error occurred while processing this directive]