Indice

4. Cutter compensation

The cutter radius compensation capabilities of the Interpreter enable the programmer to specify that a cutter should travel to the right or left of an open or closed contour composed of arcs of circles and straight line segments, all planes are supported XY, YZ and XZ.

4.1 G41, G42 Cutter Compensation

Notes

4.2 G41.1, G42.1 Dynamic Cutter Compensation

Notes

4.3 Tool compensation entry options

Three compensation entry option are supported:

The Easy lead-In option is needed when a concave corner is present between the first and the second move that is part of the Lead-in.

Common Cutter Radius Compensation Errors

When the first two options are selected and cutter radius compensation is on, it must be physically possible for a circle whose radius is the half the diameter given in the tool table to be tangent to the contour at all points of the contour.
In particular, the Interpreter treats concave corners and concave arcs into which the circle will not fit as errors, since the circle cannot be kept tangent to the contour in these situations.
This error detection does not limit the shapes which can be cut, but it does require that the programmer specify the actual shape to be cut (or path to be followed), not an approximation.

In both examples, the line represents a contour, and the circle represents the cross section of a tool following the contour using cutter radius compensation (tangent to one side of the path.)

4.4 Examples

4.4.1 Easy Lead-in

( © 2018 by RosettaCNC Motion        )
( file name: cutter_compensation.ngc )
 
G21 G40 G49 G90 G54 G50 G69
G0 x10y0z0 
T0 M6
F2000
( Non compensated square )
M98 P1000
 
G0 x30y10z0
T1 M6
G41 D1
( Lead- in moves )
G1X20Y10
G3X30Y0I10J0
( Compensated square )
M98 P1000
G40
G0X30y10z0
M30
 
( Square with rounded corners )
O1000
    G1X40
    G3X50Y10I0J10
    G1Y40
    G3X40Y50I-10J0
    G1X10
    G3X0Y40I0J-10
    G1Y10
    G3X10Y0I10J0
    G1X30
M99

4.4.2 Auto

( © 2018 by RosettaCNC Motion                           )
( file name: automatic_compensation.ngc                 )
( G-code with cutter comensation example in all planes  )
( Note: for a real work the cutter compensation lead-in )
(       move should be added manually.                  )
G17 G21 G40 G49 G90 G54 G50 G69
 
; XY plane
G17
G00 Z50
G00 X50 Y50
 
M6 T0
F1000. S500
G00 Z10
M98 P1 ; Normal window
 
G00 X50 Y50
M6 T3
F1000. S500
G01 Z10
G41
M98 P1 ; Compensated window
G40
 
G52 X150
G00 X0 Y0 Z0
 
; XZ Plane
G18
G00 Y50
G00 Z50 X50
 
M6 T0
G00 Y10
M98 P2 ; Normal window
 
G00 Z50 X50
M6 T3
F1000. S500
G01 Y10
G41
M98 P2 ; Compensated window
G40
 
G52 X-150
G00 X0 Y0 Z0
 
; YZ Plane
G19
G00 X50
G00 Y50 Z50
 
M6 T0
G00 X10
M98 P3 ; Normal window
 
G00 Y50 Z50
M6 T3
F1000. S500
G01 X10
G41
M98 P3 ; Compensated window
G40
 
M2
 
O1 ; Gothic window XY
    G91
    G01 Y-50
	X50
	Y100
	G03 X-100 R50
	G01 Y-100
	X50
	G90
M99
 
O2 ; Gothic window XZ
    G91
    G01 X-50
	Z50
	X100
	G03 Z-100 R50
	G01 X-100
	Z50
	G90
M99
 
O3 ; Gothic window YZ
    G91
    G01 Z-50
	Y50
	Z100
	G03 Y-100 R50
	G01 Z-100
	Y50
	G90
M99