Skip to main content
CNC.wikiCNC.wiki

G01 Linear Interpolation Command: Complete CNC Programming Guide

Master G01 Linear Interpolation on Fanuc, Siemens, and Mitsubishi CNCs. Understand parameters, avoid zero feed alarms like PS0011, and write robust cutting code.

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

CNC CARE Co-founder

Introduction

An incorrectly set workpiece coordinate system (G54) or an inaccurate tool length offset will transform a standard G01 linear plunge into a high-speed collision with a solid steel workpiece. The moment the tool holder crashes into a vise jaw, chuck, or fixture clamp at a coordinated cutting feedrate, the physical consequences are catastrophic: a fractured carbide insert, a bent ballscrew, and severe spindle bearing misalignment that immediately halts production, forcing costly downtime and scrapping high-value components. Understanding how to program, coordinate, and safeguard the linear interpolation command across different CNC controls is the only line of defense against these severe mechanical failures.

Technical Summary

Technical AttributeSpecification
Command CodeG01 (G1 in Siemens)
Modal Group / ModalityGroup 01 (Modal command)
Supported BrandsFanuc, Siemens, Mitsubishi
Critical ParametersParameter 1422 (Fanuc Max Cutting Feedrate), $MC_MAX_PATH_FEED (Siemens Max Path Feed), Parameter #1006 / #1009 (Mitsubishi Max Cutting Feedrate)
Main ConstraintCutting velocity is physically restricted by individual axis acceleration capabilities and software clamping limits.

Quick Read

  • Select G01 over G00 for all active cutting operations to maintain precise control over the path vector and chip load.
  • Program a non-zero feedrate (F) before or directly within the first G01 block to avoid immediate controller lockout and zero-feed alarms.
  • Implement exact stop checks (G09 or G61 / G60 / G61.1) at critical corners to prevent the controller from rounding off sharp workpiece profiles.
  • Verify Z-axis clearance heights during dry runs by keeping one hand on the feedrate override dial set to 0% to prevent spindle crashes.
  • Confirm the default unit scaling since omitting a decimal point (e.g., F200 instead of F200.0) can slow the feedrate to 0.2 mm/min.
  • Bound target coordinates within software stroke parameters to avoid triggering soft limit overtravel alarms during high-speed cuts.

Basic Concepts

G01 Linear Interpolation is the fundamental cutting command used in CNC machining. Unlike G00, which moves axes at their maximum rapid velocity to position the tool, G01 controls the feedrate along a straight line vector. The controller coordinates the servo motor speeds for all involved axes so that the tool tip moves at exactly the commanded F feedrate along the vector path. This coordinated motion ensures a uniform chip load on the cutting tool, protecting the cutter from premature wear or sudden breakage, and ensuring high-quality surface finishes on the workpiece.

Programmers and operators must remain highly vigilant during G01 operations, particularly when transitioning from air cutting to material engagement. A common failure cause is a mismatch between the programmed coordinate system and the actual physical setup. If the tool offset or workpiece coordinate system (G54) is incorrectly set, the tool will execute a G01 plunge command into solid metal instead of air. This can lead to a hard collision where the tool holder crashes into the vise jaw, chuck, or clamp, causing catastrophic damage to the spindle, fracturing the carbide insert, and resulting in a scrap part. Operators should always use the single block execution mode and keep one hand on the feedrate override dial during the first run of a new program to manually reduce the feed rate to zero if a collision seems imminent.

Command Structure

The linear interpolation command tells the CNC controller to drive the tool along a straight line path to the programmed target coordinates at a controlled velocity. Because G01 is a modal command belonging to Group 01, once it is programmed, all subsequent coordinate commands are executed as linear cuts until another motion code (such as G00 or G02) overrides it. The path velocity is dictated by the F code, which remains active and governs all linear movements until a new F value is specified.

When programming the command, the coordinates can be specified in absolute values, where targets are referenced from the workpiece zero, or incremental values, where targets represent the distance and direction of travel from the tool's current position. Precision is highly dependent on how the controller interpolates these axes simultaneously, and omitting coordinate axes simply instructs the controller to keep those axes stationary while moving the specified ones.

