Machining cycles
Machine
The control’s full range of functions is available only if the Z tool axis is used (e.g., PATTERN DEF).
Restricted use of the tool axes X and Y is possible when prepared and configured by the machine manufacturer.
General information

Cycles are stored on the control as subprograms. The cycles can be used to execute different machining operations. This greatly simplifies the task of creating programs. The cycles are also useful for frequently recurring machining operations that comprise several working steps. Most cycles use Q parameters as transfer parameters. The control provides cycles for the following technologies:
- Drilling processes
- Thread machining
- Milling operations such as pockets, studs or even contours
- Cycles for coordinate transformation
- Special cycles
- Turning operations
- Grinding operations
Notice
Danger of collision!
Cycles execute extensive operations. Danger of collision!
- Simulate your program before executing it
Notice
Danger of collision!
You can program variables as input values in HEIDENHAIN cycles. Using variables outside of the recommended input ranges can lead to collisions.
- Only use the input ranges recommended by HEIDENHAIN
- Pay attention to the HEIDENHAIN documentation
- Check the machining sequence using a simulation
Optional parameters
The comprehensive cycle package is continuously further developed by HEIDENHAIN. Every new software version thus may also introduce new Q parameters for cycles. These new Q parameters are optional parameters, which were not all available in some older software versions. Within a cycle, these parameters are always provided at the end of the cycle definition. The section New functions 81762x-17 gives you an overview of the optional Q parameters that have been added in this software version. You can decide for yourself whether you would like to define optional Q parameters or delete them with the NO ENT key. You can also adopt the default value. If you have accidentally deleted an optional Q parameter or if you would like to extend cycles in your existing NC programs, you can add optional Q parameters in cycles where needed. The following steps describe how this is done.
- Proceed as follows:
- Call the cycle definition
- Press the right arrow key until the new Q parameters are displayed
- Confirm the displayed default value
- Enter a value
- To load the new Q parameter, exit the menu by selecting the right arrow key once again or by selecting the END button
- If you do not wish to load the new Q parameter, press the NO ENT key
or
Compatibility
Most NC programs created with older HEIDENHAIN controls (as of TNC 150 B) can be run with the new software version of the TNC7. Even if new optional parameters have been added to existing cycles, you will generally be able to run your NC programs as usual. This is achieved because the stored default value will be used. The other way around, if you want to run an NC program created with a new software version on an older control, you can delete the respective optional Q parameters from the cycle definition with the NO ENT key. In this way you can ensure that the NC program is downward compatible. If NC blocks contain invalid elements, the control will mark them as ERROR blocks when the file is opened.
Defining cycles
Cycles can be defined in several ways.
Inserting via NC function:
![]() |
|
Inserting via the CYCL DEF key:
|
Key | Function |
---|---|
Navigation within the cycle: Jump to next parameter | |
Navigation within the cycle: Jump to previous parameter | |
Jump to the same parameter in the next cycle | |
Jump to the same parameter in the previous cycle |
Tip
The control provides selection possibilities for the different cycle parameters via the action bar or the form.
If an input option specifying a defined behavior is stored in particular cycle parameters, you can open a selection list with the GOTO key or in the form view. For example in cycle 200 DRILLING, the Q395 DEPTH REFERENCE parameter provides the selection possibility:
- 0 | Tool tip
- 1 | Cutting edge corner
Cycle input form
The control provides a FORM for various functions and cycles. This FORM allows you to enter various syntax elements or cycle parameters.

The control allocates the cycle parameters in the FORM to groups based on their functions, e.g. geometry, standard, advanced, safety. The control provides selection possibilities for different cycle parameters via switches, for example. The control displays the currently edited cycle parameter in color.
After you have defined all required cycle parameters, you can confirm your input and conclude the cycle.
Opening the form:
| ||
| ||
|
Tip
If an input is invalid, the control displays an information symbol ahead of the syntax element. When you select the information symbol, the control displays information on the error.
Help graphics
When you are editing a cycle, the control shows a help graphic for the current Q parameters. The size of the help graphic depends on the size of the Program workspace area.
The control shows the help graphic at the right edge of the workspace, or at the top or bottom edge. The help graphic is positioned in the half that does not contain the cursor.
When you tap or click on the help graphic, the control maximizes the help graphic.
If the Help workspace is active, then the control displays the help graphic in it rather than in the Program workspace.

