G03 Counterclockwise Circular Interpolation: CNC Programming Guide
Learn how to program G03 counterclockwise circular interpolation on Fanuc, Siemens, and Mitsubishi controls with parameters, alarms, and G-code examples.
Introduction
During active tool nose radius compensation, if the arc start or end point coincides exactly with the arc center, the Fanuc controller detects this as an interference and throws a PS0038 alarm. This immediately halts the spindle and stops axis feed, which can damage the workpiece contour. On Siemens and Mitsubishi controls, if the start and end radii deviate because of decimal rounding errors in CAD/CAM post-processors, the system triggers Alarm 14040 or P70. These mathematical discrepancies suspend the cutting tool mid-cut, leaving an unacceptable dwell mark on the surface finish.
Technical Summary
| Metric | Specification |
|---|---|
| Command Code | G03 (Counterclockwise Circular Interpolation) |
| Modal Group | Group 01 (Modal) |
| Brands | Fanuc, Siemens, Mitsubishi |
| Critical Parameters | Fanuc Parameter 3410, Siemens MD21000 / MD21010, Mitsubishi Parameter #1084 |
| Main Constraint | Start and end radius difference must remain within strict parameter tolerances. |
Quick Read
- Set the correct working plane (G17 for X-Y, G18 for Z-X, or G19 for Y-Z) before executing G03 to avoid direction or axis selection alarms.
- Select between radius (R or CR) and center point offsets (I, J, K) based on whether you are milling a full circle or a partial arc (which is similar to g02-circular-interpolation).
- Adjust the radius difference tolerance parameters (Fanuc 3410, Mitsubishi #1084) to match your post-processor rounding capabilities.
- Program the R or CR address with the correct positive or negative sign to control whether the arc traverses an angle smaller or larger than 180 degrees.
- Avoid commanding any tool changes (T command) or rapid inverse feedrates (F0) inside a circular interpolation block.
- Verify center coordinate dimensions directly within the block using AC or IC modifiers on Siemens controls.
Basic Concepts
G03 (or G3) drives the cutting tool along a mathematically precise counterclockwise arc or helical sweep in the active working plane at a strictly controlled cutting feedrate. The motion is defined relative to the operator's view of the active working plane, sweeping opposite to the direction of a clock's hands.
Unlike g01-linear-interpolation, which moves the tool in a straight line, circular interpolation requires continuous coordinate calculation to maintain a constant distance from a defined center point. The controller dynamically coordinates two linear axes simultaneously to generate the curved path.
Selecting the correct working plane (G17, G18, or G19) is a prerequisite for G03. The CNC control relies on this modal state to interpret coordinate axes and direction vectors correctly. For example, G17 establishes the X-Y plane for arc sweeps, while G18 defines the Z-X plane, which is standard in lathe operations. A typical operation begins by positioning the tool near the starting point of the arc using g00-rapid-traverse, followed by the G03 cutting sweep.
Command Structure
The G03 command requires specifying the coordinate endpoints of the arc and its geometric center point. The endpoint is defined using Cartesian coordinate addresses like X, Y, and Z. The circle's center is specified either directly by its radius using the R address (or CR for Siemens) or via incremental distance vectors using I, J, K.
If the distance vectors I, J, K are used, they represent the relative distance from the start point of the arc to the center. For milling centers, the active plane dictates which offsets are used: I and J for G17, I and K for G18, or J and K for G19.
Here is the standard G-code syntax:
- Fanuc Milling:
G17 G03 X_ Y_ R_ F_;orG17 G03 X_ Y_ I_ J_ F_; - Fanuc Lathe:
G03 X_ Z_ R_ F_;orG03 X_ Z_ I_ K_ F_; - Siemens Native:
G3 X... Y... Z... I... J... K...orG3 X... Y... Z... CR=... - Mitsubishi Milling:
G03 X_ Y_ Z_ I_ J_ K_ F_;orG03 X_ Y_ Z_ R_ F_; - Mitsubishi Lathe:
G03 X/U_ Z/W_ I_ K_ F_;orG03 X/U_ Z/W_ R_ F_;
Parameters and Addresses:
| Address | Description |
|---|---|
| X, Y, Z | Cartesian coordinates of the arc endpoint. |
| I, J, K | Incremental coordinate distance vectors from the start point to the arc center. |
| R | The arc radius (standard on Fanuc and Mitsubishi). |
| CR= | Circle radius parameter (specific to Siemens). |
| AR= | Opening angle of the circle (Siemens). |
| TURN= | Number of additional full rotations for helical interpolation (Siemens). |
| F | Cutting feedrate. |
Brand Applications
Fanuc
Fanuc systems rely on highly customized background parameters to govern circle execution. If a G03 block completely lacks R and I, J, K values, a background toggle determines whether it defaults to a straight line or throws an alarm.
For legacy mathematical compatibility, Fanuc uses parameters to toggle the geometric interpretation of warped or imperfect arcs, ensuring that older G-code files execute exactly as they originally did. A modern controller takes a direct path, whereas legacy systems swept a near-full circle.
G17 G03 X50.0 Y50.0 R25.0 F200.0;dry run: The tool moves counterclockwise on the X-Y plane to endpoint (50, 50) along a 25mm radius arc at a cutting feedrate of 200 mm/min.
| Parameter | Alarm | Version Difference |
|---|---|---|
| Parameter 3410: Radius tolerance limit. | PS0020: Over tolerance of radius. | Series 15 sweeps near-full circle in mismatched endpoint cases. |
| Parameter 3403 bit 5: Missing R/IJK behavior. | PS0022: R or I, J, K command not found. | Series 16 and Series 21 formats take a direct shortcut to the mismatched target. |
| Parameter 3450 bit 3: Calculation mode. | PS0021: Illegal plane selection. | — (no source) |
Warning: Running a circular block with active tool radius compensation where the start or end point coincides with the center will trigger a PS0038 alarm.
Siemens
Siemens (using G3 or G03 for counterclockwise interpolation) allows highly flexible programming, including polar coordinates and opening angles. Direct integration of helical sweeps is supported with a dedicated parameter for multi-turn loops.
Contouring flexibility is enhanced by allowing arcs to be defined natively using just an opening angle or polar coordinates. The control also permits dynamic switching between incremental and absolute dimensions for center coordinates directly inside the same block.
N30 G3 X115 Y113.3 I-43 J25.52dry run: The tool sweeps a counterclockwise arc to endpoint (115, 113.3) with center offsets of I-43 and J25.52.
| Parameter | Alarm | Version Difference |
|---|---|---|
| MD21000 $MC_CIRCLE_ERROR_CONST: Circle error constant. | Alarm 14040: Error in end point of circle. | Native mode (G290) supports CR, AR, TURN, polar AP/RP. |
| MD21010 $MC_CIRCLE_ERROR_FACTOR: Circle error factor. | Alarm 14095: Programmed radius CR is too small. | ISO Dialect mode (G291) triggers alarm or G01 path if center/radius omitted. |
| — (no source) | Alarm 14910: Invalid angle of aperture. | — (no source) |
Warning: Forgetting the negative sign on CR= when programming a counterclockwise arc greater than 180 degrees will force the tool to take the unintended, shorter path.
Mitsubishi
Mitsubishi CNC controls offer forgiving tolerance handling. When CAM systems output endpoints with rounding errors, the control automatically adjusts center positions to maintain the cycle.
If a programmer completely forgets to include the radius or center coordinates, the control can automatically convert the arc block into a straight line to the target endpoint. When CAM systems generate arc endpoints that suffer from rounding errors, Mitsubishi does not immediately fault out.
G91 G17 G03 X10. R5.000 F500 ;dry run: The tool performs an incremental counterclockwise move on the active X-Y plane. The X coordinate increases by 10mm from its start point, with a programmed radius of 5.0mm and a feedrate of 500 mm/min.
| Parameter | Alarm | Version Difference |
|---|---|---|
| Parameter #1084 RadErr: tolerable arc error. | P70: Arc error due to endpoint deviation. | M850/M830/M80VW supports advanced 3D circular interpolation (G02.4). |
| Parameter #11028 Tolerance Arc Cent: center adjustment. | P33: Format error (missing offsets/radius). | Lathe (L) systems do not support the advanced 3D circular option. |
| Parameter #11029 Arc to G1 no Cent: omission behavior. | P113: Illegal plane selection. | — (no source) |
Warning: Issuing a tool change (T command) while the system is in G03 modal state will trigger a P151 tool command error and halt machining.
Brand Comparison
| Topic / Feature | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Helical programming format | Add linear axis a to standard G03 block | TURN= parameter directly in standard G02/G03 block | Configuration/option dependent |
| Circle radius programming | standard R parameter | CR= parameter (positive for angle <= 180, negative for > 180) | standard R parameter |
| Arc center coordinate options | Incremental vectors from start point | Inline dynamic switching via IC() and AC() modifiers | Incremental vectors from start point |
| Programming incomplete arc | Handled via parameter 3403 bit 5 (default to straight-line G01 or trigger PS0022 alarm) | Switches to ISO Dialect G291 (triggers alarm on omitted center/radius in M dialect or G01 path in T dialect) | Handled via #11029 parameter (automatically converts to G01 linear line or triggers P33 format error) |
| Incorrect endpoints radius mismatch | Triggers PS0020 radius tolerance alarm if limit set in parameter 3410 is exceeded | Triggers Alarm 14040 if error limits in MD21000/MD21010 are exceeded | Automatically shifts center via #11028, or executes spiral interpolation via #1084 / #1278 |
Technical Analysis
The brands handle G03 circular interpolation through vastly different mathematical and control philosophies. Fanuc manages compatibility between generational calculations using dedicated toggles, determining how warped endpoints are traversed. This structural design ensures legacy programs from Series 15 controllers compile and execute identically on modern Series 16 or 21 hardware without path deviation.
Siemens bypasses incremental coordinate locking by allowing absolute center coordinates directly inline, alongside polar angles and aperture angles. This design eliminates coordinate conversions in CAD/CAM systems, letting the programmer feed dimensions directly from the technical drawing. The integration of helical cycles using the TURN= parameter makes thread milling straightforward.
Mitsubishi emphasizes forgiving shop-floor operation via parameter settings. When post-processors generate rounding errors, parameters #11028 and #1084 work together to shift the arc center point or sweep a spiral path, allowing execution to continue rather than dead-stopping the axes. This minimizes dwell marks and protects tooling from fatigue.
Program Examples
Fanuc Example
G17 G03 X50.0 Y50.0 R25.0 F200.0;dry run: The tool moves in a counterclockwise arc on the X-Y plane from its current position to coordinates (50.0, 50.0) with an arc radius of 25.0mm, at a feedrate of 200.0 mm/min.
Siemens Example
N30 G3 X115 Y113.3 I-43 J25.52dry run: The control moves the tool along a counterclockwise curve to endpoint coordinates (115, 113.3). The center point is located incrementally at X -43mm and Y +25.52mm relative to the arc starting position.
Mitsubishi Example
G91 G17 G03 X10. R5.000 F500 ;dry run: The tool performs an incremental counterclockwise arc move on the active X-Y plane. The X coordinate increases by 10mm from its start point, with a programmed radius of 5.0mm and a feedrate of 500 mm/min.
Error Analysis
| Brand | Alarm Code | Trigger | Operator Symptom | Root Cause / Fix |
|---|---|---|---|---|
| Fanuc | PS0020 | Radius difference between start and end point exceeds the limit set in parameter 3410. | Tool halts instantly mid-cut, machine displays "OVER TOLERANCE OF RADIUS" message. | Recalculate endpoint coordinates in G-code or adjust parameter 3410 threshold. |
| Fanuc | PS0022 | The G03 block lacks both the arc radius R and coordinate center distances (I, J, K). | Spindle stops, feed holds, machine shows "R OR I,J,K COMMAND NOT FOUND". | Add R or center offsets (I, J, K) to the programmed G-code block. |
| Siemens | Alarm 14040 | Start and end point radius difference exceeds MD21000/MD21010 limits. | Machining stops at the end of the block, displaying "error in end point of circle". | Verify CAD/CAM output coordinates and ensure proper mathematical alignment. |
| Siemens | Alarm 14095 | Programmed radius CR is smaller than half of the linear distance between start and end. | NC stop triggers, display shows "radius for circle programming too small". | Correct endpoint coordinates or increase the radius CR value in the block. |
| Mitsubishi | P70 | Arc radius mismatch between start and end point exceeds the limit set in parameter #1084. | Machine enters feed hold, displaying "Arc error" warning on screen. | Adjust endpoints or increase error threshold in parameter #1084 RadErr. |
| Mitsubishi | P113 | Circular command axis does not match the active working plane. | Immediate cycle stop, control indicates "Illegal plane select" error. | Ensure G03 axes match the modally active G17/G18/G19 plane. |
Application Note
Overcutting during active tool-nose radius compensation remains a critical hazard when programming tight internal circular sweeps. Operators must employ the G22 chuck barrier check on Mitsubishi systems to verify that the tool turret does not violate the physical rotational boundary of the chuck during extensive arc movements. On Fanuc systems, if G68 mirror imaging is active for double turrets, arc directions must be cross-checked because directional addresses are modified. If the start or end point of an arc coincides with its center, the controller throws a PS0038 alarm or P151 alarm to protect the machine from a critical format error or overcutting deviation.
Related Command Network
- G01 (Linear Interpolation): Moves the tool in a straight line to target coordinates, often used to transition to or from circular arcs (see g01-linear-interpolation).
- G02 (Clockwise Circular Interpolation): Direct counterpart to G03, executing clockwise arcs instead of counterclockwise moves (see g02-circular-interpolation).
- G17 / G18 / G19 (Plane Selection): Modal codes that determine which Cartesian axes (X-Y, Z-X, or Y-Z) form the working plane for G03.
- G03.4 (3D Circular Interpolation): Advanced option on Fanuc and Mitsubishi (G02.4) that allows arcs through 3D space rather than being restricted to a 2D plane.
Conclusion
Safe and efficient circular programming rests on strict synchronization between G-code geometry and controller parameter thresholds. Operators should establish a routine of verifying active plane selections, cross-checking CAD/CAM output coordinates against parameter-defined tolerances, and conducting dry runs before engaging active spindle cuts on Fanuc, Siemens, and Mitsubishi machines.
FAQ
Why does G03 trigger an illegal plane select alarm?
This alarm occurs when axis coordinate addresses in the G03 block do not match the active modal working plane (G17, G18, or G19). For example, commanding a Z-axis move in G17 will trigger a PS0021 alarm on Fanuc or P113 on Mitsubishi because the active plane only permits X and Y circular movements.
Can you mill a full 360-degree circle using the radius R parameter?
No, CNC controls cannot execute a full 360-degree circle with a single R or CR parameter because the start and end points are identical, making the center mathematically ambiguous. To cut a full circle, you must define the center coordinates incrementally using I, J, K vectors.
How does parameter 3410 handle arc radius tolerance errors?
Parameter 3410 sets the maximum allowed difference between the calculated starting radius and ending radius of an arc on Fanuc controls. If the CAD/CAM rounding error exceeds this threshold, the controller triggers a PS0020 alarm and halts motion to prevent carving a distorted profile.
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.