G02 Clockwise Circular Interpolation Command: CNC Programming Guide
Master G02 clockwise circular interpolation on Fanuc, Siemens, and Mitsubishi CNC systems. Configure tolerance parameters, avoid alarms, and program arcs.
Introduction
A toolpath execution error during circular motion will instantly trigger an NC stop, suspending the tool mid-cut, ruining the workpiece surface finish, and potentially causing severe spindle axis overtravel. This mechanical disruption frequently happens when a clockwise circular sweep is programmed on the wrong coordinate axes, or when a rounding mismatch exists between the programmed center point and the target endpoint. When the machine freezes mid-cut, the sudden deceleration can fracture a carbide insert or leave deep gouges in high-value components. Managing active coordinate planes, verifying the rotational limits of a chuck, managing C-axis clamp M codes, ensuring correct turret mirror imaging, and respecting chuck and tailstock barrier limits are critical actions required to prevent these sudden controller lockouts.
Technical Summary
| Technical Attribute | Specification |
|---|---|
| Command Code | G02 (or G2 in Siemens) |
| Modal Group / Modality | Group 01 (Modal command, Cutting Feed / Interpolation) |
| Supported Brands | Fanuc, Siemens, Mitsubishi |
| Critical Parameters | Parameter 3410 (Fanuc Arc Radius Tolerance), MD21000 (Siemens Circle Error Constant), Parameter #1084 (Mitsubishi Arc Error) |
| Main Constraint | Arc endpoint coordinates must mathematically align with the calculated start radius within strict controller parameter thresholds to prevent immediate motion suspension. |
Quick Read
- Select
G02for all clockwise circular profiling, helical thread milling, and circular pocketing operations to maintain a precise radius path. - Program coordinate targets and radius
Ror incremental center offsetsI, J, Kin every new circle block to avoid immediate format alarms. - Match the commanded coordinate axes to the active working plane (
G17,G18, orG19) to prevent illegal plane select faults. - Verify CAM-generated coordinate decimal rounding tolerances before execution to ensure they do not exceed system error limits.
- Implement a
G22chuck barrier check to guarantee that intricate circular toolpaths never violate the rotational envelope of the chuck. - Set up a standard
dry runwith elevated Z-axis positioning on the first part run to safely verify path trajectory correctness.
Basic Concepts
The G02 command dynamically drives the CNC tool path along a clockwise circular arc within a selected geometric plane (G17, G18, or G19). At its core, the command requires technical precision regarding three key items: the start point, the end point, and the mathematical representation of the circle center (using either I, J, K center-offset vectors or a direct R radius specification). Programmers and operators across all control types must ensure that the coordinate values are calculated correctly because a minute mismatch between the start radius and end radius will cause the control to fault out or apply compensation logic.
Feedrate is also a highly critical factor during circular interpolation. As the tool traverses an arc, the actual feedrate at the cutting edge of the tool can significantly differ from the programmed path feedrate (F), particularly during internal pocketing or external profiling of tight curves. Operators must also guarantee that the active working plane is correctly aligned with the commanded axis endpoints before executing a circular block, as a mismatch will instantly trigger a plane selection alarm or lead to axis overtravel.
Command Structure
The circular interpolation command dictates the movement of the tool along a curved clockwise path. Because G02 is a modal command belonging to Group 01, it remains active until overridden by a different motion command like G01 Linear Interpolation or G00 Rapid Traverse. The path velocity is controlled by the programmed feedrate (F), which is also modal and carries over from previous cutting blocks unless redefined in the current line.
To define the circular geometry, the controller needs absolute or incremental target coordinates and a description of the arc center. Using direct radius designation via the R (or CR) address is simple but cannot be used to program full 360-degree circles. For full circles, incremental center-offset vectors (I, J, K) are mandatory, as they explicitly specify the exact distance and direction from the start point to the circle center along each respective axis.
Fanuc Syntax:
G17 G02 X_ Y_ R_ F_ ; (Milling XY Plane with Radius R)
G17 G02 X_ Y_ I_ J_ F_ ; (Milling XY Plane with Center Offsets)
G02 X_ Z_ I_ K_ F_ ; (Lathe System with Center Offsets)
Siemens Syntax:
G2 X... Y... Z... I... J... K... (Center and End Point)
G2 X... Y... Z... CR=... (Radius and End Point)
G2 X... Y... Z... AR=... (Opening Angle)
G2 X... Y... Z... I... J... K... TURN=... (Helical Multi-Turn)
Mitsubishi Syntax:
G02 X_ Y_ Z_ I_ J_ K_ F_ ; (Machining Center with Center Offsets)
G02 X/U_ Z/W_ R_ F_ ; (Lathe System with Radius R)
| Brand | Parameter | Description | Value Range |
|---|---|---|---|
| Fanuc | Parameter 3410 | Tolerance of Arc Radius difference between the start and end points of an arc. | 1 to 99,999,999 (unit: 0.001 mm for IS-B metric, 0.0001 inch for IS-B inch); 0 = bypass check |
| Fanuc | Parameter 3403 bit 5 (CIR) | Determines machine behavior when an arc is programmed without defining R or I, J, K. | 0 = move to end point via G01 linear interpolation; 1 = trigger P/S alarm No. 022 |
| Fanuc | Parameter 3450 bit 3 (CQD) | Dictates the mathematical calculation method for determining the travel amount in circular interpolation. | 0 = modern Series 16 format; 1 = legacy Series 15 format |
| Siemens | MD21000 $MC_CIRCLE_ERROR_CONST | Constant boundary value for circle error check. Sets absolute radius deviation limit. | Millimeters or inches |
| Siemens | MD21010 $MC_CIRCLE_ERROR_FACTOR | Circle error factor. Multiplier for relative tolerance based on circle size. | Dimensionless factor |
| Mitsubishi | Parameter #1084 RadErr | Arc error. Sets the tolerable error range when the endpoint deviates from the center coordinate. | 0.000 to 1.000 mm |
| Mitsubishi | Parameter #11028 Tolerance Arc Cent | Tolerable correction value for calculated coordinate errors of R-specified circular center. | -1.000 to 0.100 mm (or -0.0393 to 0.0039 inch) |
| Mitsubishi | Parameter #11029 Arc to G1 no Cent | Determines machine behavior if the arc center or radius designation is completely omitted. | 0 = program error (P33); 1 = automatically changes arc command into a G01 linear command |
| Mitsubishi | Parameter #1278 ext14/bit7 | Determines path shape when the start point radius differs from the end point radius but angles match. | 0 = linear interpolation; 1 = spiral interpolation |
Brand Applications
Fanuc
On Fanuc systems, circular interpolation accuracy is tightly governed by system parameters. Parameter 3410 defines the arc radius deviation limit, while parameter 3403 bit 5 determines the error trapping behavior when geometry parameters are completely omitted.
Standard G02 commands can utilize absolute or incremental addresses. In lathe systems, the controller natively evaluates X and Z for absolute moves, or U and W for incremental adjustments.
| Category | Identifier | Description / Behavior |
|---|---|---|
| Parameter | Parameter 3410 | Tolerance of Arc Radius difference between start and end. Range: 1 to 99,999,999. 0 = bypass check. |
| Parameter | Parameter 3403 bit 5 (CIR) | Omitting R or I, J, K: 0 = move via G01; 1 = throw PS0022 alarm. |
| Parameter | Parameter 3450 bit 3 (CQD) | Calculation format: 0 = Series 16 format; 1 = Series 15 format. |
| Alarm | PS0020 | OVER TOLERANCE OF RADIUS: Calculated radius difference exceeds parameter 3410 tolerance. |
| Alarm | PS0021 | ILLEGAL PLANE SELECT: Axis commanded is not in the active plane (G17/G18/G19). |
| Alarm | PS0022 | R OR I,J,K COMMAND NOT FOUND: G02 block lacks both radius R and offsets I, J, K. |
| Alarm | PS0023 | ILLEGAL RADIUS COMMAND: Negative R commanded on a lathe (T-series) system. |
| Alarm | PS0038 | INTERFERENCE IN CIRCULAR BLOCK: Start or end point matches center during cutter compensation G41/G42. |
| Version Difference | Series 15 vs Series 16/18/21 | Series 15 uses midline split geometry for travel direction; Series 16/21 uses quadrant shortcuts. Managed via parameter 3450 (CQD). |
| Version Difference | System A Lathe | Uses coordinates X/Z and U/W natively for absolute/incremental programming without G90/G91. |
Operators must carefully manage the C-axis clamp M codes and turret mirror imaging to avoid unexpected mechanical crashes on lathe systems.
Siemens
Siemens controls evaluate circular paths dynamically, checking start and end radius coordinates against machine data tolerances. Standard absolute and relative radius checks are handled via machine data MD21000 and MD21010 to prevent dimensional errors.
Siemens allows unparalleled programming flexibility. Programmers can define circles with G2 using coordinate endpoints combined with center parameters, direct radius via CR=, opening aperture angles via AR=, or polar AP= and RP= values.
| Category | Identifier | Description / Behavior |
|---|---|---|
| Parameter | MD21000 $MC_CIRCLE_ERROR_CONST | Constant boundary value for circle error check. Sets absolute radius deviation limit in mm/inches. |
| Parameter | MD21010 $MC_CIRCLE_ERROR_FACTOR | Circle error factor. Multiplier for relative tolerance based on circle size. |
| Alarm | Alarm 14040 | Error in end point of circle: Start and end point radius difference exceeds MD21000/MD21010 limits. |
| Alarm | Alarm 14095 | Radius for circle programming too small: Programmed CR is less than half the distance between start and end. |
| Alarm | Alarm 14910 | Invalid angle of aperture: Opening angle AR is negative or greater than or equal to 360 degrees. |
| Version Difference | G290 vs G291 | Siemens native G290 supports AR=, CR=, and TURN=. ISO Dialect G291 triggers NC alarm or G01 on missing center data. |
When operating in ISO Dialect mode under G291, omitting radius or center details will trigger immediate alarms instead of utilizing flexible Siemens parameters.
Mitsubishi
Mitsubishi systems utilize an intelligent tolerance-handling control system to manage arc calculations. Critical parameters include #1084 RadErr for absolute path deviations, and parameter #11028, which corrects calculated centers for direct R commands.
Mitsubishi supports standard machining center G02 blocks using coordinate addresses X, Y, Z with center offsets or direct radius R. Incremental lathe programming relies on absolute X/Z or incremental U/W axes.
| Category | Identifier | Description / Behavior |
|---|---|---|
| Parameter | Parameter #1084 RadErr | Arc error tolerance. Range: 0.000 to 1.000 mm. |
| Parameter | Parameter #11028 Tolerance Arc Cent | Center correction range: -1.000 to 0.100 mm. Shifts arc center to midpoint to force a valid arc. |
| Parameter | Parameter #11029 Arc to G1 no Cent | Missing center action: 0 = throw P33 alarm; 1 = automatically execute block as G01 linear move. |
| Parameter | Parameter #1278 ext14/bit7 | Radius mismatch path behavior: 0 = linear interpolation; 1 = spiral interpolation. |
| Alarm | P70 | Arc error: Radius mismatch between start and end points strictly exceeds parameter #1084 RadErr limit. |
| Alarm | P33 | Format error: I, J, K or R is missing and parameter #11029 is 0, or negative R is programmed. |
| Alarm | P113 | Illegal plane select: Commanded axis is not in the active plane (G17/G18/G19). |
| Alarm | P151 | Tool command error: Issued a tool change T command while in G02 circular interpolation status. |
| Version Difference | M850VW/M830VW/M80VW/M80V vs Lathe | Advanced 3D circular interpolation (G02.4) using an intermediate point is supported on high-end machining centers but unavailable on lathes. |
Operators must never program a tool change T command while in a modal G02 state, as this will immediately trigger a P151 tool command error and halt the spindle.
Brand Comparison
| Topic | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Syntactic Methods | Standard R (radius) and I, J, K (center offsets). | Extensively rich: I, J, K (center), CR= (radius, +/- determines angle > or < 180°), AR= (aperture angle), polar coordinates (AP=, RP=), TURN= (helical turns), CIP (intermediate point), CT (tangent arc). | Standard R (radius) and I, J, K (center offsets). Additional linear axes supported. |
| Omitted R / I, J, K | Selected via Parameter 3403 (CIR). Toggles between moving via linear interpolation (0) or triggering alarm PS0022 (1). | In Native mode, omissions are mathematically invalid. In ISO Dialect mode, defaults to G01 (Lathe) or triggers NC alarm (Mill). | Controlled by Parameter #11029. Toggles between triggering program error P33 (0) or automatically executing block as a G01 linear traverse (1). |
| Arc Tolerance Errors | Checked via Parameter 3410. If the difference exceeds it, triggers PS0020 alarm. Set to 0 to bypass checks completely. Toggles math format via CQD/QCR parameters. | Checked via machine parameters MD21000/MD21010. Deviations outside limit trigger Alarm 14040 and perform safe NC stop. | Managed by Parameter #1084 (RadErr). If discrepancy is small, Parameter #11028 automatically shifts R-specified center to midpoint of segment, avoiding alarm. Spiral interpolation is triggered by Parameter #1278. |
| Helical & Multi-turn | Programmed via circular coordinates + additional linear axis. | Supports the native TURN= parameter to execute up to 999 spiral/helical passes directly inside the G02 block. | Programmed via standard 3-axis combination. 3-Dimensional circular interpolation (G02.4) supported on high-end controls. |
Technical Analysis
Analyzing the mechanical and software behaviors of these three control systems reveals distinct approaches to circular interpolation. Fanuc systems prioritize deterministic parameter customizability and backward compatibility. This is most evident in how Fanuc manages legacy geometry interpretations via parameter 3450 bit 3 (CQD) and parameter 5003 bit 1 (QCR). Programmers can toggle the path calculation method between the modern Series 16 quadrant format and the legacy Series 15 midline split format, ensuring that older files execute identically without producing unexpected spiral tool movements. Furthermore, Fanuc delegates the behavior for missing center geometry to the builder via parameter 3403 bit 5 (CIR), giving the choice to safely throw a PS0022 alarm or default to a straight line.
Siemens controls emphasize maximum contouring flexibility and advanced trajectory planning. By permitting native coordinate syntax like aperture angles (AR=) and polar designations (AP=, RP=), Siemens massively simplifies manual programming when Cartesian center points are absent from engineering drawings. A particularly powerful capability unique to Siemens is the TURN= parameter, which executes helical interpolation with up to 999 full rotations directly in the G02 block without resorting to external macro loops. Additionally, the ability to switch between absolute and incremental dimensions inline (such as I=AC(...)) within a single block removes the need to toggle global modal dimension states.
Mitsubishi controllers excel in adaptive error-handling and auto-correction. Instead of immediately suspending motion when a minor coordinate rounding mismatch is encountered, the control utilizes parameter #11028 to mathematically shift the arc center of an R-specified command to the segment's midpoint, ensuring a valid cut. If center offsets are entirely omitted, parameter #11029 can be configured to automatically execute the block as a G01 linear move to keep the cycle running. For cases where the starting and ending radii differ slightly, parameter #1084 RadErr and parameter #1278 allow the control to smoothly transition via a spiral path rather than dead-stopping the axes.
Program Examples
Fanuc Example
; Fanuc Circular Milling (XY Plane - G17)
G17 G90 G02 X50.0 Y50.0 R25.0 F200.0 ; (Beginner: CW arc to absolute X50, Y50 with a 25mm radius at 200 mm/min)
G02 X75.0 Y25.0 I25.0 J0.0 ; (Intermediate: Modal G02 using incremental center-offset vectors I=25.0, J=0.0)
Dry Run & Testing (Fanuc): To safely execute these Fanuc blocks, configure single-block mode and elevate the Z-axis 50 mm above the workpiece. On the first run, set the feedrate override dial to 0% and verify that the active plane coordinates screen shows G17 is active. If the coordinates are programmed incorrectly, the system will throw a PS0021 plane select alarm. Observe the "distance-to-go" coordinates on the controller screen as the tool executes the arc, verifying that the R25.0 command translates to a precise 25 mm radius path without tool-nose compensation collapsing onto the center point (which would trigger a PS0038 alarm).
Siemens Example
; Siemens Helical Thread Milling (G17 Plane)
G17 G90 G2 X20 Y5 Z-20 I=AC(20) J=AC(20) TURN=2 F120 ; (Advanced: Clockwise helical path to absolute X20, Y5, Z-20 with absolute center offsets and 2 additional full spiral passes at 120 mm/min)
Dry Run & Testing (Siemens): When validating this advanced Siemens block, toggle native mode via G290. Elevate the cutter above the fixture clamp and execute in single block. The controller evaluates the TURN=2 parameter to perform exactly two full circular passes while simultaneously plunging along the Z-axis. Confirm on the axis coordinate display that the center point mathematically aligns with the absolute coordinates I=AC(20) and J=AC(20). If the programmed radius CR is physically impossible (smaller than half the segment distance), the control will halt the axes at the start block and throw Alarm 14095.
Mitsubishi Example
; Mitsubishi Lathe Arc (ZX Plane - G18)
G18 G90 G02 X120.0 Z70.0 I50.0 K0.0 F200 ; (Intermediate: Clockwise lathe circular profiling with incremental center offset vectors on the ZX plane)
Dry Run & Testing (Mitsubishi): Prior to live cutting on a lathe, ensure that the G22 chuck barrier check is active to verify that the coordinate path does not violate the chuck rotational envelope. When executing G02, verify that the active plane G18 is set, since any commanded Y-axis motion will immediately trigger a P113 illegal plane select alarm. If the endpoint coordinate suffers from CAM rounding errors, confirm whether parameter #11028 is configured to shift the center point, preventing a P70 arc error alarm. Ensure no T (tool change) codes are issued within the block to prevent a P151 alarm.
Error Analysis
| Brand | Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|---|
| Fanuc | PS0020 | Difference in calculated radius between start and end point of an arc exceeds Parameter 3410 limit. | Spindle stops immediately, axes lock up, and alarm code PS0020 is displayed. | Adjust endpoint coordinates in G-code to match starting radius, or increase tolerance in Parameter 3410. |
| Fanuc | PS0021 | An commanded axis during the G02 block is not included in the active selected plane (G17/G18/G19). | Spindle halts mid-program and system displays "illegal plane select" error. | Ensure that the programmed plane coordinates (XY for G17, ZX for G18, YZ for G19) match the selected G-code plane. |
| Siemens | Alarm 14040 | Calculated start point radius differs from end point radius by more than machine data limits MD21000/MD21010. | NC stop occurs at the end of the block, suspending all movement. | Verify endpoint coordinates against CAD/CAM data or adjust circle error tolerance parameters. |
| Siemens | Alarm 14095 | Programmed radius CR= is mathematically smaller than half the linear distance between start and end coordinates. | Controller faults at block start, preventing axis movement. | Increase the CR= value or correct coordinate targets to ensure a mathematically possible radius. |
| Mitsubishi | P70 | Start and end radius difference exceeds the parameter #1084 RadErr tolerance range. | Tool is suspended mid-cut, ruining the workpiece surface finish. | Correct the endpoint coordinates in the program or increase the tolerance threshold in parameter #1084. |
| Mitsubishi | P151 | Issued a tool change T command while the control is in modal G02 circular interpolation status. | Program execution stops instantly with a tool command error P151. | Cancel the G02 state by calling G00 or G01, then command the tool change in a separate block. |
Application Note
Ruined workpiece surface finishes and tool breakage occur immediately when the tool is suspended mid-cut due to a P70 alarm code on Mitsubishi systems. This fault triggers when the mathematical radius mismatch between the arc start and end points exceeds the setting in parameter #1084 RadErr. To mitigate this risk, operators must execute G22 chuck barrier checks on lathe systems to ensure that complex clockwise sweeps do not violate the chuck envelope. On Fanuc controls, operators must verify C-axis clamp M codes and turret mirror imaging configurations prior to engagement. On Siemens, rather than trying to bypass safety tolerances, operators must verify that the start and end positions align perfectly, and rely on the controller's internal geometry checks to prevent uncontrolled movements.
Related Command Network
- G00 Rapid Traverse Mode: Positions the axes at maximum speed to the start point before initiating a coordinated G02 circular cut.
- G01 Linear Interpolation: Moves the tool in a straight line at a coordinated feedrate, commonly used to approach the arc start position or exit the profile.
- G03 Circular Interpolation CCW: The modal counterpart to G02, which moves the tool along a counter-clockwise circular arc within the same active plane.
- G17 / G18 / G19 Plane Selection: Modal commands that establish the mathematical working plane (XY, ZX, or YZ) required for the controller to correctly interpret the rotation direction and coordinate addresses of a G02 command.
- CIP Circular Interpolation Intermediate: A Siemens-specific command that drives the tool along a circular arc by specifying an intermediate point and a target endpoint.
Conclusion
Achieving flawless circular profiles requires systematic alignment of G-code coordinates, active working planes, and controller parameters. By configuring tolerances like Fanuc parameter 3410 or Siemens MD21000, and checking toolpath limits with elevated dry runs, operators prevent mid-cut tool suspensions and spindle collisions. Standardizing these geometry validation steps across Fanuc, Siemens, and Mitsubishi platforms guarantees consistent machining results and maximizes tooling lifespan.
FAQ
Why does a G02 command trigger an illegal plane select alarm?
An illegal plane select alarm (such as Fanuc PS0021, Siemens Alarm 14040/NC alarm, or Mitsubishi P113) occurs when the coordinate axes commanded in the circular interpolation block do not correspond to the active plane (G17, G18, or G19). The controller cannot resolve a circular path because it is mathematically locked into a different coordinate system. To fix this, always program the explicit plane command (e.g. G17 for XY milling or G18 for ZX lathe turning) in a block preceding the G02 command, and verify that the target coordinate addresses match the selected plane.
Can a full 360-degree circle be programmed using a radius R command?
No, a full 360-degree circle cannot be programmed using the R or CR= radius designation because the start point and the endpoint of a full circle are identical, making the center point mathematically undefined. If attempted, the controller will either trigger a format error (like Mitsubishi P33 or Fanuc PS0022) or execute a straight line. The correct action is to program full circles using incremental center-offset vectors (I, J, K), which explicitly define the vector distance from the start point to the circle center along each coordinate axis.
What happens when a tool change command is issued inside a circular block?
Issuing a tool change (T) command while the controller is in a modal G02 state disrupts the axis-coordination path and triggers immediate system faults, such as a P151 alarm code on Mitsubishi. CNC controls strictly forbid tool index or auxiliary commands during active cutting interpolation to prevent mechanical interference. To ensure safe operation, always command a G00 or G01 block to retract the tool safely to the reference position and cancel the modal circular state before executing any T commands or spindle orientation changes.
Still not resolved?
Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2005)
- Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)
With over 25 years of experience working in all areas of the CNC machine industry, I continue my activities as a co-founder of CNC CARE, where we offer brand-independent consulting, engineering, and original spare parts services.
Related Articles
Other articles on this topic
Siemens CYCLE800 G-Code: Swivel Planes & Tool Alignment
Master Siemens CYCLE800 for 3+2 axis machining. Learn plane swiveling, tool alignment, parameter setup, and how to troubleshoot Alarm 61190 and 61153.
Siemens CYCLE72 Contour Milling: Guide to Sinumerik Path Milling
Master Siemens CYCLE72 for contour milling on Sinumerik CNC controls. Learn parameter setup, avoid simulation alarm 61123, and prevent machine collisions.
Siemens CYCLE952 Contour Turning Cycle Programming Guide
Master Siemens CYCLE952 contour turning on Sinumerik CNC controls. Learn parameter lists, resolve Alarm 61051, and configure balance cutting.
Siemens SLOT1 and SLOT2 Slot Milling Cycles Programming Guide
Master slot milling on Siemens Sinumerik controls using SLOT1 and SLOT2 cycles. Learn parameter configurations, alarm 61000 prevention, and optimal tool paths.