📷 IMAGE AREA — G00 rapid, G01 linear cut and G02/G03 circular arc compared
Suggested alt text: CNC milling G00 G01 G02 G03 motion types
In CNC milling programming, knowing the coordinates alone is not enough; the machine must be told not only which point the tool goes to but how it gets there. These motion types are managed on FANUC mainly by four commands: G00 rapid positioning, G01 linear interpolation, G02 clockwise circular, G03 counter-clockwise circular. Most of face milling, slotting, pocket clearing, contouring and hole positioning is done by ordering these moves correctly.
1. Aim of the lesson
By the end of this lesson the student will be able to explain interpolation; understand the difference between G00 and G01; write a linear cut with G01; explain the role of the F feed; determine the G02/G03 directions correctly; distinguish the G17/G18/G19 planes; program an arc centre with I/J/K or with R; understand the difference between a full circle and an arc; and check the tool path geometrically before running.
2. What is interpolation?
Interpolation is the control method that determines what path the tool follows from a start point to an end point. When only the end point is given, how it gets there is set by the G code used. For example, from X0 Y0 to X50 Y30 the target can be reached by rapid positioning, by a linear cut or over a circular arc — even if the end point is the same, the path, speed and machining result are completely different. When several axes move together the control manages them simultaneously to follow the required geometric path.
3. G00 – Rapid positioning
G00 moves the tool to a position as fast as possible without cutting: G00 X50. Y25.;. When? Approaching the part, moving between machining areas, retracting before a tool change, moving between holes and going to safe Z. Safe order: G00 Z50.; → G00 X20. Y30.; → G00 Z5.; (safe Z first, then X-Y, then approach). G00 is not a cutting move: G00 Z-5.; can plunge the tool rapidly into the part and cause tool breakage/collision; entry into the part is done in a controlled way with G01 Z-5. F100.;.
4. The real path of a G00 move
Thinking a G00 move always follows a straight line between start and end is a common mistake. On some FANUC/machine configurations G00 can occur with simultaneous but non-linear axis motion, each axis at its own rapid capacity; so the intermediate path should not always be thought of as a cutting line. Safe structure: instead of the risky G00 X100. Y50. Z5.;, use G00 Z50.; → G00 X100. Y50.; → G00 Z5.; (retract first, then move horizontally).
5. F value and Rapid Override in a G00 move
F states the cutting feed but does not set the G00 rapid positioning speed; the G00 speed is set by the builder’s rapid-traverse value, the Rapid Override switch and CNC parameters. The panel has a Rapid Override (0%, 25%, 50%, 100%) that reduces the rapid speed; it should be kept low on the first run of a new/modified program. But Rapid Override does not make a wrong program safe; it only buys the operator time to notice an error.
6. G01 – Linear interpolation
G01 moves the tool along a straight line from start to target at the stated feed: G01 X80. Y30. F250.;. The control does not move X then Y but both simultaneously, and the tool follows a straight path between start and end; so an angled edge, chamfer, diagonal slot and linear contour can be machined.
7. F – Feed rate
In G01, F is the feed during cutting; with G94 active usually in mm/min (e.g. G01 X100. F300.; → 300 mm/min). F is not chosen randomly: it depends on the material, tool material/diameter/number of flutes, depth of cut, stepover, machine rigidity, clamping and coolant. A very low feed is not always safe (the tool rubs/wears instead of cutting); a very high feed causes tool breakage, vibration and dimensional error. F is modal: the previous value stays until a new one is written; so a suitable F must be written explicitly for restarting mid-program.
8. Comparison of G00 and G01
| Feature | G00 | G01 |
|---|---|---|
| Main role | Rapid positioning | Linear cutting move |
| Material removal | Not intended | Can be intended |
| Speed | Machine rapid traverse | By the F value |
| Path | Can depend on machine setting | Linear |
| Common use | Idle approach/retract | Milling and controlled entry |
| Operator control | Rapid Override | Feed Override |
G00 X20. Y20.;
G00 Z5.;
G01 Z-2. F100.;
G01 X80. F300.;
G00 Z50.;9. Circular interpolation (G02/G03)
Parts can have radii, circular pockets, half circles, rounded corners and full circles; these are machined with G02 (clockwise) and G03 (counter-clockwise). The direction is determined by looking from the positive axis perpendicular to the selected working plane. The most used plane is G17 (XY); looking from above (positive Z), clockwise is G02 and counter-clockwise is G03.
10. Working planes – G17, G18, G19
You state between which two axes the circular move is made. G17 XY plane (perpendicular axis Z; most common on a VMC), G18 XZ plane (perpendicular axis Y), G19 YZ plane (perpendicular axis X). E.g. G17 G02 X... Y... R...;, G18 G02 X... Z... R...;, G19 G03 Y... Z... R...;.
11. The result of a wrong plane selection
If an arc is written in the XY plane while G18 remains active, the control tries to interpret the move in the XZ plane; that means an alarm, unexpected axis motion, a wrong contour and collision risk. FANUC notes a wrong plane in circular/helical interpolation and canned cycles can make the machine behave unexpectedly; so G17 is usually written explicitly at the start of three-axis programs.
12. The G02 and G03 command structure
In the G17 XY plane: G02 X... Y... R... F...; (R method) or G02 X... Y... I... J... F...; (centre method). Here X/Y is the arc end point, I/J the distance from the start to the arc centre, R the arc radius, F the feed. (G18 uses X-Z with I-K, G19 uses Y-Z with J-K.)
13. The start point in a circular move
The start point is not written again on the G02/G03 line; the start is the position just before the command runs. E.g. G00 X20. Y20.; G01 Z-2. F100.; G02 X60. Y20. R20. F250.; — the arc starts at X20 Y20, ends at X60 Y20, radius R20.
14. Programming a circular move with R
If the arc radius is known, the R method is easy: G17 G02 X60. Y20. R20. F250.; — in the XY plane, clockwise, to X60 Y20 with a 20 mm radius arc. The R method is useful for simple arcs, when the radius is on the drawing, and for arcs smaller than 180 degrees. R sign: on FANUC, positive R for arcs under 180 degrees, negative R for arcs over 180. With the same start/end/radius, two different arcs are geometrically possible; the R sign selects which one (e.g. G03 X80. Y40. R25.; short arc, G03 X80. Y40. R-25.; long arc).
15. Defining the arc centre with I, J and K
The circular move can also be written by giving the arc centre: I the X-distance from the start to the centre, J the Y-distance, K the Z-distance. By plane:
| Plane | Axes | Centre addresses |
|---|---|---|
| G17 | X–Y | I–J |
| G18 | X–Z | I–K |
| G19 | Y–Z | J–K |
16. I, J and K values are incremental
A key rule: I, J and K are the incremental distances from the start point to the arc centre, even if G90 is active (independent of G90/G91, always vector components from start to centre). In G17, I = Centre X – Start X, J = Centre Y – Start Y. E.g. start X20 Y10, centre X40 Y30 → I = 20, J = 20 → I20. J20.. Start X60 Y40, centre X40 Y40 → I = -20, J = 0 → I-20. (J can be omitted since it is zero).
17. G02 and G03 examples – I/J method
G02 (clockwise quarter circle): start X20 Y40, end X40 Y20, centre X40 Y40 → I = 20, J = 0:
G17 G02 X40. Y20. I20. F250.;G03 (counter-clockwise quarter circle): start X40 Y20, end X20 Y40, centre X40 Y40 → I = 0, J = 20:
G17 G03 X20. Y40. J20. F250.;18. Comparing the R method and the I–J method
R method: short to write, easy when the radius is on the drawing, clear for simple arcs; but the sign needs care for arcs over 180 degrees and it is not suitable for a full circle. I–J method: the arc centre is defined explicitly, a full circle can be programmed, and it can be more reliable on complex contours; but it needs a centre calculation and I/J sign errors are possible.
19. Programming a full circle
In a full circle the start and end points are the same. With the R method, when the start/end are written the same the control may interpret the move as zero degrees (on FANUC, with R and the same start/end the tool may not move). For a full circle, I–J is used: tool at X60 Y40, circle centre X40 Y40 → I = -20 → G02 I-20. F250.;. Since no end coordinate is written, the start/end are taken as the same; I defines the centre.
20. G90 and G91 in circular moves
The G02/G03 end coordinate is interpreted absolute in G90 and incremental to the start in G91; but I, J, K are always incremental from the start to the centre. E.g. start X20 Y20, end X60 Y20, centre X40 Y20: in G90 G90 G02 X60. Y20. I20.;, in G91 G91 G02 X40. Y0. I20.; (X40 is the move amount, I20 the distance to the centre). At beginner level, circular moves are more easily checked with G90.
21. G02 and G03 are modal commands
G00, G01, G02, G03 are modal commands in the same motion group; once written they stay active until an opposite command appears. But because the arc direction is critical information, writing G02 or G03 explicitly on each new arc move is useful for training and readability.
22. Using linear and circular moves together
An outer contour usually consists of straight lines and radii (straight edges G01, corner radii G03):
G00 X10. Y10.;
G01 Z-2. F100.;
G01 X70. F300.;
G03 X80. Y20. R10.;
G01 Y50.;
G03 X70. Y60. R10.;
G01 X20.;
G03 X10. Y50. R10.;
G01 Y20.;
G03 X20. Y10. R10.;But such programs written without accounting for the tool diameter may not give the part dimension directly; the difference between the tool-centre path and the part contour is covered in the later tool radius compensation lesson.
Dwell with G04
Alongside the motion commands, one more command is worth knowing: the G04 dwell command. G04 makes the program wait for a specified time without any axis movement; the spindle keeps rotating.
G04 P2000 (on most FANUC controls: 2000 milliseconds = 2 seconds dwell)
G04 X2.0 (2 seconds dwell – the X address accepts decimal seconds)The P address generally does not accept a decimal point and is interpreted in milliseconds, while the X address is used with a decimal value in seconds. Typical uses: letting the tool dwell for a revolution or two at the bottom of a hole to clean up the floor, and improving surface quality at countersinks and slot floors. The G82 drilling cycle, covered later, uses the same dwell logic inside a canned cycle. The behaviour of the dwell address (P, X or U) can differ between controls; confirm it in the machine’s programming manual before using it. Unnecessarily long dwell times increase cycle time and can cause the tool to rub and heat up against the part.
23. Introduction to helical interpolation
If a linear move on a third axis is given at the same time as G02/G03, a helical move is formed. In G17, X-Y draw the arc while Z descends linearly: G17 G03 X40. Y20. I20. Z-5. F150.;. Helical motion is used at a circular-pocket entry, for large-diameter hole making, thread milling and controlled plunging. At beginner level it should be known only in general logic; in practice the tool diameter, helix pitch, cutting forces and builder recommendations must also be evaluated.
24. Safe approach planes
Different heights are used in Z: Z50. safe distance (the height at which the tool clears the part/vise/fixture), Z5. approach plane (close to but not touching the part), Z0. part top face, Z-2. machining depth. These are not fixed standards; they are set by the part and clamping layout.
25. Correct and risky approach example
(CORRECT)
G00 Z50.;
G00 X30. Y20.;
G00 Z5.;
G01 Z-3. F100.;
G01 X80. F300.;
G00 Z50.;
(RISKY)
G00 X30. Y20. Z-3.;In the risky example, X-Y and Z move rapidly in the same block, so the tool can go directly into the part or the clamping element depending on the machine’s positioning method. In safe programming the order of Z and X-Y moves must be deliberately separated.
26. How should the cutter enter the part?
An end mill cannot always be plunged vertically into the part; the tool’s centre-cutting ability, tip geometry, coating, builder recommendation and chip evacuation must be checked. Entry methods: axial plunge, ramp entry, helical entry, entry through a pre-drilled hole and side entry. Plunging a non-centre-cutting end mill directly with G01 Z-10.; can damage the tool.
27. Simple slot and rectangle path example
Slot (X20 Y30 → X80 Y30, depth 3 mm):
G90 G54;
G00 X20. Y30.;
G00 Z5.;
G01 Z-3. F100.;
G01 X80. F250.;
G00 Z50.;Rectangle path (P1 X20 Y20, P2 X80 Y20, P3 X80 Y50, P4 X20 Y50):
G90 G54;
G00 X20. Y20.;
G00 Z5.;
G01 Z-2. F100.;
G01 X80. Y20. F300.;
G01 X80. Y50.;
G01 X20. Y50.;
G01 X20. Y20.;
G00 Z50.;28. Quarter-circle examples with G02 and G03
(G02 quarter circle: start X20 Y40, end X40 Y20, centre X40 Y40)
G17 G90;
G00 X20. Y40.;
G01 Z-2. F100.;
G02 X40. Y20. I20. J0. F250.;
(or R method: G02 X40. Y20. R20. F250.;)
(G03 quarter circle: start X40 Y20, end X20 Y40, centre X40 Y40)
G03 X20. Y40. J20. F250.; (I omitted as it is zero)29. Method for determining the G02/G03 direction
Before programming an arc: determine the working plane → look from the positive axis perpendicular to the plane → mark the start and end points → draw which way the tool follows the arc → choose G02 if clockwise, G03 if counter-clockwise → calculate the centre or R value. Choosing G02/G03 from memory without this drawing increases the error risk.
30. Method for determining the I–J signs
The I and J signs are determined not by the arc direction but by looking from the start to the centre: if the centre is right of the start, I positive; if left, I negative; if above, J positive; if below, J negative. E.g. start X50 Y50, centre X30 Y70 → I = 30-50 = -20, J = 70-50 = +20 → I-20. J20.. The G02/G03 choice is then set separately by the direction from start to end.
31. Common mistakes in circular moves
- Confusing G02 and G03: the tool goes the wrong side of the arc, the contour is spoiled. Fix: draw the arc with an arrow on the drawing.
- Wrong plane: if G18 stays active for an XY arc, the control tries to work in XZ. Fix:
G17at the start and in the tool section. - Writing I/J relative to the part zero: wrong. Correct: I = centre X – start X, J = centre Y – start Y.
- Start and end radii not matching: the distance from the arc start to the centre and from the end to the centre must be equal; if the difference exceeds the tolerance, FANUC can raise an alarm.
- Choosing the R sign wrongly: a long arc forms instead of a short one and the tool goes round the unexpected side. Writing a full circle with R: not reliable, use I–J (or I–K/J–K).
- Not accounting for the tool diameter: if contour coordinates are given directly to the tool centre, the dimension comes out off by the tool radius. Fix: centre-path calculation or G41/G42 (later lesson).
32. Approaching a circular-move alarm
If an alarm occurs on a G02/G03 line, check: the right plane, the start/end, the G90/G91 state, whether I/J/K are from the start to the centre and their signs are correct, whether R is geometrically possible, the R positive/negative choice, whether the start/end radii are equal, and whether a zero-length/meaningless arc is written. Clearing the alarm with RESET only is not a solution; the geometric error must be found first.
33. Feed Override, Single Block and Dry Run
Feed Override: in G01/G02/G03 the real feed can be changed from the panel (at F300, 50% ≈ 150, 25% ≈ 75 mm/min); it can be kept low on the first part, but very low causes rubbing/wear. Single Block: the program stops after each block; the operator checks the position, Distance to Go and direction, then starts the next block — especially important on new G02/G03 programs. Dry Run: used to check the tool path, but its speed can differ from and exceed the programmed F; it should not be assumed safe, and the tool being clear of the part and the overrides must be verified.
34. A simple combined application
Tool path: X20 Y20 → straight line X70 Y20 → R10 arc X80 Y30 → straight line X80 Y50 → safe Z:
G17 G21 G90 G94;
G54;
G00 X20. Y20.;
G00 Z5.;
G01 Z-2. F100.;
G01 X70. Y20. F250.;
G03 X80. Y30. R10.;
G01 X80. Y50.;
G00 Z50.;Here G00 positioning, G01 linear cut, G03 circular cut, R10 arc radius and F feed are used. The tool-diameter / part-contour relationship is not considered in this example.
35. The basic command table used in this lesson
| Command | Role |
|---|---|
| G00 | Rapid positioning |
| G01 | Linear interpolation |
| G02 / G03 | Clockwise / counter-clockwise circular interpolation |
| G17 / G18 / G19 | XY / XZ / YZ working plane |
| G90 / G91 | Absolute / incremental programming |
| G94 | Feed per minute |
| F | Feed rate |
| I / J / K | X / Y / Z distance from start to centre |
| R | Arc radius |
36. The student’s basic working method
When programming a tool path: determine the workpiece zero → list the start and end points → decide whether each move is rapid or cutting → use G01 for linear, and determine the plane for arcs → draw the arc direction and choose G02/G03 → decide between the R and I–J methods → if using I–J, calculate the differences from start to centre → add the Z approach/safe-retract levels and the F feeds → check the program in graphics or Single Block.
37. Lesson summary
- Interpolation is how the tool moves between two points. G00 is rapid positioning (not for cutting; its speed is set by the machine traverse, not F).
- G01 is a linear cut (at the F feed, axes simultaneous). G02 is clockwise, G03 counter-clockwise circular.
- G17 XY, G18 XZ, G19 YZ plane. The arc end is X/Y/Z; R the radius; I/J/K incremental from start to centre (not affected by G90).
- A full circle is programmed with I–J; the R sign selects the short/long arc. The tool must retract to safe Z before a horizontal rapid move.