# An Easier Way To Program Circular Moves

A circular move (circular interpolation) requires the following commands:

- Interpolation plane: Specify an interpolation plane (especially if the desired interpolation plane is different from the present interpolation plane) using a G17, G18, or G19 command. Oftentimes, G17 is used with a G20 (plane rotation) command.
- Direction: Specify clockwise or counterclockwise circular interpolation (if different from the present interpolation direction) using G2 or G3. G2 or G3 can be included on the line of the circular move.
- Incremental center location: Specify the signed (+ or -) distance from the arc starting point to the arc center, using I, J, or K for distance parallel to X, Y, and Z axes, respectively.Each circular program block must contain two center locations that specify the distances from the current position to the circle center along the two axes in the current plane. Therefore, two alpha characters must be used (I and J with G17, K and I with G18, or J and K with G19, depending on the plane selected in step 2 above).
- Arc end points: Specify the circular motion end point in either ABSOLUTE or INCREMENTAL mode, using X, Y and Z motion commands. If the end point for any axis is the same as the starting point for that axis (180-degree or 360-degree arcs), the end point for that axis may be omitted. Once an arc has been defined with step 3, the arc end point must actually lay on that arc, or an error is flagged in the CHECK-RUN operation.

For example, the following block produces a clockwise circle with a 2-inch radius in the XY plane:

G17 G2 I0 J2

The following block produces a clockwise 90º arc with a 2-inch radius in the XY plane:

G17 G2 I0J2 X-2Y2

**A Simpler Way to Program**

Beginning with software version 2.3.1, you can also program circles and arcs directly defining a radius and end coordinates of the move. The code will include the final coordinates (typically with X and Y) and the radius value after the letter R.

With an arc, there are two possible solutions: a short and a long path. The positive R-value causes the system to follow the shorter path, while a negative R-value creates the longer path. G2 and G3 still cause Clockwise and Counterclockwise rotation respectively.

It is necessary to include a G2 or G3 on the same line as the R and before the R. Without a G2 or G3, the software will interpret the R as a command to ‘Repeat’ the current line.

Here are some examples using the G2R and G3R. In the pictures, the triangle represents the starting point of the move while the circle represents the end point.