Skip to main content
CNC.wiki

G35 Thread Cutting with Decreasing Lead on Siemens SINUMERIK

Master G35 degressive thread cutting on Siemens SINUMERIK. Learn syntax, parameters like SD 42010, and how to prevent Alarm 22280 acceleration overloads.

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

CNC CARE Co-founder

Introduction

Programming a degressive thread cutting operation (G35) too close to a rotating spindle chuck or workpiece clamps presents an extreme collision hazard. During the execution of a G35 cycle, the CNC disables feed hold and overrides to maintain pitch synchronization. If a coordinate shift or programming typo occurs, pressing the feed hold key will not stop the turret immediately, causing it to slam directly into the rotating chuck jaws or clamp, shattering the threading tool and bending the spindle. Furthermore, failing to cancel constant surface speed (G96) causes rapid spindle speed fluctuations as the tool travels radially, resulting in encoder-to-servo lag that corrupts the decreasing pitch and yields a ruined scrap part.

Technical Summary

Technical FeatureSpecification
Command CodeG35
Modal GroupGroup 01, Modal
BrandsSiemens
Critical ParametersF (degressive thread pitch change rate in mm/rev2 or inch/rev2), SF= (starting angle offset for multi-start threads)
Main ConstraintSpindle speed must remain constant (G97). Feedrate override and feed hold are ignored. Tool radius compensation (G41/G42) must be canceled with G40 before execution.

Quick Read

  • Deactivate constant surface speed (G96) and command constant spindle speed (G97) before G35 execution to avoid servo lag and pitch errors.
  • Deactivate tool radius compensation (G41/G42) using G40 before calling the G35 block to prevent tool path offset errors.
  • Ensure a non-zero feedrate (G95) is active before G35 to prevent the control from triggering Alarm 14800.
  • Define sufficient run-in and run-out paths with DITS and DITE to avoid axis acceleration overloads and Alarm 22280.
  • Switch the interpreter to native Siemens mode (G290) to use F-based pitch change rate, or to ISO Dialect mode (G291) to use K-based decrement values.
  • Monitor safety clearances and establish software limit boundaries using G25 and G26 to protect the turret and measuring stations from collision.

Basic Concepts

Degressive pitch thread cutting (G35) on Siemens turning systems machines threads where the pitch linearly decreases per spindle revolution. This command is critical for specialized self-tapping screws or worm gear components where the lead must shrink continuously along the axis. The control synchronizes the spindle's angular position with the feed axis movement, maintaining a rigid mathematical relationship. Because of this lockstep behavior, the axis feedrate is slaved directly to the spindle speed encoder.

To maintain this strict synchronization, standard operator controls are modified during thread cutting. Feedrate override switches are locked at 100% and feed hold keys are disabled during the G35 block. If feed hold is pressed, the axis will continue moving until it reaches the end point of the next non-threading block. This makes it impossible to manually interrupt the cycle mid-cut, necessitating prior verification of tool clearance and tool path correctness.

Command Structure

Before programming degressive threads, it is often helpful to understand constant lead threading commands such as G33 constant lead threading for Siemens. For progressive thread profiles where the pitch increases rather than decreases, refer to the guide on G34 thread cutting with increasing lead. Software coordinates can also be protected using G25 lower working area limitations.

On SINUMERIK controls, the G35 command can be programmed using two distinct syntactic styles: native Siemens mode and external ISO Dialect mode. Programmers can switch between these modes using G290 and G291 commands. In native Siemens mode, the degressive pitch change rate is programmed with the F address, representing pitch change in mm/rev2. The starting pitch is defined by the axis-parallel parameters I, J, or K.

Alternatively, in ISO Dialect mode, degressive thread cutting is performed under the G34 command block. In this mode, a negative value is assigned to the K address to represent the degressive pitch decrement per spindle revolution. The target endpoint coordinates in Cartesian space must always be explicitly defined to allow the interpreter to calculate the path limits.

Syntax

Native Siemens Mode Syntax:

G35 X... Y... Z... I... J... K... F... SF=... ;

ISO Dialect Mode Syntax:

G34 X(U)... Z(W)... F... K... ;

Parameters

