We use technical and security cookies and, only if you accept, analytics with no cross-site tracking. More in the Cookie policy and Privacy policy.
We use first-party cookies and technical storage to make the site work, Google reCAPTCHA security technology and, only if you accept, Vercel analytics (no cookies, no cross-site tracking). You can accept or reject analytics; both options are equivalent and you can change your choice at any time. More info: Cookie policy, Privacy policy, Legal notice and Terms and conditions.
G03: circular arc in the counterclockwise direction
G03
G03 cuts a circular arc counterclockwise, from wherever the tool is to the end point you program, in the active plane and at feedrate F. It is the mirror image of G02: the direction of rotation changes and nothing else. The center is given with I, J and K, the incremental distance from the start point to the center, or with R, the radius. And counterclockwise means counterclockwise seen from the positive side of the axis perpendicular to the plane: in G17, from +Z looking down.
For reference only: syntax changes with the control, the post-processor and the machine parameters. Check the official manual and run a simulation before cutting. Legal notice.
Family
Movement
Machine
Milling, Turning, Mill-turn
Risk
Medium
Example
G03 X20 Y0 I10 J0
G02 vs G03: which way does the arc turn?
G03
Counterclockwise circular interpolation in the active plane, at the programmed feed F.
If you write the third axis coordinate on top of the two plane ones, the arc becomes a helix: the control interpolates the circle while it takes Z down proportionally. I and J are still incremental from the start point.
Haas (milling)
G03X0.Y25.R25.F400
Same syntax as Fanuc. A positive R gives the short arc and a negative R the long one. Haas also takes helical interpolation by adding Z, and that is the usual way to open big holes with a small cutter.
Siemens 840D / 828D
G3X0Y25CR=25F400
Siemens writes G3 and uses CR= for the radius, I/J for the center and AR= for the opening angle. For helices there are also TURN= and the circular milling cycles, which work the turns out for you.
Heidenhain TNC (Klartext)
CCX+50Y+50/CX+41Y+50DR+
The center is declared with CC and the arc with C; DR+ is the counterclockwise direction. For helices the TNC has polar programming (CP) with the tool axis coordinate, which is easier than chaining turns by hand.
Address letters used with it
Letter
What it sets
Unit
X Y Z
End point of the arc. If it matches the start point and you give the center with I J, the control describes the full circle. Adding the third axis turns the arc into a helix.
mm / in
I J K
Distance from the start point to the center, axis by axis: I in X, J in Y, K in Z. Only the two of the active plane are used, they are signed, and they are incremental even in G90.
mm / in, incremental from the start point
R
Radius of the arc as an alternative to I J K. Positive if the arc is 180 degrees or less, negative if it is bigger. No good for full circles and not reliable on semicircles.
mm / in
F
Feedrate along the path. On an inside arc it pays to remember that the feed at the cutting edge is not the same as at the cutter center: on small radii the tool takes far more material than it looks.
mm/min under G94, mm/rev under G95
G17 / G18 / G19
Plane of the arc. It sets which pair of center letters is used and the viewpoint the direction of rotation is judged from.
modal, no units
Worked example
A 30 mm through hole in a 10 mm aluminum plate, opened up with a 12 mm cutter by helical interpolation. The helix radius is (30 - 12) / 2 = 9 mm, and it drops 3 mm per turn. G03 is used because in a hole or a pocket, with a right-hand cutter running M03, counterclockwise is the direction that gives climb milling.
O0103(AGUJERO D30 POR INTERPOLACION HELICOIDAL)
( Program header. )
G21G17G40G49G80
( Millimeters and XY plane: the helix is drawn in XY while Z comes down, so the plane has to be the right one. )
G91G28Z0.
( Z to the reference point before the change. )
T2M06
( Three flute 12 mm cutter for aluminum. )
G90G54G00X50.Y50.
( Positions over the center of the hole, which is also the center of the helix. )
G43H02Z50.M03S5000
( T2 length offset and spindle on. )
G00Z1.M08
( Rapid down to 1 mm above the face and coolant on. )
G01X41.Y50.F600
( Moves from the center out to the helix radius: 9 mm in X. From here on the cutter circles around X50 Y50. )
G03X41.Y50.I9.J0.Z-2.F450
( First turn. The end point matches the start point, so it is a full circle; I9 J0 put the center 9 mm to the right of the starting point. Z goes from 1 to -2, three millimeters in one turn. )
G03X41.Y50.I9.J0.Z-5.
( Second turn, another 3 mm. G03 and F are modal, but the center has to be repeated in every block. )
G03X41.Y50.I9.J0.Z-8.
( Third turn. )
G03X41.Y50.I9.J0.Z-11.
( Fourth turn: it reaches Z-11, one millimeter below the plate, so the hole breaks out clean underneath. )
G03X41.Y50.I9.J0.F300
( A full turn with no drop in Z: this is the finish pass that leaves the wall straight and wipes out the spiral mark of the helix. )
G01X50.Y50.F1000
( Back to the center of the hole, now off the wall, so it can come up without scratching it. )
There is a single rule: look at the active plane from the positive side of the axis that does not take part, and judge the rotation from there. In G17 that means looking down at the table, so it is enough to sketch the arc and see which way it turns. With a right-hand cutter and the spindle in M03, that direction also has a cutting consequence: in a hole, a pocket or any inside contour, G03 gives climb milling and G02 gives conventional; on an outside profile it is exactly the other way around. That is why interpolated holes and circular pockets nearly always come out in G03.
Helical interpolation: the star use of G03
Add the third axis coordinate to the block and the arc becomes a helix, so the cutter spirals down instead of plunging. It is the standard way to open a hole bigger than the tool, to drop into a pocket and to mill threads. Two numbers have to be worked out right: the helix radius, which is (hole diameter minus cutter diameter) divided by two, and the lead, that is, how far Z drops per full turn, which in steel usually stays between 1 and 5 percent of the cutter diameter. At the end you run one turn without dropping, and that is the one that leaves the wall straight.
The end point has to land on the circle
The control checks that the distance from the center to the start point and the distance from the center to the end point are equal within a tiny tolerance set by a machine parameter. If they are not, you get the end of arc or illegal arc alarm. The causes are nearly always the same: CAD coordinates rounded to two decimals when the radius needs three, a flipped sign on I or J, or an end point edited by hand after the center was worked out. The fix is to recalculate the center or the end point, never to widen the control tolerance.
Mistakes that cost you a part (or a tool)
Copying an arc from G02 and only changing the number of the code: reversing the direction leaves the center in the wrong place and the control alarms or cuts a different arc.
Forgetting to subtract the cutter radius when programming a helix: give the hole radius instead of (hole D - cutter D) / 2 and the hole comes out one cutter diameter too big.
Dropping too much per turn on the helix: the tool works in a ramp with the whole flute engaged and, in steel, going past the small recommended percentage snaps it.
Finishing the helix without running a full turn at constant depth: a spiral step is left on the wall of the hole.
Coming up in Z hugging the wall instead of going back to the center first: the cutter scratches the hole you have just finished.
Giving the end point with fewer decimals than the radius demands, which brings on the end of arc error.
Programming the arc with an inherited plane that is not the one you think: in G18 the center letters are I and K, and a J is either surplus or an alarm.
Frequently Asked Questions (FAQ)
Is G03 clockwise or counterclockwise?
Counterclockwise, but seen from the positive side of the axis perpendicular to the active plane: in G17, from +Z looking down at the table. In G18 and G19 that viewpoint does not match the one on the screen, and that is why the same arc looks like it turns the other way.
How do I cut a full circle with G03?
With I and J, leaving the end point the same as the start point (or simply not writing X and Y). The control goes all the way around the center you gave it. With R you cannot: two identical points do not define any particular circle.
What is helical interpolation?
An arc in the active plane with the third axis coordinate added: the control turns and descends at the same time. It is used to open holes bigger than the cutter, to enter a pocket without plunging and to mill threads. It is the most frequent use of G03 on a milling machine.
Why does my G03 give an end of arc error?
Because the end point does not sit on the circle defined by the center. Check the decimals of the end point, the sign of I and J and that the active plane is the one you think. Widening the control tolerance covers the symptom and leaves a jump in the path.
G03 with R or with I J?
R for clean arcs under 180 degrees, where it saves arithmetic and reads better. I and J for semicircles, big arcs, full circles and helices, because they define the center with no ambiguity at all.