# LinuxCNC G3

Instructions · `G3` · verification: source checked

G3 is the LinuxCNC G-code for a circular or helical arc move in the counterclockwise direction at the current feed rate. The arc is specified either by its end point plus offsets to the arc center (center format) or by its end point plus a radius (radius format), in the plane chosen with G17, G18 or G19. Including the axis word perpendicular to the selected plane produces a helical move.

## Specification

| Property | Value |
|---|---|
| Language | gcode |
| Code | G3 |
| Group | motion |
| Syntax | G3 <X- Y- Z- I- J- P-> (XY plane, center format); G3 axes R- <P-> (radius format) |
| Dialect | LinuxCNC |

### Parameters

| Name | Description |
|---|---|
| X | Endpoint X coordinate in the currently active coordinate system |
| Y | Endpoint Y coordinate in the currently active coordinate system |
| Z | Endpoint Z coordinate; acts as the helix axis in the G17 plane |
| I | X offset to the arc center from the current location |
| J | Y offset to the arc center from the current location |
| K | Z offset to the arc center from the current location (XZ and YZ planes) |
| R | Radius from the current position (radius format) |
| P | Number of full turns plus the programmed arc; integer, defaults to 1 |

## Connected

- Related: [LinuxCNC G02](https://machineschema.com/instruction/gcode-g02.md)

## Safety

- Warning: if the pitch of the helix is very small (less than the naive CAM tolerance) the helix might be converted into a straight line (bug #222).
- It is an error if, when the arc is projected on the selected plane, the distance from the current point to the center differs from the distance from the end point to the center by more than 0.05 inch/0.5 mm, or by more than 0.0005 inch/0.005 mm and 0.1% of the radius.

## Study notes

- The direction of G3 (counterclockwise) is as viewed from the positive end of the axis about which the circular motion occurs.
- The plane is selected with G17 (XY), G18 (XZ) or G19 (YZ); the arc axis must be parallel to X, Y or Z, and planes 17.1, 18.1 and 19.1 are not currently supported for arcs.
- Center format is more accurate than radius format and is the preferred format; one or more axis words and one or more offsets are required for arcs less than 360 degrees.
- Arc center offsets are a relative distance from the arc start by default (G91.1 incremental arc distance mode); under G90.1 absolute arc distance mode both offsets must be specified.
- For a helix, include the axis word perpendicular to the arc plane (for example a Z word in G17); that axis moves to the programmed value during the circular motion.
- The P word gives the number of full turns plus the programmed arc, must be an integer, and defaults to 1 if unspecified; multi-turn helical arcs can be used for milling holes or threads.
- Rounding error can result from using less than 4 decimal places (0.0000) for inch or less than 3 decimal places (0.000) for millimetres.
- In radius format a positive R indicates a turn of less than 180 degrees and a negative R a turn of more than 180 degrees; radius format is not recommended for nearly full circles or nearly semicircles.
- Rotary axis words in an arc block turn at a constant rate so that rotary motion starts and finishes with the XYZ motion.
- It is an error if no feed rate has been set, no offsets are programmed, the P word is not an integer, both axis words of the selected plane are omitted in radius format, or the arc end point equals the current point in radius format.

## Sources

1. [G-Codes](https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g2-g3) (accessed 2026-10-26)

---

Source page: https://machineschema.com/instruction/gcode-g03  
JSON: https://machineschema.com/instruction/gcode-g03.json  
License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Cite Machine Schema and the original sources.
