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.
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 Feature | Specification |
|---|---|
| Command Code | G35 |
| Modal Group | Group 01, Modal |
| Brands | Siemens |
| Critical Parameters | F (degressive thread pitch change rate in mm/rev2 or inch/rev2), SF= (starting angle offset for multi-start threads) |
| Main Constraint | Spindle 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
| Parameter | Programming Mode | Description | Value Range |
|---|---|---|---|
X, Y, Z | Siemens Mode | Cartesian coordinates of the thread physical endpoint, programmed as absolute (G90) or incremental (G91) values. | Coordinate range |
I, J, K | Siemens Mode | Nominal starting thread pitch (lead) specified parallel to the X, Y, and Z axes respectively. | Dimension in mm or inches |
F | Siemens Mode | Degressive thread pitch change rate in mm/rev2 or inch/rev2. | Numeric value |
SF= | Siemens Mode | Start 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 Mode | Absolute (X, Z) or incremental (U, W) end point coordinates of the thread. | Coordinate range |
F | ISO Dialect Mode | Nominal starting thread lead. | Dimension in mm or inches |
K | ISO Dialect Mode | Thread 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 / Option | SINUMERIK 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 Cycle | Supported (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
| Brand | Alarm Code | Trigger Condition | Operator Fix |
|---|---|---|---|
| Siemens | Alarm 14800 | G35 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. |
| Siemens | Alarm 22280 | Programmed 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. |
| Siemens | Alarm 61800 | External 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. |
| Siemens | Alarm 61001 | Thread 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. |
| Siemens | Alarm 61102 | Spindle 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.

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