Skip to main content
CNC.wikiCNC.wiki

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.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE Co-founder

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

MetricSpecification
Command CodeG03 (Counterclockwise Circular Interpolation)
Modal GroupGroup 01 (Modal)
BrandsFanuc, Siemens, Mitsubishi
Critical ParametersFanuc Parameter 3410, Siemens MD21000 / MD21010, Mitsubishi Parameter #1084
Main ConstraintStart 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_; or G17 G03 X_ Y_ I_ J_ F_;
  • Fanuc Lathe: G03 X_ Z_ R_ F_; or G03 X_ Z_ I_ K_ F_;
  • Siemens Native: G3 X... Y... Z... I... J... K... or G3 X... Y... Z... CR=...
  • Mitsubishi Milling: G03 X_ Y_ Z_ I_ J_ K_ F_; or G03 X_ Y_ Z_ R_ F_;
  • Mitsubishi Lathe: G03 X/U_ Z/W_ I_ K_ F_; or G03 X/U_ Z/W_ R_ F_;

Parameters and Addresses:

AddressDescription
X, Y, ZCartesian coordinates of the arc endpoint.
I, J, KIncremental coordinate distance vectors from the start point to the arc center.
RThe 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).
FCutting 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.

ParameterAlarmVersion 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.52

dry run: The tool sweeps a counterclockwise arc to endpoint (115, 113.3) with center offsets of I-43 and J25.52.

ParameterAlarmVersion 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.

ParameterAlarmVersion 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 / FeatureFanucSiemensMitsubishi
Helical programming formatAdd linear axis a to standard G03 blockTURN= parameter directly in standard G02/G03 blockConfiguration/option dependent
Circle radius programmingstandard R parameterCR= parameter (positive for angle <= 180, negative for > 180)standard R parameter
Arc center coordinate optionsIncremental vectors from start pointInline dynamic switching via IC() and AC() modifiersIncremental vectors from start point
Programming incomplete arcHandled 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 mismatchTriggers PS0020 radius tolerance alarm if limit set in parameter 3410 is exceededTriggers Alarm 14040 if error limits in MD21000/MD21010 are exceededAutomatically 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.52

dry 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

BrandAlarm CodeTriggerOperator SymptomRoot Cause / Fix
FanucPS0020Radius 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.
FanucPS0022The 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.
SiemensAlarm 14040Start 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.
SiemensAlarm 14095Programmed 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.
MitsubishiP70Arc 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.
MitsubishiP113Circular 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.

Ask AI Assistant
Hakan Gündoğdu
Hakan Gündoğdu
  • 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