Circular interpolation (G02/G03)
Syntax: | ||
G02 | Clockwise circular interpolation (CW) | modal |
G03 | Counter-clockwise circular interpolation (CCW) | modal |
When G02 or G03 is selected, the programmed path is travelled to the target point in circular motion at the feed rate specified in the F word (e.g. mm/min) Circular motion can be travelled in the three main planes of the spatial coordinate system (X-Y, Z-X, Y-Z). The main plane is selected using the functions G17, G18, G19 (see Plane selection).
All programmed tracking axes move at linear velocity in such a way that the start and end of their motion take place simultaneously with the main axes.
Circle programming using centre point and target point of the circle
The circle is defined by taking the starting point of the circle (determined in the preceding block), the target point of the circle and the centre point of the circle "Km".
Syntax example for G17 plane: |
G02 | G03 [X.. Y..] I.. J.. |
G02 | G03 | Circular interpolation CW / CCW |
X.. Y.. | Target point of the circle in XY plane in [mm, inch] |
I..J.. | Position of circle centre point of interpolation in XY plane (I in X, J in Y) in [mm, inch], according to G161/G162 |
Syntax according to selected interpolation plane: | |||
Plane | Interpolation type | Target point in the plane | Centre point |
G17 | G02/G03 | X.. Y.. | I.. J.. |
G18 | G02/G03 | Z.. X.. | K.. I.. |
G19 | G02/G03 | Y.. Z.. | J.. K.. |
The centre point of the circle is specified by the interpolation parameters I, J, K relative to the starting point of the circle when G162 is active or absolute when G161 is active (see Specifying centre point for circle definition (G161/G162)).
| G162: | (Basic settings) |
| I | relative position of Km in the X direction |
| J | relative position of Km in the Y direction |
| K | relative position of Km in the Z direction |
| G161: |
|
| I | absolute position of Km in the X direction |
| J | absolute position of Km in the Y direction |
| K | absolute position of Km in the Z direction |
If the circle centre point is incorrectly defined, centre point compensation is not switched on (G165). When G165 is active, a centre point is defined so that a circle can be travelled. It also means that if the interpolation parameters are not programmed, circle centre point compensation originates at I, J, K = 0 (see Controlling centre point offset in circle (G164/G165)).
The circle centre point coordinates I, J, K are “non-modal".
If the interpolation parameters I,J,K are programmed without circleendpoint when G02/G03 are active, a full circle is travelled.
Circle programming using radius and target point of the circle
As an alternative to I, J, K, circles can also be programmed by specifying the radius. This is possible by using the address letter R “radius value” or G163=”radius value”. However, it is not possible to program a full circle with R. Specifying the radius with R or G163= is “modal” and is re-used for several circular motions without repeat specification.
Syntax example for G17 plane: |
G02 | G03 X.. Y.. R.. |
G02 | G03 | Circular interpolation CW / CCW |
X.. Y.. | Target point of the circle in XY plane in [mm, inch] |
R.. | Radius value of an interpolated partial circle in [mm, inch]. |
Notice
The maximum permissible circle radius is 109 mm. However, the target point of the arc may not exceed the maximum permissible motion path of the axes of +- 2,14*105 mm.
Notice
If the radius value is possible, the shortest possible arc is defined; if the radius value is negative, the largest possible circle is defined (see figure below).
Programing Example
Circular interpolation with partial and full circle
N05 G0 X0 Y0
N10 G01 X10 Y10 F1000
N20 G02 X30 Y30 I10 J10 ;Semicircle about M1 circle end point X30 Y30
;Alternative N20:
N20 G02 X30 Y30 R[10*SQRT[2]] ;Semicircle about M1 circle end point X30 Y30
N30 G02 I10 J10 ;Full circle about M2
Programing Example
Circular interpolation with programmed tracking axis
;Absolute dimensional input:
N05 G90 G00 X40 Y30 U40 ;Circle starting point (Ka), starting position
N10, G90 F1000 ;Absolute dimension, feed rate
N20 G17 ;Select X-Y plane
N30 G03 G161 X60 Y50 I60 J30 U90 ;Circle Ka -> Ke and straight line: P1 -> P2
;Incremental dimensional input:
N05 G90 G00 X40 Y30 U40 ;Circle starting point (Ka), starting position
N10 G91 F1000 ;Incremental dimension, feed rate
N20 G17 ;Select X-Y plane
N30 G03 G162 X20 Y20 I20 U50 ;Circle: Ka -> Ke and straight line: P1 -> P2
With indexed radius programming, the radius can be specified by “R1=..”. In this case, the index may only have the value 1. If "R1” is used on the right-hand assignment side, the index value 1 may not be programmed as a mathematical expression.
Programing Example
Indexed radius programming (R1=..)
;Direct use on left- and right-hand sides
N10 R1 = 5
N20 P2 = R1 ;permitted
;Indirect use on left-hand side
N10 P2 = 1
N20 RP2 = 5 ;permitted
;Indirect use on right-hand side
N10 R1 = 5 P2 = 1
N20 P3 = RP2 ;not permitted
Programing Example
These examples produce semicircles of radius 50.
:
N10 G90 G01 X0 Y0 F500
N20 G02 X100 R50 ;clockwise semicircle
N30 G03 X200 R50 ;counter-clockwise semicircle
:
N10 G90 G01 X0 Y0 F500
N20 G02 R=50 ;no motion as yet here
N30 X100 ;clockwise semicircle
:
N10 G90 G01 X0 Y0 F500
N20 R1=50
N30 G02 X100 ;clockwise semicircle
N40 G03 X200 ;counter-clockwise semicircle
:
N10 G90 G01 X0 Y0 F500
N20 G02 X100 R1=50 ;clockwise semicircle
N30 G03 X200 ;counter-clockwise semicircle
The programming below results in an error message since R1 is interpreted as a radius of value 1.
N10 G90 G01 X0 Y0 F500
N20 R1=50
N30 G02 X100 R1
As an alternative to circle definition with “R” or “R1”, the circle radius can be specified by G163.
Syntax example for G17 plane: |
G02 | G03 X.. Y.. G163=.. |
G02 | G03 | Circular interpolation CW / CCW |
X.. Y.. | Target point of the circle in XY plane in [mm, inch] |
G163=.. | Radius value of an interpolated partial circle in [mm, inch]. |
The circle definition using G163 is valid when circular interpolation is selected until it is redefined or until it is deselected by specifying an I and/or J and/or K.
Programing Example
Circle radius programming with G163
;N10: Motion to origin
;N20: Clockwise semicircle with target value X100 and under preset
;of the circle radius by G163 (radius specified is modal)
;N30: Counter-clockwise semicircle with target value X200 and the radius
;that was defined in N20 and is modal
%Radiusprogramming_G163
N10 G90 G01 X0 Y0 F1000
N20 G02 G163=50 X100 ;clockwise semicircle
N30 G03 X200 ;counter-clockwise semicircle
N40 M30
Attention
If the starting and end points of the circle programmed with "R", "R1" or "G163" are identical, an error message is output. If a full circle is travelled, it must be programmed with I/J/K.
Circular programming using angle and centre point
Another option is to program a circle by specifying an angle and a centre point. These values are used to calculate the end point of the circle and to interpolate the circle. Depending on the active plane, the assigned centre point coordinates must be used here.
This function is available as of V3.01.3080.15 or V3.1.3107.49.
Syntax example for G17 plane: |
G02 | G03 I.. J.. #CANG=.. |
G02 | G03 | Circular interpolation CW / CCW |
I.. J.. | Position of circle centre point of interpolation in XY plane (I in X, J in Y) in [mm, inch], according to G161/G162 |
#CANG=.. | Circle opening angle in degrees [°]. The end point is calculated. |
Programing Example
Circular interpolation with centre point and angle
N05 G17 G161 ;G17 plane, absolute centre point specified
N07 G00 X0 Y0
N10 G01 G90 X10 Y10 F1000 ;Circle start point
N20 G02 I40 J20 #CANG=135 ;End point P1 is calculated
N30 ..