G70 CNC Finishing Cycle Guide for Fanuc, Siemens, and Mitsubishi
Learn the G70 finishing cycle for CNC turning. Master syntax, parameters, and alarm codes for Fanuc, Siemens CYCLE95, and Mitsubishi controls to avoid crashes.
Introduction
A primary cause of coordinate program failure and physical machine crashes occurs when executing contours with pockets during a G70 finishing cycle. If a pocket is cut during the roughing cycle, the rapid traverse nonlinear return path from the end point back to the cycle start point can cause the finishing tool on the indexing turret to shortcut directly through the workpiece. If the programmer fails to verify this return path, the tool will dive into the material, causing a severe hard collision. The tool will crash into the spindle chuck, the workpiece fixture, or the tailstock, throwing an alarm code such as a servo overload or Alarm PS0322, and converting the expensive raw stock into a completely ruined scrap part.
Technical Summary
| Command Code | G70 (Fanuc, Mitsubishi) / CYCLE95 (Siemens) |
| Modal Group | Non-modal / Fixed Cycle |
| Supported Brands | Fanuc, Siemens, Mitsubishi |
| Critical Parameters | P (start block), Q (end block), VARI (Siemens) |
| Main Constraint | Type I profiles must be monotonic; G41/G42 must not be inside P-Q blocks. |
Quick Read
- Position the tool at a safe clearance start point outside the raw stock before calling G70.
- Ensure Type I profile shapes are strictly monotonic to prevent unexpected tool paths.
- Use Type II profiles for contours containing pockets to avoid scrap parts.
- Verify the chuck barrier and tailstock barrier settings on the HMI to establish electronic protection limits.
- Activate specific finishing feedrates and spindle speeds automatically within the P and Q sequence blocks.
- Move tool radius compensation commands (G41/G42) outside of the P-Q contour definition blocks.
Basic Concepts
The practical programming effect of the G70 finishing cycle on turning controls is to mathematically coordinate high-accuracy finishing cuts using previously established contour definitions. Rather than writing independent, redundant blocks of geometry for finishing tools, G70 allows the programmer to reference sequence parameters from previous roughing cycles.
During the roughing operation, the control ignores any feedrates, spindle speeds, or tool functions programmed within the shape program blocks. Once G70 is invoked, these specific finishing feedrates and spindle speeds automatically activate, allowing the tool to trace the contour with precision.
Programmers and setup operators must maintain absolute vigilance regarding active coordinate offsets and the start position of the tool. Once the finishing cycle terminates, the tool returns to the cycle start point in a rapid traverse nonlinear positioning mode, making the initial clearance start point critical for safety.
Command Structure
The G70 cycle relies on a structured sequence to execute finishing operations based on pre-defined contour coordinates. By targeting a specific block range, the controller seamlessly applies the geometry from a roughing pass to the finishing tool path.
While the fundamental logic remains consistent, the exact syntax varies significantly depending on the control brand. Fanuc and Mitsubishi utilize standard G-code sequence addresses, whereas Siemens approaches the operation through parameterized technology cycles.
Fanuc Syntax: G70 P_ Q_
Mitsubishi Syntax: G70 Aa Pp Qq Hh
Siemens Syntax: CYCLE95(...) or CYCLE950(...)
- P / p: Specifies the starting sequence block number of the target contour geometry.
- Q / q: Specifies the ending sequence block number of the target contour geometry.
- A / a: (Mitsubishi) Calls an external shape subprogram from memory.
- H / h: (Mitsubishi) Selectively compensates the cutting-edge angle on-the-fly.
- VARI: (Siemens) Modifies the cycle mode to switch between roughing and finishing.
Brand Applications
Fanuc
Fanuc relies on separate G-code groups to manage contour machining, using G71 or G72 for roughing and G70 for finishing. It defines the cycle with a flat sequence address structure pointing to the contour blocks.
G70 P_ Q_
| Parameter / Detail | Value |
|---|---|
| Rapid traverse positioning mode | No. 1401 bit 1 (LRP) |
| Series 15 program format | No. 0001 bit 1 (FCV) |
| Version Differences | Series 15 uses G70.7 instead of G70 |
Warning: Tool compensation commands (G41/G42) placed inside the P-Q blocks will trigger an unavailable command alarm.
Siemens
Siemens controls running in native SINUMERIK mode completely bypass standard G-code cycles, using technology-oriented parameterized blocks like CYCLE95. To rough and finish, the operator calls the same cycle twice and modifies the VARI parameter.
CYCLE95(...)
| Parameter / Detail | Value |
|---|---|
| Cycle code | CYCLE95 / CYCLE950 |
| Machining type parameter | VARI |
| Version Differences | — (no source) |
Mitsubishi
Mitsubishi lathe controls provide an expanded address format for the finishing cycle. The compiler can utilize an external shape subprogram and compensate the cutting-edge angle.
G70 Aa Pp Qq Hh
| Parameter / Detail | Value |
|---|---|
| External subprogram address | A |
| Angle compensation | H |
| Version Differences | — (no source) |
Brand Comparison
| Feature | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Cycle Code | G70 | CYCLE95 / CYCLE950 | G70 |
| Sequence Targeting | P, Q parameters | — (no source) | P, Q parameters |
| External Subprogram | — (no source) | — (no source) | A parameter |
| Mode Switching | Separate G-codes | VARI parameter | Separate G-codes |
Technical Analysis
Two distinct behaviors clearly distinguish Fanuc's turning finishing cycle and G-code parsing from Siemens and Mitsubishi controls. First, Fanuc relies on separate G-code groups—such as G71 or G72 for roughing and G70 for finishing—to manage contour machining. Siemens controls running in native SINUMERIK mode completely bypass these G-code cycles. Instead, they use technology-oriented parameterized blocks, specifically CYCLE95 or CYCLE950, for extended stock removal. To rough and finish on a Siemens control, the operator simply calls the same cycle twice and modifies the single mode parameter (VARI), retaining the programmed coordinates without needing multiple independent G-code groups.
Second, Fanuc defines the G70 cycle with a flat sequence address structure limited to P and Q blocks. In contrast, Mitsubishi lathe controls provide an expanded G70 address format using additional parameters. The Mitsubishi compiler utilizes the A parameter to call a completely external shape subprogram from memory. Furthermore, it uses the H parameter to selectively compensate the cutting-edge angle in either the longitudinal or face direction on-the-fly, a capability that Fanuc G70 cycles lack entirely.
Program Examples
Fanuc Finishing Execution
N10 G71 U2.0 R1.0
N20 G71 P30 Q40 U0.4 W0.2 F0.3 S550
N30 G00 X20.0
N40 G01 Z-50.0
N50 G70 P30 Q40
Dry run: The control executes the roughing passes using G71, leaving 0.4 allowance on X and 0.2 on Z. Block N50 triggers the G70 cycle, sending the finishing tool along the exact contour defined between N30 and N40 at the newly activated finishing feedrate.
Siemens CYCLE95 Application
N10 CYCLE95("CONTOUR", 2.0, 0.4, 0.2, 0.3, 1, 0.1, 0.1, 1)
N20 T0202
N30 CYCLE95("CONTOUR", 0.0, 0.0, 0.0, 0.15, 5, 0.1, 0.1, 1)
Dry run: The first CYCLE95 block performs the roughing operation based on the "CONTOUR" geometry. After a tool change, the second CYCLE95 block is executed with the machining type parameter modified to 5, directing the controller to perform a final finishing pass over the same contour geometry without redundant code.
Mitsubishi External Subprogram
N10 G71 P100 Q200 U0.5 W0.2
N20 T0303
N30 G70 A1001 P100 Q200 H1
Dry run: Following the initial roughing, the G70 block commands the finishing pass. The A1001 parameter instructs the control to pull the shape definition from external subprogram O1001, while H1 dynamically compensates the cutting-edge angle during the cut.
Error Analysis
| Brand | Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|---|
| Fanuc | PS0322 | Finished shape exceeds start point | Machine stops, hard collision with stock | Non-monotonic path or improper start point. Check tool path boundary and verify Type II usage for pockets. |
| Fanuc | PS0325 | Unavailable command in shape program | Cycle fails to execute | Tool radius compensation (G41/G42) placed inside P-Q blocks. Move G41/G42 outside the contour definition. |
| Fanuc | PS0064 / PS0329 | Shape is not a monotonous change | Alarm triggered during calculation | Attempting to cut pockets with a Type I profile. Switch to Type II profile logic. |
| Mitsubishi | — (no source) | Subprogram not found | Cycle halts at G70 block | The external shape subprogram defined by the A parameter is missing from memory. Load the subprogram. |
| Siemens | — (no source) | Incorrect VARI parameter | Finishing pass behaves like roughing | The VARI parameter in CYCLE95 was not updated for finishing mode. Adjust the parameter value. |
Application Note
Executing a G70 finishing pass on a contour containing pockets without verifying the rapid traverse nonlinear return path guarantees a severe hard collision. Because the finishing tool on the indexing turret rapidly returns to the cycle start point after the cut, it will plunge directly through the remaining workpiece geometry if the start point lacks sufficient clearance. Programmers must enforce strict coordinate offsets and utilize the chuck barrier and tailstock barrier settings on the HMI to establish electronic protection limits, preventing the turret from destroying the spindle chuck or workpiece fixture.
Related Command Network
- G71: Performs the initial longitudinal roughing cycle that generates the contour geometry referenced by G70.
- G72: Executes facing roughing passes, providing the sequence parameters for a subsequent G70 face finishing cut.
- G73: Provides pattern repeating roughing for pre-formed castings, sharing the same P and Q block structure utilized by G70.
- G41 / G42: Applies tool radius compensation, which must be programmed outside the G70 contour blocks to avoid syntax alarms.
Conclusion
Successful execution of the G70 finishing cycle demands absolute precision in defining the safe clearance start point and managing sequence blocks. Verifying the rapid return path and strictly avoiding tool compensation commands within the contour definition blocks prevents catastrophic hard collisions and scrap parts.
FAQ
Why does the machine crash during the rapid return of a G70 cycle?
The control uses a rapid traverse nonlinear positioning mode to return to the start point, which can cause the tool to shortcut through the workpiece if the contour contains pockets. Always verify the return path and use Type II profile definitions for non-monotonic shapes.
Can I program feedrates directly in the finishing contour blocks?
Yes, feedrates (F) and spindle speeds (S) written within the P and Q sequence blocks are ignored during the G71 roughing pass but become automatically active during the G70 finishing cycle. Embed your precise finishing speeds directly into the contour code.
How do I switch from roughing to finishing on a Siemens control?
Siemens bypasses separate G-code groups, instead using a single technology cycle like CYCLE95. To execute a finishing pass, copy the roughing block and modify the VARI parameter to the specific value that commands the finishing mode.
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 - 2008)
- Ö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
G71 Metric Dimensioning Guide for Siemens SINUMERIK Controls
Learn how to program G71 and G710 metric dimensioning on Siemens SINUMERIK controls, including parameter MD 10240, alarm codes, and G-code syntax errors.
G69 Balance Cut Cancel: Coordinate Recovery & Crash Prevention
Learn how to program the G69 balance cut cancel command for Fanuc, Siemens, and Mitsubishi turning centers. Cancel dual slide synchronization and prevent crashes.
G69 Coordinate System Rotation Cancel: Modals, Alarms, and Setup
Learn to cancel G68 facing turret mirrors and coordinate rotations using G69 on Fanuc, Siemens, and Mitsubishi CNCs to prevent turret crashes.
G68 Mirror Image and Balance Cut Programming for CNC Lathes
Master G68 mirror image and balance cutting on Fanuc, Siemens, and Mitsubishi CNC turning centers to prevent tool crashes and coordinate dual turrets.