Circular Interpolation (G02, G03, IJK, U)

G02 clockwise circular interpolation

Command

G2 or G02

Cancellation

G00, G01 or G03

Set the interpolation mode to “circular/helical, clockwise”. The interpolation mode applies to this block and all succeeding blocks until it is reset by G00, G01 or G03. If G02 is active, programming of a point will result in a circular (or helical) arc that is machined with the current velocity. (See General Codes (F, N, Q, X, Y, Z, A, B, C).) In the following, a circular arc is regarded. The helical arc is covered later.

A circular arc starts at the current point and ends at the programmed point. It rotates around the working-plane normal (PCS, i.e. program coordinate system) in the center point. The center point can be defined using Centerpoint Programming or using Radius Programming.

Centerpoint Programming I, J, K

For Centerpoint Programming the center is standardly defined relative to the starting-point using the I,J,K parameters. The center point is the sum of the starting-point and the vector [I,J,K]. Alternatively, the center point can also be specified as absolute. For this the reference type must be set to absolute in advance with the ST command circleCenterReferenceSet. The I,J,K parameters are optional and have 0 value by default. If the starting-point and the endpoint are equal with respect to the workingplane, a full circle will be emitted.

Circular Interpolation (G02, G03, IJK, U) 1:

CONSTRAINTS:

  • The radius at the starting-point and at the endpoint must be equal. However, small deviations are allowed and corrected automatically, see Centerpoint Correction.
  • The center point must not be equal to the starting-point or endpoint.

Radius Programming U

For Radius Programming the center point is derived from the radius that is given by the U parameter. Typically, there are two arcs of a given radius that lead from the starting-point to the endpoint. If the radius is positive, the shorter one is used, otherwise the longer one is chosen. Apart from that, the absolute value of the radius is regarded by the interpreter.

Circular Interpolation (G02, G03, IJK, U) 2:

CONSTRAINTS:

  • Radius Programming can by its nature not be used to program a full circle. This curvature can be programmed by Centerpoint Programming.
  • The radius must not be zero.
  • The radius must not be smaller than half of the distance between starting-point and endpoint with respect to the workingplane.

Helical

If the starting-point and endpoint do not lie in a plane that is parallel to the workingplane, a helical movement is performed.

Circular Interpolation (G02, G03, IJK, U) 3:

TIP: moveCircle3D

The ST-function moveCircle3D is a more powerful way to define a circle or helix. It covers 3D-arcs and multiturn circles.

Example:

The following example results in the path that is shown in Figure “ExampleG00G02”. The block N10 uses Radius Programming to define a clockwise arc from X0 Y0 to X10 Y10 with radius 10. Because the radius is positive, the center point c1 of the shorter arc is chosen. In block N30 the center point c2 of the longer arc is used because the radius is negative. The block N50 uses Centerpoint Programming, where the center c3=[60,0,0] is the sum of the starting-point [50,0,0] and [I,J,K]=[10,0,0]. The block N70 defines a full circle with center point C04 because the starting-point and endpoint are equal. The block N90 defines a helical arc with center point C05 and height 30 (in Z-direction).

N01 G00 X0  Y0
N10 G02 X10 Y10 U10 F6000
N20 G00 X30 Y0
N30 G02 X40 Y10 U-10
N40 G00 X50 Y0
N50 G02 X60 Y10 I10
N60 G00 X80 Y0
N70 G02 J10
N80 G00 X110 Y0
N90 G02 J10 X120 Y10 Z30
M30
Circular Interpolation (G02, G03, IJK, U) 4:

Figure “ExampleG00G02”.

G03 anticlockwise circular interpolation

Command

G3 or G03

Cancellation

G00, G01 or G02

Set the interpolation mode to “circular/ helical, counterclockwise”. This interpolation behaves similar to G02. The interpolation mode applies to this block and all succeeding blocks until it is reset by G00, G01 or G02.

Centerpoint Programming I<vx> J<vy> K<vz>

Defines the center point for circular movements. See G2, G3 for details. The center point is defined as currentPoint + [vx,vy,vz]. The current length unit is used for vx, vy, vz. The parameters I, J, K are optional and have a 0 default value.

Radius Programming U<v>

In the context of G2 or G3 the radius is set to |v|. The current length unit is used for v. If v is positive, the shorter arc is used to interpolate between the current and the next point. If v is negative, the longer one is used. See G2, G3 for details.

G303

With G303 an circular arc (a CIP circle) can be programmed, that can be freely located in space.

The CIP circle can also be used to program a circle anywhere in space. For this purpose, it is necessary to program not only an end point but also some other point on the path.

So that the circle can be described unambiguously, it is necessary, that the three points (the starting point is given implicitly) must not be collinear. It is thus not possible to program a full circle in this way.

I, J and K are available as path point parameters. By default, their values are relative to the starting point of a circular path.

G90
N10 G01 F2000 X0 Y0 Z0
                              // P1 (start point): X, Y, Z,
N20 G303 I30 J-15 K15 X60 Y0 Z30
       // P2 (path point): I, J, K
                                                                               // P3 (end point): X, Y, Z
N30 M02

Circular Interpolation (G02, G03, IJK, U) 5:

Requirements G303

TwinCAT

GST

TwinCAT V3.1.4024.40

GST 3.1.8.62