Fanuc Syntax:
G01 X_ Y_ Z_ F_ ;  (or G01 X_ Z_ F_ ;)

Siemens Syntax:
G1 X... Y... Z... F...

Mitsubishi Syntax:
G01 X_ Y_ Z_ F_ ,comma_or_C_R_ ;
BrandParameterDescriptionValue Range
FanucParameter 1422Maximum cutting feedrate for each axis. Clamps feedrate without alarm if programmed F exceeds it.System-dependent
FanucParameter 1826Position window / In-position width. Defines target window in microns for block completion.System-dependent
FanucParameter 1622Deceleration time constant. Configures cutting feed acceleration/deceleration curve.System-dependent
Siemens$MC_MAX_PATH_FEEDMaximum path feedrate limit. Clamps feedrate based on machine physical bounds.System-dependent
Siemens$MA_MAX_AX_VELOMaximum velocity of a specific axis.System-dependent
SiemensMD 36010 $MA_STOP_LIMIT_FINEExact stop tolerance fine. In-position checking limit in mm.System-dependent
SiemensMD 36000 $MA_STOP_LIMIT_COARSEExact stop tolerance coarse. In-position checking limit in mm.System-dependent
MitsubishiParameter #1006 / #1009Maximum cutting feedrate clamping per axis. Clamps commanded feedrate.System-dependent
MitsubishiParameter #1026In-Position Width. Determines the target error window for block transition.System-dependent
MitsubishiParameter #1206Acceleration/deceleration time constant. Configures exponential curve on cutting feed.System-dependent

Brand Applications

Fanuc

On Fanuc systems, the linear interpolation command operates within a strictly defined parameter structure. The controller coordinates axis movement, but enforces maximum cutting feedrates per axis to protect system mechanics, and verifies block completion using the configured in-position window.

Standard programming utilizes absolute G90 or incremental G91 positioning modes. In lathe applications, U and W represent incremental coordinates along the X and Z axes respectively, while the modal feedrate F controls physical movement.

CategoryDetail / IdentifierDescription / Behavior
ParameterParameter 1422Maximum cutting feedrate per axis. Silently clamps F value to parameter limit.
ParameterParameter 1826Position window (in microns). Determines block completion when axis distance falls within this range.
ParameterParameter 1622Deceleration time constant for cutting feeds.
AlarmPS0011FEEDRATE ZERO: Executing a G01 cutting motion without an active feedrate or if the feedrate is zero.
AlarmPS0010IMPROPER G-CODE: Invalid address or conflicting modal codes defined in the same block.
AlarmOT0500OVERTRAVEL: Programmed coordinate exceeds software stroke limit parameter limits (1320/1321).
Version / OptionSeries 30i/31i-B vs 0i-FSeries 30i/31i-B supports advanced high-speed look-ahead AI Contour Control II (G05.1 Q1). Series 0i-F is limited to standard AI Contour Control I or requires software options.
Version / OptionPolar InterpolationPolar coordinate interpolation uses G112 on older Series 16i/18i controllers, but modern Series use standard G12.1.

Operators must remain vigilant: if feedrate override scaling causes the commanded feedrate to exceed the limit in Parameter 1422, the controller clamps the speed without displaying any alarm, which can mask potential path timing differences.

Siemens

Siemens Sinumerik controls utilize a dynamic look-ahead trajectory planner. The control system applies limits based on path feed rates and axis-specific machine data to ensure that paths remain smooth and stable.

Programming in Siemens supports flexible coordinate overrides like non-modal absolute =AC(...) and incremental =IC(...) commands. Feedrate behavior is enhanced by the FGROUP command, which defines which axes govern the combined path velocity.

CategoryDetail / IdentifierDescription / Behavior
Parameter$MC_MAX_PATH_FEEDMaximum path feedrate limit. Clamps path velocity within safe physical boundaries.
Parameter$MA_MAX_AX_VELOMaximum velocity of a specific axis.
ParameterMD 36010$MA_STOP_LIMIT_FINE exact stop tolerance check limit in mm.
ParameterMD 36000$MA_STOP_LIMIT_COARSE exact stop tolerance check limit in mm.
AlarmAlarm 14800Program-controlled feedrate is not programmed: G1 executed without an active, non-zero F command.
AlarmAlarm 10720Software limit switch reached: Programmed coordinate exceeds active software limit switches.
AlarmAlarm 10910Irregular path velocity: Velocity discontinuity during high-speed mold contouring paths.
Version / Option840D sl vs 828DCYCLE832 (High Speed Settings) for look-ahead, blending, and acceleration tuning is standard on 840D sl but restricted or licensed separately on 828D.
Version / OptionCOMPCAD vs COMPON840D sl supports high-speed spline compressor COMPCAD. Older 810D/840D models utilized standard COMPON or polynomials.