Calling cycles
For cycles that remove material, you have to enter not only the cycle definition, but also the cycle call in the NC program. The call always refers to the fixed cycle that was last defined in the NC program.
Requirements
- Before calling a cycle, be sure to program:
- BLK FORM for graphic display (only required for simulation)
- Tool call
- Spindle direction of rotation (miscellaneous function M3/M4)
- Cycle definition (CYCL DEF)
Tip
- For some cycles, additional requirements must be observed. They are detailed in the descriptions and overview tables for each cycle.
You can program the cycle call in the following ways.
Option | Further information |
---|---|
CYCL CALL | |
CYCL CALL PAT | |
CYCL CALL POS | |
M89/M99 |
Calling a cycle with CYCL CALL
The CYCL CALL function calls the most recently defined fixed cycle once. The starting point of the cycle is the position that was programmed last before the CYCL CALL block.
![]() |
or | |
|
Calling a cycle with CYCL CALL PAT
The CYCL CALL PAT function calls the most recently defined machining cycle at all positions that you defined in a PATTERN DEF pattern definition or in a point table.
Pattern definition with PATTERN DEF
![]() |
or | |
|
Calling a cycle with CYCL CALL POS
The CYCL CALL POS function calls the most recently defined fixed cycle once. The starting point of the cycle is the position that you defined in the CYCL CALL POS block.
![]() |
or | |
|
- Using positioning logic, the control moves to the position defined in the CYCL CALL POS block:
- If the tool’s current position in the tool axis is above the upper edge of the workpiece (Q203), the control first moves the tool to the programmed position in the working plane and then to the programmed position in the tool axis
- If the tool’s current position in the tool axis is below the upper edge of the workpiece (Q203), the control first moves the tool to the clearance height in the tool axis and then to the programmed position in the working plane
Tip
- Programming and operating notes
- Three coordinate axes must always be programmed in the CYCL CALL POS block. Using the coordinate in the tool axis, you can easily change the starting position. It serves as an additional datum shift.
- The feed rate most recently defined in the CYCL CALL POS block is only used to traverse to the start position programmed in this block.
- As a rule, the control moves without radius compensation (R0) to the position defined in the CYCL CALL POS block.
- If you use CYCL CALL POS to call a cycle in which a start position is defined (e.g., Cycle 212), then the position defined in the cycle serves as an additional shift of the position defined in the CYCL CALL POS block. You should therefore always define the start position in the cycle as 0.
Calling a cycle with M89/M99
The M99 function, which is active only in the block in which it is programmed (non-modal function), calls the last defined fixed cycle once. You can program M99 at the end of a positioning block. The control moves to this position and then calls the last defined machining cycle.
If the control is to execute the cycle automatically after every positioning block, program the first cycle call with M89.
- To cancel the effect of M89, proceed as follows:
- Program M99 in the positioning block
- The control moves to the last starting point.
- Define a new machining cycle with CYCL DEF
or
Defining and calling an NC program as cycle
With SEL CYCLE, you can define any NC program as a machining cycle.
Defining an NC program as a cycle: | ||
![]() |
| |
Calling an NC program as a cycle: | ||
or |
Tip
- If the called file is located in the same directory as the file you are calling it from, you can also integrate the file name without the path.
- Please note that CYCL CALL PAT and CYCL CALL POS use positioning logic before executing the cycle. With respect to the positioning logic, SEL CYCLE and Cycle 12 PGM CALL show the same behavior. In point pattern cycles, the clearance height is calculated based on:
- the maximum value of all Z positions at the starting point of the pattern
- all Z positions in the point pattern
- With CYCL CALL POS, there will be no pre-positioning in the tool axis direction. This means that you need to manually program any pre-positioning in the file you call.
Machine-specific cycles
Machine
Refer to your machine manual for a description of the specific functionality.
Cycles are available for many machines. Your machine manufacturer can implement these cycles into the control, in addition to the HEIDENHAIN cycles. These cycles are available in a separate cycle-number range:
Cycle-number range | Description |
---|---|
300 to 399 | Machine-specific cycles that are to be selected through the CYCL DEF key |
500 to 599 | Machine-specific touch probe cycles that are to be selected through the TOUCH PROBE key |
Notice
Danger of collision!
HEIDENHAIN cycles, machine manufacturer cycles and third-party functions use variables. You can also program variables within NC programs. Using variables outside the recommended ranges can lead to intersections and thus, undesired behavior. Danger of collision during machining!
- Only use variable ranges recommended by HEIDENHAIN
- Do not use pre-assigned variables
- Comply with the documentation from HEIDENHAIN, the machine manufacturer and third-party providers
- Check the machining sequence using the simulation
Available cycle groups
Machining cycles
Cycle group | Further information | |
---|---|---|
Drilling/Thread | ||
| ||
| ||
Pockets/studs/slots | ||
| ||
Coordinate transformations | ||
| ||
SL cycles | ||
| ||
| ||
| ||
Point patterns | ||
| ||
Turning cycles | ||
| ||
Special cycles | ||
| ||
Grinding cycles | ||
|
Measuring cycles
Cycle group | Further information | |
---|---|---|
Rotation | ||
| ||
Preset/Position | ||
| ||
Measuring | ||
| ||
Special cycles | ||
| ||
Calibrating the touch probe | ||
| ||
Measuring kinematics | ||
| ||
Measuring the tool (TT) | ||
|