Nothing Special   »   [go: up one dir, main page]

Millplus It: Programming Manual V600-02

Download as pdf or txt
Download as pdf or txt
You are on page 1of 535

Programming Manual

V600-02

MillPlus IT
NC Software
538 952-xx
538 953-xx
538 954-xx
538 955-xx
538 956-xx

English (en)
11/2008
Controls on the visual display unit Manual operation
Select window Axis-direction keys for three main axes

User keys Axis-direction keys for further axes

I Info key Axis-direction keys for 4th axis


I
Function soft keys Rapid traverse
Machine-function soft keys
Keys for main operating modes 10 50 100

1 50 150
Rapid traverse override/feed rate override
100
Manual operating mode 0 0

Emergency stop
Automatic operating mode

NC on
Programming operating mode
Start / stop keys
Control (Setup) operating mode START

Keys for machine functions


Feed rate STOP
Key freely assignable via IPLC
Feed rate and spindle STOP
Key freely assignable via IPLC
Touchpad
Key freely assignable via IPLC Positioning of the mouse cursor
Selection and context buttons
Key freely assignable via IPLC ASCII keyboard (NC functionality)
Menu key: Open a menu from the menu row
Keys for spindle functions
Spindle speed 100% ALT key: Open a menu from the menu row

Increase spindle speed


Apps key: Open context menus

Decrease spindle speed


Windows key: Switch to Windows
applications
Spindle on, CCW
Clear key: Clear error messages
Spindle stop

Spindle on, CW
MillPlus V600, Software and
Features
The MillPlus IT is designed for use with milling, drilling, boring and
machining centers, as well as for use with mold machines. The
MillPlus IT can also be traversed manually for simple machining
operations.
Different types of aid are available to the programmer: dialog entry,
Function Explorer, context-sensitive online help, graphic simulation,
etc.
This Manual describes the programming language of the MillPlus and
all G function that are available in MillPlus V600 as of NC software
number 538 952-xx.
This Manual may include references to functions that are not yet
available in this software version. These references are reserved for
later software updates.

Some functions are not yet described completely in this


version of the Programming Manual.

Machine configuration
The machine manufacturer adapts the features offered by the MillPlus
to the capabilities of the specific machine via configuration data. Some
of the functions described in this manual may therefore not be among
the features provided by the MillPlus on your machine tool.
Please contact your machine manufacturer for detailed information on
the features that are supported by your machine tool.
The machine manufacturer and HEIDENHAIN offer programming
courses for the MillPlus. We recommend these courses as an
effective way of improving your programming skill and sharing
information and ideas with other MillPlus users.

Intended place of operation


The MillPlus V600 complies with the limits for a Class A device in
accordance with the specifications in EN 55022, and is intended for
use primarily in industrially-zoned areas.

HEIDENHAIN MillPlus V600 3


Changes compared with V5xx
During the development of the new MillPlus version V600, care was
taken to keep the MillPlus language compatible with earlier versions.
With the new developments, however, some new features have been
added and some G functions or their sequences have been changed.
In this chapter you will find an overview of the most important
changes.

New functions
„ G242 Contour advance calculation: ON
„ G251-G269 Contour programming
„ G270-G277 Limit level and zoning level
„ G280-G286 Contour milling cycles
„ High-level language (If..then, While... )

Functions that are not available anymore


„ G5 Synchronize CNC and PLC (for OEM only).
„ G66 Selection of negative tool direction
„ G67 Selection of positive tool direction
„ G106, G108 Kinematic model
„ G241 Contour monitoring: ON

Functions that are not yet available


„ G8 Correct tool
„ G26 Feed rate and spindle override not effective
„ G52 Activate pallet datum shift
„ G63 Cancel geometry calculation
„ G125 Retract tool in the event of interruption: OFF
„ G126 Retract tool in the event of interruption: ON
„ G148 Query touch probe status
„ G180-G182 Cylinder interpolation
„ G195-G199 Definition of graphics
„ G606-G610 TT: Measure tool
„ G631-G642 Measure workpiece

Modified G functions
Some of the G functions were modified in respect of programming or
sequence. For a list of the modifications, refer to Chapter “Changed
G-functions” on page 491.

4
Contents Introduction
1
Technology
2
Programming
3
Function Explorer
4
G0-G99 G Functions
5
G100-G199 G Functions
6
G200-G299 G Functions
7
G300-G399 G Functions for Macros
8
G600-G699 Measuring Cycles
9
G700-G799 Milling Cycles
10
G800-G899 Turning Cycles
11
G1000-G1999 Macro Functions
12
Modified G Functions
13

HEIDENHAIN MillPlus V600 5


6
1 Introduction ..... 17
1.1 Introduction ..... 18
1.2 About These Instructions ..... 19

2 Technology ..... 21
2.1 F Functions ..... 22
Description of the feed rate addresses 22
F, F3=, F4= Feed rate and direction of movement 22
F1=, Constant cutting feed rate for radius compensation of circles 23
F3=, F4= Plunging feed rate/feed rate in a plane 24
F5= Feed unit for rotary axes 24
F6= Blockwise feed rate 24
2.2 S Functions ..... 25
Format 25
Application 25
2.3 M Functions ..... 26
M0/M1 Program stop, optional program stop 26
M3/M4/M5 spindle ON clockwise/counterclockwise/spindle stop 27
M6 Automatic tool change 27
M66 Automatic tool change 29
M67 Changing the tool data 30
M7/M8/M9/M13/M14 Coolant supply on/off 31
M19 Oriented spindle stop 32
M30 End of part program 33
M41/M42/M43/M44 Selecting the spindle speed range 34
2.4 T Function Tool Table ..... 35
Tool life monitoring 37

HEIDENHAIN MilPlus IT 7
3 Programming ..... 39
3.1 General Programming Information ..... 40
Part programs 40
Program words 40
Program blocks 42
3.2 Creating a Part Program ..... 43
Structure of a part program 43
Program editor 43
3.3 Datums ..... 44
Machine datum (M0) 44
Pallet datum (M1) 45
Workpiece datum (W) 45
Program datum (W1) 45
3.4 Axis Configurations on Machine Tools ..... 46
Axis configurations 46
Coordinate system 46
Cartesian coordinates 47
Polar coordinates 48
Mixture of coordinates 49
G7 coordinates 50
3.5 E Parameters ..... 51
Format 51
Cancel 51
Quantity of parameters 51
Address 51
Parameter number (E) 51
Using a parameter in several programs 52
Parameter types 52
Input accuracy 52
Displaying the parameter table 52
3.6 String (ES) Parameters ..... 53
Format 53
Cancelation 53
Quantity of parameters 53
3.7 Operators ..... 54
Trigonometric functions 59
Relational operators 61
Logical operators 62
3.8 High-Level Language ..... 67
Operators 67
Like 73
Call 78
GoTo 79
If...Then...Else 80

8
4 Function Explorer ..... 85
4.1 Milling Functions ..... 86

5 G0-G99 G Codes ..... 93


5.1 G0 Rapid Traverse ..... 94
5.2 G1 Linear Interpolation ..... 97
5.3 G2 Circular CW ..... 101
5.4 G3 Circular Counter-Clockwise ..... 106
5.5 G4 Dwell Time ..... 107
5.6 G7 Tilting Working Plane ..... 108
5.7 G8 Tilting Tool Orientation ..... 117
5.8 G9 Define Pole Position ..... 122
5.9 G11 Linear Chamfer Rounding Cycle ..... 125
5.10 G14 Repeat Function ..... 131
5.11 G17 Main Plane XY, Tool Z ..... 133
Turning 134
5.12 G18 Main Plane XZ, Tool Y ..... 135
Turning 136
5.13 G19 Main Plane YZ, Tool X ..... 137
5.14 G22 Subprogram Call ..... 138
5.15 G23 Program Call ..... 140
5.16 G25 Enable Feed/Speed Override ..... 142
5.17 G26 Disable Feed/Speed Override ..... 143
5.18 G27 Reset Positioning Functions ..... 145
5.19 G28 Positioning Functions ..... 146
5.20 G29 Jump Function ..... 148
5.21 G31 Tapping with Chip Breaking ..... 150
5.22 G37 Milling Operation ..... 153
5.23 G39 Tool Offset Change ..... 154
5.24 G40 Cancel Tool Radius Compensation ..... 157
5.25 G41 Tool Radius Compensation, Left ..... 158
5.26 G42 Tool Radius Compensation, Right ..... 162
5.27 G43 Tool Radius Compensation to End Point ..... 164
5.28 G44 Tool Radius Compensation Past End Point ..... 166
5.29 G45 Measuring a Point ..... 167
Measuring tool dimensions G45 + M25 169
5.30 G46 Measuring a Circle ..... 170
G46 + M26 Calibrating the touch probe 172
5.31 G49 Checking on Tolerances ..... 173
5.32 G50 Processing Measuring Results ..... 175
5.33 G51 Cancel Pallet Zero Point Shift ..... 180
5.34 G52 Activate Pallet Zero Point Shift ..... 181
5.35 G53 Cancel G54-G59 Zero Point Shift ..... 183
5.36 G54 - G59 Activate Zero Point Shift ..... 184

HEIDENHAIN MilPlus IT 9
5.37 G61 Tangential Approach ..... 188
5.38 G62 Tangential Exit ..... 191
5.39 G63 Cancel Geometric Calculations ..... 193
5.40 G64 Activate Geometric Calculations ..... 194
Basic functions 194
Straight line 196
Chamfer 200
Circles 201
Rounding arcs 203
Points of intersection 203
Non-flowing transitions 205
5.41 G70 Inch Programming ..... 208
5.42 G71 Metric Programming ..... 209
5.43 G72 Cancel Mirror Image and Scaling ..... 210
5.44 G73 Mirror Image and Scaling ..... 211
5.45 G74 Absolute Position Approach ..... 213
5.46 G77 Bolt Hole Circle ..... 216
5.47 G78 Point Definition ..... 219
5.48 G79 Cycle Call ..... 221
5.49 G81 Drilling/Centering ..... 223
5.50 G83 Deep-Hole Drilling ..... 225
5.51 G84 Tapping ..... 228
5.52 G85 Reaming ..... 230
5.53 G86 Boring ..... 232
5.54 G87 Pocket Milling ..... 234
5.55 G88 Key-Way Milling ..... 236
5.56 G89 Circular Pocket Milling ..... 238
5.57 G90 Absolute Programming ..... 240
5.58 G91 Incremental Programming ..... 242
5.59 G92 Zero Point Shift Incr./Rotation ..... 244
5.60 G93 Zero Point Shift Abs./Rotation ..... 246
5.61 G94 Feed in mm/min (inch/min) ..... 248
5.62 G95 Feed in mm/rev (inch/rev) ..... 250
5.63 G97 Spindle Speed ..... 251
5.64 G98 Graphic Window Definition ..... 252
5.65 G99 Graphic Material Definition ..... 253

10
6 G100-G199 G-Codes ..... 255
6.1 G125 Lifting Tool on Intervention: OFF ..... 256
6.2 G126 Lifting Tool on Intervention: ON ..... 257
6.3 G141 3D Tool Correction ..... 261
6.4 G145 Linear Measuring Movement ..... 268
6.5 G148 Read Measure Probe Status ..... 272
6.6 G149 Read Tool- or Zero Offset Values ..... 274
Querying tool data 274
Querying Zero Offset Values 277
6.7 G150 Change Tool- or Zero Offset Values ..... 280
Changing of tool data 280
Changing Zero Offset Values 282
6.8 G151 Cancel G152 ..... 283
6.9 G152 Limiting the Traverse Ranges ..... 284
6.10 G153 Correct Workpiece Zero Point: OFF ..... 286
6.11 G154 Correct Workpiece Zero Point: ON ..... 287
6.12 G174 Tool Retract Movement ..... 289
6.13 G179 ContourCycle Call ..... 291
6.14 G180 Cancel Cylinder Interpolation ..... 292
6.15 G182 Activate Cylinder Interpolation ..... 294
6.16 G195 Graphic Window Definition ..... 297
6.17 G196 End Graphic Model Description ..... 298

HEIDENHAIN MilPlus IT 11
7 G200-G299 G-Codes ..... 299
7.1 G240 Contour Pre-Calculation: OFF ..... 300
7.2 G242 Contour Pre-Calculation: On ..... 301
7.3 G251-G269 Contour Programming ..... 302
7.4 G251 Free Linear Movement ..... 307
7.5 G252 Free Circular Movement, CW ..... 308
7.6 G253 Free Circular Movement, CCW ..... 310
7.7 G261 Free Linear Movement, Tangential ..... 311
7.8 G262 Free Circular Movement, CW, Tangential ..... 312
7.9 G263 Free Circular Movement, CCW, Tangential ..... 313
7.10 G265 Free Chamfer ..... 314
7.11 G266 Free Rounding ..... 315
7.12 G269 Free Contour Selection ..... 316
7.13 G270 Disables Limit Planes ..... 317
7.14 G271 Enables Defined Limit Planes ..... 318
7.15 G272 Definition of Lower Limit Plane ..... 319
7.16 G273 Definition of Upper Limit Plane ..... 321
7.17 G275 Zoning Planes: Disable ..... 323
7.18 G276 Zoning Planes: Enable ..... 324
7.19 G277 Zoning Planes: Define ..... 325
7.20 G280-G286 Contour Milling Cycles ..... 327
Entering a contour formula 328
Superimposed contours 329
Area of inclusion (joined with) 330
Area of intersection (intersected with) 331
Area of inclusion without intersection (joined with but without intersection) 331
7.21 G280 End Contour Milling ..... 334
7.22 G281 Begin Contour Milling ..... 335
7.23 G282 Contour Definition Program ..... 336
7.24 G283 Contour Data Definition ..... 337
7.25 G284 Contour Pilot Drilling ..... 338
7.26 G285 Contour Roughing ..... 340
7.27 G286 Contour Finishing ..... 342

12
8 G300-G399 G-Codes for Macros ..... 345
8.1 Specific G Codes for Macros ..... 346
Overview of G codes for macros 346
Overview of G codes for installation purposes 346
8.2 G300 Program Error Call ..... 347
8.3 G303 M19 with Programmable Direction ..... 348
8.4 G305 Synchronize CNC and PLC ..... 349
8.5 G319 Read Actual Technology Data ..... 350
8.6 G320 Read Actual G Data ..... 351
8.7 G321 Read Tool Data ..... 354
8.8 G322 Read Machine Constant Memory ..... 356
8.9 G323 Read Cycle Data ..... 357
8.10 G324 Read G Group ..... 358
8.11 G326 Read Actual Position ..... 360
8.12 G327 Read Operation Mode ..... 362
8.13 G328 Read IPLC Marker or I/O ..... 363
8.14 G329 Read Offset from Kinematic Model ..... 365
8.15 G331 Write Tool Data ..... 368
8.16 G338 Write IPLC Marker or I/O ..... 370
8.17 G339 Write Offset in Kinematic Model ..... 371
8.18 G380 Protection Zones ..... 373

HEIDENHAIN MilPlus IT 13
9 G600-G699 Measuring Cycles ..... 375
9.1 Tool Measuring Cycles for Laser Measurements ..... 376
General notes and usage 376
Availability 376
Programming 376
Machine parameters 376
9.2 Tool Measuring Cycles for Tool Touch Probe Measuring Systems ..... 377
General Notes on Tool Touch Probe Measuring Systems 377
9.3 Measuring Cycles ..... 378
Introduction to measuring cycles 378
9.4 G620 Angle Measurement ..... 381
9.5 G621 Position Measurement ..... 384
9.6 G622 Corner Outside Measurement ..... 386
9.7 G623 Corner Inside Measurement ..... 388
9.8 G626 Datum Outside Rectangle ..... 390
9.9 G627 Datum Inside Rectangle ..... 392
9.10 G628 Circle Measurement Outside ..... 394
9.11 G629 Circle Measurement Inside ..... 397
9.12 G631 Measure Inclined Plane ..... 400
9.13 G633 Angle Measurement 2 Holes ..... 402
9.14 G634 Measurement Center 4 Holes ..... 404
9.15 G636 Circle Measurement Inside (CP) ..... 407
9.16 G638 Touch Probe Calibration on Ball ..... 410
9.17 G639 Touch Probe Calibration ..... 413

14
10 G700-G799 Milling Cycles ..... 417
10.1 Machining and Positioning Cycles ..... 418
Overview of machining and positioning cycles 418
Introduction 419
10.2 G700 Face Turning ..... 421
10.3 G730 Multipass Milling ..... 424
10.4 G740 Thread Milling Inside ..... 426
10.5 G741 Thread Milling Outside ..... 429
10.6 G771 Operation on Line ..... 430
10.7 G772 Operation on Quadrangle ..... 432
10.8 G773 Operation on Grid ..... 434
10.9 G777 Operation on Circle ..... 436
10.10 G781 Drilling/Centring ..... 438
10.11 G782 Deep-Hole Drilling ..... 440
10.12 G783 Deep-Hole Drill. Add Chip Break ..... 443
10.13 G784 Tapping ..... 445
10.14 G785 Reaming ..... 447
10.15 G786 Boring ..... 449
10.16 G787 Pocket Milling ..... 451
10.17 G788 Key-Way Milling ..... 453
10.18 G789 Circular Pocket Milling ..... 456
10.19 G790 Back-Boring ..... 458
10.20 G794 Tapping, Interpolated ..... 461
10.21 G797 Pocket Finishing ..... 463
10.22 G798 Key-Way Finishing ..... 465
10.23 G799 Circular Pocket Finishing ..... 467

HEIDENHAIN MilPlus IT 15
11 G800-G899 Turning Cycles ..... 469
11.1 Turning Cycles ..... 470
Reserved for turning cycle extensions 470
These cycles will appear in a future version. 470

12 G1000-G1099 G-Codes for Macros ..... 471


12.1 G1010 Edit Function for SQL tables ..... 472
12.2 G1016 Export Formatted Text and E Parameter ..... 476
12.3 G1017 Write NC System Data ..... 479
12.4 G1018 Read NC System Data ..... 483
12.5 G1019 Define up to Two PLC values ..... 486
12.6 G1022 Activate Tool Exchange in PLC ..... 487
12.7 G1029 Define up to eight PLC values ..... 490

13 Changed G-functions ..... 491


13.1 Description of changed G-functions with respect to version V500-V530 ..... 492

16
Introduction
1.1 Introduction
1.1 Introduction

Dear customer,
These instructions are intended to support you while programming the
MillPlus IT control.
The machine may only be operated—even if it is just temporarily—by
properly trained personnel. The training can be provided by the
company itself, institutes for advanced vocational training or by one of
the training centers.
Please read the notes regarding proper use.
The control is interfaced with the machine via the machine
configurations. Some of these configurations can be accessed by the
operator. Caution! Before changing any configuration settings, be sure
that you understand the meanings and functions thereof. Otherwise
please contact the Customer Service.
The user should always back up his programs and specific data (e.g.
technology data, machine configurations etc.) on a PC or other
memory space to prevent data from being lost irretrievably should the
system be defective.
We reserve the right to make changes to the design, features and
accessories as part of further development. Therefore, no claims may
be derived from the data, descriptions or images. Errors and
omissions excepted.

© Heidenhain Numeric B.V. Eindhoven, Netherlands 2008


The publisher accepts no liability with regard to specifications, based
on the information contained in these instructions. Solely the data
contained in the order and the corresponding technical specifications
shall apply to the specifications of this numeric control.
All rights reserved. Reproduction of this material, in whole or in part,
is not allowed without written permission from the copyright holder.

18 1 Introduction
1.2 About These Instructions

1.2 About These Instructions


These instructions provide comprehensive information on NC
programming.
The core of the reference data contained in these instructions is
described in the sections on the G, F, H, M S and T functions. Further
information, such as mathematical operations, formulas and high-level
language are explained.

G functions
These functions are used to prepare the CNC machine tool for the
programming instructions. They are called "preparatory functions". The
individual sections dealing with the G functions are structured as
follows:
„ G number and brief description Brief description of the G function
and its application.
„ Address description The address words that define the effective
range of the function or the words that can be programmed when
the function is active.
„ Address name (e.g. G0)
„ Brief description of address
„ Explanation of the address with a list of the entry options
„ Format The applicable conventions:
„ Example: G... address..... {address.....}
„ Address..... = mandatory
„ {Address....} = optional
„ E, F, S, T and M are not entered in the format.
„ Mutual dependencies are not shown.
„ Default Basic values that are predefined in the CNC.
„ Application Comments and notes on the use of functions and the
circumstances.
„ Sequence Description of the sequence of the individual steps of a
function.
„ Example Practical examples illustrating the use of a function.

F functions
This function specifies the feed rate types.

HEIDENHAIN MillPlus V600 19


H functions
1.2 About These Instructions
The machine tool builder assigns special tasks to these functions. For
information on how to use these help functions, please refer to the
respective documentation of the machine tool builder.

M functions
These functions have a direct effect on machine operation, e.g.
coolant supply on/off.

S functions
This function specifies the spindle speed in rpm.

T functions
This function specifies the number for tool selection and storage of its
dimensions in the CNC tool memory.

20 1 Introduction
Technology
2.1 F Functions
2.1 F Functions

Setting the feed rate in mm per minute (mm/min) or revolution (mm/


rev). The feed rate actually used in practice is determined by different
factors such as the material, machining method and tool.

Description of the feed rate addresses


„ F Generally applicable feed rate for axis motions with G1/2/3, not for
G0
„ F1= Selecting the constant cutting feed rate for radius
compensation of circles
„ F2= Retraction feed rate with G85, infeed rate with G87-G89 or
measuring feed rate with G145
„ F3= Feed rate for a (negative) infeed movement (plunge)
„ F3= Feed rate for movements in a plane
„ F5= Feed unit for rotary axes
„ F6= Blockwise feed rate.

Type of function
„ Modal: F, F1=, F3=, F4=, F5=
„ Blockwise: F2=, F6=

F, F3=, F4= Feed rate and direction of movement


For technological reasons it is necessary to adjust the feed rate
carefully to the milling process when executing milling operations. The
technological conditions for milling in radial direction are different from
the conditions for milling in axial direction, for example.
The user can program modally and independently with two feed rate
values, i.e. F3= and F4=.
The feed rates F, F3= and F4= are modal.
„ 0... 99999 [mm/min] for metric programming
„ 0... 9999.9 [inch/min] for programming in inches.
If F, F3= and F4= are programmed in one block, F3= and F4= are of
higher priority than F.

Default setting
F3=0, F4=0 and F = 0

22 2 Technology
Delete

2.1 F Functions
After M30 or by pressing the Reset CNC or Cancel Program soft key,
F F3= and F4= are set to zero.

Maximum feed rate


The maximum feed rate depends on the machine.
Refer to the machine configuration for the maximum feed rate that can
be used on the machine tool.

F1=, Constant cutting feed rate for radius


compensation of circles
The F1= parameter is used to keep the programmed feed rate
constant on the workpiece contour, regardless of the milling radius
and shape of the contour. This controlled speed is called constant
cutting feed rate.

F1=0
No constant cutting feed rate (start-up condition, M30, Cancel
Program soft key or Reset CNC soft key). The programmed feed rate
should reflect the speed of the tool tip. (See Figure 2.)
„ * Cutting feed rate too high
„ ** Cutting feed rate too low

F1=1
Constant cutting feed rate only on the inside of circular arcs. The
programmed feed rate is reduced to ensure that the tool tip moves
along the inside of a circular arc at the reduced speed. (See figure.)

F1=2
Constant cutting feed rate on the inside and outside of circular arcs.
The programmed feed rate is reduced (inside of circular arc) or
increased (outside of circular arc) to ensure that the tool tip moves at
the recalculated speed. If the increased speed is higher than the
maximum feed rate defined via the machine configuration, the
maximum feed rate will be used. (See figure.)

HEIDENHAIN MillPlus V600 23


F1=3
2.1 F Functions
Constant cutting feed rate only on the outside of circular arcs. The
programmed feed rate is increased to ensure that the tool tip moves
along the outside of a circular arc at the increased speed. If the
increased speed is higher than the maximum feed rate defined via the
machine configuration, the maximum feed rate will be used. (See
figure.)

F3=, F4= Plunging feed rate/feed rate in a plane


In Cycles G81, G83, G85 and G86, the movement in "axial" direction is
not an infeed movement but a feed movement in a plane so that it is
programmed with F/F4= and not with the feed rate F3=.
In Cycles G87, G83, and G89, the infeed movement can be
programmed blockwise with F2=, for a modally active infeed rate with
F3=.
In cycles, F3= is used as infeed rate.
If there is no feed rate or if the feed rate is 0 (e.g. F3= 0 or F4=0 or F
0), an error message is generated. No feed rate programmed.

F5= Feed unit for rotary axes


With G94 F5= you define the unit of the modal feed rate.

G94 F5=0 degree/min (default setting)


G94 F5=1 mm/min or in./min.
With F5=1 the speed on the current rotary axis radius is calculated.
This is the distance from the tool to the center of the rotary axis.

Switching off G94 F5=1


G94 F5=1 is canceled with G94 F5=0, G95, M30, the Reset CNC soft
key or the Cancel Program soft key.

F6= Blockwise feed rate


F6= is a local feed rate and only active in a block in which this feed rate
is programmed.

Movement at rapid traverse


F6= in a G0 block limits the movement at rapid traverse.

24 2 Technology
2.2 S Functions

2.2 S Functions
Setting the speed of the main spindle (S) or the second spindle (or
rotary table) (S1=) in revolutions per minute (rpm).

Format
{S...} {S1=...}

Application
Maximum speed
The maximum speeds of the first and second spindle are defined in
the machine configuration.

Direction of spindle rotation


For programming the direction of spindle rotation, refer to the
description of M3/M4.

Spindle speed ranges


For selecting a spindle speed range, refer to the description of M41/
M42/M43/M44.

HEIDENHAIN MillPlus V600 25


2.3 M Functions
2.3 M Functions

Most of the available M functions depend on the PLC


program. For a description of the M functions that are not,
or only partly, described here, refer to the machine
documentation.

M0/M1 Program stop, optional program stop


M0 Interruption of program execution
M1 Optional program stop

Application
The stop at M1 is only executed, however, if the Selective Wait soft key
is active.

Activate
M0/M1 is activated when the current tool movement programmed in
the same block has been executed.

Spindle speed and coolant supply


Depending on the PLC program, the spindle speed and coolant supply
are also suppressed and/or switched off.
Suppressed means that the spindle and coolant supply are switched
on again when the program execution is continued.

26 2 Technology
2.3 M Functions
M3/M4/M5 spindle ON clockwise/
counterclockwise/spindle stop
M3 Spindle ON clockwise (CW)
M4 Spindle ON counterclockwise (CCW)
M5 Spindle OFF (spindle STOP).

Type of function
M3, M4 and M5 are modal.

Spindle ON (M3/M4)
The spindle is switched on before the tool movement programmed in
the same block is executed. The spindle is only switched on when a
spindle speed (S) has been programmed.

Spindle OFF (M5)


The spindle command M5 is activated when the current tool
movement programmed in the same block has been executed.
The spindle is switched off with M30, the Cancel Program soft key or
the Reset CNC soft key. For oriented spindle stop M19, see M19.

Program stop (M0/M1) or tool change (M6/M66)


Depending on the PLC program, the spindle rotation is suppressed or
switched off at a program stop or tool change.
Suppressed means that the spindle is switched on again when the
program execution is continued.

M6 Automatic tool change


Executing an automatic tool change

The execution depends on the PLC program. For a


description, see the machine documentation.

Format
{T...} {T1=...} {T2=...} M6

T Tool number
T1= Switches cutting force monitoring on and off
T2= Selects additional tool data

Executing the tool change


The tool is changed before the tool movement programmed in the
same block is executed.

Tool change procedure


The M6 command leads to the following operating procedure:
„ The tool first moves at rapid traverse to the change position.
„ The old tool is then replaced by a new one and the compensation
data of the new tool are activated.

HEIDENHAIN MillPlus V600 27


2.3 M Functions Machine tool without automatic tool changer
On machines without an automatic tool changer, M6 is executed like
M66 (manual tool change).
The M6 command leads to the following operating procedure:
„ The tool first moves at rapid traverse to the change position.
„ Program execution is interrupted so that the tool can be changed
manually.

M6 without tool number T


If no T word is programmed in the M6 block, the tool that was last
programmed is inserted and activated. It is recommended that you
always program the tool number T for an M6 tool change.

Replacement tools
The tool table contains, for example, tool T100.00 with the
replacement tools T100.01 and T100.02.
During an automatic tool change (M6), T100.00 is inserted (T100.00
M6). The replacement tool log is now active. If T100.00 is blocked, a
replacement tool is automatically inserted. (T100.01).
During an automatic tool change (M6), T100.01 inserted (T100.01 M6).
The replacement tool log is not active now. If T100.01 is blocked, no
replacement tool is inserted. An error message is generated.
Note:
If tool T100.01 is measured last during tool measurement, the
operator must return the tool to the tool magazine again. If this is not
done and T100.00 M6 is programmed in the new program, tool
T100.00 will not be changed.

Spindle speed and coolant supply


Depending on the PLC program, the spindle rotation and coolant
supply are also suppressed or switched off.
Suppressed means that the spindle and coolant supply are switched
on again when the program execution is continued.

Tool change position


It is advisable to reprogram all linear axes in the block after a tool
change command. This ensures that Manual Block Search and Restart
are always executed in the same way after a program interruption.

Incremental programming after a tool change


With incremental programming the increments refer to the last
programmed position. A tool change position is not regarded as a
programmed position.

Example: Automatic tool change

T12 M6

M6 Automatic tool change: The new tool is inserted and


activated.

28 2 Technology
2.3 M Functions
M66 Automatic tool change
Interrupt the program execution for a manual tool change.

The execution depends on the PLC program. For a


description, see the machine documentation.

Format
{T ...} {T1=...} {T2=...} M66

T Tool number
T1= Switches cutting force monitoring on and off
T2= Selects additional tool data

Using M66
The M66 function is used for tools that are not in the tool magazines.

Executing manual tool changes


The tool is changed before the tool movement programmed in the
same block is executed.

Machine tool without automatic tool changer


M66 is used for tools that are not in the tool magazine
A tool may first have to be removed from the spindle (with T0 M6) and
returned to its place in the magazine.
It may also be necessary to program a return to a position at which the
tool can be inserted.

Manual tool change procedure


The M6 command leads to the following operating procedure:
„ The tool first moves at rapid traverse to the change position.
„ Program execution is interrupted so that the tool can be changed
manually.
M66 interrupts the program execution so that the tool can be changed
manually. The execution depends on the PLC program.
When the tool change is completed, the program execution is
continued by pressing the start button.

Spindle speed and coolant supply


Depending on the PLC program, the spindle speed and coolant supply
are also suppressed or switched off.
Suppressed means that the spindle and coolant supply are switched
on again when the program execution is continued.

Example: Automatic tool change

T24 M66

M66 Interruption of program execution and manual tool


change. The dimensions of tool T24 are activated.

HEIDENHAIN MillPlus V600 29


2.3 M Functions
M67 Changing the tool data
Activating tool data without a tool change.

Format
{T...} {T1=...} {T2=...} M67

T Tool number
T1= Switches cutting force monitoring on and off
T2= Selects additional tool data
Tools with more than one cutting edge
If a tool with more than one cutting edge, e.g. a boring bar, is inserted,
each cutting edge has its own length and radius, which are stored as
additional compensations for the same tool in the tool table.

Activating the tool data


The new tool dimensions are activated before the tool movement
programmed in the same block is executed.

Example: Changing the tool data


The boring bar identified as tool T12 in the illustration has two cutting
edges.
„ Cutting edge 1 with the tool length XS1 is stored in the tool table as
L=XS1,
„ cutting edge 2 with the tool length XS2 as L1=XS2.

T12 M6

T12 T2=1 M67

M6 The boring bar is inserted and the tool data of T12 are
activated.
M67 Changing the tool data from XS1 to XS2. The boring bar is
not changed.

30 2 Technology
2.3 M Functions
M7/M8/M9/M13/M14 Coolant supply on/off
M7 Coolant no. 2 ON, internal coolant supply
M8 Coolant no. 1 ON, external coolant supply
M9 Coolant no. 1 and/or 2 OFF
M13 Coolant no. 1 together with spindle ON clockwise
M13=M3+M8
M14 Coolant no. 1 together with spindle ON counterclockwise
M14=M4+M8

Format
{M7/M8/M9/M13/M14}

Switch-on (M7/M8/M13/M14)
The coolant supply is switched on before the tool movement
programmed in the same block is executed.

Switch-off (M9)
The coolant supply is switched off before the tool movement
programmed in the same block is executed.

M30 Cancel program


The coolant supply is switched off with M30, the Cancel Program soft
key or Reset CNC soft key.

Program stop (M0/M1), spindle stop (M5) or tool change (M6/


M66)
Depending on the PLC program, the coolant supply is suppressed or
switched off at a program stop, spindle stop or tool change.
Suppressed means that the coolant supply is switched on again when
the program execution is continued.

Machine parameters for activation of M13/M14


In order to use the M13 and M14 functions, the CfgPlcMStrobe
machine parameter must be set.

Example: Switching the coolant supply on and off


M7
...
M9
...
M13

M7 Coolant no. 2 ON
M9 Coolant OFF
M13 Coolant no. 1 and spindle ON clockwise

HEIDENHAIN MillPlus V600 31


2.3 M Functions
M19 Oriented spindle stop
Stopping the spindle at a programmed angular position.
See also G303 M19 D... I2=...

Format
M19 {D...}
Angular position (D)
The angular position is measured from a fixed position that is defined
via a machine parameter (CfgReferencing/ref Position).

Spindle speed and direction of rotation


The spindle always moves to the nominal position in a fixed direction
that is defined via a machine parameter (CfgReferencing/refDirection).

+ Spindle speed in positive direction of rotation (M3 or CW)


- Spindle speed in negative direction of rotation (M4 or CCW)

Activation
The M19 command is activated when all movements programmed in
the same block have been executed.
The spindle position remains unchanged until M3, M4, M13, M14,
M41, M42, M43, M44 or M19 is programmed.

Example: Oriented spindle stop


M19 D30

M19 Spindle stops at +30° from the fixed angular position

32 2 Technology
2.3 M Functions
M30 End of part program
Completing the part program execution with return to the beginning of
the program.

Format
M30
Activate
The M30 command is activated when the current tool movement
programmed in the same block has been executed.

Spindle rotation and coolant supply


A block with M30 switches off the spindle and the coolant supply.

On-position
When executing M30, the on-position that is applicable for a specific
group of G functions becomes effective automatically, if intended.
Other functions with an on-position are reset, as well.

Example: Program structure

N9000

M30

N9000 Program name


Part program instructions
M30 End of program and return to beginning of program

HEIDENHAIN MillPlus V600 33


2.3 M Functions
M41/M42/M43/M44 Selecting the spindle speed
range
Format
S M41/M42/M43/M44
Speed range selection
The speed range can be selected automatically by the CNC (the
corresponding M function is generated by the CNC) or by
programming the appropriate M function (useful with overlapping
speed ranges).

Limit values for the speed ranges


The limit values for the speed ranges are stored in the machine
parameter memory of the CNC.

Speed range types


Speed ranges can overlap more or less. If no M function for the range
selection has been programmed and the spindle speed occurs in two
ranges, the maximum range is selected automatically.

Overlapping speed ranges


M41 10 - 250 rpm
M42 200 - 550 rpm
M43 500 - 750 rpm
M44 700 - 1000 rpm

Example:Spindle speed range


M41 S50

M41 The above speed ranges are assumed to be applicable.


The required spindle speed is 50 rpm. M41 is
programmed so that Range 1 is selected. The
automatic range selection is not used.

34 2 Technology
2.4 T Function Tool Table

2.4 T Function Tool Table


Using tools in the program
You can define a tool call in the program with:

Program line Format Description


Tnnnn nnnn [0-9999 9999] Tool

T*.nn [00-99] Explicitly programmed replacement tool

T=”ssss.....” 40 [char] Tool name

T1=nnnn [0-9999] Cutting force monitoring

T2=n [0-9] Activate additional data of an indexed tool

T3=nnnn.n [0-9999.9 min] Select tool with sufficient remaining tool life

M6 Automatic tool change

M46 Automatic tool change without safety clearance

M66 Manual tool change

M67 Activate tool data without tool change

G39 L... R... [mm] Temporarily activate oversize in length or radius

G50 Tnn Write the measured tool dimensions into the table

G141 R=... R1=... [mm] Temporarily activate oversize in length or radius

[G149 | G150] Tnnnn.nn T2=n Read and write tool data (length, radius, tool life, status)
L1=nn R1=nn M1=nn En

G302 Oxx Temporarily activate the tool orientation (turning)

[G321 | G331] Tnnnn.nn T2=n Read and write tool data


I1=n

HEIDENHAIN MillPlus V600 35


2.4 T Function Tool Table
Tool change
Tool change with index number (T2=)
With the index number IDX you can assign other tool data to a tool.
This index number is called in the NC program with T2=.

Example:Tool compensations
T1234 T2=3 M6

T2= Tool number 1234 is inserted with index number 3

Removing the tool from the spindle


With T0 M6 the tool is removed from the spindle and returned to the
magazine.
The tool must be removed from the spindle:
„ Before a manual tool change
„ For oversized tools.

Tool pre-selection
The next tool can already be pre-selected in the magazine during
program run so that it can be inserted immediately with the next tool
change. The block includes only the tool number T (without M
function).

Replacement tools
A replacement tool is inserted if the tool life of the current machining
tool expires or if the lowest performance limit of cutting force
monitoring is exceeded.
The replacement tool is identified by the two-digit number after the
decimal point.
The replacement tool with the lowest number is selected, unless it is
blocked. Otherwise the replacement tool with the next higher number
is used.

36 2 Technology
2.4 T Function Tool Table
Tool life monitoring
Each tool is assigned a certain tool life. Whenever a tool is in use, its
life is reduced by the cutting time. When the tool life has expired a
warning is generated.

Tool change with sufficient tool life (T3=)


A tool can have several replacement tools with different remaining
tool lives. Programming T3= selects the tool whose remaining life is
sufficient.
If no tool with sufficient remaining life can be found, the MillPlus
generates an error message.

Example: Tool life monitoring

T1234 T3=12 M6

T3=12 A program block T3=12 leads to the insertion of tool


number 1234, where the remaining tool life has to be
at least 12 minutes.

HEIDENHAIN MillPlus V600 37


Programming
3.1 General Programming
3.1 General Programming Information
Information
Part programs
A part program is the entirety of data and instructions required for the
production of a workpiece on a numerically controlled machine tool.
The instructions can contain different operations, e.g. milling, drilling,
tapping etc. Each individual operation forms a unit and can be divided
into subinstructions. A program block is a complete operation and the
words in a program block define the subinstructions.
The correct machining sequence and all subinstructions must be
defined in the part program. Examples of subinstructions are tool
movements, machine functions and technology data.
A part program can be generated and stored in several ways:
„ By interactive contour programming (ICP) for complex contours.
„ By manual program entry via the control panel.
„ By downloading via a network (e.g. Ethernet or external PC).

Program words
The CNC control uses the standard CNC word address system. A
word defined according to this system consists of two parts:
1 The address, i.e. an individual address (a letter) or an indexed
address. An indexed address consists of a letter followed by an
index (number) and the equal sign (=).
2 A multi-digit number.
Leading zeroes can be omitted in all words. If, however, the value of
one word equals zero, then at least one zero must be written.

Example words:
X-21.43 "X" is the address, "-21.43" the value
X1=-21.43 "X1=" is the address, "-21.43" the value

40 3 Programming
3.1 General Programming Information
Format of words with path or angle information
Words that give path or angle information may have a an algebraic sign
(+ or -). If no algebraic sign has been programmed, a positive value is
assumed. Negative values must always have a minus sign.
Path or angle commands can be written with a decimal point. The
number of digits after the decimal point depends on the machine
configuration: 3 digits (accuracy 1 µm or 1 mdeg.) or 4 digits (accuracy
0.1 µm or 0.1 mdeg.). Any zeroes that follow may therefore be
omitted. If not decimal point has been programmed, the CNC
assumes that it comes after the last digit.
The total length is always 9 digits. This means that either 123456.789
or 12345.6789 is programmed.

Metric or inches
If G70 is programmed at the beginning of a program, mm is switched
to inch. A path command is then programmed 12345.6789 or
1234.56789 (accuracy 0.0001 or 0.00001 inches).

HEIDENHAIN MillPlus V600 41


3.1 General Programming Information
Program blocks
A program block can consist of several words that form a unit, and
contain all information required for the execution of a complete
operation. This operation may be a tool movement or a machine
function or a combination of both.
The control uses a variable block format, i.e. the block length may be
different for every block, depending on the difference in the number
or length of the words.
If the program block is numbered, the N word always has to come
first. The order of the other words is freely selectable. The example
shows the recommended order of frequently used words.
Each word can only be used once in a specific block. Words like E1=
and E2= have different addresses and can therefore be used in the
same block.
Technological and machine data like spindle speed (S), feed rate (F),
tool selection (T) and direction of spindle rotation (M3/M4) can also be
contained in the block.

Example of a program block


T12 M6
F300 S200 M3
G1 X14 Z62.5

G1 G function Linear Interpolation


X14 and Z62.5 Path information
F Feed rate
S Spindle speed
T Tool number
M Machine function

Block number N
Block number N is not mandatory in the MillPlus IT as of version V600.
A block number is only mandatory if a certain block is to be jumped to.
The block numbers range from N0 to N9999999.
It is common practice to use a specific block number only once in the
same program. The order of the block numbers is freely selectable.
The blocks are executed in the programmed order.

42 3 Programming
3.2 Creating a Part Program

3.2 Creating a Part Program


Program identifier
Each part program or subprogram has its own name. The name
consists of letters and/or numbers.

Structure of a part program


To create a part program, the programmer needs the following
information:
„ The workpiece clamping position and the chucking equipment
„ The machining sequence
„ The tools that are required for machining
„ The applicable technological data for each tool
„ The workpiece dimensions and the required movements.
The traverse motions on the machine are a combination of tool and
workpiece motions. To simplify programming it is assumed that all
motions are made by the tool. The actual sequence of motions
depends on the configuration of machine tool and control.
An imaginary coordinate system whose datum is used as the
reference point for the programmed motion is placed on the
workpiece. The position of this datum is chosen such by the
programmer that the programming calculations are reduced to a
minimum. For the direction of the coordinate axes, see "Axis
Configurations on MachineTools".

Program editor
Several programs can be opened simultaneously in the editor. The
maximum number is specified in the settings menu. You can easily
switch between the opened part and subprograms and copy data.
The stored programs can be protected against unauthorized editing by
using the "Locking" function.

HEIDENHAIN MillPlus V600 43


3.3 Datums
3.3 Datums

In order to determine the machine datum, a reference run must first


be performed after switch-on. The machine datum is specified, since
the offset data between the machine datum (M0) and the machine-
based reference point (R) are saved via machine configuration data.
„ R = machine reference point
„ M0 = machine datum
„ W = program datum
The operator specifies a program datum (W) for the workpiece,
relative to which the workpiece dimensions are measured. This
program datum must also refer to the machine datum, which can be
specified with the G52 and/or G54...G59 functions. (See figure.)

Machine-based reference point (R)


Every traversable axis of a machine tool has a stationary point
designated as the reference point. The reference points of all axes
together form the machine-based reference point (R) (See figure.)
During the reference run (see operating instructions), the tool
traverses to the reference point of each respective axis. Once this
point is reached, the CNC automatically zeroes the axis. The positions
of the software limit switches are specified.

Machine datum (M0)

The machine datum is also a stationary point on the machine.


When the CNC system is put into service, the distances in the axes
from the machine-based reference point (R) to the machine datum
(M0) are measured and saved as machine parameters. Each axis has
its own machine parameter value.
When the machine-based reference point has been defined with the
reference run procedure, the CNC reads out the relevant dimensions
saved as machine parameters. The machine datum (M0) is defined as
the origin of the coordinate system. The displayed positions are
referenced to the machine datum.

44 3 Programming
3.3 Datums
Pallet datum (M1)

If the machine has several fixtures (e.g. pallets), each fixture has its
own datum. This stationary fixture is called pallet datum (M1).
The distances in the axes from the machine datum (M0) to the pallet
datums (M1) are stored in the datum shift memory. The functions G52
or G52 I[0...99] permit storage of 99 pallet datums.

Workpiece datum (W)

When a pallet datum (M1) has been defined, the datum of the
workpiece must be determined. The workpiece datum can be the
same as the active datum M1 or be entered in the table by direct
programming or be defined with the F54 function "Preset axes"
If there is an external program call with shift data, the control defines
the C datum automatically.
The distances in the axes from the pallet datum (M1) to the workpiece
datums (W) are stored in the datum shift memory. The functions
G53...G59 or G54 I[0...99] permit storage of up to 99 workpiece
datums.

Program datum (W1)

The program datum W1 is the datum from where the axis coordinates
in part programs are measured. The programmer can select any
position for the W1 datum. It is advisable to select the position such
that any additional calculations required for workpiece programming
are limited to a minimum.

HEIDENHAIN MillPlus V600 45


3.4 Axis Configurations on
3.4 Axis Configurations on Machine Tools
Machine Tools
Axis configurations
A machine has three linear principal axes (X, Y Z), which are mutually
perpendicular. The orientation of these axes is determined by the
Z axis, which always runs parallel to the machine tool’s main spindle.
The X axis is that with the greatest traverse path perpendicular to the
Z axis. A rotary axis and a linear auxiliary axis can be assigned to each
principal axis. They are shown in the top figure.

Coordinate system
The CNC can connect points by linear and circular paths of traverse
(interpolations). Workpiece machining is programmed by entering the
coordinates for a succession of points and connecting the points by
linear or circular paths of traverse.
Like the paths of traverse, you can also describe the complete contour
of a workpiece by defining single points through their coordinates and
connecting them by linear or circular paths of traverse.
The positions of the CNC machine tool’s axes are defined by the
following standards: ISO 841, DIN 66217 and EIA RS-267-A. The right-
hand rule defined in these standards is used to indicate the orientation
of all axes on CNC machine tools. (Center figure)

Defining coordinates
The coordinates of points in space (3-D) define traverse paths along
the axes. The axis coordinates are in one of three planes (XY plane, ZX
plane, YZ plane).

46 3 Programming
3.4 Axis Configurations on Machine Tools
Cartesian coordinates
Absolute coordinates
If the coordinates of a position are referenced to the workpiece datum,
they are referred to as absolute coordinates. Each position on a
workpiece is clearly defined by its absolute coordinates. See figure.

Movement with absolute Cartesian coordinates

G0 X40 Y30 Z30 ‘X, Y, Z is the distance to the datum

HEIDENHAIN MillPlus V600 47


3.4 Axis Configurations on Machine Tools Incremental coordinates
Incremental coordinates are always given with respect to the last
programmed position. They specify the distance from the last active
position and the subsequent position. Each position on a workpiece is
clearly defined by its incremental coordinates.

Movement with incremental Cartesian coordinates


G0 X91=40 Y91=30 X91. Y91 incremental distances to the
current position
or
G91 Incremental programming active
G0 X40 Y30 Z30 X, Y, Z are incremental distances to the
current position

Polar coordinates
When programming with polar coordinates, a position on the
workpiece is clearly defined by the entries for polar length and angle.

Movement with absolute polar coordinates

G0 L2=20 B2=45 Z30

„ L2= distance to the datum


„ B2= angle formed with first principal axis

48 3 Programming
3.4 Axis Configurations on Machine Tools
Movement with incremental polar coordinates

G0 L1=20 B1=45 Z30

„ L1= distance between the actual and the nominal position


„ B1= angle formed with first principal axis
When programming with incremental polar coordinates, a position on
the workpiece is clearly defined by the entries for length and angle.

If a pole has been programmed (see G9), the program


blocks with polar programming (angle and length) are no
longer referenced to the datum but to the last
programmed pole.

Polar coordinates in the XZ plane (G18)


and YZ plane (G19).

Mixture of coordinates
Mixing different coordinates is permitted. Absolute, incremental and
polar coordinates are possible.

Movement with mixed coordinates


G1 X30 Y91=40 ‘Absolute and incremental
G1 X30 B1=45 ‘Absolute and absolute angle
G1 X30 B2=45 ‘Absolute and incremental angle
G1 X30 L2=45 ‘Absolute and incremental length

HEIDENHAIN MillPlus V600 49


3.4 Axis Configurations on Machine Tools
G7 coordinates
The position display on the screen can toggle between the position in
the G7 plane (Xp, Zp) or the machine coordinates (X, Y). Both refer to
the active datum G52 + G54 + G92/G93.

50 3 Programming
3.5 E Parameters

3.5 E Parameters
E parameters permit a more flexible use of the programs. With a single
program you can manufacture different workpieces by changing the
parameter data contained in the CNC's parameter memory.
With the help of macros, high-level language and E parameters, a
problem can be solved in a general way, e. g. measuring a hole with
three or four points. The parameters receive their current values
during execution, and the subprogram is adjusted to the special
program requirements.

Format
Parameter definition:
„ E...=[value or arithmetic expression]
Parameter assignment
„ [Address]=(+/-) E...
Parameter assignment and calculation:
„ Address = [arithmetic expression]

Cancel
The parameter values are modal, unless they are changed by
conversion, entry via the control panel, entry from another data
medium or assignment of new values in the part program. By pressing
a soft key you can delete a parameter value or the entire table.
Pressing the Cancel Program soft key, or M30 do not delete parameter
values.

Quantity of parameters
You can save a maximum of 1,000 parameters. This quantity can be
changed with a machine parameter (numberOfReals). (Default setting:
600 parameters).
For system cycles (PLC and cycles) you can use parameters 1000 to
1400.

Address
Every existing address, except for the address N. Address N generates
an error message. Impermissible word: N=.

Parameter number (E)


This number indicates where in the parameter memory of the control
the numerical value is stored.

HEIDENHAIN MillPlus V600 51


3.5 E Parameters
Using a parameter in several programs
A parameter can be used in different programs. If a parameter that
was already assigned a value in a previous program is used in a new
program, the parameter must be assigned a new value. Otherwise the
old value will be used again.
If a parameter for which there is no value contained in the parameter
memory is programmed, an error message is generated (parameter
not defined).

Parameter types
Parameters can be used in every MillPlus. The following parameter
types are possible:
A floating point number consists of a fixed point number (mantissa)
multiplied by an exponent. 1.965e5, for example, means 1.965(10^5),
which equals 196 500.

1 Integral (no decimal point) E1=20


2 Fixed point number E1=200.105
3 Floating point number E1=1.965e5
4 Character sequence ES1=”example.mm”

Input accuracy
The input accuracy of the parameter types is as follows:
1 Integer A 15-digit number.
2 Fixed point At least 6 decimal places, not more than
number 15 decimal places
3 Floating point The mantissa is programmed as a fixed
number point number, the exponent is an integer
between -99 and +99.
4 Character -
sequence

Displaying the parameter table


The parameter values saved in the parameter memory can be listed on
the screen.
They are rounded values consisting of several decimal places. They
are either displayed as fixed point number or in the so-called scientific
notation, i.e. with an exponent.
The fact that the accuracy of the calculated, saved parameter values is
equal or greater than the displayed values can cause differences.
Example of a saved value: 99.999999999999999 (more than 16
places) – displayed value is 100

52 3 Programming
3.6 String (ES) Parameters

3.6 String (ES) Parameters


The string parameters (or ES parameters) permit a more flexible use
of the programs. With a single program you can manufacture different
workpieces by changing the parameter data contained in the CNC's
parameter memory.

Format
Parameter definition:
„ ES...=[string expression]
String expression:
„ Character sequence
Parameter assignment
„ [Address]=(+/-) ES...

Cancelation
The parameter values are modal, unless they are changed by
conversion, entry via the control panel, entry from another data
medium or assignment of new values in the part program. By pressing
a soft key you can delete a parameter value or the entire table.
Pressing the Cancel Program soft key or M30 do not delete parameter
values.

Quantity of parameters
You can save a maximum of 200 parameters. This quantity can be
changed with a machine parameter (numberOfStrings). (Default
setting: 200 parameters).
For system cycles (PLC and cycles) you can use up to 400 parameters.

HEIDENHAIN MillPlus V600 53


3.7 Operators
3.7 Operators

Arithmetic operators
Mathematical operators

Description Operators
Exponential calculation E1=E2 ^ E3

Multiplication E1=E2*E3

Floating-point division E1=E2/E3

Integer division E1=E2\E3

Remainder of division E1=E2 Mod E3

Addition E1=E2+E3

Subtraction E1=E2-E3

Assign E1=E2

Exponential calculation
E1=E2^2 or E1=E2^E3 (with E3=2)
The two operations have the effect that the E1 parameter is equal to
the square value of E2.
Exponential calculations follow a fixed order. First you do the
exponential calculation, then you consider the algebraic sign. For
example, in the equation E1=-3^2 you first do the exponential
calculation (3^2), then you consider the algebraic sign, which results
in a negative number (-9).
If you want to raise a negative number to a power, you have to place
it in parentheses, e. g. E1=(-3)^E3. Another method is to assign the
negative number to a parameter and then raise the parameter value to
a power, e. g. E2=-3 and then E1=E2^2.
The following exponential calculations are impermissible:
1 0^0.
2 E2^E3, if E2<0 and E3 have a real value.

In all cases it is permissible to replace the E parameters in


parentheses by an arithmetic expression. Example:
E1=Sqrt(E2^2+E3^4).

54 3 Programming
3.7 Operators
Notes
If the relational expression is true, then E1=1. If the expression is not
true, then E1=0. This parameter can be used with the G29 function
(conditional jump) or with high-level language.
In the format description, the parameters E2 and E3 are arbitrary
parameters or expressions.
Functions and arithmetic expressions can also be used without
parameters, e.g. X=(10+12*sin (23)).
The E parameter with the result of the calculation or the mathematical
function does have the required accuracy but can be saved in two
different ways.
E1=99.9999999 and E1=100.0000001 are, for example, equally
accurate but differ in their numerical value.
There could be problems if the "Int" function or a relational expression
comparing all numbers is used.

Translating the calculated numerical values into program words


The parameter values (or the calculated numerical values) are rounded
automatically by the CNC and converted into the fixed number of
decimal places that is appropriate for the program word.
When programming, for example, E1=101.74e-3 and X=E1, the
number is rounded so that the result is X0.102. The numerical value is
rounded to three decimal places.

There must be no space between the characters of an


arithmetic expression. E1=E2 is not permitted, for
example. E1=E2 is correct. Arithmetic operators must be
placed between arithmetic values. E1=E2 E3 is not
permitted, for example.

Successive arithmetic operators are not permitted.


Example: E1=E2*/E3. Exception: E1=E2*-E3. An
expression may contain only one mathematical operation.

HEIDENHAIN MillPlus V600 55


3.7 Operators
Mathematical functions

Description Operators
Absolute value E1=Abs(E2)

Rounding E1=Round(E2,n)
(n = decimal places)

Remainder of division E1=E2 Mod E3

Sign E1=Abs(E2)

Square root E1=Sqrt(E2)

Conversion of integer E1=Int(E2)

Pi value (=3.141 592) Pi

Conversion of high-value integer E1=Ceiling(E2)

Conversion of small-value integer E1=Floor(E2)

Maximum E1=Max(E2,E3)

Minimum E1=Min(E2,E3)

Reciprocal values
The reciprocal value of E2 is calculated with E1=1/E2 or E1=E2^-1

Absolute values
With an absolute function, a negative value is converted into a positive
value. Positive values remain unchanged. E1=Abs(E2).

Square
The square value of E2 is calculated with E1=E2*E2 or E1=E2^2

Square root
The square root of E2 is calculated with E1=Sqrt(E2) or E1=E2^0.5
E1=Sqrt(...): An arithmetical expression in parenthesis is permissible,
e.g. E1=Sqrt(E2^2+E3^4).
To extract the square root (Sqrt), the parameter must be positive or
zero.

56 3 Programming
3.7 Operators
Integer
When the integer function is used, the numerical value is truncated,
e.g. all decimal places are ignored. E1=Int(E2)
Example: E2=8.9 is shown as 8, E2=-8.9 is shown as -8

Pi constant
The value of the pi constant is saved in the control with an accuracy of
15 digits. Pi can be used at any place at which a value or E parameter
is permitted, e.g. for conversion of angles of radians in decimal
degrees or vice versa.

Integers with minimum value greater or equal to the argument


When using the function with minimum value, the numerical value is
rounded to the biggest argument. E1=Ceiling(E2)
Example: E2=8.9 is shown as 9, E2=-8.9 is shown as -8, E2=8 is
shown as 8

Integers with maximum value smaller or equal to the argument


When using the function with maximum value, the numerical value is
rounded to the smallest argument. E1=Floor(E2).
Example: E2=8.9 is shown as 8, E2=-8.9 is shown as -9, E2=8 is
shown as 8

Rounding
When using the rounding function, the numerical value is rounded
based on the number of decimal places. E1=Round(E2,n) ( n is decimal
places)
Note: If the number of decimal places has not been entered, it is
automatically assumed to be zero.
Example: n=1 and E2=8.94 results in 8.9, n=1 and E2=-8.94 results in
-8.9 n=1 and E2=8.96 results in 9.0, n=1 and E2=-8.96 results in -9.0

Remainder of division
When using the remainder function, the remainder of the argument is
returned.
Note: E1=(E2ModE3):
„ If E3 is 0, E2 is returned
„ If E3 is not entered, 1 is assumed.
„ The sign is the same as that of E1.
Example: E2=5 and E3=3 results in 2, E2=-5 and E3=3 results in -2

Sign
When using the sign function the sign is returned. E1=Sign(E2)
Example: E2=8.9 results in 1, E2=0 results in 0, E2=-8.9 results in -1

HEIDENHAIN MillPlus V600 57


3.7 Operators Notes
The E parameter is saved with maximum accuracy. Nevertheless, its
value can be entered in different ways.
Example: E1=99.9999999 E3=100.0000001
E2=Int(E1) results in E2=99, E2=Int(E3) results in E2=100
The E1 and E3 parameters are saved with the same accuracy. In both
cases, the value 100 is displayed on the screen. The result of the "Int"
function is different, however.
The E parameter with the result of the calculation or the mathematical
function does have the required accuracy but can be saved in two
different ways.
It is advisable to assign a small value to the parameter whose integer
is to be determined, e.g. the required accuracy of the calculations.
Example: If E1=99.9999999 or E1=100.0000001, the expression
E2=Int(E1 +0.0000001) yields the value E2=100, regardless of the
value of E1

Maximum
The Max() function returns the maximum value of the two arguments.
E1=Max(E2,E3)
Example: E1=Max(16,-10) results in E1=16

Minimum
The Min() function returns the minimum value of the two arguments.
E1=Min(E2,E3)
Example: E1=Min(16,-10) results in E1=-10

Angle in decimal degrees


An angle is usually programmed in degrees and fractions of degrees.
The value can be entered directly in the trigonometric functions,
arithmetical expressions or relational expressions.
Example: E1=Sin(44.209303)

Angle in radians
For angle calculations it can sometimes be useful to express angles in
radians. 360" corresponds to 2*pi radians.
Consequently, an angle of 44.209303" equals 0.7715979 radians.
If in a trigonometric function the angle is expressed in radians, the
numerical value must be followed by the addition "rad". If in a
trigonometric function the angle is expressed in radians, the numerical
value must be followed by the addition "rad".
Example: E1=Sin(0.7715979rad)

58 3 Programming
3.7 Operators
Trigonometric functions

Description Operators
Sine E1=Sin(E2)

Cosine E1=Cos(E2)

Tangent E1=Tan(E2)

Arc sine E1=Asin(E2)

Arc cosine E1=Acos(E2)

Arc tangent E1=Atan(E2)

Arc sine E1=Asin2(E2,E3)

Arc cosine E1=Acos2(E2,E3)

Arc tangent E1=Atan2(E2,E3)

Trigonometric functions
The following trigonometric functions are available.
Sine (sin), cosine (cos), tangent (tan)
They are written as follows: E1=Sin(E2) E1=Cos(E2) E1=Tan(E2)
The sine of an angle of 44.209303' can, for example, be programmed
as follows: E1=Sin (44.209303) or E1=Sin (0.7715979rad)

Notes
The E2 parameter represents any mathematical expression.
Using an odd multiple of 90 " in connection with the tan-function is not
permissible. Otherwise, an error message is issued.
Using an odd multiple of 90" in connection with the tan-function is not
permissible. Otherwise, an error message is issued.

Inverse trigonometric functions


The following inverse trigonometric functions are available: arc sine
(asin), arc cosine (acos), arctan (atan)
They are written as follows: E1=Asin(E2) E1=Acos(E2) E1=Atan(E2)
Also possible: E1=Asin2(E3,E4) E1=Acos(2E3,E4) E1=Atan2(E3,E4)
where E2=E3/E4

HEIDENHAIN MillPlus V600 59


3.7 Operators Notes
The E2 parameter represents any mathematical expression.
The values of the inverse functions asin and acos should be between
-1 and +1; atan can have any numerical value.
The E2 parameter represents any mathematical expression.
The angles created by these functions are expressed in decimal
degrees.
The angle created by asin and atan is between -90° and +90°.
The angle created by acos is between 0° and 180°.
Remarks:
„ For acos and asin, abs(E2) must be smaller or equal to 1
„ The angle created is between 0° and +360°.

60 3 Programming
3.7 Operators
Relational operators
A relational expression is used to assign the value 1 to the E parameter
if certain conditions are fulfilled.
As long as these conditions are not fulfilled, the value of the parameter
is 0.
With G29 or high-level language, this parameter enables you to jump
within the program.
The following relations can be used:

Description Type Operators


Equal to = E2=E3

Not equal to <> E2<>E3

Greater than > E2>E3

Greater than or equal >= E2>=E3


to

Less than < E2<E3

Less than or equal to <= E2<=E3

Example: G29 E1=E2>E3 E1 N=400 or If E2>E3 Then GoTo M400


This block means: If parameter E2 is greater than E3, the relation is
true and the value 1 is assigned to parameter E1. Parameter E1 is used
as a jump condition in the G29 block. If E2>E3, a jump to label M400
is executed.

Notes
Parameters E2 and E3 represent any mathematical expression.
To satisfy a relational expression, all numbers are compared to see if
they are equal. Problems may arise if the parameter values are
obtained from calculations. In this case, limit values must be set and
it must be tested whether the respective value is within the limits.
Smaller < E1=E2<E3, smaller or equal <= E1=E2<=E3.

If the relational expression is true, then E1=1. If the


expression is false, E1=0. This parameter can be used
with the G29 function (conditional jump) or with high-level
language.

HEIDENHAIN MillPlus V600 61


3.7 Operators
Logical operators
Logical operators compare Boolean expressions and return a Boolean
result.
The following relations can be used:

Description Type Operators


Conjunction And E2 And E3

Short-circuit conjunction AndAlso E2 AndAlso E3

Compares two object Is E2 Is E3


reference variables

Compares two object IsNot E2 IsNot E3


reference variables

Compares character Like E2 Like E3


string with a sample

Negation Not Not E2

Disjunction Or E2 Or E3

Short-circuit disjunction OrElse E2 OrElse E3

In all cases, both of the parameters must be Boolean


expressions.

Example: G29 E1=E2 And E3 E1 N=400


This block means: If parameters E2 and E3 are true and E1 is true, the
relation is true and the value True is assigned to parameter E1.
Parameter E1 is used as a jump condition in the G29 block. With E2
And E3, a jump to N400 is therefore executed.

62 3 Programming
3.7 Operators
Sequence of operators in the evaluation
The CNC evaluates mathematical and relational operations in the
following order:

Order
of Description
priority
1 Calculation of the reciprocal values (^-1) and/or
exponential calculations (")

2 Multiplication (*) and/or floating-point division (/)

3 Integer division (\)

4 Remainder of division (Mod)

5 Addition (+) and/or subtraction (-)

6 Linking (&)

7 Evaluation of the relational expressions (=, <>, >, >=, <,


<=, Like, Is, IsNot)

8 Negation (Not)

9 Conjunction (And, AndAlso)

10 Disjunction (Or, OrElse)

If a block contains operations of the same priority, they are evaluated


from the beginning of the block to the end of the block (from the left
to the right).
The block E1=3+7/2-4^2+5*6 is evaluated in the following order:
1 4^2=16
2 7/2=3.5
3 5*6= 30
4 3+3.5=6.5
5 6.5-16=-9.5
6 -9.5+ 30=20.5

Use of parentheses ()
With parentheses () you can group operations and thus change the
order of evaluation of an expression. The expression in parentheses is
evaluated in the usual order of priority. One pair of parentheses can be
placed between another pair of parentheses. This is referred to as
"nesting". The evaluation of the expressions between the individual
pairs of parentheses is from the inside towards the outside.

HEIDENHAIN MillPlus V600 63


3.7 Operators
Calculating polar coordinates (see figure)
B2=ATAN (15/10) L2=SQRT(10^2+15^2)

B2= For B2= the sequence is:


Calculate 15/10,
determine angle in decimal degrees.
L2= For L2= the sequence is:
Calculate 10^2,
calculate 15^2,
add 10^2 and 15^2
extract the square root.

Calculating the point of intersection of two straight lines (see


figure)
Input parameters

E1 First coordinate of the first point on the first straight line.


E2 Second coordinate of the first point on the first straight
line.
E3 First coordinate of the second point on the first straight
line.
E4 Second coordinate of the second point on the first straight
line.
E5 First coordinate of the first point on the second straight
line.
E6 Second coordinate of the first point on the second straight
line.
E7 First coordinate of the second point on the second straight
line.
E8 Second coordinate of the second point on the second
straight line.

64 3 Programming
3.7 Operators
Output parameters

E20 First coordinate of the point of intersection.


E21 Second coordinate of the point of intersection.
E79=1 Error found in macro.
E79=0 No error.

N99401 'MACRO FOR CALCULATION OF THE Macro program


POINT OF INTERSECTION OF TWO
STRAIGHT LINES
N1 E11=E3-E1 E12=E4-E2 E79=0 Calculation of the unit vector of the first straight line
N2 E13=SQRT(E11^2+E12^2)
N3 E11=E11/E13 E12=E12/E13
N4 E13=E7-E5 E14=E8-E6 Calculation of the unit vector of the second straight line
N5 E15=SQRT(E13^2+E14^2)
N6 E13=E13/E15 E14=E14/E15
N7 E16=E11*E13+E12*E14 Tests whether the unit vectors run in parallel or not
N8 G29 E15=ABS(E16)<.99995 N=12 E15
N9 E79=1 If the straight lines run in parallel, parameter E79 is set and there is
an error message with program stop. No calculations are carried out
after the start.
N10 M0 ‘STRAIGHT LINES PARALLEL
N11 G29 E79 N=17
N12 E15=E1-E7 E16=E2-E8 Calculation of the vector factor
N13 E17=(E15*E12-E16*E11)
N14 E17=E17/(E13*E12-E11*E14)
N15 E20=E7+E17*E13 Calculation of the coordinates of the point of intersection
N16 E21=E8+E17*E14
N17

HEIDENHAIN MillPlus V600 65


3.7 Operators
Parameter E79 can be used for error processing in the
calling program or macro

Example of macro application


1 First straight line through the points (30,50) and (60,30)
2 Second straight line through the points (100,50) and (50,10)
3 The calculation of the point of intersection could be programmed
as follows:

Example of macro application


First straight line through the points (30,50) and (60,30)
Second straight line through the points (100,50) and (50,10)
The calculation of the point of intersection could be programmed as
follows:
N100 E1=30 E2=50 E3=60 E4=30 The points on the first straight line
N101 E5-100 E6=50 E7=50 E8-10 The points on the second straight line
N102 G22 N=99401 Calculation of the point of intersection
N103 G29 E79 K0 N=... If an error is detected, a jump to the block with M30 is carried out.
N104 G0 X=E20 Y=E21 At rapid traverse to the point of intersection

66 3 Programming
3.8 High-Level Language

3.8 High-Level Language


Operators
Operators indicate the type of calculation you want to execute on the
elements of a formula. If a formula includes more than one operation,
they are carried out following a specific order.
You can use parentheses to override the order of priority so that
certain parts of an expression are calculated first. Operations in
parentheses always have priority over the ones outside the
parentheses. Within the parentheses, the normal priority applies.

Operators Type Description


& Linking Creates one character string out of
several character strings.

And Logical Performs logical conjunction on two


expressions.

AndAlso Logical Performs short-circuiting logical


conjunction between two
expressions.

Is Logical Compares two object reference


variables.

IsNot Logical Performs short-circuiting logical


conjunction between two
expressions and compares two
object reference variables.

Like Comparison Compares two character strings

Not Logical Performs logical negation on an


expression.

Or Logical Performs logical disjunction on two


expressions.

OrElse Logical Performs logical short-circuiting


disjunction on two expressions.

HEIDENHAIN MillPlus V600 67


3.8 High-Level Language
&
The linking operator (&) performs logical conjunction of several
character strings into one character string.
Syntax
<Result> = <text 1> & <text 2>
Parameters
Text, numbers and string parameters may be used as <Text>
expression. They must be programmed as a character string enclosed
in quotation marks.
Result:
A character string
Example

ES1="V:\NC_PROG"
G22 N=ES1 & “\“ & "MACRO.MM" Subprogram call: v:\nc_prog\macro.mm

68 3 Programming
3.8 High-Level Language
And
The And operator performs logical conjunction on two expressions.
Syntax
<Result> = <expression 1> And <expression 2>
Parameter
The <expression> is a Boolean expression (True or False)
Result:

True (1) If both expressions are true

False (0) If one of the expressions or both of them are false

Example

E1=10
E2=3
IF E1<20 AND E2>0 THEN Result = True: execute instructions after Then
…..
END IF

HEIDENHAIN MillPlus V600 69


3.8 High-Level Language
AndAlso
The AndAlso operator performs short-circuiting logical conjunction on
two expressions.
Syntax
<Result> = <expression 1> AndAlso <expression 2>
Parameter
The <expression> is a Boolean expression (True or False)
Result:
If the result of <expression 1> is false, <expression 2> is not
evaluated. The second expression is not evaluated as it cannot change
the final result.

True (1) If both expressions are true

False (0) If one of the expressions or both of them are false

Example

E1=10
E2=3
IF E1ISNOT NOTHING ANDALSO E2>E1 THEN If E1 does not have a value, E2>E1 is not evaluated.
Result = False: do not execute instructions after
Then
…..
END IF

70 3 Programming
3.8 High-Level Language
Is
The Is operator determines whether two object references refer to the
same object.
Syntax
<Result> = <expression 1> Is <expression 2>
Parameter
The <expression> is an object variable.
Result:

True (1) If both expressions refer to the same object

False (0) If the two expressions refer to different objects

Example

E1=
ES2=””
IF E1 IS NOTHING THEN Result = True: execute instructions after Then
…..
END IF

HEIDENHAIN MillPlus V600 71


3.8 High-Level Language
IsNot
The IsNot operator determines whether two object references refer to
different objects.
Syntax
<Result> = <expression 1> IsNot <expression 2>
Parameter
The <result> is a Boolean expression (True or False). The
<expression> is an object variable.
Result:

True (1) If the two expressions refer to different objects

False (0) If both expressions refer to the same object

Example

E1=10
ES2=”MENU”
IF E1 ISNOT NOTHING THEN Result = True: execute instructions after Then
…..
END IF

72 3 Programming
3.8 High-Level Language
Like
The Like operator compares two character strings
Syntax
<Result> = <text 1> Like <text 2>
Parameter
<Text> strings
Text and string parameters (ES) may be used as a <text> expression.
They must be programmed as a characters string enclosed in
quotation marks.
Result:

True (1) If the character strings match

False (0) If the character strings do not match

Example

ES1="WORD"
ES2="PROGRAM"
IF ES1 LIKE ES2 THEN Result=False: program jumps to End If
.....
.....
END IF

HEIDENHAIN MillPlus V600 73


3.8 High-Level Language
Not
The Not operator performs logical negation on an expression. It
reverses the value of an argument.
Syntax
<Result > = Not <expression>
Parameter
The <expression> is a Boolean expression (True or False).
Result

True (1) If the expression is false.

False (0) If the expression is true.

Example

E2=E3-E5
IF NOT E2=0 THEN Result = True: execute instructions after Then
.....
END IF

74 3 Programming
3.8 High-Level Language
Or
The Or operator performs a logical disjunction between two
expressions.
Syntax
<Result> = <expression 1> Or <expression 2>
Parameter
The <expression> is a Boolean expression (True or False).
Result

True (1) If one of the expressions or both of them are true

False (0) If both expressions are false

Example

E1=10
E2=3
IF E1=10 OR E2>10 THEN Result = True: execute instructions after Then
.....
END IF
.....
IF E1=9 OR E2>10 THEN Result=False: program jumps to End If
.....
END IF

HEIDENHAIN MillPlus V600 75


3.8 High-Level Language
OrElse
The OrElse operator performs short-circuiting logical disjunction
between two expressions.
Syntax
<Result> = <expression 1> OrElse <expression 2>
Parameter
The <expression> is a Boolean expression. If the result of
<expression 1> is true, <expression 2> is not evaluated. The second
expression is not evaluated as it cannot change the final result.
Result

True (1) If one of the expressions or both of them are true

False (0) If both expressions are false

Example

E1=10
E2=3
IF E1=10 ORELSE E3=0 THEN If the result of <expression 1> is true, <expression
2> is not evaluated because it cannot change the
final result. Result = True: execute instructions
after Then
.....
END IF

76 3 Programming
3.8 High-Level Language
Instructions
Below is an overview of the available instructions:

Instruction Description
Call Executes program run within a program on a
subprocedure (Sub).

GoTo Executes program run without restriction at


another point within the program.

If...Then...Else Executes one or several instruction blocks


that are to be executed only if a specific
condition is true

Select Case Executes a command that depends on the


result of a specific expression

While...End While Executes a number of instructions as long as


a given condition is true

HEIDENHAIN MillPlus V600 77


3.8 High-Level Language
Call
Executes program run within a program on a subprocedure (Sub). This
subprocedure must be in the same DIN program as the Call instruction
and be defined with a subinstruction. The subprocedure must start
with sub and end with sub. After completion of the subprocedure,
program run returns to the block following the Call instruction.
Syntax

Call < name> ()


…..
Sub < name> ()
< instructions >
End Sub
Parameters

<Name> Name of the subprocedure

<Instructions> One or more instructions to be executed

The <name> starts with a letter followed by a combination of letters,


“_” and numbers.
All subprocedures are written at the end of a program or subprogram.
NC blocks that do not follow a subprocedure are not executed. M30 is
written before the first sub-procedure.
Example

CALL ENDSEARCH () Jumps to subprocedure: EndSearch


.....
M30
.....
SUB ENDSEARCH () Beginning of subprocedure: EndSearch
.....
END SUB

78 3 Programming
3.8 High-Level Language
GoTo
Branches program run without restriction to a defined point ahead in
the program. This point must be identified with a label. Furthermore,
the label must be at the beginning of a line.

The GoTo instruction is not permitted within While and


Case instructions. GoTo is also not permitted within a
subprocedure (called with the Call instruction).

Syntax

GoTo <name>
…..
<Name>:
<instructions >
Parameters

<name> Name of the label to be jumped to

<Instructions> One or more instructions

The <name> starts with a letter followed by a combination of letters,


“_” and numbers. Only for GoTo can the <name> be a number with 1
to 9 digits.
Example

E1=10
GOTO ENDSEARCH Jumps to the point with the EndSearch label
.....
ENDSEARCH:
.....

HEIDENHAIN MillPlus V600 79


3.8 High-Level Language
If...Then...Else
Executes one or more instructions if certain conditions are fulfilled.
The instruction consists of If, Then and End If. The ElseIf and Else
instructions are both optional.
If the condition following the If instruction is true, the instruction after
Then is executed. Otherwise, program run must skip the instruction
and continue immediately with the EndIf instruction. If an Else
instruction exists and the If instruction is false , the instruction after
the Else instruction must be executed. If ElseIf instructions have been
programmed, each ElseIf instruction must be evaluated and be
executed only if it is true.
Syntax

If < condition > Then


< instructions >
ElseIf < condition > Then
< instructions >
Else
< instructions >
End If
Parameters

<Condition> Logical value

<Instructions> One or more instructions to be executed

The <condition> is a logical value (True or False), consisting of a


numerical expression or character string, possibly with logical
operators.
Example

E1=10
IF E1>1 THEN Result = True: execute instructions after Then
E1=E1-1
.....
ELSE Result = False: Program run continues
E1=10
.....
END IF

80 3 Programming
3.8 High-Level Language
Select Case
Executes one or more instructions that depend on the result of a
specific test expression. The instruction consists of Select Case, Case
and End Select. The Case Else instruction is optional.
If the test expression after Select Case matches a value of the Case
instruction, only the instruction following this case is executed. If no
matching value is found, the Case Else instruction, if there is one, is
executed; otherwise, the instruction immediately after the End Select.
Syntax

Select Case < test expression >


Case < value >
< instructions >
Case Else
< instructions >
End Select
Parameters

<Test expression> Numerical expression or character string

<Value> Numerical expression or character string

<Instructions> One or more instructions to be executed

Example

E1=10
SELECT CASE E1 Test expression is E1
CASE 1 If E1=1, execute instructions here
.....
CASE 10 If E1=10, execute instructions here
.....
CASE ELSE If E1 is neither 1 nor 10, execute instructions here
.....
END SELECT

HEIDENHAIN MillPlus V600 81


3.8 High-Level Language
While...End While
Executes a number of instructions as long as a defined condition is
true. The instruction consists of While and End While. The repeat is
stopped when the condition after the While instruction is no longer
true (False).
Syntax

While < condition >


< instructions >
End While
Parameters

<Condition> Logical value

<Instructions> One or more instructions to be executed

The <condition> is a logical value (True or False), consisting of a


numerical expression or character string, possibly with logical
operators.
Example

E1=10
WHILE E1<10
E1=E1+1
.....
END WHILE

82 3 Programming
3.8 High-Level Language
Additional Functions

Operators Description
‘ An apostrophe (') marks the beginning of a
comment text.

Nothing The E or ES parameter does not have any value.


The ' operator marks the beginning of the user's comment.
Syntax
‘ Comment text
Example

‘ COMMENT TEXT

Nothing
The Nothing operator represents the standard value of any E
parameter or ES parameter.
Syntax
<E parameter> = Nothing
<ES parameter> = Nothing
Example

E1=NOTHING
ES2=NOTHING

HEIDENHAIN MillPlus V600 83


Function Explorer
4.1 Milling Functions
4.1 Milling Functions

Basic functions Path commands


Working planes
Program linkage
Contouring behavior
Path compensation
Zero point shifts
Geometric functions
Free-form surfaces/coordinate
transformation
Graphical simulations
Special functions
Contour programming Contour programming
Drilling cycles Drilling cycles
Milling cycles Milling cycles
Threaded cycles Threaded cycles
Cycle call Cycle call
Contour milling cycles Contour milling cycles
Measuring cycles Measuring cycles
Tool measurement
Workpiece measurement Workpiece measurement
Kinematic measurement
Flexible NC programming Operators
High-level language

86 4 Function Explorer
4.1 Milling Functions
Milling Functions
Path commands
G0 Rapid Traverse
G1 Linear Interpolation
G2 Circular CW
G3 Circular Counter-Clockwise
G11 Linear Chamfer Rounding Cycle
G37 Milling Operation
G61 Tangential Approach
G62 Tangential Exit
G74 Absolute Position Approach
G174 Tool Retract Movement

Working planes
G17 Main Plane XY, Tool Z
G18 Main Plane XZ, Tool Y
G19 Main Plane YZ, Tool X

Program linkage
G14 Repeat Function
G22 Subprogram Call
G23 Program Call
G29 Jump Function

Contouring behavior
G4 Dwell Time
G25 Enable Feed/Speed Override
G26 Disable Feed/Speed Override
G27 Reset Positioning Functions
G28 Positioning Functions
G94 Feed in mm/min (inch/min)
G95 Feed in mm/rev (inch/rev)
G97 Spindle Speed
G125 Lifting Tool on Intervention: OFF
G126 Lifting Tool on Intervention: ON

Path compensation
G39 Tool Offset Change
G40 Cancel Tool Radius Compensation
G41 Tool Radius Compensation, Left
G42 Tool Radius Compensation, Right
G43 Tool Radius Compensation to End Point
G44 Tool Radius Compensation Past End Point

HEIDENHAIN MillPlus V600 87


4.1 Milling Functions Zero point shifts
G51 Cancel Pallet Zero Point Shift
G52 Activate Pallet Zero Point Shift
G53 Cancel G54-G59 Zero Point Shift
G54 - G59 Activate Zero Point Shift
G92 Zero Point Shift Incr./Rotation
G93 Zero Point Shift Abs./Rotation
G153 Correct Workpiece Zero Point: OFF
G154 Correct Workpiece Zero Point: ON

Geometric functions
G9 Define Pole Position
G63 Cancel Geometric Calculations
G64 Activate Geometric Calculations
G70 Inch Programming
G71 Metric Programming
G72 Cancel Mirror Image and Scaling
G73 Mirror Image and Scaling
G78 Point Definition
G90 Absolute Programming
G91 Incremental Programming
G240 Contour Pre-Calculation: OFF
G242 Contour Pre-Calculation: On

Free-form surfaces/coordinate transformation


G7 Tilting Working Plane
G8 Tilting Tool Orientation
G141 3D Tool Correction
G180 Cancel Cylinder Interpolation
G270 Disables Limit Planes
G271 Enables Defined Limit Planes
G272 Definition of Lower Limit Plane
G273 Definition of Upper Limit Plane
G275 Zoning Planes: Disable
G276 Zoning Planes: Enable
G277 Zoning Planes: Define

Graphical simulations
G98 Graphic Window Definition
G99 Graphic Material Definition
G195 Graphic Window Definition
G196 End Graphic Model Description

88 4 Function Explorer
4.1 Milling Functions
Special functions
G300 Program Error Call
G303 M19 with Programmable Direction
G305 Synchronize CNC and PLC
G319 Read Actual Technology Data
G320 Read Actual G Data
G321 Read Tool Data
G322 Read Machine Constant Memory
G323 Read Cycle Data
G324 Read G Group
G326 Read Actual Position
G327 Read Operation Mode
G328 Read IPLC Marker or I/O
G331 Write Tool Data
G338 Write IPLC Marker or I/O

Contour programming
G9 Define Pole Position
G251 Free Linear Movement
G252 Free Circular Movement, CW
G253 Free Circular Movement, CCW
G261 Free Linear Movement, Tangential
G262 Free Circular Movement, CW, Tangential
G263 Free Circular Movement, CCW, Tangential
G265 Free Chamfer
G266 Free Rounding
G269 Free Contour Selection

Drilling cycles
G81 Drilling/Centering
G83 Deep-Hole Drilling
G85 Reaming
G86 Boring
G700 Face Turning
G781 Drilling/Centring
G782 Deep-Hole Drilling
G783 Deep-Hole Drill. Add Chip Break
G785 Reaming
G786 Boring
G790 Back-Boring

HEIDENHAIN MillPlus V600 89


4.1 Milling Functions Milling cycles
G87 Pocket Milling
G88 Key-Way Milling
G89 Circular Pocket Milling
G730 Multipass Milling
G787 Pocket Milling
G788 Key-Way Milling
G789 Circular Pocket Milling
G797 Pocket Finishing
G798 Key-Way Finishing
G799 Circular Pocket Finishing

Threaded cycles
G84 Tapping
G740 Thread Milling Inside
G741 Thread Milling Outside
G784 Tapping
G794 Tapping, Interpolated

Cycle call
G77 Bolt Hole Circle
G79 Cycle Call
G179 ContourCycle Call
G771 Operation on Line
G772 Operation on Quadrangle
G773 Operation on Grid
G777 Operation on Circle

Contour milling cycles


G280 End Contour Milling
G281 Begin Contour Milling
G282 Contour Definition Program
G283 Contour Data Definition
G284 Contour Pilot Drilling
G285 Contour Roughing
G286 Contour Finishing

Measuring cycles
G49 Checking on Tolerances
G50 Processing Measuring Results
G148 Read Measure Probe Status
G149 Read Tool- or Zero Offset Values
G150 Change Tool- or Zero Offset Values

90 4 Function Explorer
4.1 Milling Functions
Workpiece measurement
G45 Measuring a Point
G46 Measuring a Circle
G145 Linear Measuring Movement
G620 Angle Measurement
G621 Position Measurement
G622 Corner Outside Measurement
G623 Corner Inside Measurement
G626 Datum Outside Rectangle
G627 Datum Inside Rectangle
G628 Circle Measurement Outside
G629 Circle Measurement Inside
G631 Measure Inclined Plane
G633 Angle Measurement 2 Holes
G634 Measurement Center 4 Holes
G636 Circle Measurement Inside (CP)

Operators
Arithmetic operators
Mathematical functions
Trigonometric functions
Relational operators

High-level language
&
And
Like
Not
Or
GoTo
Call
If...Then...Else
Select Case
While...End While

HEIDENHAIN MillPlus V600 91


G0-G99 G Codes
5.1 G0 Rapid Traverse
5.1 G0 Rapid Traverse

Execution of traverse movements in rapid traverse. G0 is used mainly


to position a tool before and after an operation. The sequence of the
traverse movements is determined by the positioning logic. All
converging axes are interpolated on a linear basis and reach the final
position at the same time.

Support picture

Address description
 X, Y, Z end point coordinates
 B, C end point angles
 B1= angle
 B2= polar angle
 L1= path length
 L2= polar length
 ?90= end point abs. (X,Y,Z..)
 ?91= end point incr. (X,Y,Z..)
 P1= point definition number

Format
G0 [axis coordinates]

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

Default setting
The modal function G0 is automatically effective when the program
starts, after CNC reset, after Cancel program, or after executing G37,
G77, or G79.

94 5 G0-G99 G Codes
5.1 G0 Rapid Traverse
Application
Point definition
A G0 block can contain up to four predefined points (Pn or P1=, P2=,
P3=, P4=).
The procedure is determined by:
„ The sequence: G0 P10 P1 P7 P11 or
„ The point definition: G0 P1=10 P2=1 P4=11 P3=7.
The combination of Pn and P1...4=n is not permitted.

Positioning logic
Every active axis must be programmed in a program block for traverse
movements at the start of a program and after a tool or swivel head is
replaced. This means that every axis is in the initial position. The
positioning logic determines the sequence of the traverse movements
in the rapid traverse.
Tool movement towards the workpiece:

G17 G18 G19


1. Axis movement A+B A+B A+B

2. Axis movement X+Y X+Z Y+Z

3. Axis movement Z Y X

Tool movement away from the workpiece:

G17 G18 G19


1. Axis movement Z Y X

2. Axis movement X+Y X+Z Y+Z

3. Axis movement A+B A+B A+B

Changes to V5xx
„ See "G0..G3_G91" on page 492.

HEIDENHAIN MillPlus V600 95


5.1 G0 Rapid Traverse
Example
Positioning with rapid traverse

G0 X25 Y15 Z30


G0 P1=80 P2=P1

G0 Simultaneous movement in the main plane XY, then


in the tool axis Z
G0 The predefined point 80 is approached with rapid
traverse followed by point 1.

96 5 G0-G99 G Codes
5.2 G1 Linear Interpolation

5.2 G1 Linear Interpolation


Traverse movements are executed on a linear interpolated basis with
the specified feed rate.

Support picture

Address description
 X, Y, Z end point coordinates
 B, C end point angles
 B1= angle
 B2= polar angle
 L1= path length
 L2= polar length
 ?90= end point abs. (X,Y,Z..)
 ?91= end point incr. (X,Y,Z..)
 P1= .. P4= point definition number

Format
„ Linear interpolation in the main plane: G1 {X...} {Y...} {Z...} {F...}
„ 3D-interpolation: G1 X... Y... Z... {F...}
„ One rotary axis: G1 {A...} {B...} {C...} {F...}
„ Movements in more than one axis: G1 {X...} {Y...} {Z...} {A...} {B...}
{C...} {F...

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

Default setting
The modal function G1 is deleted by G0, G2, G3, G6, End of program
(M30), Cancel program, and CNC reset. G1 is automatically effective
after G36 is executed.

HEIDENHAIN MillPlus V600 97


5.2 G1 Linear Interpolation
Application
Point definition
A G1 block can contain up to four predefined points (Pn or P1=, P2=,
P3=, P4=).
The procedure is determined by:
„ The sequence: G1 P10 P1 P7 P11 or
„ The point definition: G1 P1=10 P2=1 P4=11 P3=7.
The combination of Pn and P1...4=n is not permitted.

Rotary axis and the kinematic model


Every machine is equipped with a kinematic model. This means that
the rounding radius between the center point of the rotary axis and the
tool is automatically calculated if G94 F5=1 is active.
A40=, B40=, or C40= therefore no longer have to be programmed but
are still available for old programs.

Changes to V5xx
„ See "G0..G3_G91" on page 492.
„ See "G1, G41 und G64" on page 493.

98 5 G0-G99 G Codes
5.2 G1 Linear Interpolation
Example
3D interpolation (see figure)

G1 X20 Y10 Z40

Programming rotary axes with a linear axis (see figure)

G0 X10 Y0 Z4 C0
G1 Z-10 F600
G94 F5=1
G1 C360 F1000
G0 Z20

One rotary axis and one linear axis (see figure)

G0 X20 Y0 Z4 C0
G1 Z-10 F600
G94 F5=1
G1 X5 C=360+270 F1000
G0 Z20

HEIDENHAIN MillPlus V600 99


5.2 G1 Linear Interpolation Thread on a cylindrical surface (see figure)

G0 X80 Y0 Z22 A0
G1 Z18 F600
G94 F5=1
G1 X20 A=360*10 F1000
G0 Z30

100 5 G0-G99 G Codes


5.3 G2 Circular CW

5.3 G2 Circular CW
Execution of a circular, clockwise movement with a programmed feed
rate.

Support picture

Address description
 X, Y, Z end point coordinates
 B, C end point angles
 I center point in X/pitch in X
 J center point in Y/pitch in Y
 K center point in Z/pitch in Z
 R circle radius
 B1= angle
 B2= polar angle
 B3= polar angle for center
 B5= angle of arc
 L1= path length
 L2= polar length
 L3= polar length for center
 ?90= absolute center point (X,Y,Z..I,J,K)
 ?91= incremental center point(X,Y,Z..I,J,K)
 P1= point definition number

Format
„ Full circle: G2/G3 [center point]
„ Arc less than or equal to 180: G2/G3 [end point] R...
„ More than one arc with the same radius using preprogrammed
points, where the arc is less than or equal to 180: G2/G3 P1=...
P2=.... P3=... P4=... R...
„ Arc less than or greater than 180: G2/G3 [center point] [end point]
G2/G3 [center point] B5=..
„ 2.5D- interpolation G2/G3 [center point] [end point of arc] [end point
of linear- or rotary axis].
„ Spiral: G2/G3 center point] [end point of arc] [end point of linear- or
rotary axis] [pitch] G2/G3 [center point] [pitch] B5=...

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

HEIDENHAIN MillPlus V600 101


5.3 G2 Circular CW
Default setting
The modal function G2 is deleted by G0, G1, G3, G6, End of program
(M30), Cancel program, and CNC reset.

Application
Arc greater than 180°
Center point coordinates

G17 G2/G3 I... J...


G18 G2/G3 I... K...
G19 G2/G3 J... K...
„ Absolute center point coordinates (G90): center point coordinates
relative to the program zero point (see Figure A)
„ Incremental center point coordinates (G91): center point
coordinates relative to the starting point (see Figure B)
„ Polar center point coordinates: G2/G3 L3=... B3=... (G17/G18/G19)
(see Figure C)
End point coordinates
„ Cartesian end point coordinates

G17 G2/G3 X...Y...


G18 G2/G3 X... Z...
G19 G2/G3 Y... Z...
„ Absolute end point coordinates (G90): end point coordinates relative
to the program zero point.
„ Incremental end point coordinates (G91): end point coordinates
relative to the starting point.

Polar end point coordinates


„ End point coordinates relative to the program zero point.
G2/G3 L2=... B2=... (G17/G18/G19) (see Figure D)
„ End point coordinates relative to the starting point G2/G3 L1=...
B1=... (G17/G18/G19) (see Figure E)
„ Angle from arc: G2/G3 B5+... (G17/G18/G19). (see Figure F)

102 5 G0-G99 G Codes


5.3 G2 Circular CW
Circular movement not in the main plane
Arc to 180°
„ G2/G3 [end point coordinates for the linear axes] R..
„ G2/G3 [Cartesian coordinates of the circle center point]
Arc greater than 180°
„ G2/G3 [Cartesian coordinates of the end point and the circle center
point]
Radius compensation cannot be applied. (see figure).

Circular movement with simultaneous movement in the third


axis (2.5D)
Circle in the main plane
„ G2/G3 [circle definition] [tool axis]

Plane G17 G18 G19


Tool axis Z Y X

Circle not in the main plane


„ G2/G3 [Cartesian coordinates of the end point and the circle center
point] [tool axis].

Plane G17 G18 G19


End point X and Y X and Z Y and Z

Center point I and J I and K J and K

Tool axis Z Y X

HEIDENHAIN MillPlus V600 103


5.3 G2 Circular CW Spiral interpolation

Plane G17 G18 G19


Tool axis Z Y X

Center point I and J I and K J and K


B3= and B3= and B3= and
L3= L3= L3=

Arc angle B5= B5= B5=

Spiral pitch K J I

The value of (B5=) can lie between 0 and 999999 degrees


(approx. 2777 revolutions).
Plane G17 G18 G19
Tool axis Z Y X

Arc end point X and Y X and Z Y and Z

Center point I and J I and K J and K

Spiral K J I
pitch

Changes to V5xx
„ See "G0..G3_G91" on page 492.
„ See "G2" on page 496.

104 5 G0-G99 G Codes


5.3 G2 Circular CW
Example
Arc to 180° (see figure)
G1 X40 Y35
G2 X55 Y20 R15

G1 Linear movement
G2 Circular CW

Programming a spiral (see figure)

G0 X40 Y40 Z1.5


G1
G43 Y61
G42
G2 I40 J40 K1.5 B5=4320
G40
G1 Y40

G0
G1
G43 Tool radius compensation to workpiece (G43).
G42 Tool radius compensation right (G42).
G2 Circular CW (thread)
G40 Delete tool radius compensation (G40) .
G1

HEIDENHAIN MillPlus V600 105


5.4 G3 Circular Counter-Clockwise
5.4 G3 Circular Counter-Clockwise

Execution of a circular, counter-clockwise movement with a


programmed feed rate.

Support picture

Address description
 X, Y, Z end point coordinates
 B, C end point angles
 I center point in X/pitch in X
 J center point in Y/pitch in Y
 K center point in Z/pitch in Z
 R circle radius
 B1= angle
 B2= polar angle
 B3= polar angle for center
 B5= angle of arc
 L1= path length
 L2= polar length
 L3= polar length for center
 ?90= absolute center point (X,Y,Z..I,J,K)
 ?91= incremental center point(X,Y,Z..I,J,K)
 P1= point definition number

Format
See G2

Default setting
The modal function G3 is deleted by G0, G1, G2, G6, End of program
(M30), Cancel program, and CNC reset.

Application
See G2.

Changes to V5xx
„ See "G0..G3_G91" on page 492.

106 5 G0-G99 G Codes


5.5 G4 Dwell Time

5.5 G4 Dwell Time


Insertion of a dwell time (seconds or number of revolutions) in the
execution of a program.

Support picture

Address description
 X dwell time in sec.
 D dwell time in revolutions of S
 D1= dwell time in revolutions of S1

Format
G4 X... or D or D1=
„ Minimum dwell time: 0.1 seconds
„ Maximum dwell time: 983 seconds (approx. 16 minutes)

Application
Input values
„ Dwell time (X) 0.1-983 seconds
„ Revolutions (D or D1=) 0--9.9

Example
Dwell time
G4 X2.5

G4 Dwell time
X2.5 This block effects a dwell time between two
operations of 2.5 seconds.

Revolutions
G4 D2

G4 Dwell time
D2 This block effects a dwell time between two
operations that lasts for 2 spindle revolutions.

HEIDENHAIN MillPlus V600 107


5.6 G7 Tilting Working Plane
5.6 G7 Tilting Working Plane

The G7 function is used to define and execute the rotation of the


working plane for four or five-axis machines.
The machining programmed on the main plane (G17) is then carried
out on the tilted working plane. The tool axis orients itself
perpendicular to the new plane.

Support picture

Address description
 A5=, B5=, C5= angle of rotation absolute This is used to define
the absolute rotations around the relevant positive axes. The
rotations are calculated as follows:
„ The active G7 rotation is canceled
„ C5= Rotation around the machine-based positive Z axis
„ B5= Rotation around the current positive Y axis
„ A5= Rotation around the current positive X axis
 A51=, B51=, C51= incremental spatial angle The new working
plane is defined by adding the incremental angle to the active
angles. This means that the incremental angles are defined in the
machine-based coordinate system.
 A7=, B7=, C7= E par. for position in A, B, C Reading of
calculated rotary axis position. Contains the number of an E
parameter. The calculated position of the corresponding rotary axis
is stored in this E parameter.
 L tool length offsetIf the tilting movement takes place around the
tool tip (L1=2), L defines an allowance in the tool direction between
the programmed end point and the tool tip.
 L1= 0=no move.,1=rot.axis, 2=tool tip The G7 tilting movement
is carried out on an interpolating basis with rapid traverse. It tilts the
tool axis onto the defined plane. Address L1= determines which
axes move.
„ L1=0 The axes do not move (default position). The tilting
movement can be carried out in a subsequent block using the E
parameters that are loaded with A7=, B7=, or C7=.
„ L1=1 Only the rotary axes interpolate, the linear axes do not
move.
„ L1=2 The rotary axes and the linear axes interpolate. This means
that the tool tip remains in the same position relative to the
workpiece.

108 5 G0-G99 G Codes


5.6 G7 Tilting Working Plane
 I1= switch off temporarily The plane currently being tilted can
be temporarily suppressed and re-activated without re-
programming the spatial angle. Note:This function is used via the
soft key whereby the tilted plane is temporarily switched off in
manual operation.
„ I1=0: Tilted plane is activated
„ I1=1: Tilted plane is suppressed.
 B47= E par. for rotation main plane Reading of main plane.
Contains the number of an E parameter. The calculated angle of the
main plane is set in this E parameter.

Format
G7 {A5=..} {B5=..} {C5=..} {A51=..} {B51=..} {C51=..} {A7=..} {B7=..}
{C7=..} {L1=..} {L..} {L2=..} {I1=...} {B47=..}

Default setting
The modal function G7 is only canceled after programming of G7 only
(without angle parameters) or after Advance to reference point or CNC
reset. G7 is NOT canceled after Program end (M30) or Cancel
program.
Default setting L1=0.

G7 remains active after the control is switched off and on.


You can then traverse the G7 plane.

HEIDENHAIN MillPlus V600 109


5.6 G7 Tilting Working Plane
Application
Spatial angles
The programming is independent of the machine configuration. The
rotation of the planes is calculated relative to the current zero point.
The movement depends on the machine configuration.

A G7 block must contain either absolute or incremental


programming.

G codes that are not allowed when G7 is switched on


The following (modal) G codes must not be active if G7 is switched on:
„ G6, G9, G19, G41, G42, G43, G44, G61, G64, G73, G141, G182,
G197, G198, G199, G280, G281, G282, G283, G284, G285, G286

G codes that are not allowed within G7


The following G codes are not permitted if G7 is active:
„ G6, G19, G66, G67, G182, G339.

G codes that are not allowed when G7 is switched off


The following (modal) G codes must not be active if G7 is switched off:
„ G9, G41, G42, G43, G44, G61, G64, G73, G141, G197, G198, G199,
G280, G281, G282, G283, G284, G285, G286

Switching off the G7 function


The effect of G7 is canceled by programming G7 without angle
parameters.

We recommend that you program a G7 without


parameters at the start of every program with G7. This
means that the plane is always reset when the program is
started (cancelation within the tilted plane and restart).
Without this G7 at the start, the first part of the program
would be executed in the tilted plane instead of the plane
that is not tilted.
This programming is similar to the programming with G17/
G18 - various zero points or various tools.

M functions that are not allowed when G7 is switched on


The following M functions must not be active if G7 is switched on:
M53, M54

110 5 G0-G99 G Codes


5.6 G7 Tilting Working Plane
M functions that are not allowed within G7
The following M functions are not allowed if G7 is active: M6, M46,
M53, M54, M60, M61, M62, M63, M66

Alternative tilting options in the machine's range of traverse


The CNC checks which tilting options are possible in the range of
traverse of the rotary axes (to the left or to the right).
„ If there is no tilting option, an error message is issued
„ If there is only one tilting option, then this is used
„ If there are two tilting options, then the one (L2=0 or not
programmed) with the shortest traverse path is used. The shortest
traverse path is not always possible
The L2= address can be used to control which tilting option has to be
used. L2=1/2/3 means that the A/B/C axis is positioned so that it
adopts a positive angle. A negative L2= means that a negative angle
is adopted.

Rotary axes
The rotary axes can be programmed as normal on the tilted plane. The
programmer is responsible for ensuring that the position of the rotary
axes conforms with the G7 rotation.
Display
A yellow symbol is shown in the display if G7 is active. A small "p" to
the right of the "axis letters" shows whether the position is shown in
the tilted machining plane or in machine coordinates.

Changing the tool, pallet, or adapter spindle


No pallet, swivel head, or tool change can be performed if G7 is active.
An error is issued and the program must be terminated. G7 must be
deactivated before these changes can be made.
Tilting the working plane with M53/M54
The swivel head positioning M53/M54 must be deselected with M55
before programming G7 in mixed operation with G7 and M53/M54.
This may involve deselecting active head removal.

HEIDENHAIN MillPlus V600 111


5.6 G7 Tilting Working Plane Messages
Message Plane not clearly defined.
The G7 plane is defined with a mixture of absolute
angles (A5=, B5=, C5=) and incremental angles
(A51=, B51=, C51=).
Solution Only use absolute or incremental angles. If
necessary, several G7 definitions with incremental
angles can be defined in succession.
Message Program level not accessible.
The defined G7 tilted position is not accessible due to
a restricted area of the rotary axes.
Solution The head can be tilted for certain machine types,
which can make the level accessible.
The relevant rotary axis is rotated if the desired rotation of the working
plane corresponds to the rotation of this rotary axis. For example, the
programming G7 C5=30 on a machine with a (actual) C axis produces
a 30º rotation of the C axis.

Changes to V5xx
„ See "G7" on page 497.

Procedure
The new plane is activated with the current zero point.
1 The tool axis orients itself perpendicular to the new plane. The
machine configuration and the programming determine which
axes actually move
2 The display shows the coordinates on the new (tilted) plane. The
manual operation orients itself to the new plane

112 5 G0-G99 G Codes


5.6 G7 Tilting Working Plane
Example
Tool change
G7 B5=45 L1=1
T14
...
G0 Z200
G7 B5=0 L1=1
M6 T14
G0 X... Y... Z...
G7 B5=45 L1=1

G7 Plane is set
T14 Tool preselection
...
G0 The tool axis is retracted
G7 Deselect G7
M6 Tool change
G0 Rapid traverse to the new starting position
G7 Head is turned back to the G7 plane

HEIDENHAIN MillPlus V600 113


5.6 G7 Tilting Working Plane Workpiece with tilted working plane
Program example:

G7 L1=1 Reset G7

G81 Y1 Z-30 Drilling cycle definition


G79 X40 Z0 Drill the first hole in the horizontal plane
G79 X90 Drill the second hole in the horizontal plane
Other movements in the horizontal plane
G0 X130 Z50 The tool is set to the safety clearance
G93 X130 The zero point is set to the start of the tilted working plane
G7 B5=30 L1=2 L50 OR B5=30 L1=1 G7 Definition of a new working plane B5=30 angle of rotation L1=2
tool/table rotates around the tool tip L50 extra allowance in the tool
direction. This means that the tool rotates around the zero point. The
distance from the tool tip to the zero point is 50 mm
G79 X30 Z0 Drill the first hole in the tilted working plane
G79 X70 Drill the second hole in the tilted working plane
Other movements in the tilted working plane
G7 L1=2 L50 OR L1=1 Turn back to the horizontal plane.

114 5 G0-G99 G Codes


5.6 G7 Tilting Working Plane
Determining the zero point with G7 and G54 I {no.}
Procedure:
1 G54 I[no.] can be active, only B4= must be zero
2 Pivot G7 with free input (e.g. B5-45 C5=-45 L1=1 (only rotate
rotary axes))
3 Position manually with the touch probe in the center of a hole.
3 Start program N54
Program example:

E1=35 E1=zero point number.


E2=20 E2=hole radius.
G54 I=E1 X0 Y0 Z0 A0 B0 C0 B4=0 Set zero point to zero.
G51
G53 All zero point shifts are stopped.
G326 X7=50 Y7=51 Z7=52 Read and store the current position of the touch probe. E50= X,
E51=Y, E52=Z.
M27
MEASURE IN G7 PLANE, FIRST
MEASUREMENT IN POSITIVE X DIRECTION
G0 X=E50+(E2-5) Y=E51 Z=E52 To starting position. 5 mm before edge of hole. Collision if E2=<5.
G145 X=E50+(E2+10) Y=E51 Z=E52 L0 X7=49 X, Y, Z end position, X is edge+10 (verification distance is 10 mm).
F2=50 E40 I3=0 L0 measure on contact.
X7=49 measuring position in E49.
F2=50 measurement feed.
E40 measuring status in E40.
I3=0 status monitoring on.
G29 E41 E40<>1 N=24 Jump to program end if no measuring point is determined.
G0 X=E50-(E2-5) Y=E51 Z=E52 To the starting position of the second measurement in negative X
direction.
G145 X=E50-(E2+10) Y=E51 Z=E52 L0 X7=48
F2=50 E40 I3=0
G29 E41 E40<>1 N=24 Jump to program end if no measuring point is determined.
G0 X=E50 Y=E51+(E2-5) Z=E52 To the starting position of the third measurement in positive Y
direction.
G145 X=E50 Y=E51+(E2+10) Z=E52 L0 Y7=47
F2=50 E40 I3=0
G29 E41 E40<>1 N=24 Jump to program end if no measuring point is determined.
G0 X=E50 Y=E51-(E2-5) Z=E52 To the starting position of the third measurement in negative Y
direction.

HEIDENHAIN MillPlus V600 115


5.6 G7 Tilting Working Plane
G145 X=E50 Y=E51-(E2+10) Z=E52 L0 Y7=46
F3=50 E40 I3=0
G29 E41 E40<>1 N=24 Jump to program end if no measuring point is determined.
MEASURE PERPENDICULAR TO THE G7
PLANE, FIFTH MEASUREMENT IN NEGATIVE
Z DIRECTION
G0 X=E49+5 Y=E51 Z=E52+5 To starting position above material
G145 X=E49+5 Y=E51 Z=E52-10 L0 Z7=45 F2=50
E40 I3=0
G29 E41 E40<>1 N=24 Jump to program end if no measuring point is determined.
G54 I=E1 X=(E49+E48):2 Y=(E47+E46):2 Z=E45 Set zero point. X, Y, and Z must be entered. These coordinates are
converted and then stored in the original machine coordinate
system.
G0 X0 Y0 Z0 Center of hole. Display of coordinates, all are zero.
N24 M28 M function for switching off the touch probe.

116 5 G0-G99 G Codes


5.7 G8 Tilting Tool Orientation

5.7 G8 Tilting Tool Orientation


Programming of a tilted tool for four or five axis machines.
The "Tilt tool" function allows you to tilt the tool direction relative to the
working plane. This enables inclined-tool machining and significantly
improves the cutting conditions for milling and thus the surface
definition.
See also G7 Tilting working plane.
L, R. and C from the tool table. (see figure)

Support picture

Address description
 L tool length offset
 A5=, B5=, C5= angle of rotation absolute Defines the absolute
angle by which the working plane rotates around the corresponding
positive axis.
 A6=, B6=, C6= angle of rotation incremental Defines the
incremental angle by which the working plane rotates around the
corresponding positive axis. The value lies between -359.999 and
359.999 [degrees].
 B7=, C7= E par. for position in B, C
 L1= 0=no move., 1=rot.axes, 2=tool tip
 L2= -/+1,2,3 = Neg/Pos A,B,C angle
 L3= radius compensation (0=on, 1=off)
 F6= block feed

Format
G8 {A5=... | A6=...} {B5=... | B6=...} {C5=... | C6=...} {A7=...} {B7=...}
{C7=...} {L...} {L1=...} {F6=...}

Default setting
The modal function G8 is only canceled after programming of G8 only
(without angle parameters) or after Advance to reference point or CNC
reset. G8 is NOT canceled after Program end (M30) or Cancel
program.
Default setting L1=0, L3=0.

HEIDENHAIN MillPlus V600 117


5.7 G8 Tilting Tool Orientation
Application
G codes that are not allowed within G8
The following G codes are not permitted if G8 is active:
G6, G19, G40, G41, G42, G43, G44, G141, G180, G182
Redefining the tool direction
The rotation of the tool direction can be defined in two ways:
Programming with A5=, B5=, or C5= parameters. This means that the
absolute rotations are defined around the corresponding positive axes.
The rotations are calculated as follows:
1 The active G8 rotation is canceled.
2 C5= rotation around the machine-based positive Z axis.
3 B5= rotation around the positive Y axis.
4 A5= rotation around the positive X axis.
Programming with A6=, B6=, or C6= parameters. This means that the
incremental rotations are defined around the corresponding positive
axes. The rotations are calculated as follows:
1 C6= rotation around the current G8 positive Z axis.
2 B6= rotation around the current G8 positive Y axis.
3 A6= rotation around the current G8 positive X axis.
The programming is independent of the machine configuration. The
rotation of the planes is calculated relative to the current zero point.
The movement depends on the machine configuration.

Querying a calculated angle position


 A7=, B7=, C7= E parameter Contains the number of the E
parameter in which the calculated angle for the relevant rotary axis
is set.

Alternative tilting options in the machine's range of traverse


The CNC checks which tilting options are possible in the range of
traverse of the rotary axes (to the left or to the right).
„ If there is no tilting option, an error message is issued.
„ If there is only one tilting option, then this is used.
„ If there are two tilting options, then the one (L2=0 or not
programmed) with the shortest traverse path is used. The shortest
traverse path is not always possible.
The L2= address can be used to control which tilting option has to be
used. L2=1/2/3 means that the A/B/C axis is positioned so that it
adopts a positive angle. A negative L2= means that a negative angle
is adopted.

118 5 G0-G99 G Codes


5.7 G8 Tilting Tool Orientation
Feed rate
F6= is a local feed rate that is only active in the block in which it was
programmed. In this case, this relates to the tilting of the tool. F is the
normal feed rate and also applies for the subsequent blocks.

Tilting movement
The G8 tilting movement is performed on an interpolating basis with
feed rate (F6=). It tilts the tool axis onto the defined plane. Which axes
move depends on the movement type L1=:
L1=0 The axes do not move (default setting)
L1=1 Only the rotary axes tilt, the linear axes do not move
L1=2 The rotary axes tilt and the linear axes execute a
"compensating movement". This means that the contact
point position remains X, Y, Z

Note: The tilting movement can be programmed or carried out


manually using the E parameters that are loaded with A7=, B7= or
C7=. The axes do not move.
The movement is just a rotation if the contact point lies on the tool
corner radius.
If the contact point is the tool tip and the corner radius (C) is smaller
than the tool radius (R), then a compensatory movement is carried out
so that the contact point moves from the tool tip to the corner radius.
In the case of cylinder milling (with corner radius C < milling radius R),
the following anomaly applies: During tilting from the perpendicular (1)
to a tilted position (2 -->3) or vice versa, the contact point moves from
the milling center to the corner radius and vice versa. A compensatory
movement at the tool tip ensures that the current contact position
X,Y,Z remains unchanged.

The movements when starting/canceling the tool


compensation within G8 can result in a risk of collisions.
The programmer (user) is responsible for avoiding this.

Tool length allowance (L)


If the tilting movement takes place around the tool contact point
(L1=2), L defines an extra allowance in the tool direction between the
center of rotation and the tool tip.

HEIDENHAIN MillPlus V600 119


5.7 G8 Tilting Tool Orientation Tool radius compensation (L3=)
The values L, R, and C are corrected for the tool during the "Tilt tool"
function (G8).
This G8 tool compensation is independent of G40, G41, G42, G43,
G44 and is always effective.
If the corner radius (C) is less than the tool radius (R), then a
compensatory movement is carried out at the beginning and end of
the tool compensation, so that the contact point moves from the tool
tip to the corner radius.
The current position of the linear axes is recalculated if the tool
dimensions (L, R, C) change during active G8.

Tool compensation
The values L, R, and C are corrected for the tool during the "Tilt tool"
function (G8), depending on the tool radius compensation (L3=). This
G8 tool compensation is independent of G40, G41, G42, G43, G44 and
is always effective. If the corner radius (C) is less than the tool radius
(R), then a compensatory movement is carried out at the beginning
and end of the tool compensation, so that the contact point moves
from the tool tip to the corner radius. The current position of the linear
axes is recalculated if the tool dimensions (L, R, C) change during
active G8.

Switching off the G8 function


The effect of G8 is canceled by programming G8 without angle
parameters.

We recommend that you program a G8 without


parameters at the start of every program with G8. This
means that the tool direction is always reset when the
program is started (cancelation for a tilted tool and restart).
Without this G8 at the start, the first part of the program
would be executed in the tilted plane instead of the plane
that is not tilted.
The programming is similar to the programming with G7/
G17/G18 - various zero points or various tools.

Graphic
G8 has no influence on the graphic.

Display
A yellow symbol is shown after the tool number in the display if G8 is
active. A small "p" to the right of the "axis letters" indicates whether the
position of the tool tip is shown or the position in machine coordinates.

Changes to V5xx
„ See "G8" on page 499.

120 5 G0-G99 G Codes


5.7 G8 Tilting Tool Orientation
Example
Workpiece with tilted working plane and tilted tool
The regular hexagon should be milled on the outside of the workpiece
surface. One-point-geometry with an angle is used. Sides 2 and 4 are
programmed as chamfers (see figure).
Program example:

G7 L1=1 Reset G7
G8 L1=1 Reset G8

G0 X130 Z50 The tool is set to the safety clearance.


G93 X130 The zero point is set to the start of the tilted working plane.
G7 B5=-30 L1=2 Define a new working plane.
B5=-30 angle of rotation
L1=2 tool/table rotates around the tool tip.
G8 B5=30 L1=2 Define a new tilted position for the tool.
B5=30 angle of rotation
L1=2 tool rotates around the tool tip and a compensatory movement
is carried out
Other movements in the horizontal plane
G8 Rotate the tool so it is perpendicular to the working plane again
(rotary and compensatory movement).
G7 L1=2 Turn back to the horizontal plane.

HEIDENHAIN MillPlus V600 121


5.8 G9 Define Pole Position
5.8 G9 Define Pole Position

Programming a pole. If a pole was programmed, the program blocks


with polar programming (angle and length) now relate to the last
programmed pole instead of to the zero point.
The pole is programmed depending on the modal valid measuring
system G90/G91. It can also be programmed word-oriented on an
absolute, incremental, or mixed absolute/incremental basis.

Support picture

Address description
 X, Y, Z pole coordinates
 B1= angle
 B2= polar angle
 L1= path length
 L2= polar length
 ?90= pole coordinate abs. (X,Y,Z..)
 ?91= pole coordinate incr. (X,Y,Z..)

Format
„ G17 active: G9 X... Y... {X90=...} {X91=...} {Y90=...} {Y91=...}
„ G18 active: G9 X... Z... {X90=...} {X91=...} {Z90=...} {Z91=...}
„ G19 active: G9 Y... Z... {Y90=...} {Y91=...} {Z90=...} {Z91=...}
„ Deactivate pole (equal to workpiece zero point) G9 X0 Y0
„ Pole in polar coordinates (G17, G18, G19 active):
Absolute: G9 B2=... L2=...
Incremental: G9 B1=... L1=...

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

G9 "Define pole position" is also used by the contour


programming G codes G251-G269.

122 5 G0-G99 G Codes


5.8 G9 Define Pole Position
Application
Pole definitions
Pole definitions are only allowed in the active working plane. The pole
is set to 0 (zero) when the plane is changed with G17, G18, G19. The
pole is at the workpiece zero point before the G9 block is called. (Pole
= 0). The pole is effective modally.

Deactivating
This function is modal and is deactivated by programming a pole with
coordinates (0.0).

Defining the end point on a polar basis


In the case of absolute polar programming, the pole lengths L1= or
L2= and polar angles B1= or B1= relate to the pole instead of the zero
point.
If no pole was defined, the pole=0 (zero) and is thus equal to the active
zero point.

Polar point definitions


Polar point definitions with poles are possible in the following G codes:
G0, G1, G40, G44, G61, G62, G77, G78, G79, G145.

Polar circle definitions


The center and end point in G2 and G3 blocks can be programmed on
a polar basis with a pole.

Pole in absolute coordinates (see figure)


The programmed coordinates relate to the workpiece zero point.
„ B= pole
G9 X... Y...

Pole in incremental coordinates (see figure)


The programmed coordinates relate to the actual position:
„ A= existing pole
„ B= new pole
G9 B1=... L1=...

Mixture of coordinates
A mixture of different coordinates is also allowed. Absolute,
incremental, and polar are possible.

Changes to V5xx
„ See "G9_B2" on page 499.

HEIDENHAIN MillPlus V600 123


5.8 G9 Define Pole Position
Example
Possible movements with different pole coordinates
G9 X30 Y40
G9 X91 Y91=40
G9 X30 Y91=40
G9 L2=30 B2=45
G9 L1=30 B1=45
G9 L2=30 B1=45
G9 X30 B1=45
G9 X30 B2=45
G9 X30 L1=45

G9 Absolute Cartesian coordinates


G9 Incremental Cartesian coordinates
G9 Mixed absolute and incremental Cartesian coordinates.
G9 Absolute polar coordinates.
G9 Incremental polar coordinates.
G9 Mixed absolute and incremental polar coordinates.
G9 Absolute and incremental angle.
G9 Absolute and absolute angle.
G9 Absolute and incremental length.

Polar programming (see figure)

G9 X48 Y39
G1 B2=135 L2=44
G1 B2=90 L2=42
G1 B2=45 L2=35

G9 Definition of a new pole


A = new pole
G1 Definition of the end point coordinates, relative to the new pole
G1 Definition of the end point coordinates, relative to the new pole
G1 Definition of the end point coordinates, relative to the new pole

124 5 G0-G99 G Codes


5.9 G11 Linear Chamfer Rounding

5.9 G11 Linear Chamfer Rounding Cycle


Cycle
Programming in a block of one or two linear movements with chamfer
or rounding. The application of the function is restricted to existing
programs. Please do not use it for new programs.

Support picture

Address description
 X, Y, Z end point coordinates
 B first angle
 K first chamfer length
 L first length
 R first rounding radius
 X1=, Y1= end point of second element
 B1= second angle
 K1= second chamfer length
 L1= second length
 P1= point definition number
 R1= second rounding radius

Format
„ One-point-geometry(XY-plane)
G11 X... Y... {K...} {R...}
G11 B... L... {K...} {R...}
„ Two-point-geometry(XY-plane)
G11 X... Y... X1=... Y1=... {K...} {R...} {K1=...} {R1=...}
G11 B... L... X1=... Y1=... {K...} {R...} {K1=...} {R1=...}
G11 X... Y... B1=... L1=... {K...} {R...} {K1=...} {R1=...}
G11 B... L... B1=... L1=... {K...} {R...} {K1=...} {R1=...}
„ Two-line-geometry(XY-plane)
G11 B... X... Y... B1=... {K...} {R...} {K1=...} {R1=...}
The angles B and B1= must be programmed in the correct direction.

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

HEIDENHAIN MillPlus V600 125


5.9 G11 Linear Chamfer Rounding Cycle
Basic functions
One-point geometry
Programming in a block (see figure)
„ Of the end point (P1) of a linear movement.
„ Of a symmetrical chamfer (K) or rounding (R) between this and the
next linear movement (if necessary).

Two-point geometry
Programming in a block (see figure)
„ Of the end points (P1 and P2) of two separate linear movements.
„ Of a symmetrical chamfer (K) or rounding (R) between these
movements (if necessary).
„ Of a symmetrical chamfer (K1=) or rounding (R1=) between the last
and the next linear movement (if necessary).

Two-line geometry
Programming in a block of two separate linear movements: (see
figure)
„ The first linear movement with the angle with the principal axis.
„ The second linear movement with the end point and the angle with
the principal axis.
„ A symmetrical chamfer or rounding between these movements (if
necessary).
„ A symmetrical chamfer or rounding between the last and the next
linear movement (if necessary).

126 5 G0-G99 G Codes


Application

5.9 G11 Linear Chamfer Rounding Cycle


Feed rate
All traverse movements programmed in a G11-block are carried out
with the same feed rate.

Single block
Every contour train is carried out separately in a single block.

Incremental next block


If the next block is programmed on an incremental basis, then this
block is incremental from the end point of the last chamfer or
rounding.

The movement immediately after a G11-block


If a second chamfer (K1=) or a second rounding (R1=) is programmed,
then the block immediately after the G11-block must contain either
the function G1 or G11. If a G11-block is programmed immediately
after the G11-block, then both end point coordinates (e.g. X... and Y...)
must be specified.

Limitation
1 The G11- function must not be used for geometry calculations
(G64 active).
2 The G11- function must not be used to define a pocket or island
contour for the universal pocket cycle (G200 to G208).
3 A tool axis must not be programmed for G11.

Changes to V5xx
„ See "G11" on page 499.

HEIDENHAIN MillPlus V600 127


5.9 G11 Linear Chamfer Rounding Cycle
Example
One-point geometry
The regular hexagon should be milled on the outside of the workpiece
surface. One-point-geometry with an angle is used. Sides 2 and 4 are
programmed as chamfers.
Program example:

N9010
G17 T1 M6 Activate main plane. Insert tool
G0 X100 Y10 Z-10 S1000 M3 Switch spindle on. Move the tool to point P and then to
the working depth
G1 F300 Define the feed rate as 300 mm/min
G43 X60 Move the tool to the corner of the hexagon
G41 Y0 Call the radius compensation LEFT
G11 B-90 L103.923 K60 Sides 1 and 2 are milled
The following have been programmed:
- The point of intersection for sides 1 and 3
- The chamfer (K expression) around this point
G11 B150 L103.923 K60 Sides 3 and 4 are milled
The following have been programmed:
- The point of intersection for sides 3 and 5
- The chamfer (K expression) around this point
G11 B60 L60 Side 5 is milled
G11 B0 L60 Side 6 is milled
G40 Delete radius compensation
G1 X100 Y10 Move the tool away from the workpiece
G0 Z100 M30 Tool retraction and end of program

128 5 G0-G99 G Codes


5.9 G11 Linear Chamfer Rounding Cycle
Two-point geometry

The regular hexagon should be milled on the outside of the workpiece


surface. Two-point-geometry with angles and increments is used.
Sides 2 and 5 are programmed as chamfers. (Same figure as for
example 1).
Program example:

N9011
G17 T1 M6 Activate main plane. Insert tool
G0 X100 Y10 Z-10 S1000 M3 Switch spindle on. Move the tool to point P and then to the working
depth.
G1 F300 Enter the linear movement and specify the feed rate.
G43 X60 Move the tool to the corner of the hexagon,
G41 Y0 Call the radius compensation LEFT.
G91 Switch to incremental measurement programming. The length
values in the next blocks are measured from the previous tool
position.
G11 B-120 L120 K60 B1=-120 L1=120 Sides 1, 2, and 3 are milled.
The following have been programmed:
- The point of intersection for sides 1 and 3 (B and L)
- The chamfer (K-expression) around this point
- The end point of side 3 (B1= and L1=).
G11 B60 L120 K60 B1=-60 L1=120 Sides 4, 5, and 6 are milled.
The following have been programmed:
- The point of intersection for sides 4 and 6 (B and L)
- The chamfer (K-expression) around this point
- The end point of side 6 (B1= and L1=).
G40 Delete radius compensation.
G90 Switch back to absolute measurement programming.
G1 X100 Y10 Move the tool away from the workpiece
G0 Z10 M30 End of program

HEIDENHAIN MillPlus V600 129


5.9 G11 Linear Chamfer Rounding Cycle Two-line geometry
F = milling path
R = radius compensation
W= tool radius
The inner pocket can be programmed in two-line geometry operation
using the G11 function.
Two-line geometry

N9012
G17 T1 M6 Activate main plane. Insert tool (milling tool diameter 10 mm).
G0 X80 Y25 Z0 S1000 M3 Switch spindle on. Move the tool to point B and then above the
workpiece.
G1 Z-10 F300 Move the tool to working depth.
G43 X105 Move the tool to the starting point for the entry circle.
G42 Call the radius compensation RIGHT.
G2 X80 Y0 R25 F300 Advance to the contour over the entry circle.
G11 X0 Y90 B180 B1=90 R15 R1=15 Mill- Along the X axis (B180)
- Along the radius (R15)
- Along the Y-axis (B1=90)
- Along the second radius (R1=15).
G11 X60 Y150 B0 B1=90 R1=15 Mill- Parallel to the X-axis (B0)
- Parallel to the Y-axis (B1=90)
- Along the second radius (R1=15).
G11 X200 Y0 B0 B1=120 R15 R1=20 Mill -parallel to the X-axis (B0)
- Follow the first radius (R15)
- Along the 60-ramp (B1=120)
- Follow the second radius (R20).
G1 X80 Y0 Mill along the X-axis up to the starting point of the circular movement
that leaves the contour.
G2 X55 Y25 R25 Leave the contour with a circular movement.
G40 Delete radius compensation.
G0 Z200 M30 Tool retraction. End of program.

130 5 G0-G99 G Codes


5.10 G14 Repeat Function

5.10 G14 Repeat Function


Repetition of a specific number of blocks in a part program or
subprogram.

Support picture

Address description
 J number of repeats
 K repeat decrement
 N1= repeater begin block
 N2= repeater end block

Format
G14 N1=... {N2=...} {J...} {K...}

Application
„ The block numbers N1= and N2= must both be in the same part
program or subprogram.
„ If N2= is not programmed, then only the block identified with N1=
is repeated in accordance with specifications.
„ If the parameter for the number of repetitions J is not programmed,
the program run is only repeated once. J does not have to be a
whole number. The number of repetitions is determined by the
value before the decimal point
„ A repeating program run can be incorporated into another repeating
program run. The nesting depth can be adjusted in the configuration
file "CfgNestingLevels( repeatlevels:=4)"
„ Only one repetition is carried out in a G14 block, if J>0. The CNC
uses the standard value K1 if the K parameter is not programmed.

Changes to V5xx
„ See "G14_E" on page 500.

HEIDENHAIN MillPlus V600 131


5.10 G14 Repeat Function
Example
Programming a repeat function
N10
N13
N14 G14 N1=10 N2=13 J4 ‘REPEAT BLOCKS N10-N13
N15 E2=4
N17
N19
N20 G14 N1=17 N2=19 J=E2 ‘REPEAT BLOCKS N17-N19
N27
N29
N30 G14 N1=17 N2=19 J4 K2 ‘REPEAT BLOCKS N27-N29

132 5 G0-G99 G Codes


5.11 G17 Main Plane XY, Tool Z

5.11 G17 Main Plane XY, Tool Z


The position of the tool axis is determined by the main spindle of the
tool machine. G17 is used to specify that the main plane for the milling
work is the XY-plane and that the tool axis is the Z axis.

Support picture

Address description
No specific addresses.

Application
Modality
G17 is modal with G18 and G19.

Default setting
The last active plane always takes effect after switch-on.

Operations in the plane


The calculations required for the radius compensation, geometry
(G64), polar coordinates, milling cycles, pocket cycles etc. are
executed in the current plane, i.e. in the XY-plane in the case of G17.

Operations in the tool axis.


The tool length compensation and the fixed cycles for drilling work are
executed in the current tool axis.

Milling head
When a milling head is used, the axis configuration of the tool machine
remains unchanged. The tool axis and the tool length compensation
are determined by the head position.

Deleting
The G17 function is deleted by switching to a different working plane
using G18 or G19.

HEIDENHAIN MillPlus V600 133


5.11 G17 Main Plane XY, Tool Z
Turning
Format
G17 Y1=... Z1=...

Application
The machine can process workpieces in various working planes when
turning. The working plane during turning (G36) is defined with:
„ G17 Y1= 1 Z1=2, tool axis Z (vertical) (see figure).
The G17 function defines the axis in which the tool data for length (L)
and radius (R) is calculated:
„ G17: L in Z direction, R in Y direction
During turning, machining is carried out as individual DIN commands
in the YZ or XZ working area. In the various working planes, machining
with turning cycles is only carried out in the YZ working surface.

Note
„ Y1=1 (first main axis); Z1=2 (second main axis).
„ The angle (positive) and circle direction (CW) are defined from the Y
axis to the Z axis.
„ The G17 plane during turning overwrites the current G17/G18 plane
during milling.
„ G37 (milling) switches the G17 plane during turning back to the
current G17/G18 plane during milling.
„ Depending on the tool orientation (O), the tool radius (R) is
calculated as a shift in the Y axis.

134 5 G0-G99 G Codes


5.12 G18 Main Plane XZ, Tool Y

5.12 G18 Main Plane XZ, Tool Y


The position of the tool axis is determined by the main spindle of the
tool machine. G18 is used to specify that the main plane for the milling
work is the XZ-plane and that the tool axis is the Y axis.

Support picture

Address description
No specific addresses.

Application
Modality
G18 is modal with G17 and G19.

Default setting
The last active plane always takes effect after switch-on.

Operations in the plane


The calculations required for the radius compensation, geometry
(G64), polar coordinates, milling cycles, pocket cycles etc. are
executed in the current plane, i.e. in the XZ-plane in the case of G18.

Operations in the tool axis


The tool length compensation and the fixed cycles for drilling work are
executed in the current tool axis.

Milling head
When a milling head is used, the axis configuration of the tool machine
remains unchanged. The tool axis and the tool length compensation
are determined by the head position.

Deleting.
The G18 function is deleted by switching to a different working plane
using G17 or G19.

HEIDENHAIN MillPlus V600 135


5.12 G18 Main Plane XZ, Tool Y
Turning
Format
G18 =... Z1=...

Application
The machine can process workpieces in various working planes when
turning. The working plane during turning (G36) is defined with:
„ G18 Y1=1 Z1=2, tool axis Y (horizontal) (see figure).
The G18 function defines the axis in which the tool data for length (L)
and radius (R) is calculated:
„ G18: L in Y direction, R in Z direction
During turning, machining is carried out as individual DIN commands
in the YZ or XZ working area. In the various working planes, machining
with turning cycles is only carried out in the YZ working surface.
Note:
„ Y1=1 (first main axis); Z1=2 (second main axis).
„ The angle (positive) and circle direction (CW) are defined from the Y
axis to the Z axis.
„ The G18 plane during turning overwrites the current G17/G18 plane
during milling.
„ G37 (milling) switches the G18 plane during turning back to the
current G17/G18 plane during milling.
„ The tool radius (R) is calculated as a shift in the Z axis, depending on
the tool orientation (O).

136 5 G0-G99 G Codes


5.13 G19 Main Plane YZ, Tool X

5.13 G19 Main Plane YZ, Tool X


The position of the tool axis is determined by the main spindle of the
tool machine. G19 is used to specify that the main plane for the milling
work is the YZ-plane and that the tool axis is the X axis.

Support picture

Address description
No specific addresses.

Application
Modality
G19 is modal with G17 and G19.

Default setting
The last active plane always takes effect after switch-on.

Operations in the plane


The calculations required for the radius compensation, geometry
(G64), polar coordinates, milling cycles, pocket cycles etc. are
executed in the current plane, i.e. in the YZ-plane in the case of G19.

Operations in the tool axis


The tool length compensation and the fixed cycles for drilling work are
executed in the current tool axis.

Milling head
When a milling head is used, the axis configuration of the tool machine
remains unchanged. The tool axis and the tool length compensation
are determined by the head position.

Deleting
The G19 function is deleted by switching to a different working plane
using G17 or G18.

HEIDENHAIN MillPlus V600 137


5.14 G22 Subprogram Call
5.14 G22 Subprogram Call

Calling (with path specification if necessary) and execution of a


subprogram (macro) from a main program or subprogram using
standard operations.

Support picture

Address description
 E parameter definition
 N= subprogram name
 N5= folder
 O1= call status

Format
Calling a macro:
„ G22 N=... {N5=...} {E...=} {O1=E...}
Activating a macro on the condition that E...>0:
„ G22 E... N=... {N5=...} {E...=} {O1=E...}

Application
Subprogram name (N=)
The name of the subprogram can be a number or (N=...).
The desired subprogram can be called with a file name or the file
number. For this purpose, the full subprogram name (including
<.mm>) must be enclosed in double quotation marks <"> in the N=
parameter. For example, G22 N="subprogram.mm". The only file
name extension that is allowed is .mm.

Other directory (N5=)


The macro to be called can be located in another directory. The path
to this directory must be enclosed in double quotation marks <"> and
should be entered separately in the N5= parameter, or should be
before the file name in the N= parameter.
The path must be entered in full and final form, e.g.
N5="v:\nc_prog\Teil1\Makros\" or
N="v:\nc_prog\Teil1\Makros\makro.mm"

138 5 G0-G99 G Codes


5.14 G22 Subprogram Call
Querying the call status (O1=)
The status of the macro call can be queried using O1=E... The result
of the call is written in the E parameter.
„ E... = 0 macro call successful
„ E... = 1 macro call not successful, e.g. macro not found

Nesting macros
If another macro is called from within a macro, then the called macro
is referred to as a nested macro. At the end of a nested macro, the
execution of the calling macro is continued

Maximum nesting depth


The maximum nesting depth can be defined in a configuration
parameter for each channel, e.g.: NCchannel::channel1::macroCalls.
CfgNestingLevels (key:="Channel1", repeatLevels:=4,
programCalls:=1, macroCalls:=8).

M30 in a macro
The full program execution is stopped after M30 in a macro.

Procedure
A macro is executed in full if it is called from within a main program or
another macro. After the macro has been executed, program
execution continues with the next block after G22.

Example
Calling a macro from another macro. (see figure)
The macro 9001 is called in block N4 of main program 9451.
This macro is executed up to N3. Macro N9002 is called in this block.
Macro 9002 is processed in full before jumping back to the first block
after the G22 block in macro 9001. Execution of this macro is then
continued from N4 to the end. The system then jumps back to block
N5 of the main program 9451.

HEIDENHAIN MillPlus V600 139


5.15 G23 Program Call
5.15 G23 Program Call

Calling (with path specification if necessary) and execution of a main


program from within another main program.

Support picture

Format
G23 N=... {N5=...} {O1=E...}

Address description
 N program name
 N5= folder
 O1= call status

Application
Main program name (N=)
The desired main program can be called with the file name or the file
number. For this purpose, the full main program name (including
<.pm>) must be enclosed in double quotation marks <"> in the N
parameter. For example G22 N="main program.pm". The only file
name extension that is allowed is .pm.

Other directory (N5=)


The main program to be called can be located in another directory. The
path to this directory must be enclosed in double quotation marks <">
and should be entered separately in the N5= parameter, or should be
before the file name in the N= parameter.
The path must be entered in full and final form, e.g.
N5="v:\nc_prog\Teil1\Programme\" or
N="v:\nc_prog\Teil1\Programme\programm-2.pm"

Querying the call status (O1=)


The status of the main program call can be queried using O1=E... The
result of the call is written in the E parameter.
„ E... = 0 program call successful
„ E... = 1 program call not successful, e.g. program not found

140 5 G0-G99 G Codes


5.15 G23 Program Call
Nesting main programs
If another main program is called from within a main program, then the
called main program is referred to as a nested main program. At the
end of a nested main program, the execution of the calling main
program is continued

Maximum nesting depth


The maximum nesting depth can be defined in a configuration
parameter for each channel, e.g.: NCchannel::channel1::macroCalls.
CfgNestingLevels (key:="Channel1", repeatLevels:=4,
programCalls:=2, macroCalls:=8).

M30 in called main program


M30 must be programmed at the end of the called main program.
After this M30, the system jumps back to the calling main program.
This M30 does not stop program execution.
Notes
A macro can also contain a G23 function.
Main programs or macros that are called can contain jump
instructions.

HEIDENHAIN MillPlus V600 141


5.16 G25 Enable Feed/Speed
5.16 G25 Enable Feed/Speed Override
Override
Reactivation of the feed and speed override after being switched off
by G26.

Support picture

Address description
No specific addresses.

Default setting
G25 is automatically effective at the start of a part program.

Application
Modality
G25 is modal with G26.

Example
Switching on the feed and speed override
G25

G25 Switch on the feed and speed override

142 5 G0-G99 G Codes


5.17 G26 Disable Feed/Speed

5.17 G26 Disable Feed/Speed Override


Override
Deactivation of the feed and speed override. The feed rate and speed
are fixed at 100% if the override is disabled.

Support picture

Address description
 I2= 1=F100%; 2=S100%; 3=F+S100%

Format
G26 I2=

Default setting
I2=1 is activated if the address I2= is not programmed for G26.

Application
Disabling the feed override (F=100%):
„ G26 I2=1
„ G26
Disabling the speed override (S=100%):
„ G26 I2=2.
Disabling the feed and speed override (F and S=100%):
„ G26 I2=3

Modality
G26 is modal with G25.

Cancelation
G26 is deleted with G25, M30, Cancel program, or CNC reset.

Changes to V5xx
„ See "G26" on page 500.

HEIDENHAIN MillPlus V600 143


5.17 G26 Disable Feed/Speed Override
Example
Disabling the speed override
G26 I2=2

G26 I2=2 Disable the speed override, i.e. fix S at 100%

Disabling the feed and speed override


G26 I2=3

G26 I2=3 Disable the feed and speed override, i.e. fix F and S
at 100%

144 5 G0-G99 G Codes


5.18 G27 Reset Positioning

5.18 G27 Reset Positioning Functions


Functions
Deletion of the parameters for positioning logic behavior, as specified
in G28. Default settings become active.

Support picture

Address description
No specific addresses.

Format
G27

Application
Modality
G27 is modal with G28.

Deleting parameters
All parameters used for G28 are reset to their fixed default values with
G27, CNC reset, Cancel program, or by M30.
G27 is automatically effective at the start of an NC program.
G27 results in G28 I5=0 I6=100 I7=0

HEIDENHAIN MillPlus V600 145


5.19 G28 Positioning Functions
5.19 G28 Positioning Functions

Setting options for the positioning functions. The feed rate and rapid
traverse movements, positioning logic, acceleration, jerk and contour
tolerance can be defined.

Support picture

Address description
 I5= position logic: 0=with, 1=without
 I6= reduction acceleration/jerk [%]
 I7= contour tolerance

Format
G28 {I5=...} {I6=...} {I7=...}

Default setting
Deleting individual options: G28 {I5=0} {I6=100} {I7=0}
Deleting all options: G27

146 5 G0-G99 G Codes


5.19 G28 Positioning Functions
Application
The feed movement is performed without a precision stop. No stops
are taken into account between the movements.
The rapid traverse movement is executed with a precision stop. A stop
is taken into account between the movements.

G28
Positioning logic for G0
G28 I5=0 G0 with positioning logic (on-position)
G28 I5=1 G0 without positioning logic
Reducing acceleration and jerk
G28 I6=100 Factor I6= (between 5 and 100%, normal value 100%)
G28 I6=... overrules the following machine parameters:
Path: maxPathJerk and maxPathYank
Axis: maxAcceleration, maxDeceleration, and
maxJerk)
Address I6= is effective for G0, G1, G2, G3.
Movement with programmable contour tolerance
G28 I7=0 I7= between 0 and 10,000 [mm/inch]). Machine
G28 I7=... parameter pathTolerance applies as the normal value
for I7=0. Machine parameter pathToleranceHi is not
overruled by address I7=.
Address I7= is effective for G0, G1, G2, G3.

Changes to V5xx
„ See "G28" on page 501.

HEIDENHAIN MillPlus V600 147


5.20 G29 Jump Function
5.20 G29 Jump Function

Conditional or unconditional jump to another part program or macro


section in the same program. During the jump, the program is
continued from the block programmed under N=.

Support picture

Address description
 I search direction
 K jump decrement
 E jump condition: E > 0
 N= jump to block number

Format
G29 {E...} N=... {K...} {I...}

Application
The E parameter is used as the jump condition.
The jump is unconditional if E... has not been programmed.
If E... was programmed, the jump is only executed if the value of E...
is>0. The value of the E parameter is reduced by the value of the K
address if K >=0. If K <-0.5 , then an error message is issued.
The E parameter is reduced by 1 after each jump if the K address was
not programmed.
Further jump conditions such as =, <>, >, >=, <, <= can be
programmed if a relational expression is used together with the G29
function.
Jumps can be made both forwards and backwards in a program. This
can be controlled with the I address. With I=1 or I=0, only forward
searches are performed. If I=-1 or no data is specified, the system first
jumps to the start of the program before searching forwards for the
block number.

148 5 G0-G99 G Codes


5.20 G29 Jump Function
Example
Unconditional jump
G29 N=...

G29 Jump instruction


N=... Jump to block number

Conditional jump
N50 G1 ...
...
G29 E1 N=50 E1=E2>E3

G29 Jump instruction


E1 Jump condition
N=50 Jump to block number N=50
E1=E2>E3 Jump condition: if the value of E2 is greater than the
value of E3, then parameter E1 is assigned the value
1 before the jump to N... is made.

HEIDENHAIN MillPlus V600 149


5.21 G31 Tapping with Chip
5.21 G31 Tapping with Chip Breaking
Breaking
Basic function for tapping a thread, in several infeeds, up to the
programmed depth.

Support picture

Address description
 L depth Distance between the workpiece surface and the thread
end. The algebraic sign determines the working direction.
 F2= pitch Pitch of the thread. No algebraic sign. The feed rate is
calculated from the rotational speed and the thread pitch.
 D orientation angle spindle Angle at which the tool is positioned
before the thread is cut. This means you can recut the thread if
necessary. Only effective for interpolating tapping.
 L1= setup clearance Distance between the tool tip (starting
position) and the tool surface.
 C1= cutting depth until chip break Infeed which is followed by
a chip break. No algebraic sign.
 C5= retract distance for chip break The tool is retracted by the
specified distance during chip breaking. Entering 0 means that it is
fully retracted from the hole (to the safety clearance) for chip
removal. No algebraic sign.
 D3= dwell time at bottom Dwell time at the bottom of the thread.
 I1= guided or interpolated 0= guided, 1 =interpolating.
 I2= thread direction (0=right, 1=left) Specifies a right-hand
or left-hand thread:
I2=0 right-hand thread (clockwise)
I2=1 left-hand thread (counter-clockwise).

150 5 G0-G99 G Codes


5.21 G31 Tapping with Chip Breaking
Application
Retracting after a program interruption
To interrupt the tapping process, press the Stop spindle and feed
button and retract the tool from the hole in a controlled manner. The
spindle is automatically started (guided or interpolating) when it is
retracted so that the thread is not damaged.
Override
The feed rate is determined by the rotational speed. The speed is
automatically adjusted if you change the feed rate override during
tapping. The spindle override is not active.
End of movement
The spindle comes to a stop at the end of the movement. Before the
next operation, restart the spindle with M3 (or M4).

Procedure
„ Procedure for a guided tapping movement (I1=0)
Start with a running or stationary spindle. The tool axis is synchronized
with the spindle speed during the build-up of the movement. The tool
moves to thread depth at the calculated feed rate. The spindle speed
is reduced in line with the tool axis. The spindle comes to a stop at the
end of the movement.
„ Procedure for an interpolated tapping movement (I1=1)
Start with a stationary spindle. The spindle starting angle (D) is
approached if programmed. The spindle speed increases in line with
the tool axis. The tool moves to thread depth at the calculated feed
rate. The spindle speed is reduced in line with the tool axis.
1 Depending on the definition, the tool executes a spindle
orientation.
2 The tool travels the programmed safety clearance; the feed rate is
synchronized with the speed.
3 The tool moves to the programmed infeed depth, the direction of
spindle rotation is reversed, and the tool retracts by a specific
distance or fully for purposes of chip release, depending on the
definition.
4 The direction of spindle rotation is then reversed again and the tool
advances to the next plunging depth.
5 This process (3 to 4) is repeated until the programmed thread
depth is reached.
6 Waiting time; depends on the definition.
7 The tool is then retracted to the safety clearance and the spindle
comes to a stop.

HEIDENHAIN MillPlus V600 151


5.21 G31 Tapping with Chip Breaking
Example
Program example: (see figure)

T202 M6 S56 F140


G0 X50 Y50 Z0
G31 L9 F2=2,5 L1=5 C5=5 D3=1 I2=0

G0 Advance to the tapping position


G31 Perform tapping at the programmed position

152 5 G0-G99 G Codes


5.22 G37 Milling Operation

5.22 G37 Milling Operation


Ending turning.Switching the machine to milling operation.

Support picture

Address description
No specific addresses.

Application
„ The CNC reactivates the C-axis.
„ If the turning spindle is still rotating at the start of G37, it is stopped
first.
„ The position of the rotary axes is shown on the screen monitor with
a value between 0 and 359.999 degrees.
„ G94 is activated.
„ G37 remains active until it is canceled by G36. G37 is not canceled
by M30 or Cancel program. G37 is always active after control run-up
or CNC reset.

HEIDENHAIN MillPlus V600 153


5.23 G39 Tool Offset Change
5.23 G39 Tool Offset Change

The programmed contour can be changed by an offset.

Support picture

Address description
 L tool length offset
 R tool radius offset

Format
G39 {R...} {L...}: activate offset
G39 L0 and/or R0: deactivate offset

Default setting
G39 L0 R0
The G39 function is deleted by End of program (M30), Cancel program,
and CNC reset.

154 5 G0-G99 G Codes


5.23 G39 Tool Offset Change
Application
Tool length offset
The tool length offset operates in the direction of the infeed axis.
Changes to the tool length offset take effect with the next advance
movement.

Tool radius offset


The tool radius offset operates in the working plane and is only
effective during active milling radius compensation.
Changes to the tool radius offset when the milling radius
compensation is not activated only take effect after milling radius
compensation (G41/G42, G43/G44) has been activated.
Offset activation must not be programmed during active radius
compensation.
Offset programming is retained after a change of tool (M6, M66) or
plane (G17, G18, G19).
The offset R influences the tool corner radius C during turning (G36)
and is only effective with active radius compensation.
The offset of the tool corner radius is fully added to the center point of
the corner radius (as for orientation 0), and is therefore independent of
the active tool orientation.

The radius offset is suppressed when the following


functions are activated: G6, G83-G89, G141, G182. The
length offset remains in effect. The offset programming
should be deactivated before these functions are used.

Changes to V5xx
„ See "G39_G41_L" on page 501.

HEIDENHAIN MillPlus V600 155


5.23 G39 Tool Offset Change
Example
Milling a rectangle by roughing twice and finishing once
Program example:

N39001
G98 X-10 Y-10 Z10 I120 J120 K-60 Specify the graphic window
G99 X0 Y0 Z0 I100 J100 K-40 Specify material
T1 M6 Insert the tool (milling radius 5 mm)
G39 L0 R9 Activate tool radius offset. The offset is 9 mm. (The milling radius for
radius compensation is (5+9 =) 14 mm).
F500 S1000 M3 Activate feed rate and spindle speed
G0 X0 Y-20 Z5 Advance to starting position
G1 Z-10 Go to depth
N8 G43 X18 Advance to contour with radius compensation
G41 Y82 Rough the rectangle for the first time.
X82
Y18
X0
N13 G40 Switch off radius compensation
G39 R0.5 Change the tool radius offset. The offset is 0.5 mm. (The milling
radius for radius compensation is (5+0.5 =) 5.5 mm).
G14 N1=8 N2=13 Repeat rectangle (2nd roughing movement).
G39 R0 Change the tool radius offset. The offset is 0 mm. (The milling radius
for radius compensation is 5 mm).
G14 N1=8 N2=13 Finish rectangle.
G0 Z10 Retract the tool
M30 End of program

156 5 G0-G99 G Codes


5.24 G40 Cancel Tool Radius

5.24 G40 Cancel Tool Radius Compensation


Compensation
Deletion of the tool radius compensation. The tool now moves along
the programmed path on the workpiece.

Support picture

Address description
No specific addresses.

Application
Modality
G40 is modal with G41, G42, G43, G44, and G141.

Default setting
G40 automatically takes effect after:
„ Control activation
„ CNC reset
„ Program cancelation
„ M30.

Changes to V5xx
„ See "G40_G91" on page 502.
„ See "G41-G42_G40" on page 503.

Example
Delete radius compensation
G42
G1 X...
G1 X... Y...
G40

G42 Activate the radius compensation on the right.


G1
G1
G40 Delete radius compensation.

HEIDENHAIN MillPlus V600 157


5.25 G41 Tool Radius
5.25 G41 Tool Radius Compensation, Left
Compensation, Left
Programming of the workpiece dimensions instead of the milling path.
The tool path is automatically calculated by the CNC as a path parallel
to the programmed workpiece contour. G41 activates LEFT-hand
radius compensation on the workpiece, viewed from the direction of
workpiece movement.

Support picture

Address description
No specific addresses.

Application
Modality
G41 is modal with G40, G42, G43, G44, and G141.

Tool radius
The tool radius stored in the tool table is used for the radius
compensation. It is assumed that this radius is positive when the
program is executed. The following applies if the radius value is
negative:
„ G41 and negative radius = G42 and positive radius
An error is reported if the tool radius is too great in relation to the
contour (e.g. circle radius, internal corner etc.).

Nominal radius
When the nominal radius is used in programming, G39 (negative
allowance equal to nominal radius) still allows the actual radius to be
used for G41.

Starting radius compensation


There are 3 options for starting radius compensation:
„ Use G41 directly
„ Use G43 or G44
„ Use a tangential approach (G61)
You must ensure that the tool can come into contact with the
workpiece at the start of radius compensation. The starting point
should therefore be at a secure point.

158 5 G0-G99 G Codes


5.25 G41 Tool Radius Compensation, Left
Contour transitions
Internal contours: When radius compensation is applied, the path is
always followed at the same distance from the programmed contour,
except for at the points of intersection of the contour elements. These
points of intersection are automatically calculated by the CNC.
External contours: The point of intersection of external contour
elements is always calculated when the angle between the elements
exceeds a specified configuration value. The tool is then advanced to
this contour.
External contours with acute angles: If the angle between two
external contour elements is smaller than a specified configuration
value, then CNC creates a circular movement between the two
elements.

Switching from one radius compensation function to another


If, for example, a switch is made from G41 to G42, G43, or G44, then
the tool movement finishes at a position that was calculated with G41
and starts at a position that was calculated with G42, G43, or G44. If
the two positions do not coincide, a direct feed movement is made
from one position to the other.

Rotary axis movement


A simultaneous traverse movement in a rotary axis and in the axes of
the main plane is not possible during effective radius compensation.

Constant cutting feed during radius compensation for circles


The parameter F1= is used to keep the programmed feed rate on the
workpiece contour constant, regardless of the milling radius and the
contour shape.
„ F1=0 No constant cutting feed (default setting, M30, Cancel
program softkey, or after CNC reset softkey). The programmed feed
rate should represent the speed of the tool tip. (see figure).
* = cutting feed too great; ** = cutting feed too small
„ F1=1 Constant cutting feed only on the inside of circular arcs. The
programmed feed rate is reduced to ensure that the tool tip travels
to the inside of a circular arc at the reduced speed (see figure).

HEIDENHAIN MillPlus V600 159


„ F1=2 Constant cutting feed on the inside- and outside of circular
5.25 G41 Tool Radius Compensation, Left
arcs The programmed feed rate is reduced (inner circular arc) or
increased (outer circular arc) to ensure that the tool tip travels at the
recalculated speed. The maximum feed rate is used if the increased
speed is greater than the maximum feed rate defined via a machine
parameter (see figure)
„ F1=3 Constant cutting feed only to the outside of circular arcs. The
programmed feed rate is increased to ensure that the tool tip travels
to the outside of a circular arc at the increased speed (see center
figure).

Changes to V5xx
„ See "G41-G42" on page 503.
„ See "G39_G41_L" on page 501.
„ See "G1, G41 und G64" on page 493.
„ See "G54_G41" on page 504.
„ See "G61-G62_G41-G42" on page 504.
„ See "G79_G41" on page 510.

160 5 G0-G99 G Codes


5.25 G41 Tool Radius Compensation, Left
Example
Radius compensation (see figure)

G0 X200 Y-20 Z-5


G43
G1 X150 Y...
G41 X0
G1 Y80
G1 X150
G1 Y50
G40

G0 Move the tool in rapid traverse to X200, Y-20


G43 Radius compensation to end point

G41 Activate left-hand radius compensation

G40 Delete radius compensation

HEIDENHAIN MillPlus V600 161


5.26 G42 Tool Radius
5.26 G42 Tool Radius Compensation, Right
Compensation, Right
Programming of the workpiece dimensions instead of the milling path.
The tool path is automatically calculated by the CNC as a path parallel
to the programmed workpiece contour. G42 activates RIGHT-hand
radius compensation on the workpiece, viewed from the direction of
workpiece movement.

Support picture

Address description
No specific addresses.

Application
Modality
G42 is modal with G40, G41, G43, G44, and G141.

Tool radius
The tool radius stored in the tool table is used for the radius
compensation. It is assumed that this radius is positive when the
program is executed. The following applies if the radius value is
negative:
„ G42 and negative radius = G41 and positive radius
An error is reported if the tool radius is too great in relation to the
contour (e.g. circle radius, internal corner etc.).

Nominal radius
When the nominal radius is used in programming, G39 (negative
allowance equal to nominal radius) still allows the actual radius to be
used for G42.

Starting radius compensation


There are 3 options for starting radius compensation:
„ Use G42 directly
„ Use G43 or G44
„ Use a tangential approach (G61)
You must ensure that the tool can come into contact with the
workpiece at the start of radius compensation. The starting point
should therefore be at a secure point.

162 5 G0-G99 G Codes


5.26 G42 Tool Radius Compensation, Right
Contour transitions
Internal contours: When radius compensation is applied, the path is
always followed at the same distance from the programmed contour,
except for at the points of intersection of the contour elements. These
points of intersection are automatically calculated by the CNC.
External contours: The point of intersection of external contour
elements is always calculated when the angle between the elements
exceeds a specified configuration value. The tool is then advanced to
this contour.
External contours with acute angles: If the angle between two
external contour elements is smaller than a specified configuration
value, then CNC creates a circular movement between the two
elements.

Switching from one radius compensation function to another


If, for example, a switch is made from G42 to G41, G43, or G44, then
the tool movement finishes at a position that was calculated with G42
and starts at a position that was calculated with G41, G43, or G44. If
the two positions do not coincide, a direct feed movement is made
from one position to the other.

Rotary axis movement


A simultaneous traverse movement in a rotary axis and in the axes of
the main plane is not possible during effective radius compensation.

Constant cutting feed during radius compensation for circles


See description for G41.

Changes to V5xx
„ See "G39_G41_L" on page 501.
„ See "G41-G42" on page 503.
„ See "G61 und G62" on page 504.

HEIDENHAIN MillPlus V600 163


5.27 G43 Tool Radius Compensation
5.27 G43 Tool Radius Compensation to End Point
to End Point
Positioning of the tool with milling radius compensation UP TO a
programmed position. The tool radius is subtracted from the
programmed distance.

Support picture

Address description
No specific addresses.

Application
Modality
G43 is modal with G40, G41, G42, G44, and G141.

Using G43
G43 can only be used in connection with a paraxial movement.
Applying the G43 function in connection with a circular movement
produces an error message. Circular movements should only be
programmed in connection with G41 or G42.

Accessing the contour


The G43 function enables vertical access to the contour via the
perpendicular of any contour element. This is the recommended
contour access method (less chance of collision than with G41 and
G42).

Switching from one radius compensation function to another


If, for example, a switch is made from G43 to G41, G42, or G44, then
the tool movement finishes at a position that was calculated with G43
and starts at a position that was calculated with G41, G42, or G44. If
the two positions do not coincide, a direct feed movement is made
from one position to the other.

164 5 G0-G99 G Codes


5.27 G43 Tool Radius Compensation to End Point
Example
Switching on radius compensation (see figure below)

G0 X120 Y-15 Z10


G1 Z-10
G43 Y20
G41 X35
G1 X15 Y50

G0
G1
G43 Radius compensation to end point
G41 Activate left-hand radius compensation

HEIDENHAIN MillPlus V600 165


5.28 G44 Tool Radius Compensation
5.28 G44 Tool Radius Compensation Past End Point
Past End Point
Positioning of the tool with milling radius compensation PAST a
programmed position. The tool radius is added to the programmed
distance.

Support picture

Address description
No specific addresses.

Application
Modality
G44 is modal with G40, G41, G42, G43, and G141.

Using G44
G44 can only be used in connection with a paraxial movement.
Applying the G44 function in connection with a circular movement
produces an error message. Circular movements should only be
programmed in connection with G41 or G42.

Accessing the contour


The G44 function enables vertical access to the contour via the
perpendicular of any contour element. This is the recommended
contour access method (less chance of collision than with G41 and
G42).

Switching from one radius compensation function to another


If, for example, a switch is made from G44 to G41, G42, or G43, then
the tool movement finishes at a position that was calculated with G44
and starts at a position that was calculated with G41, G42, or G43. If
the two positions do not coincide, a direct feed movement is made
from one position to the other.

Example
Switching on radius compensation
Similar to G43.

166 5 G0-G99 G Codes


5.29 G45 Measuring a Point

5.29 G45 Measuring a Point


Determination of coordinate values using the touch probe. The
clamping status of the workpieces and the workpiece dimensions can
be determined. The measurement results can be processed further
with G49 or G50. The freely programmed measuring cycle G145-G150
can be used as an alternative to G45.

The G45 function only operates on a paraxial basis. G145


has an expanded functionality and cannot measure parallel
to an axis. We therefore recommend that you use the
basic measuring movement G145.

Support picture

Address description
 X, Y, Z measurement target coordinates
 B, C measurement target angles
 I measurement direction for X axis
 J measurement direction for Y axis
 K measurement direction for Z axis
 L measurement direction rotary axis
 E parameter no. measured coordinate
 N= point no. for measured coordinate
 X1= measurement path length
 ?90= abs. measurement target angle (X,Y,Z..)
 ?91= incr. measurement target angle (X,Y,Z..)
 P1= point definition number

Format
G45 [measuring position] {I+/-1} {J+/-1} {K+/-1} {L+/-1} {X1=...} {N=...}
{P1=...)
The plane for the rotary table is determined by the definition of the 4th
axis. This must be configured as rotary axis B or C. L refers to the 4th
axis B or C. Rotary axis A is not allowed.

HEIDENHAIN MillPlus V600 167


5.29 G45 Measuring a Point
Application
Tool table
The touch probe must be entered in the tool table as a touch probe
(T_P).

Switching touch probe on/off


The touch probe is switched on/off with the following functions:
„ M27 activate touch probe.
„ M28 deactivate touch probe.

Measuring position
Position A which is to be measured (see figure) is entered using the
measuring point coordinates. The pre-measurement distance X1=
defines the measuring range before the measuring point. The
specified pre-measuring distance is used if X1 is not programmed.
The specified pre-measuring distance (SECU) and the total measuring
distance (DIST) are stored in the tool table group "touch probe",

Saving measurement results


The measured coordinates can be stored in the E parameter (E) and/or
in the points table (N=).
The difference between the measured and the programmed
coordinates is calculated and saved internally for use when operating
with G49 or G50.
The saved measurement differences are deleted by a new measuring
function (G45 or G46), Cancel program, or CNC reset.

Restrictions
„ A G45 block can only be used to measure an axis coordinate
„ In the tool axis, measurements can only be taken in a negative
direction.

Procedure
The touch probe moves to the pre-measurement position in rapid
traverse; this position is defined by the programmed position and the
pre-measurement distance in the axis to be measured. This
movement is executed with positioning logic. Once the touch probe
has reached the pre-measurement position, it travels along the
specified axis in the programmed direction and at the probe feed rate
until it reaches the programmed position. When the touch probe
makes contact with the workpiece, the measured coordinate is saved.
The touch probe then returns to the pre-measurement position in rapid
traverse.

168 5 G0-G99 G Codes


5.29 G45 Measuring a Point
Example
Measuring a point in the X-axis

G45 X0 Y20 Z-10 I1 E1 N=1


G45 X60 Y20 Z-10 I-1 E1 N=1

G45 Measure in a positive direction


Measure the point, calculate the measuring position,
save in point table N= or in parameter E1
G45 Measure in a negative direction

Measuring tool dimensions G45 + M25


For measuring tool dimensions using a touch probe with a cubical
measuring tip at a fixed point.
Format: G45 {I+/-1} {J+/-1} {K+/-1} {X1=...} M25
Measuring in the tool axis gives the tool length. Measuring in 2
directions in the same axis gives the tool radius.
The procedure is similar to measuring a point with G45. Instead of
programming the measuring point coordinates, the coordinates for the
fixed touch probe are queried in the configuration data.

HEIDENHAIN MillPlus V600 169


5.30 G46 Measuring a Circle
5.30 G46 Measuring a Circle

Measuring of a circle (inside or outside) using 4-point measurement.


The measurement results can be processed further with G49 or G50.

Support picture

Address description
 X, Y, Z center point coordinate
 B, C measurement target angles
 I measurement direction for X axis
 J measurement direction for Y axis
 R circle radius
 E parameter no. measured radius
 N= point no. measured center point
 X1= measurement path length
 ?90= center point abs. (X,Y,Z..)
 ?91= center point incr. (X,Y,Z..)
 P1= point definition number

Format
Measuring the inside circle:
„ G46 [circle center point coordinates] R... {I+1 J+1} {I+1 K+1} {J+1
K+1} {F...} {X1=...} {P1=...} N=... E...
Measuring the outside circle:
„ G46 [circle center point coordinates] R... {I-1 J-1} {I-1 K-1} {J-1 K-1}
{F...} {X1=...} {P1=...} N=... E...

Application
Tool table
The touch probe must be entered in the tool table as a touch probe
(T_P).

Switching touch probe on/off


The touch probe is switched on/off with the following functions:
„ M27 activate touch probe.
„ M28 deactivate touch probe.

170 5 G0-G99 G Codes


5.30 G46 Measuring a Circle
Measuring an inside or outside circle
The algebraic sign for the addresses I, J, K defines the type of circle to
be measured. A pair of addresses must be specified in each G46
block, depending on the plane.
Plane Inside circle Outside circle
XY (G17) I+1 J+1 I-1 J-1

XZ (G18) I+1 K+1 I-1 K-1

YZ (G19) J+1 K+1 J-1 K-1

Measuring positions
Four positions are measured when a G46 block is executed. The
measurements are taken as if four G45 blocks were programmed. The
pre-measurement distance X1= defines the measuring range before
each programmed position. The specified pre-measuring distance is
used if X1 is not programmed.
The specified pre-measuring distance (SECU) and the total measuring
distance (DIST) are stored in the tool table group "touch probe",

Procedure
The touch probe moves to the pre-measurement position for the first
point to be measured in rapid traverse. This position is defined by the
programmed circle center point, the programmed radius, and the pre-
measurement distance. This movement is executed with positioning
logic. Once the touch probe has reached the pre-measurement
position, it travels at the probe feed rate to the first point on the
programmed circle. The probe can travel past this point but it must
respond within the range of the measuring distance. This
automatically saves the measuring position. The touch probe then
returns to the initial position with rapid traverse, before travelling
clockwise around the circle at the programmed feed rate until it
reaches the second pre-measurement position. This process is
repeated for the second, third, and fourth positions. Once the fourth
position has been measured, the four measured points are used to
calculate the circle center point and the radius. The coordinates for the
circle center point are stored in the points table, while the radius is
stored in the E parameter table.

HEIDENHAIN MillPlus V600 171


5.30 G46 Measuring a Circle
G46 + M26 Calibrating the touch probe
The touch probe radius is determined by probing the calibration ring.
The control calculates the probe radius on the basis of the measured
radius of the calibration ring and the programmed radius. The new
radius value is stored in the tool table.
The center point coordinates and the radius of the calibration ring are
entered in the machine configuration.

Format
Measuring the inside ring gauge:
„ G46 {I+1 J+1} {I+1 K+1} {J+1 K+1} {F...} {X1=...} M26
Measuring the outside ring gage:
„ G46 {I-1 J-1} {I-1 K-1} {J-1 K-1} {F...} {X1=...} M26

Example
Measuring an inside- and outside circle in the XY-plane
G46 X30 Y25 Z20 I+1 J+1 R12.5 F3000 N=59 E24
G46 X30 Y25 Z20 I-1 J-1 R20 F3000 N=58 E23

G46 Inside circle:


Measure the circle, store the center point in the
points table N=59 and the radii in the parameter table
E24.
G46 Outside circle

Calibrating the touch probe


D207 M19 Defined spindle stop
G46 I1 J1 M26 Calibrate the touch probe, store the touch
probe radius for T1 in the tool table

172 5 G0-G99 G Codes


5.31 G49 Checking on Tolerances

5.31 G49 Checking on Tolerances


Comparison between the programmed value and the measuring value
determined during G45 or G46 operation to establish whether the
difference falls within specified dimensional tolerance limits.

Support picture

Address description
 X, Y, Z positive tolerance value in X, Y, Z
 B, C positive tolerance value in B, C
 R positive tolerance circle radius
 N= jump to block number
 N1= repeater begin block
 N2= repeater end block
 X1= Y1= Z1= negative tolerance value in X, Y, Z
 B1= C1= negative tolerance value in B, C
 R1= negative tolerance circle radius

Format
If the difference falls within the tolerance limits, then program
execution continues with the block after G49.
If the difference falls outside the tolerance limits, the following options
apply:
Program section repeat:
„ G49 {X.., X1=...} {Y..., Y1=...} {Z..., Z1=...} {B..., B1=...} {C..., C1=...}
{R..., R1=...} N1=... N2=...
Program jump:
„ G49 {X..., X1=...} {Y..., Y1=...} {Z..., Z1=...} {B..., B1=...} {C..., C1=...}
{R..., R1=...} N=...

HEIDENHAIN MillPlus V600 173


5.31 G49 Checking on Tolerances
Application
Measuring point
The measuring point must fall between the upper limit (X,Y,Z,A,B,C)
and the lower limit (X1=,Y1=,Z1=,A1=,B1=,C1=) of the tolerance
range.

Program section repeat


The addresses N1= and N2= are used to repeat a program section if a
specific tolerance value has been exceeded.
The block numbers N1= and N2= must both be contained in the same
part program or macro. If N2= is not programmed, only the block
specified with N1= is repeated once.

Error message
MillPlus issues an error message if the measuring difference has
exceeded a specific limit or is not available. MillPlus also issues an
error if no program repeat or a jump have been programmed.

Jump
The address N= is used to specify a jump if a specific limit is
exceeded. The jump is executed once. The address N= is used to
specify the block number in the same main program or macro that the
jump is made to.

Changes to V5xx
„ See "G49_E" on page 503

Example
Tolerance comparison
G49 R.02 R1=2 N=13
G49 R2 R1=.02 N1=1 N2=6

G49 1. Tolerance comparison:


A jump is made to block N13 if the upper tolerance
limit (R0.02) is exceeded (hole too large). The lower
tolerance limit must not be reached. (Jump)
G49 2. Tolerance comparison:
If the lower tolerance limit (R1=0.02) is exceeded
(hole too small), the program section between N1
and N6 is repeated. The upper tolerance limit must
not be reached. (Program section repeat)

174 5 G0-G99 G Codes


5.32 G50 Processing Measuring

5.32 G50 Processing Measuring Results


Results
Changing of the zero point shifts or tool dimensions depending on the
compensation values derived from the recorded difference values.

Support picture

Address description
 X, Y, Z 1=zero point shift in X, Y, Z
 B, C 1=zero point shift in B, C
 I multiplication factor for X
 J multiplication factor for Y
 K multiplication factor for Z
 L multipl. factor for rotary axis
 T tool dimensions to be corrected
 N= offset no. for correction (52-59)
 X1= multiplication factor for tool radius
 B1= prog. angle in B after calculation
 C1= prog. angle in C after calculation
 L1= 1=correction of tool length
 R1= 1=correction of tool radius

Format
Compensating zero point shift G52, G54 to G59:
„ G50 {X1} {I...} {Y1} {J...} {Z1} {K...} {B1} {C1} {C2} {B1=} {C1=} {L...}
N=..(52, 54 to 59)
Compensating zero point shift G54:
„ G50 {X1} {I...} {Y1} {J...} {Z1} {K...} {B1} {C1} {C2} {B1=} {C1=} {L...}
N=54.(54.00 to 54.99)
Compensating tool length:
„ G50 T... L1=1 {I...} {J...} {K...} {T2=...}
Compensating tool radius:
„ G50 T... R1=1 {X1=...} {T2=...}

HEIDENHAIN MillPlus V600 175


5.32 G50 Processing Measuring Results
Application
Compensating shift values
G50 N= allows new shift values derived from the compensation
values recorded by G45 or G46 to be stored in the zero point table.
X1, Y1, or Z1 are used to specify which linear axis is to be
compensated in the zero point table.
I, J, K, or L is used to multiply the compensation value for the shift by
a positive or negative factor. If no factor is specified, the fixed value
+1 is used

Compensating tool dimensions


G50 T... allows new tool dimensions derived from the compensation
values recorded by G45 or G46 to be stored in the tool table.
X1= is used to multiply the compensation value of the tool radius by a
factor.
I, J, or K are used to multiply the compensation value (in the G19, G18,
or G17 plane) for the tool length by a factor.
The compensation factor can be positive or negative. If no factor is
specified, the fixed value +1 is used

Machine configurations (B1,C1,C2)


B axis B1:
Measuring two points on the X axis is sufficient to align a clamped
workpiece on a rotary table (B axis) rotating around the Y axis:
„ The angle of rotation is relative to the X axis
„ The workpiece rotates around the Y-axis
„ The tool axis with the touch probe is the Z-axis or Y axis (see figure).
C axis C1:
Measuring two points on the X axis is sufficient to align a clamped
workpiece on a rotary table (C axis) rotating around the Z axis:
„ The angle of rotation is relative to the X axis
„ The workpiece rotates around the Z-axis
„ The tool axis with the touch probe is the Z-axis (see figure).

176 5 G0-G99 G Codes


5.32 G50 Processing Measuring Results
C axis C2:
This is an enhanced option for C1: (see figure)
First option: the C axis is rotated by 90 degrees and rotates around the
Y axis instead of the Z axis. Measuring two points on the X axis is
sufficient to align a clamped workpiece on a rotary table (C axis)
rotating around the Y axis:
„ The angle of rotation is relative to the X axis
„ The workpiece rotates around the X-axis
„ The tool axis with the touch probe is in the Z-axis (see figure).
Second option:
Measuring two points on the X axis is sufficient to align a clamped
workpiece on a rotary table (C axis) rotating around the Z axis:
„ The angle of rotation is relative to the X axis.
„ The workpiece rotates around the X-axis
„ The tool axis with the touch probe is in the Y-axis. (see figure)

HEIDENHAIN MillPlus V600 177


5.32 G50 Processing Measuring Results
Example
Example 1
G50 X1 I0.8 N=54
G50 T5 L1=1 K0.97 R1=1

G50 Compensate the X-coordinate of the G54-shift with


the compensation value multiplied by 0.8 and store in
the zero point table.
G50 Compensate the length of tool 5 with the difference
in Z (tool in Z-axis) multiplied by 0.97 and store in the
tool table.

Example 2 (see figure)

G45 X-50 Z0 Y-20 C0 J1 N=1


G45 X50 Z0 Y-20 J1 N=2
G50 C1 N=54
G54

G45 Measurement at point 1


G45 Measurement at point 2
G50 Calculate zero point shift
G54 Activate zero point shift again

178 5 G0-G99 G Codes


5.32 G50 Processing Measuring Results
Example 3 (see figure)

T31 M67
M27
G46 X50 Y40 Z-5 R15 I1 J1 F500 E5
G49 R0.02 R1=2 N=21 E5
G49 R2 R1=.02 N=17 E5
G29 E10 E10=1 N=23
N17 G50 T1 R1=1
M28

N21 M0
N22 (HOLE OUTSIDE TOLERANCE RANGE)
N23 M30

T31 Touch probe


M27 Activate touch probe
G46 Measure a full circle
G49 Hole > (15+0.02) jump to N=21
Tolerance comparison
G49 Hole < (15-0.02) jump to N=17
Tolerance comparison
G29 Conditional jump to end of program
N17 Calculate tool radius
M28 Deactivate touch probe

G21
N22 Error message

HEIDENHAIN MillPlus V600 179


5.33 G51 Cancel Pallet Zero Point
5.33 G51 Cancel Pallet Zero Point Shift
Shift
Cancelation of pallet zero point shift, activated by G52.

Support picture

Address description
No specific addresses.

Application
Modality
G51 is modal with G52.

Associated functions
G52, G52 I[no.], G53, G54... G59, G54 I[no.], G92, G93.

180 5 G0-G99 G Codes


5.34 G52 Activate Pallet Zero Point

5.34 G52 Activate Pallet Zero Point Shift


Shift
Activation of the pallet zero point shift at a position. The coordinate
values of several pallet zero points can be entered into the pallet zero
point table.

Pallet zero points are used for automation purposes, e.g.


pallet control. These zero points are then activated by the
PLC program using G52 I, where xx corresponds to the
pallet zero point.
In the NC program, the selected zero point can be
switched off using G51 and switched back on using G52.
The program is thus independent of the pallet number.

Support picture

Address description
 I zero point index Index number of the zero point to be activated.

Format
Activating pallet zero point shift:
„ G52 (activate NP value in G52 I0) or (activate an individual pallet zero
point)
„ G52 I[no.] (activate pallet zero point Ixx and copy to I0).

Default setting
The modal function G52 (Ixx) is deleted by G51 or CNC reset.
G52 remains active after Cancel program, M30, or Switch CNC on/off.

HEIDENHAIN MillPlus V600 181


5.34 G52 Activate Pallet Zero Point Shift
Application
Modality
G52 is modal with G51.

Associated functions
G51, G53, G54... G59, G54 I[no.], G92, G93, G149, G150

Number of zero points


The maximum number of zero points in the table (*.POT) is
determined by a configuration value. (0<= value <= 99).

If the configuration value is set to zero, the table (*.POT)


is reduced to one block.
All entered values are then deleted.
In this case, no index Ixx can be programmed either

Activating a pallet zero point


When changing pallets (M60/M61), the PLC can activate G52 Ixx using
a machine macro.
Note: G52 Ixx can also be activated in the part program. During
activation, the active zero point shift is copied into G52 I0.

Machine zero points


If a tool machine has several pallets or tables, then information is
required from several zero points. The zero points always refer to the
geometric machine zero point (M0). The distances in the axes,
measured from the zero point M0, indicate the position of these zero
points and are entered in the pallet zero point table.

G54 Ixx or G54 to G59 zero point shift


G52 does not affect the functions G54 (Ixx) or G54 to G59. If G52 is
active, G54 (Ixx) takes effect from this shift.

Absolute/incremental zero point shifts G92/G93


A programmed zero point shift (G92 or G93) is deleted by G52 (Ixx).

Increasing/decreasing, mirroring, and axis rotation (G73, G92/


G93
G52 (Ixx) can be used in a program section to be increased/decreased,
mirrored, or rotated. The zero point shift occurs in the coordinate
system of the tool machine and is not affected by the programmed
coordinate change.

182 5 G0-G99 G Codes


5.35 G53 Cancel G54-G59 Zero Point

5.35 G53 Cancel G54-G59 Zero Point Shift


Shift
Cancelation of the workpiece zero point shift G54 Ixx or G54 to G59.

Support picture

Application
A zero point shift (G54 Ixx or G54 - G59) is canceled by G53.
A pallet zero point (G52) is not canceled by G53.
A program zero point shift (G92 - G93) is canceled by G53.

HEIDENHAIN MillPlus V600 183


5.36 G54 - G59 Activate Zero Point
5.36 G54 - G59 Activate Zero Point Shift
Shift
Movement of the workpiece zero point to a new position, whose
coordinate values are saved in the zero point table (under the relevant
number) or programmed in the same block.
Two different zero point tables are available:
„ Zero point table G54 Ixx (identification *.ZET) with a maximum of 99
zero point shifts.
„ Zero point table G54 - G59 (identification *.ZOT) with a maximum of
8 zero point shifts.
Available functions:
„ Programming (offset values) the zero point shift in the program
„ Programming an angle of rotation (B4=) in the zero point shift (only
for G54 Ixx)
„ Entering comments in the zero point table (only for G54 Ixx)

Support picture

Address description
 X, Y, Z zero point coordinates
 A, B, C zero point angles
Addresses that are only available for G54:
 I zero point index Index number of the zero point to be activated.
 B4= angle of rotation absolute The coordinate system is rotated
by the angle B4=.

184 5 G0-G99 G Codes


5.36 G54 - G59 Activate Zero Point Shift
Format
Zero point table G54 Ixx
Define and call zero point shift:
„ G54 I[no.] {X...} {Y...} {Z...} {A...} {B...} {C...} {B4=...}
Call zero point shift:
„ G54 I[no.]

Zero point table G54 - G59


Define and call zero point shift:
„ G54 {X...} {Y...} {Z...} {A...} {B...} {C...}
Call zero point shift:
„ G54

Application
Modality
The functions G53 and G54 Ixx or G53 to G59 form a modal group.

Associated functions
G51, G52, G53, G92, G93, G149, G150

Default setting
The functions G54 to G59 are deleted with CNC reset or by
programming G53.
The functions G54 Ixx and G54 to G59 remain active after Cancel
program and M30.

Zero point table


The active zero point table (*.ZET or *.ZOT) is specified in the
configuration data (file OEMTABLE.CFG). The zero points can be
edited in both tables.

The table is changed (*.ZET <-> *.ZOT) if the configuration


value for the zero point table type is changed. The new
zero point table is initialized to zero.

There are 2 options for entering the shift values in the zero point table:
1 The values of the zero point shifts G54 I[no] or G54 to G59 are
entered in the zero point table via the control panel or from a data
carrier before the program is executed.

HEIDENHAIN MillPlus V600 185


5.36 G54 - G59 Activate Zero Point Shift 2 The values of the zero point shift G54 I[no] X... Y... Z... A... B... C...
B4=... or G54 to G59 X... Y... Z... A... B... C... are programmed in an
NC program block. The programmed values are transferred to the
zero point table and activated when the program is executed.

Attention - danger of collision


If zero point shift values are not programmed in the
program block for all axes with G54 [no.] or G54 to G59,
then the zero point shift values already in the table are
used for the axes that are not programmed.
This means that the zero point shift values that are not
programmed are not deleted from the table.
If the active zero point shift is changed in the zero point
table in a program run or after M30, then this changed zero
point shift is activated immediately.

Additional functionality G54 Ixx (*.ZOT)


A comment can be entered in the table for each zero point shift.
Each zero point shift in the table can involve an axis rotation. The shift
is carried out first and the coordinate system is then rotated by the
angle B4=.

G52 I(xx) pallet zero point shift


G54 (Ixx) or G54 to G59 do not affect the function G52 (Ixx). If G52 is
active, G54 (Ixx) takes effect from this shift.

Absolute/incremental zero point shifts G92/G93


A programmed zero point shift(G92 or G93) is deleted by G54 I-[no.] or
G54 to G59.

Increasing/decreasing, mirroring, and axis rotation (G73, G92/


G93
G54 I-[no.] can be used in a program section to be be increased/
decreased, mirrored, or rotated. The zero point shift occurs in the
coordinate system of the tool machine and is not affected by the
programmed coordinate change.

Changes to V5xx
„ See "G54_G41" on page 504

186 5 G0-G99 G Codes


5.36 G54 - G59 Activate Zero Point Shift
Example
Example G54 to G59 (see figure)

G54
G55

G54 Activate zero point shift G54


G55 Activate zero point shift G55; the coordinates refer to
the new zero point.

Example G54 (see figure)

G54 I1
G54 I2
G53

G54 Selection of zero point W1. Its coordinates


(X40,Y100,Z300) are taken from the zero point table.
All programmed coordinates are measured starting
from W1.
G54 Selection of zero point W2. Its coordinates
(X200,Y100,Z100) are taken from the zero point table.
Zero point W1 is deleted and W2 is activated. All
programmed coordinates are then measured starting
from W2.
G53 Deactivation of zero point W2. The coordinates
(X0,Y0,Z0) are taken from the G53 zero point table.
Zero point W2 is deleted and M is activated. All
programmed coordinates are then measured starting
from M.

Axis rotation (see figure)

G54 I1 X-42 Y-15 B4=14 (Z0 C0)


G54 I2 X10 Y24 B4=-17

Entry in the zero point table and call:


M27 The zero point shifts are entered in the zero point
table.
Machine workpiece 1; all programmed coordinates
are measured starting from M1.
G46 Machine workpiece 2; all programmed coordinates
are measured starting from M2.

HEIDENHAIN MillPlus V600 187


5.37 G61 Tangential Approach
5.37 G61 Tangential Approach

Programming of a tangential approach movement for a contour


between a starting point and the starting point of the contour.

Support picture

Address description
 X, Y, Z end point tangential approachThe programmed end point
for G61 is the starting point for the contour.
 P1 point definition number
 R radius The programmed approach circle radius is the radius for
the tool center point path, i.e. without tool radius compensation.
 X1=, Y1=, Z1= auxiliary point in X, Y, ZThe auxiliary point can
be programmed in the tool axis. In G17 with the Z1= address, in G18
with Y1=, and in G19 with X1=.
 B2= polar angle The end point can also be programmed on a polar
absolute basis. The tool axis cannot be programmed in this case.
 L2= polar length The end point can also be programmed on a polar
absolute basis. The tool axis cannot be programmed in this case.
 I2= tangential approach definition Approach movement to the
end point (contour starting point).
„ I2=0 with arc and tangentially (default setting).
„ I2=1 with quarter circle and tangentially.
„ I2=2 with semi-circle and tangentially.
„ I2=3 with full circle and tangentially.
„ I2=4 with a line parallel to the contour and tangentially.
„ I2=5 perpendicularto the contour point
 ?90= end point abs. (X,Y,Z..)
 ?91= end point incr. (X,Y,Z..)

Format
Cartesian:
„ G61 {I2=...} X... Y... Z... R... [{X1=...} {Y1=...} {Z1=...}
Point definition:
„ G61 {I2=...} P1=... R... [{X1=} {Y1=}] {Z1=}
Polar:
„ G61 {I2=...} B2=... L2=... R... [{X1=} {Y1=}] {Z1=}

188 5 G0-G99 G Codes


5.37 G61 Tangential Approach
Application
Approach movement
The approach movement follows the next movement in the working
plane. Intermediate blocks without movement in the plane are
ignored.
The approach movement consists of two parts: The first part is a feed
movement to the (calculated) intermediate point of the approach
movement. The second part is a tangential feed movement along the
approach contour to the starting point of the contour.
If the distance between the current position and the approach circle is
greater than the milling radius (I2=0), the approach movement
consists of a line and an arc. If the distance between the current
position and the approach circle is less than the milling radius, then
I2=0 is changed to I2=1 and the approach movement becomes a
quarter circle.
Intermediate point: the control calculates an intermediate point based
on the starting point, the type of approach movement, and the end
point (starting point of the contour)

Radius compensation
The approach side is determined by the active function G41/G42.
The radius compensation (G41/G42) must be activated immediately
before the G61-block.

Restrictions
G61 is not allowed during operation of G64, G182-, and MDI-.
Specific restrictions apply for the blocks immediately after the
approach movement (G61). Only following functions G64, G0, G1, G2,
G3 with movements in the working plane are allowed.
Rotary axis positions must not be programmed during G61.
G1 does not take effect automatically if no G-function has been
programmed after the G61-block. The last movement of the G61
function can be G1, G2, or G3.

Changes to V5xx
„ See "G61 und G62" on page 504.

HEIDENHAIN MillPlus V600 189


5.37 G61 Tangential Approach
Example
Example (see figure)

G0 X0 Y0 Z30
G41
G61 I2=2 X20 Y20 Z-5 Z1=10 R5 F2=200
G64
G3 I20 J50 R1=0
G1 X60 Y60
G63
G62 I2=2 Z1=10
G40

T31 Advance to starting position. (Position 1: X0 Y0 Z30)


G41 Radius compensation, left.
G61 Tangential approach movement (I2=2) with semi-
circle. The first part of the approach movement is a
feed movement with positioning logic to the starting
point of the semi-circle (position 2: X... Y... Z10). The
radius compensation is started during the linear
movement to the semi-circle. The arc is executed as
a helix. The contour starts at position X20 Y20 Z0
(position 3: X20 Y25 Z-5).
G64
G3
G1
G63
G62 Tangential exit movement (I2=2) with semi-circle.
The semi-circle is executed as a helix. The starting
height for the Z axis is -5, the end height is 10.
(Position 5: X... Y... Z10).
G40

190 5 G0-G99 G Codes


5.38 G62 Tangential Exit

5.38 G62 Tangential Exit


Programming of a tangential exit movement at the end point of the
contour.
See also the description for G61.

Support picture

Address description
 X, Y, Z, end point tangential exit The end point for G62 can
only be programmed in the case of a tangential exit with an arc
(I2=0).
 P1 point definition number
 R radius The programmed exit circle radius is the radius for the tool
center point path, i.e. without tool radius compensation.
 X1=, Y1=, Z1= auxiliary point in X, Y, ZThe auxiliary point can
be programmed in the tool axis. In G17 with the Z1= address, in G18
with Y1=, and in G19 with X1=.
 B2= polar angle The end point can also be programmed on a polar
absolute basis. (Only for I2=0).
 L2= polar length The end point can also be programmed on a polar
absolute basis. (Only for I2=0).
 I2= Tangential exit definition
Exit movement to the auxiliary point:
„ I2=0 with arc and tangentially.
„ I2=1 with quarter circle and tangentially.
„ I2=2 with semi-circle and tangentially.
„ I2=3 with full circle and tangentially.
„ I2=4 with a line parallel to the contour and tangentially.
„ I2=5 perpendicular.
 ?90= end point abs. (X,Y,Z..)
 ?91= end point incr. (X,Y,Z..)

Format
Intermediate point equal to end point:
„ G62 I2>0 Z1=... R... {F2=}
With arc, Cartesian:
„ G62 I2=0 X... Y... Z... Z1=... R...
With arc, polar:
„ G62 I2=0 B2=... L2=... Z... R...

HEIDENHAIN MillPlus V600 191


5.38 G62 Tangential Exit
Application
Exit movement
The control calculates an intermediate point based on the starting
point (the end point of the contour), the type of exit movement, and
the end point. The first movement is a tangential or perpendicular exit
movement to the calculated intermediate point. Then another
positioning is carried out with a feed to the programmed end point.
The end point for G62 can only be programmed during a tangential exit
with an arc (I2=0). The intermediate point is also the end point for exit
movements programmed with I2=1 to I2=5. If the radius
compensation with G40 is not canceled, then both the circle- and the
linear movement are executed with radius compensation.

Radius compensation
Radius compensation is switched off in the G62-block. The movement
to the calculated intermediate position is still carried out with radius
compensation.

Restrictions
G62 is not allowed during operation of G64, G182-, and MDI-.
G1 is automatically takes effect if no G-function has been programmed
after the G62-block.

Changes to V5xx
„ See "G61 und G62" on page 504.

Example
See example G61.

192 5 G0-G99 G Codes


5.39 G63 Cancel Geometric

5.39 G63 Cancel Geometric Calculations


Calculations
Cancelation of G64 geometric calculations and switch to programming
of complete blocks.

Support picture

Address description
No specific addresses.

Application
Modality
The functions G63 and G64 form a modal group.

Default setting
G63 automatically takes effect after:
„ Control activation
„ CNC reset
„ Program cancelation
„ M30.

Programming
An absolute position must be programmed in the final block, before
the geometry calculations are canceled with G63.
Complete blocks must be programmed after the G63 block.

Changes to V5xx
„ See "G63 und G64" on page 506

HEIDENHAIN MillPlus V600 193


5.40 G64 Activate Geometric Calculations
5.40 G64 Activate Geometric
Calculations
Activation of geometric calculations. A contour can be described
between G64 and G63. The fact that straight-line and circular
movements can be easily programmed allows the required
calculations, e.g. for a point of intersection or a tangential point, to be
left to the control.

Support picture

Address description
See addresses in sections "Address description for straight line" on
page 196 and "Address description for circle" on page 201.

Basic functions
Fundamentals of geometry application
A minimum of two data blocks are always required where a calculation
is necessary. Each block is programmed with the standard G functions
for straight-line movements (G0 and G1) and circular movements (G2
and G3), as well as with specifications to define the straight lines or
circles. The blocks do not have to contain all the data previously
specified. Specific special words (indicator addresses) allow the
control to calculate the missing data. The first block determines the
position of the starting point. The second block provides the data for
calculating the end point coordinates in the first block, e.g. as a
tangential point or point of intersection of two elements. This end
point is also the starting point for the second block.
The following elements can be inserted between these movements:
„ A chamfer (between straight-line movements),
„ A rounding arc (at the point of intersection of intersecting elements),
„ A connecting circle (between elements that do not intersect or are
not tangential)
It can happen that the data in the second block is insufficient to
calculate the end point in the first block. In this case, the control
attempts to calculate the end point for the second and first blocks
from the subsequent blocks (maximum 32).

194 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
Format
„ G64 activate geometric calculations
„ G0, G1, G2, or G3 straight-line (G0/G1) and circular movements (G2/
G3)
„ G63 cancel geometric calculations

Application
Modality
G64 is modal with G63.

G codes that are allowed when G64 is active


G0-G1-G2-G3; G4; G14-G22-G29; G40-G41-G42-G43-G44; G94-G95.

G codes that are not allowed when G64 is active


„ All G-codes that are not listed above
„ Incremental programming (Cartesian and polar)
„ Helical interpolation
„ More than one defined point in the block
„ M-functions M6, M66, and M67

Plane selection
The plane in which the geometry calculations are carried out is
determined with G17 (XY-plane), G18 (XZ plane), or G19 (YZ plane).
The definition of the angle B1= refers to the + X axis in the XY or the
XZ plane or the – Z axis in the YZ plane.

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

Macros
Geometry calculations can be used in the macro. All geometry blocks
between G64 and G63 must be in the same macro.

Repeat function
Geometry calculations can be used in the repeat view of the part
program (G14 or G29). All geometry blocks between G64 and G63
must be in the same program section.

HEIDENHAIN MillPlus V600 195


5.40 G64 Activate Geometric Calculations Scaling, mirroring, and axis rotation
First, activation of scaling, mirroring, or axis rotation; the geometry
calculations are then permitted.

Changes to V5xx
„ See "G1, G41 und G64" on page 493.
„ See "G63 und G64" on page 506.
„ See "G2" on page 496.

Straight line
Address description for straight line
 X, Y, Z end point coordinates
 I chamfer length
 X1= Y1= end point of second element
 B1= angle
 B2= polar angle
 I1= parallel shift
 J1= 1=intersection left, 2=right
 L2= polar length
 P1= point definition number
 R1= R1=0 tangent to line

Both coordinates for the main plane should always be


programmed. The tool axis must not be programmed. A
combination of angle B1= and just one coordinate is not
allowed. The angle B1 must match the direction of
movement exactly.

Possible parameters for straight lines between G64 and G63 blocks.

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

Most examples consist of three blocks.


1) Movement to the initial position (if starting point not
determined).
2) Incomplete block. The information in the previous and
subsequent blocks completes this block.
3) Movement to the end position.

196 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
Addresses in the figures
A Starting point
B1 Angle
E End point
H Auxiliary point
I1 Chamfer or distance
I2 Intersection point indicator
M Center point
R Radius

Straight line with end point or auxiliary point (see figure)

G1 X... Y... (G64 STRAIGHT LINE WITH END POINT OR


AUXILIARY POINT)
OR
G1 L1=... B1=...

G1 Straight line with end point (E) or auxiliary point (H).


An auxiliary point lies on the straight line but is not
automatically the end point for the straight line.
The next block can determine the end point.

HEIDENHAIN MillPlus V600 197


5.40 G64 Activate Geometric Calculations Straight line with angle and end point or auxiliary point (see
figure)

G1 B1=... X... Y... (G64 STRAIGHT LINE WITH ANGLE AND


END POINT OR AUXILIARY POINT)

G1 Straight line with angle (B1=) and end point (E) or


auxiliary point (H).
The initial position must not be specified; otherwise
the definition will be oversized.
In the case of oversizing, the angle is not taken into
account.
Straight line with angle (see figure)

G1 X0 Y0
G1 B1=45 (G64 STRAIGHT LINE WITH ANGLE)
G1 B1=0 X100 Y50

G1 Movement to the starting point.


G1 Straight line with only one angle.
The angle determines the direction.
The previous element determines the starting
position.
G1 Horizontal straight line with one angle and end point.
This defines the end point for the previous straight
line.

Straight line tangential to the circle (see figure)

G1 X0 Y0
G1 R1=0 (G64 STRAIGHT LINE TANGENTIAL TO THE
CIRCLE)
G2 I50 J50 X60 Y50

G1 Movement to the starting point.


G1 Straight line is tangential to the circle (indicated by
R1=0).
The following element must be a circle.
G2 Circle defined with a center point (M) and an end
point. The side where the straight line is tangential to
the circle is determined by the direction of rotation of
the circle (G2 or G3).
The default setting is that a flowing movement takes
place.

198 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
Straight line with an angle tangential to the circle (see figure)

G1 X0 Y0
G1 B1=0
G1 B1=45 R1=0 (G64 STRAIGHT LINE WITH AN ANGLE
TANGENTIAL TO THE CIRCLE)
G2 I50 J50 X60 Y0

G1 Movement to the starting point.


G1 Horizontal straight line.
G1 Straight line with an angle (B1=) tangential to the
circle (indicated by R1=0).
The following element must be a circle.
G2 Circle defined with a center point (M) and an end
point. The side where the straight line is tangential to
the circle is determined by the direction of rotation of
the circle (G2 or G3).
The default setting is that a flowing movement takes
place.

Straight line parallel to a straight line through auxiliary point and


angle (see figure)

G1 X0 Y0
G1 B1=90
G1 X0 Y0 B1=45 I1=20 (G64 STRAIGHT LINE PARALLEL TO
STRAIGHT LINE THROUGH AUXILIARY POINT AND
ANGLE)
G1 X0 Y100 B1=-90

G1 Movement to the starting point.


G1 Vertical straight line
G1 Parallel straight line through X0, Y0, 45 degree angle
The distance (I1=) is 20 mm.
Since the distance is positive, the parallel straight line
is on the right-hand side.
G1 Vertical movement to the end point.

HEIDENHAIN MillPlus V600 199


5.40 G64 Activate Geometric Calculations Straight line is tangential to the previous circle (see figure)

G1 X50 Y50
G2 I50 J40 R1=0
G1 X0 Y0 (G64 STRAIGHT LINE IS TANGENTIAL TO THE
PREVIOUS CIRCLE)

G1 Movement to the starting point on the circle.


G2 Circle defined with a center point (M). This circle is
tangential to the next element (indicated by R1=0).
G1 Straight line to the end point. The side where the
straight line is tangential to the circle is determined
by the direction of rotation of the circle (G2 or G3).
The default setting is that a flowing movement takes
place

Chamfer
The chamfer is arranged symmetrically around the point of
intersection.
The chamfer width is programmed with the I expression.

Chamfer between two straight lines (see figure)

G1....
I20 (G64 CHAMFER BETWEEN TWO STRAIGHT LINES)
G1....

G1 Straight line
I The chamfer (I20) is arranged symmetrically around
the point of intersection.
The chamfer width is programmed with the I
expression.
G1 Straight line

200 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
Circles
Address description for circle
 X, Y, Z end point coordinates
 I center point in X/pitch in X
 J center point in Y/pitch in Y
 K center point in Z/pitch in Z
 R circle radius
 B1= angle
 B2= polar angle
 B3= polar angle for center
 B5= angle of arc
 J1= 1=intersection left, 2=right
 L2= polar length
 L3= polar length for center
 P1= point definition number
 R1= R1=0 tangent to line

Possible parameters for circles between G64 and G63 blocks.

See coordinate systems in the Programming chapter for


an explanation of the possible coordinate systems
(Cartesian, polar, absolute, and incremental) and
definitions.

Circle with center point and radius (see figure)

G2/G3 I... J... R... (G64 CIRCLE WITH CENTER POINT AND
RADIUS)

G2/G3 Circle with center point (M) and radius (R) (Figure 1).
Circle with center point and starting or end point
G1 X... Y...
G2/G3 I... J... R... (G64 CIRCLE WITH CENTER POINT AND
STARTING POINT)
OR
G2/G3 I... J... X... Y... (G64 CIRCLE WITH CENTER POINT
AND END POINT)

G1 Movement to the starting point on the circle.


G2/G3 Circle with center point (M) and radius (R) (Figure 2).
G2/G3 Circle with center point (M) and end point (E)
(Figure 3).

HEIDENHAIN MillPlus V600 201


5.40 G64 Activate Geometric Calculations Circle with radius and starting or end point (see figure)

G1 X... Y...
G2/G3 R... R1=0 (G64 CIRCLE WITH RADIUS AND STARTING
POINT)
G1 B1=0 X... Y...

G1 Movement to the starting point on the circle.


G2/G3 Circle with only a radius (R).
R1=0 indicates that the circle is tangential to the next
element.
G1 Horizontal straight line with angle (B1=) and end
point (E).

Circle with only a center point (see figure)

G1 X... Y... R1=0


G2/G2 L3=... B1=45 (G64 CIRCLE ONLY WITH CENTER
POINT)

G1 Straight line, tangential to the next circle.


G2/G3 Circle with only a center point tangential to the
straight line.

Circle with only a radius (see figure)


This circle can intersect a straight line or a circle.

G1 X0 Y0
G1 R1=0 (G64 STRAIGHT LINE TANGENTIAL TO THE
CIRCLE)
G2 I50 J50 X60 Y50

G1 Movement to the starting point.


G1 Straight line is tangential to the circle (indicated by
R1=0).
The following element must be a circle.
G2 Circle defined with a center point (A) and an end
point. The side where the straight line is tangential to
the circle is determined by the direction of rotation of
the circle (G2 or G3).
The default setting is that a flowing movement takes
place.

202 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
Rounding arcs
The rounding arc is always tangential to the straight lines or circles in
the previous and subsequent block and is programmed with G2 or G3
to specify the direction of movement.
The type of connecting circle is determined by the direction of rotation
on the three circles.

The connecting circle between two concentric circles is a


special case of ONE CIRCLE INSIDE THE OTHER. In this
case, the center points of both circles are at the same
position. The expression B1=.. specifies the angle formed
by the straight line through the circle center point of the
concentric circles and of the connecting circle with the
main axis. This additional information is incorporated in the
block with the connecting circle.

Rounding arc between two elements (see figure)

G1.... OR G2/G3
G3/G2 R20 (G64 ROUNDING ARC BETWEEN TWO
ELEMENTS)
G1.... OR G2/G3

G1 Straight line or circle


R Radius of rounding arc
G1 Straight line or circle

Points of intersection
There are two possible points of intersection when a straight line and
a circle or two circles intersect. A special address (I2=1 or 2) is used
to indicate the intersection coordinates to be calculated. There are two
methods for determining which point of intersection belongs to I2=1
and which to I2=2.

The intersection indicator I2= only functions correctly if


two elements are involved. I2= must not be used if a
rounding arc is also inserted between the intersecting
elements.
I2= must be programmed in the block where the point of
intersection is selected.

When calculating the point of intersection for a straight line and a


circle or two circles, the expression I2= indicates which of the two
possible points of intersection is meant:
I2=1: the left-hand point of intersection (P1)
I2=2: the right-hand point of intersection (P2), viewed from the circle
center point.

HEIDENHAIN MillPlus V600 203


5.40 G64 Activate Geometric Calculations For a line through the center point:
I2=1: the short distance to the starting or end point.
I2=2: the greater distance to the starting or end point.
For a line through the center point, where the starting or end
point is at the same position as the center point. The direction of
movement for the programmed straight line, programmed with B1=,
determines:
I2=1: the first point of intersection
I2=2: the second point of intersection

Points of intersection between two elements (see figure)

G1 X... Y.... I2=1 (G64 POINTS OF INTERSECTION BETWEEN


TWO ELEMENTS)

G1 Straight line with an auxiliary point that intersects a


circle.

204 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
Non-flowing transitions
These are not allowed. Only continuous movements can be
programmed. This means the tool is always moving forwards.

Straight line tangential to circle (R1=0) (see figure)


The expression R1=0 is used to specify that a specific geometry
element is tangential with the next element (connecting circles are not
taken into consideration), thus:
„ Straight line is tangential with circle
„ Circle is tangential with straight line
„ Circle is tangential with circle
The expression R1=0 is written in the block with the first element.
The tangential point is selected so that the tool path is continuous, i.e.
the tool is always moving forwards.
Note: With R1=0, the CNC automatically determines which tangential
straight line maintains the continuous movement so that the tool does
not travel backwards.

The tangential indicator R1= only functions correctly if two


elements are involved. R1= must not be used if a
connecting circle is also inserted between the intersecting
elements.

Rounding arc or connecting circle between two straight lines,


between a straight line and a circle, or between 2 circles
The control automatically determines which rounding arc or
connecting circle is used, depending on the direction of movement on
the second element.

HEIDENHAIN MillPlus V600 205


5.40 G64 Activate Geometric Calculations
Example: G64 geometric calculation

Contour consisting of straight lines and circles.

G98 X-20 Y-10 Z-20 I140 J100 Graphic window definition


G54 Zero point shift
T1 M6 Insert tool
S1000 M3 Spindle speed
G0 X-5 Y60 Z10 Advance to starting point
G1 Z-10 F500 Move tool to depth
G43 X0 Radius compensation to programmed position
G42 Radius compensation, right
G64 Activate geometry
G1 B1=-90 Move tool along the Y-axis
G3 R5 A rounding arc between the two straight lines of the previous and the next
block
G1 X0 Y35 I1=0 B1=-30 Move the tool along the straight line. The starting point for the straight line
is programmed as an auxiliary point. The angle indicates the direction of
movement.
G2 R5 A rounding arc between the last straight line and the next circle
G3 I40 J15 R15 R1=0 Move down the circle to the tangential point of the circle and the next
straight line
G1 B1=60 I2=2 A straight line. Point of intersection viewed from the circle center point.
G2 R5 A rounding arc between the last and the next straight line
G1 X80 Y20 I1=0 B1=-45 I1=0 A straight line through the center point of the next G3 circle. The center
point is used as an auxiliary point for the straight line.
G2 R5 A rounding arc between the last straight line and the next circle
G3 I80 J20 R21 R1=0 Move down the circle to the tangential point of the circle and the next
straight line
G1 X75 Y55 A straight line to the programmed end point of the straight line

206 5 G0-G99 G Codes


5.40 G64 Activate Geometric Calculations
G1 X-20 Y55 Move the tool parallel to the X-axis until the tool is free of the workpiece.
Note: both axes of the main plane must be programmed.
G40 Cancel tool radius compensation
G63 Cancel geometric calculations
G0 Z100 M30 End of program

HEIDENHAIN MillPlus V600 207


5.41 G70 Inch Programming
5.41 G70 Inch Programming

Loading and calling of part programs that are written in a different unit
of measure to that specified in the CNC. (Unit of measure defined in
the configuration data)

Support picture

Address description
No specific addresses.

Application
Modality
The functions G70 and G71 form a modal group.

Default setting
The configured measuring system automatically takes effect when
the CNC is initialized.

Programming
G70 allows part programs to be executed in the inch unit of measure
although the CNC is set metrically.
If G70 or G71 is not programmed at the start of a part program, then
the CNC assumes that the programmed units of measure match the
unit of measure set in the CNC.

Units of measure
With G70, the units of measure are as follows:
„ Linear measurement [inch]
„ Feed rate G94 [inch/min]
„ Feed rate G95 [inch/rev]
„ Cutting speed G96 [feet/min]

Example
N9001 G70
G1 X2 Y1.5 F8

N9001 Unit of measure:


CNC: metric
Program: inch
G1 Transferring has the result that X50.8 Y38.1 and
F203.2 are saved.

208 5 G0-G99 G Codes


5.42 G71 Metric Programming

5.42 G71 Metric Programming


Loading and calling of part programs that are written in a different unit
of measure to that specified in the CNC. (Unit of measure defined in
the machine configuration).

Support picture

Address description
No specific addresses.

Application
Modality
The functions G71 and G70 form a modal group.

Default setting
The configured measuring system automatically takes effect when
the CNC is initialized.

Programming
G71 allows part programs to be executed in the metric unit of measure
although the CNC is set to inches.
If G70 or G71 is not programmed at the start of a part program, then
the CNC assumes that the programmed units of measure match the
unit of measure set in the CNC.

Units of measure
With G71, the units of measure are as follows:
„ Linear measurement [mm]
„ Feed rate G94 [mm/min]
„ Feed rate G95 [mm/rev]
„ Cutting speed G96 [m/min]

Example
N9001 G71
G1 X50.8 Z38.1 F203.2

N9001 Unit of measure:


CNC: inch
Program: metric
G1 Transferring has the result that X2 Y1.5 and F8 are
saved.

HEIDENHAIN MillPlus V600 209


5.43 G72 Cancel Mirror Image and
5.43 G72 Cancel Mirror Image and Scaling
Scaling
Cancelation of increase, decrease, or mirroring around an axis.

Support picture

Address description
No specific addresses.

Application
Modality
The functions G72 and G73 form a modal group.

Default setting
G72 automatically takes effect after:
„ Control activation
„ CNC reset
„ Program cancelation
„ M30.

210 5 G0-G99 G Codes


5.44 G73 Mirror Image and Scaling

5.44 G73 Mirror Image and Scaling


Increasing or decreasing an array of axis coordinates. Mirroring an
array of linear main axis coordinates or reversing the algebraic sign for
rotary axis coordinates.

Support picture

Address description
 X, Y, Z -1=set mirror image, 1=reset
 B, C -1=set mirror image, 1=reset
 A4= scaling factor

Format
„ Activating increase/decrease:
G73 A4= ... (factor or percentage, setting in machine parameter
dimension)
„ Deleting increase/decrease:
G73 A4=1 (factor)
G73 A4=100 (percentage)
„ Mirroring around an axis or changing the algebraic sign per axis:
G73 {X-1} {Y-1} {Z-1} {A-1} {B-1} {C-1}
„ Deleting mirroring/changing the algebraic sign per axis:
G73 {X1} {Y1} {Z1} {A1} {B1} {C1}

Application
Modality
The functions G72 and G73 form a modal group.

Increasing and decreasing by the zero point shift W


The function G73 uses the current zero point W as the starting point.
If necessary, this point should be shifted to the geometric center of
the array of coordinates using a G92 or G93 zero point shift, before the
increase or decrease. As a result, the coordinates are symmetrical
around a fixed point with an unchanging position.

Programmed zero point shifts G92/G93


The programmed zero point shifts G92/G93 are also increased or
decreased when increasing or decreasing is active.

Saved zero point shifts G51 to G59


The saved zero point shifts G51 to G59 do not change during
increasing or decreasing.

HEIDENHAIN MillPlus V600 211


5.44 G73 Mirror Image and Scaling Tool axis
The configuration data specifies whether increasing or decreasing
applies only to the axis coordinates in the main plane or to the tool axis
as well.

Changes to V5xx
„ See "G73_G92" on page 508.

Example
G1 X45 Y45
G73 X-1 Y-1
G1 X45 Y45
G72

G1
G73 Mirror coordinates around the X and Y axis
G1
G72 Delete mirroring

212 5 G0-G99 G Codes


5.45 G74 Absolute Position

5.45 G74 Absolute Position Approach


Approach
Rapid traverse movement to a position whose coordinates refer to the
machine-based reference point R or to machine positions.

Support picture

Address description
 X, Y, Z end point coordinates
 A, B, C end angles
 K block transition: 0=exact, 1=no stop 0: a precision stop is
taken into consideration between the movement of block G74 and
the movement in the next block, as is standard for rapid traverse
movements (on-position). 1: no stop is taken into consideration
between the movement of block G74 and the movement in the next
block (smoothing). The next movement begins once the nominal
position is almost reached in all axes.
 L 0=with tool length, 1=without 0: tool length compensation is
applied (on-position). L1: no tool length compensation.
 X1=, Y1=, Z1= absolute position number (1-18)
 A1=, B1=, C1= absolute position number (1-18)

Format
G74 X... Y... Z... {A...} {B...} {C...} {X1=...} {Y1=...} {Z1=...} {K...} {L...}

Default setting
K0: precision stop between the block transitions, L0: tool length
compensation active.

HEIDENHAIN MillPlus V600 213


5.45 G74 Absolute Position Approach
Application
The function G74 is primarily used in cycles for tool changers, pallet
stations and similar, specifically when the programmed coordinates
are to be independent from the coordinates used to define the tool
handling.
The end point coordinates can be defined using two methods:
„ X100: position in relation to the reference point.
„ X1=2: position in relation to the reference point, defined by the
second machine parameter within CfgPlcPositions.
For each axis, 18 machine positions can be specified in the machine
parameters (CfgPlcPositions). No traverse movement is performed if
the machine parameter used is zero.
With G74, a simultaneous traverse movement is carried out in all
programmed axes. The next traverse movement does not begin until
the nominal position is reached in all axes.
If an incremental movement is programmed after a G74-movement,
then the coordinates refer to the position specified in the G74-block.
The traverse movement immediately before G74 must be
programmed with G0 or G1. The traverse movement immediately
after G74 is automatically performed with the same G-function.
The G41...G44 radius compensation, the G141 tool compensation 3D,
the G64 geometric function, and the G196 graphic contour description
must be switched off before the G74-function is activated.
The programmed G74 position is independent of the effective zero
point shift, B4= axis rotation, or G72/G73 increasing/decreasing.

Changes to V5xx
„ See "G74" on page 509.

214 5 G0-G99 G Codes


5.45 G74 Absolute Position Approach
Example
Program 1: (see figure)

G0 X95 Y20
G74 X-35 Y-50

G0 Approach coordinates X95 Y20.


G74 Movement from X95 Y20 to the absolute position
with coordinates X35 Y50 relative to the reference
point.

Program 2: (see figure)

G0 X95 Y20
G74 X1=1 Y1=7

G0 Approach coordinates X95 Y20.


G74 Movement from X95 Y20 to the absolute position
that is stored in the machine parameter
CfgPlcPositions for the X axis and the Y axis .f

HEIDENHAIN MillPlus V600 215


5.46 G77 Bolt Hole Circle
5.46 G77 Bolt Hole Circle

Execution of previously programmed drilling or milling cycles at points


located at equal distances on an arc or full circle.

Support picture

Address description
 X, Y, Z center point coordinate
 B, C end point angles
 I angle to first point
 J number of points
 K angle to last point
 R circular pattern radius
 B1= angle
 L1= path length
 B2= polar angle
 L2= polar length
 A5= angle of rotation Pocket angle
 ?90= center point abs. (X,Y,Z..)
 ?91= center point incr. (X,Y,Z..)
 P1= point definition no. for center

Format
„ Points on an arc:
G77 [center point] R... J... I... K... {A5=...}
„ Points on a full circle:
G77 [center point] R... J... I... {A5=...}
„ Points on multiple arcs:
G77 P1=... P2=.... P3=... P4=... R... J... I... K... {A5=...)

216 5 G0-G99 G Codes


5.46 G77 Bolt Hole Circle
Application
Associated functions
G79, G81, G83 - G89, G771 - G773, G777, G778.

Switch off radius compensation


Radius compensation must be switched off with G40 before calling a
G77 block.

Turned pocket or slot


A predefined pocket or slot can be turned by an angle. The center of
rotation is the point that is used in the G77 block to program the
position of the pocket or slot.
The angle is programmed with the A5= address and lies between -
360 and +360 degrees.
There are three options:
„ A5= address is not programmed. In this case, the pocket or slot
sides run parallel to the X-axis (G17 and G18) or the -Z-axis (G19).
„ A5=0. In this case, the axis for each pocket or slot is radial, i.e. it is
positioned in the direction of the radius from the circle center point
to the point on the circle.
„ A5=<>0. In this case, B1= indicates the angle formed by the pocket
or slot with the radius to the pocket center.

Incremental programming following G77


There are two options:
„ The incremental movement following G77 is another sample or
cycle design. In this case, the next cycle starting point is calculated
starting from the circle hole center point.
„ The incremental movement following G77 is a separate movement.
Here, the end point is calculated starting from the current position.

Changes to V5xx
„ See "G77_G91" on page 509.

HEIDENHAIN MillPlus V600 217


5.46 G77 Bolt Hole Circle
Example
Example: (see figure)

G78 P2 X... Y... Z...


G81 Y1 Z-10 F100 S1000 M3
G77 P2 R25 I30 K150 J4
G78 P1 X... Y... Z...
G81 Y1 Z-10 F100 S1000 M3
G77 P1 R25 I0 J6

G78 Second defined point


G81 Define the cycle
G77 Repeat the cycle four times on the arc
G78 First defined point
G81 Define the cycle
G77 Repeat the cycle six times on the full circle

Example: turned slots (see figure)

T1 M6
G88 X20 Y10 Z-10 B1 F100 S1000 M3
G77 X78 Y56 Z0 R24 I0 J6 A5=30

T1 Insert tool 1 (milling tool with a radius of 4.8 mm)


G88 Define the slot as if the sides ran parallel to the X and
Y axes
G77 The turned slots are milled

Example: direction of the holes on an arc (see figure)

G81 Y1 Z-10 F100 S1000 M3


G77 X0 Y0 Z0 R25 I180 K30 J4
G77 X0 Y0 Z0 R25 I-180 K30 J4

G81 Define the cycle


G77 Repeat the cycle four times on the arc; move from
180 degrees to 30 degrees in a clockwise (CW)
direction.
G77 Repeat the cycle four times on the arc; move from -
180 degrees to 30 degrees in a counter-clockwise
(CCW) direction.

218 5 G0-G99 G Codes


5.47 G78 Point Definition

5.47 G78 Point Definition


Unique definition of the coordinates for a point in a program. You only
have to program the point number for a traverse movement to this
point.

Support picture

Address description
 X, Y, Z point coordinates
 B, C point angles
 B2= polar angle
 L2= polar length
 P1 point definition number

Format
G78 P1=... [point coordinates]

Application
Point definitions
Only one point can be defined in any G78 block. All point coordinates
refer to the active workpiece zero point W.
Only Cartesian coordinates relative to the active zero point W or polar
coordinates (B2=, L2=) can be used in the main plane.
Program blocks with G1 or G79 can contain up to 4 points. Otherwise,
a program block can only contain one point.
Example: G1 P1=9 P2=1 P3=3 P4=8
P address with index: The index value (1-4) gives the priority for the
execution sequence (1= highest priority, 4=lowest priority). The entry
after the equals sign indicates the number of the point in the point
table. Another option is to enter the point definition as a parameter,
where the index defines the priority.

Number of point definitions


The number of point definitions in the point table for the CNC can be
specified with the "POINTS.PTT or SIMPOINTS.PTT" configuration file.

HEIDENHAIN MillPlus V600 219


5.47 G78 Point Definition Effectiveness
The coordinates for a defined point remain effective until:
„ The point is redefined by another G78 block.
„ The point memory is changed or is deleted by the operator.
„ New defined points are uploaded.
The point memory is not affected by a CNC reset.

Example
Example program (see figure)

G78 X-60 Y-20 P1


G78 X-30 Y60 P2
G78 X30 Y70 P3
G78 X80 Y-30 P4
G0 P1=1
G1 P1=2 P2=3 P3=4

G78 Define point 1


G78 Define point 2
G78 Define point 3
G78 Define point 4
G0 Move the tool in rapid traverse to the position defined
by P1.
G1 Move the tool to P2, P3, and then P4 at the
programmed feed rate

220 5 G0-G99 G Codes


5.48 G79 Cycle Call

5.48 G79 Cycle Call


Execution of previously programmed drilling cycles (G81, G83-G86) or
milling cycles (G87-G89) at specific positions.

Support picture

Address description
 X, Y, Z point coordinates
 B, C point angles
 B1= angle
 L1= path length
 B2= polar angle
 L2= polar length
 A5= angle of rotation Pocket angle
 ?90= point abs. (X,Y,Z..)
 ?91= point incr. (X,Y,Z..)
 P1= .. P4= point definition numbers

Application
Associated functions
G77, G81, G83 - G89, G771 - G773, G777, G778, G781, G783 - G789.

Positions in the main plane


The positions where a predefined cycle is to be executed are
programmed in the G79 blocks that follow the cycle definition.
The positions in the main plane are programmed with point or polar
coordinates or with a coordinate and an angle.
A G79 block can contain up to 4 predefined points. The predefined
cycle is executed at each of these points.

Switch off radius compensation


Radius compensation must be switched off with G40 before calling a
G79 block.

Turned pocket or slot


A5= represents the angle for turning a pocket or slot. See G77
example "Turned slots".

HEIDENHAIN MillPlus V600 221


5.48 G79 Cycle Call Incremental programming following G79
There are two options:
„ The incremental movement following G79 is another sample or
cycle design. In this case, the next cycle starting point is calculated
starting from the last cycle starting point.
„ The incremental movement following G79 is a separate movement.
Here, the end point is calculated starting from the current position.

Changes to V5xx
„ See "G79" on page 510.

Example
Three holes are to be drilled (see figure)

G78 P1 X50 Y20 Z0


G78 P2 X50 Y80 Z0
T1 M6
G81 Y1 Z-30 F100 S1000 M3
G79 P1 P2
T2 M6
G79 X50 Y50 Z0 M3

G78 Define point 1


G78 Define point 2
T1 Insert tool
G81 Define bore cycle
G79 Drill holes at point 1 first and then at point 2
T2 Insert a different tool
G79 Drill the hole at the programmed position

222 5 G0-G99 G Codes


5.49 G81 Drilling/Centering

5.49 G81 Drilling/Centering


Definition of a drilling cycle in a single program block. See also cycle
G781.

Support picture

Address description
 Z drilling depth
 X dwell time [s]
 Y 1st setup clearance
 B 2nd setup clearance

Format
G81 Z... {X...} {Y...} {B...}

Application
A G81 drilling cycle is performed with G77 or G79.

Associated functions
G77, G79, G83 - G89, G781.

Dwell time
It is possible to implement a dwell time at the bottom of the hole. The
unit is 0.1 s.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

HEIDENHAIN MillPlus V600 223


5.49 G81 Drilling/Centering
Example
Program example: (see figure)

G78 P1 X50 Y20 Z0


G78 P2 X50 Y80 Z0
G0 Z10 T1 M6
G81 X1.5 Y1 Z-30 F100 S500 M3
G79 P1 P2

G78 Define point 1


G78 Define point 2
G0 Insert tool and start from the tool change position
G81 Define bore cycle
G79 Execute the drilling cycle at point 1 and then at point 2

224 5 G0-G99 G Codes


5.50 G83 Deep-Hole Drilling

5.50 G83 Deep-Hole Drilling


Programming of a deep-hole drilling cycle in a program block. See also
cycle G782 and G783.

Support picture

Address description
 Z drilling depth
 X dwell time [s]
 Y 1st setup clearance
 B 2nd setup clearance
 I cutting depth reduction
 J retract distance for chip break
 K cutting depth
 K1= number of steps before retract

Format
G83 Z... {X...} {Y...} {B...} {I...} {J...} {K...} {K1=...}

HEIDENHAIN MillPlus V600 225


5.50 G83 Deep-Hole Drilling
Application
A G83 deep-hole drilling cycle is performed with G77 or G79.

Associated functions
G77, G79, G81, G84 - G89, G782, G783.

Deep-hole drilling
The Z value is the total depth in relation to the workpiece surface. The
algebraic sign determines the tool direction.
The K value is the plunging depth of the first drill step for deep-hole
drilling in several steps. The K value has no algebraic sign.
The plunging depth K is reduced by the I value for every subsequent
step. The I value is used if the calculated plunging depth becomes less
than the I value. Only the last plunging depth can be less than the I
value. The plunging depth remains the same until the last cut if I=0.
A retraction by the J value is performed after every infeed. The tool
normally remains in the hole during this process, while the chips are
broken. If the J value is equal to zero, the tool is retracted to the safety
clearance in each case.
The K1= value specifies the number of infeeds before chipping. When
the infeed number is reached, the tool is retracted to the safety
clearance and not by the J value.

Dwell time
It is possible to implement a dwell time at the bottom of the hole. The
unit is 0.1 s.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

226 5 G0-G99 G Codes


5.50 G83 Deep-Hole Drilling
Example
Program example: (see figure)

G83 Y4 Z-150 I2 J6 K20 K1=3


G79 X50 Y50 Z0

G83 Define deep-hole drilling cycle


G79 Execute the deep-hole drilling cycle at the
programmed position

HEIDENHAIN MillPlus V600 227


5.51 G84 Tapping
5.51 G84 Tapping

Definition of a tapping cycle in a single program block. See also cycle


G784.

Support picture

Address description
 Z tapping depth
 X dwell time [s]
 Y 1st setup clearance
 B 2nd setup clearance
 I positioning ramp [revolutions]
 J pitch
 I1= interpolation 0=without, 1=with

Format
„ G84 Z... {Y...} {B...} {J...} {X...} or
„ G84 I1=0 Z... {Y...} {B...} {J...} {X...}
The tapping can also be carried out as an interpolation in a closed
control loop between the tool axis and the spindle. This interpolation
also includes the acceleration power of the spindle. This guarantees
that the spindle runs in the desired position and at the required speed.
("Synchronized tapping").
„ G84 I1=1 Z... {Y...} {B...} {J...} {X...}

Application
A G84 tapping cycle is performed with G77 or G79.

Associated functions
G77, G79, G81, G83, G85 - G89, G784.

Feed rate
F(feed rate) = J(pitch) * S(speed).
When a G84-cycle is called using G79, the CNC must be set to
G94-operation (feed rate in mm/min) and not to G95-operation (feed
rate in mm/rev). G94 must always be programmed before G84.

228 5 G0-G99 G Codes


5.51 G84 Tapping
Interpolation
Tapping can be programmed with or without interpolation.
„ I1=0 guided (default setting, open control loop)
„ I1=1 interpolating (closed control loop)
Tilting an active G7 working plane can only be machined with
interpolation (I1=1). Guided tapping is also possible (I=0) with an active
G7, where the head is not tilted (the tool axis is directly on the Z axis).
Recutting the thread: For machines with interpolation (I1=1), you can
recut the thread by programming of an oriented spindle stop (M19)
with the D parameter "Spindle offset value".

Dwell time
It is possible to implement a dwell time at the bottom of the hole. The
unit is 0.1 s.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

Changes to V5xx
„ See "G84" on page 511.

Example
Program example: (see figure)

G84 Y9 Z-22 J2.5 S56 M3 F140


G79 X50 Y50 Z0

G84 Define the tapping cycle


G79 Execute the tapping cycle at the programmed
position

HEIDENHAIN MillPlus V600 229


5.52 G85 Reaming
5.52 G85 Reaming

Definition of a reaming cycle in a program block. See also cycle G785.

Support picture

Address description
 Z reaming depth
 X dwell time [s]
 Y 1st setup clearance
 B 2nd setup clearance
 F2= feed rate to start point

Format
G85 Z... {X...} {Y...} {B...} {F2=...}

Application
A G85 reaming cycle is performed with G77 or G79.

Associated functions
G77, G79, G81, G83, G84, G86 - G89, G785.

Optimizing the execution time for the reaming cycle


Tool retraction can be accelerated with a programmed retraction feed
rate F2=. This shortens the execution time for the reaming cycle. If
F2= is not programmed, the retraction is carried out with the
programmed feed rate F.

Dwell time
It is possible to implement a dwell time at the bottom of the hole. The
unit is 0.1 s.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

230 5 G0-G99 G Codes


5.52 G85 Reaming
Example
Program example: (see figure)

G85 X2 Y3 Z-30 F50 S100 F2=200 M3


G79 X50 Y50 Z0

G85 Define reaming cycle


G79 Execute the reaming cycle at the programmed
position

HEIDENHAIN MillPlus V600 231


5.53 G86 Boring
5.53 G86 Boring

Definition of a reverse boring cycle in a single program block. See also


cycle G786.

Support picture

Address description
 Z boring depth
 X dwell time [s]
 Y 1st setup clearance
 B 2nd setup clearance

Format
G86 Z... {X...} {Y...} {B...}

Application
A G86 reverse boring cycle is performed with G77 or G79.

Associated functions
G77, G79, G81, G83 - G85, G87 - G89, G786.

Dwell time
It is possible to implement a dwell time at the bottom of the hole. The
unit is 0.1 s.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

232 5 G0-G99 G Codes


5.53 G86 Boring
Example
Program example: (see figure)

G86 X1 Y9 Z-27 B10 F20 S500 M3


G79 X50 Y50 Z0

G86 Define reverse boring cycle


G79 Execute the reverse boring cycle at the programmed
position

HEIDENHAIN MillPlus V600 233


5.54 G87 Pocket Milling
5.54 G87 Pocket Milling

Programming of a rectangular pocket milling cycle in a program block.


See also cycle G787 and G797.

Support picture

Address description
 X 1st side length
 Y 2nd side length
 Z pocket depth
 B 1st setup clearance
 K plunging depth
 I proportional cutting width
 R rounding radius
 J milling 1=climb -1=conventional
 Y3= 2nd setup clearance
 F2= feed for plunging

Format
G87 X... Y... Z... {R...} {B...} {I...} {J...} {K...} {Y3=...} {F2=...}

234 5 G0-G99 G Codes


5.54 G87 Pocket Milling
Application
A G87 rectangular pocket milling cycle is performed with G77 or G79.

Associated functions
G77, G79, G81, G83 - G87, G88, G89, G787.

Pocket geometry
The X, Y, Z, and R expressions determine the pocket geometry. The X
and Y expressions do not have an algebraic sign.
The other expressions are the machining parameters.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

Example
Program example: (see figure)

G87 X200 Y100 Z-6 J+1 B1 R40 I75 K1.5 F200 S500 M3
G79 X120 Y70 Z0

G87 Define pocket milling cycle


G79 Execute the pocket milling cycle at the programmed
position

HEIDENHAIN MillPlus V600 235


5.55 G88 Key-Way Milling
5.55 G88 Key-Way Milling

Definition of the geometry for a slot and specific parameters for milling
the slot in a program block. See also cycle G788 and G798.

Support picture

Address description
 X 1st side length
 Y 2nd side length
 Z key-way depth
 B 1st setup clearance
 Y3= 2nd setup clearance
 K plunging depth
 J milling 1=climb -1=conventional
 F2= feed for plunging

Format
G88 X... Y... Z... {B...} {J...} {K...} {Y3=...} {F2=...}

Application
A G88 key-way milling cycle is performed with G77 or G79.
The algebraic signs of X and Y determine the direction of the slot from
the starting point S.

Associated functions
G77, G79, G81, G83 - G87, G89, G788, G798.

Slot geometry
The X, Y, and Z expressions determine the slot geometry.
The other expressions are the machining parameters.

Slot parallel to the X or Y axis


If the slot is parallel to the X axis, then the algebraic sign of the X value
determines the direction of the slot from the starting point. The Y
value is then programmed without an algebraic sign.
If the slot is parallel to the Y axis, then the algebraic sign of the Y value
determines the direction of the slot from the starting point. The X
value is then programmed without an algebraic sign.

236 5 G0-G99 G Codes


5.55 G88 Key-Way Milling
Deleting the cycle data
The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

Example
Program example: (see figure)

G88 X55 Y15 Z-5 B1 K1 F350 Y3=10 F2=200 M3


G79 X22.5 Y22.5 Z0
G88 X15 Y-55 Z-5 B1 K1 Y3=10 F2=200
G79 X90 Y62.528 Z0

G88 Define the cycle for milling a slot parallel to the X axis
G79 Execute the key-way milling cycle at the programmed
position
G88 Define the cycle for milling a slot parallel to the Y axis
G79 Execute the key-way milling cycle at the programmed
position

HEIDENHAIN MillPlus V600 237


5.56 G89 Circular Pocket Milling
5.56 G89 Circular Pocket Milling

Programming of a circular pocket milling cycle in a program block. See


also cycle G789 and G799.

Support picture

Address description
 R radius of circular pocket
 Z pocket depth
 B 1st setup clearance
 Y3= 2nd setup clearance
 K plunging depth
 I proportional cutting width
 J milling 1=climb -1=conventional
 F2= feed for plunging

Format
G89 Z... R... {B...} {I...} {J...} {K...} {Y3=...} {F2=...}

Application
A G89 circular pocket milling cycle is performed with G77 or G79.

Associated functions
G77, G79, G81, G83 - G88, G789, G799.

Circular pocket geometry


The Z and R expressions determine the circular pocket geometry.
The other expressions are the machining parameters.

Deleting the cycle data


The cycle data remains active in the program until it is deleted by:
„ Defining a new cycle
„ Canceling the program
„ M30
„ CNC reset

238 5 G0-G99 G Codes


5.56 G89 Circular Pocket Milling
Example
Program example: (see figure)

G89 Z-15 B1 R25 I75 K6 F200 S500 M3


G79 X50 Y50 Z0

G89 Define circular pocket cycle


G79 Execute the circular pocket cycle at the programmed
position

HEIDENHAIN MillPlus V600 239


5.57 G90 Absolute Programming
5.57 G90 Absolute Programming

Absolute coordinates, measured from the program zero point W.

Support picture

Application
Modality
G90 and G91 are modal together.

Default setting
G90 automatically takes effect after control activation, CNC reset,
Cancel program, or M30.
G90 is only canceled by programming G91.

Polar coordinates
The polar coordinates (B1=, L1=), B2=, L2=), (B3=, L3=) are not
affected by G90.

Word-oriented absolute programming


This type of absolute programming is independent of G90 and G91 and
is only allowed for the G codes: G0, G1, G2, G3, G9, G45, G46, G61,
G62, G77, G79, G145, and G182. The following addresses are used for
this:
„ X90=, Y90=, Z90= end point, absolute
„ U90=, V90=, W90= end point, absolute
„ I90=, J90=, K90= circle center point, absolute
„ A90-, B90=, C90= end angle, absolute

240 5 G0-G99 G Codes


5.57 G90 Absolute Programming
Example
Program example for absolute programming: (see figure)
G90 is the default setting and does not need to be programmed.

G81 Y2 Z-10 F200 M3


G79 X50 Y50 Z0
G79 X70
G79 Y70
G79 X50

G81 Define bore cycle


G79 Execute the cycle at the absolute position (50.50)
G79 Execute the cycle at the absolute position (70.50)
G79 Execute the cycle at the absolute position (70.70)
G79 Execute the cycle at the absolute position (50.70)

HEIDENHAIN MillPlus V600 241


5.58 G91 Incremental Programming
5.58 G91 Incremental Programming

Incremental coordinates, relative to the last position.

Support picture

Application
„ An absolute position must be programmed before the incremental
dimensions of G91.

Modality
G90 and G91 are modal together.

Default setting
G90 automatically takes effect after control activation, CNC reset,
Cancel program, or M30.
G91 is also canceled by programming G90.

Polar coordinates
The polar coordinates (B1=, L1=), B2=, L2=), (B3=, L3=) are not
affected by G91.

Word-oriented incremental programming


This type of absolute programming is independent of G90 and G91 and
is only allowed for the G codes: G0, G1, G2, G3, G9, G45, G46, G61,
G62, G77, G79, G145, and G182. The following addresses are used for
this:
„ X91=, Y91=, Z91= end point, incremental
„ U91=, V91=, W91= end point, incremental
„ I91=, J91=, K91= circle center point, incremental
„ A91=, B91=, C91= end angle, incremental

Changes to V5xx
„ See "G0..G3_G91" on page 492.
„ See "G40_G91" on page 502.
„ See "G73_G92" on page 508.

242 5 G0-G99 G Codes


5.58 G91 Incremental Programming
Example
Program example with G91: (see figure)

G81 Y2 Z-10 F200 M3


G79 X50 Y50 Z0
G91
G79 X20
G79 Y20
G79 X -20
G90

G81 Define bore cycle


G79 Execute the cycle at the absolute position (50.50)
G91 Switch to incremental measurement programming
G79 Execute the cycle at the incremental position X+20
G79 Execute the cycle at the incremental position Y+20
G79 Execute the cycle at the incremental position X+20
G90 Switch to absolute measurement programming

Program example X91=/Y91=:

G81 Y2 Z-10 F200 M3


G79 X50 Y50 Z0
G79 X91=20
G79 Y91=20
G79 X91=-20

G81 Define bore cycle


G79 Execute the cycle at the absolute position (50.50)
G79 Execute the cycle at the incremental position X+20
G79 Execute the cycle at the incremental position Y+20
G79 Execute the cycle at the incremental position X+20

HEIDENHAIN MillPlus V600 243


5.59 G92 Zero Point Shift Incr./
5.59 G92 Zero Point Shift Incr./Rotation
Rotation
Zero point shift using incremental coordinate(s), relative to the last
program zero point or a rotation of the coordinate system.

Support picture

Address description
 X, Y, Z zero point coordinates
 B, C zero point angles
 B1= angle
 B4= angle of rotation incremental
 L1= path length

Application
Rotating the coordinate system (see figure)
„ FSP: Approaching the tilting position by the shortest path
„ FSP now always displays an angle between =180 and +180
degrees. This is changed so that an angle between the limit
switches is displayed. This angle is then the shortest path. The
disadvantage is that the position of the rotary axis can increase to
very high values, which are to be turned back for a moment. The
disadvantage of these very high positions is resolved by means of a
separate function, with which the (internal) position is reset to a
value between 0 and 360 degrees
„ G93 {X}, {Y}, {Z}, {A}, {B}, {C}, {B2=}, {L2=}, {P}, {P1=}, {B4=}, {A3=1},
{B3=1}, {C3=1} where: A3=1, B3=1, C3=1
„ The relevant axis position is reset to a value between 0 and 360
degrees. (see figure)

244 5 G0-G99 G Codes


5.59 G92 Zero Point Shift Incr./Rotation
Reset function
A3=,B3=,C3= reset parameters. G93 A3=1 resets the relevant rotary
axis position to a value between 0 and 360 degrees.

Example: an A axis with the position 370 degrees is changed to 10


degrees after the programming of G93 A3=1.

Notes
G92/G93 is effective from the machine zero point if no G54-G59 or
G54 I... was previously activated.
A zero point shift programmed with G92/G93 is no longer allowed if
rotation of the coordinate system (G92/G93 B4=...) is active.
Zero point shift (see figure)

Changes to V5xx
„ See "G73_G92" on page 508.

Example
Program with G92: (see figure)

G92 X40 Y50


G81 Y1 Z-12 M3
N8 G77 X0 Y0 Z0 I45 J4 R40
G92 X80 Y-30
G14 N1=8
G93 X0 Y0

G92 Incremental zero point shift


G81 Define the cycle
G77 Call the cycle
G92 Incremental zero point shift
G14 Repeat function
G93 Delete incremental zero point shift

HEIDENHAIN MillPlus V600 245


5.60 G93 Zero Point Shift Abs./
5.60 G93 Zero Point Shift Abs./Rotation
Rotation
Zero point shift using absolute coordinate(s), relative to the zero point
(defined with G54-G59 or G54 I... ) or a rotation of the coordinate
system.

Support picture

Address description
 X, Y, Z zero point coordinates
 B, C zero point angles
 B2= polar angle
 L2= polar length
 B3= 1=reset position 0-360 degrees
 C3= 1=reset position 0-360 degrees
 B4= angle of rotation absolute
 P1= point definition number

Application
Rotating the coordinate system (see figure)
„ FSP: Approaching the tilting position by the shortest path
„ FSP now always displays an angle between =180 and +180
degrees. This is changed so that an angle between the limit
switches is displayed. This angle is then the shortest path. The
disadvantage is that the position of the rotary axis can increase to
very high values, which are to be turned back for a moment.
„ The disadvantage of these very high positions is resolved by means
of a separate function, with which the (internal) position is reset to
a value between 0 and 360 degrees.
„ G93 {X}, {Y}, {Z}, {A}, {B}, {C}, {B2=}, {L2=}, {P}, {P1=}, {B4=}, {A3=1},
{B3=1}, {C3=1} where: A3=1, B3=1, C3=1
„ The relevant axis position is reset to a value between 0 and 360
degrees. (see figure)

Reset function
A3=, B3=, C3= reset parameter. With G93 A3=1, the relevant rotary
axis position is reset to a value between 0 and 360 degrees.
Example: an a axis with the position 370 degrees is changed to 10
degrees after the programming of G93 A3=1.

246 5 G0-G99 G Codes


5.60 G93 Zero Point Shift Abs./Rotation
Notes
G92/G93 is effective from the machine zero point if no G54-G59 or
G54 I... was previously activated.
A zero point shift programmed with G92/G93 is no longer allowed if
rotation of the coordinate system (G92/G93 B4=...) is active.
Zero point shift (see figure)

Example
Program with G93: (see figure)

G93 X40 Y50


G81 Y1 Z-12 M3
N8 G77 X0 Y0 Z0 I45 J4 R40
G93 X12 Y20
G14 N1=8
G93 X0 Y0

G93 Absolute zero point shift


G81 Define the cycle
G77 Call the cycle
G93 Absolute zero point shift
G14 Repeat function
G93 Delete absolute zero point shift

HEIDENHAIN MillPlus V600 247


5.61 G94 Feed in mm/min (inch/
5.61 G94 Feed in mm/min (inch/min)
min)
Information to the control that the programmed feed rate (F
expression) is to be measured in mm/min or inch/min.

Support picture

Address description
 F feed
 F1= F adaptation:1=red.,2=r/h,3=high
 F3= in depth feed
 F4= in plane feed
 F5= feed rotary axes

Format
„ G94: feed rate in mm/min or inch/min
„ G94 F5=: feed rate unit for the rotary axes

248 5 G0-G99 G Codes


5.61 G94 Feed in mm/min (inch/min)
Application
Milling operation (G37): N... G94 F.. {S..} {M..}
S and M refer to the main spindle.
For rotary axes, the path in the space is calculated from the kinematic
model. The feed rate is applied to this path.

Maximum speed
The maximum speed is specified for each gear range (M41-M44).

Feed rate F, F1, F3, F4


See Technology chapter.

Feed rate unit for rotary axes F5=


The unit for the modal feed rate for G1 is specified with G94 F5= for
cases where only one rotary axis is programmed.

G94 F5=0 Degree/min (default setting)


G94 F5=1 mm/min or inch/min.
With F5=1 the speed on the current rotary axis radius is calculated.
This is the distance from the tool to the center of the rotary axis.
G94 F5=1 is canceled with G94 F5=0, G95, M30, the Reset CNC soft
key or the Cancel program soft key.

Example
Program example
G94
G1 X... Y... F200

G94 Feed rate in mm/min


G1 Advance to X... Y... with a feed rate of 200 mm/min

HEIDENHAIN MillPlus V600 249


5.62 G95 Feed in mm/rev (inch/
5.62 G95 Feed in mm/rev (inch/rev)
rev)
Information to the control that the programmed feed rate (F
expression) is to be measured in mm/rev or inch/rev.

Support picture

Address description
 F feed
 F1= F adaptation:1=red.,2=r/h,3=high
 F3= in depth feed
 F4= in plane feed

Format
G95: feed rate in mm/revolution or inch/revolution

Example
G95
G1 X... Y... F0.5

G95 Feed rate in mm/rev


G1 Advance to X... Y... with a feed rate of 0.5 mm/rev

Application
Milling operation (G37): N... G95 F.. {S..} {M..}
S and M refer to the main spindle.
For rotary axes, the path in the space is calculated from the kinematic
model. The feed rate is applied to this path.
The G95 function calculates the feed rate in [mm/min (inch/min)] based
on the programmed feed rate in [mm/rev], [inch/rev] and the active
spindle speed.

Maximum speed
The maximum speed is specified for each gear range (M41-M44).

250 5 G0-G99 G Codes


5.63 G97 Spindle Speed

5.63 G97 Spindle Speed


Information to the control that the programmed spindle speed (S
expression) is in rev/min. This switches G96 off.

Support picture

Address description
 S speed (rev/min)
 M machine function
 S1= speed (rev/min)
 M1= machine function

Format
„ F.. {S..} {M..}
„ S and M refer to the main spindle

Application
Maximum speed (s)
The maximum speed is specified for each gear range (M41-M44).

HEIDENHAIN MillPlus V600 251


5.64 G98 Graphic Window
5.64 G98 Graphic Window Definition
Definition
Definition of the position relative to the program zero point W and the
dimensions of a 3D-graphic window, which is to be used to display the
machining of the workpiece by means of graphical simulation.

Support picture

Address description
 X, Y, Z start point coordinates
 I dimension parallel to X
 J dimension parallel to Y
 K dimension parallel to Z

Format
G98 X... Y... Z... I... J... K...

Application
Changes to V5xx
„ See "G98" on page 511.

Example
Program example
G98 X-20 Y-20 Z-75 I140 J90 K95
G99 X0 Y0 Z0 I100 J50 K-55

G98 Starting point and dimensions of the 3D graphic


window
G99 Define the workpiece blank as a 3D area

252 5 G0-G99 G Codes


5.65 G99 Graphic Material

5.65 G99 Graphic Material Definition


Definition
Definition of a three-dimensional workpiece blank and its position
relative to the program zero point W. The dimensions are required for
the graphical simulation.

Support picture

Address description
 X, Y, Z start point coordinates
 I dimension parallel to X
 J dimension parallel to Y
 K dimension parallel to Z

Example
Program example
G98 X-20 Y-20 Z-75 I140 J90 K95
G99 X0 Y0 Z0 I100 J50 K-55

G98 Starting point and dimensions of the 3D graphic


window
G99 Define the workpiece blank as a 3D area

HEIDENHAIN MillPlus V600 253


G100-G199 G-Codes
6.1 G125 Lifting Tool on
6.1 G125 Lifting Tool on Intervention: OFF
Intervention: OFF
Deactivation of the tool lifting movement.

Support picture

Address description
No specific addresses.

Application
Modality
G125 is modal with G126

Execution
G125 resets the modal <Lifting permitted status> for the G126
function. No further lifting movement is possible after this.
„ G125 is identical to G126 I1=0 I2=0 I3=0
„ G125 causes <INPOD>.

Display
The G125/G126 functions are in the processing status display in the
modal G series.

256 6 G100-G199 G-Codes


6.2 G126 Lifting Tool on

6.2 G126 Lifting Tool on Intervention: ON


Intervention: ON
G126 is a function which lifts the tool from the workpiece under
certain conditions (coolant failure, intervention, and faults).

Support picture

Format
G126 {I1=...} {I2=...} {I3=...} {L...}

Address description
 I1= lifting by PLC: 0=off,1=on (e. g. coolant failure): 0= no lifting,
1=lifting.
 I2= lifting on <INT>: 0=off,1=on 0= no lifting, 1= lifting.
 I3= lifting on error: 0=off,1=on 0= no lifting, 1= lifting.
 L lifting distance in tool direction Defines the lifting distance
in the direction of the tool or of the tool orientation (G36 turning).
Default setting via: machine parameters CfgLiftOff/on and "G126
Lifting distance". The value lies between 0.000000000 and
2.000000000 [mm] or 0.0001 and 9999.9999 [inch].

Default setting
I1=1, I2=0, I3=0, L=lifting distance

HEIDENHAIN MillPlus V600 257


6.2 G126 Lifting Tool on Intervention: ON
Application
Modality
G125 is modal with G126.

Execution
G126 causes <INPOD>. A modal <Lifting permitted status> is then
set.
The lifting movement is activated if:
„ One of the actions described in the parameters I1-I13 (coolant
failure, intervention, or error) takes place.
„ G126 modal <Lifting permitted status> is activated.
„ A feed rate is active. Lifting does not take place if the feed rate
override is set to zero.
„ For fixed cycles including when rapid traverse is active.
„ Specific G functions are active.
Note: Machining stops even if the lifting movement is not activated.
If, for example, WOX_RETRACT_TOOL is set during a rapid traverse,
processing stops without a lifting movement.

The lifting movement takes place:


„ In the programmed direction
„ In tool direction (G37 "Milling operation", G126 L parameter, or
default setting) or until the programmed lifting height or software
limit switch is reached
After the lifting movement, the machining and the spindle stop with
an (additional) error message I264 "Machining stopped with lifting
movement".
Note: if the lifting movement is activated by an error (G126 I3=1) that
also triggers the emergency stop, the drive motors are switched off
before the lifting movement is completed.

Motion sequence
Before the lifting movement starts, the MillPlus decelerates until it
reaches the correct (smooth) corner speed.

258 6 G100-G199 G-Codes


6.2 G126 Lifting Tool on Intervention: ON
When the G126 function is active, the lifting function is not
possible in the following G functions (not yet complete):
Movements 0, 6, 31, 33
Depending on G28 setting of feed movements
Planes 7, 182
Measuring cycles 45, 46, 49, 50, 145, 148, 149, 150
Positioning 74, 174
Fixed cycles 84, 86
Cycles 784, 786, 790, 793
Graphic 98, 99, 195, 196, 197, 198, 199
Pocket cycle 200, 201, 203, 204, 205, 206, 207, 208

Switching off G126


G126 ("Lifting tool on intervention: ON") is deactivated for <M30>,soft
key Cancel program, G125 active, and soft key CNC reset.

Status display
The G125/G126 status is displayed in the modal G group display.

Block access
The functions G125 and G126 are saved during block searches and the
last of these functions is carried out immediately after the block is
accessed.

Interrupting the lifting movement


The lifting movement itself can be interrupted. However, it is not
resumed after the interruption. A new <start> means returning to the
contour.

Returning to the contour


After the lifting movement and additional error message, the normal
options during interruption are possible. The system returns to
contour by means of positioning logic.

Machine parameters
CfgLiftOff Tool lifting distance

On Lifting movements active


Off Lifting movements not active
distance 0.000000000 to 2.000000000 [mm]
default: 0.0 [mm]

HEIDENHAIN MillPlus V600 259


6.2 G126 Lifting Tool on Intervention: ON G320 can be used to query the G126/G125 status and
programmed distance (not yet available)
I1=72 Programmed statuses
0 G125
1 PLC (G126 I1=1)
2 INT (G126 (I2=1)
3 PLC + INT (G126 I1=1 I2=1)
4 ERR (G126 I3=1)
5 PLC + ERR (G126 (I1=1 I3=1)
6 INT + ERR (G126 I2=1 I3=1)
7 All (G126 I1=1 I2=1 I3=1)
I1=73 Programmed distance

Changes to V5xx
„ See "G126" on page 513.

Example
Activate lifting function
G126 I1=1 I2=1

G126 Activate the lifting function by IPLC or interruption.

260 6 G100-G199 G-Codes


6.3 G141 3D Tool Correction

6.3 G141 3D Tool Correction


Allows the tool dimensions to be corrected for a 3D tool path,
generated from short, straight sections, with 3-axis and 5-axis
machining. Rotary axes can be programmed directly with an angle or
indirectly with a tool vector. Radius compensation occurs if the normal
vector is programmed in the end point. A typical application is the
machining of free-form surfaces.

Support picture

Address description
 R nominal tool radius Defines the tool radius used to calculate the
end points of the G0/G1- blocks in the CAD- system.
 R1= nominal tool corner radius Defines the tool corner radius
used to calculate the end points of the G0/G1- blocks in the CAD-
system.
 L2= rotary axes (0=shortest, 1=abs.)
„ L2=0 rotary axes traverse the shortest route (default setting).
„ L2=1 rotary axes approach their absolute position (with rotary axis
programming).
 F2= feed limitation Highly-curved surfaces can cause the rotary
axes to move abruptly at maximum feed. F2= limits this feed rate.
F2= is programmed in the G141 block and acts for all G0/G1
movements up to the block with G40.
With G0/G1
 X, Y, Z linear end point coordinates
 I, J, K axis components of the surface normal vector
 I1=, J1=, K1= (TCPM) axis components of the tool vector
 A, B, C (TCPM) rotary axis coordinates of the tool vector
 F feed rate on the path

HEIDENHAIN MillPlus V600 261


6.3 G141 3D Tool Correction
Format
3-axis machining with normal vector (I,J,K) for radius compensation:
„ G141 {R...} {R1=...} {L2=...} {F2=...}
„ G0/G1 [X..Y.. Z..] {I... J... K...}
5-axis machining with TCPM (Tool Center Point Management). Normal
vector (I,J,K) for radius compensation.
„ G141 R.. {R1=..} {L2=..} {F2=..}
„ G0/G1 [X..Y.. Z..] [I.. J.. K...] {I1=.. J1=.. K1=..}/{A.. B.. C..}
Canceling 3D- tool compensation:
„ G40

Default setting
G141 L1=0 R1=0 R=0

Application
5-axis machining of a curved workpiece surface involves guiding the
tool to the surface at an optimized angle. Dynamic TCPM is used for
this 5-axis machining and guides the rotary axes and linear axes,
allowing for current tool length and tool radius. In the G0/G1 block, the
rotary axes can be programmed directly with angle (A,B,C) or indirectly
with a tool vector (I1=, J1=, K1=). The radius compensation is
calculated by MillPlus if the normal vector (I, J, K) is programmed in the
G0/G1 block.
„ N = normal vector (I, J, K) (see figure)
„ O = tool vector (I1=, J1=, K1=)
G7 can be active. In this case, the normal- and tool vectors are defined
in the G7- plane.

Possible tools
The following dimensions must be loaded in the tool memory for use
of the various tool types (see figure):

Radius cutter: R (tool radius)


L (tool length)
R2 (rounding radius) R2=R
Radius end R (tool radius)
milling tool L (tool length)
R2 (rounding radius) R2<R
End milling R (tool radius)
tool: L (tool length)
R2=0
If no R2 value is entered, R2 automatically becomes 0.

262 6 G100-G199 G-Codes


6.3 G141 3D Tool Correction
The rounding radius in the G141 block is programmed with
the expression R1=. The R2 expression is used to store
the rounding radius in the tool memory.

Radius compensation
The radius compensation is calculated by MillPlus if the normal vector
(I, J, K) is programmed in the G0/G1 block. The radius compensation
is not activated if no normal vector is programmed.
The tool is positioned so that this vector always passes through the
center point of the corner rounding. If the end points are calculated in
the CAD/CAM system with the nominal radius and corner radius, this
can be defined in the G141 block using R and R1=. The true radius R
and corner radius R2 are then entered into the tool table. The control
corrects the difference between the nominal and actual radius.
R radius defines the tool radius used to calculate the end points of the
G0/G1- blocks in the CAD-system.
R1= radius defines the tool corner radius used to calculate the end
points of the G0/G1- blocks in the CAD-system.

Normal vector (I, J, K)


The normal vector is perpendicular to the workpiece surface. I,J,K are
the vector components in directions X,Y,Z. The tool is positioned so
that this vector always passes through the center point of the tool
corner rounding. See figure.

Tool vector (I1=, J1=, K1=) (TCPM)


This vector points towards the tool axis. I1=,J1=,K1= are the vector
components in directions X, Y, Z. The tool vector can be programmed
in the G0/G1 block instead of the rotary axes. During the movement,
the rotary axes A, B, C and linear axes are interpolated so that a
straight line is generated in the machining area. The tool points
towards this vector at the end point of the movement.

Vector components
A vector is programmed with at least one component in the G0/G1
block. Unprogrammed components are equal to zero.

Vector accuracy
The vector components are programmed with up to 9 places. The
input format for the vectors (I, J, K) and (I1=, J1=, K1=) is limited to
seven decimal places. Six decimal places should be programmed to
achieve sufficient dimensional accuracy. However, the normal- and
tool vectors do not need to have length 1.

Activating G141
In the first block after G141, the milling tool traverses from the current
tool position to the corrected position in this block. G141 deletes a
radius compensation programmed using G41..G44.

Canceling G141
The function G141 is canceled using G40, M30, the Cancel program
soft key, or the CNC reset soft key. The milling tool stops at the last
corrected position. The rotary axes are not turned back automatically.

HEIDENHAIN MillPlus V600 263


6.3 G141 3D Tool Correction Switch on condition before G141
Before switching onG141, the following functions must be switched
off: Geometry G64, Scale change G73 A4=, Axis rotation B4= with
G54-G59, G54 I.. , G92/G93, cylinder coordinates G182
The following functions are permitted when G141 is switched on:

Basic motions 0, 1
Free working plane 7
Planes 17, 18
Program control 14, 22, 23, 29
Positioning feed rate 25, 26, 27, 28, 94, 95, 96, 97
Tool dimension 39
Radius compensation 40
Zero points 51, 52, 53, 54-59, 54 I.., 92, 93
Geometry 72, 73
Absolute/incremental 90, 91
Graphic 195, 196, 197, 198, 199
The following G-functions are permitted if G141 is active:

Basic motions 0, 1
Program control 14, 22, 23, 29
Positioning feed rate 4, 25, 26, 27, 28, 94, 95, 96, 97
Radius compensation 40
Zero points 51, 52, 53, 54-59, 54 I.., 92, 93
Geometry 72, 73
Absolute/incremental 90, 91
An error message is issued if a G-function that is not permitted is
programmed.

Programming limitations
G-functions not listed above must not be used. Point definitions (P)
must not be used. No tool change must be made after activating
G141.

End point coordinates


Absolute or incremental (X, X90, X91) Cartesian dimensions can be
used.

G1
When a tool vector I1=,J1=,K1= is being programmed, G0 or G1 must
be in the same block.

Mirroring
If the mirroring function (G73 and axis coordinates) is effective before
G141 is activated, the mirrored coordinates will be used during the
3D-tool compensation. Mirroring is re-enabled once G141 is activated.
Mirroring is canceled using the function G73.

Undercuts
Undercuts or collisions between the tool and material at points not to
be machined are not detected by the CNC.

264 6 G100-G199 G-Codes


6.3 G141 3D Tool Correction
Displaying the rotary axis position
If a rotary axis has been defined as the rollover axis, it is possible for
positions greater than 360° to be displayed in the position window.
The position is reset between 0° and 360° by programming G141.

Behavior of the rotary axes at the limit switches


If the rotary axes on G141 are programmed directly with A.. B.. C.., an
error message is issued if the programmed position lies past the limit
switch.

Selecting a solution with vector programming


If the rotary axes are programmed via the tool vector I1=, J1=, K1=,
there are often two solutions for the rotary axis positions. Selecting a
solution:
„ The solution that lies past the limit switch is invalid.
„ The solution that goes beyond the limit switch of a linear axis during
interpolation is invalid.
„ If two solutions are valid, the solution with the shortest route is
selected, even when L2=1 (rotary axis absolute).
„ If both solutions are invalid, an error message is displayed indicating
that the programmed level cannot be reached.
End point coordinates
With end point coordinates, only the programmed axes are moved.

Changes to V5xx
„ See "G141" on page 514.

HEIDENHAIN MillPlus V600 265


6.3 G141 3D Tool Correction
Example
Example 1: G141 and TCPM
Tool vector with (I1=..., J1=..., K1=...)
This programming is independent of the machine.

N113 (RECTANGLE MATERIAL WITH UPPER ROUNDINGS (R4) AND A


TILTED TOOL (5 DEGREES))
G17
T6 M67 (ROUND SPHERICAL CUTTER 10: IN TOOL TABLE T6 R5
C5)
G54 I10
G0 X0 Y0 Z0 B0 C0 S6000 M3
F50 E1=0
G141 R0 R1=0 L2=0 (ALL DEFAULT SETTINGS, DO NOT HAVE TO
BE PROGRAMMED)
(R IS 0 MM IN CAD SYSTEM)
(R1 IS 0 MM IN CAD SYSTEM)
(L2=0 ROTARY AXES TRAVEL THE SHORTEST PATH)
G0 X-1 Y=E1 Z0 I1=-1 K1=0
(GENERATED IN THE CAD SYSTEM)
(ARC FRONT LEFT)
G1 X0 Y=E1 Z-4 I1=-0.996194698 K1=0.087155743
G1 X0.000609219 Z-3.930190374 I1=-0.994521895
K1=0.104528463
G1 X0.002436692 Z-3.860402013 I1=-0.992546152
K1=0.121869343
G1 X0.005481861 =-3.790656175 I1=-0.990268069
K1=0.139173101
N.... (EACH DEGREE A POINT)
G1 X3.790656175 Z-0.005481861 I1=0.034899497
K1=0.999390827
G1 X3.860402013 Z-0.002436692 I1=0.052335956
K1=0.998629535
G1 X3.930190374 Z-0.000609219 I1=0.069756474
K1=0.99756405
G1 X4 Z0 I1=0.087155743 K1=0.996194698
(ARC FRONT RIGHT)
G1 X36 Z0 I1=0.087155743 K1=0.996194698
G1 X36.06980963 Z-0.000609219 I1=0.104528463
K1=0.994521895
G1 X36.13959799 Z-0.002436692 I1=0.121869343
K1=0.992546152

266 6 G100-G199 G-Codes


6.3 G141 3D Tool Correction
Example 2: G141 and TCPM
Identical workpiece. Tool vector with (A, B, C)
This programming is dependent on the machine.
This program is for a machine with a B axis less than 45° on the table
and a C axis above it.

N114 (RECTANGLE MATERIAL WITH UPPER ROUNDINGS (R4) AND A


TILTED TOOL (5 DEGREES))
G17
T6 M67 (ROUND SPHERICAL CUTTER 10: IN TOOL TABLE T6 R5
C5)
G54 I10
G0 X0 Y0 Z0 B0 C0 S6000 M3
F50 E1=0
G141 R0 R1=0 L2=0 (ALL DEFAULT SETTINGS, DO NOT HAVE TO
BE PROGRAMMED)
(R IS 0 MM IN CAD SYSTEM)
(R1 IS 0 MM IN CAD SYSTEM)
(L2=0 ROTARY AXES TRAVEL THE SHORTEST PATH)
--------
G0 X-1 Y=E1 Z0 B180 C-90
(GENERATED IN THE CAD SYSTEM)
(ARC FRONT LEFT)
G1 X0 Y=E1 Z-4 B145.658 C-113.605
G1 X0.000609219 Z-3.930190374 B142.274 C-115.789
G1 X0.002436692 Z-3.860402013 B139.136 C-117.782
G1 X0.005481861 Z-3.790656175 B136.191 C-119.624
N.. (EACH DEGREE A POINT)
G1 X3.790656175 Z-0.005481861 B2.829 C1
G1 X3.860402013 Z-0.002436692 B4.243 C1.501
G1 X3.930190374 Z-0.000609219 B5.658 C2.001
G1 X4 Z0 B7.073 C2.502
(ARC FRONT RIGHT)
G1 X36 Z0 B7.073 C2.502
G1 X36.06980963 Z-0.000609219 B8.489 C3.004
G1 X36.13959799 Z-0.002436692 B9.906 C3.507

HEIDENHAIN MillPlus V600 267


6.4 G145 Linear Measuring
6.4 G145 Linear Measuring Movement
Movement
Execution of a freely programmable linear measuring movement to
determine axis positions.

Support picture

Format
G145 [measuring point coordinates] [(axis address) 7=...] {S7=...}
{O1=...} {O2=...} {O3=...} {O4=...} E... {F2=...} {K...}

Address description
 X,Y,Z end point coordinates
 B,C end angles
 K 0=tool correction on, 1=off The following assumptions apply
when the measuring positions are corrected with regard to the
measure probe dimensions: the measure probe is arranged parallel
to the tool axis, the measure probe is completely round, the
measure probe is moved perpendicular to the surface to be
measured.
„ K=0 tool correction on Measuring positions are corrected with
regard to tool length and tool radius. Measuring positions in
rotation axes are not corrected with regard to tool data.
„ K=1 tool correction off Measuring positions are not corrected.
„ K=2 tool correction on Measuring positions are only corrected
with regard to tool length. Measuring positions in rotation axes are
not corrected with regard to tool data.
 B1= angle
 B2= polar angle
 X7....S7 E parameter for measured value in X,Y,Z,B,C,S
 ?90 absolute end point angle (X,Y,Z..)
 ?91 incremental end point angle (X,Y,Z..)
 L1= path length
 L2= polar length
 P1= point definition number
 F2= measuring feed
 I4= blow air 0=no 1=yes. The air blowing period is determined by
the PLC.

268 6 G100-G199 G-Codes


6.4 G145 Linear Measuring Movement
 O1= E parameter for error "No measuring target" Defines the E
parameter number that states whether the measuring target was
found after the measurement. If the O1= address is programmed,
the error message "No measuring target found" is no longer issued
by the control but is still written in the defined E parameter.
„ E(O1=) = 0 = measuring target was found
„ E(O1=) = 1 = measuring target was not found.
 O2= E parameter for error "Probe deflected" Defines the E
parameter number that states whether the touch probe was
deflected at the start of the measurement. If the O2= address is
programmed, the error message "Probe deflected" is no longer
issued by the control but is still written in the defined E parameter.
„ E(O2=) = 0 = touch probe was not deflected
„ E(O2=) = 1 = touch probe was deflected
 O3= E parameter for the status measured value Defines the E
parameter number that specifies the status of the measured value.
„ E(O3=) = 0 = measured value is measured position
„ E(O3=) = 1 = measured value is programmed end position
„ E(O3=) = 2 = no value
 O4= E parameter for block access operating mode Defines the
E parameter number that specifies whether block access was
active.
„ E(O4=) = 0 = block access was not active
„ E(O4=) = 1 = block access was active

Application
Associated functions
G148, G149, G150. The functions G148 to G150 must not be used
during operation with G182.

Measurement feed (F2=)


If F2= is not programmed, the measurement feed from the
PROBE_FEED columns in the tool table is automatically uploaded.

Interruption
The G145 movement is processed as a G1 movement during an
interruption. The measure probe status should not be changed
between the starting point of the measurement movement and the
point of interruption, otherwise an error message is issued. An error
message is also raised if the touch probe is triggered when returning
to the contour.

Changes to V5xx
„ See "G145" on page 515.

HEIDENHAIN MillPlus V600 269


6.4 G145 Linear Measuring Movement
Example
Milling and measuring a slot
A slot is to be milled and its width is to be measured. If the width of
the slot is too small, the milling radius must be corrected and the slot
must be reworked.

G99 X0 Y0 Z0 I120 J100 K-20


T1 M6 D=18 mm
S1000 M3
G0 X-25 Y50 Z-10 Start slot milling
F1400 M8
G1 X140
G43
Y60
G41
X-25 Y40
X140
G40
Y50
G0 Z50
M5
M9 End slot milling
G149 T0 E4
E1=20 E2=19.98 E3=20.02 Nominal, minimum, maximum width
T999 M6
M27
G0 X60 Y50 Z0
G145 Z-4 I4=1 O1=10 F2=1000 Blow air, check the obstruction of the slot
IF E10=0 THEN Slot obstructed if touch probe has been triggered:
M0 Slot blocked, remove chips, start

270 6 G100-G199 G-Codes


6.4 G145 Linear Measuring Movement
END IF
E11=60 E12=40.05 Test
G0 Y54 Z-4
G145 Y62 Y7=11 I4=1 O1=99 Measure first side
G0 Y46
G145 Y38 Y7=12 I4=1 O1=99 Measure second side
G0 Y50
Z50
E13=E11-E12 Measured width
E14=(E13-E1)/2 Corrected tool radius
WHILE E13>E3 Width > maximum?
M0 Slot width outside tolerance, cancel program
END WHILE
G321 T=E4 I1=5 E15 Read DR
IF E15 IS NOTHING THEN
E15=0 Default setting for DR
END IF
E16=E15+E14 New DR
G331 T=E4 I1=5 E16 Write new DR
T=E4 M67 Activate new DR
IF E13<E2 THEN Machine slot again if width < minimum
T1 M6 D=18 mm
S1000 M3
G0 X140 Y50 Z-10
F400 M8
G43
G1 Y60
G41
X-25 Y40
X140
G40
Y50
G0 Z50
M5 Machine end again
END IF
M28
M30

HEIDENHAIN MillPlus V600 271


6.5 G148 Read Measure Probe
6.5 G148 Read Measure Probe Status
Status
Export of measure probe status within the measuring cycle macro.

Support picture

Format
G148 {I1=...} E...

Address description
 I1= status group (1-2)

I1=1 Active mode.


E...=0 Measure probe not deflected. Default setting.
E...=1 Measure probe deflected.
E...=2 The G145-block was executed during the block search
run, test run, or demo operation.
E...=3 A measure probe error has occurred; no measuring
process possible

I1=2 Measure probe error.


E...=0 No measuring point was determined during the
measurement.
E...=1 A measuring point was determined during the
measurement.
 E E parameter for probe status
The priority for the probe status is:
E...=2 Active mode
E...=3 Measure probe error
E...=0 / 1 Measure probe contact

Application
Associated functions
G145, G149, G150

(Modal) G functions that are not allowed when the function is


used
„ G64, G141, G182, G195, G197, G198, G199, G280-G286

Changes to V5xx
„ See "G148_I1=3" on page 516.

272 6 G100-G199 G-Codes


6.5 G148 Read Measure Probe Status
Example
Read measure probe status
G148 I1=1 E27
G29 E91=E27=2 E91 N=300
-------
N300 M0

G148 Save measure probe status in E parameter 27.


G29 Jump to block N300 if the program is executed in the
block search run, test run, or demo operation. This
avoids e. g. calculations with parameters that have
not been loaded because no measurement has been
made.

HEIDENHAIN MillPlus V600 273


6.6 G149 Read Tool- or Zero Offset
6.6 G149 Read Tool- or Zero Offset Values
Values
Querying of tool and zero offset data and saving this data in the E
parameter.

Support picture

Querying tool data

Format

We recommend that you use G321 (Read tool data) to


read tool data. This G function contains more options.

Querying the active tool number:


„ G149 T0 E...
Querying the tool dimensions and tool life:
„ G149 T... {T2=...} {L1=...} {R1=...} {M1=...}
Querying the tool status:
„ G149 T... {I1=...} {I2=...}

Address description
 T tool number Number of the tool whose tool data is to be exported.
The complete tool number (including the spare tool index) must be
specified.
Note: T0 reads the number of the active tool. The tool data from T0
cannot be exported. The relevant E-parameters are not loaded when
T0 is used. No corresponding error message is issued.
 T2= tool offset index The tool compensation index 0 to 9 can be
specified.
 I1= E parameter for tool locked The tool lock TL is saved in the
specified E parameters. Result:
„ 0 tool is not locked.
„ 1 tool is locked.

274 6 G100-G199 G-Codes


6.6 G149 Read Tool- or Zero Offset Values
 I2= E parameter for tool statusThe tool status TS is saved in the
specified E-parameters. Result:
„ 0 tool is released but not measured.
„ 1 tool is released and measured.
„ 2 tool outside tolerance.
„ 3 tool breakage.
„ 4 tool life expired.
 L1=, R1= E parameter for tool length and radius The tool length
and tool radius are saved in the specified E parameters. Result:
„ Tool radius = radius (R) + allowance (DR).
„ Tool length = length (L) + allowance (DL).
 M1= E parameter for tool life The current tool life CUR_TIME is
saved in the specified E parameters.

Default setting
T2=0

Application
„ Associated functions: G145, G148, G150, G321, and G326
„ Exporting addresses with no value. If addresses that were not input
beforehand are exported in the tool file, a zero value is returned in
the specified E parameters.
„ G149 is not allowed after the following modal functions: G64, G141,
G280-G286

Changes to V5xx
„ See "G149" on page 516.

HEIDENHAIN MillPlus V600 275


6.6 G149 Read Tool- or Zero Offset Values
Example
1: Querying the number of the active tool
G149 T0 E1

E1 E1 contains the number of the active tool


2: Querying the tool dimensions
G149 T12 L1=5 R1=6

L1=5 E5 contains the sum of the tool length (L) + allowance


(DL)
R1=6 E6 contains the sum of the tool radius (R) + allowance
(DR)

3: Querying the current tool life


G149 T12 M1=3

M1=3 E3 contains the current tool time CUR_TIME from


T12

4: Querying the tool status


G149 T12 I1=12 I2=13

I1=12 E12 contains the tool lock TL


I2=13 E13 contains the tool status TS

276 6 G100-G199 G-Codes


6.6 G149 Read Tool- or Zero Offset Values
Querying Zero Offset Values

Format

The best way to read zero offset values is to use G320


(read actual G data) (I1=21 to I1=47). This G function
contains more options.

Querying the active pallet offset number:


„ G149 N1=0 E...
Querying the active zero offset number:
„ G149 N1=1 E...
Querying saved zero offset values:
„ G149 N1=54...59 (axis address)7=... {(axis address)7=...}
„ G149 N1=54.[NR] (axis address)7=... {(axis address)7=...} {B47=...}
Querying programmable zero offset values:
„ G149 N1=92 {93} [(axis address)7=...] {(axis address)7=...}

Address description
 N1= zero point shift
„ N1=0 zero offset shift group G52 If G52 is active, then the
E-parameter is given the value 52. If G52 is not active, then the
E-parameter is given the value 51.
„ N1=1 zero offset shift group G54 The E-parameter is given the
value of the effective offset from the range G54..G59 or G54.[no.].
The E-parameter is given the value 53 if no offset is effective.
„ N1=54-59 or 54.[no.] zero offset shift The number of the saved
zero offset G54 - G59, or G54 I[no.] whose data is to be exported.
„ N1=92-93 zero offset shift The number of the programmable zero
offset G92 or G93 whose data is to be exported.
 X7=,Y7=,Z7=,A7=,B7=,C7=, B47= E par. for offset/position
values X7= E-parameter for offset/position in X. B47= E-par. for
rotation in B4= The zero offset values for the zero offset specified
in N1= are saved in the specified Eparameters.

HEIDENHAIN MillPlus V600 277


6.6 G149 Read Tool- or Zero Offset Values
Application
„ Associated functions: G145, G148, G150, G321, and G326
„ Exporting addresses with no value. If addresses that were not input
beforehand are exported in the zero point shift memory, a zero value
is returned in the specified E parameters.
„ G149 is not allowed after the following modal functions: G64, G141,
G280-G286

Example
1: Querying the active zero offset number
G149 N1=0 E2
G149 N1=1 E3

N1=0 E2 E2 contains the active zero point shift (51 or 52)


N1=1 E3 E3 contains the active saved zero offset (53...59) or
54 [no.]

2: Querying the zero offset G54 or G54 I1


G149 N1=54 X7=1 Z7=2
G149 N1=54.01 X7=1 Z7=2

X7=1 E1 contains the offset in X


Z7=2 E2 contains the offset in Z

3: Querying offset G54 with angle of rotation (only G54 I[no])


G149 N1=54.01 X7=1 B47=2

X7=1 E1 contains the offset in X


B47=2 E2 contains the angle of rotation for the coordinate
system

278 6 G100-G199 G-Codes


Querying Current Position Values

6.6 G149 Read Tool- or Zero Offset Values


Format

We recommend that you use G326 (read actual position)


to read current position values. This G function contains
more options.

Querying the current position values for the axes.


G149 (axis address)7=... {(axis address)7=...}

Address description
 X7=,Y7=,Z7= current position values the axis position values can
be exported to E parameters. X7=20 means: the current axis
position value is saved in E20.

Application
„ G149 is not allowed after the following modal functions: G64, G141,
G280-G286

HEIDENHAIN MillPlus V600 279


6.7 G150 Change Tool- or Zero
6.7 G150 Change Tool- or Zero Offset Values
Offset Values
Changing of data in the tool and zero offset table.

Support picture

Changing of tool data

Format

We recommend that you use G331 (write tool data) to


change tool data. This G function contains many more
options.

Changing tool data:


„ G150 T... {T2=...} {L1=...} {R1=...} {M1=...}
Changing the tool status:
„ G150 T... {I1=...} {I2=...}

Address description
 T tool number Number of the tool whose data is to be changed. The
complete tool number (including the spare tool index) must be
specified.
Note: the tool data of T0 cannot be changed.
 T2= tool offset index The tool offset index 0 to 9 can be specified.
 I1= Tool locked The specified value is written in the tool lock TL.
Values:
„ 0 tool is not locked.
„ 1 tool is locked.
 I2= tool status value in TThe specified value is written in the tool
status TS. Values:
„ 0 tool is released but not measured.
„ 1 tool is released and measured.
„ 2 tool outside tolerance.
„ 3 tool breakage.
„ 4 tool life expired.
 L1=, R1= tool length and radius values in T The specified values
are written in the tool length L and in the tool radius R. The
allowance (DL or DR) is set to zero.
 M1= current tool life The specified value is written in the current
tool life CUR_TIME.

280 6 G100-G199 G-Codes


6.7 G150 Change Tool- or Zero Offset Values
Default setting
T2=0

Application
„ Associated functions: G145, G148, G149
„ G150 is not allowed after the following modal functions: G64, G141,
G280-G286

Changes to V5xx
„ See "G150_T_M1" on page 517.

Example
Example 1: changing tool data
G150 T1 L1=E1 R1=4

L1=E1 Write value E1 in the tool length L


R1=4 Write value 4 in the tool length R

Example 2: changing the current tool life CUR_TIME


G150 T1 M1=10

M1=10 Write value 10 minutes in the current tool life


CUR_TIME

HEIDENHAIN MillPlus V600 281


6.7 G150 Change Tool- or Zero Offset Values
Changing Zero Offset Values

Format

We recommend that you use G54 I[no.] for changing


values in the zero offset table. This G function contains
more options.

Changing zero offset values


„ G150 N1=52 or 54...59 (axis address)7=... {(axis address)7=...}
„ G150 N1=54.[NR] (axis address)7=... {(axis address)7=...} [B47=...}

Address description
 N1= zero point shift
„ N1=52 zero offset shift The zero offset G52 to be changed
„ N1=54-59 or 54.[no] zero offset shift The zero offset G54 -
G59 or G54.[no.] to be changed.
 X7=,Y7=,Z7=,A7=,B7=,C7=, B47= E parameter for offset values
X7= offset in X. B47= angle of rotation in B4=. The specified values
are written in the zero offset specified with M1=.

Application
„ Associated functions: G145, G148, G149
„ G150 is not allowed after the following modal G functions G64,
G141, G280-G286

Example
Changing zero offset values
G150 N1=57 X7=E1 Z7=E6
G150 N1=54.01 X7=E1 Z7=E6

X7=E1 Z7=E6 X and Z are written in the zero offset table.


Changing a zero shift with the rotation angle of the coordinate
system
G150 N1=54.01 X7=E1 B47=E2

X7=E1 Write value E1 in the offset X


B47=E2 Write value E2 in the angle of rotation B4=

282 6 G100-G199 G-Codes


6.8 G151 Cancel G152

6.8 G151 Cancel G152


Cancel G152.

Support picture

Format
G151

Address description
No addresses.

Application
G152 is deactivated with this function.

Associated functions
G152.

Changes to V5xx
„ See "G151 und G152" on page 517.

HEIDENHAIN MillPlus V600 283


6.9 G152 Limiting the Traverse Ranges
6.9 G152 Limiting the Traverse
Ranges
Limitation of the range of traverses. The programmed positions relate
to the reference point.

Support picture

Format
G152 X1=... Y1=... Z1=... {B1=...} {B2=...} X2=... Y2=... Z2=... {C1=...}
{C2=...}

Address description
 X1= range in positive direction
 Y1= range in positive direction
 Z1= range in positive direction
 B1= range in positive direction
 C1= range in positive direction
 X2= range in negative direction
 Y2= range in negative direction
 Z2= range in negative direction
 B2= range in negative direction
 C2= range in negative direction

Application
This function enables the traverse range to be limited in the NC
program. With G141, for example, it is possible to prevent the C axis
(table) from rotating further around a vector solution than is permitted.
It is also possible to program a limit plane.
The programmed positions must fall within the range of the SW limit
switch Axes/CfgProgAxis/ParameterSets/Pn0/CfgPositionLimits/
swLimitSwitchPos, Axes/CfgProgAxis/ParameterSets/Pn0/
CfgPositionLimits/swLimitSwitchNeg; otherwise an error message is
issued.

Associated functions
G151

284 6 G100-G199 G-Codes


6.9 G152 Limiting the Traverse Ranges
Deactivation
G152 can be deactivated via:
„ G151
„ Program end M30
„ Cancel program
„ CNC reset
„ Switch on controller

Changes to V5xx
„ See "G151 und G152" on page 517.

Example
Limiting the range of traverse of the C axis.

G152 C1=30.000 C2=-30.000

G152 The C axis is only allowed in this range, otherwise


an error message is issued.

HEIDENHAIN MillPlus V600 285


6.10 G153 Correct Workpiece Zero
6.10 G153 Correct Workpiece Zero Point: OFF
Point: OFF
G153 deactivates the implementation of the workpiece zero point. The
active offset in the linear axes is canceled.

Support picture

Format
G153

Address description
No specific addresses.

Application
Modality
G153 is modal with G154.

Execution
G153 resets the modal status of the G154 function. The tool zero point
is then no longer implemented. G153 does not perform any actions
until the movement in the preceding block is finished (<INPOD>).

Display
The G153/G154 functions are in the processing status display in the
modal G series.

286 6 G100-G199 G-Codes


6.11 G154 Correct Workpiece Zero

6.11 G154 Correct Workpiece Zero Point: ON


Point: ON
When the rotary axis rotates, the zero point of the workpiece rotates
with the workpiece. The difference to G7 is that the axis directions do
not rotate as well.
G154 activates the implementation of the workpiece zero point using
kinematic calculations. This can only be activated for rotary axes in the
table. When active, the status of the programmed rotary axis is offset
at the end of a positioning in the position of the linear axes. The linear
axes are not included.
Note: the offset in the linear axes due to G108 is not dependent on
G154/G153 and remains active. G108 has the same function but is
only effective for the tool head.

Support picture

Format
G154 {A1=} {B1=} {C1=}

Address description
 A1 ZPS A-axis (0=not, 1=settle) Defines whether the position of
the A axis in the table is offset in the linear axes:
„ A1=0 not offset (default setting)
„ A1=1 is offset. This address is only allowed if there is an A axis in
the table.
 B1 ZPS B-axis (0=not, 1=settle)
 C1 ZPS C-axis (0=not, 1=settle)

Default setting
If no addresses are programmed, all axes in the table are activated.

Application
Modality
G154 is modal with G153.

HEIDENHAIN MillPlus V600 287


6.11 G154 Correct Workpiece Zero Point: ON Execution
When G154 is active, the linear axis display is updated at the end of
every positioning movement of the rotary axes defined in G154. G154
does not perform any actions until the movement in the preceding
block is finished (<INPOD>).

Switching off G154


G153 switches the G154 function off. G154 remains active after
CANCEL PROGRAM, M30, CNC RESET, or switching on the control.
The programmed rotary axis is saved in the memory.

Interruption
When a rotary axis movement is canceled, the linear axis display is not
updated. During an interruption, the linear axis display is only updated
to show the rotary axis status after <Emergency stop>, CANCEL
PROGRAM, or <Manual> has been pressed.

Manual operation
The G154 function remains active after M30 and is active during
manual operation. The linear axis display is updated when the rotary
axis movement has stopped.

Zero point shift


A zero point shift (G54, G92, G93) or IPLC shift in the relevant rotary
axis is offset. This means that the new zero point for the rotary axis is
used as the zero status for the kinematic calculations.

Status display
The G153/G154 status is displayed in the modal G group display.

Example
Activating implementation of the workpiece zero point
G154 B1=1

G154 The workpiece zero point is corrected after the table


rotation.

288 6 G100-G199 G-Codes


6.12 G174 Tool Retract Movement

6.12 G174 Tool Retract Movement


Movement to disengage the tool axis during 5-axis milling.

Support picture

Format
G174 {L...} {X1=... or Y1=... or Z1=...}

Address description
 L retract distancethe retraction distance (L > 0) defines the
distance that is travelled in the tool direction. An error message
(Z31) is issued if L is greater than the distance to the software limit
switch. If L is not specified, travel continues up to the software limit
switch.
 X1=, Y1=, Z1= 1=retraction only in this axisX1= or Y1= or Z1=
are used in the program to determine which machine axis travels. In
the case of G7, the machine axis can be different to the
programmed axis. A combination of X1=, Y1=, and Z1= is not
possible (P414 ). Retraction is not performed perpendicularly.
X1=1 means that only the X axis travels.
„ No X1=, Y1=, Z1=: With this function, the retraction can always
be carried out in the direction of the milling head. The tool is
retracted until the first software limit switch is reached. The tool
axis orients itself perpendicular to the new plane. The retract
movement is performed in this perpendicular direction.

Application
Execution (G0)
G174 is executed in G0. The tool travels at this feed rate if F6= is
programmed.
After G174, G0 or G1 from the previous block is reactivated modally.

HEIDENHAIN MillPlus V600 289


6.12 G174 Tool Retract Movement
Example
Tool retraction movement
G174 L100
G174 L100 X1=1

G174 The tool retracts by 100 mm.


G174 The tool travels 100 mm in the X axis.

290 6 G100-G199 G-Codes


6.13 G179 ContourCycle Call

6.13 G179 ContourCycle Call


The G179 function executes the last defined machining cycle a single
time. The starting point of the cycle is the position that was
programmed last before the G179 block.

Support picture

Address description
No specific addresses.

Application
Associated functions
G284, G285, and G286.

Example
Drilling
G284 T10=1 C1=5 F2=100
G179

G284 Define contour pilot drilling


G179 Perform contour pilot drilling

HEIDENHAIN MillPlus V600 291


6.14 G180 Cancel Cylinder
6.14 G180 Cancel Cylinder Interpolation
Interpolation
Canceling the cylindrical coordinate system or defining the main plane
and tool axis (basic coordinate system).

Support picture

Format
G180 basic coordinate system
G180 [principal axis 1] [principal axis 2] [tool axis].

Address description
 X1= allocate axis to coord.system
 Y1= allocate axis to coord.system
 Z1= allocate axis to coord.system
 A1= allocate axis to coord.system
 B1= allocate axis to coord.system
 C1= allocate axis to coord.system

Application
General basic principles
The normal setting is G180 X1 Y1 Z1
The following configurations are possible:
„ Principal axis 1 X
„ Principal axis 2 Y
„ Tool axis Z or W
Three different pieces of information determine the correct method:
1 The tool axis is determined using G17/G18/G19 (G17 Z).
2 G180 determines which axes have to be implemented. (G17 W
in Z).
3 The machine parameters for the tool axis definition must be
correct. (Axis/CfgProgAxis/W/progKind = ParallelLinCoord tool axis
W belongs to Z).

292 6 G100-G199 G-Codes


6.14 G180 Cancel Cylinder Interpolation
Application
„ The functions G41...G44, G64, axis rotation (G92/G93 B4=), and
G141 must be deleted before G180 is activated. We recommend
that you delete the radius compensation with G40.
„ The tool length compensation is active in the defined tool axis. The
radius compensation is active in the main plane.
„ The machine parameters must be set correctly. Axis/CfgProgAxis/A/
index must = 3 if the W axis is the fourth axis (same as for Z axis).
Axis/CfgProgAxis/A/progKind = ParallelLinCoord (W axis is a linear
axis).
„ Only Cartesian coordinates can be used.
„ If G180 is programmed and the radius compensation is still active,
then it is deletedby G180.

Example
Tool retraction movement
G180 X1 Y1 Z1
G81 Y2 B10 Z-22
G79 X0 Y0 Z0

G180 Activate main plane XY and tool axis Z.


G81 The tool travels 100 mm in the X axis.
G79 Drilling, with the feed movement taking place in the
Z axis.

HEIDENHAIN MillPlus V600 293


6.15 G182 Activate Cylinder
6.15 G182 Activate Cylinder Interpolation
Interpolation
Selection of the cylindrical coordinate system. This system enables
simple programming of contours and positions on the curved cylinder
surface.

Support picture

Format
G182 [cylinder axis] [rotary axis] {tool axis} R...

Address description
 X cylinder plane:2/tool axis:3
 Y cylinder plane:2/tool axis:3
 Z cylinder plane:2/tool axis:3
 B cylinder plane:1
 C cylinder plane:1
 R cylinder radius

Application
Modality
G182 is modal with G180.

Movements within G182:


Rapid traverse for active G182: G0 [cylinder axis] [rotary axis] {tool axis}
Linear feed movement: G1 [cylinder axis] [rotary axis] {tool axis} {F...}
Circular feed movement: G2/G3 [cylinder axis] [rotary axis] R.

Return to basic coordinate system


With G180 or M30, soft key Cancel program , CNC reset.

294 6 G100-G199 G-Codes


6.15 G182 Activate Cylinder Interpolation
Possible configurations
The expressions X,Y,Z,A,B,C must not be programmed without a
value. The configuration for the cylinder interpolation is programmed
in the G182-block:

Standard configuration
Rotary axis A1 B1 C1
Cylinder axis X1 Y1 Z1
Tool axis Y1/Z1 X1/Z1 X1/Y1
Cylinder radius R R R

Advanced configuration
Rotary axis marked with 1 A1 B1 C1
Cylinder axis marked with 2 X2/Y2/Z2 Y2/X2/Z2 Z2/X2/Y2
Tool axis marked with 3 Y3/Z3/X3 X3/Z3/Y3 X3/Y3/Z3
Cylinder radius R R R

Machine parameters
The machine parameters for the axis definition must be correct.
CfgProgAxis/index = 1, CfgProgAxis/axName = X (axis)
CfgProgAxis/index = 2, CfgProgAxis/axName = Y (axis)
CfgProgAxis/index = 3, CfgProgAxis/axName = Z (axis)
CfgProgAxis/index = 4 belongs to axis 1 (4-3),
CfgProgAxis/axName = A (axis rotating)

„ The following functions must not be active if G182 is activated: G41-


G44, G64, G92/G93 B4=, G141
„ The following cannot be programmed when G182 is active:
G25/G26, G27/G28, G51-G59 or G54 I..., G61/G62 G70/G71, G73,
G92/93, switch working plane.
„ The tool radius selected should only be slightly less than the recess
width. (Undercuts)
„ Restriction: 5 mm < cylinder radius < 500 mm
„ Only Cartesian coordinates can be used.

Changes to V5xx
„ See "G182" on page 517.

HEIDENHAIN MillPlus V600 295


6.15 G182 Activate Cylinder Interpolation
Example
The recess on the curved surface of a cylinder (diameter 40 mm) is to
be milled with a double-edged endmilling tool (diameter 9.5 mm) The
machining depth is 4 mm. The horizontal machining of the workpiece
is performed in the rotary axis C, the cylinder axis Z, and the tool axis Y.

N12340
G18 S1000 T1 M66
G54
G182 Y1 C1 Z1 R20
G0 Y22 C0 Z15 M3
G1 Y16 F200
G43 Z10
G41
G1 C23.84
G3 Z14.963 C55.774 R15
G1 Z38.691 C116.98
G2 Z42 C138.27 R10
G1 C252.101
G2 Z37 C266.425 R5
G1 Z26
G3 Z10 C312.262 R16
G1 C365
G40
G41 Z20
G1 C312.262
G2 Z26 C295.073 R6
G1 Z37
G3 Z52 C252.101 R15
G1 C138.27
G3 Z45.383 C95.691 R20
G1 Z21.654 C34.484
G2 Z20 C23.84 R5
G1 C0
G40
G180
G0 Y100
M30

296 6 G100-G199 G-Codes


6.16 G195 Graphic Window

6.16 G195 Graphic Window Definition


Definition
Definition of the dimensions of a 3D-graphic window and its position
relative to the zero point W.

Support picture

Format
G195 X... Y... Z... I... J... K... {N1=...} {N2=...}

Address description
 X, Y, Z start point coordinates
 I dimension parallel to X
 J dimension parallel to Y
 K dimension parallel to Z
 N1= repeater begin block
 N2= repeater end block

Application
Default setting
If no addresses are programmed, all axes in the table are activated. If
no dimensions are defined for the 3D windows, the distances of the
software limit switch are used

Application
In programs with several level definitions, only the operations in the
last programmed machining levels are displayed graphically.
Addresses N1= "Graphic begin block" and N2= "Graphic end block" are
used to record the graphic window for a particular program part. All
movements in the blocks from address N1= up to and excluding the
block number in Address N2= are displayed in the graphic window.

Changes to V5xx
„ See "G98_B" on page 512.

Example
G195 X-30 Y-30 Z-70 I170 J150 K100
G199 .....

G195 Graphic window definition


G199 Start graphic contour description

HEIDENHAIN MillPlus V600 297


6.17 G196 End Graphic Model
6.17 G196 End Graphic Model Description
Description
Conclusion of the graphic contour description.

Support picture

Format
G196

Address description
No specific addresses.

Example
G195 X... Y... Z... I... J... K...
G199 X... Y... Z...B... C...
G198 X... Y... Z... D...
------
G197 X... Y... D...
------
G196

G195 Graphic window definition


G199 Start graphic contour description
G198 Begin outside contour description

G197 Begin inside contour description

G196 End graphic model description

298 6 G100-G199 G-Codes


G200-G299 G-Codes
7.1 G240 Contour Pre-Calculation:
7.1 G240 Contour Pre-Calculation: OFF
OFF
G240 is used to deactivate contour pre-calculation G242.

Support picture

Address description
No specific addresses.

Application
G242 is deactivated by G240, M30, or Cancel program.
G240 automatically takes effect after:
„ Control activation
„ Cancel program
„ M30.

Modality
G240 is modal with G242.

300 7 G200-G299 G-Codes


7.2 G242 Contour Pre-Calculation:

7.2 G242 Contour Pre-Calculation: On


On
Checks the radius-compensated contour for undercuts and overcuts in
advance.

Support picture

Address description
 I2= Look ahead check: 0=off, >0=number
„ I2=0 No check.
„ I2=... If nn > 0, the check is active. The maximum value is 99.

Default setting
I2=5

Application
G242 is deactivated by G240, G40, M30, or Cancel program.

Modality
G242 is modal with G240.

Block access
The G242 function checks are normally executed during a block entry.

Associated functions
G242 works with G41 and/or G42.

Procedure
The tool path is calculated in advance from the current block. Areas of
the contour that might be damaged by the tool are not machined. The
number of pre-calculated blocks (maximum 99) is set at I2=. The
larger the number of blocks to be pre-calculated, the longer the block
processing time will be.
Function G242 works only if radius compensation is active.

HEIDENHAIN MillPlus V600 301


7.3 G251-G269 Contour
7.3 G251-G269 Contour Programming
Programming
Workpiece drawings that are not dimensioned in accordance with NC
often contain coordinate data. For example:
„ known coordinates can lie on the contour element or in its proximity
„ Coordinate data can be referenced to another contour element
„ Directional data and data regarding the course of the contour
You can enter such dimensional data directly by using the contour
programming functions G251 to G269. MillPlus calculates the contour
from the known coordinate data and supports the programming dialog
with the interactive programming graphic.

The contour programming feature can only be used for


programming contour elements that lie in the working
plane. The working plane is defined in the first block of the
part program.

If both conventional blocks and contour blocks are entered


in a program, each contour section must be fully defined
before you can return to conventional programming.
MillPlus needs a fixed point from which it can calculate the
contour elements. Directly before the contour section,
program a position that contains both coordinates of the
working plane.

Contour programming can be supported by the ICP


contour programming dialog.

G90 absolute programming must be active at the start of


contour programming.
Points cannot be programmed or used (G78).
Programming of MSTH functions is not permitted.
If functions G64, G182, G141, or G91 are active, functions
G251 - G269 are not permitted.

302 7 G200-G299 G-Codes


7.3 G251-G269 Contour Programming
Overview of Contour Programming

G functions
G9 Define pole position

G251 Free linear movement

G252 Free circular movement, CW

G253 Free circular movement, CCW

G261 Free linear movement, tangential

G262 Free circular movement, CW, tangential

G263 Free circular movement, CCW, tangential

G265 Free chamfer

G266 Free rounding

G269 Free contour selection

Auxiliary points
For both free-programmed straight lines and free-programmed circular
arcs, you can enter the coordinates of auxiliary points that are located
on the contour or in its proximity.
Auxiliary points on a contour
The auxiliary points are located on a straight line, the extension of a
straight line, or on a circular arc.

Example
N1234 FIGURE
G98 X-10 Y-10 Z-2 I50 J50 K20
N1 G17
N2 G0 X0 Y0 Z0 F5000
N3 G251 X1=20 Y1=20 B1=45
N4 G251 B1=0 Y15
N5 G251 Y0 B1=-45 X50
N6 M30

Auxiliary points near a contour


The auxiliary points are located near the straight line, near the
extension of a straight line, or near the circular arc.

Example
See example below "Contour programming with auxiliary points near
the contour"

HEIDENHAIN MillPlus V600 303


7.3 G251-G269 Contour Programming
Example: Contour programming with auxiliary points near the contour

10
Y 10

R20

55
R30 60°
30

X
30

N111 G98 X0 Y0 Z-15 I100 J100 K50 Definition of workpiece blank


N1 G17 F5000
N6 G0 X30 Y30
N8 G0 Z-5 Move to working depth
N9 G1 X0 Y30 Approach the contour on a circular arc with tangential connection
N10 G9 X30 Y30 Define pole position
N11 G252 R30 I30 J30 Approach the contour on a circular arc with tangential connection
N12 G251 B1=60 X4=30 Y4=30 L4=10 Straight line with auxiliary point near the contour
N13 G269 I1=3 Selecting a solution for the course of the contour
N14 G252 R20 B3=60 L3=55 Connecting circle
N15 G269 I1=2 Selecting a solution for the course of the contour
N16 G251 B1=-120 X4=30 Y4=30 L4=10 Straight line with auxiliary point near the contour
N17 G269 I1=3 Selecting a solution for the course of the contour
N18 G252 X0 R30 I30 J30 Connecting circle
N19 G269 I1=2 Selecting a solution for the course of the contour
N20 G0 X30 Y30
N21 G0 Z20 Retract the tool
N22 M30

304 7 G200-G299 G-Codes


7.3 G251-G269 Contour Programming
Example: Contour programming of hooks

Y
R1
0
50

R36
R24
R1,5

R5

30
R6
R6 R5 X
-10

0
R4

R65
-25

R5
0
12 44 65 110

N111 G98 X-60 Y-60 Z-15 I150 J150 K50 Definition of workpiece blank
N1 G17 F5000
N2 G0 X-70 Y0
N3 G0 Z-5
N4 T1 M67
N5 G41
N6 Approach the contour at a tangent
N8 G1 X-40 Y0
N9 G252 R40 I0 J0 Circular CW
N10 G261 Connecting straight line
N11 G262 R10 I0 J50 Circular CW with tangential connection
N12 G261 Connecting straight line
N13 G263 R6 I0 J0 Circular CCW with tangential connection
N14 G263 R24 Circular CCW with tangential connection
N15 G263 R6 I12 J0 Circular CCW with tangential connection
N16 G269 I1=2 Selecting a solution for the course of the contour
N17 G262 R1.5 Circular CW with tangential connection
N18 G262 R36 I44 J-10 Circular CW with tangential connection
N19 G269 I1=2 Selecting a solution for the course of the contour

HEIDENHAIN MillPlus V600 305


7.3 G251-G269 Contour Programming
N20 G263 R5 Circular CCW with tangential connection
N21 G261 X110 Y15 B1=0 Straight line
N22 G251 B1=-90 Straight line
N23 G251 X65 B1=180 L41=30 L43=20 Straight line
N24 G266 R5 Rounding arc
N25 G251 X65 Y-25 B1=-90 Straight line
N26 G253 R50 I65 J-75 Circular CW
N27 G262 R65 Circular CW with tangential connection
N28 G269 I1=1 Select the first solution from those proposed
N29 G262 R40 Y0 I0 J0 Circular CW with tangential connection
N30 G269 I1=4 Selecting a solution for the course of the contour
N31 G0 X-70 Retract the tool
N32 Leave the contour at a tangent
N33 G40 Canceling tool compensation
N34 G0 Z20 Retract the tool
N35 M30 Program end

306 7 G200-G299 G-Codes


7.4 G251 Free Linear Movement

7.4 G251 Free Linear Movement


Function G251 defines a straight line without tangential connection.
MillPlus moves the tool in a straight line from its current position to the
straight line end point. The starting point is the end point of the
preceding block.

Support picture

The contour programming feature can only be used for


programming contour elements that lie in the 2D working
plane.

Address description
 X, Y, Z end point coordinates Addresses X, Y, Z define an end
point.
 X91=, Y91=, Z91= end point, incremental
 X1=, Y1=, Z1= 1. auxiliary point contour element
 X2=, Y2=, Z2= 2. auxiliary point contour element
 X4=, Y4=, Z4= auxiliary point beside contour element
 L4= parallel shift Always together with X4=, Y4=, Z4=
 L41= incremental parallel shift
 I5= start(1)/end(-1) closed contour1: start of contour -1: end of
contour.
 B1= angle
 F feed
 B11= incremental angle
 B2= polar angle
 B21= incremental polar angle
 L1= path length
 L2= polar length
 L21= incremental polar length

Example
Defining a straight line
G251 X65 Y-25 B11=-90

G251 Define a straight line

HEIDENHAIN MillPlus V600 307


7.5 G252 Free Circular Movement,
7.5 G252 Free Circular Movement, CW
CW
Function G252 defines a circular arc in a clockwise direction (CW). The
tool moves on a circular path with the radius R.

Support picture

The contour programming feature can only be used for


programming contour elements that lie in the 2D working
plane.

Address description
 X, Y, Z end point coordinates Addresses X, Y, Z define an end
point.
 X91=, Y91=, Z91= end point, incremental
 R circle radius
 I, J, K circle center points (X,Y,Z..)
 I91=, J91=, K91= incremental center points
 X1=, Y1=, Z1= 1. auxiliary point contour element
 X2=, Y2=, Z2= 2. auxiliary point contour element
 X3=, Y3=, Z3= 3. auxiliary point contour element (circle)
 X4=, Y4=, Z4= auxiliary point beside contour element
 L4= parallel shift Always together with X4=, Y4=, Z4=
 I5= start(1)/end(-1) closed contour1: start of contour -1: end of
contour.
 B5= angle of arc
 F feed
 L1 = chord length of the arc
 B1= gradient angle of the entry tangent
 B11= incremental angle
 B2= polar angle
 B21= incremental polar angle
 L2= polar length
 L21= incremental polar length
 B3= polar angle for center
 B31= incremental polar angle center
 L3= polar length for center
 L31= incremental polar length center

308 7 G200-G299 G-Codes


Application

7.5 G252 Free Circular Movement, CW


The starting and end points of the arc must lie on the
circle.
Input tolerance: up to 0.016 mm (selected via the
"circleDeviation" machine parameter)

Example
Defining a circle
G252 R40 I0 J0

R4 Radius is executed clockwise.

HEIDENHAIN MillPlus V600 309


7.6 G253 Free Circular Movement,
7.6 G253 Free Circular Movement, CCW
CCW
Function G253 defines a circular arc in a counter-clockwise direction
(CCW). The tool moves on a circular path with the radius R.

Support picture

Address description
Identical to addresses of G252, (see "Address description" on page
308)

Application

The starting and end points of the arc must lie on the
circle.
Input tolerance: up to 0.016 mm (selected via the
"circleDeviation" machine parameter)

Example
Defining a circle
G252 R40 I0 J0

R4 Radius is executed counter-clockwise.

310 7 G200-G299 G-Codes


7.7 G261 Free Linear Movement,

7.7 G261 Free Linear Movement, Tangential


Tangential
Function G261 defines a straight line with a tangential connection.
MillPlus moves the tool in a straight line from its current position to the
straight line end point. The starting point is the end point of the
preceding block.

Support picture

Address description
Identical to addresses of G251, (see "Address description" on page
307)

Application
A transition between two contour elements is called "tangential" when
there is no kink or corner at the intersection between the two
contours, i.e. the transition is smooth. The contour element to which
the tangential arc connects must be programmed directly before the
G261 block. This requires at least two positioning blocks.

Example
Defining a straight line
G261 X65 Y-25 B1=-90

G261 Define a straight line

HEIDENHAIN MillPlus V600 311


7.8 G262 Free Circular Movement,
7.8 G262 Free Circular Movement, CW, Tangential
CW, Tangential
Function G262 defines a circular arc in a clockwise direction with a
tangential connection. The tool moves on an arc that starts tangentially
to the previously programmed contour element.

Support picture

Address description
Identical to addresses of G252, (see "Address description" on page
308)

Application
A transition between two contour elements is called "tangential" when
there is no kink or corner at the intersection between the two
contours, i.e. the transition is smooth. The contour element to which
the tangential arc connects must be programmed directly before the
G262 block. This requires at least two positioning blocks.

Example
Defining a circle
G262 R40 Y0 I0 J0

G262 Radius is executed clockwise.

312 7 G200-G299 G-Codes


7.9 G263 Free Circular Movement,

7.9 G263 Free Circular Movement, CCW, Tangential


CCW, Tangential
Function G263 defines a circular arc in a counter-clockwise direction
with a tangential connection. The tool moves on an arc that starts
tangentially to the previously programmed contour element.

Support picture

Address description
Identical to addresses of G252, (see "Address description" on page
308)

Application
A transition between two contour elements is called "tangential" when
there is no kink or corner at the intersection between the two
contours, i.e. the transition is smooth. The contour element to which
the tangential arc connects must be programmed directly before the
G263 block. This requires at least two positioning blocks.

Example
Defining a circle
G263 R40 Y0 I0 J0

G263 Radius is executed counter-clockwise.

HEIDENHAIN MillPlus V600 313


7.10 G265 Free Chamfer
7.10 G265 Free Chamfer

The chamfer enables you to cut off corners at the intersection of two
straight lines. Function G265 defines the chamfer.

Support picture

Address description
 L chamfer length

Application
The chamfer must be machinable with the current tool.

You cannot start a contour with a chamfer.


The corner point is cut off by the chamfer and is not part
of the contour.

Example
Defining a chamfer
G265 L4

L4 Length of the chamfer.

314 7 G200-G299 G-Codes


7.11 G266 Free Rounding

7.11 G266 Free Rounding


The G269 function is used for rounding off corners. The tool moves on
an arc that is tangentially connected to both the preceding and
subsequent contour elements.

Support picture

Address description
 R rounding radius

Application
The rounding arc must be machinable with the called tool.

The corner point is cut off by the rounding arc and is not
part of the contour.
In the preceding and subsequent contour elements, both
coordinates must lie in the plane of the rounding arc. If you
machine the contour without tool-radius compensation,
you must program both coordinates in the working plane.

Example
Defining a rounding
G266 R4

R4 Select the fourth solution from those proposed.

HEIDENHAIN MillPlus V600 315


7.12 G269 Free Contour Selection
7.12 G269 Free Contour Selection

You use function G269 to select a solution.

Support picture

Address description
 I1= selection of solution Number of the solution from those
proposed and calculated by MillPlus.

Application
Parameter I1= is selected with the graphic function while the program
is being formatted. G269 is always in a block after the element
definition.

Example
Selecting a contour
...
G262 R40 Y0 I0 J0
G269 I1=2
...

I1=2 Select the second solution from those proposed in


the block after the definition element
For application within a program, (see "Example: Contour
programming with auxiliary points near the contour" on page 304)

316 7 G200-G299 G-Codes


7.13 G270 Disables Limit Planes

7.13 G270 Disables Limit Planes


Deactivates all defined limit planes.

Support picture

Address description
 I1= disable and/or delete limit planes
„ I1=0 temporarily disables the defined limit planes. G271 can be
used to re-activate the same limit planes.
„ I1=1 deletes the definitions of the limit planes and disables the
planes. This function is executed with M30.

Default setting
I1=0

Application
Modality
G270 is modal with G271.

Associated functions
G271, G272, G273.

Procedure
The limit planes defined by G272 or G273 are disabled. The limit plane
definition remains active and can be re-enabled with G271.

HEIDENHAIN MillPlus V600 317


7.14 G271 Enables Defined Limit
7.14 G271 Enables Defined Limit Planes
Planes
Activates the defined limit plane.

Support picture

Address description
 I1= limit plane
„ I1=1 lower limit plane is activated (G272)
„ I1=2 upper limit plane is activated (G273).

Default settings
I1=1

Application
Modality
G271 is modal with G270.

Associated functions
G270, G272, G273.

Limit plane definition


The limit plane to be enabled must be defined beforehand in the NC
program (G272 or G273). Otherwise, an error message is issued.

Procedure
The limit planes defined by G272 and/or G273 are enabled.
NC program execution is restricted by means of up to two limit planes.
Only movements between the G272 lower limit plane and the G273
upper limit plane are executed according to the NC program. The
movements outside of the limit planes are skipped or executed
projected onto the limit plane.
Only one of the limit planes needs to be defined.
G270 can be used to disable the limit planes again.

318 7 G200-G299 G-Codes


7.15 G272 Definition of Lower Limit

7.15 G272 Definition of Lower Limit Plane


Plane
Defines the lower limit plane during machining.

Support picture

Address description
 X, Y, Z limit plane point Addresses X, Y, Z define a point. The
limit plane passes through this point. The point is defined in relation
to the workpiece zero point W.
 X1=, Y1=, Z1= limit plane normal vector Defines the normal
direction of the limit plane. In conjunction with the point (X,Y,Z), this
defines the limit plane. The normalized vector points to the top of
the plane. Basic setting (0, 0, 1).
 I1= behavior on other side of limit plane
„ I1=1 machine normally. The plane is thus inactive.
„ I1=2 machine along the projected path. (Default setting).
„ I1=3 explicitly defined direction (X3=, Y3=, Z3=)
 I2= kind of limit plane projection (I1=2) To be defined when
I1 = 2. The movements below the plane are projected onto the limit
plane. The direction of this projection can be programmed:
„ I2=1 normalized vector of the plane.
„ I2=2 tool direction (default setting).
„ I2=3 explicitly defined direction (X2=, Y2=, Z2=).
 X2=, Y2=, Z2= limit plane projection vector (I2=3)To be
defined when I2 = 3. Defines the projection direction of the non-
executed movements below the limit plane at the limit plane.
 I3= kind of limit plane aux. movements (I1=3) To be defined
when I1 = 3. The movements below the plane are skipped by
auxiliary movements. The direction of the auxiliary movements can
be programmed:
„ I3=1 normalized vector of the plane.
„ I3=2 tool direction (default).
„ I3=3 explicitly defined direction (X3=, Y3=, Z3=)
 X3=, Y3=, Z3= aux. movements vector (I3=3) To be defined when
I3=3. Defines the direction of the auxiliary movements for exit and
approach.
 L1= exit and approach distance This distance is traversed in feed
mode.
 L2= safety distance (I1=3) To be defined when I1=3. Defines the
clearance height at which the movements are traversed below the
plane. The tool moves to this position (height) in rapid traverse.
 F6= approach feed Defines the feed rate at which the distance L1=
is traversed on approach. The default is normal feed rate.

HEIDENHAIN MillPlus V600 319


7.15 G272 Definition of Lower Limit Plane
Default setting
I1=2, I2=2, I3=2, L1=0, L2=0, F6=F

Application
Associated functions
G270, G271, G273.

Deleting
The limit plane definition is deleted at the end of the main program.

Procedure
NC program execution is restricted by means of two limit planes. Only
movements between the G272 lower limit plane and the G273 upper
limit plane are executed according to the NC program. The
movements programmed outside of the two limit planes are skipped
or executed projected onto the limit plane.
Only one of the limit planes needs to be defined.

320 7 G200-G299 G-Codes


7.16 G273 Definition of Upper Limit

7.16 G273 Definition of Upper Limit Plane


Plane
Defines the upper limit plane during machining.

Support picture

Address description
 X, Y, Z limit plane points Addresses X, Y, Z define a point. The
limit plane passes through this point. The point is defined in relation
to the workpiece zero point W.
 X1=, Y1=, Z1= limit plane normal vector Defines the normal
direction of the limit plane. In conjunction with the point (X,Y,Z), this
defines the limit plane. The normalized vector points to the top of
the plane. Basic setting (0, 0, 1).
 I1= behavior on other side of limit plane
„ I1=1 machine normally. The plane is thus inactive.
„ I1=2 machine along the projected path. (Default setting).
„ I1=3 auxiliary movement to clearance plane.
 I2= kind of limit plane projection (I1=2) To be defined when
I1 = 2. The movements below the plane are projected onto the limit
plane. The direction of this projection can be programmed:
„ I2=1 normalized vector of the plane.
„ I2=2 tool direction (default setting).
„ I2=3 explicitly defined direction (X2=, Y2=, Z2=).
 X2=, Y2=, Z2= limit plane projection vector (I2=3)To be
defined when I2 = 3. Defines the projection direction of the non-
executed movements below the limit plane at the limit plane.
 I3= kind of limit plane aux. movements (I1=3) To be defined
when I1 = 3. The movements below the plane are skipped by
auxiliary movements. The direction of the auxiliary movements can
be programmed:
„ I3=1 normalized vector of the plane.
„ I3=2 tool direction (default).
„ I3=3 explicitly defined direction (X3=, Y3=, Z3=)
 X3=, Y3=, Z3= aux. movements vector (I3=3) To be defined when
I3=3. Defines the direction of the auxiliary movements for exit and
approach.
 L1= exit and approach distance This distance is traversed in feed
mode. (Default setting=0)
 L2= safety distance (I1=3) To be defined when I1=3. Defines the
clearance height at which the movements are traversed below the
plane. The tool moves to this position (height) in rapid traverse.
(Default setting=0)
 F6= approach feed Defines the feed rate at which the distance L1=
is traversed on approach. The default is normal feed rate.

HEIDENHAIN MillPlus V600 321


7.16 G273 Definition of Upper Limit Plane
Default setting
I1=2, I2=2, I3=2, L1=0, L2=0, F6=F

Application
Associated functions
G270, G271, G272.

Deleting
The limit plane definition is deleted at the end of the main program.

Procedure
NC program execution is restricted by means of two limit planes. Only
movements between the G272 lower limit plane and the G273 upper
limit plane are executed according to the NC program. The
movements programmed outside of the two limit planes are skipped
or executed projected onto the limit plane.
Only one of the limit planes needs to be defined.

322 7 G200-G299 G-Codes


7.17 G275 Zoning Planes: Disable

7.17 G275 Zoning Planes: Disable


Disables the defined zoning plane.

Support picture

Address description
 I1= zoning planes: disables and/or undefines
„ I1=0 temporarily disables the defined limit planes. G276 can be
used to re-activate the same limit planes.
„ I1=1 deletes the definitions of the limit planes and disables the
planes. This function is executed with M30. Zoning planes:
deletes the definitions and disables the planes

Default setting
I1=0

Application
Modality
G275 is modal with G276.

Associated functions
G276, G277.

Procedure
The zoning plane defined with G277 is disabled. The zoning plane
definition remains active and can be re-enabled with G276.

HEIDENHAIN MillPlus V600 323


7.18 G276 Zoning Planes: Enable
7.18 G276 Zoning Planes: Enable

Enables the defined zoning plane.

Support picture

Address description
No specific addresses.

Application
Modality
G276 is modal with G275.

Associated functions
G275, G277.

Procedure
In addition to the limit planes (G271), there are lateral limitations
known as zoning planes. The movements programmed outside of a
zoning plane are skipped at clearance height or executed projected
onto the zoning plane.
Only one zoning plane can be defined.

324 7 G200-G299 G-Codes


7.19 G277 Zoning Planes: Define

7.19 G277 Zoning Planes: Define


Defines the zoning planes (fences) during machining.
A zoning plane is defined by a sequence of points (polygon), a
projection direction, and a machining type.
The points polygon is defined either by up to four points from the
points table (Pn=) or by an unlimited number of points programmed
consecutively with G277 I1=.

Support picture

Address description
 I zoning plane number Defines the zoning plane. Multiple zoning
planes can be defined. All zoning planes have the same projection
direction.
 P1=, P2=, P3=, P4= zoning plane polygon point numbers Up to
four point numbers can be programmed for defining the points
polygon. Index n of Pn= defines the sequence. The polygon can be
closed with I1=4. The points are defined in relation to the workpiece
zero point W. This definition cannot be programmed simultaneously
to (X, Y, Z)
 I1= polygon point sequence number If the polygon points are
defined by (X, Y, Z), multiple G277 must be programmed
consecutively. The sequence of G277 commands defines the
sequence of the points polygon. I1= defines whether this is the first,
last, or an intermediate point:
„ 1 = first point
„ 2 = intermediate point (multiple)
„ 3 = last point of an open polygon
„ 4 = last point that joins the polygon with the first point
„ If the zoning plane remains open (I1=3), the first and last sides are
"infinitely extended". Additional information such as projection
direction etc. is to be defined for the first point. There is no limit
to the number of intermediate points. This definition cannot be
used at the same time as Pn=.
 X, Y, Z, or P zoning plane polygon point The addresses X, Y,
Z, or P define a point of the polygon. The point is defined in relation
to the workpiece zero point W. This definition cannot be
programmed simultaneously to Pn=.
 I2= projection vector
„ I2=1 machining plane direction (G17, G18, G19, G7)
(Default setting)
„ I2=2 tool direction
„ I2=3 explicitly defined vector (X2=, Y2=, Z2=)
In conjunction with the polygon points, this defines the zoning
plane.
„ In conjunction with the polygon points, this defines the zoning
plane.

HEIDENHAIN MillPlus V600 325


7.19 G277 Zoning Planes: Define  X2=, Y2=, Z2= zoning plane projection vector (I2=3) To be
defined when I2=3. Defines the projection direction of the zoning
plane.
 I3= aux. movements vector
„ I3=1 projection direction (default)
„ I3=2 horizontal of the intersection between the zoning plane and
limit plane
„ I3=3 explicitly defined vector (X3=, Y3=, Z3=).
 X3=, Y3=, Z3= aux. movements vector (I3=3) To be defined when
I3=3. Defines the direction of the auxiliary movements for exit and
approach.
 L1= 1 exit and approach distance This distance is traversed in
feed mode. Default setting = 0.
 L2= safety distance To be defined when I3=3. Defines the
clearance height at which the auxiliary movements are traversed.
The tool moves to this position (height) in rapid traverse. Default
setting = 0.
 F6= approach feed Defines the feed rate at which the distance L1=
is traversed on approach. The default is normal feed rate.

Default setting
I=1, I1=2, I2=2, I3=2, L1=0, L2=0, F6=F

Application
Associated functions
G275, G276.

Permitted range
The zoning plane can be closed or open. The permitted range is
defined by: left of the plane in the running direction of the polygon
points viewed from "above" (opposite to the projection direction)

Deleting
The zoning plane definition is deleted at the end of the main program.

Procedure
NC program execution is laterally restricted by means of a zoning
plane. Only movements "left" of the zoning plane are executed
according to the NC program. The movements programmed "right" of
the zoning plane are skipped at clearance height or executed projected
onto the zoning plane. Multiple zoning planes can be defined.

326 7 G200-G299 G-Codes


7.20 G280-G286 Contour Milling Cycles
7.20 G280-G286 Contour Milling
Cycles
Contour milling cycles and the contour formula enable you to form
complex contours by combining subcontours (pockets or islands). You
define the individual subcontours (geometry data) as separate
programs. In this way, any subcontour can be used any number of
times. MillPlus calculates the complete contour from the selected
subcontours, which you link together through a contour formula.

The memory capacity for programming a contour milling


cycle (all contour description programs) is limited to
128 contours. The number of possible contour elements
depends on the type of contour (inside or outside contour)
and the number of contour descriptions. You can program
up to 16384 contour elements.
The contour milling cycles with contour formulas
presuppose a structured program layout and enable you to
save frequently used contours in individual programs.
Using the contour formula, you can connect the
subcontours to a complete contour and define whether it
applies to a pocket or island.
The contour milling cycles conduct comprehensive and
complex internal calculations as well as the resulting
machining operations. For safety reasons, always run a
graphical program test before machining! This is a simple
way of establishing whether the operation calculated by
MillPlus will produce the desired results.

The complete contour is machined with functions G283 to


G286

The machining dimension (such as the milling depth, finishing


allowance, and safety clearance) are entered as CONTOUR DATA in
cycle G283.

Properties of the subcontours


„ By default, MillPlus assumes that the contour is a pocket. Do not
program a radius compensation. In the contour formula, you can
convert a pocket to an island by making it negative.
„ Feeds F and additional functions M are not permitted.
„ Coordinate conversion is not permitted
„ Geometry calculation (G64/G63) is permitted
„ Although the subprograms can contain coordinates in the spindle
axis, such coordinates are ignored.
„ The working plane is defined in the first coordinate block of the
subprogram.

HEIDENHAIN MillPlus V600 327


7.20 G280-G286 Contour Milling Cycles
Properties of the fixed cycles
„ MillPlus automatically positions the tool to the safety clearance
before a cycle.
„ Each level of infeed depth is milled without interruptions since the
cutter traverses around islands instead of over them.
„ The radius of "inside corners" can be programmed - the tool keeps
moving to prevent surface blemishes at inside corners (this applies
for the outermost pass in the roughing and side finishing cycles).
„ The contour is approached in a tangential arc for side finishing.
„ For floor finishing, the tool again approaches the workpiece on a
tangential arc (for tool axis Z, for example, the arc may be in the Z/
X plane).
„ The contour is machined throughout in either climb or up-cut milling.

Entering a contour formula


You can use a mathematical function to interlink various contours in a
mathematical formula.

Mathematical function
Intersected with
e. g. EC10 = EC1 & EC5

Joined with
e. g. EC25 = EC7 | EC18

Joined, but without intersection


e. g. EC12 = EC5 ^ EC25

Intersected with complement of


e. g. EC25 = EC1 \ EC2

Parentheses
e. g. EC10 = (EC1 \ EC2) \ EC3 \ EC4

Defining a single contour


e. g. EC12 = EC1

328 7 G200-G299 G-Codes


7.20 G280-G286 Contour Milling Cycles
Superimposed contours
By default, MillPlus considers a programmed contour to be a pocket.
With the functions of the contour formula, you can convert a contour
from a pocket to an island.
Pockets and islands can be overlapped to form a new contour. You can
thus enlarge the area of a pocket by another pocket or reduce it by an
island.

Subprograms: overlapping pockets

The following programming examples are contour


description programs that are defined in a contour
definition program. The contour definition program is
called via the G282 function in the actual main program.

Pockets A and B overlap.


The pockets are programmed as full circles.

Contour description program 1: pocket A


‘POCKET_A.MM
G1 X65 Y65
G2 I65 J50

Contour description program 2: pocket B


‘POCKET_B.MM
E1=35 E2=50 E3=25
G1 X=E1 Y=E2-E3
G3 I=E1 J=E2

HEIDENHAIN MillPlus V600 329


7.20 G280-G286 Contour Milling Cycles
Area of inclusion (joined with)
Both surfaces A and B are to be machined, including the overlapping
area:
„ The surfaces A and B must be entered in separate programs without
radius compensation.
„ In the contour formula, the surfaces A and B are processed with the
"joined with" function

Contour definition program:


...
EC1="POCKET_A.MM"
EC2="POCKET_B.MM"
EC10= EC1 | EC2
...

Area of difference (intersected with complement


of)
Surface A is to be machined without the portion overlapped by B:
„ The surfaces A and B must be entered in separate programs without
radius compensation.
„ In the contour formula, the surface B is subtracted from the surface
A with the "intersected with complement of" function

Contour definition program:


...
EC1="POCKET_A.MM"
EC2="POCKET_B.MM"
EC10= EC1 \ EC2
...

330 7 G200-G299 G-Codes


7.20 G280-G286 Contour Milling Cycles
Area of intersection (intersected with)
Only the area where A and B overlap is to be machined. (The areas
covered by A or B alone are to be left unmachined.)
„ The surfaces A and B must be entered in separate programs without
radius compensation.
„ In the contour formula, the surfaces A and B are processed with the
"intersected with" function

Contour definition program:


...
EC1="POCKET_A.MM"
EC2="POCKET_B.MM"
EC10= EC1 & EC2
...

Area of inclusion without intersection (joined


with but without intersection)
Both surfaces A and B are to be machined, excluding the area
overlapped by A and B:
„ The surfaces A and B must be entered in separate programs without
radius compensation.
„ In the contour formula, the surfaces A and B are processed with the
"joined with but without intersection" function

Contour definition program:


...
EC1="POCKET_A.MM"
EC2="POCKET_B.MM"
EC10= EC1 ^ EC2

HEIDENHAIN MillPlus V600 331


7.20 G280-G286 Contour Milling Cycles
Example: roughing and finishing superimposed contour formula

‘CONTOUR MILLING
G99 X0 Y0 Z0 I100 J100 K-40 Definition of workpiece blank
E1=40 G331 T10000 I1=1 E1 Drill tool definition
E1=4 G331 T10000 I1=2 E1
E1=40 G331 T10001 I1=1 E1 Tool definition of roughing cutter
E1=4 G331 T10001 I1=2 E1
E1=40 G331 T10002 I1=1 E1 Tool definition of finishing cutter
E1=3 G331 T10002 I1=2 E1
G17 M3 S4000
G0 X0 Y0 Z50 Contour milling cycle start coordinates
G40 Cancel tool radius compensation

G281 Begin contour milling cycle


G282 N="MODEL.MM" Contour definition program
G283 Z=0 L=20 L1=2 L2=5 L3=1 B3=3 C2=67 Define general machining parameters (contour data definition)
R=0.1 I1=1
G284 T10=10001 C1=5 F250 Contour pilot drilling
T10000 M6 Call tool: drill
G179 Call milling cycle: contour pilot drilling

332 7 G200-G299 G-Codes


7.20 G280-G286 Contour Milling Cycles
G285 T10=0 C1=10 F=350 F2=250 Contour roughing
T10001 M6 Call tool: roughing cutter
G179 Call milling cycle: contour roughing
G286 B3=1 C1=10 F=400 I1=1 I2=0 Contour finishing
T10002 M6 Call tool: finishing cutter
G179 Call milling cycle: contour finishing
G280 Contour milling cycle end
M30 Program end

Contour definition program

‘MODEL.MM Contour definition program


EC1="CIRCLE1.MM" Definition of subprogram "Circle1"
EC2="CIRCLE2.MM" Definition of subprogram "Circle2"
EC3="TRIANGLE.MM" Definition of subprogram "Triangle"
C4="QUADRANGLE.MM" Definition of subprogram "Quadrangle"
EC10=(EC1 | EC2) \ EC3 \ EC4 Contour formula

Contour description programs

‘CIRCLE1.MM Contour description program: circle at right


G1 X65 Y25
G2 I65 J50

‘CIRCLE2.MM Contour description program: circle at left


E1=35 E2=50 E3=25
G1 X=E1 Y=E2-E3
G3 I=E1 J=E2

TRIANGLE Contour description program: triangle at right


G1 X57 Y42
G1 X73 Y42
G1 X65 Y58
G1 X57 Y42

QUADRANGLE Contour description program: square at left


G1 X27 Y58
G1 X43
G1 X42
G1 X27
G1 Y58

HEIDENHAIN MillPlus V600 333


7.21 G280 End Contour Milling
7.21 G280 End Contour Milling

This function ends the contour milling cycle description.

Support picture

Address description
No specific addresses.

Application
Modality
Function G280 ends the contour milling cycle description started with
G281.

334 7 G200-G299 G-Codes


7.22 G281 Begin Contour Milling

7.22 G281 Begin Contour Milling


Function G281 begins the contour milling cycle description.
Contour milling cycles enable you to form complex contours by
combining subcontours (pockets or islands). MillPlus calculates a
complete contour from the list of subcontours.

Support picture

Application
Modality
G281 is modal with G280.

HEIDENHAIN MillPlus V600 335


7.23 G282 Contour Definition
7.23 G282 Contour Definition Program
Program
Function G282 enables you to select a program with contour
definitions, from which MillPlus takes the contour descriptions:

Support picture

Address description
 N= contour program name The selected contour program can be
called with the file name, with or without file path. In the N=
parameter, the complete contour program name (without or without
file path and including <.mm>) can be programmed between double
quotation marks <">.
e.g. N="Contour-1.mm". No other file name extensions are
permitted.
 N5= folder The selected contour program can be located in a
different directory. The path to this directory must be enclosed in
double quotation marks <"> and should be entered separately in the
N5= parameter, or should be before the file name in the N=
parameter. The path must be entered complete and absolute, e.g.
N5="%URS%\nc_prog\Part1\Programs\" or
N="%USR%\nc_prog\Part1\Programs\Contour-1.mm"

Application
Function G282 remains active up to G280.
The bottom of the pocket must lie parallel to the machining plane.
The pocket edges must be perpendicular to the bottom of the pocket

Modality
Program function G282 before functions G284-G286.

336 7 G200-G299 G-Codes


7.24 G283 Contour Data Definition

7.24 G283 Contour Data Definition


Function G283 is used to enter machining data for the subprograms
with the subcontours.

Support picture

Address description
 Z workpiece surface coordinate Absolute coordinate of the
workpiece surface
 L depth (incremental): Distance between workpiece surface and
bottom of pocket.
 L1= 1st setup clearance (incremental): Distance between tool
front face and workpiece surface
 L2= 2nd setup clearance (incremental)
 L3= finishing allowance bottom (incremental): Finishing allowance
for bottom.
 B3= finishing allowance sides (incremental): Finishing allowance
in the working plane.
 C2= proportional cutting width
 R rounding radius Rounding radius at inside "corners"; entered
value refers to the tool midpoint path
 I1= milling 1=climb -1=conventional

Application
Function G283 remains active up to G280.
The machining data defined with G283 is applicable for functions G284
to G286.
If you program Depth = 0, MillPlus will not execute the function G283.

HEIDENHAIN MillPlus V600 337


7.25 G284 Contour Pilot Drilling
7.25 G284 Contour Pilot Drilling

Function G284 is used to pilot drill one (or multiple) cutter infeed
point(s). For the cutter infeed points, MillPlus takes the side and
bottom finishing allowances as well as the radius of the roughing tool
into account. The cutter infeed points also serve as starting points for
roughing.

Support picture

Address description
 T10= roughing tool number Number of the roughing tool
 T12= roughing tool offset index
 C1= plunging depth Dimension by which the tool plunges in each
infeed
 F feed for plunging Traversing speed in mm/min for drilling

Application
Function G284 is executed with function G179.

Before programming, note the following


Program a positioning block for the starting point (hole
center) in the working plane with radius compensation
G40.

Procedure
1 MillPlus positions the tool in the tool axis at rapid traverse to the
safety distance above the workpiece surface.
2 The tool drills to the first plunging depth at the programmed feed
rate F.
3 When it reaches the first plunging depth, the tool retracts at rapid
traverse to the starting position and advances again to the first
plunging depth minus the advanced stop distance.
4 The tool then advances by another infeed depth at the
programmed feed rate F.
5 MillPlus repeats this process (3 to 4) until the programmed depth
is reached.
6 The tool is retracted from the hole bottom to the set-up clearance
or - if programmed - to the 2nd safety distance at rapid traverse.

338 7 G200-G299 G-Codes


7.25 G284 Contour Pilot Drilling
Example
Contour pilot drilling
G284 T10=1 C1=5 F100
T2 M6
G179

G284 Define contour pilot drilling


T2 M6 Call tool: drill
G179 Perform contour pilot drilling

HEIDENHAIN MillPlus V600 339


7.26 G285 Contour Roughing
7.26 G285 Contour Roughing

MillPlus uses function G285 to rough-out a pre-defined contour pocket

Support picture

Address description
 T10= coarse roughing tool number Number of the tool with which
the TNC has already coarse-roughed the contour. If coarse roughing
was performed, enter "0". If you enter a value other than zero,
MillPlus will only rough-out the portion that could not be machined
with the coarse roughing tool.
If the portion that is to be roughed cannot be approached from the
side, MillPlus will mill in a reciprocating plunge-cut. For this purpose,
you must enter the tool length LCUTS in the tool table TOOL.T and
define the maximum plunging ANGLE of the tool. MillPlus will
otherwise generate an error message.
 T12= roughing tool offset index
 C1= plunging depth(incremental): Dimension by which the tool
plunges in each infeed.
 A3= plunging angle Angle (0..90°) at which the tool can plunge into
the workpiece. It only plunges vertically at 90º. A3 is only permitted
if "ANGLE" = 0 or "ANGLE" > 0
 F feed for millingMilling feed rate in mm/min
 F2= feed for plunging:Plunge feed rate in mm/min

Default setting
A3=90, F2=0.5*F for vertical plunging and F2=F for oblique plunging.

340 7 G200-G299 G-Codes


7.26 G285 Contour Roughing
Application
Function G285 is executed with function G179.

Before programming, note the following


If you define the plunge angle A3 at between 0.1° and
89.999°, MillPlus will mill in a reciprocating plunge-cut at
the specified A3 to the coarse roughing depth.
The plunge angle (A3 or ANGLE) should be greater than
0.1°
If the portion to be roughed cannot be approached from
the side, MillPlus will not traverse to the relevant roughing
depth with a helix movement, but will mill in a
reciprocating plunge-cut

If plunge angle A3 is not programmed, the plunge angle


ANGLE of the tool table is used. If ANGLE is not entered
into the tool table, the default ANGLE=90° is used.

Procedure
1 MillPlus positions the tool over the cutter infeed point, taking the
side finishing allowance into account.
2 In the first plunging depth, the tool mills the contour from the
inside outward at the milling feed rate F.
3 The island contours are milled out with a movement toward the
pocket contour.
4 MillPlus then rough-mills the pocket contour and retracts the tool
to the clearance height.

Example
Contour roughing
G285 T10=0 C1=10 F=350 F2=250
T2 M6
G179

G285 Define contour roughing


T2 M6 Call tool: roughing cutter
G179 Perform contour roughing

HEIDENHAIN MillPlus V600 341


7.27 G286 Contour Finishing
7.27 G286 Contour Finishing

Machining data for finishing is entered in cycle G286.

Before programming, note the following The sum of


the side finishing allowance (B3=) and the radius of the
finish mill must be smaller than the sum of side finishing
allowance (B3= from G283) and the radius of the rough
mill.

MillPlus automatically calculates the starting point for finishing. The


starting point depends on the available space in the pocket.
The subcontours are approached and exited on a tangential arc. Each
subcontour is finished separately.

Support picture

Address description
 B3= finishing allowance sides(incremental): Allowance for
multiple finish operations. If you enter B3 = 0, the remaining
finishing allowance will be cleared.
 C1= plunging depth(incremental): Dimension by which the tool
plunges in each infeed.
 I1= milling 1=climb -1=conventional
 I2= finishing 0=complete 1=sides
„ 0: finishing of side and bottom
„ 1: finishing of side only
 F feed for milling Milling feed rate in mm/min
 F2= feed for plunging:Plunge feed rate in mm/min

Application
Function G286 is executed with function G179.
 R1= proportional helix radius Percentage of the tool radius to be
used as the helix radius (>0) for plunging.

342 7 G200-G299 G-Codes


7.27 G286 Contour Finishing
Example
Contour finishing
G286 B3=1 C1=10 F=400 I1=1 I2=0
T2 M6
G179

G286 Define contour finishing


T2 M6 Call tool: finishing cutter
G179 Perform contour finishing

HEIDENHAIN MillPlus V600 343


G300-G399 G-Codes for
Macros
8.1 Specific G Codes for Macros
8.1 Specific G Codes for Macros
Overview of G codes for macros
Error message functions
„ G300 Program error call

Read functions
„ G319 Read actual technology data
„ G320 Read actual G data
„ G321 Read tool data
„ G322 Read machine constant memory
„ G324 Read G group
„ G326 Read actual position
„ G327 Read operation mode

Overview of G codes for installation purposes


The control contains specific G codes for installation purposes.
However, these functions are intended for the sole use of the OEM
and can result in machine damage and dangerous situations if used
incorrectly.

Synchronize CNC-PLC
„ G303 M19 with programmable direction
„ G305 Synchronize CNC and PLC
„ G338 Write IPLC marker or I/O

Read functions
„ G323 Read cycle data
„ G328 Read IPLC marker or I/O
„ G329 Read offset from kinematic model

Write functions
„ G331 Write tool data
„ G333 Write cycle macro
„ G339 Write offset in kinematic model

346 8 G300-G399 G-Codes for Macros


8.2 G300 Program Error Call

8.2 G300 Program Error Call


Activation of error messages when executing universal programs or
macros.

Support picture

Address description
 D P error message number Programming error messages (P).

Application
Interruption of program or macro execution by means of a
programmed error message.

Procedure
The defined error message is set. Program execution is stopped
according to the error class of the called error.

Example
Setting an error message
G29 I1 E30 N=180 E30=(E4>360)

N180 G300 D190 (PROGRAMMED R VALUE>MAXIMUM


VALUE)

G29 Check whether E4>360 degrees. If yes, jump to


N180.
G300 Error message: programmed value > minimum value
Program execution is interrupted. Program has to be
ended to enter an altered value.

HEIDENHAIN MillPlus V600 347


8.3 G303 M19 with Programmable
8.3 G303 M19 with Programmable Direction
Direction
Spindle orientation in a programmed direction.

Support picture

Address description
 D angle oriented spindle stop
 I2= direction 3=CW 4=CCW

Application
Spindle orientation in a programmable direction, for example, to avoid
a collision.

Procedure
The spindle stops and orientates itself in the direction programmed
with I2= to the end angle D.

Example
Spindle orientation in programmed direction
G303 M19 D15 I2=3

G303 Spindle orientation with M19 D15 in clockwise


direction

348 8 G300-G399 G-Codes for Macros


8.4 G305 Synchronize CNC and

8.4 G305 Synchronize CNC and PLC


PLC
Wait until the IPLC has set a defined IPLC signal.

Support picture

Address description
 N5= IPLC marker or I/O number
 E E parameter

Application
Wait until the IPLC has set a defined IPLC signal.

Procedure
G305 does not perform any actions until the movement in the
preceding block is finished. When the signal condition is satisfied,
machining will continue.

Example
Waiting until an IPLC marker is set
N1004 G305 N5="MS_FUNCTION_M10 < 1"
N1005 G305 N5="ACHSPOS::M_ACHSPOS_INIT > 0"

G305 Wait until IPLC marker MS_Function_M10 is less


than 1
G305 Wait until IPLC marker M_ACHSPOS_INIT in module
ACHSPOS.MOD is greater than 0

HEIDENHAIN MillPlus V600 349


8.5 G319 Read Actual Technology
8.5 G319 Read Actual Technology Data
Data
Read actual value of F (feed rate), S (speed), S1 (cutting speed/
rotational speed), or T (tool number)

Support picture

Address description
 G read actual technology data
 I1= 1-7 (F,S,T,S1,F1,F3,F4)
„ I1=1 F feed
„ I1=2 S speed
„ I1=3 T tool number
E= (I2=0: without sister tool number)
„ I1=4 S1= cutting speed for turning
„ I1=5 F1= constant cutting feed (F1= with G41/G42)
E= (0=none, 1=inside only, 2=inside and outside, 3=outside only)
„ I1=6 F3= in depth feed
„ I1=7 F4= in plane feed
 I2= 0= programmed value (optional)
„ I2=0 programmed value
 E E parameter

Default setting
I2=0

Application

If an address has no value, the specified E parameter has


no value.

Changes to V5xx
„ See "G319_I2=1" on page 519.

Example
Exporting the active feed rate and saving the value.
G319 I1=1 E10

G319 I1=1 read feed rate value.


E10 contains the feed rate value

350 8 G300-G399 G-Codes for Macros


8.6 G320 Read Actual G Data

8.6 G320 Read Actual G Data


Read the address values of current modal G codes and save these
values to the E-parameter provided.

Support picture

Address description
 G read actual G data
 E E parameter
 I1= selection number
 G7 tilting working plane
E= (-180 - 180)[degrees]
„ I1=1 solid angle of A axis
„ I1=2 solid angle of B axis
„ I1=3 solid angle of C axis
 Result of G17, G18, G19, G180, and G182
E= (1=X, 2=Y, 3=Z, 4=A, 5=B, 6=C)
„ I1=10 main axis (1-3)
„ I1=11 parallel axis (1-6)
„ I1=12 tool axis (1-3)
 G25/G26 enable/disable feed/spindle override
E= (0=F and S active, 1=F=100%, 2=S=100%, 3=F and S=100%)
„ I1=13 feed/speed override (0--3)
 G27/G28 reset/activate positioning functions
„ I1=16 positioning logic (I5=0 or 1)
E= (0=with positioning logic, 1=without positioning logic)
„ I1=17 reduced acceleration (I6=) E= (5-100)[%]
„ I1=18 contour accuracy (I7=)
E= (0--10.000) [mm|inch].
 G39 tool offset change
E= ([mm|Inch]
„ I1=19 additional tool compensation (L)
„ I1=20 additional tool compensation (R)

HEIDENHAIN MillPlus V600 351


8.6 G320 Read Actual G Data  G54 activate zero point shift
E= ([mm|Inch][degrees]
„ I1=27 ZPS in X axis
„ I1=28 ZPS in Y axis
„ I1=29 ZPS in Z axis
„ I1=30 ZPS in A axis
„ I1=31 ZPS in B axis
„ I1=32 ZPS in C axis
„ I1=33 angle of rotation
 G92/G93 zero point shift incr./abs.
E= ([mm|Inch][degrees]
„ I1=34 ZPS in X axis
„ I1=35 ZPS in Y axis
„ I1=36 ZPS in Z axis
„ I1=37 ZPS in A axis
„ I1=38 ZPS in B axis
„ I1=39 ZPS in C axis
„ I1=40 angle of rotation
 G72/G73 cancel/activate mirror image and scaling
„ I1=48 scale factor [%|factor] in machining axis (A4=)
[%|factor] dependent on machine parameter dimension
„ I1=49 scale factor [%|factor] in tool axis (A4=)
[%|factor] dependent on machine parameter dimension
„ I1=50 mirror factor in X axis
„ I1=51 mirror factor in Y axis
„ I1=52 mirror factor in Z axis
„ I1=53 mirror factor in A axis
„ I1=54 mirror factor in B axis
„ I1=55 mirror factor in C axis
E= (-1=mirroring active, 1=mirroring not active)
 System axis number (determined by index of machine parameter)
E= (0=not active, 1--6 axis number)
„ I1=56 X axis
„ I1=57 Y axis
„ I1=58 Z axis
„ I1=59 A axis
„ I1=60 B axis
„ I1=61 C axis
 G7 G106 and G108 kinematic calculation: OFF/ON
„ I1=70 values of I1= address G108
E= (0=G106 active, 1=G108 active in the head and in the table if
applicable)

352 8 G300-G399 G-Codes for Macros


8.6 G320 Read Actual G Data
Application
Changes to V5xx
„ See "G320_I1" on page 520.

Example
Reading current G data and saving the value in an E parameter.
G320 I1=10 E11
G320 I1=11 E12
G320 I1=12 E13

G320 I1=10 Read main axis


E11 contains the result
E11=1 X axis is the main axis.
G320 I1=11 Read parallel axis
E12 contains the result
E12=2 Y axis is the parallel axis.
G320 I1=12 Read tool axis
E13 contains the result
E13=3 Z axis is the tool axis.

HEIDENHAIN MillPlus V600 353


8.7 G321 Read Tool Data
8.7 G321 Read Tool Data

Read values from the tool table.

Support picture

Address description
 G read tool data
 T tool number
 T2= sister tool index (optional)
 E E parameter
 I1= tool address (1=L .. 37=LCUTS)
„ I1=1 L tool length
„ I1=2 R tool radius
„ I1=3 R2 tool corner radius
„ I1=4 DL length allowance
„ I1=5 DR radius allowance
„ I1=8 CUT number of tool teeth
„ I1=9 DIRECT cutting direction
„ I1=10 ANGLE plunge angle
„ I1=11 PTYP tool type for magazine table
„ I1=12 TS tool status
„ I1=13 TIME1 tool life (time unit is minutes)
„ I1=14 CUR_TIME tool life (passed cutting time)
„ I1=16 LBREAK breakage tolerance: length
„ I1=24 LTOL wear tolerance: length
„ I1=25 RTOL wear tolerance: radius
„ I1=26 L-OFFS measuring offset: length
„ I1=27 R-OFFS measuring offset: radius
„ I1=31 DR2 tool corner radius offset
„ I1=32 TL tool locked
„ I1=37 LCUTS cut length in the tool axis

354 8 G300-G399 G-Codes for Macros


8.7 G321 Read Tool Data
Application
Tool number and position
The tool number (T) must be known. The position (P) in the tool table
cannot be read.

Reading a tool table address without a value

If the address in the tool table is empty, the specified E


parameter has no value.

Changes to V5xx
„ See "G321" on page 522.

Example
Program blocks for reading the tool table.
G321 T10 I1=1 E1
G321 T10 I1=2 E10
G321 T10 I1=3 E20
G321 T10 I1=4 E2
G321 T10 I1=5 E11
E3=E1+E2
E12=E10+E11

G321 Read request


T tool number
I1= tool address data
E1 E parameter number. (L) tool length is set in E
parameter 1
G321 R (tool radius) is set in E parameter 10
G321 R2 (tool corner radius) is set in E parameter 20 (if R2
has no value, E20 is cleared)
G321 DL (length allowance) is set in E parameter 2
G321 DR (radius allowance) is set in E parameter 11
The correct tool length (E3) is L+DL (E1+E2)
The correct tool radius (E12) is R+DR (E10+E11)

HEIDENHAIN MillPlus V600 355


8.8 G322 Read Machine Constant
8.8 G322 Read Machine Constant Memory
Memory
Read a machine parameter (value or string) and save its contents in the
E-parameter provided (value or string).

Support picture

Address description
 G read machine constant memory
 N5= name of machine parameter
 O1= E parameter for numerical value (optional)
 O2= E parameter for string value (optional)

Application
Machine parameter (N5=)
The machine parameter is defined by a path. The various elements in
the path are separated with <:>. The path is specified by defining the
element in the corresponding CFG file. The current value of the
relevant machine parameter is returned as a numerical value or
"string". The path is case-sensitive.

E parameter number
O1= defines the number of the E parameter to which the numerical
result is written, while O2= defines the number of the E parameter to
which the "string" is written.

Reading machine parameters without value


If an unavailable machine parameter is read, an error message is
issued. The E parameter is not modified.

Changes to V5xx
„ See "G322" on page 523.

Example
Reading a numerical value and a string
G322 N5="CfgUnitOfMeasure:unitOfMeasure" O1=3
G322 N5="CfgProgAxis:X-Axis:axName" O2=10

G322 O1=3 returns E3 = 0


G322 O2=10 returns E10 = "X"

356 8 G300-G399 G-Codes for Macros


8.9 G323 Read Cycle Data

8.9 G323 Read Cycle Data


Read cycle data from the internal memory. The data is used to execute
and display the correct cycle macro.

Support picture

Address description
 G read cycle data
 O1= E parameter subprogram number (optional)
 O2= E parameter G number of cycle (optional)
 O3= first E parameter for cycle definition (optional)
 O4= last E parameter for cycle definition (optional)

Application
E parameter number

If an address has no value, the specified E parameter has


no value.

O1= defines the number of the E parameter to which the macro


number is written.
O2= defines the number of the E parameter to which the cycle
number is written.
O3= defines the number of the first E parameter to which the saved
cycle definition is written.
O4= defines the number of the last E parameter to which the saved
cycle definition is written.

Changes to V5xx
„ See "G323" on page 524.

Example
Reading a numerical value and a string
G81 X0 Y0 Z10
G323 O1=10

G81 Drilling cycle


G323 O1=10 returns E10 = 81

HEIDENHAIN MillPlus V600 357


8.10 G324 Read G Group
8.10 G324 Read G Group

Read a current modal G code and save this value to the E-parameter
provided.

Support picture

Address description
 G read G group
 E E parameter
 I1= G group
E= number of G code
„ I1=1 G0, G1, G2, G3, G6, G31, G33
„ I1=2 G17, G18, G19
„ I1=3 G40, G41, G42, G43, G44, G141
„ I1=4 G53, G54, G54_I, G55, G56, G57, G58, G59
„ I1=5 G63, G64
„ I1=7 G70, G71
„ I1=8 G90, G91
„ I1=10 G94, G95
„ I1=11 G96, G97 (rotation only)
„ I1=12 G36, G37 (rotation only)
„ I1=13 G72, G73
„ I1=14 G66, G67
„ I1=15 Off, G39
„ I1=16 G51, G52
„ I1=17 G196, G199
„ I1=19 G27, G28
„ I1=20 G25, G26
„ I1=22 G202, G201
„ I1=24 G180, G182
„ I1=26 Off, G141
„ I1=27 Off, G7
„ I1=28 Off, G8

358 8 G300-G399 G-Codes for Macros


8.10 G324 Read G Group
Application
Reading a group without a value
If the group or the G code does not exist, the E parameter is not
modified.

Results
Generally, the result is equal to the value of the modal G code. For
example: When G40 is active, G324 I1=3 returns the value 40 as the
result.
Exceptions are:
„ Off returns the value 0.
„ G26_S, G26_F_S returns 26.
„ G54_I returns 54.nn, where nn is the index.
„ G180_XYZ returns 180.

Changes to V5xx
„ See "G324_I1" on page 524.

Example
Reading G code (I1=2) and saving the value to the E parameter 10.
G324 I1=2 E10

G324 I1=2
Read G code group 2
E10 contains the result
E10 =17 G17 is active

HEIDENHAIN MillPlus V600 359


8.11 G326 Read Actual Position
8.11 G326 Read Actual Position

Read a current position value and save this value to the E-parameter
provided.

Support picture

Address description
 G read actual position
 I1= 0=workpiece, 1=machine
I1=0 position to workpiece zero point (default)
I1=1 position to machine zero point
 I2= 0=programmed, 1=actual
I2=0 programmed position (default)
I2=1 actual position
 I3= 0=current, 1=cycle pattern home position
I3=0 current position (default)
I3=1 cycle pattern home position
Returns the requested position, but compensated for the home
position of the cycle pattern. If the actual position is identical to the
cycle pattern end position (G336 I2=1), the cycle pattern home
position (G336 I2=0) is returned. Comment: With incremental
programming, for example, this function enables the program to be
continued from the cycle pattern home position instead of the actual
position.
 X7= E parameter for X position
 Y7= E parameter for Y position
 Z7= E parameter for Z position
 A7= E parameter for A position
 B7= E parameter for B position
 C7= E parameter for C position
 D7= E parameter for S position
 U7= E parameter for U position
 V7= E parameter for V position
 W7= E parameter for W position

360 8 G300-G399 G-Codes for Macros


8.11 G326 Read Actual Position
Application
Reading unavailable axes

If the axis is not available, the specified E parameter has


the value -999999999.

Reading with graphic simulation


With graphic simulation, the X, Y, and Z axes are read correctly. The
rotary axes remain at zero.

Changes to V5xx
„ See "G326" on page 524.

Example
Program continuation after the contour milling cycle.
G280
G326 I1=0 I2=0 X7=20 Y7=21
G29 E1 N=90 E1=E20 >100
G29 E1 N=90 E1=E20 <-100
G0 X-110 Y100
N90

G280 End contour milling


G326 Unknown current end position of X and Y.
G29 When actual X position >100, jump to N90
G29 When actual X position <-100, jump to N90
G0 G0 movement after X-110, if the current X position
lies between 100 and –100. This allows an obstacle
to be avoided, for example.

HEIDENHAIN MillPlus V600 361


8.12 G327 Read Operation Mode
8.12 G327 Read Operation Mode

Read the current operation mode and save this value to the
E-parameter provided.

Support picture

Address description
 G read operation mode
 I1= active mode (1-6)
I1=0 not active
I1=1 free entry
I1=2 single block
I1=3 graphics
I1=5 search
I1=6 demo
 E E parameter

Application
Changes to V5xx
„ See "G327" on page 525.

Example
Reading the operating mode (I1=1) and saving the value to the E
parameter 10.
G327 I1=1 E10

G327 Check I1=1 to establish whether free entry is active.


E10 contains the result: 0= not active, 1= active

362 8 G300-G399 G-Codes for Macros


8.13 G328 Read IPLC Marker or I/O

8.13 G328 Read IPLC Marker or I/O


Read an IPLC marker or input/output and save this value to the E
parameter provided.

Support picture

Address description
 N5= signal name Defines the symbolic name of the read PLC signal.
 O1= E parameter for PLC signal numerical value Defines the E
parameter to which the read value of the PLC signal is written when
program execution continues.
 O2= E parameter for PLC signal string value Defines the E
parameter to which the read value of the PLC text is written when
program execution continues.

Application
Reading of IPLC values for use during program or macro execution.

Changes to V5xx
„ See "G328" on page 525.

Procedure
G328 does not perform any actions until the movement in the
preceding block is finished. The PLC signal defined with N5= is read
and written to the E parameter.

HEIDENHAIN MillPlus V600 363


Example
8.13 G328 Read IPLC Marker or I/O
Different ways of reading an IPLC marker
N1002 G328 N5="M9586" O1=6
N1003 G328 N5="MS_FUNCTION_M10" O1=7
N1004 G328 N5="MS_PROGRAMINTERRUPT[10]" O1=8
N1005 G328 N5="ACHSPOS::M_ACHSPOS_INIT" O1=16

N1110 IF (E8=0) THEN

N1126 END IF

G328 Read IPLC marker M9586


G328 Read IPLC marker MS_Function_M10
G328 Read 10th IPLC marker of array
MS_PROGRAMINTERRUPT
G328 Read IPLC marker M_ACHSPOS_INIT in module
ACHSPOS.MOD
IF...END IF Blocks N1110 to N1126 are executed only if E8 is
equal to zero.

364 8 G300-G399 G-Codes for Macros


8.14 G329 Read Offset from

8.14 G329 Read Offset from Kinematic Model


Kinematic Model
Read a kinematic element and save this value to the E parameter
provided.

Support picture

Address description
 I1= read mode Defines how the kinematic model is read.
„ 0 = directly via "key" (default)
„ 1 = read sequential: 1st element
„ 2 = read sequential: next element
„ 3 = linear shift of a rotary axis
„ 4 = total linear shift of a rotary axis. In table: from machine base.
In head: from spindle nose.
„ 5 = rotary axis presence
 I2= rotary axis (4=A,5=B,6=C) Effective only for I1=3, 4, or 5;
used in conjunction with I3=. In the kinematic model, the linear
shifts are specified for each rotary axis. In the individual elements,
the shifts are defined in an X, Y, and Z direction. Multiple elements,
e. g. one for the basic shift and a second for a compensation shift,
can be defined for each direction X, Y, or Z. I2= defines the rotary
axis from which the linear shift(s) in one direction are read. Unless
programmed, the value belonging to the rotary axis described first is
returned.
„ 4 = A axis
„ 5 = B axis
„ 6 = C axis
 I3= linear axis direction (1=X,2=Y,3=Z) Effective only for I1=3
or 4; used in conjunction with I2= and defines the linear shift
direction that is read in the rotary axis defined (with 12=).
„ 1 = X direction
„ 2 = Y direction
„ 3 = Z direction
 N5= key Effective only for I1=0 (read via "key"). Defines the "key" of
the kinematic element being read. Note: the key is case-sensitive.

HEIDENHAIN MillPlus V600 365


8.14 G329 Read Offset from Kinematic Model  O1= E parameter for status
„ 0 = no error
„ 1 = error: unknown "key"
„ 2 = warning: no rotary axis
„ 3 = error: other errors
„ 4-9 reserved for errors
„ 10 = warning: end of model. Possible only with I1=2 (sequential
read)
 O2= E parameter for element type 1 = CfgKinSimpleTrans, 2 =
CfgKinSimpleAxis, 3=CfgKinAnchor.
 O3= ES parameter for Key String in "key" of the read element.
 O4= E parameter for direction Defined only for element type
O2=1 or 2 (CfgKinSimpleTrans or CfgKinSimpleAxis). Value in "dir" of
the read element. 1= X direction 2=Y, 3=Z
 O5= E parameter for value Defined only for element type O2=1
(CfgKinSimpleTrans). Value in "val" of the read element.
„ Depending on the:
„ - Read mode I1= (sequential, individual, or total)
„ - Model configuration (basic and compensation element)
„ the linear shifts of multiple elements can be returned in
summated form.
 O6= E parameter for machine axis Defined only for element type
O2=2 (CfgKinSimpleAxis). Value in "axisRef" of the read element.
„ 1 = X axis
„ 2 = Y axis
„ 3 = Z axis
„ 4 = A axis
„ 5 = B axis
„ 6 = C axis
 O7= E parameter for head/table Effective only for I1=5 (read "axis
type")
„ 0 = not present
„ 1 = axis present in tool head
„ 2 = axis present in table
 O8= E parameter for angle of rotary axis Effective only for I1=5
(read "axis type").

366 8 G300-G399 G-Codes for Macros


8.14 G329 Read Offset from Kinematic Model
Application
Function G329 (and G339) can only be used for the "simple" kinematic
model of MillPlus from version V600. This kinematic model is
described using the Cfg entities:
„ CfgKinComposeModel
„ CfgKinSimpleModel
„ CfgKinSimpleTrans
„ CfgKinSimpleAxis
„ CfgKinAnchor
Freely-definable "keys" are used to define the various elements of the
model and specify the precise sequence. See the Technical Manual
for an additional description

Changes to V5xx
„ See "G329" on page 525.

Procedure
The values of the kinematic model can be read in various ways via
G329. All values of the read kinematic element are written to E
parameters.

In the case of multiple kinematic models, the value is read


from the active model.

HEIDENHAIN MillPlus V600 367


8.15 G331 Write Tool Data
8.15 G331 Write Tool Data

Write values to tool table.

Support picture

Address description
 G write tool data
 T tool number
 T2= sister tool index
 E E parameter
 I1= tool address (1=L .. 37=LCUTS)
 I1= tool address (1=L .. 37=LCUTS)
„ I1=1 L tool length
„ I1=2 R tool radius
„ I1=3 R2 tool corner radius
„ I1=4 DL length allowance
„ I1=5 DR radius allowance
„ I1=8 CUT number of tool teeth
„ I1=9 DIRECT cutting direction
„ I1=10 ANGLE plunge angle
„ I1=11 PTYP tool type for magazine table
„ I1=12 TS tool status
„ I1=13 TIME1 tool life (time unit is minutes)
„ I1=14 CUR_TIME tool life (passed cutting time)
„ I1=16 LBREAK breakage tolerance: length
„ I1=24 LTOL wear tolerance: length
„ I1=25 RTOL wear tolerance: radius
„ I1=26 L-OFFS measuring offset: length
„ I1=27 R-OFFS measuring offset: radius
„ I1=31 DR2 tool corner radius offset
„ I1=36 TL tool locked
„ I1=37 LCUTS cut length in the tool axis
The tool comment, however, cannot be changed.

368 8 G300-G399 G-Codes for Macros


8.15 G331 Write Tool Data
Application
Tool number and position
The tool number (T) must be known. The position (P) in the tool table
cannot be modified.

Activating new information


The modified tool information must be reactivated after the write
operation. (T... M67).

Tool life
If M (G331 I1=13 E...) is written to the tool memory, M1= is also
written to the tool memory simultaneously (G331 I1=14 E...). The time
unit is minutes.

Changes to V5xx
„ See "G331" on page 526.

Example.
E5=100 (TOOL LENGTH) L (tool length) is set in E parameter 5.
E6=10 (TOOL RADIUS) R (tool radius) is set in E parameter 6.
E7=3 (TOOL CORNER RADIUS) R2 (tool corner radius) is set in E parameter 7.
E8=0 (LENGTH ALLOWANCE) DL (length allowance) is set in E parameter 8.
E9=0 (RADIUS ALLOWANCE) DR (radius allowance) is set in E parameter 9.
G331 T10 I1=1 E5 L (tool length) Write E parameter 5 to the tool table.
G331 T10 I1=2 E6 L (tool radius) Write E parameter 6 to the tool table.
G331 T10 I1=3 E7 R2 (tool corner radius) Write E parameter 7 to the tool table.
G331 T10 I1=4 E8 DL (length allowance) Write E parameter 8 to the tool table.
G331 T10 I1=5 E9 DR (radius allowance) Write E parameter 9 to the tool table.
T10 M67 Tool must be activated with the modified information.
---------------
E8=0.3 (LENGTH ALLOWANCE) DL (length allowance) E parameter 8 is set to 0.3.
G331 T10 I1=4 E8 DL (length allowance) Write E parameter 8 to the tool table.
T10 M67 Tool must be reactivated with the modified information.

HEIDENHAIN MillPlus V600 369


8.16 G338 Write IPLC Marker or I/O
8.16 G338 Write IPLC Marker or I/O

Set IPLC marker or input/output.

Support picture

Address description
 N5= signal name Defines the symbolic name of the set PLC signal.
 E= E parameter PLC signal value Defines the E parameter to
which the value of the set PLC is written.

Application
Setting of IPLC values for use during program or macro execution.

Changes to V5xx
„ See "G328" on page 525.

Procedure
G338 does not perform any actions until the movement in the
preceding block is finished. The PLC signal defined with N5= is set
with the value written to the E parameter.

Example
Different ways of setting an IPLC marker
N1002 G338 N5="M9586" E6
N1003 G338 N5="MS_FUNCTION_M10" E7
N1004 G338 N5="MS_PROGRAMINTERRUPT[10]" E8
N1005 G338 N5="ACHSPOS::M_ACHSPOS_INIT" E16

G338 Set IPLC marker M9586


G338 Set IPLC marker MS_Function_M10
G338 Set 10th IPLC marker of array
MS_PROGRAMINTERRUPT
G338 Set IPLC marker M_ACHSPOS_INIT in module
ACHSPOS.MOD

370 8 G300-G399 G-Codes for Macros


8.17 G339 Write Offset in Kinematic

8.17 G339 Write Offset in Kinematic Model


Model
Write kinematic element from the E parameter provided.

Support picture

Address description
 I1= write mode Defines how the kinematic model is written.
„ 0 = in configuration (on hard drive) (default)
„ 1 = intermittently (lost after controller is switched off)
 I4= 0=absolute, 1=incremental Defines whether the value
overwrites the previous value or whether it is added to the existing
value
„ 0 = absolute. The previous value is overwritten
„ 1 = incremental. Value is added (default)
 I5= value Value is written to "val" of element type
CfgKinSimpleTrans with "key" from N5=
 N5= key Effective only for I1=0 (read via "key"). Defines the "key" of
the kinematic element being written. Note: the key is case-
sensitive.
 O1= E parameter for status
„ 0 = no error
„ 1 = error: unknown "key"
„ 2 = error: "key" must not be modified (probably incorrect Cfg
element)
„ 3 = error: other errors

HEIDENHAIN MillPlus V600 371


8.17 G339 Write Offset in Kinematic Model
Application
Function G339 (and G329) can only be used for the "simple" kinematic
model of MillPlus from version V600. This kinematic model is
described using the Cfg entities:
„ CfgKinComposeModel
„ CfgKinSimpleModel
„ CfgKinSimpleTrans
„ CfgKinSimpleAxis
„ CfgKinAnchor
Freely-definable "keys" are used to define the various elements of the
model and specify the precise sequence. See the Technical Manual
for an additional description

Procedure
The value of a kinematic element can be written via G339.

In the case of multiple kinematic models, the value is


written from the active model.

372 8 G300-G399 G-Codes for Macros


8.18 G380 Protection Zones

8.18 G380 Protection Zones


Writing of protection zones to limit the traverse range. The axes are
only allowed within the defined range; otherwise an error message is
issued.

Support picture

Address description
 I1= activation (0=override, 1=add) Defines the protection zones.
„ 0 = write mode: overwrite (default) First, the active protection
zones of all axes are cancelled. Then the newly programmed
protection zones are activated.
„ 1 = write mode: add Enabled protection zones remain active. The
newly programmed protection zones are activated only for the
programmed axes.
 X1=,Y1=,Z1=,A1=,B1=,C1= positive limit value The programmed
positions are relative to the reference point and must lie within the
range of the SW limit switches.
 X2=,Y2=,Z2=,A2=,B2=,C2= negative limit value The programmed
positions are relative to the reference point and must lie within the
range of the SW limit switches.

Default setting
G380 I1=0

Application
Cancelation
Active protection zone monitoring G380 is canceled by:
„ G380 without address
„ Controller activation
G380 is not canceled by:
„ M30
„ Cancel program

The new protection zones are NOT added to the active


protection zones, but overwrite the old values.

HEIDENHAIN MillPlus V600 373


G600-G699 Measuring
Cycles
9.1 Tool Measuring Cycles for Laser
9.1 Tool Measuring Cycles for Laser Measurements
Measurements
General notes and usage
Laser measurement is complemented by the following G codes

G951 Calibrate
G953 Measure tool length
G954 Tool length, tool radius
G955 Tool edge monitoring SF
G956 Tool breakage monitoring
G957 Tool edge monitoring KF
G958 Tool measurements: length, radius, corner radius
For a description of these G codes, refer to the Blum Manual.

Availability
The machine and control must be prepared for the measuring system
by the machine manufacturer. If your machine does not feature all the
G codes described here, refer to your Machine Manual.

Programming
Any rotary axes are neither taken into account nor positioned.
Free working plane G7 must not be active

Machine parameters
The G code and associated functions are activated via machine
parameters.

376 9 G600-G699 Measuring Cycles


9.2 Tool Measuring Cycles for Tool

9.2 Tool Measuring Cycles for Tool Touch Probe Measuring Systems
Touch Probe Measuring
Systems

TT stands for "Tisch-Taster" (German for "tool touch


probe"), e.g. TT130 or a similar device.

General Notes on Tool Touch Probe Measuring


Systems
Availability
The machine and CNC must be prepared for the measuring system by
the machine manufacturer. If your machine does not feature all the G
codes described here, refer to your Machine Manual.

Programming
Before any of the G600-G609 functions are called, an M24 (switch on
measuring devices) must be programmed. It sets the measuring
devices to the correct measuring position. To retract the measuring
devices at the end of the operation, an M28 (switch off measuring
devices) must be programmed.

Machine parameters
The G code and associated functions are activated via machine
parameters.

HEIDENHAIN MillPlus V600 377


9.3 Measuring Cycles
9.3 Measuring Cycles

Introduction to measuring cycles


Measuring cycles in the main plane
G620 Angle measurement
G621 Position measurement
G622 Corner outside measurement
G623 Corner inside measurement
G626 Datum outside rectangle
G627 Datum inside rectangle
G628 Circle measurement outside
G629 Circle measurement inside

Special measuring cycles


G633 Angle measurement 2 holes
G634 Measurement center 4 holes

Definition
Cycle definition is independent of the machining plane (G17, G18,
G19, and G7).

Axes and machining plane


The cycles are executed in the current main plane G17, G18, G19 or in
the inclined plane G7
G17 G18 G19
Principal axis X X Y

Minor axis Y Z Z

Working axis XY XZ YZ

Tool axis Z Y X or -X (G66/


G67)

In some cycles, the direction of measurement is determined by the


address (I1=).

378 9 G600-G699 Measuring Cycles


9.3 Measuring Cycles
Zero point
The measured values (I5>0) can be saved in the zero point shift table
for the shift that is currently active and/or in an E parameter.

If G7 is active, the measured angle cannot be set using


G620 or G633 with I5=2 in the zero point. Program G620
and G633 with I5=0 O3=.. and use the relevant E
parameter in an incremental G7 shift, e.g. G7 C6=E10
L1=1.

Comments
Comments are not allowed in a block with a machining cycle.

Results of activating a measuring cycle:


„ G91 is deactivated.
„ Radius correction is deactivated (G40 is active).
„ Scaling with G72 is deactivated.
„ L and R in G39 are zeroed.
„ A40=, B40=, C40=, R for calculating the feed rate of the axes.

Functions that are not allowed when a measuring cycle is called


„ G36, rotations (B4=) in G92/G93 and G182.
„ G7 must not be active if the measured values are saved in a zero
point shift (I5>0).
„ Tool T0 is not allowed.

Pre-position the tool such that no collision can occur


between the workpiece and clamping devices.

Explanation of addresses
The addresses described here are used in most cycles. Specific
addresses are described in the relevant cycle.
 X, Y, Z starting point Starting point of the measuring movement.
The measuring cycle is executed from here. If all the starting point
coordinates are not entered, the current position of the touch probe
is used.
„ Unlike a milling cycle, a measuring cycle is executed directly from
the starting point (X, Y, Z).
„ The touch probe moves to the first starting point (X, Y, Z) in rapid
traverse and, depending on G28, using positioning logic.

HEIDENHAIN MillPlus V600 379


9.3 Measuring Cycles  C1= measuring distance Maximum distance between the start and
end points of the measuring movement. (Default 10). Movement
stops once the wall of the workpiece or the end of the measuring
range is reached.
„ Note: If there is no contact with material within the measuring
range (C1=), an error message is issued.
 L2= safety distance During (if I3=1) and at the end of the
measurement, the touch probe moves to the safety clearance
(default 0 for measurement on the outside of the workpiece or 1
mm for measurements in pockets and holes). The safety clearance
(L2=) is based on the relevant starting point X, Y, Z.
 B3= distance to corner The distance in the principal axis between
the first starting point and the corner of the workpiece.
If address B4= is absent, B3= is also the distance to the next
measurement around the workpiece corner. The path traced by the
touch probe around the corner of the workpiece to the starting point
of the 2nd measurement is the same length in both directions. For
each direction, the distance is the sum of B3= and the first
measuring range travelled.
 B4= distance to corner in minor axis The distance in the minor
axis between the first starting point and the corner of the workpiece.
 I1= measuring direction from touch probe to workpiece
I1=principal axis, I1= 2 minor axis, I1= 3 tool axis. The angular
reference axis is always perpendicular to the scanning direction.
 I3= movement between measuring movements 13= is used to
determine whether the positioning movement between
measurements takes place at measuring height or at the safety
clearance (L2=). With I3=0, the positioning movement between
measuring movements is at measuring height and parallel to the
principal axis. In the case of circular movement, the positioning
movement is circular and at the feed rate. I3=1 The positioning
movement between measuring movements is at the safety
clearance and in a line between measurement points.
 I4= corner number (1-4) Specifies the corner at which the first
measurement is to take place (default 1). The first measurement is
always perpendicular to the principal axis. The second
measurement is always perpendicular to the minor axis.
 O1= to O7= save measured values The measured values can be
saved in the E parameters. The number of the E parameter must be
entered. If no number is entered, nothing is saved. Example: O1=10
means that the result is saved in E parameter 10.
 F measuring feed The default is PROBE_FEED.

380 9 G600-G699 Measuring Cycles


9.4 G620 Angle Measurement

9.4 G620 Angle Measurement


Measurement of the inclined position of a clamped workpiece.

Support picture

Address description
 I1= meas.dir. ±1/±2/-3=main/minor/tl
 X,Y,Z starting point
 B1= dist. meas. positions main axis If I1=±2, B1= must be
programmed (B1= must not equal zero). If I1=-3, B1= and B2= must
not be programmed at the same time.
 B2= dist. meas. positions par. axis If I1=±1, B2= must be
programmed (B2= must not equal zero). If I1=-3, B1= and B2= must
not be programmed at the same time. Not permitted: B1= B2= 0.
On saving, the measured values are added to the active zero point
shift.
 C1= measuring distance
 L2= safety distance
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=B4 2=A/B/C
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the angle of rotation (G54
B4=).
„ I5=2 Save in the active zero point shift in the rotary axis (A/B/C).
 A1= target value angle If the measured angle is saved in the active
zero point shift (I5>0), it is used to calculate the target value. The
measured position is thus given the target value for subsequent
programming.
 O3= E par. measured angle
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
B1=0, B2=0, C1=20, L2=0, I3=0, I5=0, A1=0, F2=PROBE_FEED.

HEIDENHAIN MillPlus V600 381


9.4 G620 Angle Measurement
Application
Measuring direction
Depending on the plane selected (G17, G18 or G19), the parameter
I1= determines the direction of measurement and this defines the
meaning of B1= and B2=.

G17
Measuring direction I1= ±1 I1= ±2 I1= 3
B1= B2=

Angle plane XY XY XZ YZ

Rotary axis C C B A

G18
Measuring direction I1= ±1 I1= ±2 I1= 3
B1= B2=

Angle plane XZ XZ XY ZY

Rotary axis B B C A

G19
Measuring direction I1= ±1 I1= ±2 I1= 3
B1= B2=

Angle plane YZ YZ YX ZX

Rotary axis A A C B

Setting the zero point shift

If G7 is active, the measured angle cannot be set using


G620 I5=2 in the zero point. Program G620 O3=.. and use
the relevant E parameter in an incremental G7 shift, e.g.
G7 C6=E10 L1=1.

382 9 G600-G699 Measuring Cycles


9.4 G620 Angle Measurement
Procedure
1 Rapid traverse to first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 3).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured value is saved in accordance with I5=.

Example
Aligning a workpiece
G17
G54 I3
G620 X-50 Y-50 Z-5 I1=2 B1=100 L2=10 I3=1 I5=2
G0 C0

G17 Set plane


G54 Set zero point
G620 Define and execute measuring cycle.
G54 I3 is recalculated after the cycle.
G0 Rotary table is positioned at zero. (G17).

HEIDENHAIN MillPlus V600 383


9.5 G621 Position Measurement
9.5 G621 Position Measurement

Measurement of a coordinate on the wall of a workpiece.

Support picture

Address description
 I1= meas.dir. ±1/±2/-3=main/minor/tl
 X,Y,Z starting point
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 B1= target position When the measured coordinate is saved in
the active zero point shift (I5>0), it is used to calculate the nominal
value. The measured coordinate is assigned the target value for
further programming.
 O1= E par. for measured position
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
C1=20, L2=0, I2=-1, I5=0, B1=0, F2=PROBE_FEED.

Application
Measuring direction
Depending on the plane selected (G17, G18, or G19), address I1=
determines the measuring direction.

384 9 G600-G699 Measuring Cycles


9.5 G621 Position Measurement
Procedure
1 Rapid traverse to first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=).
4 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
5 The measured value is saved in accordance with I5=.

Example
Measuring a position
G621 X40 Y40 Z-5 I1=2 L2=20 O1=300

G621 Define and execute measuring cycle.


After the measuring cycle, the result is written to E
parameter (E300).

HEIDENHAIN MillPlus V600 385


9.6 G622 Corner Outside
9.6 G622 Corner Outside Measurement
Measurement
Measurement of the corner position (outside) of an aligned workpiece.

Support picture

Address description
 I4= corner number
 X,Y,Z starting point
 B3= distance to corner
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 O1= E par. meas. position main axis
 X1=, Y1=, Z1= target position corner When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the nominal value. The measured coordinate is assigned
the target value for further programming.
 O1= E par. meas. position minor axis
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
I4=1, B3=10, C1=20, L2=0, I2=-1, I3=0, I5=0, X1=0, Y1=0, Z1=0,
F2=PROBE_FEED.

386 9 G600-G699 Measuring Cycles


9.6 G622 Corner Outside Measurement
Application
Note
„ The sides must be parallel to the axes.
„ The workpiece angle must be 90 degrees.
„ The measured plane is perpendicular to the tool axis.

Direction of measurements
„ The first measurement is always perpendicular to the principal axis.
„ The second measurement is always perpendicular to the minor axis.

The support picture is in G17. The picture is not correct for


a machine with exchanged axes (G18). Angle 1 must be
replaced with 2, and 3 with 4.

Procedure
1 Rapid traverse to first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 3).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured value is saved in accordance with I5=.

Example
Aligning the outside corner of a workpiece
G1 X... Y... Z-5
G54 I3
G622 L2=20 B3=25 I3=1 I5=1 X1=-50 Y1=-50

G1 Position the touch probe 10 mm to the right of corner


1 and 8 mm from the front.
G54 Set zero point
G622 Define and execute measuring cycle.
After the measuring cycle, the zero point shift is
overwritten so that the coordinates of corner 1 are
equal to X1= and Y1=

HEIDENHAIN MillPlus V600 387


9.7 G623 Corner Inside
9.7 G623 Corner Inside Measurement
Measurement
Measurement of the corner position (inside) of an aligned workpiece.

Support picture

Address description
 I4= corner number
 X,Y,Z starting point
 B3= distance to corner
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 X1=, Y1=, Z1= target position corner When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the nominal value. The measured coordinate is assigned
the target value for further programming.
 O1= E par. meas. position main axis
 O1= E par. meas. position minor axis
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
I4=1, B3=10, C1=20, L2=0, I2=-1, I3=0, I5=0, X1=0, Y1=0, Z1=0,
F2=PROBE_FEED.

388 9 G600-G699 Measuring Cycles


9.7 G623 Corner Inside Measurement
Application
Note
„ The sides must be parallel to the axes.
„ The workpiece angle must be 90 degrees.
„ The measured plane is perpendicular to the tool axis.

Direction of measurements
„ The first measurement is always perpendicular to the principal axis.
„ The second measurement is always perpendicular to the minor axis.

The support picture is in G17. The picture is not correct for


a machine with exchanged axes (G18). Angle 1 must be
replaced with 2, and 3 with 4.

Procedure
1 Rapid traverse to first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 3).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured value is saved in accordance with I5=.

Example
Aligning the inside corner of a workpiece
G1 X... Y... Z-5
G54 I3
G623 L2=20 B3=25 I3=1 I5=1 X1=-50 Y1=-50

G1 Position the touch probe 10 mm to the right of corner


1 and 8 mm from the front.
G54 Set zero point
G623 Define and execute measuring cycle.
After the measuring cycle, the zero point shift is
overwritten so that the coordinates of corner 1 are
equal to X1= and Y1=

HEIDENHAIN MillPlus V600 389


9.8 G626 Datum Outside Rectangle
9.8 G626 Datum Outside Rectangle

Measurement of the center point of a paraxial rectangle.

Support picture

Address description
 I4= corner number
 X,Y,Z starting point
 B1=,B2= side length
 B3=,B4= distance to corner If B4= is not entered, B4=B3 is used.
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 X1=, Y1=, Z1= target center point When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the nominal value. The measured coordinate is assigned
the target value for further programming.
 O1=,O2= E par. meas. center
 O4=,O5= E par. meas. length
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
I4=1, B3=10, B4=B3, C1=20, L2=0, I2=-1, I3=0, I5=0, X1=0, Y1=0,
Z1=0, F2=PROBE_FEED.

390 9 G600-G699 Measuring Cycles


9.8 G626 Datum Outside Rectangle
Application
Measurement
Two opposing tool corners are measured (1+3 or 2+4).
Direction of first corner measurement
„ The first measurement is always perpendicular to the principal axis.
„ The second measurement is always perpendicular to the minor axis.
Direction of second corner measurement
„ Clockwise from corner number 1 ‡ 3 or 3 ‡ 1.
„ Counter-clockwise from corner number 2 ‡ 4 or 4 ‡ 2.

The support picture is in G17. The picture is not correct for


a machine with exchanged axes (G18). Angle 1 must be
replaced with 2, and 3 with 4.

Procedure
1 Rapid traverse to the first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 3).
6 The opposite corner is measured by means of a 3rd and 4th
measurement (as described in points 2 and 3).
7 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
8 The measured value is saved in accordance with I5=.

Example: Saving the center point of a rectangle


in the zero point shift .
G54 I3
G626 X-45 Y-3 Z-5 B1=100 B2=20 B3=5 I3=1 I5=1

G54 Set zero point


G626 Define and execute measured cycle (B4=B3). Once
the measuring cycle is complete, X and Y are
recalculated in G54 I3.

HEIDENHAIN MillPlus V600 391


9.9 G627 Datum Inside Rectangle
9.9 G627 Datum Inside Rectangle

Measurement of the center point of a paraxial rectangular hole.

Support picture

Address description
 I4= corner number
 X,Y,Z starting point
 B1=,B2= side length
 B3=,B4= distance to corner If B4= is not entered, B4=B3 is used.
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 X1=, Y1=, Z1= target center point When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the nominal value. The measured coordinate is assigned
the target value for further programming.
 O1=,O2= E par. meas. center
 O4=,O5= E par. meas. length
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
I4=1, B3=10, B4=B3, C1=20, L2=0, I2=-1, I3=0, I5=0, X1=0, Y1=0,
Z1=0, F2=PROBE_FEED.

392 9 G600-G699 Measuring Cycles


9.9 G627 Datum Inside Rectangle
Application
Measurement
Two opposite corners of the workpiece are measured (1+3 or 2+4)

Direction of first corner measurement


„ The first measurement is always perpendicular to the principal axis.
„ The second measurement is always perpendicular to the minor axis.

Direction of second corner measurement


„ Clockwise from corner number 1 ‡ 3 or 3 ‡ 1.
„ Counter-clockwise from corner number 2 ‡ 4 or 4 ‡ 2.

The support picture is in G17. The picture is not correct for


a machine with exchanged axes (G18). Angle 1 must be
replaced with 2, and 3 with 4.

Procedure
1 Rapid traverse to the first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 3).
6 The opposite corner is measured by means of a 3rd and 4th
measurement (as described in points 2 and 3).
7 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
8 The measured value is saved in accordance with I5=.

Example: Saving the center point of a rectangle


in the zero point shift .
G54 I3
G627 X-45 Y-3 Z-5 B1=100 B2=20 B3=5 I3=1 I5=1

G54 Set zero point


G627 Define and execute measured cycle (B4=B3). Once
the measuring cycle is complete, X and Y are
recalculated in G54 I3.

HEIDENHAIN MillPlus V600 393


9.10 G628 Circle Measurement
9.10 G628 Circle Measurement Outside
Outside
Measurement of the center point of a circle.

Support picture

Address description
 X,Y,Z starting point
 R circle radius
 D1= starting angle Angle shift of the circle measurement, relative
to the principal axis.
 D2= second angle Angle between first and second measurement
and between third and fourth measurement. The smallest entry
value is 5°.
 D3= third angle Angle between the first and third measurement.
D3 must be at least 5° greater than D2. If D3 and D2 are identical, a
3-point measurement is performed.

The greatest accuracy is achieved with a symmetrical


measurement with standard values D2=90 and D3=180.

 C1= measuring distance


 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 X1=, Y1=, Z1= target center point When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the nominal value. The measured coordinate is assigned
the target value for further programming.
 R1= minimum circle radius The smallest permitted radius of the
circle. The measured radius must be at least greater than or equal to
R1, otherwise an error message is issued.

394 9 G600-G699 Measuring Cycles


9.10 G628 Circle Measurement Outside
 R1= maximum circle radius The largest permitted radius of the
circle. The measured radius must be at least smaller than or equal
to R2, otherwise an error message is issued.
 O1=,O2= E par. meas. center
 O6= E par. measured diameter
 O7= E par. radius difference The difference between the
measured radius and the programmed circular radius R is saved to
an E parameter. The number of the E parameter must be entered. If
no number is entered, nothing is saved.
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
D1=0, D2=90, D3=180, C1=20, L2=0, I2=-1, I3=0, I5=0, X1=0, Y1=0,
Z1=0, F2=PROBE_FEED.

Application
Starting point
The starting point of the circle measurement must be selected such
that the first measurement moves as precisely as possible in the
direction of the circle center.

Measuring direction
The circle measurement is executed counter-clockwise.

Procedure
1 Rapid traverse to the first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 4).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured value is saved in accordance with I5=.

HEIDENHAIN MillPlus V600 395


9.10 G628 Circle Measurement Outside
Example
Saving the center point of a circular stud in the zero point shift
G54 I3
G628 X-45 Y-3 Z-5 R50 I3=1 I5=1

G54 Set zero point


G628 Define and execute measuring cycle.
Once the measuring cycle is complete, X and Y are
recalculated in G54 I3.

396 9 G600-G699 Measuring Cycles


9.11 G629 Circle Measurement

9.11 G629 Circle Measurement Inside


Inside
Measurement of the center point of a circular hole.

Support picture

Address description
 X,Y,Z starting point
 R circle radius
 D1= starting angle Angle shift of the circle measurement, relative
to the principal axis.
 D2= second angle Angle between first and second measurement
and between third and fourth measurement. The smallest entry
value is 5°.
 D3= third angle Angle between the first and third measurement.
D3 must be at least 5° greater than D2. If D3 and D2 are identical, a
3-point measurement is performed.
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 I5= G5x offset 0=no 1=X/Y/Z
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
On saving, the measured values are added to the active zero point
shift.
 X1=, Y1=, Z1= target center point When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the nominal value. The measured coordinate is assigned
the target value for further programming.
 R1= minimum circle radius The smallest permitted radius of the
circle. The measured radius must be at least greater than or equal to
R1, otherwise an error message is issued.
 R1= maximum circle radius The largest permitted radius of the
circle. The measured radius must be at least smaller than or equal
to R2, otherwise an error message is issued.
 O1=,O2= E par. meas. center
 O6= E par. measured diameter

HEIDENHAIN MillPlus V600 397


9.11 G629 Circle Measurement Inside  O7= E par. radius difference The difference between the
measured radius and the programmed circular radius R is saved to
an E parameter. The number of the E parameter must be entered. If
no number is entered, nothing is saved.
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

The greatest accuracy is achieved with a symmetrical


measurement with standard values D2=90 and D3=180.

Default setting
D1=0, D2=90, D3=180, C1=20, L2=10, I2=-1, I3=0, I5=0, X1=0,
Y1=0, Z1=0, F2=PROBE_FEED.

Application
Starting point
The starting point of the circle measurement must be selected so that
the first measurement moves as precisely as possible in the direction
of the circle center.

Measuring direction
The circle measurement is executed counter-clockwise.

Procedure
1 Rapid traverse to first starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C1=).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second measurement (as described in points 2 and 4).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured value is saved in accordance with I5=.

398 9 G600-G699 Measuring Cycles


Example

9.11 G629 Circle Measurement Inside


Saving the center point of a circle in the zero point shift
G54 I3
G629 X-45 Y-3 Z-5 R50 I3=1 I5=1

G54 Set zero point


G629 Define and execute measuring cycle.
Once the measuring cycle is complete, X and Y are
recalculated in G54 I3.

HEIDENHAIN MillPlus V600 399


9.12 G631 Measure Inclined Plane
9.12 G631 Measure Inclined Plane

Measurement of the inclination of a workpiece plane (G7) by means of


a 3-point measurement.

Support picture

Address description
 I1= meas.dir. ±1/±2/-3=main/minor/tl
 X,Y,Z starting point (meas. point 1)
 X1=,Y1=,Z1= measuring point 2
 X2=,Y2=,Z2= measuring point 3
 O1= E par. for absolute spatial angle A5=
 O2= E par. for absolute spatial angle B5=
 O3= E par. for absolute spatial angle C5=
 C1= measuring distance
 L2= safety distance The safety distance is based on the starting
point of each measurement and lies in the measuring direction.
 I3= 2nd measurem. via L2 0=no 1=yes
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
C1=20, L2=0, I3=0, F2=PROBE_FEED.

Application
The measured inclination can leveled with the G7 function.

400 9 G600-G699 Measuring Cycles


9.12 G631 Measure Inclined Plane
Procedure
Rapid traverse movements are always performed with positioning
logic in the active machining plane (which may already be tilted).
1 Rapid traverse to first starting point (X, Y, Z).
2 First measurement with measurement feed (F2=) until the
workpiece or the maximum measuring range (C1=) is reached.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=).
4 Movement to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=).
5 Second and third measurement (as described in points 2 to 4).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured values are saved.

Example
Aligning and rotating the machining plane
G54 I3
G0 X50 Y20 Z100
G631 X18 Y0 Z-16 X1=18 Y1=10 Z1=-16 X2=10 Y2=0 Z2=-6
C1=15 L2=20 O1=10 O2=11 O3=12 F2=150
G0 Z100
G7 A5=E10 B5=E11 C5=E12 L1=1

G54 Set zero point.


G0 Move to the first position with the touch probe.
G631 Measure inclination of plane.
G0 Move to safe height (G17).
G7 Rotate machining plane.

HEIDENHAIN MillPlus V600 401


9.13 G633 Angle Measurement 2
9.13 G633 Angle Measurement 2 Holes
Holes
Measurement of the inclined position of a clamped workpiece.
The probe measures the centers points of two holes. MillPlus then
calculates the angle between the principal axis of the working plane
and the line connecting the center point of the hole.

Support picture

Address description
 X, Y, Z starting point (meas. point 1) Starting point for
measuring the 1st hole (or current position).
 X1=, Y1=, Z1= measuring point 2 Starting point for measuring the
2nd hole (all 3 coordinates must be entered).
 C1= measuring distance
 L2= safety distance
 G5x offset 0=no 1=B4 2=A/B/C Save measured values in a zero
point shift. On saving, the measured values are added to the active
zero point shift.
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift of the rotation angle (B4=).
„ I5=2 Save in the active zero point shift in the rotary axis (A/B/C).
 A1= target value angle If the measured angle is saved in the
active zero point shift (I5>0), it is used to calculate the target value.
The measured position is thus given the target value for subsequent
programming.
 O3= E par. measured angle Number of the E parameter in which
the angle is saved.
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

Default setting
C1=20, I5=0, A1=0, F2=PROBE_FEED.

402 9 G600-G699 Measuring Cycles


9.13 G633 Angle Measurement 2 Holes
Application
Starting position
The starting position must be programmed inside the hole.

Setting the zero point shift

If G7 is active, the measured angle cannot be set using


G633 I5=2 in the zero point. Program G633 O3=.. and use
the relevant E parameter in an incremental G7 shift, e.g.
G7 C6=E10 L1=1.

Procedure
1 Rapid traverse to first starting point (X, Y, Z) in the 1st hole. If X, Y,
Z are not programmed, the current position is used as the starting
point.
2 Measurement with measurement feed (F2=), until the hole wall or
the maximum measuring range (C1=) is reached. The center point
is first measured roughly and then precisely.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=). Retraction to the safety clearance (L2=).
4 Rapid traverse, over the safety clearance (L2=), to the starting
point in the 2nd hole.
5 The hole is measured at the new position in the same way.
6 Steps 4 and 5 are repeated for the 3rd and 4th hole
measurements.
7 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
8 The measured value is saved in accordance with I5=.

Example
Aligning a workpiece
G54 I3
G633 X-100 Y-50 Z-5 X1=10 Y1=-50 Z1=-5 L2=30 I5=2
G0 C0

G54 Set zero point.


G633 Define measuring cycle with starting point for 1st
hole.
Starting point for 2nd hole.
Save safety distance=30 and measured value in zero
point shift of rotary axis (C).
G0 Rotary table is positioned at zero (G17).

HEIDENHAIN MillPlus V600 403


9.14 G634 Measurement Center 4
9.14 G634 Measurement Center 4 Holes
Holes
This probe cycle calculates the intersection point of two lines, each
connecting two hole centers, and sets this intersection as a reference
point. If desired, MillPlus can also enter the intersection point in a zero
point table.

Support picture

Address description
 X, Y, Z starting point (meas. point 1) Starting point for
measuring the 1st hole (or current position).
 X1=, Y1=, Z1= measuring point 2 Starting point for measuring the
2nd hole (all 3 coordinates must be entered).
 X2=, Y2=, Z2= measuring point 3 Starting point for measuring the
3rd hole (all 3 coordinates must be entered).
 X3=, Y3=, Z3= measuring point 4 Starting point for measuring the
4th hole (all 3 coordinates must be entered).
 C1= measuring distance
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I5= G5x offset 0=no 1=X/Y/ZSave measured values in a zero point
shift. On saving, the measured values are added to the active zero
point offset.
„ I5=0 Do not save.
„ I5=1 Save in the active zero point shift in the linear axes (X/Y/Z).
 X4=, Y4=, Z4= target center point When the measured
coordinate is saved in the active zero point shift (I5>0), it is used to
calculate the target value. The measured coordinate is assigned the
target value for further programming.
 O1= E par. meas. center main axisNumber of the E parameter in
which the measured center point of the principal axis is saved
 O2= E par. meas. center minor axis Number of the E parameter
in which the measured center point of the minor axis is saved
 F2= measuring feed
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

404 9 G600-G699 Measuring Cycles


9.14 G634 Measurement Center 4 Holes
Default setting
C1=20, I2=-1, I5=0, F2=PROBE_FEED.

Application
Starting position
The starting position must be programmed inside the hole.

Procedure
1 Rapid traverse to first starting point (X, Y, Z) in the 1st hole. If X, Y,
Z are not programmed, the current position is used as the starting
point.
2 Measurement with measurement feed (F2=), until the hole wall or
the maximum measuring range (C1=) is reached. The center point
is first measured roughly and then precisely.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=). Retraction to the safety clearance (L2=).
4 Rapid traverse, over the safety clearance (L2=), to the starting
point in the 2nd hole.
5 The hole is measured at the new position in the same way.
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.
7 The measured value is saved in accordance with I5=.

HEIDENHAIN MillPlus V600 405


9.14 G634 Measurement Center 4 Holes
Example
Determining the center point of 4 holes in a workpiece
G54 I3
G634 X-10 Y-20 Z-5 X1=-100 Y1=-40 Z1=-5 X2=-100 Y2=-100
Z2=-5 X3=-10 Y3=-120 Z3=-5 L2=30 I5=1

G54 Set zero point.


G634 Define measuring cycle with:
Starting point for 1st hole
Starting point for 2nd hole
Starting point for 3rd hole
Starting point for 4th hole
Safety clearance=30
Once the measuring cycle is complete, X and Y are
recalculated in G54 I3.

406 9 G600-G699 Measuring Cycles


9.15 G636 Circle Measurement

9.15 G636 Circle Measurement Inside (CP)


Inside (CP)
Measurement of the center point of a hole.

Support picture

Address description
 R circle radius
 X, Y, Z circlecenter point Theoretical center point of the circle
to be measured.
 D1= starting angle Angle shift of the circle measurement, relative
to the principal axis.
 D2= second angle Angle between first and second measurement
and between third and fourth measurement. The smallest entry
value is 5°.
 D3= third angle Angle between the first and third measurement.
D3 must be at least 5° greater than D2. If D3 and D2 are identical, a
3-point measurement is performed.
 C2= pre distance meas. point The distance between the starting
point of the measuring movement and the theoretical circle radius.
The default is SAFETY_DIST.
 L2= safety distance
 I2= probe orientat. -1=auto 0=no
„ I2=-1 Measure with automatic orientation. For an all-round
transmitter, orientation is in the scanning direction. In the case of
a two-layer touch probe, two measurements are performed with
a 180° difference in orientation.
„ I2=0 Measure without probe orientation.
 I3= 2nd measurem. via L2 0=no 1=yes
 O1= E par. meas. center main axis
 O2= E par. meas. center minor axis
 O6= E par. measured diameter
 O7= E par. radius difference The difference between the
measured radius and the programmed circular radius R is saved to
an E parameter. The number of the E parameter must be entered. If
no number is entered, nothing is saved.
 R1= minimum circle radius The smallest permitted radius of the
circle. The measured radius must be at least greater than or equal to
R1, otherwise an error message is issued.
 R1= maximum circle radius The largest permitted radius of the
circle. The measured radius must be at least smaller than or equal
to R2, otherwise an error message is issued.

HEIDENHAIN MillPlus V600 407


9.15 G636 Circle Measurement Inside (CP)  F2= measuring feed
 F5= feed circular movement Feed of the circular movements
between measurements. The default is RAPID_FEED.
For a description of the additional addresses, see "Explanation of
addresses" on page 379.

The greatest accuracy is achieved with a symmetrical


measurement with standard values D2=90 and D3=180.

Default setting
D1=0, D2=90, D3=180, C2=SAFETY_DIST, L2=0, I2=-1, I3=0,
F2=PROBE_FEED, F5=RAPID_FEED

Application
Starting point
The starting point of the circle measurement must be selected such
that the first measurement moves as precisely as possible in the
direction of the circle center.
The starting point of the measuring movement is determined from the
circle center point, the pre-measurement distance, and the starting
angle. The measuring cycle is executed from here. If not all
coordinates of the center point are entered, the current position of the
touch probe is used.
Measuring direction
The circle measurement is executed counter-clockwise.

Procedure
1 Rapid traverse to the starting point calculated from X, Y, Z, R, and
C2. If X, Y, Z are not programmed, the current position is used as
the starting point.
2 First measurement with measurement feed (F2=), until the
workpiece or the maximum measuring range (C2+MEAS_RANGE)
is reached.
3 Rapid traverse back to the first starting point. An error message is
issued if the touch probe has not switched within the maximum
measuring range (C2+MEAS_RANGE).
4 Rapid traverse to the starting point of the 2nd measurement;
depending on the value of I3=, the movement is performed at the
safety clearance (L2=) or with a circular movement.
5 Second measurement (as described in points 2 and 4).
6 At the end, a rapid traverse to the safety clearance (L2=) is
executed.

408 9 G600-G699 Measuring Cycles


9.15 G636 Circle Measurement Inside (CP)
Example: Saving the center point and diameter
of a circle in an E parameter
G636 X-45 Y-3 Z-5 R5 O1=1 O2=2 O6=3 O7=4

G636 Define and execute measuring cycle. Once the


measuring cycle is complete, E-parameters E1, E2,
E3, and E4 are recalculated.

HEIDENHAIN MillPlus V600 409


9.16 G638 Touch Probe Calibration
9.16 G638 Touch Probe Calibration on Ball
on Ball
Calibration of length, orientation angle, radius and, oriented radius of a
touch probe using a ball.

Support picture

Address description
 I1= 1=L 2=R 3=CAL_ANG + R
 X,Y,Z starting point
 C1= measuring distance
 B1= target position If I1= 1, the measured coordinate is compared
with the target position. The difference is offset in the new probe
length.
 R ball radius If I1= 2 or 3, the ball radius must be entered.
 L2= safety distance
 O1= E par. L
 O2= E par. R
 O3= E par. CAL_ANG
A description of the other addresses is provided under "Introduction to
measuring cycles".

Default setting
C1=20, L2=0.

410 9 G600-G699 Measuring Cycles


9.16 G638 Touch Probe Calibration on Ball
Application
General information
The touch probe must be calibrated when:
„ Being used for the first time
„ The touch probe pin is replaced
„ The touch probe pin is bent

Calibrating the touch probe length


To calibrate the touch probe length, a target position must be entered
for Address B1. The new touch probe length is saved under address L
in the tool table.

Calibrating the touch probe radius


When a calibration ring is calculated, the center touch probe radius R
is determined and automatically saved to the tool table. If the touch
probe has an all-round emitter, the oriented probe radius is also saved
to address R.

Calibrating the probe orientation angle


The orientation angle is determined by 120 measurements and is
automatically saved in CAL_ANG. Available only if the touch probe has
an all-round transmitter.

Procedure for calibrating the touch probe length


(I1=1)
1 Rapid traverse to starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 Measurement in tool axis until the ball or maximum measuring
distance (C1=) is reached.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=).
4 At the end, a rapid traverse to the safety clearance is executed
(L2=).

HEIDENHAIN MillPlus V600 411


9.16 G638 Touch Probe Calibration on Ball
Procedure for calibrating the probe radius (I1=2)
1 Rapid traverse to starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 Rough measurement of center point. An error message is issued
if the touch probe has not switched within the maximum
measuring range (C1=).
3 Precise measurement of center point.
4 Only in the case of an all-round transmitter: oriented measurement
to determine R
5 Non-oriented measurement to determine R.
6 At the end, a rapid traverse to the safety clearance is executed
(L2=).

Procedure for calibrating the orientation angle


and touch probe radius (I1=3)
1 Rapid traverse to starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 Rough measurement of center point. An error message is issued
if the touch probe has not switched within the maximum
measuring range (C1=).
3 Precise measurement of center point.
4 120 measurements to measure the orientation angle.
5 Only in the case of an all-round transmitter: oriented measurement
to determine R
6 Non-oriented measurement to determine R.
7 At the end, a rapid traverse to the safety clearance (L2=) is
executed.

Example
Calibrating the touch probe orientation angle and probe radius
G54 X0 Y0 Z0
G638 R10 I1=3 X-45 Y-3 Z342.651 C1=20

G54 Delete zero point shift


G638 Calibrate orientation angle (CAL_ANG) and touch
probe radius (R). CAL_ANG and R are automatically
recalculated.

412 9 G600-G699 Measuring Cycles


9.17 G639 Touch Probe Calibration

9.17 G639 Touch Probe Calibration


Calibration of the length, orientation angle, radius, and oriented radius
of a touch probe.

Support picture

Address description
 I1= 1=L 2=R 3=CAL_ANG + R
 X,Y,Z starting point
 C1= measuring distance
 B1= target position If I1= 1, the measured coordinate is compared
with the target position. The difference is offset in the new probe
length.
 R ball radius If I1= 2 or 3, the ball radius must be entered.
 L2= safety distance
 O1= E par. L
 O2= E par. R
 O3= E par. CAL_ANG
A description of the other addresses is provided under "Introduction to
measuring cycles".

Default setting
C1=20, L2=0.

HEIDENHAIN MillPlus V600 413


9.17 G639 Touch Probe Calibration
Application
General information
The touch probe must be calibrated when:
„ Being used for the first time
„ The touch probe pin has been replaced
„ The touch probe pin is bent

Calibrating the touch probe length


To calibrate the touch probe length, a target position must be entered
for Address B1. The new touch probe length is saved under address L
in the tool table.

Calibrating the touch probe radius


When a calibration ring is calculated, the center touch probe radius R
is determined and automatically saved to the tool table. If the touch
probe has an all-round emitter, the oriented probe radius is also saved
to address R.

Calibrating the probe orientation angle


The orientation angle is determined by 120 measurements and is
automatically saved in CAL_ANG. Available only if the touch probe has
an all-round transmitter.

Procedure for calibrating the touch probe length


(I1=1)
1 Rapid traverse to starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 Measurement in the tool axis until the table (or measured block) or
the maximum measuring distance (C1=) is reached.
3 Rapid traverse back to starting point. An error message is issued if
the touch probe has not switched within the maximum measuring
range (C1=).
4 At the end, a rapid traverse to the safety clearance is executed
(L2=).

Procedure for calibrating the probe radius (I1=2)


1 Rapid traverse to starting point (X, Y, Z) in calibration ring. If X, Y, Z
are not programmed, the current position is used as the starting
point.
2 Rough measurement of center point. An error message is issued
if the touch probe has not switched within the maximum
measuring range (C1=).
3 Precise measurement of center point.
4 Only in the case of an all-round transmitter: oriented measurement
to determine R
5 Non-oriented measurement to determine R.
6 At the end, a rapid traverse to the safety clearance is executed
(L2=).

414 9 G600-G699 Measuring Cycles


9.17 G639 Touch Probe Calibration
Procedure for calibrating the orientation angle
and touch probe radius (I1=3)
1 Rapid traverse to starting point (X, Y, Z). If X, Y, Z are not
programmed, the current position is used as the starting point.
2 Rough measurement of center point. An error message is issued
if the touch probe has not switched within the maximum
measuring range (C1=).
3 Precise measurement of center point.
4 120 measurements to measure the orientation angle.
5 Only in the case of an all-round transmitter: oriented measurement
to determine R
6 Non-oriented measurement to determine R.
7 At the end, a rapid traverse to the safety clearance (L2=) is
executed.

Example
Calibrating the touch probe length
G54 X0 Y0 Z0
G639 I1=1 X-45 Y-3 Z342.651 C1=20 B1=309.769

G54 Delete zero point shift


G639 Calibrate touch probe length (L). Address L in the tool
table is automatically recalculated.

HEIDENHAIN MillPlus V600 415


9.17 G639 Touch Probe Calibration
Example: setting a reference point in the corner and top edge of an inclined,
rectangular surface

In this example, a reference point is set in the


corner and at the top edge of an inclined,
rectangular surface by means of several measuring
cycles. The measured angles are used in a G7 shift.
The measured positions, however, are used in a
zero point shift.
Procedure:
„ Measure inclination of plane.
„ Position plane perpendicular to the tool.
„ Measure angle between rectangle and X axis.
„ Move X axis parallel to rectangle.
„ Measure corner 1 of right angle (see fig.).
„ Measure upper edge of workpiece.

G17 Activate the G17 plane.


G54 I1 X0 Y0 Z0 B0 C0 B4=0 Reset and activate zero point.
T1 M6 Call tool.
G631 I1=-3 X100 Y5 Z1 X1=165 Y1=5 Z1=15 Measure inclination of plane and save absolute spatial angles A5=,
X2=100 Y2=45 Z2=3 O1=10 O2=11 O3=12 B5=, and C5= in E10, E11, and E12.
G0 X100 Y5 Z100 Position in rapid traverse.
G7 A5=E10 B5=E11 C5=E12 L1=1 Position plane perpendicular to the tool.
G620 I1=2 X0 Y0 Z10 B1=20 B2=5 C1=10 L2=100 Measure the angle between the long side of the rectangle and the X
I5=0 O3=14 F2=150 axis and save in E14.
G7 C6=E14 L1=1 Move X axis parallel to the long side of the rectangle.
G622 I4=1 X12 Y1 Z18 B3=20 C1=10 L2=100 I5=1 Measure corner 1 of the rectangle, set the corner in the zero point,
O1=16 O2=17 F2=150 and save in E16 and R17.
G621 I1=-3 X10 Y10 Z22 C1=10 L2=100 I5=1 Measure the top edge of the workpiece, set it in the zero point, and
O1=18 F2=150 save in E18.
M30 End of the program.

416 9 G600-G699 Measuring Cycles


G700-G799 Milling
Cycles
10.1 Machining and Positioning Cycles
10.1 Machining and Positioning Cycles
The machining cycle defines a machining process. A separate
positioning cycle defines the execution of the machining cycle at a
specific position.

Overview of machining and positioning cycles


Special Cycle
1 G700 Face turning (only in DIN/ISO)
2 G730 Multipass milling
3 G740 Thread milling inside
4 G741 Thread milling outside

Positioning cycles (patterns) (only in MDI)


1 G771 Operation on line
2 G772 Operation on quadrangle
3 G773 Operation on grid
4 G777 Operation on circle, enhancement of G77
5 G779 Operation at position, enhancement of G79

Drilling cycles
1 G781 Drilling/centring
enhancement of G81
2 G782 Deep-hole drilling, enhancement of G83
3 G783 Deep-hole drill. add. chip break.
enhancement of G83 (only in DIN/ISO)
4 G784 Tapping, enhancement of G84 (only in MDI)
5 G785 Reaming, enhancement of G85
6 G786 Boring, enhancement of G86
7 G790 Back-boring
8 G794 Tapping, interpolated, enhancement of G84 (only
in MDI)

Milling cycles
1 G787 Pocket milling, enhancement of G87
2 G788 Key-way milling, enhancement of G88
3 G789 Circular pocket milling, enhancement of G89
4 G797 Pocket finishing
5 G798 Key-way finishing
6 G799 Circular pocket finishing

418 10 G700-G799 Milling Cycles


10.1 Machining and Positioning Cycles
Introduction
Machining plane
Cycle programming is independent of the machining plane (G17, G18,
G19, and G7).
Tool axis and machining plane
The cycles are executed in the current main plane G17, G18, G19 or in
the inclined plane G7. The working direction of the cycle is determined
by the tool axis. The direction of the tool axis can be reversed with G67.
Procedure in DIN
The new machining cycles (special, drilling, and milling cycles) are only
executed by positioning cycle G79 at one position. Points (P1-P4) are
not allowed.

Positioning logic
In rapid traverse and, depending on G28, using positioning logic, the
tool moves to the the 1st setup clearance via he position (X, Y, Z,)
defined by the positioning cycle.

Mirroring and scaling


Mirroring and scaling must not be activated between a drilling/milling
cycle and a positioning cycle.

Deleting cycle data


Cycle data is deleted by M30, the CANCEL PROGRAM softkey, the
CNC RESET softkey, or by defining a new cycle.

Spindle activation
The spindle must be switched on for the cycle start. F and S can be
overwritten in the cycle definition.

Mirroring
If you are only mirroring one axis, the direction of rotation of the tool
changes. This does not apply during machining cycles.

Comments
Comments are not allowed in a block with a machining cycle. Before
calling up the cycle, you must program radius compensation G40.

Pre-position the tool so that there can be no collision with


the workpiece or clamping devices.

HEIDENHAIN MillPlus V600 419


10.1 Machining and Positioning Cycles
Explanation of addresses
The addresses described here are used in most cycles. Specific
addresses are described in the relevant cycle.
 X, Y, Z position of the defined machining geometry Machining
is executed at this position. If X, Y or Z is not entered, the current
tool position is used.
„ The tool moves to the starting point in rapid traverse and,
depending on G28, using positioning logic. If X, Y, Z are not
programmed, the current position is used as the starting point.
The first setup clearance (L1=) is taken into account in the tool
axis. With multipass milling (G730), the other axes are also
displaced.
 L depth (greater than 0) With multipass milling (G730), this is the
machining height: distance between programmed workpiece
surface and blank surface.
 R radius of circular pocket
 L1= 1st setup clearance at start of cycle
 L2= 2nd setup clearanceHeight above the 1st setup clearance. At
the end of the cycle, the tool moves to the 2nd setup clearance (if
entered).
 C1= cutting/plunging depth (> 0) Dimension by which the tool
plunges in each infeed. The depth (L) or machining depth (L) does
not have to be a multiple of the feed depth (C1=). The CNC moves
to the depth in one work pass if the feed depth is the same as or
greater than the depth (C1=>L-L3).

„ If a feed depth (C1=) is programmed for milling or machining


operations, this usually results in a residual cut that is smaller than
the programmed feed depth. For drilling, the last 2 cuts are
distributed equally if the residual cut > 0. This avoids a very small
last cut.
 D3= dwell Number of revolutions for which the tool stays at the
bottom of the hole for free cutting. (Minimum is 0 and maximum is
9.9.)
 F2= rapid plunging Traversing speed of tool when moving from
the setup clearance to the milling depth.
 F5= rapid retraction Traversing speed of tool when retracting
from the hole.
 F and S feed and spindle speed The addresses F and S are not
available in machining cycles within MDI. They must be
programmed in the FST menu.

420 10 G700-G799 Milling Cycles


10.2 G700 Face Turning

10.2 G700 Face Turning


The face turning cycle executes a single flat or conical turning
operation.

Support picture

Address description
 X radius
 F2= feed [mm/rev|inch/rev]
 L tool axis displacement
 I1= uncouple 0=no 1=yes
 S speed
The following addresses in the tool memory are used by the cycle:
 R adjustment radius Is automatically overwritten with the current
radius after face turning.
 A1= orientation angle for engaging Is automatically overwritten
with the current angle (0-359.999 degrees) after face turning.
 R1= minimum diameter (optional)
 R2= maximum diameter (optional)
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L0, I1=0

Application
G700 must not be programmed if:
„ G36 and/or G182 are active.
„ Tool T0 is programmed.
„ Spindle orientation at an angle must not be zero.
Resetting the radial facing slide
The maximum permitted speed can be used to reset the radial facing
slide to the starting diameter.

HEIDENHAIN MillPlus V600 421


10.2 G700 Face Turning Actual diameter reached
The programmed diameter is rounded so that it exactly matches one
of the 72 indexing positions of the clamp. The maximum deviation that
this causes is < (feed/72)/2, i.e. a 0.001 mm deviation for a feed rate
of 0.15 mm/rev.
Comment
G40, G72, G90, and G94 remain active after G700.
Mid-program startup
In the case of mid-program start-up, the head must be in the correct
position before the start of a G700 cycle. Therefore, the radius R and
angle A1 must be correctly entered in the tool table.
Speed and feed correction switch
The speed correction switch is not active. The feed correction switch
is active.
Display
During tool movement, the speed is displayed in the current S field.
At the end, the spindle position is always displayed in the range of
0-359.999 degrees.
The programmed feed remains unchanged. The current feed displays
the value zero or the feed of the traverse path in the tool axis.
The indexing of inward and outward movements is automatically
performed by the cycle.
M82 indexing of outward movement (in facing head). M80 indexing of
inward movement
Facing head
The facing head can be used as a boring head after being inserted into
the spindle. The bracket is fixed by the indexing device built into the
machine and, at the same time, the locking device between the
bracket and facing head is released. When the spindle rotates, the
radial facing slide is moved by a mechanical gearing of e.g. 0.1 mm/
causes. The traversed path is determined by the rotary speed of the
spindle. Synchronized movement of the spindle and tool axis (Z)
enables cones and chamfers to be turned. The spindle is rotated
counter-clockwise to reset.

422 10 G700-G799 Milling Cycles


10.2 G700 Face Turning
Procedure
1 Set facing head adjustment radius and enter it into the tool
memory.
2 Insert the facing head into the spindle (check the engagement
angle at first insertion).
3 Check the orientation and indexing and retract if necessary.
4 Spindle turns, thus executing a facing operation.
5 Tool moves to angle positions in multiples of 5 degrees.
6 The adjustment radius and angle of orientation are automatically
written to the tool memory.

Example
Face turning
G700 X50 L5 F=0.05 S600
G700 X70
G0 Z100
G700 X40 I1=1 S1200

Tool memory: tool radius R20


Tool memory: orientation angle A1=0
G700 Chamfer 5 mm from diameter 40 to 50
G700 Facing movement at diameter 70
G0 Lift
G700 Reset to diameter 40 and disengage

HEIDENHAIN MillPlus V600 423


10.3 G730 Multipass Milling
10.3 G730 Multipass Milling

Definition of a multipass milling cycle in a single program block.

Support picture

Address description
 B1= B2= side length
 L heightMachining height >0
 L1=, L2= setup clearance
 L3= finishing allowance
 C1= plunging depth
 C2= proportional cutting width Maximum percentage of the tool
diameter to be used as the cutting width on each pass. The total
width is divided into equal sections. The last cut goes 10% of the
mill diameter over the edge of the material.
 C3= radial setup clearance
 I1= 1=meander 2=M.+rapid 3=parallel Method:
„ I1=1 meander
„ I1=2 meander and transverse movement outside material
„ I1=3 machining in same direction. The directions of B1= and B2=
determine whether climb or up-cut milling is used.
 F2= rapid for plunging
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, L3=0, C1=L-L3, C2=67%, C3=5, I1=1

424 10 G700-G799 Milling Cycles


10.3 G730 Multipass Milling
Procedure
Method: meander
1 Rapid traverse to the 1st setup clearance above workpiece
surface. The starting point is the radius of the tool plus the radial
setup clearance (C3=) in addition to the programmed position.
2 Rapid plunging movement (F2=) by the feed depth (C1=) to the
next depth.
3 The tool then mills one pass in the principal axis. The end point of
this movement is by the cutting width (C2= maximum 50% of the
milling radius) in the material. In the last cut, the tool travels
outside the material by the amount of the radial setup clearance.
4 The tool moves to the starting point of the next pass with
transverse milling feed. In the last pass, it moves by 10% of the
milling cutter radius outside the material.
5 Repeat steps 3 and 4 until the specified surface has been
machined in full.
6 Repeat steps 1 to 6 until the depth (L) has been reached.
7 At the end, a rapid traverse movement to the 1st plus 2nd setup
clearance (L1= plus L2=) is performed.
Method: meander and transverse movement outside of material
1 With this method, the end point of each pass is located outside the
material by the amount of the radial setup clearance. The tool
executes the transverse movement in rapid traverse.
Method: milling in same direction.
1 With this method, the tool mills in the same direction on each pass
(climb or up-cut milling). The end point of each pass is outside the
material by the amount of the radial setup clearance. The CNC
retracts the tool by the 1st setup clearance (L1=) at the end of a
pass. The tool then moves back along the principal axis in rapid
traverse before executing the rapid transverse movement.

Example
Multipass milling
G730 I1=2 B1=100 B2=80 L10 L1=5 C1=3 C2=73 C3=1 F100
G79 X-50 Y-50 Z0

G730 Define multipass milling cycle


G79 Execute multipass milling cycle

HEIDENHAIN MillPlus V600 425


10.4 G740 Thread Milling Inside
10.4 G740 Thread Milling Inside

Internal thread milling with a thread mill

Support picture

Address description
 D diameter Nominal thread diameter.
 F2= pitch, +/-=thread direction The sign determines the thread
pitch: right thread ( + ) and left thread ( - ). Range: +/- 99.9999 mm.
 L= depth Distance between tool surface and thread base.
 I2= number of threads per step Number of thread ridges per tool.
In between, the tool is shifted by I2 times the pitch.
„ I2=1 one ridge. Continuous helical path over the entire length of
the thread
„ I2>1 multiple ridges. Multiple helical paths with approach and
departure.
 L1= 1st setup clearance 1 distance between the tool tip and tool
surface.
 L2= 2nd setup clearance 2 distance in tool direction whereby no
collision can occur between the tool and clamp.
 I1= milling 1=climb -1=conventional Type of milling:
„ +1 = climb milling
„ -1 = up-cut milling
 F5= plunge/retract rapid Maximum speed during infeed or
retraction. Can be influenced by rapid traverse override.
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
I1=1, L1=F2, L2=0, F5=F

426 10 G700-G799 Milling Cycles


10.4 G740 Thread Milling Inside
Application
Tool for thread-milling
The thread-milling tool requires a specific compensation value, which
is specified in the catalog of the tool manufacturer. This value must be
entered in the allowance radius (R4=) in the tool table.
Note that the tool moves beyond the programmed depth during
tangential approach or departure, and a collision can occur in the case
of insufficient clearance.
Tangential infeed and retraction with G740 and G741 is calculated as
follows. Tangential infeed and retraction is executed with a semicircle
where radius = pitch. Lead cut/overflow = F2 * F2 / 2 * helix
diameter (helix diameter thread diameter / 2 - tool diameter). The helix
radius is usually smaller than the pitch, in which case the overflow is
less than half of the pitch.
Mill machining starts in the tool axis at the starting point or at
the thread base. This direction is determined by the pitch direction
(F2=+/-) and mill direction (I1=).
For tools rotating right, the relationship between the entry
parameters is as follows::

Mill direction (I1)


Internal thread Pitch (F2=) Working direction of tool axis
+1 climb, -1 up-cut
+ right thread I1=+1 Z+

+ right thread I1=-1 Z-

- left thread I1=+1 Z-

- left thread I1=-1 Z+

Mill direction (I1)


External thread Pitch (F2=) Working direction of tool axis
+1 climb, -1 up-cut
+ right thread I1=+1 Z-

+ right thread I1=-1 Z+

- left thread I1=+1 Z+

- left thread I1=-1 Z-

Feed
Normally, the feed is based on the tool center. In this case, the feed is
based on the tool radius (see: F1=, constant cut feed with radius
compensation of circles).

HEIDENHAIN MillPlus V600 427


10.4 G740 Thread Milling Inside
Procedure
1 The thread mill is positioned at the setup clearance above the tool
surface in rapid traverse.
2 The thread mill moves to the starting position in rapid traverse.
This position is determined by the thread pitch (F2=), the running
direction (I1=), and the number of thread cuts per step (I2=).
3 The mill executes a compensation movement to assume the
correct starting position. The mill then moves tangentially to the
thread radius in a helix.
4 Depending on the entry parameter "Number of thread cuts per
step" (I2=), the tool mills the thread in one or more cuts or in a
continuous helix movement.
5 At the end, the mill moves tangentially away from the tool in a
helix. The mill then returns to the starting position at an increased
feed rate.
6 At the end of the cycle, the tool returns to the 1st and, if
programmed, 2nd safety clearance in rapid traverse.

Note
By default, the mill direction is from bottom to top (see example).
Depending on the parameters I1=/F2, the mill direction can also be
from top to bottom.

Example
Internal thread milling
T2 M6
S800 F120 M3
G740 D=60 F2=5,5 L16 I2=1 F5=1500 I1=1 L1=5 F=200
G79 X0 Y0 Z0

428 10 G700-G799 Milling Cycles


10.5 G741 Thread Milling Outside

10.5 G741 Thread Milling Outside


External thread milling with a thread mill

Support picture

Address description
 D diameter Nominal thread diameter.
 F2= pitch, +/-=thread direction The sign determines the thread
pitch: right thread ( + ) and left thread ( - ). Range: +/- 99.9999 mm.
 L depth Distance between tool surface and thread base.
 I2= number of threads per step Number of thread ridges per tool
„ I2=1 one ridge. Continuous helical path over the entire thread
length
„ I2>1 multiple ridges. Multiple helical paths with approach and
departure. In between, the tool is shifted by I2 times the pitch.
 L1= 1st setup clearance 1 distance between the tool tip and tool
surface.
 L2= 2nd setup clearance 2 distance in tool direction whereby no
collision can occur between the tool and clamp.
 I1= milling 1=climb -1=conventional Type of milling:
„ +1 = climb milling
„ -1 = up-cut milling
 F5= plunge/retract rapid Maximum speed during infeed or
retraction. Can be influenced by rapid traverse override.
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
I1=1, L1=F2, L2=0, F5=F

Example
External thread milling
T2 M6
S800 F120 M3
G740 D=60 F2=5,5 L16 I2=1 F5=1500 I1=1 L1=5 F=200
G79 X0 Y0 Z0

HEIDENHAIN MillPlus V600 429


10.6 G771 Operation on Line
10.6 G771 Operation on Line

Execution of a machining cycle at points located at a fixed equal


distance on a line.

Support picture

Address description
 B1= spacing
 K1= number of operations
 X, Y, Z position
 P1= point definition number
 A1= angle
 A5= angle of rotation
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
A1=0, A2=90, A5=0.

Application
Machining position
The machining position is defined via X,Y,Z or point definition number
P1=.

Pocket angle
The pocket angle is defined by A5.

Procedure
1 Rapid traverse to position.
2 The machine cycle previously defined is executed at this position.
3 The next position is approached after execution.
4 Repeat procedure (2-3) until all positions (K1=) have been
machined.

430 10 G700-G799 Milling Cycles


10.6 G771 Operation on Line
Example

G781 L30 F100 F5=6000


G771 X50 Y20 Z0 B1=40 K1=4

G781 Define bore cycle


G771 Execute bore cycle at 4 positions

HEIDENHAIN MillPlus V600 431


10.7 G772 Operation on
10.7 G772 Operation on Quadrangle
Quadrangle
Execution of a machining cycle at points located at fixed equal
distances on a quadrangle.

Support picture

Address description
 B1= longitudinal spacing
 K1= number of longitudinal operations
 B2= transverse spacing
 K2= number of transverse operations
 X, Y, Z position
 P1= point definition number
 A1= starting angle
 A2= ending angle
 A5= angle of rotation
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
A1=0, A2=90, A5=0.

Application
Machining position
The machining position is defined via X,Y,Z or point definition number
P1=.

Pocket angle
The pocket angle is defined by A5.

Procedure
1 Rapid traverse to position.
2 The machine cycle previously defined is executed at this position.
3 The next position is approached after execution. The direction of
the rectangle is determined by angle A1=.
4 Repeat procedure (2-3) until all positions (K1=, K2=)) have been
machined.

432 10 G700-G799 Milling Cycles


10.7 G772 Operation on Quadrangle
Example

G781 L30 F100 F5=6000


G772 X50 Y20 Z0 B1=40 K1=4 B2=30 K2=3

G781 Define bore cycle


G772 Execute bore cycle on rectangle with 10 positions

HEIDENHAIN MillPlus V600 433


10.8 G773 Operation on Grid
10.8 G773 Operation on Grid

Execution of a machining cycle at points located at fixed equal


distances on a grid.

Support picture

Address description
 B1= longitudinal spacing
 K1= number of longitudinal operations
 B2= transverse spacing
 K2= number of transverse operations
 X, Y, Z position
 P1= point definition number
 A1= starting angle
 A2= ending angle
 A5= angle of rotation
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
A1=0, A2=90, A5=0.

Application
Machining position
The machining position is defined via X,Y,Z or point definition number
P1=.

Pocket angle
The pocket angle is defined by A5.

Procedure
1 Rapid traverse to position.
2 The machine cycle previously defined is executed at this position.
3 The next position is approached after execution. The positions are
approached in zigzag movements in the start direction, as
determined by angle A1=.
4 Repeat procedure (2-3) until all positions (K1=, K2=)) have been
machined.

434 10 G700-G799 Milling Cycles


10.8 G773 Operation on Grid
Example

G781 L30 F100 F5=6000


G773 X50 Y20 Z0 B1=40 K1=4 B2=30 K2=3

G781 Define bore cycle


G773 Execute bore cycle on grid with 10 positions

HEIDENHAIN MillPlus V600 435


10.9 G777 Operation on Circle
10.9 G777 Operation on Circle

Execution of a machining cycle at points located at fixed equal


distances on a circular arc or full circle.

Support picture

Address description
 R radius
 K1= number of operations
 X, Y, Z center position
 B2= polar angle
 L2= polar length
 P1= point definition number
 A1= starting angle
 A2= ending angle
 A5= angle of rotation
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
A1=0, A2=360.

Application
Machining position
The machining position is defined via X,Y,Z,B2,L2 or point definition
number P1=.

Machining direction
If A2= negative, the holes are clockwise.
If A2= positive, the holes are counter-clockwise.

Pocket angle
If A5 is not programmed, the pocket angles opposite the principal axis
are the same.
If A5=0, then the pocket angle turns with the circle.
If A5 is not equal to 0, an extra rotation is added.

436 10 G700-G799 Milling Cycles


10.9 G777 Operation on Circle
Procedure
1 Rapid traverse to position.
2 The machine cycle previously defined is executed at this position.
3 The next position is approached after execution. The direction of
the positions is determined by A1= and A2=.
4 Repeat procedure (2-3) until all positions (K1=) have been
machined.

Example
Cycle on a full circle

G781 L30 F100 F5=6000


G777 X50 Y20 Z0 R=25 K1=6 A1=0 A2=300

G781 Define bore cycle.


G777 Execute bore cycle on circle with 6 points.
„ K1=6 (number of holes)
„ A1=0 (starting angle)
„ A2=300 (end angle)

Direction of bore holes on a circular arc

G781 L30 F100 F5=6000


G777 X0 Y0 Z0 R25 A1=180 A2=-150 K1=4
G777 X0 Y0 Z0 R25 A1=-180 A2=210 K1=4

G781 Define bore cycle.


G777 Repeat the cycle four times on the arc; move from
180 degrees to 30 degrees in a clockwise (CW)
direction.
G777 Repeat the cycle four times on the arc; move from
180 degrees to 30 degrees in a counter-clockwise
(CCW) direction.

Angle of the slots on a circular arc

G788 B1=16 B2=8 L5 F5=6000


G777 X0 Y0 Z0 R25 A1=90 A2=180 K1=4
G777 X0 Y0 Z0 R25 A1=90 A2=180 K1=4 A5=0

G788 Define slot cycle.


G777 The slots all have the same direction.
G777 The slot angle is dependent on the position on the
circular arc.

HEIDENHAIN MillPlus V600 437


10.10 G781 Drilling/Centring
10.10 G781 Drilling/Centring

Definition of a simple drilling or centring cycle with possible chip break


in a single program block.

Support picture

Address description
 L depth
 L1=, L2= setup clearance
 C1= cutting depth
 D3= dwell [revolutions]
 S spindle speed
 F5= retract rapid
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, C1=L, D3=0.

Procedure
1 Rapid traverse to 1st setup clearance (L1=).
2 Drill with drilling advance by the cutting depth (C1=) or depth (L).
3 Rapid retraction (F5=) by 0.2 mm.
4 Repeat procedure (2-3) until the depth (L) has been reached.
5 At the bottom of the hole, dwell (D3=) for free cutting.
6 Rapid retraction (F5=) to the 1st setup clearance (L1=) and rapid
traverse back to the 2nd setup clearance (L2=).

438 10 G700-G799 Milling Cycles


10.10 G781 Drilling/Centring
Example
Drilling two holes

G781 L30 F100 F5=6000


G779 X50 Y20 Z0
G779 X50 Y80 Z0

G781 Define bore cycle.


G779 Execute drilling cycle at point 1.
G779 Execute drilling cycle at point 2.

HEIDENHAIN MillPlus V600 439


10.11 G782 Deep-Hole Drilling
10.11 G782 Deep-Hole Drilling

Definition of a deep-hole drilling cycle with reducing plunging depth for


chip break and regular chip removal in a single program block.

Support picture

Address description
 L depth
 L1=, L2= setup clearance
 C1= cutting depthIf the cutting depth (C1=) is not programmed or
C1= is greater than or equal to the depth (L), the addresses C2=,
C3=, C5=, C6=, C7=, and K1= are meaningless.
 C3= minimum cutting depth
 D3= dwell [revolutions]
 S spindle speed
 F2= in depth rapid
 F5= retract rapid
 F feed
With distributed cuts for chip break and/or chip removal
 C2= cutting depth reduction Value by which the feed depth
reduces after every infeed. (C1 = C1 - n * C2). The cutting depth
(C1=) is always greater than or equal to the minimum feed depth
(C3=).
 C5= retract distance for chip break (incremental): Distance by
which the tool retracts during chip break.
Chip removal after multiple cuts
 K1= number of steps before retract Number of advance
movements (C1=) before the tool retracts from the hole for chip
removal. For chip breaking without removal, the tool retracts by the
retraction distance (C5=) in each case. No chip removal takes place
if K1=0.
 C6= safety distance after retract Safety distance for rapid
positioning when the tool returns to the current feed depth after
being retracted from the hole. This value applies to the first infeed.
 C7= safety dist. after last retract Safety distance for rapid
positioning when the tool returns to the current feed depth after
being retracted from the hole. This value applies to the last infeed.
„ If C6= is not equal to C7=, the setup clearance between the first
and last cuts is gradually reduced.
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

440 10 G700-G799 Milling Cycles


10.11 G782 Deep-Hole Drilling
Default setting
L1=1, L2=0, C1=L, C2=0, C3=C2, C5=0.1, C6=0.5, C7=0.5, K1=1,
D3=0

Application
Rules for distributed cuts
1 The cutting depth is always limited by the drill depth (L).
2 If C3 is programmed and there are 2 cuts, the first drilling cut can
be reduced.
3 Every cut is smaller than or equal to the preceding one.
4 If there are more than 2 cuts and a final cut, the final cut and the
one preceding it are executed in 2 equal steps. This avoids a very
small final cut.
Examples of distributed cuts

Programming Drilling cuts Rule


One or two drilling cuts:
G782 L10 C1=15 10 Rule 1
G782 L10 C1=9 91
G782 L10 C1=9 C3=2 82 Rule 2
G782 L10 C1=7 C3=6 82 Rules 2 and 3
More than 2 drilling cuts
G782 L25 C1=7 7 7 5.5 5.5 Rule 4
G782 L25 C1=7 C2=2 75322222
G782 L24 C1=7 C2=2 7 5 3 2 2 2 1.5 1.5 Rule 4
G782 L29 C1=7 C2=2 C3=3 7 5 3 3 3 3 2.5 2.5 Rule 4

Machining sequence
Input: C1=..., K1=large (see figure)
Input: C1=..., K1=3 (see figure)

HEIDENHAIN MillPlus V600 441


10.11 G782 Deep-Hole Drilling
Procedure
1 Rapid traverse to 1st setup clearance (L1).
2 Drill with drilling advance by the cutting depth (C1=).
3 With chip break: reverse movement by the retract distance (C5=).
With chip removal: rapid retraction (F5=) upwards followed by
rapid plunging (F2=) as far as the safety distance (C6= up to C7=
down).
4 The feed depth (C1=) is then reduced by the cutting depth
decrement (C2=). The minimum feed depth is equal to C3=.
5 Repeat procedure (2-4) until the drill depth (L) has been reached.
6 At the bottom of the hole, dwell (D3=) for free cutting.
7 Rapid retraction (F5=) to the 1st setup clearance (L1=) and rapid
traverse back to the 2nd setup clearance (L2=).

Example
Deep-hole drilling

G782 L150 L1=4 C1=20 C2=2 C3=6


G79X X50 Y50 Z0

G782 Define deep-hole drilling cycle


G79 Execute deep-hole drilling cycle

442 10 G700-G799 Milling Cycles


10.12 G783 Deep-Hole Drill. Add

10.12 G783 Deep-Hole Drill. Add Chip Break


Chip Break
Definition of a deep-hole drilling cycle with reducing feed depth for
chip removal and a fixed chip break distance in a single program block.

Support picture

Address description
 L depth
 L1=, L2= setup clearance
 C1= cutting depthIf the cutting depth (C1=) is not programmed or
C1= is greater than or equal to the depth (L), the addresses C2=,
C3=, C4=, C5=, C6=, and C7= are meaningless.
 C2= cutting depth reduction
 C3= minimum cutting depth
 C4= drilling depth before chip break Advance after which a chip
break is executed. No chip break if C4>C1 or is not programmed
(addresses C6= and C7= are meaningless).
 C5= retract distance for chip break
 C6= safety distance after retract Safety distance for rapid
positioning when the tool returns to the current feed depth after
being retracted from the hole. This value applies to the first infeed.
 C7= safety dist. after last retract Safety distance for rapid
positioning when the tool returns to the current feed depth after
being retracted from the hole. This value applies to the last infeed.
„ If C6= is not equal to C7=, the setup clearance between the first
and last cuts is gradually reduced.
 D3= dwell [revolutions]
 S spindle speed
 F2= in depth rapid
 F5= retract rapid
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, C1=L, C2=0, C3=C1, C4=C1, C5=0.1, C6=0.5, C7=C6,
D3=0

HEIDENHAIN MillPlus V600 443


10.12 G783 Deep-Hole Drill. Add Chip Break
Application
Cutting depth
If more than 2 cuts are required, the final cut and the one preceding it
are executed in 2 equal steps. This avoids a very small final cut.

Machining sequence
Input: C1=..., C4=C1 (see figure)
Input: C1=..., C4<C1 (see figure)

Procedure
1 Rapid traverse to the 1st setup clearance.
2 No chip break (C4>=C1 or C4 not programmed): Drill with drilling
advance by the cutting depth (C1=).
With chip break (0 < C4 < C1): Drill by depth (C4=). Then retract by
the retraction distance (C5=). Repeat until the cutting depth (C1=)
is reached.
3 Rapid retraction (F5=) upwards followed by rapid plunging (F2=) as
far as the safety distance (C5= up to C7= down).
4 The feed depth (C1=) is then reduced by the cutting depth
decrement (C2=). The minimum feed depth is equal to C3=.
5 Repeat procedure (2-4) until the drill depth (L) has been reached.
6 At the bottom of the hole, dwell (D3=) for free cutting.
7 Rapid retraction (F5=) to the 1st setup clearance (L1=) and rapid
traverse back to the 2nd setup clearance (L2=).

Example
Deep-hole drilling with chip break

G783 L150 L1=4 C1=20 C=5 C2=2 C3=6 C5=0.5 F200


G79 X50 Y50 Z0

G783 Define deep-hole drilling cycle.


G79 Execute deep-hole drilling cycle.

444 10 G700-G799 Milling Cycles


10.13 G784 Tapping

10.13 G784 Tapping


Definition of a tapping cycle in a single program block.

Support picture

Address description
 L depth (> 0)
 F2= pitch
 L1= 1st setup clearance Reference value: 4x pitch.
 L2= 2nd setup clearance
 D3= dwell time [s] Time in seconds that the tool remains at the
hole bottom.
 C1= cutting depth Advance after which a chip break is executed. No
algebraic sign.
 C5= retract distance for chip break The tool is retracted by the
specified distance during chip breaking. Entering 0 means that it is
fully retracted from the hole (to the safety clearance) for chip
removal. No algebraic sign.
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, D3=0.

Application
The tool must be clamped in a floating tap holder. A floating tap holder
compensates for the advance and speed tolerances during machining.
At the end of the cycle, the coolant and spindle are restored to their
pre-cycle status.
The advance is determined by the speed. Speed override is active
during tapping. Feed override is not active.
When a G784-cycle is called using G79, the CNC must be set to
G94-mode (feed in mm/min), not G95-(feed in mm/rev).
The machine and CNC must be prepared for the G784 cycle by the
machine manufacturer.

HEIDENHAIN MillPlus V600 445


10.13 G784 Tapping
Procedure
1 Rapid traverse in the spindle axis to the 1st setup clearance (L1=).
2 Tapping with pitch (L3=) to depth (L).
3 After the dwell time (D3=), the direction of spindle rotation is
reversed.
4 The tool is retracted with pitch (L3=) to the 1st setup clearance
(L1=) and then rapidly retracted to the 2nd setup clearance (L2=).
5 At the end, the direction of spindle rotation is reversed once more.

Example
Tapping

G784 L22 L1=9 L3=2.5


G79 X50 Y50 Z0

G784 Define tapping cycle.


A floating tap holder must be used.
G79 Execute the cycle at the programmed position.

446 10 G700-G799 Milling Cycles


10.14 G785 Reaming

10.14 G785 Reaming


Definition of a reaming cycle in a single program block.

Support picture

Address description
 L depth
 L1=, L2= setup clearance
 I1= spindle stop 0=yes 1=no
„ I1=0 rapid retraction and stationary spindle.
„ I1=1 retraction with feed and rotating spindle.
 D3= dwell [revolutions]
 S spindle speed
 F5= retract rapid Rapid traverse (I1=0) or feed (I1=1) retraction:
Traversing speed of the tool when retracting from the hole in mm/
min.
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, I1=0, D3=0

Procedure
1 Rapid traverse to 1st setup clearance (L1=).
2 Reaming with feed F down to depth (L).
3 Dwell at bottom of hole (D3=).
4 Rapid retraction (F5=).
„ To the setup clearance (L1=)
„ To the 2nd setup clearance (L2=) in rapid traverse

HEIDENHAIN MillPlus V600 447


10.14 G785 Reaming
Example
Reaming

G785 L29 D3=2 F100 F5=2000


G79 X50 Y50 Z0

G785 Define reaming cycle.


G79 Execute the reaming cycle at the programmed
position.

448 10 G700-G799 Milling Cycles


10.15 G786 Boring

10.15 G786 Boring


Definition of a reverse boring cycle with the option of disengaging an
oriented spindle in a single program block.

Support picture

Address description
 L depth
 L1=, L2= setup clearance
 C1= retract distance from side Distance by which the tool is
retracted from the wall when disengaging.
 D orientation angle tool tip Angle (absolute) at which the tool
positions itself before disengaging (I1=2 only). The disengage
direction is -X in G17/G18 and -Y in G19.
 D3= dwell [revolutions]
 I1= retract 0=M5 1=M3/M4 2=M19
„ I1=0 Retract with with rapid traverse and stationary spindle
without disengaging
„ I1=0 Retract with with feed and rotating spindle without
disengaging
„ I1=2 Retract with oriented spindle (M19) and in rapid traverse.
 S spindle speed
 F5= retract rapid Rapid traverse (I1=0 or I1=2) or feed (I1=1)
retraction: Traversing speed of the tool when retracting from the
hole in mm/min.
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, C1=0.2, D=0, D3=0, I1=0, F5=rapid traverse (I1=0 or
I1=2) or F5=F (I1=1)

Application
At the end of the cycle the spindle status that was active before the
cycle is reactivated.

Note: The tool tip must be aligned (MDI) such that it


points to the positive principal axis. The angle displayed
must be entered as the orientation angle (D) so that the
tool moves away from the edge of the hole in the direction
of the negative principal axis. The disengage direction is -
X in G17/G18 and -Y in G19.

HEIDENHAIN MillPlus V600 449


10.15 G786 Boring
Procedure
1 Rapid traverse to 1st setup clearance (L1=).
2 Reverse boring with feed (F) down to depth (L).
3 Dwell (D3=) at bottom of hole with running spindle for free cutting.
4 With I1=2, the tool performs a spindle orientation (D=) and a
reverse movement along the principal axis by the retraction
distance (C1=).
5 Rapid retraction (F5=) to the 1st setup clearance (L1=) and rapid
traverse back to the 2nd setup clearance (L2=).

Example
Boring

G786 L27 L1=4 L2=10 D3=1 F100


G79 X50 Y50 Z0

G786 Define boring cycle.


G79 Execute the cycle at the programmed position.

450 10 G700-G799 Milling Cycles


10.16 G787 Pocket Milling

10.16 G787 Pocket Milling


Definition of a pocket milling cycle for rough machining of rectangular
pockets in a single program block. This cycle allows oblique plunging
and mills in a continuous spiral path.

Support picture

Address description
 B1= 1st side length Length of the pockets in the principal axis
 B2= 2nd side length Width of the pockets in the minor axis
 L depth
 L1=, L2= setup clearance
 L3= finishing allowance bottom
 B3= finishing allowance sides
 C1= plunging depth
 C2= proportional cutting width Percentage of the tool diameter
to be used as the cutting width on each pass. The total width is
divided into equal sections.
 R rounding radius Radius for the pocket corners. If radius R=0, the
rounding radius is the same as the tool radius.
 R1= proportional helix radius Percentage of the tool radius to be
used as the cutting width (>0) for oblique plunging.
 A3= plunging angle Angle (0..90°) at which the tool can plunge into
the workpiece. The plunging angle is adjusted so that the tool
always plunges with a whole number of rectangular movements. It
only plunges vertically at 90º.
 I1= milling 1=climb -1=conventional
 S spindle speed
 F2= feed for plunging
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, L3=0, B3=0, C1=L, C2=67%, R= tool radius, R1=80%,
A3=90, I1=1, F2=0.5*F for vertical plunging, and F2=F for oblique
plunging.

HEIDENHAIN MillPlus V600 451


10.16 G787 Pocket Milling
Application
B1= and B2= must be greater than 2*(tool radius + finishing allowance
for sides B3).
For finishing, the dimensions L3 and B3 must be entered.

Procedure
1 Rapid traverse to 1st setup clearance (L1=) over the pocket center.
2 If the plunging angle A3=90º, the tool advances with feed (F2=) to
the first feed depth (C1=). If the plunging angle A3<90º, the tool
advances obliquely to the first feed depth (C1=), with plunging
feed and a whole number of rectangular movements.
3 Machining with feed (F) in the positive direction of the long side, in
a flowing movement from inside to outside.
4 At the end of this process, the tool is retracted from the wall and
the floor in a tangent to the helix and moved rapidly to the center.
5 Repeat procedure (2-4) until the depth (L) has been reached.
6 At the end, a rapid traverse movement to the 1st plus 2nd setup
clearance (L1= plus L2=) is performed.

Example
Pocket milling

G787 B1=150 B2=60 L6 L1=1 A3=5 C1=3 C2=60 R20 I1=1 F200
G79 X160 Y120 Z0

G787 Define pocket milling cycle.


G79 Execute the cycle at the programmed position.

452 10 G700-G799 Milling Cycles


10.17 G788 Key-Way Milling

10.17 G788 Key-Way Milling


Definition of a pocket milling cycle for rough machining and/or
finishing of a slot in a single program block. This cycle allows oblique
plunging.

Support picture

Address description
 B1= 1st side length Length of the slot in the principal axis
 B2= 2nd side length Width of the slot in the minor axis. If the slot
width is the same as the tool diameter, only roughing is performed.
 L depth
 L1=, L2= setup clearance
 B3= finishing allowance sides
 C1= plunging depth roughing
 A3= plunging angle Maximum angle (0..90°) at which the tool can
plunge into the workpiece. It only plunges vertically at 90º.
 I1= milling 1=climb -1=conventional
 0=roughing 1=roughing + finishing Roughing or finishing:
„ 0: only roughing
„ 1: roughing and finishing.
 S spindle speed
 F2= feed for plunging
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, B3=0, C1=L, A3=90, I1=1, I2=0, F2=0.5*F for vertical
plunging and F2=F for oblique plunging.

HEIDENHAIN MillPlus V600 453


10.17 G788 Key-Way Milling
Application
When roughing with oblique plunging, the tool performs reciprocating
plunges to cut the material from one end of the slot to the other. Pilot
drilling is therefore not necessary.
Vertical plunging is always performed into the end of the slot on the
negative side. Pilot drilling is required at this point.
The diameter of the milling cutter must be no greater than the width
of the slot and no smaller than a third of the slot width.
The cutter diameter must be smaller than half the slot length;
otherwise the CNC cannot perform a reciprocating plunge.
For finishing, the dimension (B3=) must be entered.

Procedure
Roughing:
1 Rapid traverse to the 1st setup clearance (L1=) and into the center
of the left circle.
2 If the plunging angle A3=90º, the tool advances with feed (F2=) to
the first feed depth (C1=) and then with feed F into the center of
the right circle. If the plunging angle A3<90º, the tool advances
obliquely and with plunging feed (F2=) into the center of the right
circle. The tool then moves back to the center of the left circle,
again plunging obliquely. These steps are repeated until the cutting
depth (C1=) is reached.
3 At the milling depth, the tool moves to the other end of the slot and
then machines the slot shape until the finishing dimension is
reached.
4 Repeat procedure (2–3) until the programmed depth (L) has been
reached.
Finishing:
5 The tool moves tangentially to the contour in the left or right circle
of the slot and finishes it using climb milling (I1=1).
6 At the end of the contour, the tool retracts tangentially from the
contour and floor to the center of the slot.
7 At the end, a rapid traverse movement to the 1st plus 2nd setup
clearance (L1= plus L2=) is performed.

454 10 G700-G799 Milling Cycles


10.17 G788 Key-Way Milling
Example
Key-way milling

G788 B1=150 B2=30 L6 L1=1 A3=5 C1=3 I1=1 I2=0 F200


G79 X20 Y20 Z0

G788 Define the key-way milling cycle, parallel to the


X-axis.
G79 Execute the cycle at the programmed position.

HEIDENHAIN MillPlus V600 455


10.18 G789 Circular Pocket Milling
10.18 G789 Circular Pocket Milling

Definition of a pocket milling cycle for rough machining of circular


pockets in a single program block. This cycle allows oblique plunging
and mills a continuous spiral path.

Support picture

Address description
 R radius
 L depth
 L1=, L2= setup clearance
 L3= finishing allowance bottom
 B3= finishing allowance sides
 C1= plunging depth
 C2= proportional cutting width Percentage of the tool diameter
to be used as the cutting width on each pass. The total width is
divided into equal sections.
 R1= proportional helix radius Percentage of the tool radius to
be used as the cutting width (>0) for oblique plunging.
 A3= plunging angle Angle (0..90°) at which the tool can plunge into
the workpiece. It only plunges vertically at 90º
 I1= milling 1=climb -1=conventional
 S spindle speed
 F2= feed for plunging
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, L3=0, B3=0, C1=L, C2=67%, R1=80%, A3=90, I1=1,
F2=0.5*F for vertical plunging and F2=F for oblique plunging.

Application
R must be greater than 2*(tool radius + finishing allowance for sides
B3=).
For finishing, the dimensions L3 and B3 must be entered.

456 10 G700-G799 Milling Cycles


Procedure

10.18 G789 Circular Pocket Milling


1 Rapid traverse to 1st setup clearance (L1=) over the pocket center.
2 If the plunging angle A3=90º, the tool advances with feed (F2=) to
the first feed depth (C1=).
If the plunging angle A3<90º, the tool advances obliquely to the
first feed depth (C1=), with plunging feed and a number of circular
movements.
3 Machining with feed (F) in an outward-moving spiral.
4 At the end of this process, the tool is retracted from the wall and
the floor in a tangent to the helix and moved rapidly to the center.
5 Repeat procedure (2-4) until the depth (L) has been reached.
6 At the end, a rapid traverse movement to the 1st plus 2nd setup
clearance (L1= plus L2=) is performed.

Example
Circular pocket milling

G789 R0 L6 L=1 A3=5 C1=3 C2=65 I1=1 F200


G79 X160 Y20 Z0

G789 Define pocket milling cycle.


G79 Execute the cycle at the programmed position.

HEIDENHAIN MillPlus V600 457


10.19 G790 Back-Boring
10.19 G790 Back-Boring

Definition of a back-boring cycle in a single program block. The cycle


operates only with reverse boring bars to create counterbores on the
underside of the workpiece.

Support picture

Address description
 L counterbore depth
 L3= material thickness
 C1= eccentricity Eccentricity of the boring bar (to be taken from
the tool data sheet).
 L1=, L2= setup clearance
 C2= cutting edge height Distance from bottom edge of boring bar
to main cutter (to be taken from the tool data sheet).
 D orientation angle tool tip Angle (absolute) at which the tool is
positioned before plunging into and retracting out of the hole. The
disengage direction is -X in G17/G18 and -Y in G19.
 D3= dwell [revolutions]
 S spindle speed
 F5= retract rapid
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, C2=0, D=0, D3=0.2, F5=rapid traverse.

458 10 G700-G799 Milling Cycles


10.19 G790 Back-Boring
Application
Enter the tool length so that the cutting plate of the boring bar is
measured.
The CNC takes the height of the cutting edge (C2=) into account when
calculating the starting point.
At the end of the cycle, the spindle status that was active before the
cycle is reactivated.

Danger of collision!
The tool tip must be aligned (MDI) such that it points to the
positive principal axis. The angle displayed must be
entered as the orientation angle (D) so that the tool moves
away from the edge of the hole in the direction of the
negative principal axis. The disengage direction is -X in
G17/G18 and -Y in G19.

Procedure
1 Rapid traverse to 1st setup clearance (L1=).
2 Spindle orientation to the D position and tool offset by the
eccentricity (C1=).
3 Rapid retract (F5=) plunging into the pre-drilled hole until the
cutting edge is at the 1st setup clearance (L1=) below the bottom
of the workpiece.
4 Movement to the center of the hole, switch on spindle and
coolant, and machine at countersinking feed to the specified
depth.
5 At the bottom of the hole, the tool dwells with a running spindle
for free cutting.
6 The tool then moves out of the hole, performs spindle orientation,
and is once again displaced by the eccentricity (C1=).
7 At the end, rapid retraction (F5=) to the 1st setup clearance (L1=)
and rapid traverse to the 2nd setup clearance (L2=)

HEIDENHAIN MillPlus V600 459


10.19 G790 Back-Boring
Example
Back boring

T1 M6
G790 L3=15 L8 L1=1 C1=3 C2=4 F100
G79 X30 Y40 Z0

T1 Insert tool.
Tool radius R10
Eccentricity C1=3
Cutting edge height C2=4
Angle for spindle orientation D0
G790 Define back boring cycle.
G79 Execute defined cycle at point.

460 10 G700-G799 Milling Cycles


10.20 G794 Tapping, Interpolated

10.20 G794 Tapping, Interpolated


Definition of a tapping cycle with interpolation in a single program
block.

Support picture

Address description
 L depth
 F2= pitch
 L1=, L2= setup clearance
 C1= cutting depth Advance after which a chip break is executed. No
algebraic sign.
 C5= retract distance for chip break The tool is retracted by the
specified distance during chip breaking. Entering 0 means that it is
fully retracted from the hole (to the safety clearance) for chip
removal. No algebraic sign.
 D orientation angle spindle Angle at which the tool is positioned
before the thread is cut. This allows you to regroove the thread, if
required.
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0.

Application
At the end of the cycle, the coolant status and spindle status that were
active before the cycle are reactivated.
The advance is determined by the speed. Speed override is active
during tapping. Feed override is not active.
When a G794-cycle is called using G79, the CNC must be set to
G94-mode (feed in mm/min).
In the case of spindle orientation, the machine parameters must be
correctly set during tapping. The spindle acceleration is calculated for
each gear using maxFeed and maxAccSpeedCtrl in CFGFeedLimits.
The machine and CNC must be prepared for the G794 cycle by the
machine manufacturer.

HEIDENHAIN MillPlus V600 461


10.20 G794 Tapping, Interpolated
Procedure
1 Rapid traverse in the spindle axis to the 1st setup clearance (L1=)
followed by spindle orientation.
2 Tapping with pitch (L3=) to depth (L).
3 The direction of spindle rotation is then reversed once more.
4 The tool is retracted with pitch (L3=) to the 1st setup clearance
(L1=) and then rapidly retracted to the 2nd setup clearance (L2=).
5 The spindle is stopped here.

Example
Tapping, interpolated

G794 L22 L1=9 L3=2.5


G79 X50 Y50 Z0

G794 Define the tapping cycle.


G79 Execute the cycle at the programmed position.

462 10 G700-G799 Milling Cycles


10.21 G797 Pocket Finishing

10.21 G797 Pocket Finishing


Definition of a rectangular pocket milling cycle for finishing the wall
and floor of rectangular pockets in a single program block. The sides
can be machined in a number of advances. This cycle allows oblique
plunging into the floor and mills in a continuous spiral path.

Support picture

Address description
 B1= 1st side length Length of the slot in the principal axis
 B2= 2nd side length Width of the slot in the minor axis
 L depth
 L1=, L2= setup clearance
 L3= allowance bottom Milled away during finishing.
 B3= allowance sides
 C1= plunging depth
 C2= proportional cutting width Percentage of the tool diameter
to be used as the cutting width on each pass. The total width is
divided into equal sections.
 R rounding radius Radius for the pocket corners. If radius R=0, the
rounding radius is the same as the tool radius.
 R1= proportional helix radius Percentage of the tool radius to be
used as the helix radius (>0) for plunging.
 A3= plunging angle Angle (0..90°) at which the tool can plunge into
the workpiece. The plunging angle is adjusted so that the tool
always plunges with a whole number of rectangular movements. It
only plunges vertically at 90º.
 I1= milling 1=climb -1=conventional
 I2= finishing 0=complete 1=sides
„ 0: finishing of side and bottom
„ 1: finishing of side only
 S speed
 F2= feed for plunging
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, L3=0, B3=1, C1=L, C2=67%, R= tool radius, 0, R1=80%,
A3=90, I1=1, F2=0.5*F for vertical plunging, and F2=F for oblique
plunging.

HEIDENHAIN MillPlus V600 463


10.21 G797 Pocket Finishing
Application
B1= or B2= must be greater than 2*(tool radius + finishing allowance
for sides B3=).

Procedure
1 Rapid traverse to 1st setup clearance (L1=) over the pocket center.
Finishing the floor:
2 If the plunging angle A3=90º, the tool advances with drilling feed
(F2=) to the depth (L).
If the plunging angle A3<90º, the tool advances obliquely, using a
whole number of rectangular movements, to the depth (L).
3 Machining with feed (F) in the positive direction of the longer side,
in a flowing movement from inside to outside.
4 At the end of this process, the tool is retracted from the wall and
the floor in a tangent to the helix and moved rapidly to the center.
Finishing the side:
5 Rapid traverse to the plunging depth (C1=).
6 The starting position is the first plunging depth and at least the
finishing allowance (B3=) from the side. The tool moves inward
tangentially, mills the contour, and retracts tangentially.
7 Repeat procedure (5-6) until the depth (L) has been reached.
8 At the end of the cycle, the tool moves rapidly to the 1st plus 2nd
setup clearances (L1= plus L2=) and then into the center of the
pocket.

Example
Pocket finishing

G787 B1=150 B2=80 B3=1 L6 I1=1 L3=1 R20 A3=5 C2=65 C1=3.
G79 X160 Y120 Z0
G797 B1=150 B2=80 B3=1 L6 L3=1 R20 A3=5 C2=60 C1=3
G79 X160 Y120 X0

G787 Define pocket milling roughing cycle.


G79 Execute the roughing cycle at the programmed
position.
G797 Define pocket finishing cycle.
G79 Execute the finishing cycle at the programmed
position.

464 10 G700-G799 Milling Cycles


10.22 G798 Key-Way Finishing

10.22 G798 Key-Way Finishing


Definition of a key-way milling cycle for finishing in a single program
block.

Support picture

Address description
 B1= 1st side length Length of the slot in the principal axis
 B2= 2nd side length Width of the slot in the minor axis
 L depth
 L1=, L2= setup clearance
 C1= plunging depth
 I1= milling 1=climb -1=conventional
 S speed
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, C1=L, I1=1.

Application
The diameter of the milling cutter must be no greater than the width
of the slot and no less than a third of the slot width.

Procedure
1 Rapid traverse to 1st setup clearance (L1=) over the slot center.
2 The tool moves tangentially to the contour from the center of the
slot and finishes it using climb milling (I1=1).
3 At the end of the contour, the tool retracts tangentially from the
contour and floor to the center of the slot
4 The tool then moves rapidly to the 1st plus 2nd setup clearances
(L1= plus L2=).

HEIDENHAIN MillPlus V600 465


10.22 G798 Key-Way Finishing
Example
Key-way finishing

G788 B1=150 B2=20 B3=1 L6 L1=1 A3=10 C1=3 I1=1 I2=0 F100
F2=200
G79 X20 Y20 Z0
G798 B1=150 B2=30 L6 L1=1 I1=1 F100
G79 X20 Y20 Z0

G788 Define the key-way roughing cycle, parallel to the


X-axis.
G79 Execute the roughing cycle at the programmed
position.
G798 Define the key-way finishing cycle, parallel to the
X-axis.
G79 Execute the finishing cycle at the programmed
position.

466 10 G700-G799 Milling Cycles


10.23 G799 Circular Pocket Finishing

10.23 G799 Circular Pocket Finishing


Definition of a circular pocket milling cycle for finishing the wall and
floor of rectangular pockets in a single program block. The sides can
be machined in a number of advances. This cycle allows oblique
plunging into the floor and mills in a continuous spiral path.

Support picture

Address description
 R radius
 L depth
 L1=, L2= setup clearance
 L3= finishing allowance bottom Milled away during finishing.
 B3= finishing allowance sides Milled away during finishing.
 C1= plunging depth
 C2= proportional cutting width Percentage of the tool diameter
to be used as the cutting width on each pass. The total width is
divided into equal sections.
 R1= proportional helix radius
 A3= plunging angle
„ Angle (0 to 90º) at which the tool can plunge into the workpiece
„ It only plunges vertically at 90º
 I1= milling 1=climb -1=conventional
 I2= finishing 0=complete 1=sides
„ 0: finishing of side and bottom
„ 1: finishing of side only
 S speed
 F2= feed for plunging
 F feed
For a description of the additional addresses, see "Explanation of
addresses" on page 420.

Default setting
L1=1, L2=0, L3=1, B3=1, C1=L, C2=67%, R1=80%, A3=90, I1=1,
I2=0, F2=0.5*F for vertical plunging and F2=F for oblique plunging.

HEIDENHAIN MillPlus V600 467


10.23 G799 Circular Pocket Finishing
Application
The minimum size of the pocket (R) is 2*(tool radius + finishing
allowance for sides B3=).

Procedure
Finishing the floor
1 Rapid traverse to the center of the pocket and remain at the 1st
setup clearance (L1=) above the center of the pocket.
2 If the plunging angle A3=90º, the tool advances with feed (F2=) to
the depth (L).
If the plunging angle A3<90º, the tool advances obliquely, using a
whole number of circular movements, to the depth (L).
3 The tool then moves in a spiral path (direction depends on forward
rotation (I1=1) with M3) and then roughs the floor of the pocket
from inside to outside.
Finishing the side
4 Rapid traverse to the plunging depth (C1=).
5 The side is then machined in a number of sections. The starting
position is the first plunging depth and at least the finishing
allowance (B3=) from the side. The tool then moves inward
tangentially, mills the contour, and retracts tangentially.
6 Repeat procedure (4-5) until the depth (L) has been reached.
7 At the end of the cycle, the tool moves rapidly to the 1st plus 2nd
setup clearances (L1= plus L2=) and then into the center of the
pocket.

Example
Circular pocket finishing

G789 R40 L6 B3=1 I1=1 L1=1 L3=1 A3=5 C2=65 C1=3 F200
G79 X160 Y120 Z0
G799 R40 B3=1 L6 L1=1 L3=1 A3=5 C1=3 C2=65 I1=1 F200
G79 X160 Y120 Z0

G787 Define circular pocket roughing cycle.


G79 Execute the roughing cycle at the programmed
position.
G797 Define circular pocket finishing cycle.
G79 Execute the finishing cycle at the programmed
position.

468 10 G700-G799 Milling Cycles


G800-G899 Turning
Cycles
11.1 Turning Cycles
11.1 Turning Cycles

Reserved for turning cycle extensions


Availability

These cycles will appear in a future version.

470 11 G800-G899 Turning Cycles


G1000-G1099 G-Codes
for Macros
12.1 G1010 Edit Function for SQL
12.1 G1010 Edit Function for SQL tables
tables
The function allows you to read from and write to an SQL table. The
action is executed using an SQL statement, with which a part of the
SQL table is selected. You can read and write data in this selection.

Support picture

Address description
 E parameter with number of SQL selection This number is
automatically assigned with the SQL statement "SELECT ..". This
number has to be specified with all other SQL statements that use
the selection.
 I1= SQL statementDefines the actual SQL statement in a string
enclosed in double quotation marks.
„ "SELECT .. FROM .. WHERE .."
„ "FETCH"
„ "UPDATE"
„ "COMMIT"
 I2= record index Address I2= can be used to select a specific data
record. I2= is only permitted with I1="FETCH". If address I2= is not
programmed, and was never programmed in the program before,
FETCH retrieves the first data record from the table. If the address
12= is not programmed in the subsequent G1010 block, FETCH
retrieves the next data record from the table.
 O1= parameter number for result Parameter number in which the
result of the SQL statement is written.
0 = SQL statement successful
1 = SQL statement not successful (e.g. searched column not found)

472 12 G1000-G1099 G-Codes for Macros


12.1 G1010 Edit Function for SQL tables
Application
Statement
The statement to be executed must be enclosed in double quotation
marks. Within a statement, a reference to an E parameter can be used
for the condition (WHERE). To do so, enclose the E parameter in single
quotation marks after a colon. MillPlus replaces this sequence with
the value of the E parameter.
Example:

G1010 E5 I1="SELECT L,R FROM TOOL WHERE T_NR=17"

Handle
The SQL HANDLE describes the result of a previous SQL query and is
stored in the E parameter (e.g. E5). Only values assigned by the SQL
server are valid handles. The value 0 identifies an invalid handle. With
the SELECT command, the handle is assigned a value. In the case of
the UPDATE, COMMIT, and FETCH commands, the handle must have
a value.
Example:

G1010 E5 I1="SELECT L,R FROM TOOL WHERE T_NR==1"

FETCH
FETCH uses the SQL result (e.g. E5) of the previous SQL query, after
which the data can be read from the columns using the SQLRead()
function. If the values in the table are expressed in inches, lengths and
feed rates are converted into millimeters during the reading process.
The values in the bound parameters are always assumed to be metric.
As with G1018, this also applies if the current program is entered in
inches. If no I2= is specified, the first row of the result set is
transferred. The specified E parameter (e.g. E80) is assigned a return
code. If the statement is completed successfully, the E parameter is
assigned the value "0". If not, it is assigned the value "1".
Example:

G1010 E5 I1="FETCH" I2=4 O1=80

HEIDENHAIN MillPlus V600 473


12.1 G1010 Edit Function for SQL tables UPDATE
UPDATE assigns the data written with the SQLwrite() function to the
relevant table rows or table columns. If the values in the table are
expressed in inches, lengths and feed rates are converted into
millimeters before the assignment process. The values in the bound
parameters are always assumed to be metric. The specified E
parameter (e.g. E80) is assigned a return code. If the statement is
completed successfully, the E parameter is assigned the value "0". If
not, it is assigned the value "1".
Example:

G1010 E5 I1="UPDATE" O1=80

COMMIT
COMMIT cancels locks on table rows or table columns. Edited table
data is permanently transferred using COMMIT. The specified E
parameter (e.g. E80) is assigned a return code. If the statement is
completed successfully, the E parameter is assigned the value "0". If
not, it is assigned the value "1".
Example:

G1010 E5 I1="COMMIT" O1=80

SELECT
To select data, use the SQL statement SELECT. In the SELECT
command, you enter the data source (table name) and the relevant
column names. Enter the data source after the keyword FROM. The
SELECT command provides various command options for defining
conditions, sorting sequences, and locks, which modify the effect of
the command.

WHERE
The WHERE option limits the effect of a command to the rows of the
selected columns that satisfy the specified condition. The condition
can be defined by directly entering a numeric value or using the
contents of an ES parameter.
Example:
The row to be assigned to tool T 1 is selected from the columns L and
R of table TOOL.T (WHERE T=1):

G1010 E5 I1="SELECT L,R FROM ‘%USR%\TABLE\TOOL.T’


WHERE T_NR=1"

The contents of parameter ES21 can also be used for defining the
WHERE condition. For example, ES21 contains the value "1":

G1010 E5 I1="SELECT L,R FROM ‘%USR%\TABLE\TOOL.T’


WHERE T_NR=”&ES21&””

474 12 G1000-G1099 G-Codes for Macros


12.1 G1010 Edit Function for SQL tables
ORDER BY
The ORDER BY option defines the sequence of rows. Select a column
by which the rows are to be sorted.
Example:
The rows to be assigned to tool T 0 and to the tool numbers from the
E parameter E31 are selected from the columns L and R of the
TOOL.T table. The result set is sorted by tool number T_NR:

G1010 E5 I1="SELECT L,R FROM ‘%USR%\TABLE\TOOL.T’


WHERE T_NR=0 OR T_NR=”&ES31&”” ORDER BY T_NR"

FOR UPDATE
The FOR UPDATE option locks the rows during selection in order to
prevent unauthorized access. Without the FOR UPDATE option, the
rows are not locked until immediately before they are changed
(COMMIT command).
Example:

G1010 E5 I1="SELECT L,R FROM ‘%USR%\TABLE\TOOL.T’


WHERE T_NR=0 OR T_NR=”&ES31&”” ORDER BY T_NR FOR
UPDATE"

The keywords must be written in upper case

Example
Reading the length of tool 17

G1010 E0 I1="SELECT L FROM TOOL WHERE E0=SQL HANDLE


T_NR=17”
G1010 E0 I1="FETCH" O1=1 FETCH DATA RECORD
IF (E1 = 0) THEN
E2 = CDBL(SQLREAD(E0, "L" ) ) E2=TOOL LENGTH
ELSE
G300 D602 TOOL NOT FOUND
END IF
G1010 E0 I1="COMMIT" END TRANSACTION

HEIDENHAIN MillPlus V600 475


12.2 G1016 Export Formatted Text
12.2 G1016 Export Formatted Text and E Parameter
and E Parameter
With the G1016 function , you can output formatted parameter values
or texts to a file or display them on screen. To output the formatted
texts and parameter values, use a text editor to create a text file, in
which you then specify the formats and parameters to be output.
When writing text to a file, you can either overwrite the file or append
text to the file.

Support picture

Address description
 N= output definition
 N5= name of format file

Application
Output definition
Address N defines an output to a file or on-screen display. To output
to a file, you must enter a string in double quotation marks along with
the relevant path and file name. The path is relative to <%USR%\>.
Example: N="MeasuringResult\BladeWheel.txt" writes a file
<BladeWheel.txt> in the directory<MeasuringResult\>

Display on screen
If N="screen:", the output is displayed on screen. A pop-up window is
opened during the first write operation. This window is closed again
after either of the following:
„ N=”sclr:”
„ End (M30) of the NC program
„ <ESC> key when the window is selected

Format file name


Address N5= defines the format file. To do this you must enter a string
in double quotation marks along with the relevant path and file name.
The path must be absolute.
Example: N5="%USR%\Format\Messprotokol.cfg"

Format variables
The format file can have the following format variables:
„ Q.. E parameter is defined with Q, e.g. Q10
„ QS.. ES parameter is defined with QS, e.g. QS12

476 12 G1000-G1099 G-Codes for Macros


12.2 G1016 Export Formatted Text and E Parameter
Keywords
The format file can have the following keywords:

Key Description
CALL_PATH Outputs the path name for the NC program in which
the G1016 function is located.

M_APPEND If the log file already exists, the new output data is
added.

M_CLOSE Closes the file to which you are writing with G1016.
The file can be read. If M_CLOSE is not
programmed, the file will be closed at the end of the
program

L_ENGLISH Display text only in English conversational

L_GERMAN Display text only in German conversational

L_DUTCH Display text only in Dutch conversational

L_FRENCH Display text only in French conversational

L_ITALIAN Display text only in Italian conversational

L_SPANISH Display text only in Spanish conversational

L_PORTUGUESE Display text only in Portuguese conversational

L_DANISH Display text only in Danish conversational

L_SWEDISH Display text only in Swedish conversational

L_FINNISH Display text only in Finnish conversational

L_CZECH Display text only in Czech conversational

L_POLISH Display text only in Polish conversational

L_ALL Display text independently of the conversational


language

HOUR Number of hours from the real-time clock

MIN Number of minutes from the real-time clock

SEC Number of seconds from the real-time clock

DAY Day from the real-time clock

MONTH Month as a number from the real-time clock

STR_MONTH Month as a string abbreviation from the real-time


clock

YEAR2 Two-digit year from the real-time clock

YEAR4 Four-digit year from the real-time clock

HEIDENHAIN MillPlus V600 477


12.2 G1016 Export Formatted Text and E Parameter Format functions
The format file can have the following format functions:
„ "......" Define output for text and variables between double quotation
marks
„ %5.3f Define format (e.g. for E parameter): 5 places before and 3
places after the decimal point, floating. If can be written instead of f
„ %s Format for text variable
„ %d Format for date and time, examples:
Format Example
%1d-%1d-%4d 2-2-2008

%02d-%02d-%4d 02-12-2007

%2d-%2d-%4d 14- 3-2008

„ , Separator between output format, variables, and keywords


„ ; End of record character, finishes a row and starts comment on this
row
„ ""; Empty row

Example
G1016 N5="%USR%\Format\Messprotokol.cfg" N="screen:"

The format file Messprotokol.cfg (MeasuringLog.cfg):


"Measuring result of blade wheel mass center";
"Date: %02d-%02d-%4d",DAY,MONTH,YEAR4;
"Time: %02d:%02d:%02d", HOUR,MIN,SEC;
"_______________________________";
"";
"X = %5.3lf", Q10;
"Y = %5.3lf", Q11;
"Z = %5.3lf", Q12;
Delivers the following screen output:
Measuring result of blade wheel mass center
Date: 21-09-2007
Time: 12:22:45
_______________________________

X = 134.998
Y = 24.989
Z = 0.008

478 12 G1000-G1099 G-Codes for Macros


12.3 G1017 Write NC System Data

12.3 G1017 Write NC System Data


This function enables the NC program to write NC system data.
Examples of NC system data are limit switches, axes parameters, and
touch probe settings.

Support picture

Address description
 E parameter number with system data
 I1= group number
„ 61 = Write tool definition
„ 230 = Write software limit switch
„ 350 = Touch probe
„ 610 = Write LookAhead parameter
„ 990 = Write start-up behavior
 I2= system data number
 I3= index of system data (default is 0)
 I4= value of system data

Address Description
I1=61 I2=1 TOOL DEF Tool number (T column in tool magazine); the value I4= is stored in the interpreter

I1=61 I2=4 TOOL DEF Tool index (IDX column in tool table); the value I4= is stored in the interpreter

I1=230 I2=2 Negative software limit switch


Write negative software limit switch of axis I3= with the value I4=
I3=1 X axis
I3=2 Y axis
..
I3=4 A axis
I3=5 B axis
..
I3=9 W axis
I4= New value for limit switch [mm | deg].

HEIDENHAIN MillPlus V600 479


12.3 G1017 Write NC System Data
Address Description
I1=230 I2=3 Positive software limit switch
Write positive software limit switch of axis I3= with the value I4=
I3=1 X axis
I3=2 Y axis
..
I3=4 A axis
I3=5 B axis
..
I3=9 W axis
I4= New value for limit switch [mm | deg].

I1=230 I2=4 Software limit switches for multiple axes


The positive and negative software limit switches of multiple axes are changed
I3= number of axes starting with the X axis
E= initial value of E parameter range
The first two E parameters contain the new values of the positive and negative limit switches of
the X axis, the next two E parameters contain the new values of the Y axis and so on.

I1=230 I2=5 Switch software limit switches on and off


Software limit switch monitoring can be switched off or on:
I4=0 switch off
I4=1 switch on

I1=350 I2=70 I3=1 Touch probe data


The touch probe type of the tool measuring system (tool touch probe) is written

I1=350 I2=75 I3= Touch probe data


The feed rate of the tool measuring system (tool touch probe) is written
I3=1 rapid traverse
I3=2 measuring feed rate when spindle is stationary

I1=610 I2= LookAhead parameter of path


The LookAhead parameter of the path is written with the value from the E parameter:
I2=1 minimum path feed rate [mm/min]
I2=2 minimum corner feed rate [mm/min]
I2=3 feed rate limit for high speed [mm/min]
I2=4 maximum jerk (normal) [m/s3]
I2=5 maximum jerk (at high speed) [m/s3]
I2=6 tolerance (normal) [mm]
I2=7 tolerance (at high speed) [mm]
I2=8 maximum yank [m/s4]
I2=9 contour tolerance factor [-]
I2=10 contour jerk factor [-]
I2=11 filter frequency [Hz]
I2=12 angle tolerance (normal) [mm]
I2=13 angle tolerance (at high speed) [mm]
I2=99 reset all LookAhead parameters (to be programmed with E=0)

480 12 G1000-G1099 G-Codes for Macros


12.3 G1017 Write NC System Data
Address Description
I1=610 I2= I3= LookAhead parameter of axes
The LookAhead parameter of axis I3= is written with the value from the E parameter:
I2=20 maximum feed rate [mm/min]
I2=21 maximum acceleration [m/s2]
I2=22 maximum brake acceleration [m/s2]
I2=23 maximum jerk [m/s3]
I2=24 feed rate acceleration compensation [As2/rev]

I3=1 X axis
I3=2 Y axis
..
I3=4 A axis
I3=5 B axis
..
I3=9 W axis

I1=990 I2=2 Switch touch probe monitoring on and off


Touch probe monitoring can be switched off or on:
I4=0 switch off
I4=1 switch on

I1=990 I2=6 Touch probe active or inactive


Tool touch probe monitoring can be switched off or on:
I4=0 switch off
I4=1 switch on

Application
Procedure
The value of the new system data is transferred by the NC program
and stored in the NC.

Configuration
IpoCfgSchema.doc specifies the LookAhead parameter (I1=610).

Example
The negative software limit switch of the X axis is written.
G1017 I1=230 I2=2 I3=1 I4=E861 E1

HEIDENHAIN MillPlus V600 481


12.4 G1018 Read NC System Data
12.4 G1018 Read NC System Data

This function enables the NC program to read NC system data.


Examples of NC system data are limit switches, axes parameters, and
touch probe settings.

Support picture

Address description
 E E parameter receiving parameter
 I1= group ID
„ 20 = Read machine status
„ 60 = Read M67 tool definition
„ 61 = Write tool definition
„ 230 = Read software limit switch
„ 610 = Read LookAhead parameter
 I2= system parameter NR
 I3= index of system parameter (default is 0)

Address Description
I1=20 I2= Machine status
The machine status is read and stored in the E parameter
I2=1 current tool number
I2=2 number of the prepared tool
I2=3 tool axis (X=1,Y=2,Z=3,U=7,V=8,W=9)
I2=4 programmed spindle speed
I2=5 spindle status: undefined = -1, turns CW=0, turns CCW=1, stops after turning CW=2, stops
after turning CCW=3
I2=6 no function
I2=7 no function
I2=8 coolant status (off=0, on=1)
I2=9 last programmed feed rate (rapid traverse=-1)
I2=10 step index of the prepared tool
I2=11 step index of the active tool

I1=60 I2=1 M67 TOOL Tool number (T column in tool magazine); the value is stored in the E-Parameter (no
SQL)

I1=60 I2=8 M67 TOOL Tool index (IDX column in tool table); the value is stored in the E parameter (no SQL)

I1=61 I2=1 TOOL DEF Tool number (T column in tool magazine); the value is stored in the E parameter (no
SQL)

I1=61 I2=4 TOOL DEF Tool index (IDX column in tool table); the value is stored in the E parameter (no SQL)

482 12 G1000-G1099 G-Codes for Macros


12.4 G1018 Read NC System Data
Address Description
I1=230 I2=2 Negative software limit switch
The negative software limit switch of axis 13= is read and stored in the E parameter:
I3=1 X axis
I3=2 Y axis
..
I3=4 A axis
I3=5 B axis
..
I3=9 W axis

I1=230 I2=3 Positive software limit switch


The positive software limit switch of axis 13= is read and stored in the E parameter:
I3=1 X axis
I3=2 Y axis
..
I3=4 A axis
I3=5 B axis
..
I3=9 W axis

I1=230 I2=4 Software limit switches for multiple axes


Not permitted

I1=230 I2=5 Software limit switch monitoring


Software limit switch monitoring can be switched off or on:
0: switched off
1: switched on

I1=610 I2= LookAhead parameter of path


The LookAhead parameter of the path is written with the value from the E parameter:
I2=1 minimum path feed rate [mm/min]
I2=2 minimum corner feed rate [mm/min]
I2=3 feed rate limit for high speed [mm/min]
I2=4 maximum jerk (normal) [m/s3]
I2=5 maximum jerk (at high speed) [m/s3]
I2=6 tolerance (normal) [mm]
I2=7 tolerance (at high speed) [mm]
I2=8 maximum yank [m/s4]
I2=9 contour tolerance factor [-]
I2=10 contour jerk factor [-]
I2=11 filter frequency [Hz]
I2=12 angle tolerance (normal) [mm]
I2=13 angle tolerance (at high speed) [mm]
I2=99 reset all LookAhead parameters (to be programmed with E=0)

HEIDENHAIN MillPlus V600 483


12.4 G1018 Read NC System Data
Address Description
I1=610 I2= I3= LookAhead parameters of axes
The LookAhead parameter of axis 13= is read and stored in the E parameter. The following
parameters are defined for each axis and programmed with I3=:
I2=20 maximum feed rate [mm/min]
I2=21 maximum acceleration [m/s2]
I2=22 maximum brake acceleration [m/s2]
I2=23 maximum jerk [m/s3]
I2=24 feed rate acceleration compensation [As2/rev]

I3=1 X axis
I3=2 Y axis
..
I3=4 A axis
I3=5 B axis
..
I3=9 W axis

Application
Procedure
The value of the system data is stored as an E parameter.

Configuration
IpoCfgSchema.doc specifies the LookAhead parameter (I1=610).

Example
The current tool number is read.
G1018 I1=20 I2=1 E2

484 12 G1000-G1099 G-Codes for Macros


12.5 G1019 Define up to Two PLC

12.5 G1019 Define up to Two PLC values


values
With the G1019 function, you can transfer up to two numerical values
to the PLC in sync.

Support picture

Address description
 I1= PLC value
 I2= PLC value

Application
Output to PLC
The values are decoded in the PLC. Used, for example, in the tool
change macro: G1019 I1=101 I2=E861 (tool number transfer)

Configuration
With machine parameter CfgPlcMStrobe.

Example
Tool number transfer, e.g. in tool change macro.
G1019 I1=101 I2=E861

HEIDENHAIN MillPlus V600 485


12.6 G1022 Activate Tool Exchange
12.6 G1022 Activate Tool Exchange in PLC
in PLC
General function for writing data to the NC. Note: Texts are to be used
for activating tool changes in the PLC (I1=950 and I1=955)

Support picture

Address description
 I1= group ID
„ 850 = Adapt kinematic model intermittently
„ 950 = Prepare tool data
„ 955 = Tool change to PLC
 I2= I1=95x: tool exchange mode (0=DEF,1=CALL)
 I3= I1=95x: tool number
 I4= I1=95x: tool offset index
 I5= I1=95x: tool position in magazine
 I6= I1=95x: SQL handle tool data table
 I7= I1=95x: SQL handle tool magazine table
 N5= I1=850: place in kinematic model

Application
Procedure
I1=955: activates the T strobe and thus sets the correct PLC marker.

Configuration
CfgSimPosition contains axis coordinates that define the end position
of the tool change during mid-program startup.

PLC
PlcTStrobe, TOOL DEF, TOOL CALL, TOOL WAIT

Address Description
I1=850 I2= Adapt kinematic model
0 = activate other model
1 = modify data in active model (old description only)

I1=850 I2=1 Write to kinematic model intermittently


This allows data to be written to the active kinematic model. The data remains active until the
control is switched off.
Note: There are two types of description for kinematic models in the MillPlus V600. In the case
of the "modern" description with "CfgKinSimpleModel", G1022 I1=850 I2=1 cannot be used, while
G339 must be used.

486 12 G1000-G1099 G-Codes for Macros


12.6 G1022 Activate Tool Exchange in PLC
Address Description
I1=850 I2=0 N5= Activate other kinematic model. N5= defines the key of the other kinematic model. This model
remains active after the control has been switched off. For example, G1022 I1=850 I2=0
N5="KinTestCB" activates the model "KinTestCB".
Note: There are two types of description for kinematic models in the MillPlus V600. Models
using either description can be activated with G1022 I1=850 I2=0.

I1=850 I2=1 N5= Location at which the written data is activated


There are three basic location types:
1) At the start of the kinematic chain (tool side)
2) At the end of the kinematic chain (table side)
3) A specific location in the kinematic chain
These three locations are defined in the N5=address as:
N5="toolSide" (tool side); at the start of the chain
N5="tableSide" (table side); at the end of the chain
N5="nnnn" "nnnn"; defines the same string as the key in the Cfg element <CfgTrafoByDir> that
is to be modified. The vector in the <location> attribute of this <CfgTrafoByDir> is modified

I1=850 I2=1 I3= X position


Position that is written to the vector element <location.0> of the kinematic element

I1=850 I2=1 I4= Y position


Position that is written to the vector element <location.1> of the kinematic element

I1=850 I2=1 I5= Z position


Position that is written to the vector element <location.2> of the kinematic element

I1=850 I2=1 I6= Write mode (0=incremental, 1=absolute)


In write mode = 0 "incremental", data is added to the existing data.
In write mode = 1 "absolute", the existing data is overwritten with new data.
Note: The X, Y and Z positions (I3=, I4=, I5=) must always be written at the same time.

I1=950 I2= Write tool data in the CNC and interpreter


Data type
0 = Tool number TOOL CALL
1 = Calculate tool and tool life
2 = Tool TOOL DEF
3 = Tool dimensions

I1=950 I2=0-3 I3= Tool number


I3= defines the number (8.2 Format) of the tool

I1=950 I2=0-3 I4= Tool index


I4= defines the tool index (programmed with T2=) of the tool

I1=950 I2=1 I5= TOOL CALL tool life to NC


I5= SQL handle for tool life monitoring

I1=950 I2=0 I6= All TOOL CALL tool data apart from tool life to NC
I6= SQL handle with all tool data

I1=950 I2=3 I6= M67 tool data to NC


I6= SQL handle with M67 tool data

I1=955 Tool change to PLC


Prompt to the PLC to execute the requested tool change. Sends PlcTStrobe and sets system data

HEIDENHAIN MillPlus V600 487


12.6 G1022 Activate Tool Exchange in PLC
Address Description
I1=955 I2= Tool change mode
I2= defines the tool change mode
0 = Unload (TOOL CALL)
1 = Load (TOOL CALL)
2 = Prepare (TOOL DEF)
3 = Reserve (TOOL WAIT)
11 = Calculate (M67)

I1=955 I3= Tool number in the tool magazine


I3= defines the number (5.0 Format) of the tool to be loaded or unloaded

I1=955 I4= Tool index


I4= defines the tool index (programmed with T2=) of the tool to be prepared

I1=955 I2=0-2 I5= Transfer T strobe to PLC


I5=0: do not transfer T strobe
I5<>0: T strobe being transferred
Special cases:
I5=6 | 46 | 66: CfgSimPosition of M6 and/or M46 and M66 being activated
Tool magazine position
I5= defines the number of the magazine position at which the tool to be loaded is located

I1=955 I6= SQL handle of the tool data table

I1=955 I7= SQL handle of the tool magazine table (no longer used)

I1=955 I2=0-1 I7 <>0 Interpreter generates key values for CfgSimPosition


T0Mxx: end position for tool unload
T1Mxx: end position for tool load
Simulated positions are activated during mid-program startup

I1=955 N5= Text displayed in the dialog during mid-program startup

488 12 G1000-G1099 G-Codes for Macros


12.7 G1029 Define up to eight PLC

12.7 G1029 Define up to eight PLC values


values
With the G1029 function, you can transfer up to eight numerical values
to the PLC out of sync.

Support picture

Address description
 I PLC value
 I1= PLC value
 I2= PLC value
 I3= PLC value
 I4= PLC value
 I5= PLC value
 I6= PLC value
 I7= PLC value

Application

The parameter In= can only be used if the parameter I(n-


1)= is already in use

Output to PLC
The values are decoded in the PLC. Used, for example, in the tool
change macro: G1029 I1=101 I2=E861 (tool number transfer)

Example
Tool number transfer, e.g. in tool change macro.
G1029 I=101 I1=E861

HEIDENHAIN MillPlus V600 489


Changed G-functions
13.1 Description of changed G-
13.1 Description of changed G-functions with respect to version V500-V530
functions with respect to
version V500-V530

During the development of the new MillPlus version V600, it is


endeavored to keep the MillPlus language compatible to former
versions. With the new developments although, some new functions
have become available and some G-functions and its executions have
been changed. In this chapter you will find an overview of the most
important changes.

G0..G3_G91
Danger: Other position after incremental linear and rotary axes
movements
Cause:
A combination of incremental movements with linear axes and at least
one rotary axis is (with active G108 kinematics calculation) executed
differently than in former versions.
During calculation of the end position of the linear axes, now the begin
position of the linear axes is recalculated to the, by the rotary axis
changed, kinematics position. After that, the incremental movement
is added.

Example V500-V530:

..
X0 Y50 Z50 A0 C0
G91
G1 Y50 A30
..

Action:
Depending on the application, there are more solutions possible:
„ Program the end position with absolute coordinates
„ If it is not necessary to execute the linear and the rotary axes in one
movement, split the NC-block in two NC-blocks. First a NC-block
with the incremental linear axes movements and then a NC-block
with the incremental rotary axes movements
„ Change the incremental coordinates

492 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G1, G41 und G64
G1_G41_G42_A
Rotary axis programming during G41 or G42 is no longer permitted
Cause:
Rotary axis movements are not possible anymore when tool radius
correction is active.
Action:
Change the NC program:
„ Switch tool radius correction off temporarily

G1_G64_B1
Angle B1 must have exactly the same direction as the movement
Cause:
Angle B1 must have exactly the same direction as the movement. In
former versions, the direction had to be only correct within 180
degrees.
Action:
B1 gives the direction of a line. The definition of angle B1 is based on:
„ The + X-axis in the XY- or XZ-plane
„ The - Z-axis in the YZ-plane

G1_G64_B1_X
A combination of angle B1 and a coordinate is not permitted anymore
Cause:
A combination of angle B1 with a linear axis X, Y, or Z is not permitted
anymore. In former versions this was possible, to indicate the end
point of a movement.
Action:
Program the end point with a combination of an angle and a length, or
with two main plane coordinates.

HEIDENHAIN MillPlus V600 493


13.1 Description of changed G-functions with respect to version V500-V530 G1_P_PN
Combination of P and Pn= is not permitted
Cause:
A combination of points programmed with P and Pn= is no longer
permitted. In former versions, this combination was possible.
Action:
Program points with either e.g. P7 P8 P9 P10 or P1=7 P2=8 P3=9
P4=10.

G1_G64_X und Y
The two main plane axes must be programmed, but the tool axis may
not be programmed
Cause:
In former versions, in certain cases only one main plane axis needs to
be programmed.
Action:
Program both main plane axes, but not the tool axis.

G1_G64_X1 und Y1
The two main plane axes must be programmed, but the tool axis may
not be programmed
Cause:
In former versions, in certain cases only one main plane axis needs to
be programmed.
Action:
Program both main plane axes, but not the tool axis.

494 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G1_G64_R1=n
A tangential movement must be continuous
Cause:
It is only permitted to program continuous movements (R1=0).
In former versions, also discontinuous movements could be
programmed.
Example V500-V530:

..
G64
G1 R1=2
G2 I20 J40 X30 Y40
G63
..

Action:
Program a continuous contour (R1=0).

G1_G64_J1
The intersection point indicator J1 is replaced by I2
Cause:
The intersection point indicator J1 is replaced by an intersection point
indicator with another function.
I2 must be programmed at the end of the free contour, whereas J1
was programmed at the start of the free contour.
The value of I2 is in most cases identical to the value of J1.
Example V500-V530:

..
G0 X0 Y0 Z0
G64
G1 B1=45 J1=2
G2 I20 J12 X30 Y12
G63
..

HEIDENHAIN MillPlus V600 495


13.1 Description of changed G-functions with respect to version V500-V530 Action:
Replace address J1 by address I2 in the block at the end of the free
contour part. The value can remain unchanged in most cases.
Check the contour graphically.
Try another value for I2 if necessary and check the contour graphically
again.
Note: Unfortunately there is no unambiguous algorithm to obtain the
correct value for I2.
Example V600:

..
G0 X0 Y0 Z0
G64
G1 B1=45
G2 I20 J12 X30 Y12 I2=2
G63
..

G2
G2_G64_K1
The rounding or connecting circle indicator K1 is not available
Cause:
Only continuous movements, which do no intersect with themselves,
can be programmed.
In former versions, also discontinuous or itself intersecting
movements could be programmed.
Action:
Program a continuous contour that does not intersect itself.

G2_G64_R
Danger: rounding R can be executed differently
Cause:
For a rounding between two linear movements, programmed with
endpoints, address R can no longer be used. Use address R2 instead.
Action:
„ Replace address R by address R2
„ Check the contour graphically

496 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G5
Function G5 is replaced by G305
Cause:
To synchronize CNC and PLC, function G305 must be programmed.
Action:
Replace function G5 by function G305. Adapt the PLC program if
necessary.

G6
Function G6 is not available
Cause:
Spline interpolation is not available.
Action:
NC Program cannot be executed with this version.

G7
G7_A6
The incremental definition of G7 is changed
Cause:
The incremental angles for a tilted plane are now defined by adding the
incremental value A51=, B51=, C51= to the absolute values A5=,
B5=, C5=.
In former versions, the incremental values A6=, B6=, C6= were based
on the already active plane.
Action:
The tilted plane must be defined incrementally with A51, B51 and/or
C51.
The programmed value is added to the already active value. E.g. if G7
A5=10 B5=10 is active and G7 A51=5 is programmed, the result is G7
A5=15 B5=10.

G7_L1=0
Linear axes positioning after G7 L1=0 is changed
Cause:
After G7 without rotary axes positioning (L1=0 or without L1=), the
display of the linear axes positions in this version differs from former
versions. Programmed movements are executed to other machine
positions now.
Only when the rotary axes are positioned corresponding to the G7
tilted plane, the linear axes positions and programming are identical.

HEIDENHAIN MillPlus V600 497


13.1 Description of changed G-functions with respect to version V500-V530 Action:
Check all programmed movements between the activation of the G7
tilted plane and the positioning of the rotary axes.

G7_L1=1, L1=2
The rotary axes positions after G7 L1=1 or L1=2 can be different
Cause:
In certain cases, the rotary axes positioning of G7 L1=1 or L1=2 can
choose between two possibilities to position the rotary axes. Both
possibilities are valid.
This version can select a different combination of rotary axes positions
than former versions.
Action:
Try to position the rotary axes towards the wanted positions in the
block before the G7-block. In this way it is possible to influence the G7-
positioning.

G7_L2
Address L2 is not available
Cause:
The move direction of the rotary axes cannot be programmed. In
former versions, it was possible to position rotary axes in two different
ways with G7 L2=1 or L2=2. This version always chooses the shortest
way when positioning rotary axes.
Example V500-V530:

..
G0 A0 C0
G7 C5=30 L2=1
..

Action:
Remove L2 from this block. Try to position the rotary axes towards the
wanted positions in the block before the G7-block. In this way it is
possible to influence the G7-positioning.

G7_B47
Function G7 B47= is removed
Cause:
The resulting main plane rotation, which is calculated during the tilting
of the working plane, cannot be read anymore.

498 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G8
Function G8 is not available
Cause:
Tilting tool orientation is not available.
Action:
NC Program cannot be executed with this version.

G9_B2
Function G9 is not available with polar coordinates
Cause:
The G9 pole can only be programmed with cartesian coordinates.
In former versions, the G9 pole itself could be programmed with
addresses B2= and L2= or with angle B1=.
Action:
Change the NC program:
„ Replace the polar or angle programming of the pole by programming
with cartesian coordinates

G11
G11_B_X
A combination of angle B or B1 and a coordinate is not permitted
anymore
Cause:
A combination of angle B1 with a linear axis X, Y, or Z is not permitted
anymore. In former versions this was possible, to indicate the end
point of a movement.
Action:
Program the auxiliary or end point with a combination of an angle and
a length, or with two main plane coordinates.

G11_G91
In this version, the endpoint after an incremental movement after a
G11 block with rounding/chamfer, differs from former versions.

HEIDENHAIN MillPlus V600 499


13.1 Description of changed G-functions with respect to version V500-V530 Cause:
In former versions, the endpoint after an incremental movement after
a G11 block with rounding/chamfer was calculated from the endpoint
of the added chamfer or rounding. In this version, the endpoint is
calculated from the programmed end point of the G11 block.
Example V500-V530:

..
G1 X20 Y20
G11 X80 Y20 R30
G91 Y50
..

Action:
Program a new endpoint for the incremental movement.

G14_E
Function G14 E is not available
Cause:
Programming the number of repeats with address E is not possible.
Action:
Change the NC program:
„ Replace address E with address J

G26
Function G26 is not available
Cause:
Deactivation of the feed and speed override is not available.

500 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G28
G28_I2
Function G28 I2 is not available
Cause:
A reduction of the path jerk cannot be programmed.

G28_I3
Functions G28 I3 and G28 I4 are not available
Cause:
A stop between two movements (inpod) can no longer be
programmed with G28.
Action:
Instead of a stop, a corner accuracy can be programmed with the
contour tolerance function G28 I7.

G36
Turning mode is not available
Cause:
The G-functions for turning (33, 36, 96, 228, 302, 356, and 368) and
turning cycles (615, 690, 691, 692 and 8xx) are not available.
Action:
NC Program cannot be executed with this version.

G39_G41_L
Function G39 L is not possible during G41 or G42
Cause:
Programming a length offset on the active tool during active tool radius
correction, is not possible.
Action:
Change the NC program:
„ Switch tool radius correction off temporarily

HEIDENHAIN MillPlus V600 501


13.1 Description of changed G-functions with respect to version V500-V530
G40_G91
Danger: an incremental movement after G40 goes to another position
Cause:
The end position of an incremental movement after switching off 2D
tool radius correction is now based on the actual position. The actual
position is the position that is corrected with the tool radius.
In former versions, an incremental movement was based on the
programmed position.

Example V500-V530:

..
G41
G91
G1 X10 Y10
G1 X0 Y5
G40
G1 X10 Y10
..

Action:
„ Program the end position with absolute coordinates
„ Change the incremental coordinates

502 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G41-G42
G41-G42_G40
After G40, not programmed axes do not move
Cause:
In former versions, not programmed axes moved as well after G40
Example V500-V530:

G41
..
G1 X11 Y12
G40
G0 Y22

Action:
Also program the axis that must move and that wasn’t programmed
yet.

G49_E
Function G49 E is not available
Cause:
Function G49 jumps or repeats only once and only depending on the
measuring tolerance.
In former versions, extra jump conditions and more repeats could be
programmed.
Action:
Change the NC program:
„ Remove address E
„ Program extra jump conditions (G29) or more repeats (G14) in the
G29 or G14 block

HEIDENHAIN MillPlus V600 503


13.1 Description of changed G-functions with respect to version V500-V530
G54_G41
Transformations during G41 - G44 are not permitted anymore
Cause:
Transformations, such as zero point shifts, mirroring and scaling, are
not possible anymore when tool radius correction is active.
Action:
Change the NC program:
„ Switch tool radius correction off temporarily
„ Accomplish the transformation directly in the programmed
coordinates

G61 und G62


G61-G62_G41-G42
Radius correction must be activated directly before the G61 block
Cause:
In former versions, radius correction could be active before the G61
block and both linear and approach movements were executed with
radius correction.
Action:
Change the NC program:
„ program the approach movement and radius correction in this order
in seperate blocks before the G61 block.

G61_B2_Z
Polar programming with tool axis is not available
Cause:
For tangential approach and departure, the tool axis cannot be
programmed, in case the main axes are programmed with polar
coordinates.
In former versions, it was permitted to program the tool axis with
cartesian coordinates.
Action:
Change the NC program:
„ Program the main axes with cartesian coordinates
„ Program the tool axis movement in a separate NC block

504 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G61_I1=0
Approach movements are always executed with feed
Cause:
The first movement of G61 tangential approach and the second
movement of G62 tangential departure are always executed with
feed. A rapid movement (I1=0, default) is not permitted anymore.
In former versions, these movements could be programmed with
rapid (I1=0).
Action:
„ Remove I1=0. All movements will be executed with feed
„ When I1 is not programmed, note that all movements are with feed
now and not with rapid

G61_I2=0
In certain cases, the approach movement with I2=0 doesn't fit
Cause:
An approach movement with line and tangent circle (I2=0) generates
an error message, when:
„ The distance between the actual position and the approach circle is
smaller than the cutter radius
„ The start point lies within the approach circle
In former versions, the approach method was automatically
transformed into a movement with a quarter circle (I2=1).
Action:
Change the approach method into a quarter circle movement (I2=1).

HEIDENHAIN MillPlus V600 505


13.1 Description of changed G-functions with respect to version V500-V530
G63 und G64
G64_G1_G2_G3_X und Y
The two main plane axes must be programmed, but the tool axis may
not be programmed
Cause:
In former versions, in certain cases only one main plane axis needs to
be programmed.
Action:
Only program both main plane axes.

G64-G63_G250-G269
New “free contour“ G-functions G250-G269.
Cause:
In former versions, a free contour could be programmed with G1, G2
and G3 movements. In this version, the functions G250-G269 must be
used.
Action:
Change the NC program:
„ Program the functions G250-G269 instead of the functions G1, G2
and G3

506 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G67
Function G67 is not available
Cause:
The tool length correction is always performed in the direction of the
real position of the tool.
In former versions, it was possible to define with G67 that the tool
length was corrected in the positive direction of the by the main plane
defined tool axis. With G67 the rotation direction of circle segments
was also inverted and the tool radius correction was changed from left
into right or vice versa.
Action:
This NC program probably cannot be executed with this version.
Danger: after you removed G67 from this NC program, collisions may
occur. To prevent collisions:
„ Check the tool length correction
„ Invert the rotation direction of circle segments from G2 into G3, or
vice versa
„ Change the tool radius correction from G41 into G42, or vice versa
„ Invert the milling direction of the cycles
„ Check the NC program graphically

HEIDENHAIN MillPlus V600 507


13.1 Description of changed G-functions with respect to version V500-V530
G73_G92
The order of G73 mirroring and G92 rotation is changed
Cause:
In this version, the order is 1) rotating 2) mirroring.

Example V500-V530:
..
G1 X0 Y0
G73 X-1
G1 X100 Y0
G92 B4=45
G1 X100 Y0
..

Action:
Change the NC program:
„ Change the rotation angle for G92.

Example V600:
..
G1 X0 Y0
G73 X-1
G1 X100 Y0
G92 B4=-45
G1 X100 Y0
..

508 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G74
G74_K2
Function G74 K2 is not available
Cause:
Absolute positioning G74 with connection circle to the next
movement is removed.
Action:
Remove K2 and, if present, K2= from the G74 block. This changes the
executed path and makes it slower. Check the changed path on
collisions.

G74_X_X1
Incremental programming relative to a machine position is not
available
Cause:
In a G74 block, a machine position (e.g. X1=) cannot be programmed
combined with an axis position (e.g. X).
In former versions, it is possible to move to an incremental position
relative to a machine position.
Action:
Change the NC program:
„ Program the position absolute with G74

G77_G91
Danger: Other position for incremental contour instruction after G77
Cause:
The end position of an incremental contour instruction (G0, G1, G2,
G3) after a G77 bolt hole circle is now based on the actual position.
In former versions, an incremental movement was based on the
programmed bolt hole circle center point.
Remark: The execution of an incremental cycle call (G77 or G79) is still
based on the previous programmed bolt hole circle center point.
Action:
„ Program the end position with absolute coordinates
„ Change the incremental coordinates

HEIDENHAIN MillPlus V600 509


13.1 Description of changed G-functions with respect to version V500-V530
G79
G79_G41
Cycles cannot be executed anymore, when G41 - G44 is active
Cause:
Cycles cannot be executed anymore, when tool radius correction is
active.
In former versions, tool radius correction was switched off in the
cycle.
Action:
Change the NC program:
„ Before the cycle call, switch tool radius correction off by G40

G79_B1 und L1
Address B1 for rotation of the cycle is changed into address A5
Cause:
The rotation angle for pockets or slots is now programmed with the
A5 address.
In former versions, this angle was programmed with the B1 address.
This was however confusing with polar programming.
Action:
Change the B1 address into the A5 address.

G79_B2_L2
Polar programming is not available
Cause:
Polar programming with addresses B1 and L1 or with B2 and L2 is not
available.
Action:
Change the NC program:
„ Change the polar coordinates into cartesian coordinates

510 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G84
G84_I
Function G84 I is not available
Cause:
The deceleration after tapping cannot be programmed.
In former versions, the deceleration could be programmed as a
number of revolutions.
Action:
Remove the I address from the G84 block. The configured
deceleration is taken now.
Check the deceleration as defined in the configuration.

G84_I1=0
With G84 I1=0, M19 is always done
Cause:
At the start of tapping without interpolation G84 I1=0, a spindle
positioning with M19 is done.
In former versions, the spindle was not positioned first.

G98
G98
Graphic view is defined differently
Cause:
G98 and G195 define the graphic blank form now. The graphic view is
derived automatically as an offset to the blank form.
In former versions, G98 or G195 only defined the graphic view. The
blank form (G99) was defined in a separate NC block.
Action:
Change the NC program:
„ If a separate block with the G99 blank form is defined, remove the
block with G98 or G195
„ Adapt the programmed values, so that blank form and graphic view
are correct

HEIDENHAIN MillPlus V600 511


13.1 Description of changed G-functions with respect to version V500-V530
G98_B
Graphic view cannot be rotated
Cause:
The graphic view cannot be set up rotated.
In former versions, G98 or G195 could set up a rotated graphic view
with the addresses B, B1= and/or B2=.
Action:
Change the NC program:
„ Remove the addresses B, B1= and/or B2=
Set the graphic view as wished by means of the soft key operation.

G106
Function G106 is not available
Cause:
The function G108 "Kinematic calculation" cannot be switched off
anymore by G106. Therefore, the tool length correction is always
calculated in the real direction of the tool.
When G106 is active, the tool length correction was according to the
defined plane.
This difference can cause a collision, when:
„ The tool is in a different direction as defined by the plane (G17, G18,
G19)
„ An angular head mill is active
Action:
Change the NC program:
„ Remove G106
Check if the tool is in the direction as defined by the plane.

512 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G108_I1=2
Function G108 I1=2 is not available
Cause:
Function G108 "Kinematic calculation" always calculates the head and
the tool.
In former versions, I1=2 defined that the tool was not calculated.
Action:
Danger: if I1=2 is removed from G108, there can be collision danger.
Check the program on possible collisions.

G126
G126
Tool lifting is defined in the tool table
Cause:
A tool will only lift off, if this is defined in the tool table.
In former versions, lift off was only possible for certain G functions
(e.g. tapping).
Action:
Check the NC program and the tool table:
„ For all used tools, it must be defined in the column "LIFTOFF" if lift
off is permitted or not

G126_I1
G126 I1= or I2= or I3= are not available
Cause:
Tool lift off is only activated with intervention.
In former versions, lift off could be activated by:
„ The PLC (I1=1)
„ Intervention (I2=1)
„ Errors (I3=1)
Action:
Change the NC program:
„ A programmed I2=1 can be removed. The behavior is then identical
to former versions
„ With the other address combinations, this NC program cannot be
executed in the same way as in former versions

HEIDENHAIN MillPlus V600 513


13.1 Description of changed G-functions with respect to version V500-V530
G136 und G137
Functions G136 and G137 are not available
Cause:
The axes configuration cannot be switched.
Action:
NC Program cannot be executed with this version.

G141
G141_G93
If G92/G93 with rotary axes is active, G141 is erroneous
Cause:
Check if G92 or G93 with rotary axes is active.
An active programmable zero offset in one of the rotary axes, causes
3D tool correction to position the rotary axes wrong.
Action:
If G92 or G93 is active with rotary axes, the NC program must be
changed:
„ Replace G92 or G93 by G54. The programmed axes values of G92
or G93 must be added to the already active axes values of G54

G141_I7
Function G141 I7 is not available
Cause:
The accuracy during 3D tool correction cannot be programmed in the
NC program.
Action:
Remove I7 from the G141 block. The accuracy during G141 is now
defined by machine parameter: NCchannel - ChannelSettings - CH_NC
- CfgTCPM - Tolerance.

G141_L2
Danger: address L2 is only effective for 'RollOver' axes
Cause:
The shortest distance criterion L2= is only compatible to former
versions, if a rotary axis is configured as a 'RollOver' axis.
Action:
The rotary axis must be configured as 'RollOver' axis. The
corresponding attribute 'shortestDistance' can, if desired, be
configured as well. Within G141 however, the configuration of
'shortestDistance' is overruled by L2.

514 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G145
G145_E
Function G145 E is not available
Cause:
The measuring device status cannot be read with the E address.
Action:
Change the NC-Program:
„ Replace address E by one or more of the addresses O1=, O2=, O3=
or O4=

G145_I3
Function G145 I3 is not available
Cause:
Guarding of the measuring probe status (e.g. for Laser) cannot be
switched off anymore.
Action:
Change the NC program:
„ Replace address I3= with address O3=. With G145 O3= the
measuring device status is read and no error message is given.

HEIDENHAIN MillPlus V600 515


13.1 Description of changed G-functions with respect to version V500-V530
G148_I1=3
Function G148 I1=3 is not available
Cause:
PLC information on whether the table probe or laser measuring device
is activated, can no longer be read with G148 I1=3.
Action:
Change the NC program:
„ Replace G148 I1=3 to G328 to read the concerning PLC markers

G149
G149_T_E
E for tool status is changed into I1= and I2=
Cause:
Read or write of the tool status is done with a combination of Tnn, I1=
"Tool lock" and I2= "Tool status". The function of the tool status in the
tool table has been changed.
In former versions, the tool status was read or written with the E
address.
Action:
Replace the E address by a combination of I1= und I2=. Note the new
function of the tool status in the tool table.

G149_T_M1
With G149 T.. M1=, the actual tool life CUR_TIME is read.
Cause:
The function of the M1 address in G149 has changed: actual tool life
CUR_TIME
In former version, with M1 the rest tool life was meant.
Action:
Change the NC program:
„ Read the maximum tool life TIME1 with G321 T.. I1=13 E..
„ Read the actual tool life CUR_TIME with G149 T.. M1=..
„ Calculate the new actual rest tool life: actual rest tool life =
maximum tool life TIME1 - actual tool life CUR_TIME

516 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G150_T_M1
With G150 T.. M1=, the actual tool life CUR_TIME is written.
Cause:
The function of the M1 address in G150 has changed: actual tool life
CUR_TIME.
In former versions, with M1 the rest tool life was meant.
Action:
Change the NC program:
„ Read the maximum tool life TIME1 with G321 T.. I1=13 E..
„ Calculate the new actual tool life: actual tool life CUR_TIME =
maximum tool life TIME1 - rest tool life
„ Write the new actual tool life CUR_TIME with G150 T.. M1=..

G151 und G152


Functions G151 - G152 are replaced by G270 - G273
Cause:
Limit of travelling distance must be activated with G270 - G273 Limit
plane.
Action:
Replace G151 by G270 and G152 by a combination of G271, G272 and/
or G273.

G182
Function G182 is not available
Cause:
Cylinder interpolation is not available.
Action:
NC Program cannot be executed with this version.

HEIDENHAIN MillPlus V600 517


13.1 Description of changed G-functions with respect to version V500-V530
G199
Graphic contour is removed
Cause:
A graphic contour can no longer be programmed. A graphical blank
form can only be programmed cubic (G99).
In former versions, any graphic contour or blank form could be
programmed with G199, G198, G197 and G196.
Action:
This graphic contour or blank form cannot be drawn with this version.
Change the NC program:
„ Remove the G functions G199, G198, G197, G196 and all G1, G2,
G3 etc. contour description blocks in between

G200 - G208
Functions G200-G208 are replaced by G280-G286
Cause:
The pocket cycles G200-G208 have been replaced by the contour
milling cycles G280-G286.
Action:
Change the NC program:
„ Replace functions G200-G208 by functions G280-G286

518 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G217 und G218
Functions G217 and G218 are not available
Cause:
Angular head tools cannot be activated.
Action:
NC Program cannot be executed with this version.

G231
Function G231 is not available
Cause:
Interpolation between a spindle and an axis is not available.
Action:
NC Program cannot be executed with this version.

G241
Function G241 is replaced by G242
Cause:
Contour check must be activated with G242.
Action:
Replace G241 by G242. G242 adapts the executed contour for
undercuts. G241 only gave an error.

G318
Function G318 is not available
Cause:
Reading pallet or job data is not available.
Action:
NC Program cannot be executed with this version.

G319_I2=1
Function G319 I2=1 is not available
Cause:
The actual data cannot be read.
Action:
NC Program cannot be executed with this version.

HEIDENHAIN MillPlus V600 519


13.1 Description of changed G-functions with respect to version V500-V530
G320_I1
Die folgende Programmierung von G320 I1= ist nicht verfügbar:
„ I1=4 Angle of rotation A-axis
„ I1=5 Angle of rotation B-axis
„ I1=6 Angle of rotation C-axis
„ I1=7 Pole coordinate X-axis
„ I1=8 Pole coordinate Y-axis
„ I1=9 Pole coordinate Z-axis
„ I1=14 Feed movement
„ I1=15 Rapid movement
„ I1=16 Positioning logic
„ I1=17 Acceleration reduction
„ I1=18 Contour tolerance
„ I1=21 Palette zero point shift in X-axis
„ I1=22 Palette zero point shift in Y-axis
„ I1=23 Palette zero point shift in Z-axis
„ I1=24 Palette zero point shift in A-axis
„ I1=25 Palette zero point shift in B-axis
„ I1=26 Palette zero point shift in C-axis
„ I1=41 Zero point shift in X-axis
„ I1=42 Zero point shift in Y-axis
„ I1=43 Zero point shift in Z-axis
„ I1=44 Zero point shift in A-axis
„ I1=45 Zero point shift in B-axis
„ I1=46 Zero point shift in C-axis
„ I1=47 Angle of rotation
„ I1=62 Actual tool length
„ I1=63 Actual tool radius
„ I1=64 Actual tool corner radius
„ I1=65 Actual tool orientation
„ I1=66 Projected actual spindle position angle
„ I1=67 Total shift in X
„ I1=68 Total shift in Y
„ I1=69 Total shift in Z
„ I1=71 Programmed status
„ I1=72 Programmed status

520 13 Changed G-functions


„ I1=73 Programmed distance

13.1 Description of changed G-functions with respect to version V500-V530


„ I1=74 Kinematic position of A-rotary axis
„ I1=75 Kinematic position of B-rotary axis
„ I1=76 Kinematic position of C-rotary axis
„ I1=77 Distance to positive software end switch in X
„ I1=78 Distance to positive software end switch in Y
„ I1=79 Distance to positive software end switch in Z
„ I1=80 Distance to negative software end switch in X
„ I1=81 Distance to negative software end switch in Y
„ I1=82 Distance to negative software end switch in Z
„ I1=83 G108 offset in X-axis
„ I1=84 G108 offset in Y-axis
„ I1=85 G108 offset in Z-axis
„ I1=86 G154 offset in X-axis
„ I1=87 G154 offset in Y-axis
„ I1=88 G154 offset in Z-axis
„ I1=89 G218 offset in X-axis
„ I1=90 G218 offset in Y-axis
„ I1=91 G218 offset in Z-axis
„ I1=92 G218 rotation (space angle) in A-direction
„ I1=93 G218 rotation (space angle) in B-direction
„ I1=94 G218 rotation (space angle) in C-direction
Action:
See function G1010.

HEIDENHAIN MillPlus V600 521


13.1 Description of changed G-functions with respect to version V500-V530
G321
G321_I1
The following programming of G321 is not available:
„ I1=6 G Grafics
„ I1=7 Q3 Type
„ I1=15 M2= Tool life monitoring
„ I1=17 B1= Breakage monitoring
„ I1=18 L1= First extra length
„ I1=19 R1= First extra radius
„ I1=20 C1= First extra corner radius
„ I1=21 L2= Second extra length
„ I1=22 R2= Second extra radius
„ I1=23 C2= Second extra corner radius
„ I1=28 Q5= Breakage monitoring cycle (0-9999)
„ I1=29 O Tool orientation
„ I1=30 C6= Cutting width
Action:
See function G1010.

G321_I1=14
With G321 I1=14 E.. the actual tool life CUR_TIME is read.
Cause:
The function of I1=14 has changed: actual tool life CUR_TIME.
Action:
Change the NC program:
„ Read the maximum tool life TIME1 with G321 T.. I1=13 E..
„ Read the actual tool life CUR_TIME with G321 T.. I1=14 E..
„ Calculate the new actual tool rest tool life: actual rest tool life =
maximum tool life TIME1 - actual tool life CUR_TIME

G321_I2
Function G321 I2= is removed
Cause:
Data of the active spare tool cannot be requested directly anymore.
Action:
Data of an active spare tool can be read in two stages:
1 Program G319 I1=3 I2=1 Enn to read the active spare tool number
2 Program G321 T=Enn I1=... to read the requested data of this
spare tool

522 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G322
G322_N1
Address N1= is removed
Cause:
Address N1= was replaced by N5=.
Action:
Program G322 N5=.

G322_E
Address E is removed
Cause:
Address E was replaced by O1=.
Action:
Program G322 O1=
.
.

HEIDENHAIN MillPlus V600 523


13.1 Description of changed G-functions with respect to version V500-V530
G323
G323_O3
The function of address O3= has changed
Cause:
In former versions, with address O3= the number of the E-parameter
was programmed in which the safety distance was written. In this
version, with address O3= the number of the first E-parameter of the
cycle definition is written.
Action:
The safety distance is written in the second E-parameter from the
number of the O3 address. Change the E-parameter number in the NC
program that means the safety distance.

G323_O4
The function of address O3= has changed
Cause:
In former versions, with address O4= the number of the E-parameter
was programmed in which the retract distance was written. In this
version, with address O4= the number of the last E-parameter of the
cycle definition is written.
Action:
The retract distance is written in the third E-parameter from the
number of the O3 address. Change the E-parameter number in the NC
program that means the retract distance.

G324_I1
The following functionality of G324 is removed:
 I1= G-group (1,2,usw.)
„ I1=6 G81, G83, G84, G85, G86, G87, G88, G89, G98.
„ I1=18 G61, G62
„ I1=21 G9
„ I1=29 G106 G108

G326
The following functionality of G326 is removed:
„ I1=2 Position to reference point
„ Reading out during graphical simulation

524 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G327
The following programming of G327 is removed:
„ I1=4 Test run

G328
The programming and the interface to the PLC of G328 and G338 have
changed
Cause:
The functions G328 and G338 have changed:
„ PLC interface is changed
„ Addresses I1 and N1 are replaced by N5
„ Address E of G328 is changed into O1 or O2
„ In this version, function G338 does no longer check whether the
IPLC-signal, defined by N5=, is enabled by the IPLC
Action:
Change the NC program:
„ Replace addresses I1 and N1 by N5
„ For G328 replace address E by O1 or O2

G329
Read/write kinematical correction is changed
Action:
See the changed description of function G329.

G330
Function G330 is replaced by SQL functions
Cause:
Read point memory must be programmed with SQL functions.
Action:
See description of function G1010.

HEIDENHAIN MillPlus V600 525


13.1 Description of changed G-functions with respect to version V500-V530
G331
G331_T_I1=14
With G331 T.. I1=14 E.. the actual tool life CUR_TIME is written.
Cause:
The function of I1=14 has changed: actual tool life CUR_TIME.
In former versions, the rest tool life was meant with I1=14.
Action:
Change the NC program:
„ Read the maximum tool life TIME1 with G321 T.. I1=13 E..
„ Calculate the new actual tool life: actual tool life CUR_TIME =
maximum tool life TIME1 - rest tool life
„ Write the new actual tool life CUR_TIME with G331 T.. I1=14 E..

G331_I1
The following programming of G331 is not available:
„ I1=6 G Graphics
„ I1=7 Q3 Type
„ I1=15 M2= Tool life monitoring
„ I1=17 B1= Breakage monitoring
„ I1=18 L1= First extra length
„ I1=19 R1= First extra radius
„ I1=20 C1= First extra tool corner radius
„ I1=21 L2= Second extra length
„ I1=22 R2= Second extra radius
„ I1=23 C2= Second extra corner radius
„ I1=28 Q5= Breakage monitoring cycle (0-9999)
„ I1=29 O Tool orientation
„ I1=30 C6= Cutting width
Action:
See function G1010.

526 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G350 und G351
Functions G350 and G351 are replaced by G1016
Cause:
The functions write to window or hard disk must be activated with
G1016.
Action:
Replace G350 and G351 by G1016.

G364
Function G364 is not available
Cause:
Calculating an intersection point between two elements is not
available.

G606
Function G606 is not available
Cause:
TT Calibration is not available.

G607
Function G607 is not available
Cause:
TT Measuring tool length is not available.

G608
Function G608 is not available
Cause:
TT Measuring tool radius is not available.

G609
Function G609 is not available
Cause:
TT Measuring length and radius is not available.

HEIDENHAIN MillPlus V600 527


13.1 Description of changed G-functions with respect to version V500-V530
G610
Function G610 is not available
Cause:
TT Tool breakage control is not available.

G611
Function G611 is not available
Cause:
TT Measuring turning tools is not available.

G615
Function G615 is not available
Cause:
Laser: Measuring turning tools is not available.

G631
Function G631 is not available
Cause:
Measure position of inclined plane is not available.

G640
Function G640 is not available
Cause:
Locate table rotation center is not available.

G642
Function G642 is not available
Cause:
Laser: Temperature compensation is not available.

G690
Function G690 is not available
Cause:
Unbalance calibration is not available.

528 13 Changed G-functions


13.1 Description of changed G-functions with respect to version V500-V530
G691
Function G691 is not available
Cause:
Measure unbalance is not available.

G692
Function G692 is not available
Cause:
Unbalance checking is not available.

HEIDENHAIN MillPlus V600 529


Index
Symbols Circular Counter-Clockwise ... 106 E
& ... 68 Circular CW ... 101 E parameters ... 51
Circular Pocket Finishing ... 467 Edit Function for SQL tables ... 472
Numerics Circular Pocket Milling ... 238, 456 Enable Feed/Speed Override ... 142
3D Tool Correction ... 261 Contour Cycle Call ... 291 Enables Defined
Contour Data Definition ... 337 Limit Planes ... 318
A Contour Definition Program ... 336 End Contour Milling ... 334
About these instructions ... 19 Contour Finishing ... 342 End Graphic Model Description ... 298
Absolute Position Approach ... 213 Contour Milling Cycles ... 327 ES parameters ... 53
Absolute Programming ... 240 Contour Pilot Drilling ... 338 Export Formatted Text and E
Activate Cylinder Interpolation ... 294 Contour Pre-Calculation Parameter ... 476
Activate Geometric Calculations ... 194 OFF ... 300
Activate Pallet Zero Point Shift ... 181 On ... 301 F
Activate Tool Exchange in PLC ... 487 Contour Programming ... 302 F ... 22
Activate Zero Point Shift ... 184 Contour Roughing ... 340 F function ... 22
Added functions ... 4, 346 Coordinate system ... 46 F1= ... 23, 24
And ... 69 Corner Inside Measurement ... 388 F2= ... 24
AndAlso ... 70 Corner Outside Measurement ... 386 F3= ... 22, 24
Angle Measurement ... 381 Correct Workpiece Zero Point F5= ... 24
Angle Measurement 2 Holes ... 402 OFF ... 286 F6= ... 24
Arithmetic operators ... 54 ON ... 287 Face Turning ... 421
Axis configurations ... 46 Creating a part program ... 43 Feed in mm/min (inch/min) ... 248
Axis configurations on machine Cycle Call ... 221 Feed in mm/rev (inch/rev) ... 250
tools ... 46 Fixture datum ... 45
D Format of words with path or angle
B Datum Inside Rectangle ... 392 information ... 41
Back-Boring ... 458 Datum Outside Rectangle ... 390 Free Chamfer ... 314
Basic tapping with chip breaking ... 150 Datums ... 44 Free Circular Movement CCW ... 310
Begin Contour Milling ... 335 Deep-Hole Drilling ... 225, 440 Free Circular Movement, CCW,
Begin contour pocket description ... 335 Deep-hole drilling with additional chip Tangential ... 313
Block number N ... 42 break ... 443 Free Circular Movement, CW ... 308
Bolt Hole Circle ... 216 Define Pole Position ... 122 Free Circular Movement, CW,
Boring ... 232, 449 Define up to Eight PLC Values ... 490 Tangential ... 312
Define up to Two PLC values ... 486 Free Contour Selection ... 316
C Definition of Lower Limit Plane ... 319 Free Linear Movement ... 307
Call ... 78 Definition of Upper Limit Plane ... 321 Free Linear Movement,
Cancel Cylinder Interpolation ... 292 Disable Feed/Speed Override ... 143 Tangential ... 311
Cancel G152 ... 283 Disables Limit Free Rounding ... 315
Cancel G54-G59 Zero Point Shift ... 183 Planes ... 317 Functions, not available anymore ... 4
Cancel Geometric Calculations ... 193 Drilling/Centering ... 223
Cancel Mirror Image and Scaling ... 210 Drilling/Centring ... 438 G
Cancel Pallet Zero Point Shift ... 180 Dwell Time ... 107 G0 ... 94
Cancel Tool Radius G1 ... 97
Compensation ... 157 G1010 ... 472
Cancelation of zero point shift ... 180 G1016 ... 476
Cartesian coordinates ... 47 G1017 ... 479
Change Tool or Zero Offset G1018 ... 483
Values ... 280 G1019 ... 486
Changes compared with V5xx ... 4 G1022 ... 487
Checking on Tolerances ... 173 G1029 ... 490
Circle Measurement Inside ... 397 G11 ... 125
Circle Measurement Inside (CP) ... 407 G125 ... 256
Circle Measurement Outside ... 394 G126 ... 257

HEIDENHAIN MillPlus V600 531


Index G14 ... 131 G29 ... 148 G64 ... 194
G141 ... 261 G3 ... 106 G7 ... 108
G145 ... 268 G300 ... 347 G70 ... 208
G148 ... 272 G303 ... 348 G700 ... 421
G149 ... 274 G305 ... 349 G71 ... 209
G150 ... 280 G31 ... 150 G72 ... 210
G151 ... 283 G319 ... 350 G73 ... 211
G152 ... 284 G320 ... 351 G730 ... 424
G153 ... 286 G321 ... 354 G74 ... 213
G154 ... 287 G322 ... 356 G740 ... 426
G17 ... 133 G323 ... 357 G741 ... 429
G174 ... 289 G324 ... 358 G77 ... 216
G179 ... 291 G326 ... 360 G771 ... 430
G18 ... 135 G327 ... 362 G772 ... 432
G180 ... 292 G328 ... 363 G773 ... 434
G182 ... 294 G329 ... 365 G777 ... 436
G19 ... 137 G331 ... 368 G78 ... 219
G195 ... 297 G338 ... 370 G781 ... 438
G196 ... 298 G339 ... 371 G782 ... 440
G2 ... 101 G37 ... 153 G783 ... 443
G22 ... 138 G380 ... 373 G784 ... 445
G23 ... 140 G39 ... 154 G785 ... 447
G240 ... 300 G4 ... 107 G786 ... 449
G242 ... 301 G40 ... 157 G787 ... 451
G25 ... 142 G41 ... 158 G788 ... 453
G251 ... 307 G42 ... 162 G789 ... 456
G251-G269 ... 302 G43 ... 164 G79 ... 221
G252 ... 308 G44 ... 166 G790 ... 458
G253 ... 310 G45 ... 167 G794 ... 461
G26 ... 143 G46 ... 170 G797 ... 463
G261 ... 311 G49 ... 173 G798 ... 465
G262 ... 312 G50 ... 175 G799 ... 467
G263 ... 313 G51 ... 180 G8 ... 117
G265 ... 314 G52 ... 181 G81 ... 223
G266 ... 315 G53 ... 183 G83 ... 225
G269 ... 316 G54..G59 ... 184 G84 ... 228
G27 ... 145 G61 ... 188 G85 ... 230
G270 ... 317 G62 ... 191 G86 ... 232
G271 ... 318 G620 ... 381 G87 ... 234
G272 ... 319 G621 ... 384 G88 ... 236
G273 ... 321 G622 ... 386 G89 ... 238
G275 ... 323 G623 ... 388 G9 ... 122
G276 ... 324 G626 ... 390 G90 ... 240
G277 ... 325 G627 ... 392 G91 ... 242
G28 ... 146 G628 ... 394 G92 ... 244
G280 ... 334 G629 ... 397 G93 ... 246
G280-G286 ... 327 G63 ... 193 G94 ... 248
G281 ... 335 G631 ... 400 G95 ... 250
G282 ... 336 G633 ... 402 G97 ... 251
G283 ... 337 G634 ... 404 G98 ... 252
G284 ... 338 G636 ... 407 G99 ... 253
G285 ... 340 G638 ... 410 General programming information ... 40
G286 ... 342 G639 ... 413 GoTo ... 79

532
Index
Graphic Material Definition ... 253 Main Plane XY, Tool Z ... 133 Read Cycle Data ... 357
Graphic Window Definition ... 252, 297 Main Plane XZ, Tool Y ... 135 Read G Group ... 358
Main Plane YZ, Tool X ... 137 Read IPLC Marker or I/O ... 363
H Mathematical functions ... 56 Read Machine Constant
High-level language ... 67 Measure Inclined Plane ... 400 Memory ... 356
Measurement Center 4 Holes ... 404 Read Measure Probe Status ... 272
I Measuring a Circle ... 170 Read NC System Data ... 483
If ... 80 Measuring a Point ... 167 Read Offset from Kinematic
Inch Measuring Cycles ... 378 Model ... 365
Programming ... 208 Metric Read Operation Mode ... 362
Incremental coordinates ... 48 Programming ... 209 Read Tool Data ... 354
Incremental Programming ... 242 Milling Operation ... 153 Read Tool or Zero Offset Values ... 274
Instructions ... 77 Mirror Image and Scaling ... 211 Reaming ... 230, 447
Introduction ... 18 Mm or inches ... 41 Reference point ... 44
Is ... 71 Modified functions (incompatible) ... 4 Relational operators ... 61
IsNot ... 72 Multipass Milling ... 424 Repeat Function ... 131
J Reset Positioning Functions ... 145
N
Jump Function ... 148 Not ... 74 S
K S function ... 25
O Select Case ... 81
Key-Way Finishing ... 465 One-point geometry ... 126 Sequence of operators in the
Key-Way Milling ... 236, 453 Operation on Circle ... 436 evaluation ... 63
L Operation on Grid ... 434 Specific G Codes for Macros ... 346
Operation on Line ... 430 Spindle Speed ... 251
Lifting Tool on Intervention
Operation on Quadrangle ... 432 Storage of programs ... 43
OFF ... 256
Operators ... 54, 67 Structure of a part program ... 43
ON ... 257
Or ... 75 Subprogram Call ... 138
Like ... 73
OrElse ... 76 Synchronize CNC and PLC ... 349
Limiting the Traverse Ranges ... 284
Linear Chamfer Rounding Cycle ... 125 P T
Linear Measuring Movement ... 268 Pallet datum ... 45 T Function Tool Table ... 35
Logical operators ... 62 Part programs ... 40 Tangential Approach ... 188
M Pocket Finishing ... 463 Tangential Exit ... 191
Pocket Milling ... 234, 451 Tapping ... 228, 445
M function ... 26
Point Definition ... 219 Tapping with Chip Breaking ... 150
M0/M1 program stop ... 26
Polar coordinates ... 48 Tapping, Interpolated ... 461
M19 Oriented spindle stop ... 32
Position Measurement ... 384 Thread Milling Inside ... 426
M19 with Programmable
Positioning Functions ... 146 Thread Milling Outside ... 429
Direction ... 348
Processing Measuring Results ... 175 Tilting Tool Orientation ... 117
M3/M4/M5 spindle ON clockwise/coun-
Program blocks ... 42 Tilting Working Plane ... 108
terclockwise or spindle stop ... 27
Program Call ... 140 Tool change ... 36
M30 End of part program ... 33
Program datum (W) ... 45 Tool life monitoring ... 37
M41/M42/M43/M44 Selecting the
Program Error Call ... 347 Tool Measuring Cycles for Laser
spindle speed range ... 34
Program identifier ... 43 Measurements ... 376
M6 Automatic tool change ... 27
Program words ... 40 Tool Measuring Cycles for Tool Touch
M66 Executing an automatic tool
Protection Zones ... 373 Probe Measuring Systems ... 377
change ... 29
M67 Changing the tool data ... 30 Tool Offset Change ... 154
R Tool Radius Compensation Past End
M7/M8/M9/M13/M14 Coolant no. 2 / Rapid Traverse ... 94
no. 1 on/off ... 31 Point ... 166
Read Actual G Data ... 351 Tool Radius Compensation to End Point
Machine datum ... 44 Read Actual Position ... 360
Machining and Positioning G43 ... 164
Read Actual Technology Data ... 350 Tool Radius Compensation, Left ... 158
Cycles ... 418

HEIDENHAIN MillPlus V600 533


Index Tool Radius Compensation,
Right ... 162
Tool Retract Movement ... 289
Touch Probe Calibration ... 413
Touch Probe Calibration on Ball ... 410
Trigonometric functions ... 59
Turning Cycles ... 470
Two-line geometry ... 126

U
Using tools in the program ... 35

W
While ... 82
Write IPLC Marker or I/O ... 370
Write NC System Data ... 479
Write Offset in Kinematic Model ... 371
Write Tool Data ... 368

Z
Zero Point Shift Abs./Rotation ... 246
Zero Point Shift Incr./Rotation ... 244
Zoning Planes:
Disable ... 323
Enable ... 324
Zoning Planes: Define ... 325

534
DR. JOHANNES HEIDENHAIN GmbH
Dr.-Johannes-Heidenhain-Straße 5
83301 Traunreut, Germany
{ +49 (8669) 31-0
| +49 (8669) 5061
E-mail: info@heidenhain.de
Technical support | +49 (8669) 32-1000
Measuring systems { +49 (8669) 31-3104
E-mail: service.ms-support@heidenhain.de
TNC support { +49 (8669) 31-3101
E-mail: service.nc-support@heidenhain.de
NC programming { +49 (8669) 31-3103
E-mail: service.nc-pgm@heidenhain.de
PLC programming { +49 (8669) 31-3102
E-mail: service.plc@heidenhain.de
Lathe controls { +49 (8669) 31-3105
E-mail: service.lathe-support@heidenhain.de
www.heidenhain.de

538 119-20 · Ver00 · 0.3 · 11/2008 · F&W · Printed in Germany

You might also like