When moving rotary axes under a G1 command, always define FGROUP to include the rotary axes; otherwise, the controller assumes rotary degrees are linear millimeters, resulting in extremely slow tool motions.

Mitsubishi

Mitsubishi controllers manage linear interpolation motions through precise servo loops. The axis cutting velocity is capped, while exact position deviations are verified against the configured in-position window.

The G01 syntax allows for direct corner rounding via ,R and direct chamfering via ,C appended directly to the block. Coordinates are defined using standard G90/G91 or lathe incremental U/W axes.

CategoryDetail / IdentifierDescription / Behavior
ParameterParameter #1006 / #1009Maximum cutting feedrate clamping per axis.
ParameterParameter #1026In-Position Width. Determines the target error window for block transition.
ParameterParameter #1206Acceleration/deceleration time constant. Configures exponential curve on cutting feed.
AlarmAlarm M01 0005FEEDRATE ZERO: G01 executed without feedrate programmed or if feedrate override dial is set to 0%.
AlarmAlarm M01 0007ILLEGAL G-CODE: Commanded G01 with unsupported address or conflicting modal groups.
AlarmAlarm Y02 0050OVERTRAVEL: Programmed coordinate exceeds software stroke limit boundaries.
Version / OptionM800 vs M80 SeriesM800 series CPU supports high-speed high-accuracy SSS Control II (G05 P10000) with a larger look-ahead buffer. M80 uses standard SSS Control (G05 P20000) with a smaller buffer.
Version / OptionM80/M800 vs older MeldasModern M80/M800 use interactive GUI screens for parameter entry, while older Meldas 50/60 series required hexadecimal addresses.

Care must be taken when using automatic corner chamfering or rounding (,C / ,R); if the subsequent block is non-linear or in a different plane, a path interpolation alarm is immediately triggered.

Brand Comparison

FeatureFanucSiemensMitsubishi
Corners & BlendingBlends using G64, rounds corners by default. Requires G09 or G61 for exact stop check.Blends with G641/G642 using spatial tolerances (ADIS/ADISPOS). Advanced spline compression (COMPCAD).Blends using G61.1 or SSS Control II (G05 P10000) to adjust feed rate smoothly at corners.
In-Position WidthSet via Parameter 1826 in microns.Checked based on stop tolerances MD 36010 and MD 36000 in mm.Checked based on Parameter #1026.
Special SyntaxStandard G90/G91 and incremental turning U/W.Non-modal AC/IC overrides within a block (e.g. X=AC(...)).Automatic corner rounding/chamfering syntax directly inside G01 block via ,R or ,C.

Technical Analysis

Analyzing the mechanical and software behaviors of these three control systems reveals distinct approaches to linear interpolation. Fanuc systems prioritize deterministic parameter limits, quietly enforcing axis restrictions through Parameter 1422 without stopping execution. This design choice prevents unexpected program interruptions but requires operators to verify path timings before execution. Fanuc's G64 mode blends blocks continuously, prioritizing throughput over sharp corner geometry unless overridden by G09 or G61, which verify that positions settle within Parameter 1826 limits.

In contrast, Siemens systems adopt an advanced, trajectory-centric model that calculates continuous path blending dynamically. Through G641 and G642 modes, programmers can establish spatial tolerances using ADIS or ADISPOS. Instead of simple rounding, the controller parses several blocks ahead, fitting a smooth spline transition within these active bounds. This ensures maximum path velocity and uniform chip loading, avoiding sudden deceleration on complex contours, while exact stop thresholds are managed directly in machine data MD 36010.

