G60, G61, and G64 G-Code: Exact Stop and Continuous Path Modes
Master G60 unidirectional positioning, G61 exact stop check, and G64 continuous cutting modes on Fanuc, Siemens, and Mitsubishi CNC controls to prevent crashes.
Introduction to Path Control and Backlash approach
A catastrophic hard collision, broken spindle tooling,or a costly scrap part will inevitably occur if a CNC programmer executes continuous cutting mode (G64) within tight physical boundaries without accounting for servo lag. When continuous path smoothing is active, the machine tool prioritizes velocity over spatial accuracy, blending the motion between adjacent blocks to glide smoothly through corners without waiting for the servo motors to physically reach the exact theoretical coordinates. While this continuous profile yields excellent cycle times and a uniform surface finish, a failure to calculate for this corner rounding deviation can cause the tool to cut corners short. During high-speed cavity milling or tight retracts, this uncalculated deviation will cause the cutting tool to clip a vise jaw, a clamp, a chuck, or a turret, causing severe structural damage to the machine axes.
Conversely, overusing modal exact stop check commands (G61) to eliminate this deviation introduces its own severe production risks. Forces that bring the axis to a complete stop and execute an in-position verification at the end of every block will significantly inflate cycle times. More critically, the physical dwell of the cutter at block transitions forces the tool to rub against the material. This repeated halting leaves unsightly dwell marks on the workpiece, degrading the surface finish and ultimately creating a ruined scrap part. To achieve both maximum cycle efficiency and mechanical safety, programmers must master the implementation and parameterization of exact stop and continuous path modes (G60, G61, and G64) across Fanuc, Siemens, and Mitsubishi control systems.
Technical Summary of G60, G61, and G64 Commands
| Technical Specification | Details / Parameters |
|---|---|
| Command Codes | G60 (Unidirectional Positioning), G61 (Modal Exact Stop), G64 (Continuous Cutting) |
| Modal Group | Group 15 (Fanuc) / Group 10 (Siemens) / Group 01 & 15 (Mitsubishi) |
| Supported Brands | Fanuc, Siemens, Mitsubishi |
| Critical Parameters |
|
| Main Constraint | G64 continuous cutting prioritizes velocity over positional accuracy, creating path deviation at corners (corner rounding). G61 exact stop check eliminates path deviation but adds deceleration delays, causing dwell marks and scrap parts if cutter rub occurs. Unidirectional positioning (G60) approaches targets from a single direction to eliminate mechanical backlash but requires careful overrun parameterization (e.g., Fanuc Parameter 5440) to avoid hard collisions with fixtures or double turrets. |
Quick Read: Key Rules and Constraints
- Decision: Select modal exact stop check (G61) only when cutting sharp outside corners or finishing tight internal profiles where geometric precision is critical.
- Action: Always use continuous path mode (G64) for contoured surfacing or high-speed roughing to eliminate deceleration pauses and maximize surface finish.
- Constraint: When executing unidirectional positioning (G60) for backlash-free approaches, verify that the overrun distance programmed in Fanuc Parameter 5440 or Mitsubishi parameter #2084 does not drive the tool into a clamp or double turret.
- Action: Implement non-modal exact stop check commands (G09 on Fanuc/Mitsubishi, G9 on Siemens) to enforce a high-precision stop on a single critical block without canceling the global G64 continuous mode.
- Constraint: Do not command multiple conflicting path commands (such as G61 and G64) in the same block; Fanuc and Mitsubishi controllers will only apply the last programmed modal code, potentially causing unexpected toolpath changes.
- Decision: Program Siemens G641 with realistic ADIS or ADISPOS blending distances; setting excessively small values on short block lengths causes the CNC to automatically degrade to basic G64.
Basic Concepts of Exact Stop and Continuous Path Modes
Executing continuous paths or high-precision positioning requires a deep understanding of the active path control mode on the CNC. When continuous path mode (G64) is active, the controller prioritizes a uniform path velocity, overriding the deceleration ramps at block boundaries so the tool glides tangentially through corners. This continuous cutting prevents the tool from dwelling, which is essential to avoid unwanted tool marks on the part surface. However, the axis dynamics and servo lag mean that the physical toolpath will deviate from the programmed corner. This continuous path deviation can lead to serious crash risks if the toolpath passes close to fixtures or clamps.
Conversely, exact stop modes (G60, G61, and G9) prioritize spatial accuracy by forcing the axes to decelerate to a complete stop at the end of the block. The next block is only allowed to begin once the physical axis positions have verified that they are within the configured tolerance window. While this ensures perfect outside corners and high geometric precision, the sudden halts increase the program run time and can cause the cutter to rub, creating cosmetic dwell marks on the part surface, which can lead to a ruined scrap part.
Unidirectional positioning (G60) provides a dedicated mechanical solution for high-precision approaches by eliminating physical backlash in the ball screws. Instead of moving directly to the target coordinate, which might approach from different directions and introduce mechanical backlash error, G60 forces the machine to overshoot the coordinate by a parameterized overrun distance and then approach the final position from a constant direction. This ensures consistent positioning repeatability for high-tolerance hole drilling or boring.
Command Structure and Parameter Details
The programming syntax for path control commands determines whether the exact stop is modal or non-modal, and whether the machine executes standard continuous path blending or advanced tolerance-based contour smoothing. Standard exact stop check commands exist in both modal (G61) and non-modal (G09/G9) versions. G09/G9 commands are non-modal one-shot instructions that apply only to the block in which they are programmed, allowing the controller to return immediately to the background continuous path mode (G64) in the subsequent block without requiring manual cancellation.
Unidirectional positioning (G60) utilizes coordinate addresses to designate the axes that must approach the target coordinate from a constant, backlash-free direction. Depending on parameter configurations, G60 can act as a modal or non-modal command. When executing contour smoothing on advanced controllers like Siemens, the G64 command can be appended with extension addresses such as ADIS or ADISPOS to define precise rounding distances. The basic syntax formats are described below.
Coordinate System Setting Syntax:
G61 ; (Modal Exact Stop Check Mode)
G64 ; (Continuous Cutting Mode)
G60 X_ Y_ Z_ ; (Unidirectional Positioning)
G09 X_ ; (Non-modal Exact Stop Check for Fanuc/Mitsubishi)
G9 X_ ; (Non-modal Exact Stop Check for Siemens)
G641 ADIS=0.5 ADISPOS=1.5 ; (Siemens Advanced Contour Smoothing)
| Address / Extension | Description | Application |
|---|---|---|
| X, Y, Z (IP) | Axis coordinate targets | Specifies the target coordinates for unidirectional positioning (G60) or single-block exact stop check (G09/G9). |
| ADIS | Blending distance for path functions | Defines the rounding clearance in mm or inches for Siemens G641 continuous-path smoothing during G1, G2, G3 cuts. |
| ADISPOS | Blending distance for rapid traverse | Defines the rounding clearance for rapid traverse blocks (G0) during Siemens G641 smoothing. |
| MDL / ext07/bit3 | G60 modal toggle | Parameter address switches G60 between one-shot and modal behavior on Fanuc and Mitsubishi systems. |
Brand-Specific Path Control Configurations
Fanuc
Fanuc CNC systems govern exact stop and continuous path modes using Group 15 modal G-codes. The single direction positioning overrun distance and approach direction are configured directly inside Parameter 5440.
The typical program commands for Fanuc systems include G61 for exact stop, G64 for continuous cutting, and G60 for unidirectional approach:
G64 ;
G61 ;
G60 X150.0 Y150.0 ;
G09 Z-50.0 ;
| Category | System Details |
|---|---|
| Parameters | Parameter No. 5431 (Bit 0 - MDL) determines G60 modal state. Parameter No. 5431 (Bit 1 - PDI) controls in-position check. Parameter No. 5440 sets overrun distance/direction. |
| Alarms | PS0010 occurs if G60/G61/G64 is commanded when option is disabled. PS5074 occurs if duplicate coordinate addresses are specified in the same block. |
| Versions | Older controls utilize legacy Parameter 7616 (Bit 0 - G60MDL) for G60 modal settings, and Parameter 7616 (Bit 1 - XBUF) to control look-ahead buffering. |
Warning: A common failure cause on Fanuc controls is commanding multiple Group 15 G-codes in the same block, such as G61 and G64. Fanuc strictly enforces that only the last command in the block is executed, which can lead to unexpected path smoothing and severe collisions.
Siemens
Siemens Sinumerik controls exact stop criteria fine and coarse windows via parameters MD36000 and MD36010. Programmers can also configure system-wide overrides using dedicated machine data. For zero offset adjustments and coordinate shifting techniques, programmers can refer to the detailed guidelines in g10-g11-in-program-offset-parameter-modification.
Siemens programs utilize G60 for modal exact stop, G64 for continuous velocity blending, and the G641-G646 series for advanced contour smoothing:
N10 G64 G1 Z5 F0.15 M3 S800
N40 G60 X30 Z-50
N1 G641 Y50 F10 ADIS=0.5
| Category | System Details |
|---|---|
| Parameters | MD36000 $MA_STOP_LIMIT_COARSE defines coarse window. MD36010 $MA_STOP_LIMIT_FINE defines fine window. MD20550 $MC_EXACT_POS_MODE sets exact stop overrides for G00 and G1. MD20552 $MC_EXACT_POS_MODE_GO_TO_G1 defines block transitions. |
| Alarms | Alarm 16954 is triggered if continuous-path is interrupted by implicit STOPRE or synchronized commands. Alarm 12550 is triggered if unlicensed commands (like G646) are executed. |
| Versions | G646 requires Article Number 6FC5800-0AS37-0YX0 software license. G642/G643 require Polynomial interpolation option. ISO Dialect modes use G61 for modal exact stop. |
Warning: Programming auxiliary function M-codes within short block segments forces continuous-path mode to wait for PLC acknowledgments. This generates an implicit exact stop, triggering Alarm 16954 and leaving unsightly dwell marks on the part surface. Similarly, when performing high-precision operations like thread cutting, programmers must coordinate these path actions with the correct modal states detailed in g33-and-g32-threading-commands.
Mitsubishi
Mitsubishi CNC controllers handle exact stop checks through servo-level parameter #2224 which sets the in-position detection width. Unidirectional positioning is configured using parameter #2084.
Mitsubishi programs specify the modal and non-modal exact stop check and cutting modes using standard codes:
G60 X150.0 Y150.0 ;
G61 ;
G64 ;
| Category | System Details |
|---|---|
| Parameters | Parameter #1271 ext07/bit3 sets G60 modal toggle. Parameter #2224 sv024 sets servo-level in-position width. Parameter #2084 G60_ax configures axis-based unidirectional positioning during rapid traverse. |
| Alarms | P61 program error occurs if G60 is commanded when the unidirectional positioning option is not active. P29 occurs if G60 is programmed with incompatible cycles. |
| Versions | Unidirectional positioning G60 is strictly supported on Machining Center (M) systems and completely unsupported on Lathe (L) systems. Parameter #1271 ext07/bit3 enables modal behavior on newer versions. |
Warning: Forgetting to cancel G61 mode when transitioning to contoured surfaces will cause the machine to halt at every block boundary. This drastically increases machining cycle times and rubs the cutter, resulting in scrap parts.
Brand Comparison for G60, G61, and G64 Implementations
| Topic | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Unidirectional command syntax | G60 IP_; | G61 (ISO mode only) | G60 IP_; |
| G60 modal toggle parameter | Parameter 5431 MDL / 7616 G60MDL | — (no source) | Parameter #1271 ext07/bit3 |
| In-position check parameters | Parameter 5431 PDI | MD36000 STOP_LIMIT_COARSE, MD36010 STOP_LIMIT_FINE | Parameter #2224 sv024 (In-position width) |
| Axis-based unidirectional override | Parameter 5440 (overrun/direction) | MD20550 exact stop overrides | Parameter #2084 G60_ax |
| Contour smoothing control | mutually exclusive Group 15 codes (G61/G64/G62/G63) | Granular G641-G646 series (ADIS, contour/orientation tolerance) | mutually exclusive Group 15 codes (G61/G64/G62/G63) & G61.1 high accuracy |
Technical Analysis of Brand-Specific Frame Architectures
The primary architectural difference among the three major CNC controller brands lies in how exact stop tolerances and path transitions are parameterized and isolated. Fanuc enforces a highly rigid G60 approach by hard-coding the overrun distance and direction directly into a core system parameter (Parameter 5440) rather than in the program block. It isolates path modes strictly within Group 15, ensuring that the control system never processes conflicting acceleration and deceleration algorithms simultaneously. This guarantees absolute consistency across programs but restricts real-time adjustments. These coordinate shift resets are similar to the floating coordinate systems managed by g50-and-g92-coordinate-system-setting, where uncleared shifts will similarly cause major axis deviations.
Siemens provides unparalleled granular control over continuous smoothing through its G64x series. Instead of a simple binary cutting or exact stop toggle, Siemens dynamically calculates the maximum transfer velocity using its integrated LookAhead engine, which preemptively evaluates multiple subsequent blocks. Machine builders can also natively enforce exact stop overrides via MD20550 $MC_EXACT_POS_MODE, forcing a coarse exact stop (G602) specifically during rapid G00 movements for safety, completely ignoring the programmed code, while maintaining smooth G64 behavior during cutting feeds. This isolates dialect execution frames and prevents physical interference.
Mitsubishi establishes a hybrid approach that bridges Fanuc's rigidity and Siemens' parameter-driven flexibility. Mitsubishi uniquely ties its exact stop checks to high-resolution servo parameters. Specifically, parameter #2224 sv024 sets the precise in-position detection width (from 0 to 32767 μm), allowing the CNC to mathematically evaluate the remaining distance in the servo droop before starting the next block. Mitsubishi also integrates axis-based unidirectional positioning via #2084 G60_ax, which forces a specific axis to always locate from a constant direction during G00 positioning, eliminating mechanical backlash independently of program commands.
Program Examples and Dry Run Procedures
Fanuc G-Code Example
G64 ; Enable continuous cutting mode to blend feedrate between blocks
G01 X50.0 Y50.0 F250.0 ; Linear interpolation with continuous velocity blending
G61 ; Enable modal exact stop check mode for precision corners
G01 X100.0 Y50.0 ; Decelerate to zero and verify in-position fine width
G60 X150.0 Y150.0 ; Execute unidirectional approach to eliminate backlash
G09 Z-10.0 ; Execute single-block exact stop check
G64 ; Return to continuous cutting mode
Dry Run Procedure:
Perform a dry run with the spindle off. Verify that the axis decelerates to an absolute standstill at the end of the block when G61 or G60 is active. Monitor the absolute coordinate display and verify that the axis overshoot is visible during G60 unidirectional approach before returning to the final coordinate, ensuring the overrun distance from Parameter 5440 is active.
Siemens ISO Dialect Example
N10 G64 G1 Z5.0 F0.15 M3 S800 ; Continuous-path mode with look-ahead
N20 X20.0 Z0.0 ; Tangential blending through corner
N30 G60 X30.0 Z-50.0 ; Modal exact stop check active for precision shoulder
N40 G641 X50.0 Y50.0 ADIS=0.5 ADISPOS=1.5 ; Advanced contour smoothing active
N50 G9 Z-60.0 ; Non-modal exact stop check for one block only
Dry Run Procedure:
Execute a dry run to verify the velocity transitions. Confirm that the axes do not stop at block boundaries under G64, but maintain a uniform velocity. Check the shoulder transition under G60 and ensure the axes decelerate to a complete stop. Verify that the smoothing clearance is active during G641, and that the single-block exact stop occurs during N50 G9.
Mitsubishi G-Code Example
G64 ; Continuous cutting mode active for smooth contouring
G01 X100.0 Y50.0 F300.0 ; Continuous feedrate blending
G61 ; Switch to modal exact stop check mode
G01 X150.0 Y100.0 ; Axis halts and checks servo droop parameter #2224
G60 X200.0 Y200.0 ; Backlash-free unidirectional positioning
G09 Z-20.0 ; Non-modal exact stop check for single drilling block
Dry Run Procedure:
Run the program in dry run mode. Verify that when G61 is active, the motion pause is visible at block limits, reflecting the servo in-position check width set in parameter #2224. Confirm that unidirectional overshoot occurs during G60 approach on the specified axes, and that G09 initiates a single-block pause before continuing without canceling the modal G64 state.
Error Analysis and Alarm Troubleshooting
| Brand | Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|---|
| Fanuc | PS0010 | Commanding G60, G61, or G64 on a control where the corresponding software options are disabled. | CNC halts program execution and displays "IMPROPER G-CODE" alarm on the operator panel. | The option is not active. Contact the machine tool builder to enable the software option, or remove the command from the program. |
| Fanuc | PS5074 | Specifying duplicate coordinate addresses in the same block during G60 positioning while Parameter 3403 bit 6 is active. | CNC displays "ADDRESS DUPLICATION ERROR" and halts operation. | Correct the block syntax to remove duplicate axis coordinate inputs. |
| Siemens | Alarm 16954 | Programmed or implicit STOPRE, M0, M1, WAITM, or WAITE command interrupts continuous-path mode. | Axis motion abruptly halts, and screen displays "Stop because of empty overstore buffer". | Prevent mid-contour halts by reconfiguring macro block transitions or deactivating implicit stop commands. |
| Siemens | Alarm 12550 | Language command executed for a non-enabled option or non-active function (such as G646 without license). | Control interrupts program with "Name not defined or option/function not available". | Ensure the software option license (6FC5800-0AS37-0YX0) is active, or use a supported smoothing mode. |
| Mitsubishi | P61 | Commanding G60 unidirectional positioning in a program on a control lacking the option. | The control displays "Program error" and halts the cycle. | Enable the unidirectional positioning software specification option, or remove G60 from the program. |
| Mitsubishi | P29 | Programming G60 simultaneously with incompatible commands (like fixed cycles or 3D circular interpolation). | Machining halts and displays "Program error". | Isolate G60 from incompatible commands by reorganizing code blocks. |
Application Note: Real-World Safety and Backlash approach
A catastrophic hard tool collision and severe spindle damage will occur if a shop floor operator executes a backlash approach program using G60 unidirectional positioning without verifying the overshoot overrun distance and direction in Parameter 5440. Because G60 intentionally commands the machine to overshoot the programmed target coordinate before feeding backward to the final coordinate to eliminate mechanical backlash, any miscalculation of this overrun distance inside tight physical setups will drive the tooling into a forbidden zone. In a multi-axis lathe or machining center with a double turret, this unexpected overshoot will cause a violent hard collision against the turret body, the clamping fixture, or the vise jaw, fracturing the tool and producing a ruined scrap part. Prior to executing any G60 backlash approaches, technicians must dry run the sequence and meticulously verify that the overrun settings in Parameter 5440 (or Mitsubishi parameter #2084) are aligned with the physical envelope clearances of the setup.
Related CNC Command Network
- G09 (Exact stop check for a single block): A non-modal command that performs an exact stop check for one block only without canceling the continuous cutting mode.
- G62 (Automatic corner override): A modal command in the same group that automatically reduces the feedrate at inside corners to prevent overshooting and maintain surface quality.
- G63 (Tapping mode): A path mode that disables acceleration and deceleration checks to facilitate tapping with a compensating chuck, but requires careful velocity transitions to avoid tool breakage.
- G61.1 / G08 P1 (High-accuracy control modes): Advanced Mitsubishi commands that override standard cutting modes to enforce high-precision contour tracking on complex geometries.
- BRISK / SOFT (Acceleration characteristics): Siemens commands that configure whether path axes accelerate abruptly (BRISK) or with jerk limitation (SOFT) at block boundaries.
Practical Takeaways for Safe Operation
Balancing surface quality, contour precision, and cycle efficiency requires a systematic configuration of exact stop and continuous path modes. Machining centers and lathe systems must restrict the use of modal exact stop checks (G61) to finishing runs of highly detailed features where corner rounding is intolerable, while utilizing G64 continuous cutting for the vast majority of roughing and 3D contouring operations. By actively managing look-ahead settings, axis-specific tolerances, and backlash overrun parameters, programming teams can optimize path velocity without compromising mechanical safety.
Frequently Asked Questions
Why does continuous path mode G64 cause corner rounding on CNC machines?
At block transitions, continuous path mode (G64) prioritizes uniform feedrate by blending acceleration and deceleration profiles between blocks before the servo motors physically reach the precise coordinate of the corner. This servo lag causes the physical toolpath to round off sharp corners, which can lead to tool collisions with clamps or chucks. To prevent this, program a non-modal exact stop check (G09/G9) specifically on blocks defining critical boundary coordinates, or implement advanced contour smoothing such as Siemens G641 with a tailored ADIS distance criterion.
How does unidirectional positioning G60 eliminate mechanical backlash?
Standard bidirectional positioning approaches coordinates from whatever direction the axis is currently moving, which introduces small mechanical positioning errors due to play (backlash) in the ball screw. Unidirectional positioning (G60) forces the axis to always overshoot the target coordinate by a set overrun distance (defined in Fanuc Parameter 5440 or Mitsubishi parameter #2084) and then back into the target from a constant direction. Technicians must configure these parameters carefully and dry run the motion to ensure the overrun does not drive the axis into a vise jaw or turret.
What is the difference between modal and non-modal exact stop commands?
Modal exact stop check (G61 on Fanuc/Mitsubishi, G60 on Siemens) remains active across all subsequent cutting blocks, forcing a complete halt and in-position check at every single coordinate transition, which drastically inflates cycle times and leaves cutter dwell marks on the part surface. Non-modal exact stop check (G09 on Fanuc/Mitsubishi, G9 on Siemens) is a one-shot command that enforces a standstill check only for the specific block in which it is programmed. To optimize cycle times, maintain the machine in G64 continuous mode globally, and selectively apply G09 or G9 only on blocks where precise sharp shoulders or critical dimensions are machined.
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.