In this section, the usage of G02 (Circular Interpolation Clockwise), G03 (Circular Interpolation Counterclockwise) and Cutter Compensation (G41: Cutter Compensation Left, G42: Cutter Compensation Right) is described.
Using G02 and G03, we can program the machine to cut circular moves and radii. Generally, when programming a profile or a contour, the easiest way to describe a radius between two points is with an R and a value. For complete circular moves (360 degrees), an I or a J with a value must be specified. The circle section illustration will describe the different sections of a circle.
By using cutter compensation in this section, the programmer will be able to shift the cutter by an exact amount and be able to machine a profile or a contour to the exact print dimensions. By using cutter compensation, programming time and the likelihood of a programming calculation error is reduced due to the fact that real dimensions can be programmed, and part size and geometry can be easily controlled.
Here are a few rules about cutter compensation that you must follow closely for successful machining operations. Always refer to these rules when you write your programs.
- Cutter compensation must be turned ON during a G01 X,Y move that is equal to or greater than the cutter radius, or the amount being compensated.
- When an operation using cutter compensation is done, the cutter compensation will need to be turned OFF, using the same rules as the turn ON process, i.e., what is put in must be taken out.
- In most machines, during cutter compensation, a linear X,Y move that is smaller than the cutter radius may not work. (Setting 58 - set to Fanuc - for positive results.)
- Cutter compensation cannot be turned ON or OFF in a G02 or G03 arc movement.
- With cutter compensation active, machining an inside arc with a radius less than what is defined by the active D value causes the machine to alarm. Can not have too big of a tool diameter if the radius of arc is too small.
This illustration shows how the tool path is calculated for the cutter compensation. The detail section shows the tool in the starting position and then in the offset position as the cutter reaches the workpiece.
Circular Interpolation G02 and G03:  0.250" diameter endmill,  Programmed path,  Center of Tool,  Start Position,  Offset Tool Path.
Programming exercise showing tool path.
This program uses cutter compensation. The toolpath is programmed to the centerline of the cutter. This is also the way the control calculates for cutter compensation.
O40006 (Cutter comp ex-prog) ;
(G54 X0 Y0 is at the lower left of part corner) ;
(Z0 is on top of the part) ;
(T1 is a .250 dia endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
X-1. Y-1. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1(Tool offset 1 on) ;
M08(Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z-1. F50. (Feed to cutting depth) ;
G41 G01 X0 Y0 D01 F50. (2D Cutter Comp left on) ;
Y4.125 (Linear motion) ;
G02 X0.25 Y4.375 R0.375 (Corner rounding) ;
G01 X1.6562 (Linear motion) ;
G02 X2. Y4.0313 R0.3437 (Corner rounding) ;
G01 Y3.125 (Linear motion) ;
G03 X2.375 Y2.75 R0.375 (Corner rounding) ;
G01 X3.5 (Linear motion) ;
G02 X4. Y2.25 R0.5 (Corner rounding) ;
G01 Y0.4375 (Linear motion) ;
G02 X3.4375 Y-0.125 R0.5625 (Corner rounding) ;
G01 X-0.125 (Linear motion) ;
G40 X-1. Y-1. (Last position, cutter comp off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;