ParameterProgramming ModeDescriptionValue Range
X, Y, ZSiemens ModeCartesian coordinates of the thread physical endpoint, programmed as absolute (G90) or incremental (G91) values.Coordinate range
I, J, KSiemens ModeNominal starting thread pitch (lead) specified parallel to the X, Y, and Z axes respectively.Dimension in mm or inches
FSiemens ModeDegressive thread pitch change rate in mm/rev2 or inch/rev2.Numeric value
SF=Siemens ModeStart point offset angle for machining multiple-start threads, specified in degrees. Defaults to setting data SD 42000 if omitted.0.0000 to 359.999 degrees
X(U), Z(W)ISO Dialect ModeAbsolute (X, Z) or incremental (U, W) end point coordinates of the thread.Coordinate range
FISO Dialect ModeNominal starting thread lead.Dimension in mm or inches
KISO Dialect ModeThread lead change value per spindle revolution. Under degressive threading, this value must be negative.Numeric value

Brand Applications

Siemens

Siemens utilizes a unique, dual-syntax bilingual model to handle variable threads. In native Siemens mode, degressive variable threading is commanded via G35, with the pitch change rate programmed under the address F. Progressive threads use G34. When switched to ISO Dialect mode (G291), G34 is used for both progressive and degressive threads, requiring a negative K value to specify pitch decrement.

Siemens supports advanced continuous-path linking (G64) across threading transitions. By programming consecutive G33 and G35 blocks under continuous-path mode G64, the motion kernel uses its pre-read buffer and look-ahead velocity control to link the blocks. This adjusts transition velocities to eliminate sudden velocity jumps or deceleration pauses.

Siemens enables direct programmatic control of run-in and run-out paths within the part program using DITS and DITE. These commands write directly to setting data SD 42010 ($SD_THREAD_RAMP_DISP) so programmers can customize acceleration and deceleration ramp lengths. This dynamic control prevents axis acceleration overload alarms on short workpieces.

Brand Comparison

Feature / OptionSINUMERIK 840D sl (High-End)SINUMERIK 828D (Mid-Range)SINUMERIK 802D sl (Compact)
Multi-Edge Turning (G51.2 / G50.2)Supported (Group 20 multi-edge turning)Omitted (Not supported)Omitted (Not supported)
G35 Degressive Threading CycleSupported (Group 01 modal command)Supported (Group 01 modal command)Supported (Group 01 modal command)
ISO Dialect Translation Mode (G291)Supported (Enabled via MD 18800)Supported (Enabled via MD 18800)Supported (Enabled via MD 18800)

Technical Analysis

An analytical evaluation of the Siemens G35 command reveals that its bilingual nature introduces differing mathematical behaviors. When operating under native Siemens mode (G290), the degressive pitch change rate is programmed under the F-parameter as an acceleration/deceleration rate in mm/rev2. However, when the control is configured for ISO Dialect mode via G291, G34 is utilized instead, and the pitch change rate is designated by K as a decrement per revolution. Under ISO mode, the parser enforces a strict mathematical constraint to prevent the calculated feedrate from reaching zero or negative values at the path endpoint, requiring that (F + K / 2)2 + 2KW > 0. If this is violated, the interpreter halts program execution to avoid servo stall.

At the system level, there are significant hardware and software capability differences between Siemens models. High-end controllers like the SINUMERIK 840D sl support advanced Group 20 G-codes such as G51.2 (Multi-edge turning ON) and G50.2 (Multi-edge turning OFF) for polygon turning, which are completely omitted on the compact SINUMERIK 802D sl. Both systems, however, utilize the system setting data SD 42010 ($SD_THREAD_RAMP_DISP) to store the DITS and DITE programmable run-in and run-out paths, enabling dynamic axis acceleration adjustments to prevent torque overload alarms on short thread lengths.

Program Examples

G290 ; Switch parser to native Siemens mode
G35 Z-200.0 K100.0 F17.045455 ; Decreases thread lead by 17.045455 mm/rev² starting with a pitch of 100 mm/rev to Z-200.0
G35 Z-150.0 K50.0 F5.0 SF=180.0 ; Degressive cylinder thread starting with pitch of 50mm, decreasing by 5.0 mm/rev², and starting point offset of 180 degrees
G64 ; Activates continuous-path mode to link threading blocks smoothly without velocity jumps
G33 Z0 K100.0 SF=14.0 ; Cuts a constant lead thread segment first
G35 Z-200.0 K100.0 F17.045455 ; Chains a degressive pitch thread segment seamlessly to the constant segment