Mitsubishi controllers leverage a highly robust axis-coordination method that emphasizes smooth motion control on 3D surfaces. By implementing Super Smooth Surface (SSS Control II via G05 P10000), Mitsubishi controllers analyze consecutive G01 paths to minimize acceleration discontinuities at block boundaries, reducing mechanical vibrations. This is complemented by a simplified syntax for automatic chamfering and rounding (,C and ,R) embedded directly into G01 commands, saving block space and eliminating complex trigonometric math.

Program Examples

Fanuc Example

; Fanuc Program Example (Linear Mill / Lathe Profile)
G90 G01 X100.0 Y50.0 F150.0 ; (Absolute linear motion to X100, Y50 at 150 mm/min)
G91 G01 Z-25.0 F100.0 ; (Incremental motion 25mm in negative Z at 100 mm/min)
G01 X80.0 Y80.0 ; (Modal G01 linear motion to X80, Y80 reusing previous F100.0 feedrate)

Dry Run Analysis (Fanuc): Set the feedrate override dial to 0% and execute the program in single block mode. Verify on the coordinates screen that the Z-axis is positioned safely above the workpiece before permitting G01 to execute. During incremental steps, confirm that G91 is correctly evaluated and that modal G01 commands carry the expected F100.0 feedrate from the previous block.

Siemens Example

; Siemens Program Example (Advanced Path Blending)
G90 G1 X150 Y75 F200 ; (Absolute positioning to X150, Y75 at 200 mm/min)
G1 Z=IC(-10) F120 ; (Incremental motion in Z by -10mm at 120 mm/min using AC/IC style syntax)
G1 X100 Y50 F=FGROUP(X,Y) ; (Performs linear interpolation specifying X and Y as the main feed group)

Dry Run Analysis (Siemens): Before machining the physical block, run a dry run with Z-axis offset elevated. Verify the coordinate display shows absolute positions for the first and third blocks, and that the second block translates Z=IC(-10) to exactly 10mm down from the previous height. Confirm that FGROUP(X,Y) maintains path speed based purely on the X and Y coordinate vectors.

Mitsubishi Example

; Mitsubishi Program Example (Corner Rounding)
G90 G01 X200.0 Y100.0 F250.0 ; (Absolute linear motion to X200, Y100 at 250 mm/min)
G01 X300.0 ,R10.0 F150.0 ; (Modal linear move to X300 with a 10mm corner radius blended to the next block)
G91 G01 Z-50.0 F100.0 ; (Incremental linear move in Z of -50mm at 100 mm/min feedrate)

Dry Run Analysis (Mitsubishi): Ensure the program is executed with high-accuracy mode inactive first. Observe that the transition to X300.0 generates a smooth 10mm radius at the corner before transitioning to the incremental move in Z. Verify the controller does not generate a path calculation alarm due to any non-linear command immediately following the corner rounded block.

Error Analysis

BrandAlarm CodeTrigger ConditionOperator SymptomRoot Cause / Fix
FanucPS0011Executing a G01 cutting motion without an active feedrate or if the feedrate is zero.System halts immediately, axes lock up, and alarm light activates.Add a valid non-zero F feedrate command before or within the first G01 block.
FanucPS0010Invalid address or conflicting modal codes defined in the same block as G01.Program execution stops on the conflicting block.Inspect the block syntax, check for overlapping coordinates or modal codes, and separate commands.
FanucOT0500Programmed coordinate exceeds software stroke limit parameters (1320/1321).Emergency stop is triggered, axes freeze, and limit alarm appears.Modify coordinate targets to lie within safe physical boundaries or adjust parameter limit coordinates.
SiemensAlarm 14800G1 command executed without an active, non-zero F feedrate active.Execution halts instantly with alarm code displayed on screens.Program a feedrate (F...) before or inside the G1 block.
SiemensAlarm 10720Programmed coordinate exceeds active software limit switch boundaries.Axis motion decelerates to a stop and execution is locked.Modify the target coordinate within software bounds or verify G54 coordinate offsets.
SiemensAlarm 10910Velocity discontinuity occurs during high-speed mold contouring paths.Axis movement jerks slightly or controller halts execution.Smooth the CAD/CAM path geometry or activate COMPCAD compressor commands.
MitsubishiAlarm M01 0005G01 executed without feedrate programmed or if feedrate override dial is set to 0%.Machine remains stationary, feed hold light may activate, and movement stops.Program a valid non-zero feedrate or turn up the operator panel feedrate override dial.
MitsubishiAlarm M01 0007Commanded G01 with unsupported address or conflicting modal groups.Execution halts immediately on the faulty block.Revise G-code syntax and ensure parameters correspond to supported coordinate addresses.
MitsubishiAlarm Y02 0050Programmed coordinate exceeds software stroke limit boundaries.System locks axis movement and triggers an overtravel warning.Modify target coordinates in the program to lie within safe software stroke limits.