During a dry run, the control executes the program without cutting material to verify the tool path. Because G35 locks the feedrate override at 100% and disables the feed hold button, the operator cannot adjust feed speed or pause the machine mid-cut. Before running, the operator must verify clearances in space (without a workpiece mounted) to ensure that the axis can achieve synchronous speed without triggering Alarm 22280 or crashing into the spindle chuck.

Error Analysis

BrandAlarm CodeTrigger ConditionOperator Fix
SiemensAlarm 14800G35 is called while the programmed path velocity evaluates to zero (e.g. F0 is active) and the "Fixed feedrates" option is not active.Ensure a non-zero feedrate is active or program a valid feedrate before G35.
SiemensAlarm 22280Programmed run-in path (DITS) is too short to allow the thread axis to accelerate to synchronous speed, causing an axis acceleration overload.Increase the DITS value in the program or modify MD 11411 to change the alarm mask configuration.
SiemensAlarm 61800External ISO dialect commands (such as G32 or ISO G34) are executed when machine data MD 18800 is not set to 1.Enable external language translation by configuring MD 18800 to 1.
SiemensAlarm 61001Thread lead or pitch parameters in a cycle call contain conflicting or incorrect values.Verify and correct the thread pitch and lead parameters inside the cycle call.
SiemensAlarm 61102Spindle rotation direction M03 or M04 is missing during cycle execution.Program M03 or M04 before calling the threading cycle.

Application Note

A ruined scrap part with corrupted thread pitch is the direct consequence of failing to disable constant surface speed (G96) and activate constant spindle speed (G97) before executing G35. When G96 remains active, radial movement of the tool nose causes the spindle speed to fluctuate dynamically. This fluctuation generates encoder-to-servo lag (servo lag) that breaks the synchronization between the spindle encoder and the axial feed drive, resulting in inaccurate lead spacing. Additionally, because the feed hold key and feedrate override switch are ignored during threading, pressing feed hold does not stop the axis immediately; the tool turret continues moving until it exits the block. If a coordinate shift error drives the tool path too close to the rotating spindle chuck or chuck jaws, this inability to halt the motion will lead to a hard collision where the toolholder or turret slams into the workpiece clamps, shattering the carbide insert, bending the spindle, and triggering an axis overload alarm.

Related Command Network

  • G33: Thread cutting with constant lead, providing the baseline lead synchronization before variable pitch changes are applied.
  • G34: Progressive pitch thread cutting (linear pitch increase), which serves as the counterpart to G35 degressive threading.
  • G25: Lower working area limitation command, used to define software boundaries to protect the turret and other machine parts.
  • DITS / DITE: Used to program the run-in and run-out paths directly in the part program, updating setting data SD 42010.
  • G290 / G291: Used to toggle the controller parser between native Siemens and ISO Dialect modes.
  • G64: Continuous-path mode programmed to link multiple thread blocks smoothly without velocity jumps at transitions.

Conclusion

Ensuring thread pitch integrity and avoiding tool collisions during G35 degressive threading requires strict adherence to constant spindle speed control and pre-calculated safety clearances. Programmers must enforce G97 mode to eliminate servo lag and define software limit coordinates using G25 and G26 commands. Verification of the run-in ramp using DITS is essential to ensure the feed axis has enough distance to achieve synchronization before engaging the workpiece.

FAQ

Why does my SINUMERIK control trigger Alarm 22280 during G35 execution?

Alarm 22280 indicates that the programmed run-in path (DITS) is too short for the axis to reach synchronous speed, causing an acceleration overload. To correct this, increase the DITS distance in your program or adjust machine data MD 11411 to modify the alarm output behavior.

Can I pause a G35 degressive thread cutting cycle using the feed hold key?

No, feed hold is disabled during thread cutting to protect the tool and workpiece from catastrophic pitch mismatches. In an emergency, the only way to stop the movement immediately is by pressing the Emergency Stop button; otherwise, the axis will continue to the end coordinate of the next non-threading block.

How do I switch the SINUMERIK control between native Siemens and ISO Dialect modes for threading?

Program G290 to switch the interpreter to native Siemens mode (supporting G35 and F-based change rates) or program G291 to switch to ISO Dialect mode (supporting G34 with a negative K value). Ensure option parameter MD 18800 is set to 1 to enable the ISO translation interface.

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