Application Note

Spindle bearing destruction and ball screw deformation occur immediately when a G01 plunge is executed with a negative Z-axis offset value in G54. This specific mechanical failure arises when tool setter measurements are entered with inverted signs on the control panel, causing the CNC to coordinate simultaneous axis travel straight into the fixture clamp instead of the workpiece. To eliminate this risk, operators must run the initial cycle in single block mode with the Z-axis offset elevated 50 millimeters above the material, checking the remaining 'distance-to-go' value on the screen before the cutter engages. Programmers must also verify that decimal points are explicitly written on all feedrate words (e.g., F100.0 instead of F100), because a missing decimal point scales a standard cutting speed down to a microscopic feed rate of 0.1 mm/min, resulting in long dwell times that overheat carbide inserts and ruin tool life.

Related Command Network

  • G00 Rapid Traverse Mode: Positions the axes at maximum rapid velocity for non-cutting segments, which must be deactivated before performing a G01 cutting pass.
  • G02 / G03 Circular Interpolation: Standard commands that coordinate axis paths along clockwise or counterclockwise arcs, transitioning from modal G01 linear motion.
  • G09 Exact Stop: Performs a non-modal check at the end of a G01 block to verify that axes have decelerated to a complete stop before moving to the next command.
  • G61 Exact Stop Mode: A modal command that forces the controller to check the in-position width on every subsequent G01 cut to prevent rounded corners on critical workpiece profiles.
  • G64 Continuous Cutting Mode: The default path blending command that maintains high speed at block boundaries, allowing smooth transitions at the cost of corner precision.

Conclusion

Applying structured feedrates under G01 linear interpolation forms the foundation of reliable machining profiles. By pairing accurate workpiece setup with proactive exact-stop overrides, operators prevent catastrophic collisions, minimize servo-driven corner rounding, and ensure high-precision contours. Testing toolpaths with elevated dry runs and verifying modal parameters on Fanuc, Siemens, and Mitsubishi controllers provides the ultimate safeguard against structural spindle damage and costly scrap parts.

FAQ

Why does a G01 command trigger a FEEDRATE ZERO alarm?

A G01 command triggers a FEEDRATE ZERO alarm when the controller is instructed to perform a linear interpolation without an active, non-zero feedrate. Because G01 coordinates tool motion at a specific cutting speed, the system cannot calculate axis movement without a programmed F value. To resolve this, ensure an F parameter is defined either within the G01 block itself or in a preceding modal block, and check that the operator's feedrate override dial is not set to 0%.

How does a missing decimal point in G01 coordinate values cause scrap parts?

A missing decimal point causes scrap parts because CNC controllers scale integer coordinate and feedrate inputs to the smallest input increment, which is typically a micron or ten-thousandth of an inch. For example, programming X100 instead of X100.0 will cause the controller to interpret the movement as 0.1 mm rather than 100 mm. To prevent these massive positioning errors and tool damage, programmers must strictly write decimal points for all coordinates and feedrates, or verify that the controller's integer interpretation parameter is configured to standard units.

What is the difference between G61 Exact Stop and G64 Cutting Mode during G01 operations?

The difference lies in how the controller handles axis deceleration at block boundaries. G61 Exact Stop Mode forces the controller to halt axis movement momentarily at the end of each G01 block until the servos settle within the configured in-position width tolerance, ensuring sharp corners and high geometric accuracy. G64 Continuous Cutting Mode allows the controller to blend block transitions without decelerating to a stop, maintaining constant path velocity and high productivity but slightly rounding sharp workpiece profiles.

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