Vous êtes sur la page 1sur 388

840D sl SINUMERIK operate

5-axis HSC machining

Training documentation
Sinumerik 840D sl

Edition 2011.1
Training Manual

This document was produced for training purposes.


Siemens assumes no responsibility for its contents.
840D sl SINUMERIK Operate

Programming of 5-Axis
Manual for Milling machines

Valid for:

Sinumerik 840D sl Software 2.6


Contents
Start

M101
Frames

M102 M103 M104


Cycle800 TRAORI Cycle832

M105
Tool radius
Compensation

End
M101 FRAMES

Brief description

Objective of the Module:

After completion of this module you will understand the correlation between frames and swivel cycle
“CYCLE800”. You get to learn how to create a swivel frame conventionally with various language
commands like TOROT, PAROT and TCARR, to be able to machine oblique surfaces with any orien-
tation in space on a 3+2 axis milling machine. In addition you get to learn how to store a rotation or
translation directly into a system frame.

Description of the Module:

This Module describes the various types of coordinate systems in the frame chain and their correla-
tion. Important frame types are explained in detail with their system frame variables. Through chain-
ing of individual frames you get to learn how to create a swivel frame with toolcarrier, translations and
rotations.
840D sl Sinumerik
Operate V2.6

Contents :

Coordinate systems and frame chain

Overview of data management frames

Frame components

Swivel frames

840D sl Sinumerik Operate Page 1 This document was produced for training purposes.
SIEMENS assumes no responsibility for it’s contents
M101

M101 Page 2 840Dsl SINUMERIK Operate


M101
FRAMES: Description
FRAMES:
This Module describes the various types of coordi- START
nate systems in the frame chain and their correla-
tion. Important frame types are explained in detail
with their system frame variables. Through chain-
ing of individual frames you get to learn how to Coordinate sys-
create a swivel frame with toolcarrier, translations tems and frame
chain
and rotations.

Overview of data
management
frames

Frame components

Swivel frames

FRAMES:
END

Notes :

840Dsl SINUMERIK Operate Page 3 M101


M101 Page 4 840D sl Sinumerik Operate
1.1 Coordinate systems and frame chain Section 1
Cartesian coordinate systems

Notes
Coordinate systems and frame chain
Cartesian coordinate systems

DIN 66217 stipulates that machine tools must use right-angled, rectangular
(Cartesian) coordinate systems. The positive directions of the coordinate
axes are determined using the "Right Hand Rule". The coordinate system
is related to the workpiece and programming takes place independently of
whether the tool or the workpiece is being traversed. When programming,
it is always assumed that the tool traverses relative to the coordinate
system of the workpiece (WCS), which is intended to be stationary.

Picture 1: Right hand rule

X, Y, Z
Axes perpendicular to one
another

A, B, C
Rotary axes rotating about
X, Y, Z

Picture 2: Clockwise, rectangular Cartesian coordinate system

The following coordinate systems are defined:

MCS Machine Coordinate System


BCS Basic Coordinate System
BZS Basic Zero System
SZS Settable Zero System
WCS Workpiece Coordinate System

840D sl Sinumerik Operate Page 5 M101


1.2 Coordinate systems and frame chain
Section 1 Interrelationships between coordinate systems
Notes
Interrelationships between coordinate systems

The coordinate systems are determined by the kinematic transformation


and the FRAMES.
A kinematic transformation is used to derive the BCS from the MCS.
If no kinematic transformation is active, the BCS is the same as the MCS.
The basic frame maps the BCS onto the BKS.
An activated adjustable FRAME G54...G599 ENS is derived from the BNS.
The WCS, which is the basis for programming, is defined by the program-
mable frame.

Picture 1.3: Interrelationship between coordinate systems

WCS

SZS

BZS

BCS

MCS

WCS: Workpiece Koordinaten System


SZS: Settable Zero System
BZS: Basic Zero System
BCS: Basic Coordinate System
MCS: Machine Coordinate System

M101 Page 6 840D sl Sinumerik Operate


1.3 Coordinate systems and frame chain
Interrelationships between coordinate systems Section 1

Machine Coordinate System (MCS) Notes

The machine coordinate system (MCS) is made up of all physically avail-


able machine axes.

Picture 4: MCS with machine axes X, Y, Z, A, C (5-axis machine Kinematic type P)

Kinematic transformation
The workpiece is always programmed in a two- or three-dimensional, right-
angled coordinate system (WCS). However, such workpieces are being
programmed ever more frequently on machine tools with rotary axes or
linear axes not perpendicular to one another. Kinematic transformation is
used to represent coordinates programmed in the workpiece coordinate
system (rectangular) in real machine movements.
The kinematic transformation is defined in the toolcarrier-system variables
($_TC_TCARR[n]) of the kinematic chain in form of a data record, see sec-
tion 4 in this module. (Additional information about this subject can be
found in module M102 CYCLE800 “Swivel 3+2“)

Basic coordinate system (BCS)


The basic coordinate system (BCS) consists of three mutually perpendicu-
lar axes (geometry axes) as well as other special axes, which are not inter-
related geometrically.
Machine tools without kinematic transformation
BCS and MKS always coincide when the BCS can be mapped onto the
MCS without kinematic transformation (up to three axes are mapped onto
the MCS). On such machines, machine axes and geometry axes can have
the same names.

Machine zero point

Picture 1.5: MCS=BCS without kinematic transformation

840D sl Sinumerik Operate Page 7 M101


1.4 Coordinate systems and frame chain
Section 1 Interrelationships between coordinate systems
Notes
Machine tools with kinematic transformation
The BCS and MCS do not coincide when the BCS is mapped onto the
MCS with kinematic transformation (e.g., TRANSMIT / face transformation,
TRAORI / 5-axis transformation or more than three axes can be mapped
onto the MCS). On such machines the machine axes and geometry axes
must have different names.

Picture 1.6: Kinematic transformation between the MCS and BCS

External zero offsets (additive offsets)


The "zero offset external" is an axial offset. Unlike with frames,
no components for rotation, scaling and mirroring are possible.

Picture 1.7: Zero offset external between BCS and BZS

Note:
The system frame for the external zero offset is only availabel if configured.
If not configuerd the external zero shift is interpolated as usual as an over-
laid movement of the axis

Setting the offset values


The offset values are set via:
 PLC (by describing system variables)
 The operator panel (from menu "Current zero offsets")
 NC Program (By assigning to system variable $AA_ETRANS[axis])

M101 Page 8 840D sl Sinumerik Operate


1.5 Coordinate systems and frame chain
Interrelationships between coordinate systems Section 1

Activation of the offset values Notes


The 0/1 edge of the following PLC signal activates the previously defined
offset values: DB31, ... DBX3.0 (accept external zero offset).
The 0/1 edge change is only evaluated in Automatic operating mode.

Effect of activation
The offset for an axis becomes active when the first motion block for this
axis is executed after the offset is activated.
Example of possible chronological sequence:
N10 G0 X100
N11 X150 ; A new "Zero offset external" is activated by the PLC during this motion
N12 X200 ; The new "Zero offset external" is applied due to G0 programming at
the end of the block (X200), if no velocity reserve is available (100%)
The "Zero offset external via system frame" is applied immediately.
Channel-specific system frames can be configured through the following
machine data: MD28082 $MC_MM_SYSTEM_FRAME_MASK
(System frames SRAM)

Programming
Setting a new offset via the axis-specific system variables:
$AA_ETRANS[axis]=Ri
The instruction below reads the axis-specific active offset value:
Ri=$AA_ETRANS[axis]

Note:
The read value can then differ from the previously set value, if the set
value has not yet been activated.
The read value corresponds to a value set previously, if the most recently
set value has not yet been activated.

DRF offset
The DRF offset enables the adjustment of an additional incremental zero
offset for geometry and additional axes in the basic coordinate system
through handwheel.
The DRF offset can be read via the axis-specific system variable:
$AC_DRF[<Axis>]

Overlaid movements
The "Superimposed motion" of the programmed axis can only be accessed
from synchronized actions via the system variable $AA_OFF[axis].

Run-up
After run-up (POWER ON) the last used offset values for the "Zero offset
external" are stored and do not become effective again until there is a re-
newed activation signal.
System frames are retained during Power ON, depending on the following
machine data: MD24008 $MC_CHSFRAME_POWERON_MASK (reset
system frames after Power On)

840D sl Sinumerik Operate Page 9 M101


1.6 Coordinate systems and frame chain
Section 1 Interrelationships between coordinate systems
Notes
Basic zero system (BZS)
The basic zero system (BZS) is the basic coordinate system with a basic
offset.

Picture 1.8: Basic offset between BCS and BZS

Basic offset
The basic offset describes the coordinate transformation between BCS
and BZS. It can be used, for example, to define the palette window zero.
The basic offset comprises:
 Zero offset external
 DRF offset
 Superimposed motion
 Chained system frames
 Chained basic frames

Picture 1.9: Example of the use of the basic offset

Note:
Use the 3rd basic offset onwards for your own applications.
The 1st and 2nd basic offset are reserved for PRESET and the "Zero off-
set external".

M101 Page 10 840D sl Sinumerik Operate


1.7 Coordinate systems and frame chain
Interrelationships between coordinate systems Section 1

Settable zero system (SZS) Notes

The "settable zero system" (SZS) is the workpiece coordinate system


WCS with a programmable frame (viewed from the perspective of the
WCS). The workpiece zero is defined by settable FRAMES G54 to G599.

Picture 1.10: Settable FRAME G54 ... G599 between BNS and ENS

Programmable offsets act on the "settable zero system". All programmable


offsets refer to the "settable zero system".

WCS actual-value display in WCS or SZS


The actual values of the axes in the machine coordinate system (MCS) or
the WCS can be displayed on the HMI operator interface. For displays in
WCS, the actual values can also be displayed in relation to the SZS. The
corresponding parameterization takes place through the machine data:
MD9424 $MM_MA_COORDINATE_SYSTEM (coordinate system for ac-
tual value display)

Value MD9424 Meaning


0 Actual-value display in relation to the WCS
1 Actual-value display in relation to the SZS

Note:
Display of the current coordinate system
When "Actual-value display in relation to the SZS" is active, the WCS is
still displayed on the HMI operator interface as the coordinate system to
which the actual-value display relates.
Example:
Actual-value display in relation to the WCS or SZS

NC Code Actual value display: Actual value display:


Axis X (WCS) Axis X (SZS)
N10 X100 100 100
N20 X0 0 0
N30 $P_PFRAME=CTRANS(X,10) 0 10
N40 X100 100 110

840D sl Sinumerik Operate Page 11 M101


1.8 Coordinate systems and frame chain
Section 1 Interrelationships between coordinate systems
Notes
Workpiece coordinate system (WCS)
The workpiece coordinate system (WCS) is the programming basis.

Picture 1.11: Programmable FRAME between SZS and WCS

Overview: Coordinate systems in HMI menu „Work offset“

DRF: Handwheel offset


Rotary table reference: $P_PARTFRAME
Basic reference: BZS (Basic Zero System)
Total basic WO:
G54: SZS (Settable Zero System)
Tool reference: $P_TOOLFRAME
Workpiece ref.: $P_WPFRAME
Programmed WO: WCS (TRANS, ATRANS)
Cycle reference: $P_CYCFRAME
Total WO: $P_ACTBFRAME

M101 Page 12 840D sl Sinumerik Operate


1.9 Coordinate systems and frame chain
Suppression of frames Section 1

Suppression of frames Notes

Programming

Command Meaning
G53 Non-modal suppression of the following frames:
 System frame for cycles
 Programmable frame
 System frame for transformations, workpieces, TOROT and
TOFRAME
 Active settable frame
G153 Non-modal suppression of the following frames:
 System frame for cycles
 Programmable frame
 System frame for TOROT and TOFRAME, workpieces
 Active settable frame
 All channel-specific and NCU global basic frames
 System frames for PAROT, PRESET, scratching, ext. ZO
SUPA Implicit preprocessing stop and non-modal suppression of frames
analog G153 and additional
 Handwheel offsets (DRF)
 [ext. zero offset]
 Overlaid motion
G500 Modal activation of the G500 frame. The G500 frame should be a
zero frame.
DRFOF Deactivate (clear) the handwheel offsets (DRF)

Frame suppressions SUPA, G153 and G53 lead to the WCS, SZS and pos-
sibly the BZS jumping when frame suppression is active. The behavior for
position display and predefined position variables can be changed with the
following machine data: MD24020 $MC_FRAME_SUPPRESS_MODE

840D sl Sinumerik Operate Page 13 M101


2.1 Overview of the data management frames
Section 2 Frame-types
Notes
Overview of the data management frames
Frame-types

The following data management frame types are available:


 System frames (see diagram)
 Basic frames ($P_NCBFR[n], $P_CHBFR[n])
 Settable frames ($P_UIFR[n])
Active frames:
 Programmable frames ($P_PFRAME[n])

Apart from the programmable frame, all types have a frame in the data
management (data management frame) and an active frame.
For a programmable frame, there is only one active frame.

Writing frames
Data management frames and active frames can be written from the part
program. Only data management frames can be written via the user inter-
face.

Archiving frames
Only data management frames can be archived.

M101 Page 14 840D sl Sinumerik Operate


2.2 Overview of the data management frames
Frame-types Section 2

System frames (see diagram) Notes

System frames are only described by system functions, such as PRESET,


scratching, zero offset external and oblique processing. There are up to
seven system frames per channel.
The valid system frames in the channel can be defined via machine data:
MD28082 $MC_MM_SYSTEM_FRAME_MASK (System frames SRAM)
The system frame for PRESET and scratching and the system frame for
cycles are the default. Channel-specific system frames are configured as
bit codes, in accordance with the table below:
Bit Vorbesetzung Systemframe
0 1 PRESET and scratching

1 0 Zero offset external via system frames

2 0 TCARR and PAROT with an orientable toolcarrier (rotary table)

3 0 TOROT and TOFRAME

4 0 Frame for workpiece reference points

5 1 Frame for cycles

6 0 Frame for selection and deselection of transformations

Example:
$MC_MM_SYSTEM_FRAME_MASK = 'B001101' means that
there are three system frames; one for PRESET, one for PAROT and one
for TOROT and TOFRAME.
The system frame mask is used to define if the corresponding function has
a system frame.

System frames in data management


The system frames are stored in the static NC memory and can, therefore,
be archived and reloaded. System frames in data management can be
read and written in the program using the following variables:

Systemvariable Bedeutung
$P_SETFR System frame for PRESET and scratching (Set-Frame)
$P_EXTFR System frame for zero offset external (Ext.-Frame)
$P_PARTFR System frame for TCARR and PAROT (Part-Frame)
$P_TOOLFR System frame for TOROT and TOFRAME (Tool-Frame)
$P_WPFR System frame for workpiece ref. points (Workpiece-Frame)
$P_CYCFR System frame for cycles (Cycle-Frame)
$P_TRAFR System frame for transformations (Transformation-Frame)

All write operations to these frames must be executed using system func-
tions. For cycle programmers, it has been made possible to write the
frames using the above variables.
System frames in the data management are either activated directly with
the system function TOROT, PAROT, etc., or with a G500, G54 to G599.

840D sl Sinumerik Operate Page 15 M101


2.3 Overview of the data management frames
Section 2 Frame-types
Notes
Active system frames
The active system frames are the frames, which are active in the main run.
An appropriate current system frame exists for each current system frame
in the data management. Only with the activation of the data management
frame are the values taken into account with regard to the preprocessing.
The following current system frames exist:
 $P_SETFRAME
In the part program, the variable $P_SETFRAME can be used to read
and write the current system frame for PRESET and scratching.

 $P_EXTFRAME
In the part program, the variable $P_EXTFRAME can be used to read
and write the current system frame for the zero offset external.

 $P_PARTFRAME
In the part program, the variable $P_PARTFRAME can be used to read
and write the current system frame for TCARR and PAROT for orient-
able tool holders.

 $P_TOOLFRAME
In the part program, the variable $P_TOOLFRAME can be used to read
and write the current system frame for TOROT and TOFRAME.

 $P_WPFRAME
In the part program, the variable $P_WPFRAME can be used to read
and write the current system frame for setting workpiece reference
points.

 $P_CYCFRAME
In the part program, the variable $P_CYCFRAME can be used to read
and write the current system frame for cycles.

 $P_TRAFRAME
In the part program, the variable $P_TRAFRAME can be used to read
and write the current system frame for transformations.

 $P_ISO1FRAME to $P_ISO4FRAME
One can read and write the current system frames for special ISO lan-
guage commands in the parts program through the variables.

 $P_RELFRAME
In the part program, the variable $P_RELFRAME can be used to read
and write the current system frame for relative coordinate systems.

 $P_ACSFRAME
The currently resulting frame that is defined by the ENS-(ACS) coordi-
nate system, can be read and written through the $P_ACSFRAME vari-
able.

Note:
All the above variables return a zero frame if the system frame is not con-
figured through MD28082.

M101 Page 16 840D sl Sinumerik Operate


2.4 Overview of the data management frames
Frame-types Section 2

Basic frames $P_CHBFR[n] Notes

Channel basic frames $P_CHBFR[n]


The number of basic frames in the channel can be configured via the ma-
chine data: MD28081 $MC_MM_NUM_BASE_FRAMES
The minimum configuration is designed for at least one basic frame per
channel. A maximum of 16 basic frames per channel is possible. In addi-
tion to the 16 basic frames, there can also be 16 NCU-global basic frames
in the channel.
System variable $P_CHBFR[n] can be used to read and write the basic
frame field elements. While writing a basic frame field element, the chained
total frame is not activated. Instead, the activation takes place only after a
G500, G54..G599 instruction is executed. The variable is used primarily for
storing write operations to the basic frame on HMI or PLC. These frame
variables are saved by the data backup.

Current channel basic frames $P_CHBFRAME[n]


System variable $P_CHBFRAME[n] can be used to read and write the cur-
rent channel basic frame field elements. The resulting total basic frame is
calculated by means of the write process in the channel. Whenever a basic
frame is written, the complete basic frame is calculated again.
.

Settable frames $P_UIFR[n]


The number of NCU global settable frames is set through the following ma-
chine data: MD18601 $MN_MM_NUM_GLOBAL_USER_FRAMES
(number of global, pre-defined user frames (SRAM))
The number can be between 0 and 100. If the MD has a value greater than
zero, there are only NCU global settable frames, otherwise the following
machine data specifies the number of channel-specific settable frames:
MD28080 $MC_MM_NUM_USER_FRAMES (number of settable frames
(SRAM))
System variable $P_UIFR[n] can be used to read and write the frame field
elements. The frame is not activated simultaneously when writing a field
element, but rather activation only takes place on execution of a G500,
G54, to G599 instruction. For NCU global frames, the changed frame only
becomes active in those channels of the NCU, which execute a G500, G54
to G599 instruction. The variable is used primarily for storing write opera-
tions from HMI or PLC. These frame variables are saved by the data
backup.

Current settable frame $P_IFRAME


The predefined frame variable $P_IFRAME can be used to read and write
the current settable frame, which is valid in the channel, in the part pro-
gram. The written settable frame is immediately included in the calculation.
In the case of NCU global settable frames, the modified frame acts only in
the channel in which the frame was programmed. If the frame is to be
modified for all channels of an NCU, $P_UIFR[n] and $P_IFRAME must be
written simultaneously. The other channels must then activate the corre-
sponding frame, e.g., with G54.

Programming example of a settable frame:


Writing of a course coordinate translation into a settable zero point shift
e.g. G54: $P_UIFR[1] = CTRANS(X, 10, Y, 90, Z, 40)

840D sl Sinumerik Operate Page 17 M101


2.4 Overview of the data management frames
Section 2 Frame-types
Notes
Programmable frames $P_PFRAME
Programmable frames are available only as active frames.
This frame is reserved for the programmer.
The programmable frame can be maintained with the machine data:
MD24010 $MC_PFRAME_RESET_MODE = 1 ("Reset mode for program-
mable frame") during RESET.
This functionality is important, most of all if after a RESET one still wants to
retract out of an oblique hole.
The translation component of the programmable frame is split into an ab-
solute component and a component for the total of all additively pro-
grammed translations. The absolute component can be changed using
TRANS, CTRANS or by writing the translation components, in which the
additive component is set to zero
The absolute component of the translation is stored in the coarse offset
component and the additive translation component is stored in the fine off-
set component. To this end, the programmable frame or the fine offset is
expanded.

Total translation

Coarse Fine
or or
absolute Translation additive translation

The fine component is transferred on saving the programmable frame in a


local frame variable (LUD or GUD) and on rewriting.
The table below shows the effect of various program commands on the
absolute and additive translation.

Coarse or absolute Fine or additive


translation translation
TRANS X10 10 0
ATRANS X10 unchanged Old_Fine + 10
CTRANS(X,10) 10 0
CTRANS( ) 0 0
CFINE(X,10) 0 10
$P_PFRAME[X,TR] = 10 10 0
$P_PFRAME[X,FI] = 10 unchanged 10

M101 Page 18 840D sl Sinumerik Operate


3.1 Programmable frame components
General explanation Section 3

Programmable frame components Notes


General explanation

A frame is a closed calculation rule (algorithm) that translates one Carte-


sian coordinate system into another and is a data structure that contains
values for offset (TRANS), fine offset (FINE), rotation (ROT), mirroring
(MIRROR) and scaling (SCALE) for the geometry and special axes.

A frame consists of the following components:

Frame components Programmable with:


Translation Coarse TRANS (absolute translation component
ATRANS (additive translation component)
CTRANS (zero point offset for multiple axes)
G58 (axial zero offset)
Fine CFINE
G59 (axial zero offset)

Rotation ROT / ROTS


AROT / AROTS
CROTS
Scaling SCALE
ASCALE
Mirroring MIRROR
AMIRROR

Features in relation to axes


The rough and fine offsets, scaling and mirroring can be programmed for
geometry and special axes. A rotation can only be programmed for geome-
try axes.

Frame chaining
Frame components or complete frames can be combined to form a com-
plete frame using the chain operator ":" , for example:
$P_PFRAME = CTRANS(x,10) : CROT(z,30)

840D sl Sinumerik Operate Page 19 M101


3.2 Programmable frame components
Section 3 General explanation
Notes
Frame types

Axial frame
An axial frame contains the frame values of an axis.
Example of the data structure of an axial frame in the HMI menu
“Work offset - details”:

Channel-specific frame
A channel-specific frame contains frame values for all channel axes
(geometry, special and machine axes).
Rotations (ROT) are only included in the calculation for geometry axes.
A channel-specific frame is only active in the channel in which the frame is
defined.
Example of the data structure of a channel-specific frame in the HMI menu
“Work offset - details”:
 Geometry axes: X, Y, Z
 Machine rotary axes: A1, C1
 Special axes: SP1

Global frame
A global frame contains the frame values for all machine axes.
A global frame is active in all channels of the NC.

Example of the data structure of a channel-specific frame in the HMI menu:


 Machine axes: AX1, ... AX5

2
3
4
5

Effect
On activation of a frame a static coordinate transformation, based on the
frame values and a defined calculation rule, is being executed for the axes
included in the frame.

M101 Page 20 840D sl Sinumerik Operate


3.3 Frame components
Translation (offset) TRANS, ATRANS and CTRANS Section 3

Translation (offset) TRANS, ATRANS and CTRANS Notes

Rough offset
The rough offset is normally specified by the machine operator.
The programmable offsets for all geometry axes and special axes are
specified with TRANS.

Programming
The programming of the translation is done via the following programming
commands:

Command Explanation
$P_UIFR[1] = CTRANS(x,10,y,10,z,10) Writing of a coarse offset into the storable
systemvariable for zero offset G54

$P_UIFR[1,x,tr] = 10 Writing to a frame component into the


storable systemvariable for a coarse zero
offset G54 along X
TRANS X10 X10 Z10 Programmable zero offset absolute

ATRANS X10 Y10 Z10 Programmable zero offset incremental

TRANS Cancel the programmable zero offset for


all axes. The previously last called sto-
rable zero offset (G54-G599) is again
reference for the WCS.

840D sl Sinumerik Operate Page 21 M101


3.2 Frame components
Section 3 Translation (offset) TRANS, ATRANS and CTRANS
Notes
Fine offset
This can be defined by the machine operator, within certain input limits.

Programming
The fine offset can be programmed in the program using command CFINE
(x, .., y, ...). The coarse offset is defined with CTRANS(...).
Coarse and fine offset add up to the total offset.
$P_UBFR = CTRANS(x, 10) : CFINE(x, 0.1) : CROT(x, 45)
$P_UIFR[1]=CFINE(x, 0.5, y, 1.0, z, 0.1)
Access to the individual components of the fine offset is achieved through
component specification FI.
finex = $P_UIFR[ $P_UIFRNUM, x, FI ]
Fine offset can be programmed only if:
MD18600 $MN_FRAME_FINE_TRANS = 1
if this is not the case, then each assignment of a fine offset to a settable
frame and to the basic frame causes the alarm "FRAME: fine offset not
possible".

A fine offset changed by the operator does not apply until after activation of
the corresponding frame, i.e., activation via G500, G54 to G599.
Once activated, a fine offset of a frame remains active the whole time the
frame is active. When the offset of the current frame is displayed, the total
offset (coarse offset and fine offset) is output.
Parameterization
The corresponding fine offset parameterization takes place through the
machine data: MD18600 $MN_MM_FRAME_FINE_TRANS
Value Meaning

0 The fine offset cannot be entered or programmed.

1 Fine offset possible for settable frames, basic frames and the programma-
ble frame via command or program.

Application example:
On this workpiece, the illustrated shapes recur several times in the same
program. The machining sequence for this shape is stored in a subpro-
gram. You use the translation to set only those workpiece zeros and then
call up the subprogram

N10 G17 G54;Workplane X/Y, work offset


N20 G0 X0 Y0 Z2 ;Approach starting point
N30 TRANS X10 Y10 ;Absolute offset
N40 L10 ;Subprogram call
N50 TRANS X50 Y10 ;Absolute offset
N60 L10 ;Subprogram call
N50 TRANS X10 Y50 ;Absolute offset
N60 L10 ;Subprogram call
N70 M30 ;End of program

M101 Page 22 840D sl Sinumerik Operate


3.3 Frame components
Rotations for geometry axes ROT, AROT, CROT Section 3

Rotations for geometry axes ROT, AROT, CROT Notes

Function
The direction of rotation about the coordinate axes is determined by means
of a right-hand, rectangular coordinate system with axes X, Y and Z.
If the rotary motion is in a clockwise direction when looking in the positive
direction of the coordinate axis, the direction of rotation is positive. A, B
and C identify rotations whose axes are parallel to X, Y and Z.

Order of rotation
The corresponding order of rotation in the frame is parameterized through
the machine data MD10600 $MN_FRAME_ANGLE_INPUT_MODE and is
independent of the order of the programmed axes identifiers in the NC
block. It is possible to program up to 3 axes rotations in one NC block.

Value Meaning
0 Programming Euler-angles
1 Programming RPY-angles

RPY-angles (Roll, Pitch, Yaw)


Rotations with a RPY angle are carried out in the order Z, Y', X''.
Rotation about Z Rotation about Y’ Rotation about X”

The angles are only clearly and uniquely defined in the following ranges:
-180 <= x <= 180
-90 < y < 90
-180 <= z <= 180

840D sl Sinumerik Operate Page 23 M101


3.4 Frame components
Section 3 Rotations for geometry axes ROT, AROT, CROT
Notes
EULER-Winkel
Rotations with a Euler angle are carried out in the order Z, X', Z''.
Rotation about Z Rotation about X’ Rotation about Z”

The angles are only clearly and uniquely defined in the following ranges:
0 <= x < 180
-180 <= y <= 180
-180 <= z <= 180

The written angles can be uniquely read back again in these areas. When
rotations that are larger than the specified angles are entered, these are
converted to a mode of representation that does not exceed the specified
range limits.

Example RPY
$P_UIFR[1]= returns when reading $P_UIFR[1]=
crot(x,10,y,90,z,40) back: crot(x,0,y,90,z,30)
$P_UIFR[1]= supplies when reading: $P_UIFR[1]=
crot(x,190,y,0,z,-200) crot(x,-170,y,0,z,160)

On writing and reading frame rotation components, these limits should be


observed so the same results are achieved on writing and reading, or on
repeated writing.

M101 Page 24 840D sl Sinumerik Operate


3.5 Frame components
Rotations for geometry axes ROT, AROT, CROT Section 3

Programming Notes

The programming of a rotation is done via the following NC commands:

Command Description

ROT Absolute rotation about the geometry axes X, Y, Z with reference to


the active zero offset number G500, G54 to G599

RPL Defines the angle for plane rotation with reference to the active
work plane G17-G19.

AROT Additive rotation about the geometry axes X, Y, Z with reference to


the active zero offset number G500, G54 to G599

XYZ Defines the projection angles for ROTS and AROTS.


Defines the rotation about the geometry axes for ROT and AROT.
The order of rotation is settable with machine data MD10600.
Whereby rotation via RPY-angles is default setting.

ROTS Absolute rotation with definition of projection angles with reference


to the active zero offset number G500, G54 to G599

AROTS Additive rotation with definition of projection angles with reference


to the active zero offset number G500, G54 to G599

CRPL Constant rotation in the plane (see parameters page 24)

CROTS, For writing of absolute rotations defined with projection angles or


CROT rotation about geometry axes (RPY, Euler) into the system frame.

Examples:
Programmable rotation absolute about the geometry axes X and Y of 10°
(only active during program run):
ROT X10 Y10
Programmable rotation absolute in the active plane of 90° (with active G17
the XY-plane is rotated about Z) (only active during program run):
CRPL(0,90)
Writing of a rotation about the geometry axes X and Y of 10° into the sto-
rable system frame G54 (zero offset):
$P_UIFR[1]=CROT(x,10,y,10)
Writing of a single rotation about the geometry axes X of 10° into the sto-
rable system frame G54 (zero offset):
$P_UIFR[1,X,RT]=10

840D sl Sinumerik Operate Page 25 M101


3.6 Frame components
Section 3 Rotations for geometry axes ROT, AROT, CROT
Notes
Constant Rotation Plane - CRPL
The predefined function "Constant Rotation Plane", allows a rotation to be
programmed in any plane for each frame: FRAME CRPL(INT,REAL).
This method offers the advantage that no axis identifier, around which a
rotation should be executed, has to be specified for a geometry coordinate
axis.

Parameter:
INT 0: Rotation in the active plane G17, G18, G19
1: Rotation about Z
2: Rotation about Y
3: Rotation about X
REAL Rotation angle in degree
RPY: -180 <= x <= 180
-90 <= y <= 90
-180 <= z <= 180
Euler: -180 <= x <= 180
0 <= y <= 180
-180 <= z <= 180
The user must keep to the named angles, in the interests of a
unique backward calculation. If the limits are violated, a unique
backward calculation is impossible. Entry is not aborted with an
alarm.

Chaining with frames


CRPL() can be chained with frames and known frame functions such as
CTRANS(), CROT(), CMIRROR(), CSCALE(), CFINE().

Examples:
$P_PFRAME = $P_PFRAME : CRPL(0,30)
$P_PFRAME = CTRANS(x,10) : CRPL(1,30)
$P_PFRAME = CROT(x,10) : CRPL(2,30)
$P_PFRAME = CRPL(3,30) : CMIRROR(y)

M101 Page 26 840D sl Sinumerik Operate


3.7 Frame components
Rotations for geometry axes ROT, AROT, CROT Section 3

Frame Rotations ROT, AROT (axis by axis) Notes

Where a frame is to be defined to describe a rotation around more than


one axis, this is achieved through chaining individual rotations. A new rota-
tion is hereby always performed in the already rotated coordinate system.
This also applies to programming in a block e.g. with
ROT X... Y... Z...,
and when constructing a frame in multiple blocks, e.g. in the format:
N10 ROT X...
N20 AROT Y...
N30 AROT Z…
Picture 3.1: Rotation about geometry axes (axis by axis)
1 2

Programming example (picture 3.1):


N10 ROT Z-45 Y54.736 X0
or
N10 ROT Z-45 ;(1)
N20 AROT Y54.736 ;(2)

Note:
The sequence of rotations is defined by machine data
MD10600 $MN_FRAME_ANGLE_INPUT_MODE
and is independent of the sequence of the axis letters in the block

Frame Rotations with CROTS (solid angles)


In workpiece drawings, oblique surfaces are frequently described by way
of solid angles, i.e. the angles, which the intersection lines of the oblique
plane form with the main planes (XY, YZ, ZX planes) (see picture 3.2).
The conversion of these solid angles into the angles of rotation of a
chaining of individual rotations is too time consuming.
For this reason, the commands ROTS, AROTS and CROTS are used, with
which the rotations can be immediately described as solid angles.

840D sl Sinumerik Operate Page 27 M101


3.8 Frame components
Section 3 Drehungen für Geometrie-Achsen ROT, AROT, CROT
Notes
Picture 3.2: Rotation with definition of solid angles
3 4
Z Z

Y Y

X X
30°
45°
45°

Reference point
for rotation

Programming example (picture 3.2):


N10 ROTS X45 Y45 (3)
N20 AROTS Z30 (4)
The orientation of a plane in space is defined unambiguously by specifying
two solid angles (3). The third solid angle is derived from the first two.
Therefore, a maximum of 2 solid angles may be programmed. If a third
solid angle is specified, an alarm will be triggered.
It is permissible to specify a single solid angle. The rotations which are per-
formed with ROTS or AROTS in this case, are identical to those for ROT
and AROT.
An expansion of the existing functionality arises only in cases where ex-
actly two solid angles are programmed.
The two programmed axes define a plane, the non-programmed axis de-
fines the related third axis of a right-hand coordinate system. Which axis is
first and which second is then unambiguously defined for both pro-
grammed axes (the definition corresponds to those found in the plane defi-
nition of G17/G18/G19).
The picture 3.2 shows an example where X and Y are programmed. Y
here gives the angle, by which the X axis must rotate around the Y axis to
bring the X axis to the line of intersection formed by the oblique plane and
the XZ plane. The same principle applies for the programmed value of X.
The specification of the solid angle does not define the orientation of a 2D
coordinate system within the plane (i.e. the angle of rotation around the
surface normal vector). The position of the coordinate system is deter-
mined so that the rotated first axis lies in the plane, which is surrounded by
the first and third axes of the non-rotated coordinate system.
This means:
 When programming X and Y the new X axis lies in the old ZX plane.
 When programming Z and X the new Z axis lies in the old YZ plane.
 When programming Y and Z the new Y axis lies in the old XY plane.
If the required coordinate system does not correspond to this basic setting,
then an additional rotation (4) must be performed with AROT....
On programming the solid angles, they are converted into the equivalent
RPY or Euler angles, depending on machine data:
MD10600 $MN_FRAME_ANGLE_INPUT_MODE.
These then appear also in the display.

M101 Page 28 840D sl Sinumerik Operate


3.9 Frame components
Scaling and Mirroring with SCALE and MIRROR Section 3

Scaling Notes
SCALE is used to program the scale factors for all geometry axes and
special axes. If a new scaling is to be based on a previous scaling, rota-
tion, translation or mirroring, then ASCALE must be programmed.

Programming
The program commands below are used to program the scaling:
$P_UIFR[1] = CSCALE(x,1,y,1)
SCALE x = 1y = 1
$P_UIFR[1,x,sc] = 1

Mirroring

MIRROR is used to program the mirror for all geometry axes. If a new mir-
ror is to be based on a previous mirror, rotation, translation or scaling, then
AMIRROR must be programmed.

Programming
Mirroring is programmed via the following commands:
$P_UIFR[1] = CMIRROR(x,1,y,1)
MIRROR x = 1y = 1
$P_UIFR[1,x,mi] = 1

Parameterization
The axis to be mirrored can be set via the following machine data:
MD10610 MIRROR_REF_AX (reference axis for the mirroring)
Value Meaning
0 Mirroring is performed around the programmed axis.
1, 2 or 3 Depending on the input value, mirroring is mapped onto the mirroring
of a specific reference axis and rotation of two other geometry axes.

840D sl Sinumerik Operate Page 29 M101


3.10 Frame components
Section 3 Example programmable frame rotation in the plane
Notes
Example programmable frame rotation in the plane

With this workpiece, the illustrated shapes recur several times in the same
program. Rotations have to be performed in addition to the translation, be-
cause the shapes are not arranged parallel to the axes.

N10 G17 G54 ;Working plane X/Y, workpiece zero


N20 TRANS X20 Y10 ;Absolute offset
N30 L10 ;Subprogram call
N40 TRANS X55 Y35 ;Absolute offset
N50 AROT RPL=45 ;Rotation of coordinate system in plane 45°
N60 L10 ;Subprogram call
N70 TRANS X20 Y40 ;Absolute offset
;(cancels all previous frames)
N80 AROT RPL=60 ;Additive rotation through 60°
N90 L10 ;Subprogram call
N100 G0 X100 Y100 Z100 ;Retraction
N110 M30 ;End of program

L10.SPF
N10 G0 X-10 Y-10
N20 G1 Z-5 F500
N30 G41 X0
N40 G1 Y20 RND=7
N50 X23
N60 X30 Y12
N70 Y0
N80 X0
N90 G40 X-10 Y-10
N100 G0 Z10

M101 Page 30 840D sl Sinumerik Operate


3.11 Frame components
Example programmable frame rotation in space Section 3

Example frame rotation in space Notes

In this example, paraxial and inclined workpiece surfaces under 30°


are to be machined in one setting. For this the workpiece coordinate
system has to be first aligned with the inclined surface. The second
step is then the alignment of the tool perpendicular to the inclined sur-
face, in the rotated plane.
25

N10 G17 G54 ;X/Y Workplan, storeable zero shift


N11 TRANS X10 Y10 Z25 ;Absolute offset WCS
N12 L10 ;Subprogram call
; ***Ausrichten WKS***
N13 ATRANS X35 ;Additive offset WCS
N14 AROT Y30 ;Additive rotation WCS
N15 ATRANS X5 ;Additive offset WCS

;***Tool alignement head kinematic type T with B-axis***


N16 TCARR=1
N17 G0 B+30
N18 TOROT
;***Tool alignement head/table kinematic type M with B-axis***
N19; TCARR=2
N20; G0 B+30
N21; TOROT
N22; PAROT
;***Tool alignement table kinematic type P with B-axis***
N23; TCARR=3
N22; G0 B+30
N24; PAROT
N25 TOROTOF
N26; PAROTOF ;Only for typ P and M
N27 L10 ;Subprogram call
N28 G0 Z100 ;Retraction
N29 M30 ;End of program

Note:
The alignement of the tool is explained in detail in section 4.

840D sl Sinumerik Operate Page 31 M101


3.12 Frame components
Section 3 Example multi-side machining
Notes
Example multi-side machining

In this example, identical shapes on two perpendicular workpiece surfaces


are machined by using subprograms. The setup of the infeed direction,
working plane and zero point in the new coordinate system on the right-
hand workpiece surface 2 matches that of the top surface 1.
The conditions required for subprogram execution apply as before: Work-
ing plane G17, coordinate plane X/Y, infeed direction Z.

2
5

;Side 1:
N10 G17 G54 ;Workplane X/Y, storable zero point shift
N11 L10 ;Subprogram call
;Side 2:
N12 TRANS X100 ;Absolute offset WCS in X-direction
N13 AROT Y90 ;Additive rotation WCS about Y-axis 90°
N14 L10
Alternatively the frame translations and rotations for Side 3, 4 and 5 would
be as follows:
;Side 3:
N15 TRANS X100 Y100
N16 AROT Z90
N17 AROT Y90
N18 L10
;Side 4:
N19 TRANS Y100
N20 ROT Z180
N21 AROT Y90
N22 L10
;Side 5:
N23 AROT Z270
N24 AROT Y90
N25 L10

M101 Page 32 840D sl Sinumerik Operate


4.1 Swivel frames
Toolcarriers and Translations Section 4

Toolcarriers and Translations Notes

Function of the toolcarrier TCARR:


With kinematics of type P and M the selection of a toolcarrier activates an
additive frame (table offset of the orientable toolcarrier), which takes into
account the zero point offset as a result of the rotation of the table. The
zero offset is entered in a system frame ($P_PARTFR). In this case the
translatory component of this frame is overwritten. Other contents of this
frame remain intact.
To be able to use this system frame, the bit 2 must be set in the machine
data: MD28082 $MC_MM_SYSTEM_FRAME_MASK.
A frame offset as a result of a toolcarrier change becomes effective imme-
diately on selection of TCARR=.... A change in the tool length, on the other
hand, only becomes effective immediately if a tool is active.
A frame rotation does not take place on activation and a rotation which is
already active is not changed. As in case T (only the tool can be rotated),
the position of the rotary axes used for the calculation is dependent on the
G code TCOFR / TCOABS and determined from the rotation component of
an active frame or from the entries $TC_CARRn. Activation of a frame
changes the position in the workpiece coordinate system accordingly, with-
out compensating movement by the machine itself.
The ratios are shown in the figure below:
Orginal position of coordinate system

Orginal position of table


Position of coordinate system after
PAROT (Workpiece reference)

Position of coordinate system


after TCARR (Rotary table ref.)

Position of table after


rotation

Pivot point

Picture 4.1: Frame on activation of a rotary table with TCARR

With kinematics of type M (tool and table are each rotary around one axis),
the activation of a toolcarrier with TCARR simultaneously produces a corre-
sponding change in the effective tool length (if a tool is active) and the zero

840D sl Sinumerik Operate Page 33 M101


4.2 Swivel frames
Section 4 Frame rotation of workpiece with PAROT
Notes
Frame rotation of workpiece with PAROT

Depending on the machining task, it is necessary to take into account not


only a zero offset (whether as frame or as tool length) when using a rotary
table toolcarrier, but also a rotation. However, the activation of an orient-
able toolcarrier never leads directly to a rotation of the coordinate system.
With rotary tables (kinematics types P and M), activation with TCARR simi-
larly does not lead to an immediate rotation of the coordinate system, i.e.
even though the zero point of the coordinate system is offset relative to the
machine, while remaining fixed relative to the zero point of the workpiece,
the orientation remains unchanged in space (see picture 4.2 „Position of
coordinate system after TCARR”).
If the coordinate system needs to be fixed relative to the workpiece, i.e. not
only offset relative to the original position but also rotated according to the
rotation of the table, then PAROT can be used to activate such a rotation
in a similar manner to the situation with a rotary tool
(see picture 4.2 „Position of the coordinate system after PAROT“).

Orginal position of coordinate system


Picture 4.2:

Orginal position of table


Position of coordinate system after
PAROT (Workpiece reference)

Position of coordinate system


after TCARR (Rotary table ref.)
(Rundtischbezug)
150.02

Position of table
°
45

after rotation

Pivot point

With kinematics systems of the types P and M, TCARR will enter the table
offset of the orientable toolcarrier (rotary table reference) as a translation
into the system frame.
PAROT converts the system frame in such a way, that as a result a part-
oriented WCS (workpiece reference) is being created.
The rotation activated by PAROT is calculated in the programmable frame
($P_PFRAME), thus changing its rotation components according to the
active toolcarrier (TCARR).
The system frame for TCARR and PAROT is configured with bit 2 in ma-
chine data: MD28082 $MC_MM_SYSTEM_FRAME_MASK.
If the system frame for TCARR is configured, TCARR and PAROT de-
scribe that system frame; otherwise the basic frame identified by machine
data: MD20184 $MC_TOCARR_BASE_FRAME_NUMBER is described.

M101 Page 34 840D sl Sinumerik Operate


4.3 Swivel frames
Frame rotation of workpiece with PAROT Section 4

The rotation component, which describes the orientation of the table is sto- Notes
red in the system frame $P_PARTFRAME, if Bit 2 of machine data:
MD28082 $MC_MM_SYSTEM_FRAME_MASK is set. The system frames
are stored in the SRAM and, therefore, remain stored after Reset.
It is thus possible, when using PAROT, to rotate the part frame in such
away that an oblique plane lies parallel to the XY plane fixed in space per-
pendicular to the tool axis (see picture 4.2), whereby the tool orientation
must be considered (table rotation) in order to drill holes in this orientation.

Picture 4.2:
Kinematic Type P

PAROT
Z
Y
X

The rotation component of the part frame can be deleted with PAROTOF,
independently of whether this frame is found in a basic or a system frame.
The translation component is deleted when a toolcarrier, which does not
produce an offset, is activated or a possibly active orientable toolcarrier is
deselected with TCARR=0.

Note:
With PAROT, the translations, scaling and mirroring in the active frame
are retained, but the rotation component is rotated by the rotation compo-
nent of the orientable toolcarrier corresponding to the table.

840D sl Sinumerik Operate Page 35 M101


4.4 Swivel frames
Section 4 Frame rotation of workpiece with PAROT
Notes
Example: Swivel frame for table kinematic Type P
On a machine, the rotary axis of the table points in the positive Y direction.
The table is rotated by +45 degrees. PAROT defines a frame, which simi-
larly describes a rotation of 45 degrees about the Y axis.
The coordinate system is not rotated relative to the actual environment
(see picture 4.2 "Position of the coordinate system after TCARR"), but is
rotated by -45 degrees relative to the defined coordinate system
(see picture 4.2 “Position of the coordinate system after PAROT”).
If this coordinate system is defined with ROT Y-45, for example, and if the
toolcarrier is then selected with active TCOFR, an angle of +45 degrees
will be determined for the rotary axis of the toolcarrier.
The command PAROT is not rejected if no orientable toolcarrier is active.
However, such a call then produces no frame changes.

(Programming example refers to picture 4.2 on page 32)

;Definition of toolcarrier 1:
$TC_CARR1[1] = 0 ; X-Component of 1. Offset vector
$TC_CARR2[1] = 0 ; Y-Component of 1. Offset vector
$TC_CARR3[1] = 0 ; Z-Component of 1. Offset vector
$TC_CARR4[1] = 0 ; X-Component of 2. Offset vector
$TC_CARR5[1] = 0. ; Y-Component of 2. Offset vector
$TC_CARR6[1] = -150.02. ; Z-Component of 2. Offset vector
$TC_CARR7[1] = 1 ; X-Component of 1. axis
$TC_CARR8[1] = 0 ; Y-Component of 1. axis
$TC_CARR9[1] = 0 ; Z-Component of 1. axis
$TC_CARR10[1] = 0 ; X-Component of 2. axis
$TC_CARR11[1] = 1 ; Y-Component of 2. axis
$TC_CARR12[1] = 0 ; Z-Component of 2. axis
$TC_CARR13[1] = 45 ; Rotation angle of 1. axis
$TC_CARR14[1] = 0 ; Rotation angle of 2. axis
$TC_CARR15[1] = 0 ; X-Component of 3. Offset vector
$TC_CARR16[1] = 0 ; Y-Component of 3. Offset vector
$TC_CARR17[1] = 0 ; Z-Component of 3. Offset vector
$TC_CARR18[1] = 0 ; X-Component of 4. Offset vector
$TC_CARR19[1] = 0 ; Y-Component of 4. Offset vector
$TC_CARR20[1] = 150.02 ; Z-Component of 4. Offset vector
$TC_CARR21[1] = B ; Identifier of 1. rotary axis
$TC_CARR22[1] = C ; Identifier of 2. rotary axis
$TC_CARR23[1] = "P" ; Type of toolcarrier

N10 T1 D1
N11 G54 G17
N12 ROT Y-45
N13 TCOFR
N14 TCARR=1
N15 G0 B=$TC_CARR13[1]
N16 PAROT

M101 Page 36 840D sl Sinumerik Operate


4.5 Swivel frames
Frame rotation in tool direction with TOROT Section 4

Frame rotation in tool direction with TOROT Notes

With the command TOFRAME, it is possible to define a frame whose Z


axis points in the tool direction. An already programmed frame is then
overwritten by TOFRAME, which describes a pure rotation. Zero offsets,
mirroring or scaling existing in the previously active frame are deleted.
This response is sometimes interfering. It is often practical to retain the
zero offset (WCS), which defines the reference point of the workpiece
(see pictures 4.3 and 4.4).
Because of this exact reason the command TOROT is used. This com-
mand overwrites only the rotation component in the programmed frame
and leaves the remaining components unchanged.
The rotation defined with TOROT is the same as with TOFRAME and is
independent of the availability of an orientable toolcarrier.
The TOROT command is especially useful for 5-axis transformations, and
ensures consistent programming with active orientable toolcarrier for each
kinematics type.
Due to the above mentioned disadvantages only TOROT should be used
for definition of frames, whose Z direction points in the tool direction.
This definition is suitable for milling, where G17 is usually active.
However, particularly with turning or, more generally, when G18 or G19 is
active, it is desirable that frames, which will be aligned on the X or Y axis,
can be defined. For this purpose the following G codes were newly intro-
duced into G code group 53: TOROTX, TOROTY, TOROTZ.

Frame rotation with TOROT and/or PAROT


If only the tool can be rotated (Kinematic type T), a frame can be defined
for it using TOROT or TOFRAME (see picture 4.3).
TOROT or PAROT take into account the overall orientation change in
cases where the table or the tool are oriented with two rotary axes. With
mixed kinematics the corresponding component caused by a rotary axis
is considered (see picture 4.4).
With TOROT and/or PAROT it is possible for example, to rotate the tool
frame and/or workpiece frame in such a way, that the tool plane lies paral-
lel to the XY plane of an oblique surface fixed in space, whereby rotation of
the tool must be taken into account to drill holes for example, that are per-
pendicular to this plane (see pictures 4.3 and 4.4).

Picture 4.3: +Z Picture 4.4:


Kinematic type T Kinematic type M
+Y

+X TOROT
+Z

+Z
+Z

BKS
+Z TOROT +Y
+Z

BKS
+Y
+X
+Z

+X
WKS
+Y

+X
+Y

+X Z
W

+Y

+X
KS
+Y

PAROT
X Y

840D sl Sinumerik Operate Page 37 M101


4.6 Swivel frames
Section 4 Frame rotation in tool direction with TOROT
Notes
Writing of rotations into the system frame
There is the option to write frames produced by TOROT or TOFRAME into
their own system frame ($P_TOOLFR). For this, bit 3 must be set in
machine data: MD28082 $MC_MM_SYSTEM_FRAME_MASK.
The programmable frame is then retained unchanged.
When programming TOROT or TOFRAME, etc. response is identical, with
or without a system frame. Differences occur when the programmable
frame is processed further elsewhere.
In new systems, it is recommended that only the intended system frame
($P_TOOLFR) is used for frames produced by G codes in group 53.

Example:
TRANS is programmed after TOROT. TRANS without specified parame-
ters deletes the programmable frame. In the variant without a system
frame, this also deletes the frame component of the programmable frame
produced by TOROT, but if the TOROT component is in the system frame,
it is retained.

Deactivation
TOROT or TOFRAME, etc. are disabled with the command TOROTOF
and deletes the entire system frame $P_TOOLFR. If the programmable
frame (old variant) and not the system frame is described by commands
TOFRAME, etc. TOROTOF only deletes the rotation component and
leaves the remaining frame components unchanged.

Programming NC-Commands

Command Description
TOFRAME Definition of a tool frame rotation with tool alignment along the
Z-axis in the G17 plane. Previously active frames are being
deleted. Identical to TOFRAMEZ
TOFRAMEX Definition of a tool frame rotation with tool alignment along the
X-axis. Previously active frames are being deleted.
TOFRMAEY Definition of a tool frame rotation with tool alignment along the
Y-axis. Previously active frames are being deleted.
TOFRAMEZ Definition of a tool frame rotation with tool alignment along the
Z-axis. Previously active frames are being deleted.
TOROT Definition of a tool frame rotation with tool alignment along the
Z-axis in the G17 plane. Previously active frames remain active.
Identical to TOROTZ
TOROTX Definition of a tool frame rotation with tool alignment along the
X-axis in the G17 plane. Previously active frames remain active.
TOROTY Definition of a tool frame rotation with tool alignment along the
Y-axis in the G17 plane. Previously active frames remain active.
TOROTZ Definition of a tool frame rotation with tool alignment along the
Y-axis in the G17 plane. Previously active frames remain active.
Identical to TOROT.
TOROTOF Deactivates TOROT or TOFRAME. And can depending on the
machine data setting delete the entire system frame Und kann
$P_TOOLFR (see deactivation above).

M101 Page 38 840D sl Sinumerik Operate


4.7 Swivel frames
Frame rotation in tool direction with TOROT Section 4

Example: Swivel frame with mixed kinematic type M Notes

In the following example a hole is to be drilled onto a oblique surface


(baveled edge). The oblique surface is defined through two projection
angles Xα=-45 degree and Yβ=45 degree (see picture 4.6).
The machine tool is of a mixed kinematic type M, with one rotary axis B in
the head and one rotary axis C in the table (see picture 4.5).

Picture 4.5: Picture 4.6: Z

50
Y
50
X

20.412
25
45°
45°

Reference
point for
rotation

;Definition of toolcarrier 1:
N30 $TC_CARR1[1] = 0 ; X-Component of 1. Offset vector
N40 $TC_CARR2[1] = 0 ; Y-Component of 1. Offset vector
N50 $TC_CARR3[1] = 0 ; Z-Component of 1. Offset vector
N60 $TC_CARR4[1] = 0 ; X-Component of 2. Offset vector
N70 $TC_CARR5[1] = 0. ; Y-Component of 2. Offset vector
N80 $TC_CARR6[1] = -15. ; Z-Component of 2. Offset vector
N90 $TC_CARR7[1] = 1 ; X-Component der 1. Achse
N100 $TC_CARR8[1] = 0 ; Y-Component der 1. Achse
N110 $TC_CARR9[1] = 0 ; Z-Component der 1. Achse
N120 $TC_CARR10[1] = 0 ; X-Component der 2. Achse
N130 $TC_CARR11[1] = 1 ; Y-Component der 2. Achse
N140 $TC_CARR12[1] = 0 ; Z-Component der 2. Achse
N150 $TC_CARR13[1] = 54.736 ; Drehwinkel der 1. Achse
N160 $TC_CARR14[1] = 45 ; Drehwinkel der 2. Achse
N170 $TC_CARR15[1] = 0 ; X-Component of 3. Offset vector
N180 $TC_CARR16[1] = 0 ; Y-Component of 3. Offset vector
N190 $TC_CARR17[1] = 0 ; Z-Component of 3. Offset vector
N200 $TC_CARR18[1] = 0 ; X-Component of 4. Offset vector
N210 $TC_CARR19[1] = 0 ; Y-Component of 4. Offset vector
N220 $TC_CARR20[1] = 15. ; Z-Component of 4. Offset vector
N230 $TC_CARR21[1] = B ; Bezeichnung der 1. Rundachse
N240 $TC_CARR22[1] = C ; Bezeichnung der 2.Rundachse
N250 $TC_CARR23[1] = "M" ; Typ of Werkzeugtraegers

N300 T1 D1
N310 M6
N320 G54 G17
N330 TRANS X50 Y50 Z-25 ; Translation offset WCS (ref. Point for rotation)
N340 AROTS X=-45 Y=45 ; Frame rotation WCS with projection angles
N350 TCOFR
N360 TCARR=1 ; Activation of orientable toolcarrier
N370 G0 X0 Y0 B=$TC_CARR13[1] C=$TC_CARR14[1] ; position rotary axes
N380 PAROT; Workpiece frame rotation
N390 TOROT; Tool frame rotation (tool orientation along Z-axis)
N400 G0 X-20.412 Y0 Z10 ; Position 1. hole
N410 CYCLE82(………..) ; Drilling cycle
N420 PAROTOF; Deactivate workpiece frame rotation
N430 TOROTOF; Deactivate tool frame rotation
N440 M30

840D sl Sinumerik Operate Page 39 M101


M101 Page 40 840D sl Sinumerik Operate
M102 CYCLE800 Swivel 3+2

Brief description
Objective of the module:

After completing this module you will be able to program and setup the swivel CYCLE800

Description of the module:

This module explains the use and setup of the Swivel CYCLE800. With the help of practical user
examples you get to visualize and learn, programming, setup and various possibilities of
applications with CYCLE800.

Content of the module:


840D sl Sinumerik
Operate V2.6

Contents :

Theory CYCLE800

Swivel in JOG mode

CYCLE800 in AUTO mode

Startup CYCLE800

Appendix

840Dsl SINUMERIK Operate Page 1 M102


M102

M102 Page 2 840Dsl SINUMERIK Operate


M102
Cycle800: Description
Cycle800:
This module explains the use and setup of the START
Swivel CYCLE800. With help of practical user
examples you get to visualize and learn, setup,
programming and various possibilities of
applications with CYCLE800. Theory:
what is Cycle800

Swivel function in
JOG mode

CYCLE800 in AUTO
mode

Startup CYCLE800

Appendix

Cycle800:
END

Notes :

840Dsl SINUMERIK Operate Page 3 M102


840Dsl SINUMERIK Operate Page 4 M102
1.1 First for the Theory
Introduction Section 1
Notes

CYCLE800 Swivel 3+2 axis positioning

Introduction

The Swivel CYCLE800 is a static plane transformation, which allows you


on a 5-axis machine (e.g. swivel head or swivel table) to define a rotated
workplane in space.
In this work plane you can than program a 2D or 3D machining operation.
This is also referred as 3+2 axis positioning, by means of the 2 rotary
axes involved in the transformation being only positioned while the linear
axes move during machining.
By calling the appropriate NC functions, the cycle converts the active work-
piece zero (e.g. G54) and tool offsets to refer to the rotated surface, taking
into account the kinematics chain offsets on the machine, and positions the
physical rotary axes (optional) normal to the programmed workplane.
You can program the rotary axes of the machine (A,B,C) or can simply
specify the rotation around the geometry axes (X,Y,Z) of the workpiece
coordinate system.
The rotation of the workpiece coordinate system in the program is then
automatically converted into a rotation of the relevant rotary axes (physical
axes) of the machine during machining. The previously set zero offset is
here by automatically transformed into the new machining plane, and the
traversing movements of the linear axes now relate to this machining
plane.
The swivel axes are always rotated to place the machining plane perpen-
dicular (normal) to the tool axis for machining. The machining plane re-
mains fixed during machining.

840Dsl SINUMERIK Operate Page 5 M102


1.2 First for the theory
Section 1 What moves and how?
Notes

Designs of 5-axis milling machines

M102 Page 6 840Dsl SINUMERIK Operate


1.3 First for the theory
What moves and how? Section 1
Notes

A 5-axis machine can control tool movements in 5 axes. The 3 familiar


linear axes X Y Z plus an additional 2 rotary axes. The two rotary axes
have different kinematic solutions, that are part of a Kinematic chain and
defined in a Swivel data record.
The most common ones are shown here diagrammatically. Machine tool
manufacturers are constantly developing new kinematic solutions for differ-
ent requirements. With Sinumerik 840D, thanks to the integral kinematic
transformation, we can also control special kinematics. However, we don‟t
want to go into detail about hexapods, etc. here.

2 Rotary axes in the head 1 Fork 2 nutated *


2 Rotary axes in the table 3 Rotate/Swivel 4 nutated *

1 Rotary axis in the head 5 Rotate/Fork


1 Rotary axis in the table

* Term: If the rotary axis is not perpendicular to a linear axis,


it is referred to as a ”nutated” axis.

840Dsl SINUMERIK Operate Page 7 M102


1.4 First for the theory
Section 1 What moves and how?
Notes

How are 5-axis functions implemented into the


SINUMERIK 840D sl Operate system ?
Sinumerik 840D sl Operate offers for every 5-axis machine design a
kinematic solution.
The machine kinematics of each individual machine are defined in a
swivel data record.
The following pictures demonstrate the implementation of the Swivel
CYCLE800 for SINUMERIK 840D sl Operate for the most common
5-axis machine kinematics.

Swivel rotary table CYCLE800 “Swivel plane” in operating


Kinematic Typ P area “Program” programGUIDE G code
(Table + Table)

Nutaded table 45° CYCLE800 “Swivel plane” in operating


Kinematic Typ P (Part) area “Program” programGUIDE G code
(Table + Table)

M102 Page 8 840Dsl SINUMERIK Operate


1.5 First for the theory
What moves and how? Section 1
Notes
Fork head + Rotary table CYCLE800 “Swivel plane” in operating
Kinematic Typ M (mixed) area “Program” programGUIDE G code
(Head + Table)

Nutaded head 45° CYCLE800 “Swivel plane” in operating


Kinematic Typ T (Tool) area “Program” programGUIDE G code
(Head + Head)

Rotating fork head CYCLE800 “Swivel plane” in operating


Kinematic Typ T (Tool) area “Program” programGUIDE G code
(Head + Head)

840Dsl SINUMERIK Operate Page 9 M102


1.6 First for the theory
Section 1 Explanation of the Function
Notes

Application field of CYCLE800 ?

2D-3D Machining of any ge-


ometries in a inclined plane or
oblique surface, here the angle
of the tool orientation must be
able to be changed (this exam-
ple involves rotation of rotary
axis B).
The tool is aligned with the
machining surface (2) in the
XY plane, by moving the rot-
ary axes, perpendicular to
the machining surface.

Machining then takes place in


this plane.
Controlled path axes X, Y, Z
Fixed rotary axes, e.g.
B-axis Swivel head.
or
Machining of free form sur-
faces. Here the tool orientation
is changed to obtain optimum
cutting conditions. In order to
completely machine a freeform
surface, it is often necessary to
swivel multiple number of
times in various directions.
Controlled path axes X, Y, Z
Fixed rotary axes, e.g.
A-axis Swivel table.

These types of machining


variations are also known as
“3+2 axis positioning”.
For these types of machining
operations a combination of 2
rotary axes A, B, C in addition
to the 3 linear axes X,Y,Z are
required.

When rotating the coordinate


system about a geometry axis
we always refer to the DIN/ISO
norm (right hand rule).

Rotation about geometry axis X Axis is programmed as A.


Rotation about geometry axis Y Axis is programmed as B.
Rotation about geometry axis Z Axis is programmed as C.

M102 Page 10 840Dsl SINUMERIK Operate


1.7 First for the theory
Explanation of the Function Section 1
Notes
How does CYCLE800 work ?
Detailed explanation:

 With CYCLE800 you can transform coordinates with the help of frames
(TRANS, ROT) that define a work plane in space. This Transformation
is saved in a “Swivel Frame”.
A swivel frame is composed by the following frame chain:
 Rotary table reference ($P_PARTFRAME)
 Tool reference ($P_TOOLFRAME)
 Workpiece reference ($P_WPFRAME)
 The NC converts this swivel frame into actual rotary axes angles, for
each rotary axis involved in the transformation by means a combination
of the physical rotary axes A, B, C that are part of the kinematic chain
are being positioned into the new machining plane.
 CYCLE800 takes the machine kinematics into account during swiveling,
tool offsets and work offsets are automatically taken into consideration.
 The CNC machine can now move the rotary axes by the computed val-
ues, normal to the created workplane (Swivel plane).
 The tool moves now relative to the transformed workplane in XYZ.

Example: 1 = Base reference system


B-Axis Head, C-Axis Table (BCS).
Mixed kinematic type M
5
2 = Settable workpiece
zero offset ($P_UIFR[n]).
Rotation set in system
frame variable
4
3 $P_PARTFRAME
3 = Programmable work
piece zero offset (WCS)
Rotation set in system frame
variable $P_WPFRAME
4 = Rotation of tool orientation
(TOROT) set in system
2 variable $P_TOOLFRAME
1 5 = Tool retraction along Z

What are the advantages of CYCLE800 ?


 Quick programming of machining operations in any inclined plane, with-
out complicated calculation of compound angles.
 Kinematic independent programming (program runs on any kinematic
type without making changes to the program).
 Tool offsets and work offsets can be modified at any time on the ma-
chine by the machine operator.
 Milling and drilling cycles can be used, due to alignment of the tool with
the machining surface (tool axis is parallel to Z-axis G17 plane).

840Dsl SINUMERIK Operate Page 11 M102


1.8 First for the theory
Section 1 Explanation of the Function
Notes

CYCLE800 comes in 2 variations for technology milling:

 CYCLE800 “Swivel plane” and


 CYCLE800 “Approach tool” (Orientation of milling tool)

Example1: CYCLE800 “Swivel plane”

The feature “Swivel plane” is mainly used for milling and drilling in inclined planes
in the 2D-3D application range, in which the linear axes XYZ are able to move and
the rotary axes only position to define a swiveled workplane (3+2 axis positioning).
Once the coordinate system 1 is shifted and rotated to align with the inclined sur-
face you can simply program for example a hole position with the call of a drilling
cycle.
The use of drilling and milling cycles with a change of tool orientation is only
possible with plane transformation in CYCLE800.
Here by the tool axis 2 has to be always oriented normal (perpendicular) to the
workplane 1 (machining plane).

M102 Page 12 840Dsl SINUMERIK Operate


1.9 First for the theory
Explanation of the Function Section 1
Notes
Example 2: CYLE800 “Approach tool”

The feature “Approach tool” is primarily used for 3D mould & die surface
machining. Machining takes place with change in tool orientation, whereby
the linear axes XYZ are able to move, while the rotary axes are only posi-
tioned for change of tool orientation and remain fixed (static) during machin-
ing (3+2 axis positioning).
In picture 1 the cutting conditions deteriorate as the cutter moves up towards
the top or to the side of the work-piece. In picture 2 the cutter is working with
optimum cutting conditions. In order to obtain optimum cutting conditions, the
table is swiveled (picture 2). To machine a freeform surface completely, tool
orientation angle has to be changed several times in various directions.
The workplane in this example is not rotated with CYCLE800, but only the
tool orientation 3. The workplane remains normal to the WKS 4.

1
+Z

4 +X

+Y

+X
2 +Z 3
+Z 4
+Y

A-axis

840Dsl SINUMERIK Operate Page 13 M102


1.10 First for the Theory
Section 1 Explanation of the Function
Notes
What are the use of FRAMES ?
Using frames, coordinate systems can be shifted, rotated, mirrored and scaled so
that they are aligned to the workpiece surface. This allows the programming time
to be reduced to a minimum.

Example: Inclined plane

Machine coordinate system with


Basic offset and work offset 1 (G54,
G55, etc.) are familiar terms.

With frames, starting from the cur-


rent workpiece coordinate system
1, the position of a target coordi-
nate system 2 is defined by specify-
ing coordinates and angles.

Possible frames include


 Basic frame (basic offset, G500)
 Settable frames (G54, G55,etc.)
 Programmable frames (TRANS,
ROT, etc.)

With a 5-axis machine it is possible


to machine surfaces that can be
shifted and rotated in space as re-
quired. This is precisely why we
need FRAMES.
3

Using a FRAME the current work-


piece coordinate system 2 can now
be shifted to the target coordinate
system 3 with the frame command
TRANS,

and

secondly rotated, with a additive


4 frame command AROT, in order to
align the coordinate system with
the inclined surface.

All of the subsequent traversing


commands now relate to the trans-
formed work coordinate system 4.

M102 Page 14 840Dsl SINUMERIK Operate


1.11 First for the Theory
Explanation of the Function Section 1
Notes
In the example, using frames the
coordinate system is first shifted
from a to b in two steps and is then
rotated to the inclined surface.

Now the machine axes have to be


aligned normal to the inclined sur-
face. In our example the B-axis.
In order to keep track of the tool tip
5-axis transformation TRAORI
must be setup.

You now no longer have to take


into account the inclination when
programming.

You program as usual, vertical to


the workpiece surface and machin-
ing cycles - e.g. drilling cycles can
be used.

What does CYCLE800 do ?


CYCLE800 accommodates all of these steps, and allows you to program a
inclined plane in one easy cycle input screen form. Individual parameters
are here by supported with a graphical animation.

TRANS

AROT

ATRANS

TRAORI

Note:

Selecting the “tool tracking” function, results in simultaneous traversing of


all machine axes for positioning into the new swivel plane only.
The tracking function requires the setup of the 5-axis transformation
option TRAORI

840Dsl SINUMERIK Operate Page 15 M102


1.12 First for the Theory
Section 1 Explanation of the Function
Notes
Let’s have a look at the kinematics of the swivel rotary table.

The kinematics of a swivel rotary table is the easiest example to under-


stand how a plane rotation is computed into actual rotary axes angles.
The corner of a cubical is to be face milled in this example. The Swivel
mode “axis by axis” is selected and a coordinate rotation around Z=-45
and Y=54.736 degrees is programmed. The rotation direction of the
1. Rotary axis A is being executed in negative direction.
A new swivel frame based on the kinematic model of the machine is now
being calculated. The control has to position now the actual angles for its
physical rotary axes A and C (1) in order to align the tool with the new
machining plane (2).

1 2

Note:
Example refers to drawing on page 44

M102 Page 16 840Dsl SINUMERIK Operate


1.13 First for the Theory
Explanation of the Function Section 1
Notes
In our example the following rotary axes positions are calculated:
A -54.736° Name of active Active swivel
C 225.000° swivel data record plane

As a result the coordinate rotation is being stored into the System frame as
a rotation about the geometry axes X Y Z in the active zero offset (G54).

The same example can be programmed with direct rotary axes input. In
this case swivel mode “directly” must be selected. The rotary axes posi-
tions A=-54.736° and C=225° are entered directly. The resulting workplane
must now be rotated in such a way that the Y axis is aligned with the upper
edge of the cube (Rotation about Z = 90°).

New machining
plane

Conclusion:
This was very easy, since the rotary axes are aligned parallel to the
geometry axes of the machine. Both rotation methods “axis by axis”
or “directly” are possible.

840Dsl SINUMERIK Operate Page 17 M102


1.14 First for the Theory
Section 1 Explanation of the Function
Notes
Let’s have a look at the special kinematics of the nutaded
swivel rotary table.

On some machines the actual axis position are not equal to the pro-
grammed rotation values in CYCLE800.
This occurs especially on machine kinematics with a swivel head or swivel
table where the rotation axis is mounted on a 45 degree inclined plane.
(nutated swivel table or swivel head).

The same corner of a cubical is to be face milled in this example. The


Swivel mode “axis by axis” is selected and a coordinate rotation around
Z=-45 and Y=54.736 degrees is programmed. The rotation direction of the
1. Rotary axis B is here being executed in positive direction.

A new swivel frame based on the kinematic model of the machine is now
being calculated. The control has to position now the actual angles for its
physical rotary axes B and C (1) in order to align the tool with the inclined
plane (2).

1 2

M102 Page 18 840Dsl SINUMERIK Operate


1.15 First for the Theory
Explanation of the Function Section 1
Notes
In our example the following rotary axes positions are calculated:
B 81.101° Name of active Active swivel
C 283.825° swivel data record plane

As a result the coordinate rotation is being stored into the System frame as
a rotation about the geometry axes X Y Z in the active zero offset (G54).

New Ma-
chining
plane

Z+
X+

Y+

Conclusion:
Because of the unusual table kinematics, it is impossible to program the
rotary axes positions direct, without prior calculation. This is simply be-
cause the rotary axes of the machine are not parallel to the geometry axes
of the machine.

840Dsl SINUMERIK Operate Page 19 M102


2.1 Swivel function in JOG mode
Section 2 General explanation
Notes
Swivel function in JOG mode

General explanation:
The “Swiveling in JOG" function is used to set up work pieces with swiv-
eled (inclined) machining planes and represents the prerequisite for further
setup operations (scratching/measuring workpiece) and machining.
Swiveling in JOG mode is supported by its own input screen form.
Once the input values are applied and the NC is started, the rotary axes
(swivel axes) are positioned (rotated with manual rotary axes) and a swivel
frame is calculated for this plane.
The swivel frame ensures that the tool orientation is aligned perpendicular
to the swivel plane.

The following functions can be carried out with "Swiveling in JOG":


 Activation of swivel data record
 Compensation of basic rotation of the workpiece on machines with
swivel tables.
 New swiveling or additive swiveling to any plane if permitted by the
machine kinematics.
 Swiveled plane can be set to the new zero plane.
 Deactivation of swivel data record

Example:
In Manual Operation Mode “JOG” it is possible for the machine operator to
define a swivel plane with the Softkey „Swivel“ in an easy and fast way
and than program in this swivel plane with milling cycles just like in a nor-
mal 2D Program, or measure the workpiece with help of workpiece meas-
uring cycles.
All Programs after that being executed in automatic mode or MDI are ref-
erenced than to this Plane.
The zero plane corresponds to the tool plane (G17, G18, G19) including
the active zero offset (G54, etc.). Rotations of the active ZO* and offsets
of the rotary axes are taken into account when swiveling in JOG. The
"Swiveling in JOG" function writes rotations either in the workpiece refer-
ence ($P_WPFRAME) or to the active zero offset (e.g. G54)
Machine operators must be aware of the machine position that the
unswiveled plane, the initial setting of the machine kinematics (kinematic
chain) or the tool orientation occupies in this basic setting.
The machine manufacturer has defined the basic machine kinematics
setting when setting up the "Swiveling" or "5-axis transformation
(TRAORI)" function.
Note the machine manufacturer’s instructions!
The machine operator can set a work offset manually or use a probe to set
a workoffset in any swiveled plane. In this case, the determined values of
the zero offset refer to the initial setting or the basic setting of the machine
kinematics. The machine operator can also specify the plane to be defined
as the new zero plane. In this case, the determined values of the zero off-
set refer to the new basic setting.

M102 Page 20 840Dsl SINUMERIK Operate


2.2 Swivel function in JOG mode
Procedure for creating a swivel date record Section 2
Notes
Procedure for creating a swivel frame

The input mask for the function "Swivel plane” in “JOG" mode corresponds
to a shortened version of the CYCLE800 input mask.

 TC: Here you can select the desired Swivel data record (e.g. “TABLE”)
 Retract: Select the desired retract mode (e.g. „Fixed pt.1”)
(automatic retract to retract position specified in $TC_CARR38).
The kind of retract possibilities in the cycle input mask can be set in the
display variants via $TC_CARR37[n] (see section 4.3 and 4.17).
 Swivel plane: “new“ (absolute) or „additive“ (incremental).
 Swivel mode: Selection of swivel mode „axis by axis“ or „direct“
 Sequence of axes: Here you can select the input order for the rotation
about the geometry axes.
 If swivel mode „axis by axis“ is selected, input the desired swivel an-
gles as rotation about the geometry axes X Y Z .

840Dsl SINUMERIK Operate Page 21 M102


2.3 Swivel function in JOG mode
Section 2 Procedure for creating a swivel date record
Notes
If swivel mode “directly” is selected, input for A and C the desired angles
for each rotary axis. For Z you can program a subsequent coordinate rota-
tion about the Z axis, in order to align the workpiece edge with the trans-
formed coordinate system.

 Direction: determines in which of the two available possibilities a work


plane is reached. Usually, only one of these solutions is technologically
suitable. The solutions differ by 180 degrees in each case.
Selecting the "minus" or "plus" direction determines which of the two
possible solutions is to be applied.
The axis to be affected by this setting can be selected or deselected in
the display variants via $TC_CARR37[n] (see section 4.17).
 Tool: here you can select weather the tool tip is being tracked, by
means of maintaining the relative position during positioning of the ro-
tary axes. This function requires the optional 5-axis transformation
function “TRAORI”. The "Tool" input field can be activated or deacti-
vated in the display variants via $TC_CARR37[n] (see section 4.17).

Note:
If Swivel mode „directly“ is selected you must input the actual axes posi-
tion of the rotary axes for A and C.
If a rotation is programmed only for the C-axis, than a work plane transfor-
mation is activated. For example, a input for the C axis of 180 degree,
results in a rotation of the coordinate system by 180 degrees.
X+ becomes X– and Y+ becomes Y-, and the C-axis positions to180 deg.
The same example with swivel mode „axis by axis“ selected does not
result in a rotation of the coordinate system and the C-axis does not
change position, since there is no change of the tool vector orientation
taking place with a rotation about the Z-Axis (tool axis).

For parameter ”TC”: The TCARR (TC ”0”) can be deselected in the cycle
input mask via SD55221 $SCS_FUNKTION_MASK_SWIVEL_SET
For the parameter “Retract”: The text in the input mask can be changed
via SD55221 $SCS_FUNKTION_MASK_SWIVEL_SET
Display text Z = "Fixed point 1", Display text Z, XY = "Fixed point 2".
(Also see “section 4.3 setting data”)

A detailed description about settings about all relevant settings can be


found in section 4.2 - 4.25 “

M102 Page 22 840Dsl SINUMERIK Operate


2.4 Swivel function in JOG mode
Application example Section 2
Notes
Application Example
This example shows how the machine operator can create a swiveled work plane
and set a work offset manually in any swiveled plane. In this case, the determined
values of the zero offset refer to the initial setting or the basic setting of the ma-
chine kinematics. The machine operator can then specify the plane to be defined
as the new zero plane.

Procedure:
 Select the swivel data record in TC (e.g. “TABLE”)
 Input swivel angle as rotation about the X axis of -15°

 Press „NC-Start“. The swivel data record for the “TABLE” kinematic is
loaded into the NC (1) and “CYCLE800” is activated (2).
 As a result the machine swivels the A and C axis into the new machining
plane and a coordinate rotation about the X and Z axis takes place (3).

1: Name of active 2: Active


swivel data record swivel plane

3: Display of active ZO and


sum of all rotations of the Fra-
me chain including Swivelfra-
me

4: Display of the rotation of


the activ zero plane (initial
setting)

5: Display of rotation in the


active Swivel plane

840Dsl SINUMERIK Operate Page 23 M102


2.5 Swivel function in JOG mode
Section 2 Application example
Notes
Note:

The rotary axis minimum range for the A axis in this example is limited to
–10 degrees the maximum range is +110 degrees.
As a result there is only one possibility to reach this plane, by rotating the
C axis 180 degrees and the A axis to +15 degrees.
Rotary axis range for CYCLE800 is set in the TCARR parameters
(see section “4.12 Startup CYCLE800”).

As a result the coordinate rotation is being stored in the System frame as


a rotation about the geometry axes X Y Z and displayed in the active zero
offset (here in G54 see work offset - details).

 Press the „Set zero plane“ Softkey in order to set the


active swivel plane as zero plane (initial setting) in the
workoffset G54
 A window with the quiry „Set zero plane“ pops up.

 Press the VSK8 “OK” to confirm saving the active swivel


plane as zero plane in G54.

M102 Page 24 840Dsl SINUMERIK Operate


2.6 Swivel function in JOG mode
Application example Section 2
Notes
When measuring in this case, the determined values of the zero offset e.g.
G54 refer now to the new zero plane (new basic setting).

4: Display of the rotation of


the active zero plane (initial
setting)

 To reverse the process and return the machine back


to it‟s basic kinematic orientation (initial position),
press the “Delete 0-level” softkey first.
 A window with the quiry „Delete zero plane“ pops up.

 Press the VSK8 “OK” to confirm deleting the active zero


plane in G54.

840Dsl SINUMERIK Operate Page 25 M102


2.7 Swivel function in JOG mode
Section 2 Application example
Notes
 With the Softkey „Initial setting“ default settings of the
swivel cycle are being activated and all rotations are set
back to zero. With „CYCLE START“ the rotary axes
return to the initial position. The swivel plane is no longer active.

Note:
Default setting for swivel mode is “axis by axis”
Default setting for direction “+” or “-” can be set via TC_CARR[37]

 The last step is always to cancel CYCLE800. Select TC


“0” (TCARR=0) and press „NC-Start“.

 The last step is to deactivate the active toolcarrier (TCARR=0 corre-


sponds to the deselection of CYCLE800). To do so select the toolcarrier
TC “0” in the swivel cycle and press „CYCLE START“.

M102 Page 26 840Dsl SINUMERIK Operate


3.1 CYCLE800 in AUTOMATIC mode
General explanation Section 3
Notes
Swivel CYCLE800 in AUTOMATIC mode
General explanation:
The swivel function CYCLE800 in “AUTOMATIC” mode is used for auto-
mated machining or measuring in inclined planes in a program sequence.

CYCLE800 is available in two programming formats:


 programGUIDE G code or
 ShopMill

CYCLE800 comes in two basic variations for the technology milling:


 CYCLE800 “Swivel plane” (also see section 1.10)
 CYCLE800 “Approach tool” (also see section 1.11)

CYCLE800 “Swivel plane” CYCLE800 “Swivel plane”


input mask programGUIDE G code input mask ShopMill

CYCLE800 “Approach tool” CYCLE800 “Approach tool”


input mask programGUIDE G code input mask ShopMill

Further more CYCLE800 offers for turn/mill or mill/turn machines with


B-axis the additional features “Align milling tool” and “Align turning tool”
(available only in programGUIDE G code):
 CYCLE800 “Align milling tool” (refer to section 3.44)
 CYCLE800 “Align turning tool” (refer to section 3.49)

840Dsl SINUMERIK Operate Page 27 M102


3.2 CYCLE800 in AUTOMATIC mode
Section 3 Important programming notes
Notes
Prerequisites before calling the swivel cycle

The main program with a swiveled plane should start in the basic setting
(initial setting) of the machine.
For a proper simulation of the workpiece it is required to initialize the
CYCLE800 once in base orientation (initial settings) and swivel to zero,
after that you should cancel the cycle.
The definition of the blank (WORKPIECE) always refers to the currently
effective work offset.
A tool (tool cutting edge D > 0) and the work offset (e.g. G54), with which
the workpiece was scratched or measured, must be programmed before
the swivel cycle is first called in the main program.

Example:

N100 ;*** Swivel into base orientation (initial setting) ***


N101 CYCLE800(4,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N102 CYCLE800()
N103 G54
N104 WORKPIECE(,,,"BOX",112,0,51,-80,-2.5,-2.5,102.5,102.5)
N105 T10 D1
N106 M6
N107 S5000 M3
N108 G0 X0 Y0 M8
N109 ;*** Swivel plane X=-15 deg ***
N110 CYCLE800(4,"TABLE",200000,57,0,0,50,-15,0,0,0,0,0,1,,1)
…..

Note:
For ShopMill programs, the blank in the program header is automatically
referred to the base orientation (initial kinematic setting).

Explanation of the function

In the swivel cycle, the work offset (WO) as well as the shifts and rotations
of the parameters of the CYCLE800 are converted to the corresponding
machining plane. The work offset is kept. Shifts and rotations are saved in
system frames - the swivel frames - (displayed under parameter/work off-
sets):
● Tool reference ($P_TOOLFRAME)
● Rotary table reference ($P_PARTFRAME)
● Workpiece reference ($P_WPFRAME)

CYCLE800 takes the actual machining plane (G17-G19) into account.

Swiveling of a plane always involves 3 steps:

● Shifting the WCS before rotation (corresponds to TRANS or ATRANS)


● Rotating the WCS (axis-by-axis, corresponds to ROT or AROT)
● Shifting the WCS after rotation (corresponds to ATRANS)

M102 Page 28 840Dsl SINUMERIK Operate


3.3 CYCLE800 in AUTOMATIC mode
General explanation Section 3
Notes
Note:
The shifts and rotations refer to the coordinate system X, Y, Z of the work-
piece and are therefore independent of the machine (with the exception of
swivel mode "directly").

There are no programmable frames used in the swivel cycle. Previously


programmed frames by the user are only taken into account for additive
swiveling.
On the other hand, when swiveling to a new swivel plane the programma-
ble frames are deleted (TRANS, ROT).
The last swivel plane remains active after a program reset or when the
power fails. The behavior at reset and power on can be set in the machine
data.
Any type of machining operation can be performed on the swivel plane,
e.g. by calling machining or measuring cycles.

Operator and programmer instructions

 In an NC program with swiveled machining planes (CYCLE800), rotary


axes are exclusively positioned using CYCLE800 (CUST_800.SPF).
The only exception is when changing to a 5-axis transformation.

 Note on calling the 5-axis transformation (TRAORI). If a program acti-


vating the 5-axis transformation (TRAORI) is to be executed on the
swiveled machining plane, the system frames for the swivel head/swivel
table must be deactivated before TRAORI is called (see example). The
workpiece reference (WPFRAME) is retained.

Example: (Machine with swivel table kinematic type P)


N1 G54
N2 T="MILL_10mm" D1
N3 M6
N4 CYCLE800(1,"",0,57,0,40,0,-45,0,0,0,0,0,-1) ;Swivel cycle
N5 CYCLE71(50,24,2,0,0,0,80,60,0,4,10,5,0,2000,31,5) ;Face milling
N6 TCARR=0 ;Swivel data record deselection
N7 PAROTOF
N8 ;TOROTOF ;(only with machine kinematic types "T" and "M")
N9 TRAORI
N10 G54 D1; Recalculation of zero offset and tool offset
N11 EXTCALL "ROLL" ;5-axis program with direction vectors A3, B3, C3
N12 M2

 The swivel data record can be deselected and the swivel frame
(WPFRAME, PARTFRAME, TOOLFRAME) can be deleted by
programming CYCLE800().

840Dsl SINUMERIK Operate Page 29 M102


3.4 CYCLE800 in AUTOMATIC mode
Section 3 Important programming information
Notes
 It is possible to traverse the axes in the active swivel plane in JOG
mode, if the WCS key is active on the machine control panel. This en-
sures that the geometry axes are traversed and not the machine axes.

 In CYCLE800, parameters can also be transferred as input values (e.g.,


result variable of measuring cycles _OVR[21], for a detailed explanation
of measuring result parameters refer to Module M106 Measuring).
Example: Programming CYCLE800 using parameters
_A=_OVR[21]
CYCLE800(_FR, _TC, _ST, _MODE, _X0, _Y0, _Z0, _A, _B, _C, _X1,
_Y1, _Z1, _DIR, _FR _I)

 The value range for angle values is defined as follows


(see also Module M101 FRAMES ROT / AROT):
Rotation around 1st geometry axis: -180 degrees to +180 degrees
Rotation around 2nd geometry axis: -90 degrees to +90 degrees
Rotation around 3rd geometry axis: -180 degrees to +180 degrees
When angle values are passed to a standard cycle, please note that
they must be rounded down to zero if they are lower than the calculation
resolution of the NCU. The calculation resolution for angle positions on
the NCU is specified in MD 10210 $MN_INT_INCR_PER_DEG.
Example: Parameter _OVR[21] of measuring cycle CYCLE998 (
measure angle)
_ OVR[21]=-0.000345 ;calculation resolution MD
$MN_INT_INCR_PER_DEG=1000
IF ((ABS(_OVR[21] * $MN_INT_INCR_PER_DEG)) < 1)
_OVR[21]=0
ENDIF

Explanation:
If the value of parameter _OVR[21] is less than the programmed
calculation resolution, it is rounded down to zero.

 If rotary axis values are entered in the active ZO (basic rotation of the
workpiece), they will be taken into account when swiveling. During
swiveling to the basic machine setting (initial setting) of the machine
kinematic (...,0,0,0,...) [rotation=0], CYCLE800 arranges the WCS
accordingly. This results in rotations in the $P_WPFRAME swivel
frame (workpiece reference).

M102 Page 30 840Dsl SINUMERIK Operate


3.5 CYCLE800 in AUTOMATIC mode
General explanation Section 3
Notes
Block search when swiveling the plane / swiveling the tool

For block search with calculation, after NC start, initially, the automatic ro-
tary axes of the active swivel data set are pre-positioned and then the re-
maining machine axes are positioned. (This does not apply if the transfor-
mation type TRACYL or TRANSMIT is active after the block search. In this
case, all axes simultaneously move to the accumulated positions).

Approaching a machining operation


When approaching the programmed machining operation in the swiveled
plane, under worst case conditions, the software limit switches could be
violated. In this case, the system travels along the software limit switches
above the retraction plane. In the event of violation below the retraction
plane, for safety reasons, the program is interrupted with an alarm. To
avoid this, before swiveling, e.g. move the tool in the X/Y plane and posi-
tion it as close as possible to the starting point of the machining operation
or define the retraction plane closer to the workpiece.
Retraction
Before swiveling the axes you can move the tool to a safe retraction posi-
tion. The retraction versions available are defined when starting up the
system (see section “4.14 - 4.15 Startup CYCLE800 Kinematic chain”).
The retraction mode is modal. When a tool is changed or after a block
search, the retraction mode last set is used.

840Dsl SINUMERIK Operate Page 31 M102


3.6 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Procedure for programming CYCLE800 “Swivel plane” and sub-
sequent machining:

► Swivel the coordinate system into the plane to be machined.


► Program machining as usual in the X/Y plane.
► Swivel the coordinate system back to its original position.

 PL: Select machining plane for reference of rotation (e.g. G17)


 TC: Select the name of the swivel data record (e.g. “TABEL”)
 Retract: Select the retraction mode before swiveling (settable in $TC_CARR37)
 Swivel: Select “Yes” if you wish to make the axes move into the new swivel
plane, or “no” if the swivel plane is only used for calculation.
 Swivel plane: Select “New” if you wish to calculate a new swivel frame, or
“Additive” if you wish to base the swivel frame on the previously programmed
and active swivel frame.
 X0, Y0, Z0: Specify the reference point before rotation (X0, Y0, Z0) .
 Swivel mode: Select swivel mode “Axis by axis”, “directly”, “projection angle”,
or “solid angle” (here axis by axis).
 Sequence of axes: Select the order of the axis to rotate about.
 X, Y, Z: If “axis by axis” enter the angle of rotation for each geometry axis. If
“directly” than enter the angle which the axis should swivel for each rotary axis.
 X1, Y1, Z1: Enter the zero point after the rotation .
 Direction: Select the preferred direction for rotary axes positioning (settable
in $TC_CARR37).
 Tool: Select weather the tool tip is being tracked or not during positioning of
rotary axes.

M102 Page 32 840Dsl SINUMERIK Operate


3.7 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Press the VSK "Initial setting" if you wish to reestablish
the basic setting, i.e. you wish to set the values back to 0.

This is done, for example, to swivel the coordinate system back to its
original orientation.

Description of parameter input mask:

PL: G17 (XY) Tool axis Z


Machining pla- G18 (ZX) Tool axis Y
ne G19 (YZ) Tool axis X

TC: The swivel data records that have been setup can be
Name of swivel selected (toggle).
data record Every swivel data record is assigned a name. A name
does not have to be declared if there is only one swivel
data record.
"0" → Deselect swivel data record
(Can be set in SD55125)

Retract: ■ No: No retraction before swiveling


Before swivel-
■ Z: Retraction of machine axis Z
ing
■ Z,X,Y: Move machining axis to retraction position
before Swiveling
■ Max. tool direction: Maximum retraction in tool
direction (up to software end position)
■ Inc. tool direction: Retraction incremental in tool
direction e.g. 100 mm

■ ZR: Retraction path (this field only shows for


incremental retraction in tool direction e.g. 100 mm)

Note:
 When retracting in the tool direction, in the swiveled
machine state, several axes can move.
 The Retraction variant can be set in $TC_TCARR37
and the retract position in $TC_TCARR38 - 40.
 The retraction positions are traversed absolutely. If
another sequence or incremental positioning is de-
sired, this can be modified during installation and set
up in the CUST_800 user cycle.
 When programming with standard cycles and high
settings for the retraction plane and swivel angles
(swiveling through 90 degrees for multi sided ma-
chining), it is possible that the traversing area of the
machine may be too small (software end position er-
ror), since the order of approach is always the ma-
chining plane (for G17 X, Y) first, followed by the in-
feed axis (Z). The retraction plane can be reduced to
optimize this behavior.

840Dsl SINUMERIK Operate Page 33 M102


3.8 Information for the Programmer
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Swivel:  Swivel yes
Rotary axes are automatically positioned or the
operator can position the rotary axes manually
(see CUST_800.SPF).
 Swivel no (calculation only)
If rotary axes are not to be traversed after activating
the swivel cycle, the "Swivel no" selection applies.
Application: Auxiliary swivel levels according to work
piece drawing

Swivel plane:  New


Previous swivel frames and programmed frames are
deleted and a new swivel frame is formed according
to the values specified in the input screen.
Every main program must begin with a swivel cycle
with the new swivel plane, in order to ensure that a
swivel frame from another program is not active.
 Additive
The swivel frame is added to the swivel frame from
the last swivel cycle. If several swivel cycles are
programmed in a program and programmable frames
are also active between them (e.g., AROT ATRANS),
these are taken into account in the swivel frame.
If the currently active ZO contains rotations, e.g., due
to previous workpiece gauging, they will be taken into
account in the swivel cycle.

Reference Help screens


Point: The following help displays relate to machining plane
X0, Y0, Z0 G17 (tool axis Z).
Reference points before rotation X0, Y0, Z0.
Allows to Shift Workpiece Zero to any location in X Y Z
from active Zero Shift G54 ….

Swivel mode: This parameter defines the swivel mode for the axes.
 Axis by axis
 Projection angle
 Solid angle
 Directly
Swivel mode always refers to the coordinate system of
the workpiece and does not, therefore, depend on the
machine.

M102 Page 34 840Dsl SINUMERIK Operate


3.9 Information for the Programmer
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Swivel mode: Rotate coordinate system “Axis by axis”
 With swivel mode “Axis by axis”, the tool is rotated
about the individual axes of the coordinate system in
succession, with each rotation starting from the pre-
vious rotation. The axis sequence is selectable.

Swivel around “Projection angle”


 With swivel mode “projection angle”, the angle value
of the swiveled surface is projected onto the first two
axes of the coordinate system. The user can select
the axis rotation sequence. The third rotation starts
from the previous rotation. The active plane and the
tool orientation must be taken into consideration
when the projection angle is applied:
– G17 (XY) projection angle Zβ, 3rd rotation around Z
– G18 (ZX) projection angle Yα, 3rd rotation around Y
– G19 (YZ) projection angle Xα, 3rd rotation around X

840Dsl SINUMERIK Operate Page 35 M102


3.10 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Swivel mode: Continuation
 When projection angles around XY and YX are pro-
grammed, the new X-axis of the swiveled coordinate
system lies in the old ZX plane.
 When projection angles around XZ and ZX are pro-
grammed, the new Z-axis of the swiveled coordinate
system lies in the old YZ plane.
 When projection angles around YZ and ZY are pro-
grammed, the new Y-axis of the swiveled coordinate
system lies in the old XY plane.

Swivel around “Solid angle”


 With swivel mode “Solid angle”, the tool is first ro-
tated about the Z axis (α angle) and then about the
Y axis (β angle). The second rotation starts from the
first. The positive direction of each rotation is shown
in the following picture.

Note:
Swivel mode “projection” and “solid angle” can be
activated or deactivated in the input mask of CYC-
LE800 via $TC_CARR37[n] (display variants) in the
swivel data record.

M102 Page 36 840Dsl SINUMERIK Operate


3.11 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Swivel mode: Position rotary axes “directly”

 With swivel mode "directly", the WCS positions of the


rotary axes can be specified directly. The target swivel
positions are entered in the input fields of the rotary
axes of the selected swivel data record (see parameter
_TC). A swivel frame is computed for these positions
in CYCLE 800. This ensures that the tool orientation
is aligned at a perpendicular angle to the swivel plane.
It is possible to enter an additional rotation around the
tool orientation in input field “Z” (Rotation tool).
The reference axis is the abscissa (with G17 X).
This means that the traversing directions in the plane
(with G17 XY) are also precisely defined after swivel-
ing the rotary axes "directly.

Note:
If swivel mode "directly" is applied, the corresponding
NC program is machine dependent, i.e. the NC pro-
gram can run only on machines with the same swivel
kinematics (including the rotary axes identifiers).
Manual and semi-automatic rotary axes are also com-
patible with swivel mode “directly”.
Swivel mode “directly” is only available if selected by
the machine manufacturer in the display variants
($TC_CARR37[n]) for the input mask of CYCLE800

840Dsl SINUMERIK Operate Page 37 M102


3.12 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Sequence of Help screens
axes:  Only for swivel mode “axis by axis”
Sequence of axes around which rotation is executed
XYZ , XZY, YXZ, YZX, ZXY, ZYX,

The Input order is freely selectable with the “Select” key

Projection Help screens


position:  Only for swivel mode “projection angle”
Position of projection in space
Xα Yα Zβ, Yα Zα Zβ, Zα Xα Zβ,

The Input order is freely selectable with the “Select” key

M102 Page 38 840Dsl SINUMERIK Operate


3.13 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Help screens
 Swivel mode “solid angle”

α β

Help screens
 Swivel mode “directly”

Rotation about Z

Zero point: Here it is possible to the shift the workpiece zero in the
(after rotation tilted workplane after rotation incrementaly to a new part
X1, Y1, Z1) reference.

840Dsl SINUMERIK Operate Page 39 M102


3.14 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Direction: Direction reference of traversing direction of rotary axis 1 or
(plus/ 2 of the active swivel data record (machine kinematics).
minus) The NC calculates two possible solutions of the rotation/
offset programmed in CYCLE800 using the angle traversing
range of the rotary axes of the machine kinematics. Usually,
only one of these solutions is technologically suitable.
The solutions differ by 180 degrees in each case.
Selecting the "minus" or "plus" direction determines which of
the two possible solutions is to be applied.
Plus = smaller traverse path of the rotary axis
Minus = larger traverse path of the rotary axis

Example 1:
 Machine kinematics with rotary swivel table.
1. Rotary axis = A rotation around X
2. Rotary axis = C rotation around Z
 Angle range of A-axis swivel table from -90 to +90 deg
 Angle range of C-axis rotary table from 0 to +360 deg
(modulo 360).
 Machine manufacturer has set the preferred direction of
rotary axis to “Reference to rotary axis 1 optimized“.
 Swivel mode is “axis by axis” a rotation around Z of -45°
and Y of 54.736° are programmed in the swivel cycle.

Base orientation
Initial kinematic
setting in (WCS)
A-axis (table) = 0°
C-axis (table) = 0°

Solution 1
Direction of preferred rotary
axis (A) “plus”
Movement:
A-axis (table) = +54.736°
C-axis (table) = +45°
(Modulo 360)

Solution 2
Direction of preferred rotary
axis (A) “minus”
Movement:
A-axis (table) = -54.735°
C-axis (table) = +225°
(Modulo 360)

M102 Page 40 840Dsl SINUMERIK Operate


3.15 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Direction: Example 2:
(plus/  Machine with mixed kinematics.
minus) 1. Rotary axis = B rotation around Y
2. Rotary axis = C rotation around Z
 Angle range of B-axis swivel table from -90° to +90°
 Angle range of C-axis rotary table from 0° to +360°
(modulo 360°).
 Machine manufacturer has set the preferred direction of
rotary axis to “Reference to rotary axis 1 optimized “.
 Swivel mode is “axis by axis” a rotation around Z of -45°
and Y of 54.736° is programmed in the swivel cycle.

Base orientation
Initial kinematic
setting in (WCS)
B-axis (Head) = 0°
C-axis (table) = 0°

Solution 2
Direction of preferred
rotary axis (B) “+”
Movement:
B-axis (Head) = +54.736°
C-axis (table) = +45°
(Modulo 360)

Solution 1
Direction of preferred
rotary axis (B) “-”
Movement:
B-axis (Head) = - 54.735°
C-axis (table) = +225°
(Modulo 360)

840Dsl SINUMERIK Operate Page 41 M102


3.16 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes

Example 3:
 Machine with mixed kinematics.
1. Rotary axis = B rotation around Y
2. Rotary axis = C rotation around Z
 Angle range of B-axis swivel table from 0° to +180°
 Angle range of C-axis rotary table from 0° to +360°
(modulo 360°).
 Machine manufacturer has set the preferred direction of
rotary axis to “Reference to rotary axis 1 optimized“.
 Swivel mode is “axis by axis” a rotation around Z of -45°
and Y of 54.736° is programmed in the swivel cycle.

Base orientation
Initial kinematic
setting in (WCS)
B-axis (Head) = 0°
C-axis (table) = 0°

Only one possible solution,


because of negative B-Axis
limitation
Direction of preferred rotary
axis (B)
Movement:
B-axis (Head) = +81.101°
C-axis (table) = +283.825°

Note:
Because of the B-Axis limitation in negative direction it
makes sense to deactivate the direction selection in the
cycle input mask ($TC_CARR37[n] Bit 3=5) in the swivel
data record.

M102 Page 42 840Dsl SINUMERIK Operate


3.17 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Tracking TL: ● Track:
(Tool Tip) When swiveling onto a machining plane, the linear
axes can trace the work-piece to prevent the risk of
collision.
With rotation of the rotary axes, correction of the tool
tip is active and the tool tip maintains it„s position
relative to the workpiece.

Requirements:
 5-axis transformation option “TRAORI” must be
setup.
 The machine manufacturer has adapted the
“CUST_800.SPF” user cycle appropriately.

● Do not track:
No compensation of tool tip during swiveling

Attention: Danger of collision !

Note:
The ”tool tracking” display field in CYCLE800 can be
activated/deactivated in the swivel data record
($TC_CARR37[n] Bit 4=0)
With active tracking of tool tip, it is recommended to
preposition the tool over the workpiece with a appro-
priate safety distance.

840Dsl SINUMERIK Operate Page 43 M102


3.18 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes

Comparison of Swivel modes


In this example we want to bevel a corner on a cube. The oblique surface
is defined as the machining plane as follows:

Z Y
50
X
50
45°

45°
45°

Z Y
View A
X

30° 20.412

Reference point for


rotation

View A
25

M102 Page 44 840Dsl SINUMERIK Operate


3.19 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Swiveling of a plane always involves 3 steps:

1. Shifting the WCS before rotation


2. Rotating the WCS about the new zero point
3. Shifting the WCS in the rotated work plane

The first and the last step is in this example is the same for all swivel
modes:

Shift workpiece coordinate system along the X axis (X=50mm)

Shift workpiece coordinate system along the Y axis (Y=-50mm)

Shift workpiece coordinate system along the Z axis (Z=-25mm)

840Dsl SINUMERIK Operate Page 45 M102


3.20 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Axis by axis

 With selection of Swivel mode „axis by axis“ the coordinate system is


first rotated in the XY plane (G17) in such a way that the upper edge of
the inclined surface of the cube runs parallel to the Y axis 1 (rotate
-45° about Z). The coordinate system is then tilted in such a way, that
the inclined plane of the cube is in the XY plane 2 (rotate 54.736°
about Y axis). The last step is a additive shift of the coordinate system
along the X axis to the centre of the hole 3.

1 2

M102 Page 46 840Dsl SINUMERIK Operate


3.21 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Solid angles

With selection of Swivel mode „solid angles“, the coordinate system is first
rotated in the XY plane (G17) in such a way that the upper edge of the inc-
lined surface of the cube runs parallel to the Y axis (1) (α=-45°). The coor-
dinate system is then tilted in such a way, that the inclined plane of the cu-
be is in the XY plane (2) (β=54.736°). The last step is a additive shift of the
coordinate system along the X axis to the centre of the hole (3).

840Dsl SINUMERIK Operate Page 47 M102


3.22 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Projection angles

 When swiveling using the projection angle, the angle value of the swiv-
eled surface (α=-45° und β=54.736°) is projected onto the first two axes
of the right angle coordinate system 1 (Xα = 45° und Yα = 45°). The
user can select the axis rotation sequence. The third rotation starts from
the previous rotation in our example a rotation about the Z axis 2 (Zβ =
30°), so that the X axis runs through the centre of the hole 3. The last
step is a additive shift of the coordinate system along the X axis to the
centre of the hole 4.

1 2

Y Zβ

Yα Xα

X Reference point
for rotation Y

X
3 4

M102 Page 48 840Dsl SINUMERIK Operate


3.23 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
Direct angles

 With selection of Swivel mode „directly“ the first rotary axis A is pos-
itioned to -54.736° (1) and the second rotary axis C to 225°, so that the
inclined plane of the cube is in the XY plane (G17) (2). The coordinate
system must now be rotated in such a way that the Y axis is aligned
with the upper edge of the cube (3). The last step is a additive shift of
the coordinate system along the X axis to the centre of the hole (4).

1 2

3 4

840Dsl SINUMERIK Operate Page 49 M102


3.24 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes

Example 1: “Swivel plane” 3+2 axes positioning

Work Steps
1. Square Block 100 x 100 to size (initial position)
2. Face Milling of Workpiece (initial position)
3. Face milling inclined plane 15° (plane 1)
4. Circular Pocket milling Ø40mm 15° (plane 1)
5. Spot face positions at -7° (additive from plane 1)
6. Spot face positions at +7° (additive from plane 1)
7. Drill positions Ø8.5mm at +7° (additive from plane 1)
8. Drill positions Ø8.5mm at -7° (additive from plane 1)
9. Tap positions M10x1.5 at -7° (additive from plane 1)
10. Tap positions M10x1.5 at +7° (additive from plane 1)
11. Face milling oblique plane (plane 2)
12. Face milling oblique plane (plane 3)
13. Circular pocket milling Ø11mm on oblique plane (plane3)
14. Circular pocket milling Ø11mm on oblique plane (plane 2)

Tool List
T10 (Indexable Roughing Endmill for Aluminium D=32 R=2)
T11 (Carbide Endmill 2 Flutes D=16)
T12 (Carbide Endmill 2 Flutes D=8)
T13 (Carbide Twist Drill 8.5 mm)
T14 (Tap M10x1.5)

M102 Page 50 840Dsl SINUMERIK Operate


3.25 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes

Plane 2
Plane 3

Plane 1

Plane 1
Plane 3

Plane 2

Y+

X+

35.
264
°

Y+

Z+

Z+
Y+
X+

840Dsl SINUMERIK Operate Page 51 M102


3.26 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes

Program: EXAMPLE_1.MPF

;************ APPLICATION EXAMPLE 3+2 SWIVEL PLANE *************

N100 ;*** SWIVEL INTO BASE ORIENTATION (INITIAL SETTING) ***


N101 CYCLE800(4,"TABLE",200000,57,0,0,50,0,0,0,0,0,0,1,,1)

N102 ;*** BLANK DEFINITION FOR SIMULATION ***


N103 WORKPIECE(,,,"BOX",112,0,51,-80,-2.5,-2.5,102.5,102.5)

M102 Page 52 840Dsl SINUMERIK Operate


3.27 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N104 T10 D1; T=“INDEX_ENDMILL_D32“
N105 M6
N106 S5000 M3
N107 G54 G0 X0 Y0 M8
N108 TRANS Z50; Shift Z0 to workpiece top surface

N109 ;***Rectangular spigot roughing 100x100***


N110 CYCLE76(10,0,0,-50,,100,100,0,0,0,0,2.5,0,0,3000,2000,
0,1,110,110,,,2100,1,2)

N111; ***Face milling in base orientation***


N112 CYCLE61(10,1,5,0,0,0,100,100,1,20,0,2000,32,0,1,0)

840Dsl SINUMERIK Operate Page 53 M102


3.28 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N113 ;***Swivel into Plane_1 rotation around X=-15 Grad***
N114 CYCLE800(4,"TABLE",200000,57,0,0,50,-15,0,0,0,0,0,1,,1)

N115 ;***Face milling roughing Plane_1***


N116 CYCLE61(35,25.8,5,0,0,0,100,103.6,5,20,0.2,2000,31,0,1,0)

Note: (Calculation of parameter „Z0“)


GK β
sin   H
H GK  sin  * H
GK

sin 15 = GK / 100
AK = sin 15 * 100 α
AK = 25.881 AK

M102 Page 54 840Dsl SINUMERIK Operate


3.29 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N117 ; ***Face milling finishing Plane_1***
N118 CYCLE61(10,1,5,0,0,0,100,103.6,5,20,0.2,1000,12,0,1,0)

N119 T11 D1 ; T=“SC_ENDMILL_D16“


N120 M6
N121 S8000 M3
N122 G54 G0 X50 Y51.758 M8 ; Pre-position above pocket centre

N123 ;*** Circular pocket milling roughing in Plane_1***


N124 POCKET4(10,0,2,-15,40,50,51.758,5,0.1,0.1,2000,2000,0,21,80,
0,,10,2.5,0,,,10100,111,10)

840Dsl SINUMERIK Operate Page 55 M102


3.30 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N125 ;*** Circular pocket milling finishing in Plane_1***
N126 POCKET4(10,0,2,-15,40,50,51.76,2.5,0.1,0.1,1000,1000,
0,22,80,0,,5,2.5,0,,,10100,111,10)

N127 T12 D1; T=“SC_ENDMILL_D10“


N128 M6
N129 S6000 M3 F500
N130 G54 G0 X0 Y0 M8

N131 ;***Calculate swivel Plane 1 rotation around X=-15 deg***


N132 CYCLE800(4,"TABLE",220000,57,0,0,50,-15,0,0,50,51.76,0,0,,1)

M102 Page 56 840Dsl SINUMERIK Operate


3.31 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N133 ; ***Additive rotation around Y=-7 deg from Plane_1***
N134 CYCLE800(4,"TABLE",200001,57,-35,-24,0,0,-7,0,0,0,0,1,,1)

N135 ;***Plunge Pilot Hole***


N136 MCALL CYCLE82(10,0,5,-3,,1,0,1,12)

N137 G0 X0 Y0
N138 G0 X0 Y60
N139 MCALL

840Dsl SINUMERIK Operate Page 57 M102


3.32 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N137 ;***Calculate Swivel Plane_1 rotation around X=-15 deg***
N138 CYCLE800(4,"TABLE",220000,57,0,0,50,-15,0,0,50,51.76,0,0,,1)

N139 ; ***Additive rotation around Y=+7 deg from Plane_1***


N140 CYCLE800(4,"TABLE",200001,30,35,-24,0,7,0,0,0,0,0,1,,1)

M102 Page 58 840Dsl SINUMERIK Operate


3.33 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N144 ;***Plunge Pilot Hole***
N145 MCALL CYCLE82(10,0,5,-3,,1,0,1,12)

N146 G0 X0 Y0
N147 G0 X0 Y60
N148 MCALL

N149 T13 D1; T=“SC_DRILL_D8.5“


N150 M6
N151 S4000 M3 F500
N152 G54 G0 X0 Y0 M8
N153 ;***Deep Hole Drilling D=8.5 ***
N154 MCALL CYCLE83(10,0,2,-20,,-5,,0,0,0,100,1,0,5,,0,1,0,1,12121112)

N155 G0 X0 Y0
N156 G0 X0 Y60
N157 MCALL

840Dsl SINUMERIK Operate Page 59 M102


3.34 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N158 ;***Calculate Swivel Plane_1 rotation around X=-15 deg***
N159 CYCLE800(4,"TABLE",220000,57,0,0,50,-15,0,0,50,51.76,0,0,,1)

N160 ;***Additive rotation from Plane_1 around Y=-7 deg***


N161 CYCLE800(4,"TABLE",200001,30,-35,-24,0,-7,0,0,0,0,0,1,,1)

M102 Page 60 840Dsl SINUMERIK Operate


3.35 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N162 ;***Deep hole drilling D=8.5***
N163 MCALL CYCLE83(10,0,2,-20,,-5,,0,0,0,100,1,0,5,,0,1,0,1,12121112)

N164 G0 X0 Y0
N165 G0 X0 Y60
N166 MCALL

N167 T14 D1; T=“TAP_M10“


N168 M6
N169 S800 M3
N170 G54 G0 X0 Y0 M8
N171 ;***Tapping M10***
N172 MCALL CYCLE84(10,0,5,-12,
,1,3,,1.5,0,800,800,0,1,0,0,,1.4,,,,,1001,1001002)

N173 G0 X0 Y0
N174 G0 X0 Y60
N175 MCALL

840Dsl SINUMERIK Operate Page 61 M102


3.36 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N176 ;***Calculate Swivel Plane_1 rotation around X=-15 deg***
N177 CYCLE800(4,"TABLE",220000,57,0,0,50,-15,0,0,50,51.76,0,0,,1)

N178 ;*** Additive rotation from Plane1 around Y=+7 deg***


N179 CYCLE800(4,"TABLE",200001,30,35,-24,0,7,0,0,0,0,0,1,,1)

M102 Page 62 840Dsl SINUMERIK Operate


3.37 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N180 ; ***Tapping M10***
N181 MCALL CYCLE84(10,0,5,-
12,,1,3,,1.5,0,800,800,0,1,0,0,,1.4,,,,,1001,1001002)

N182 G0 X0 Y0
N183 G0 X0 Y60
N184 MCALL

N185 T10 D1; T=“INDEX_ENDMILL_D32“


N186 M6
N187 S6000 M3
N188 G54 G0 X0 Y0 M8
N189 ;***Swivel into Plane_2 rotation around Z=-45 X=54.736 deg***
N190 CYCLE800(1,"TABLE",200000,39,0,0,25,-45,54.736,0,0,0,0,1,)

840Dsl SINUMERIK Operate Page 63 M102


3.38 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N191 ; ***Face milling roughing in Plane 2 ***
N192 CYCLE61(24.434,14.434,2,0,-25,0,50,40,2,20,0.2,2000,31,0,1,0)

N193 ; ***Face milling finishing in Plane 2 ***


N194 CYCLE61(10,0.2,2,0,-25,0,50,40,2,20,0.2,2000,12,0,1,0)

Note: (Calculation for parameter „Z0“)


H β
sin 35.264 = GK / 25
GK

GK = sin 35.264 * 25
GK = 14.4336
α
AK

M102 Page 64 840Dsl SINUMERIK Operate


3.39 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N195 ;*** Swivel into Plane 3 rotation around Z=45 X=54.736 deg***
N196 CYCLE800(4,"TABLE",200000,39,100,0,25,45,54.736,0,0,0,0,1,,1)

N197 ; ***Face milling roughing Plane 3 ***


N198 CYCLE61(24.434,14.434,2,0,-25,0,50,40,2,20,0.2,2000,31,0,1,0)

840Dsl SINUMERIK Operate Page 65 M102


3.40 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N199 ; ***Face milling finishing Plane 3***
N200 CYCLE61(10,0.2,2,0,-25,0,50,40,2,20,0.2,2000,12,0,1,0)

N201 T12 D1; T=“SC_ENDMILL_D10“


N202 M6
N203 S8000 M3
N204 G54 G0 X0 Y0 M8

N205 ;***Circular pocket roughing Plane 3***


N206 POCKET4(10,0,2,-
5,11,0,20.41,2.5,0.1,0.1,1000,1000,0,21,6,0,,3,1.25,0,,,10100,111,0)

M102 Page 66 840Dsl SINUMERIK Operate


3.41 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N207 ;***Circular pocket finishing Plane 3***
N208 POCKET4(10,0,2,-
5,11,0,20.41,2.5,0.1,0.1,1000,1000,0,22,6,0,,3,2.5,0,,,10100,111,0)

N209 ;*** Swivel into Plane 2 rotation around Z=-45 X=54.736 deg***
N210 CYCLE800(1,"TABLE",200000,39,0,0,25,-45,54.736,0,0,0,0,1,)

840Dsl SINUMERIK Operate Page 67 M102


3.42 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
N209 ;***Circular pocket roughing Plane 2***
N210 POCKET4(10,0,2,-
5,11,0,20.41,2.5,0.1,0.1,1000,1000,0,21,6,0,,3,1.25,0,,,10100,111,0)

N211 ;***Circular pocket finishing Plane 3***


N212 POCKET4(10,0,2,-
5,11,0,20.41,2.5,0.1,0.1,1000,1000,0,22,6,0,,3,2.5,0,,,10100,111,0)

M102 Page 68 840Dsl SINUMERIK Operate


3.43 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “programGUIDE G code” Section 3
Notes
N213 ;*** Swivel into basic orientation (initial setting)***
N214 CYCLE800(4,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)

N215 ;***Deselect swivel cycle***


N216 CYCLE800(0,"0",200000,57,0,0,50,0,0,0,0,0,0,1,,1)

N217 M30; END OF PROGRAM

Note:
Alternatively you can deselect CYCLE800 with manual input of
CYCLE800().

840Dsl SINUMERIK Operate Page 69 M102


3.44 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Swivel plane “programGUIDE G code”
Notes
Simulation PROGRAM

3D view

Top view

M102 Page 70 840Dsl SINUMERIK Operate


3.45 CYCLE800 in AUTOMATIC mode
CYCLE800 - Approach tool “programGUIDE G code” Section 3
Notes
CYCLE800 “Approach tool”

General explanation

After "Swivel plane", the tool orientation is always vertical (normal) to the
machining plane. When milling with ball nose cutters, it can make techno-
logical sense to set the tool at an angle to the surface normal vector to im-
prove cutting conditions by means of avoiding to cut with the tool centre
see pictures below (also refer to section 1.09 “Approach tool”).

Setting tool: 1st rotation Setting tool: 2nd rotation


Lead angle Tilt angle

In the swivel cycle, the setting angle is generated by an axis rotation (max.
+/- 90 degrees) in the active swivel plane. When setting the tool orientation
with "Approach tool", only rotations are displayed in the swivel cycle input
screen form. The angles of rotation that describe the tool orientation are
always “additive”. The user can select the rotation sequence.

The tool length of the Ball nose cutter is to be set to the TCP (tool centre
point).

If a program with one or several settings of tool orientations is to be milled,


a "new" swivel plane must always be set before the subsequent
“Approach tool” cycle call.

840Dsl SINUMERIK Operate Page 71 M102


3.46 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Approach tool “programGUIDE G code”
Notes
Procedure for programming tool orientation and subsequent
machining:

Press the following softkeys to open the Cycle “Approach tool”:

► Swivel the coordinate system into the “new” machining plane.


► Set the tool orientation at an angle to the surface normal vector.
► Program machining as usual in the X/Y plane.
► Swivel the coordinate system back to its original (initial) position.

 PL: Select machining plane for reference of rotation (e.g. G17)


 TC: Select the name of the swivel data record (e.g. “TABLE”)
 Retract: Select the retraction mode before swivelling (settable in the
swivel data record via $TC_CARR37).
 Sequence of axes: Select the order in which the axes change tool ori-
entation
 X, Y: Enter the angle of rotation for each geometry axis.
 Tool: Select weather the tool tip is tracked or not during positioning of
rotary axes.

Note:
The Tool tracking function “Tool” can be activated/deactivated in
$TC_CARR[37].
The machining plane “PL” can be activated/deactivated in the channel
specific MD52005 $MCS_DISP_PLANE_MILL
0 = Plane selection active in cycle input mask
17 = always G17, 18 = always G18, 19 = always G19

M102 Page 72 840Dsl SINUMERIK Operate


3.47 CYCLE800 in AUTOMATIC mode
CYCLE800 - Approach tool “programGUIDE G code” Section 3
Notes
Description of parameter input mask:

The "Approach tool" input screen form corresponds to the minimized


swivel CYCLE800 input screen form.

Parameter Description
TC Name of the swivel data set
Retract ■ No: No retraction before swiveling
■ Z: Retraction of machine axis Z
■ Z,X,Y: Move machining axis to retraction position
before Swiveling
■ Max. tool direction: Maximum retraction in tool
direction (up to software end position)
■ Inc. tool direction: Retraction incremental in tool
direction e.g. 100 mm

■ ZR: Retraction path (this field only shows for


incremental retraction in tool direction e.g. 100 mm)

Note! all retraction methods are executed in rapid traverse.

Sequence Order in which axes are rotated.


of axes: Rotation around maximum of 2 axes in the WCS
XY or XZ or YX or YZ or ZX or ZY

X Rotation around X in degrees

Y Rotation around Y in degrees

Tool Tracking of tool tip when swiveling

• Track
The position of the tool tip is
maintained during swiveling.

• Do not track
The position of the tool tip is
not maintained during swiveling.

840Dsl SINUMERIK Operate Page 73 M102


3.48 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 - Approach tool “programGUIDE G code”
Notes
Example 2: “Approach tool” 3+2 axis positioning

Work steps:

 Rough profile with vertical tool orientation


 Finish profile with change of tool orientation (lead angle 45°)

Tool List

 6mm ball nose cutter (T=“BALLNOSE_D6")

Blank material:

 Aluminium 150 x 80 x 25

M102 Page 74 840Dsl SINUMERIK Operate


3.49 CYCLE800 in AUTOMATIC mode
CYCLE800 - Approach tool “programGUIDE G code” Section 3
Notes
Description:
The following example shows a free form surface pre-machined with a
3-axis milling strategy parallel to the Y-axis (1).

The remaining finishing allowance of 0,2 mm is to be removed.


To improve cutting conditions for the finishing operation we recommend
to change tool orientation (lead angle -45° about the Y-Axis) (2).

With Help of CYCLE800 „Approach tool“ it is possible to change the tool


orientation under which the workpiece is to be machined.
The same tool path as for the 3-axis roughing operation with vertical spindle
orientation can be used (3).

2
°
45
Z

Note:
Only change in tool orientation takes place. Linear axes X,Y,Z move ac-
cording to the plane set in CYCLE800 “Swivel plane”.

840Dsl SINUMERIK Operate Page 75 M102


3.50 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Approach tool” programGUIDE G-code
Notes
Workpiece drawing:

Location of workpiece zero offset in program (G54):

Y+

X+

M102 Page 76 840Dsl SINUMERIK Operate


3.51 CYCLE800 in AUTOMATIC mode
CYCLE800 “Approach tool” programGUIDE G-code Section 3
Notes

Program: EXAMPLE_2.MPF

;*********** APPLICATION EXAMPLE 3+2 APPROACH TOOL ***********

N100 ;*** SWIVEL INTO BASE ORIENTATION (INITIAL SETTING) ***


N101 CYCLE800(4,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1, ,1)

N102 ;*** DEFINE BLANK FOR SIMULATION ***


N103 WORKPIECE(,,,”BOX”, 112,0,-50,-80,0,-40,150,40)

840Dsl SINUMERIK Operate Page 77 M102


3.52 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Approach tool” programGUIDE G-code
Notes
N104 T="BALLNOSE_D6" D1
N105 M6
N106 S8000 M3

;***** TECHNOLOGY 3-AXIS ROUGHING FINISH ALLOW. 0.2mm *****


N107 R51=1000; Feed Z
N108 R52=3000; Feed XY
N109 R53=1000; Feed Approach
N110 R50=0.5; Step over in X
N111 CYCLE832(0.01,3,1) ; HSC Settings roughing

N112 G54 G0 X-4 Y-44; Pre-position to start point


N113 G0 Z5; Safe Z

;*** TOOL ORIENTATION NORMAL TO XY PLANE ***


N114 CYCLE800(1,"TABLE",101,54,,,,0,0,,,,,-1,100,1)

N117 REPEAT LBL1 LBL0 P150; Call label for subprogram after M30 and
repeat 150 times

M102 Page 78 840Dsl SINUMERIK Operate


3.53 CYCLE800 in AUTOMATIC mode
CYCLE800 “Approach tool” programGUIDE G-code Section 3
Notes
;***** TECHNOLOGY 3+2 AXIS FINISHING WITH TILTED TOOL ******
N116 R51=1000 ; Feed Z
N117 R52=2000 ; Feed XY
N118 R53=1000 ; Feed Approach
N119 R50=0.1; Step over in X
N120 CYCLE832(0.005,1,1) ; HSC Settings finishing

N121 G54 G0 X-4 Y-44; Pre-position to start point


N122 G0 Z5; Safe Z

;*** CHANGE TOOL ORIENTATION Y=-45 X=0 ***


;*** ATTENTION !!! TOOL IS BEING TRACKED ***

;*** TOOL ORIENTATION X=0 Y=-45 DEG ***


N123 CYCLE800(4,"TABLE",101,54, , , ,-45,0, , , , ,-1,100,1)

N124 REPEAT LBL1 LBL0 P750; Call label for subprogram after M30 and
repeat loop 75 times

840Dsl SINUMERIK Operate Page 79 M102


3.54 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Approach tool” programGUIDE G-code
Notes
;***** DESELECT HSC SETTINGS ******
N125 CYCLE832(0,0,1)

;*** SWIVEL PLANE RESET ROTATION (INITIAL SETTING) ***


N126 CYCLE800(1,"TABLE",200000,39,0,0,0,0,0,0,0,0,0,1,)

;***** CANCEL SWIVEL CYCLE ******


N127 CYCLE800()
N128 M30

;*** SUBPROGRAM CALL WITH LOOP ***


N129 LBL1:
N130 CALL "FINISH_SURFACE" ;#SM;*RO*
N131 LBL0:

M102 Page 80 840Dsl SINUMERIK Operate


3.55 CYCLE800 in AUTOMATIC mode
CYCLE800 “Approach tool” programGUIDE G-code Section 3
Notes
FINISH_SURFACE.SPF

N11 G1 X=IC(R50) F=R51; step over in X


N12 Z-20.9 F=R51
N13 Z-22.9
N14 Y-40 F=R53
N15 Y-39.683 F=R52
N16 Y-38.707
N17 Y-37.73
N18 Y-37.722 Z-22.882
N19 Y-37.641 Z-22.564
N20 Y-37.497 Z-22.072
N21 Y-37.318 Z-21.541
N22 Y-37.193 Z-21.216
N23 Y-37.069 Z-20.91
N24 Y-36.944 Z-20.621
N25 Y-36.695 Z-20.098
N26 Y-36.446 Z-19.629
N27 Y-36.197 Z-19.201
N28 Y-35.948 Z-18.809
N29 Y-35.699 Z-18.445
N30 Y-35.45 Z-18.104
N31 Y-35.201 Z-17.782
N32 Y-34.952 Z-17.484
N33 Y-34.703 Z-17.203
N34 Y-34.454 Z-16.933
N35 Y-34.205 Z-16.682
N36 Y-33.956 Z-16.443
N37 Y-33.707 Z-16.213
N38 Y-33.209 Z-15.791 NOTE:
N39 Y-32.711 Z-15.411
N40 Y-32.213 Z-15.066 Because of limited space, you can see
N41 Y-31.964 Z-14.907 here only a section of the subprogram.
N42 Y-31.715 Z-14.754 The program consists intentionally only
N43 Y-31.466 Z-14.609 of one tool path and is offset incremen-
N44 Y-31.217 Z-14.471 tally in X direction.
N45 Y-30.719 Z-14.216 The program loop in the main-program
N46 Y-30.221 Z-13.986 repeats the subprogram by the pa-
...... rameter „P“ multiple times.

N100 Y-9.804 The subprogram in this example is lo-


N101 Y-8.86 cated in the same directory as the
N102 Y-7.917 main-program and is called up with the
N103 Y-7.687 Z-22.442 „CALL“ command.
N104 Y-7.251 Z-21.571
N105 Y-6.816 Z-20.699 If the subprogram should be located
N106 Y-6.567 Z-20.201 on a different drive, then the sub-
N107 Y-6.318 Z-19.703 program call must be done with the
N108 Y-6.069 Z-19.205 „EXTCALL“ command.
N109 Y-5.82 Z-18.707 The program path for example for a
N110 Y-5.571 Z-18.209 USB stick is programmed as follows:
N111 Y-5.322 Z-17.711
N112 Y-5.073 Z-17.213 EXTCALL "USB:/MOLD_AND_DIE/
N113 Y-4.824 Z-16.715 FINISH_SURFACE.MPF"
N114 Y-4.699 Z-16.475
N115 Y-4.637 Z-16.37
…..

840Dsl SINUMERIK Operate Page 81 M102


3.56 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Approach tool” programGUIDE G-code
Notes
N297 X=IC(R50); step over in X
N298 Y39.002 F=R51
N299 Y38.004
N300 Y37.444 Z-14.901
N301 Y36.884 Z-14.902
N302 Y36.759 Z-14.909
N303 Y36.635 Z-14.922
N304 Y36.51 Z-14.939
N305 Y36.386 Z-14.962
N306 Y36.261 Z-14.989
N307 Y36.137 Z-15.023
N308 Y36.012 Z-15.062
N309 Y35.888 Z-15.106
N310 Y35.763 Z-15.157
N311 Y35.553 Z-15.256
N312 Y35.265 Z-15.341
N313 Y35.141 Z-15.386
N314 Y34.954 Z-15.465
N315 Y34.829 Z-15.532
N316 Y34.705 Z-15.614
N317 Y34.611 Z-15.691
N318 Y34.518 Z-15.789
N319 Y34.456 Z-15.871
N320 Y34.394 Z-15.974
N321 Y34.331 Z-16.11
N322 Y34.269 Z-16.294
N323 Y34.211 Z-16.549
N324 Y34.18 Z-16.713
N325 Y34.082 Z-16.953
N326 Y34.008 Z-17.187
N327 Y33.954 Z-17.424
N328 Y33.919 Z-17.658
N329 Y33.903 Z-17.856
N330 Y33.892 Z-18.318
N331 Y33.868 Z-18.646
N332 Y33.833 Z-18.949
N333 Y33.783 Z-19.261
N334 Y33.717 Z-19.576
N335 Y33.631 Z-19.904
N336 Y33.53 Z-20.226
N337 Y33.398 Z-20.58
...
...

N593 Y-36.944 Z-20.621


N594 Y-37.069 Z-20.91
N595 Y-37.193 Z-21.216
N596 Y-37.318 Z-21.541
N597 Y-37.497 Z-22.072
N598 Y-37.641 Z-22.564
N599 Y-37.722 Z-22.882 F=R52
N600 Y-37.73 Z-22.9 F=R51
N601 Y-38.707
N602 Y-39.683
N603 Y-40
N604 Y-44
N605 M17

M102 Page 82 840Dsl SINUMERIK Operate


3.57 CYCLE800 in AUTOMATIC mode
CYCLE800 “Approach tool” programGUIDE G-code Section 3
Notes
Simulation PROGRAM

3D view

Top view

840Dsl SINUMERIK Operate Page 83 M102


3.58 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel tool” programGUIDE G-code
Notes
CYCLE800 “Swivel tool” technology turn/mill
Function:

The purpose of “Swivel tool” with the functions "Align milling tool" or "Align
turning tool", is to support turn/mill machines with a B axis that can be
swiveled. This functionality is designed for use with a specific configuration
of the turn/mill machine. Lathes or milling machines on which the tool ori-
entation is implemented by a swivel axis B (around Y) with associated mill-
ing spindle (SP2). It is designed to be compatible with both turning and
milling tools.

Example:
Turn/Mill machining
centre with B-axis
milling head (SP2)

In contrast to "Swivel plane", no rotation is effective in the active frame


chain (WCS) in the case of "Swivel tool" or "Align tool". Only the offsets
calculated by the NC and the corresponding tool orientation are effective.
The maximum angular range for "Align tool" is + 360 degrees or it is limited
by the traversing range of the participating rotary axes. Technological limits
are also placed on the angular range depending on the tool used.
The use of the "Align milling tool" function is restricted to milling operations
in parallel with the axis (face, peripheral machining) at a machine with a
B-axis that can be swiveled. For milling of inclined planes CYCLE800
"Swivel plane" function must be used.

In the case of "Align turning tool" in the turning area, the activation of NC
function CUTMOD ensures that the correct tools for tool point direction or
tool clearance angle of a turning tool are made available.

Note:
The function "B axis kinematics" must be activated in the swivel data re-
cord via $TC_CARR37[n]. Through this the softkey "Swivel tool" is acti-
vated. In the second plane you can find then the soft key "Align milling
tool" or “Align turning tool”.

M102 Page 84 840Dsl SINUMERIK Operate


3.59 CYCLE800 in AUTOMATIC mode
CYCLE800 “Swivel tool” programGUIDE G-code Section 3
Notes
Application of CYCLE800 “Align milling tool”

This function is used to align a milling tool for:


 Face, peripheral machining in parallel with the axis X,Y,Z
 Measuring milling tools in parallel with the axis X,Y,Z

Note:
The following cycle does not rotate the coordinate system. Only the offset
and orientation of the tool is being calculated by the NC. This has the ad-
vantage that 4-axis transformation with TRANSMIT and TRACYL in the
machining planes G17, G18, G19 can be used.

Procedure for alignment of milling tools and subsequent


machining:

Press the following softkeys to open the Cycle “Align milling tool”:

840Dsl SINUMERIK Operate Page 85 M102


3.60 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel tool” programGUIDE G-code
Notes
► Swivel the tool in order to align the tool orientation along Z axis (G17
plane), or Y axis (G18 plane) or X (G19 plane)
► Program machining as usual in the G17, G18, G19 plane.
► Swivel the tool back to initial position

 TC: Select the name of the swivel data record (e.g. “GM1”)
 Retraction: Select the retraction mode before swivelling (settable in the
swivel data record via $TC_CARR37).
 ZR: Enter the incremental retraction path distance in the tool direction
(only for retract mode “Inc. tool direction”).
 β: Enter here a angle, if you wish to align a tool with the B-axis head
(e.g. β=0°,-90°,-180°, here the rotation takes place about the geometry
axis Y).
 Tool: Select weather the tool tip is tracked or not during positioning of
rotary axes.

Description of parameter input mask:

Parameter Description
TC Name of the swivel data set
Retraction ■ No: No retraction before swiveling
■ Z: Retraction of machine axis Z
■ Z,X,Y: Move machining axis to retraction position
before Swiveling
■ Max. tool direction: Maximum retraction in tool
direction (up to software end position)
■ Inc. tool direction: Retraction incremental in tool
direction e.g. 100 mm

Note! all retraction methods are executed in rapid traverse.

ZR (for Retraction path - (only for incremental retraction in the tool


G17) direction)
β Rotation of the B-axis about the geometry axis Y in degrees

Tool Tracking of tool tip when swiveling

• Track
The position of the tool tip is
maintained during swiveling.

• Do not track
The position of the tool tip is
not maintained during swiveling

M102 Page 86 840Dsl SINUMERIK Operate


3.61 CYCLE800 in AUTOMATIC mode
CYCLE800 “Swivel tool” programGUIDE G-code Section 3
Notes
Example 3: “Align milling tool”

Description:
A rectangular pocket 28x50x5 is to be machined on a cylinder surface with
a diameter of 100mm. The B-axis milling head is to be used for machining
of the pocket with help of the cylinder transformation function TRACYL.

-15

R5

D=5
50

28

Program: EXAMPLE_3.MPF

;***SWIVEL PLANE INTO BASE ORIENTATION (INITIAL SETTING)***


N10 CYCLE800(0,"GM1",100000,57,0,0,0,0,0,0,0,0,0,-1,100,1)

840Dsl SINUMERIK Operate Page 87 M102


3.62 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel tool” programGUIDE G-code
Notes
;**** BLANK DEFINITION FOR SIMULATION ****
N20 WORKPIECE(,,,"CYLINDER",192,0,-100,-80,100)

N30 T="CUTTER_D8" D1
N40 M6
N50 SETMS(2) ;Set milling spindle SP2 as master spindle
N60 DIAMOF ;Diameter programming off
N70 G95 S4500 M3 ;Spindle speed in RPM
N80 G17 G54 G0 X100 Y0 ;Position to safe point in XY plane
N90 Z100 ;Position to safe point in Z

;***** Set B-axis head perpendicular to cylinder jacket G19 ****


:***** Attention all axes move simultaneous !!!!! *****
N100 CYCLE800(0,"WSP",310,57,,,,,-90,,,,,-1,100,3)

M102 Page 88 840Dsl SINUMERIK Operate


3.63 CYCLE800 in AUTOMATIC mode
CYCLE800 “Swivel tool” programGUIDE G-code Section 3
Notes
N110 G0 X100 Y0 ; Preposition XY
N120 Z10 ;Preposition Z
N130 M3 ; Spindle on CW
N140 TRACYL(100); Activate cylinder transformation reference Ø100mm

;*** Contour call for the Cylinder jacket ***


N150 CYCLE62("CYLINDER_JACKET",1,,)

;**** Define parameters for contour pocket milling cycle ****


N160 CYCLE63 ("POCKET_CYL",1011,60,50,1,5,500,0.1,50,1,0,0,0,0,0,5,
1,15,1,2,,,,0,103,111)

N170 TRAFOOF ; Turn off transformation


N180 G0 X100 ; Retract to safe position
N190 M30 ; End of program

840Dsl SINUMERIK Operate Page 89 M102


3.64 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel tool” programGUIDE G-code
Notes
;*** Contour description with interactive contour editor****
N200 E_LAB_A_CYLINDER_JACKET: ;#SM Z:3
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
G19 G90 DIAMOF;*GP*
G0 Y-25 Z-15 ;*GP*
G1 Z-33 RND=5 ;*GP*
Y25 RND=5 ;*GP*
Z-10 RND=5 ;*GP*
Y-25 RND=5 ;*GP*
Z-15 ;*GP*
;CON,1,0.0000,0,0,MST:0,0,AX:Y,Z,J,K;*GP*;*RO*;*HD*
;S,EX:-25,EY:-10;*GP*;*RO*;*HD*
;LD,EY:-33;*GP*;*RO*;*HD*
;R,RROUND:5;*GP*;*RO*;*HD*
;LR,EX:25;*GP*;*RO*;*HD*
;R,RROUND:5;*GP*;*RO*;*HD*
;LU,EY:-10;*GP*;*RO*;*HD*
;R,RROUND:5;*GP*;*RO*;*HD*
;LL,EX:-25;*GP*;*RO*;*HD*
;R,RROUND:5;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_CYLINDER_JACKET:

Note:
The direction sign of the β angle in CYCLE800 “Align milling tool” depends
on the basic setting (initial setting) of the kinematics set by the machine
manufacturer. In our example the initial setting of the B-axis is pointing in
negative Z direction in the G17 plane. A rotation of the B-axis about the
Geometry axis Y in anticlockwise direction is therefore “negative”.

M102 Page 90 840Dsl SINUMERIK Operate


3.65 CYCLE800 in AUTOMATIC mode
CYCLE800 “Swivel tool” programGUIDE G-code Section 3
Notes
Simulation PROGRAM

3D view

Half cut view

840Dsl SINUMERIK Operate Page 91 M102


3.66 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel tool” programGUIDE G-code
Notes
Application of CYCLE800 “Align turning tool”

This function is used to align a turning tool for:


 Face, diameter turning at any desired angle according to the application
range of the turning tool.
 Measuring turning tools

Hinweis:
In the case of "Align turning tool" in the turning area, the activation of NC
function CUTMOD ensures that the correct tools for tool point direction or
tool clearance angle of a turning tool are made available.

Procedure for alignment of turning tools and subsequent


machining:

Press the following softkeys to open the Cycle “Align milling tool”:

M102 Page 92 840Dsl SINUMERIK Operate


3.67 CYCLE800 in AUTOMATIC mode
CYCLE800 “Swivel tool” programGUIDE G-code Section 3
Notes

► Swivel the tool in order to align the turning tool for face or diameter ma-
chining in any desired orientation. The relief angle of the turning tool can
hereby be changed through the alignment function.
► Program machining as usual in any tool orientation
► Swivel the tool back to initial position

 TC: Select the name of the swivel data record (e.g. “WSP”)
 Retraction: Select the retraction mode before and after swivelling
(settable in the swivel data record via $TC_CARR37).
 β: Enter the rotation angle in degrees if you wish to align the turning tool
with the B-axis head (any angle is here possible for β, the rotation re-
lates to the geometry axis Y, the rotation direction depends upon the
initial kinematic setting of the machine tool manufacturer).
 γ: Enter the rotation around the turning tool axis in degrees (for G18 X,
for G17 Z, for G19 Y)
 Tool: Select weather the tool tip is tracked or not during positioning of
rotary axes.

Description of parameter input mask:

Parameter Description
TC Name of the swivel data set
Retraction  No: No retraction before swiveling
 Z: Retraction in the direction of machine axis Z
 Z, X, Y: Move machining axis to retraction position before
swiveling
 Tool direction, max.:
Maximum retraction in tool direction
 Tool direction, inc.:
Incremental retraction in tool direction
ZR Retraction path - (only for incremental retraction in the tool
direction)
β Rotation of the B-axis about the geometry axis Y in degrees

γ Rotation around the turning tool in degrees

Tool Tracking of tool tip when swiveling


• Track
The position of the tool tip is
maintained during swiveling.
• Do not track
The position of the tool tip is
not maintained during swiveling

840Dsl SINUMERIK Operate Page 93 M102


3.68 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel plane” in ShopMill
Notes
CYCLE800 “Swivel plane” in ShopMill

Procedure for programming CYCLE800 “Swivel plane” and


subsequent machining:

Press the following softkeys to open the Cycle “Swivel plane”:

► Define the machining plane (G17) in the program „Header“.


► Swivel the coordinate system into the plane to be machined.
► Program machining as usual in the X/Y plane.
► Swivel the coordinate system back to its initial position.

 TC: Select the name of the swivel data record (e.g. “TABLE”)
 T: Select a tool from the tool list with the VSK “Select tool”
 D: Select the cutting edge number (D1- D9)
 Retract: Select the retraction mode before swivelling (settable in the
swivel data record via $TC_CARR37).
 Swivel: Select “Yes” for swivel if you wish to make a swivel movement,
or “no” if you just want to use the Swivel plane for calculation without
swivel movement.
 Swivel plane: Select “New” as swivel movement if you wish to make a
new swivel movement, or “additive” if you wish to base the movement
on a previous swivel movement .

M102 Page 94 840Dsl SINUMERIK Operate


3.69 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “ShopMill” Section 3
Notes
 X0, Y0, Z0: Specify the reference point before rotation (X0, Y0, Z0) .
 Swivel mode: Select “Axis by axis” or “direct swivel” mode
 Sequence of axes: Select the order of the axis to rotate about.
 X, Y, Z: If “axis by axis” enter the angle of rotation for each geometry
axis. If “direct” than enter the angle by which the axis should swivel for
each rotary axis.
 X1, Y1, Z1: Enter the zero point after the rotation .
 Direction: Select the preferred direction for rotary axes positioning (set
in the swivel data record $TC_TCARR37[n]).
 Tool: Select weather the tool tip is tracked or not during positioning of
the rotary axes.

Press the VSK "Initial position" if you wish to reestablish


the basic setting, i.e. you wish to set the values back to 0.

This is done, for example, to swivel the coordinate system back to its
original orientation.

Description of parameter input mask:

Parameter Description

TC: Name of the swivel data set

T: Select a tool from the tool list by pressing the VSK 1 “Select
tool” and confirm your selection with the “OK” softkey to
transfer the tool into the program.

Alternatively you can enter the tool name or number by


hand
D: Select the desired cutting edge number for the selected tool
(D1-D9)
For description of all other parameters see section
3.3 – 3.13 CYCLE800 - Swivel plane “programGUIDE G
code”

840Dsl SINUMERIK Operate Page 95 M102


3.70 CYCLE800 in AUTOMATIC mode
Section 3 CYCLE800 “Swivel plane” in ShopTurn
Notes
CYCLE800 “Swivel plane” in ShopTurn

Procedure for programming CYCLE800 “Swivel plane” and


subsequent machining:

Press the following softkeys to open the Cycle “Swivel plane”:

► Define the machining plane (G17) in the program „Header“.


► Swivel the coordinate system into the plane to be machined.
► Program machining as usual in the X/Y plane.
► Swivel the coordinate system back to its initial position.

 TC: Select the name of the swivel data record (e.g. “GSP”)
 T: Select a tool from the tool list with the VSK “Select tool”
 D: Select the cutting edge number (D1- D9)
 RP: Select the retraction mode before and after swiveling
 C0: Enter the C-axis position angle for the machining surface
 X0, Y0, Z0: Specify the reference point before rotation (X0, Y0, Z0) .
 Swivel mode: Select “Axis by axis” or “direct swivel” mode
 Sequence of axes: Select the order of the axis to rotate about.
 X, Y, Z: If “axis by axis” enter the angle of rotation for each geometry
axis. If “direct” than enter the angle by which the axis should swivel for
each rotary axis.
 X1, Y1, Z1: Enter the zero point shift (additive) after the rotation.

M102 Page 96 840Dsl SINUMERIK Operate


3.71 CYCLE800 in AUTOMATIC mode
CYCLE800 - Swivel plane “ShopTurn” Section 3
Notes
Press the VSK "Initial position" if you wish to reestablish
the basic setting, i.e. you wish to set the values back to 0.

This is done, for example, to swivel the coordinate system back to its
original orientation.

Description of parameter input mask:

Parameter Description

TC: Name of the swivel data set

T: Select a tool from the tool list by pressing the VSK 1 “Select tool”

Alternatively you can enter the tool name or number by hand

D: Select the desired cutting edge number for the selected tool (1-9)

RP: Retraction plane B-axis from front face

C0: Position angle for machining surface (main spindle C-axis)

For description of all other parameters see section


3.3 – 3.13 CYCLE800 - Swivel plane “programGUIDE G
code”

840Dsl SINUMERIK Operate Page 97 M102


4.1 Startup CYCLE800
Section 4 General explanation
Notes
Startup CYCLE800

General explanation:

The commissioning of the kinematic chain of the machine is a mandatory


requirement for correct swiveling functionality (CYCLE800). The kinematic
chain is stored in a swivel data record, that consists of 40, or 65 parame-
ters and are assigned to the toolcarrier data $TC_CARR1[n] to
$TC_CARR40[n] or $TC_CARR65[n].

$TC_CARR1 - 40 define the basic kinematic


$TC_CARR 41 - 65 are used as fine offset vectors.
Swivel data records can be declared in several channels
(for machines with multiple tool carriers).
It is also possible to work with multiple swivel data records on machines
with interchangeable toolcarrier.
A practical Example for a configuration of a machine with multiple swivel
data records, could be a machining center with a flexible 4th or 5th axis,
that can be attached on the machine table in various ways.

Example: Rotary table rotates about X-axis (rot axis-A) or


Rotary table rotates about Y-axis (rot axis-B) or
Rotary table rotates about Z-axis (rot axis-C)

As you can see in this example the same axis can either be an A,B or
C-Axis, depending on the application requirements.
The Index for each swivel data record must be different for each set.

Example for 1st swivel data set:


TCARR=0
$ TC_CARR1[1]

$TC_CARR35[1]="A1"
….
$ TC_CARR40 [1]
TCARR=1; Activate Tool Carrier 1

Example for 2nd swivel data set:


TCARR=0
$ TC_CARR1 [2]

$TC_CARR35[2]="B1"
….
$ TC_CARR40 [2]
TCARR=2; Activate Tool Carrier 2

Example for 3rd swivel data set:


TCARR=0
$ TC_CARR1 [3]

$TC_CARR35[3]="C1"
….
$ TC_CARR40 [3]
TCARR=3; Activate Tool Carrier 3

M102 Page 98 840Dsl SINUMERIK Operate


4.2 Startup CYCLE800
Configuration Section 4
Notes
Configuration:

Prerequisites for commissioning CYCLE800


The following cycles must be loaded in the standard cycles directory:
 CYCLE800.SPF
 E_TCARR.SPF (for ShopMill)
 F_TCARR.SPF (for ShopTurn)
 CUST_800.SPF
 PROG_EVENT.SPF

Activation:
To activate the swivel function, there must at least one tool holder that can
be oriented (swivel data set) in the NCK and the workpiece, tool and rotary
table reference system frames must be activated:
 Activate tool carrier via MD18088

MD18088 $MN_MM_NUM_TOOL_CARRIER Maximum number of definable


tool holders

>0

 Set system frame mask via MD28082 accordingly

MD28082 $MC_MM_SYSTEM_FRAME_MASK System frames (SRAM)


= 3DH
Bit 2 = 1 TCARR and PAROT
Bit 3 = 1 TAROT and TOFRAME
Bit 4 = 1 Workpiece reference points

Note
Changing machine data MD18088 and MD28082 cause the buffered
memory to be reorganized. After changing the machine data, a series
commissioning file must be generated and downloaded, otherwise, it
can be assumed that data will be lost.

 Activate and enable CYCLE800 on the user interface via the channel-
specific machine data MD55221:

MD55221 $MCS_FUNCTION_MASK_TECH Cross-technology function mask

Bit 0 = 1 Enable swivel

840Dsl SINUMERIK Operate Page 99 M102


4.3 Startup CYCLE800
Section 4 Configuration
Notes

Setting data

Configuring input screens:


You can configure the input screen for swiveling using the following chan-
nel-specific cycle setting data. The setting data is effective for all of the de-
clared swivel data sets.

SD55221 $SCS_FUNKTION_MASK_SWIVEL_SET Function screen

Bit 0 Input field "No swiveling"

= 0 hide

= 1 display

Bit 1 Text displayed for retract the tool axis

= 0 Display text Z = "Z", display text Z, XY = "Z,XY"

= 1 Display text Z = "Fixed point 1", Display text Z, XY = "Fixed point 2".
If you wish to modify the retraction version "Z" or "Z, XY" via the manu-
facturer cycle CUST_800.SPF, the neutral text "Fixed point 1" and "Fixed
point 2" can be displayed.
Bit 2 Deselecting the active swivel set

= 0 If deselection is not permitted, the "Swivel data set" (TC) selection field is
not displayed in the "Swivel" input screen.
= 1 Deselection permitted see also swivel data set parameter $TC_CARR37
HUNDRED MILLIONS position
Bit 3 Displays the active swivel plane under swivel in JOG. The setting in the
swivel function screen acts on all swivel data sets.

Modification of rotary axis motion

MD21180 $MC_ROT_AX_SWL_CHECK_MODE Check software limits for


orientation axes

= 0 The orientation is not modified

= 1 Orientation of rotary axes is modified

= 2 Orientation of rotary axes is modified

M102 Page 100 840Dsl SINUMERIK Operate


4.4 Startup CYCLE800
Configuration Section 4
Notes

Machine data

To use the swiveling cycle, the machine data below must be set as follows
(minimum requirement):

MD10602 $MN_FRAME_GEOAX_CHANGE_MODE

= 1 The actual total frame (work offsets) is recalculated when switching over
geometry axes (selecting/deselecting TRAORI).

MD11450 $MN_SEARCH_RUN_MODE Settings block search

Bit 1= 1 Activate PROG_EVENT.SPF after block search. This means that for a block
search, the rotary axes of the active swivel data set are pre-positioned.

MD11602 $MN_ASUP_START_MASK Ignore stop conditions


for ASUB
Bit 0= 1 ASUB, self-locking
Used for the swivel function in JOG

MD11604 $MN_ASUP_START_PRIO_LEVEL Priorities


$MN_ASUP_START
= 64 Corresponds to 100
Used for the swivel function in JOG

Declare swivel data sets

For the swivel function, swivel data sets must created in the NCK and de-
clared in the following machine data.

MD18088 $MN_MM_NUM_TOOL_CARRIER Maximum number of definable


tool holders that can be oriented.
Number of swivel data sets
=0 Do not declare any swivel data sets

=1 Declare swivel data sets

If several channels are declared in the NCU, the number of swivel data
sets is split up, taking MD28085 $MN_MM_LINK_TOA_UNIT into account.

Example:
MD18088 $MN_MM_NUM_TOOL_CARRIER = 4
Number of channels = 2.
Assignment of the TO areas: MD28085 $MN_MM_LINK_TOA_UNIT= 2,
this results in two swivel data sets per channel.

840Dsl SINUMERIK Operate Page 101 M102


4.5 Startup CYCLE800
Section 4 Configuration
Notes
Using angular tools
Angular tools are created and managed in SINUMERIK
Operate or NCU with tool type 130. The tool lengths are
entered in the tool of tool type 130. If an angular tool is
also used on a swiveled machining plane (CYCLE800),
the basic tool orientation must be enabled with MD18114
$MM_ENABLE_TOOL_ORIENT = 2. This enables a di-
rection vector to be transferred to the tool in the tool pa-
rameters $TC_DPV3[n] to $TC_DPV5[n]. The TOROT
(G17), TOROTY (G18), and TOROTX (G19) commands
must be programmed for the tool change so that the basic tool orientation is up-
dated.
n = internal tool number

MD18114 $MM_ENABLE_TOOL_ORIENT Assign orientation to cut-


ting edges.
Basic tool orientation
= 0 No basic tool orientation active

= 2 Basic tool orientation active.


Used for angular tools and swiveling

MD20110 $MC_RESET_MODE_MASK Initial control setting for


RESET and end of
part program
Bit 14 = 1 Calculation of the Basic– and System frames, Example: 4041H.

MD20112 $MC_START_MODE_MASK Basic control setting for


START and part
program.
400H

MD20126 $MC_TOOL_CARRIER_RESET_VALUE Active tool holder at


RESET.
= 0 No active tool holder on RESET

= > 0 (n) Tool holder with number n active at RESET.


MD20126 is written to in CYCLE800.
CYCLE800() corresponds to deselecting tool holder (MD20126 = 0).

MD20150 $MC_GCODE_RESET_VALUES[ ] Delete position, G group.

[41] = 1 Delete position, G group 42 on TCOABS


[51] = 2 Delete position, G group 52 on PAROT
[52] = 1 Delete position, G group 53 on TOROTOF
[52] = > Delete position, G group 53 on TOROT, TOROTY or TOROTX
1 Used for machine kinematics, types "T" and "M".
See parameter $TC_CARR34

Note:
If, after a RESET from the NC, a frame must be calculated in the tool direction,
then MD20150 $MC_GCODE_RESET_VALUES[52] can be set to a value > 1.
Applications: Machine kinematics with Hirth gearing
Angular tool with basic tool orientation

M102 Page 102 840Dsl SINUMERIK Operate


4.6 Startup CYCLE800
Configuration Section 4
Notes
Setting the workpiece, tool and rotary table reference

Using the following machine data, you can set the workpiece, tool and ro-
tary table reference system frames or you can influence the behavior of the
system frames.

Application:
System frames can be active after Reset or Power On, in order, e.g. to
retract a drill from a swiveled position without causing a collision.

MD24006 $MC_CHSFRAME_RESET_MASK Active system frames


after RESET
Bit 4 System frame workpiece reference

=0 Not active

=1 Remains active

MD24007 $MC_CHSFRAME_RESET_CLEAR_MASK Clear system frames


after RESET
Bit 4 System frame workpiece reference

=0 Do not delete

=1 Delete

When used for measuring or swiveling in JOG, the workpiece reference


must be active on RESET and not cleared (cascaded measuring).

MD24006 $MC_CHSFRAME_RESET_MASK Active system frames


after RESET
Bit 4 = 1 System frame for workpiece reference remains active after RESET

MD24007 $MC_CHSFRAME_RESET_CLEAR_MASK Clear system frames


after RESET
Bit 4 = 0 Do not clear system frame workpiece reference after RESET

MD24008 $MC_CHSFRAME_POWERON_MASK Reset system frames


after power on.
Bit 2 System frame rotary table reference (PAROT)

= 0 Do not reset

= 1 Reset

Bit 3 System frame tool reference (TOROT,..)

= 0 Do not reset

= 1 Reset

Bit 4 System frame workpiece reference

= 0 Do not reset

= 1 Reset

840Dsl SINUMERIK Operate Page 103 M102


4.7 Startup CYCLE800
Section 4 Configuration
Notes
MD24080 $MC_USER_FRAME_POWERON_MASK Settings for settable
frames.
Bit 0 System frame workpiece reference

=0 Settable work offset via power on not active.

=1 Last active settable work offset remains active after power on if


MD20152 $MC_GCODE_RESET_MODE[7] = 1.

Application: Work offset G5xx, including all rotations, should remain active after
Power On.

MD28082 $MC_MM_SYSTEM_FRAME_MASK Setting-up system


frames (SRAM)
Bit 2 = 1 Rotary table reference ($P_PARTFRAME)

Bit 3 = 1 Tool reference ($P_TOOLFRAME)

Bit 4 = 1 Workpiece reference ($P_WPFRAME)

MD28083 $MC_MM_SYSTEM_DATAFRAME_MASK Setting-up data manage-


ment, system frames
(SRAM)
Bit 2 = 1 Rotary table reference ($P_PARTFRAME)

Bit 3 = 1 Tool reference ($P_TOOLFRAME)

Bit 4 = 1 Workpiece reference ($P_WPFRAME)

MD28085 $MC_MM_LINK_TOA_UNIT Assigning a TO unit to a channel


(SRAM)

If several channels are set-up, then the following can be set in the machine data:
The number of tool holders (see MD18088) on the TO unit per channel.
- OR
Assigning all of the set tool carriers to a channel.

Axis machine data for the modulo rotary axes of the swivel data set

MD30455 $MA_MISC_FUNCTION_MASK Axis functions

Bit 0 Modulo rotary axis programming

= 0 No modulo rotary axis programming (e.g. 0 to 359.999 degrees)

= 1 Modulo rotary axis programming (e.g. -180 to 180 degrees)

Bit 2 Positioning, rotary axis

= 0 As programmed

= 1 Along the shortest path


Application: With the setting, bit 2=1 then e.g. for G90 with DC, rotary
axis C travels along the shortest path. Additional information can be
taken from the Chapter "Manufacturer cycle CUST_800.SPF".

M102 Page 104 840Dsl SINUMERIK Operate


4.8 Startup CYCLE800
Configuration Section 4
Notes
MD32010 $MA_JOG_VELO_RAPID[AX] AX = axis name
Rapid traverse in JOG,
Rotary and machine axes, that should
travel for swiveling in JOG.

= 10000 Rapid traverse in JOG mode for swivel in JOG

SD42980 $SC_TOFRAME_MODE Setting, frame definition for TOROT,


PAROT

= 2000 Swivel (default value)

SD42974 $SC_TOCARR_FINE_CORRECTION Fine offset TCARR


(swivel data set)
= 0 No fine offset of the swivel data set vectors.

= 1 Fine offset of the swivel data set vectors.


The parameters of the swivel data set from $TC_CARR41[n] n…
number of the swivel data set and higher apply.

Swiveling in the JOG mode

Cycle alarms 61186 and 61187 can be hidden or displayed using the fol-
lowing cycle machine data.

MD55410 $MC_MILL_SWIVEL_ALARM_MASK Activate fault evaluation


CYCLE800
Bit 0 Activates fault 61186

= 0 Hide fault 61186 "Active work offset G%4 and basic (basic reference)
contains rotations"
(default).
= 1 Display fault 61186

Bit 1 Activate fault 61187

= 0 Hide fault 61187 "Active basis and basis reference (G500) contain rota-
tions" (default).
= 1 Display fault 61187

840Dsl SINUMERIK Operate Page 105 M102


4.9 Startup CYCLE800
Section 4 Commissioning of the kinematic chain
Notes
CYCLE800 checklist for the identification of the machine kinematics

Identification of the machine kinematics (kinematic chain) according to DIN


66217 or ISO 841-2001

This checklist does not claim to be complete.


 Do the three linear axes of the machine that are active for the transfor-
mation form an orthogonal coordinate system? Geometry axes XYZ
 How many swivel kinematics does the machine have?
Combinations of two (or one) rotary axis and the three linear axes are
always formed.

 Which kinematics type is it?


Swivel head, swivel table or mixed kinematics of swivel head and swivel
table.

 What are the names of the rotary axes of the kinematics? Manual rotary
axes are permitted and do not have to be declared in the NC.

 What is the 1st or 2nd rotary axis of a swivel data set?


Rule: Rotary axis 2 is based on rotary axis 1. With mixed kinematics,
rotary axis 1 is always the axis for the tool orientation.

 Is the traversing direction of the linear axes and the rotary axes correct?
Right-hand rule. Rule: If the linear axis or the rotary axis moves the
workpiece, the direction of motion of the axis and also the sign of the
rotary axis vector change.

 What is the initial setting of the kinematics?


This defines the tool orientation and the plane G17, G18, G19.

 Which rotary axis rotates around which axis of the coordinate system or
the machine axis (axes)?

The result are the rotary axes vectors of the kinematic

Example 1 table kinematic type P:


Rotary axis 1 rotates around axis X → rotary axis vector V1xyz = -1,0,0
Rotary axis 2 rotates around axis Z → rotary axis vector V2xyz = 0,0,-1

Example 2 head kinematic type T:


Rotary axis 1 rotates around axis Y → rotary axis vector V1xyz = 0,1,0
Rotary axis 2 rotates around axis Z → rotary axis vector V2xyz = 0,0,1

Example 3 head - table kinematic type M:


Rotary axis 1 rotates around axis Y → rotary axis vector V1xyz = 0,1,0
Rotary axis 2 rotates around axis Z → rotary axis vector V2xyz = 0,0,-1

M102 Page 106 840Dsl SINUMERIK Operate


4.10 Startup CYCLE800
Commissioning of the kinematic chain Section 4
Notes
Commissioning of the kinematic chain (swivel data record)

Measuring of geometric values for vector chain:

To ensure the accuracy of your 5-axes machine, the kinematic chain must
be properly setup. Only then can the requirements for the 5-axis machining
can be met.
Therefore geometric vectors for NC-controlled or manually steerable rotary
axes have to be determined and entered into the controller during setup of
the swivel cycle “CYCLE800” and 5-axis transformation "TRAORI".
Measuring of the relevant kinematic vectors can be either manually or
automatically performed with the measurement cycle "CYCLE996”.
A calibration sphere and a calibrated probe is needed for automatic meas-
uring of the offset vectors (I1-I4).
In practice, the cycle simplifies verification and increases the process qual-
ity. Corrections of rotary axis vectors, that can occur for example due to
temperature fluctuations or other factors can be automatically verified.
For details on measurement cycle CYCLE996 refer to DoconCD.

Example: Nutaded Table 45° with AC Table Kinematic

A-Axis Kinematic C-Axis Kinematic

Note:
Prior to automatic measuring of offset vectors (I1-I4) with CYCLE996
all relevant TC_CARR parameters have to be configured.
Including rotary axes vectors (V1 V2).

840Dsl SINUMERIK Operate Page 107 M102


4.11 Startup CYCLE800
Section 4 Commissioning of the kinematic chain
Notes
Set up of swivel data record

Now the swivel data record for the machine kinematic of a swivel rotary
table with all relevant machine data has to be created and set.

 Swivel data record for CYCLE800 must be set up in the toolcarrier


parameters “$TC_CARR1 - 40” (see section 4.13 – 4.18 in this modul)
 Machine data set for the 5-axis transformation with TRAORI is set up in
the TRAFO machine data “$MC_TRAFO_ ....” (see Module M103 sec-
tion 6 “Startup 5-axis transformation TRAORI”) and must be set up only
if the “tool tracking” function in the swivel cycle is to be used.

Note:
5-axis transformation TRAORI is an option and requires a license
(see picture below)

Note:

To simplify this procedure of setting up a swivel data record, there is a


special user program “TCARR_EDIT.MPF“ to display the (active) tool car-
rier parameters ($TC_TCARR) into the local user data “LUD” in order to
modify these, or to read them out into a MPF file (see section 6 in this
module).
The relevant parameters $ TC_CARR1 [n] up to $ TC_CARR40 [n] in the
generated MPF program (e.g. TABLE.MPF) are listed numerically.
All relevant parameters such as for example offset vectors (I1-I4) and ro-
tary axis vectors (V1, V2) can be edited in this program.
By executing the TABLE.MPF program (see program on next page) in
“Automatic mode”, the changed parameters are written back to the NC
and activated immediately.

M102 Page 108 840Dsl SINUMERIK Operate


4.12 Startup CYCLE800
Commissioning of the kinematic chain Section 4
Notes
Example:
Swivel data record for a “AC” Swivel rotary table type “P” as MPF file.

TCARR=0
$TC_CARR1[1]=0 ;Offset vector I1 (X)
$TC_CARR2[1]=0 ;Offset vector I1 (Y)
$TC_CARR3[1]=0 ;Offset vector I1 (Z)
$TC_CARR4[1]=260 ;Offset vector I2 (X)
$TC_CARR5[1]=200 ;Offset vector I2 (Y)
$TC_CARR6[1]=0 ;Offset vector I2 (Z)
$TC_CARR7[1]=-1 ;Rotary axis vector V1 (X)
$TC_CARR8[1]=0 ;Rotary axis vector V1 (Y)
$TC_CARR9[1]=0 ;Rotary axis vector V1 (Z)
$TC_CARR10[1]=0 ;Rotary axis vector V2 (X)
$TC_CARR11[1]=0 ;Rotary axis vector V2 (Y)
$TC_CARR12[1]=-1 ;Rotary axis vector V2 (Z)
$TC_CARR13[1]=0
$TC_CARR14[1]=0
$TC_CARR15[1]=0 ;Offset vector I3 (X)
$TC_CARR16[1]=0.02 ;Offset vector I3 (Y)
$TC_CARR17[1]=20.04 ;Offset vector I3 (Z)
$TC_CARR18[1]=-260 ;Offset vector I4
$TC_CARR19[1]=-200.02 ;Offset vector I4
$TC_CARR20[1]=-20.4 ;Offset vector I4
$TC_CARR23[1]="P" ;Kinematic type
$TC_CARR24[1]=0
$TC_CARR25[1]=0
$TC_CARR26[1]=0
$TC_CARR27[1]=0
$TC_CARR28[1]=0
$TC_CARR29[1]=0
$TC_CARR30[1]=-10.5 ; 1.Rotary axis min. range
$TC_CARR31[1]=0 ; 2.Rotary axis min. range
$TC_CARR32[1]=130 ; 1.Rotary axis max. range
$TC_CARR33[1]=360 ; 2.Rotary axis max. range
$TC_CARR34[1]="TABLE" ;Name of swivel data record
$TC_CARR35[1]="A1" ;Rotary axis 1 identifier
$TC_CARR36[1]="C1" ;Rotary axis 2 identifier
$TC_CARR37[1]=415018003 ;Display variants swivel cycle
$TC_CARR38[1]=100 ;Retract position X
$TC_CARR39[1]=200 ;Retract position Y
$TC_CARR40[1]=410 ;Retract position Z
TCARR=1
M30

840Dsl SINUMERIK Operate Page 109 M102


4.13 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes
Toolcarrier parameters ($TC_CARR):
Offset vectors, Rotary axis vectors
$TC_CARR1[n] …. $TC_CARR20[n]

The Vectors always contain three components, which represent the refe-
rence to the X, Y, Z machine axes. Depending on the kinematic typ, vek-
torchains always have to be closed with a 3rd Vector.
Offsetvectors I1 to I4 refer to the non-swiveled state of the rotary axes
(basic setting of machine kinematics).

Refer to startup kinematics example on page 26-27.

Swivel head (Typ T) Swivel table (Typ P) Swivel head + Rotary table
(Typ M)

Rotary axis vector V1 Rotary axis vector V1 Rotary axis vector V1


Offsetvector I2 Offsetvector I3 Offsetvector I2
Rotary axis vector V2 Rotary axis vector V2 Offsetvector I3
Offsetvector I3 Offsetvector I4 Rotary axis vector V2
Offsetvector I4

The offset vectors do not have to point to the pivot point of the rotary axes.
The important thing is that they point to a point on the direction of rotation
(intersection).
The sign of the offset vectors (I1 to I4) and the rotary axis vectors (V1, V2)
result from the specifications of the axis directions according to ISO or DIN
(right-hand rule). In the case of kinematics that move the workpiece (rotary
table), the motion of the workpiece relative to the tool must be taken into
account.

Interlation of Toolcarrier data and Machinedata

Swivel head Typ T (swivel-mounted tool)


CYCLE800 TRAORI
$TC_CARR23[1]=“T” $MC_TRAFO_TYPE_1=24
I1 $TC_CARR1...3[n] $MC_TRAFO5_PART_OFFSET_1[0..2]
I2 $TC_CARR4...6[n] $MC_TRAFO5_JOINT_OFFSET_1[0..2]
I3 $TC_CARR15...17[n] $MC_TRAFO5_BASE_TOOL_1[0..2]

 I3 distance from the tool adapter to the pivot point/intersection of the


2nd rotary axis
 I2 distance from the pivot point/intersection of the 2nd rotary axis to the
pivot point/intersection of the 1st rotary axis
 I1 closure of the I1=-(I2+I3) vector chain, if the swivel head cannot be
changed

M102 Page 110 840Dsl SINUMERIK Operate


4.14 Startup CYCLE800
Toolcarrier parameters ($TC_CARR) Section 4
Notes
Swivel Tabel Typ P (swivel-mounted workpiece)
CYCLE800 TRAORI
$TC_CARR23[1]=“P” $MC_TRAFO_TYPE_1=40
I2 $TC_CARR4...6[n] $MC_TRAFO5_BASE_TOOL_1[0..2]
I3 $TC_CARR15...17[n] $MC_TRAFO5_JOINT_OFFSET_1[0..2]
I4 $TC_CARR18...20[n] $MC_TRAFO5_PART_OFFSET_1[0..2]

 I2 distance from the machine reference point to the pivot point/


intersection of the 1st rotary axis
 I3 distance from the pivot point/intersection of the 1st rotary axis to the
pivot point/intersection of the 2nd rotary axis (or to the reference point of
the tool adapter)
 I4 closure of the I4=-(I2+I3) vector chain, if the swivel table cannot be
changed

Swivel head + swivel tabel Typ M (mixed kinematics)


CYCLE800 TRAORI
$TC_CARR23[1]=“M” $MC_TRAFO_TYPE_1=56
I1 $TC_CARR1...3[n] $MC_TRAFO5_JOINT_OFFSET_1[0..2]
I2 $TC_CARR4...6[n] $MC_TRAFO5_BASE_TOOL_1[0..2]
I3 $TC_CARR15...17[n] $MC_TRAFO5_JOINT_OFFSET_PART_1[0..2]
I4 $TC_CARR18...20[n] $MC_TRAFO5_PART_OFFSET_1[0..2]

 I2 distance from the tool adapter to the pivot point/intersection of the 1st
rotary axis
 I1 closure of the I1=-I2 vector chain, if the swivel head cannot be
changed
 I3 distance from the machine reference point to the pivot point/
intersection of the 2nd rotary axis (or to the reference point of the tool
adapter)
 I4 closure of the I4=-I3 vector chain, if the swivel table cannot be
changed

Rotary axis vectors V1 x,y,z, V2 x,y,z


CYCLE800 TRAORI
Rotary axis vector V1 Rotary axis vector V1
I2 $TC_CARR7...9[n] $MC_TRAFO5_AXIS1_1[0..2]
Rotary axis vector V2 Rotary axis vector V2
I4 $TC_CARR10...12[n] $MC_TRAFO5_AXIS2_1[0..2]

840Dsl SINUMERIK Operate Page 111 M102


4.15 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes
Kinematics
$TC_CARR23[n]
Selection:
 Swivel head (type T)
 Swivel table (type P)
 Swivel head + swivel table (type M)

Table + Table Head + Head Head + Table


( Swivel Rotary - Table) (Rotary Fork Head) (Rotary Head & Rotary Table)
Swiveling tool carrier Swiveling tool carrier Mixed kinematics
(Type P) (Type T) (Type M)

Head + Table Table + Table Head + Head


(Nutated Swivel Head ) (Nutated Swivel Rotary -Table) (Nutated Swivel Rotary Head)

Mixed kinematics Swiveling tool carrier Swiveling tool carrier


(Type M) (Type P) (Type T)

Offset kinematics
$TC_CARR24[n]; $TC_CARR25[n]
An offset value is entered for rotary axis 1 or 2 when the position of the ro-
tary axes is not equal to 0 in the initial setting of the kinematics.
In the initial setting of the kinematics, the tool orientation to a geometry
axis (X, Y, Z) must be parallel.

$TC_CARR24[n] Kinematics offset of rotary axis 1.

$TC_CARR25[n] Kinematics offset of rotary axis 2.

Hirth tooth system


$TC_CARR26[n]... $TC_CARR29[n]
Selection:
⇒ 0: No (Subsequent fields are concealed)
⇒ 1: Yes

M102 Page 112 840Dsl SINUMERIK Operate


4.16 Startup CYCLE800
Toolcarrier parameters ($TC_CARR) Section 4
Notes
$TC_CARR26[n] Angular offset of Hirth gearing at the start of
gearing of rotary axis 1.
$TC_CARR27[n] Angular offset of Hirth gearing at the start of gear-
ing of rotary axis 2.
$TC_CARR28[n] Angle grid of the Hirth gearing for rotary axis 1.

$TC_CARR29[n] Angle grid of the Hirth gearing for rotary axis 2.

Angle range
$TC_CARR30[n] .. $TC_CARR33[n]
A valid angle range (e.g., -90 to +90 degrees) must be assigned to each
rotary axis. This does not have to be the software end position range of the
rotary axis in question. With modulo axes, you must enter a traversing
range of between 0 and 360 degrees.

$TC_CARR30[n] Angle range of rotary axis 1 (minimum value).

$TC_CARR31[n] Angle range of rotary axis 2 (minimum value).

$TC_CARR32[n] Angle range of rotary axis 1 (maximum value).

$TC_CARR33[n] Angle range of rotary axis 2 (maximum value).

Name:
$TC_CARR34[n]
n = Swivel data record number
If several swivel data records are declared in each NC channel, then a
name is assigned to each swivel data record. No name needs to be speci-
fied if the swivel-mounted tool holder is not exchangeable (i.e. one swivel
data record per channel).
Switching to the next swivel data record or/and channel is done with the
“Select” softkey.

Note:
Swivel data record names may only contain permitted NC programming
characters (A...Z, 0..9 and _)!

Rot. axis 1 / Rot. axis 2 Identifier


$TC_CARR35[n]; $TC_CARR36[n]
The following identifiers should be chosen, where possible
Selection:
⇒ Axis rotates around machine axis X - A
⇒ Axis rotates around machine axis Y - B
⇒ Axis rotates around machine axis Z - C
For automatic rotary axes, the channel names of the corresponding NC
rotary axes must be entered (see $TC_CARR37[n] TENS and
HUNDREDS position: Automatic mode).
For manual (manually adjustable) and semi-automatic rotary axes, you can
use any axis identifier (up to 6 letters or digits).

840Dsl SINUMERIK Operate Page 113 M102


4.17 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes
Display variants of input mask in CYCLE800
$TC_CARR37[n] xxxxxxxxx
n=Number of swivel data record
The following display variants effect the input mask for swivel cycle. If the
following display varients are not set, the value will not be displayed in the
input mask.

Decimal place Bit Meaning


ONES 0 Select the swivel mode

0= Axis by axis
1= Axis by axis + projection angle
2= Axis by axis + projection angle + solid angle
3= Axis by axis + directly

4= Axis by axis + projection angle + directly


5= Axis by axis + projection angle + solid angle + directly

TENS 1 Type of rotary axis 1

0= Automatic
1= Manual
2= Semi-automatic
HUNDREDS 2 Type of rotary axis 2

0= Automatic
1= Manual

2= Semi-automatic

THOUSANDS 3 Selection field direction: Direction reference rot. axes

0= No, no display of the direction reference for


kinematics that only have one solution. Direc-
tion selection (_DIR) Minus is generated in the
input mask for CYCLE800.
3= Direction reference, rotary axis 1 optimized,
direction selection Minus in kine, basic setting.

4= Direction reference, rotary axis 2 optimized,


direction selection Minus in kine. basic setting.

5= No, no display of the direction reference for


kinematics that only have one solution. Direc-
tion selection (_DIR) Plus is generated in the
input mask for CYCLE800.
8= Direction reference, rotary axis 1 optimized,
direction selection Plus in kine. basic setting.

9= Direction reference, rotary axis 2 optimized,


direction selection Plus in kine. basic setting.
The values 1, 2, 6 and 7 are not permitted.

M102 Page 114 840Dsl SINUMERIK Operate


4.18 Startup CYCLE800
Toolcarrier parameters ($TC_CARR) Section 4
Notes
Decimal place Bit Meaning
TEN THOUSANDS 4 Selection field, tool tracking or B axis kinematics

0= No, no display of the tool tracking input field

1= Yes, tool tracking by means of TRAORI.

2= No tracking of tool tip + B axis kinematics turn-


ing technology.

3= Tool tracking + B axis kinematics turning tech-


nology. The tool tracking function requires the
"5-axis transformation (TRAORI)" option.
HUNDRED 5 Reserved
THOUSANDS
ONE MILLION and 6,7 Selection field, retraction
TEN MILLION
00= No retraction
01 = Retraction Z

02 = Retraction Z, XY

03 = Retraction Z or Z, XY

04 = Maximum retraction in tool direction

...
08 = Incremental retraction in tool direction

15 = Retraction Z or Z, XY or in maximum tool di-


rection or in incremental tool direction
HUNDRED 8 Swivel data set enabled,
MILLION Swivel data set change,
Tool change

0= Swivel data set not enabled


4= Swivel data set enabled,
automatic swivel data set change and tool change
5= Swivel data set enabled,
automatic swivel data set change and
manual tool change
6= Swivel data set enabled,
manual swivel data set change and
automatic tool change
7= Swivel data set enabled,
manual swivel data set change and
tool change

840Dsl SINUMERIK Operate Page 115 M102


4.19 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes
Swivel mode
The decimal place ONES (Bit 0) of the system variable $TC_CARR37[n]
determines, which swivel modes are being displayed in the input mask of
the swivel cycle.
Selection:
⇒ 0: Axis by axis
⇒ 1: Axis by axis + projection angle
⇒ 2: Axis by axis + projection angle + solid angle
⇒ 3: Axis by axis + directly
⇒ 4: Axis by axis + projection angle + directly
⇒ 5: Axis by axis + projection angle + solid angle + directly

Note:
Selection “directly”, allows rotary axis positions to be entered directly.
After rotary axes have been positioned (or manual rotary axes have been
rotated), a swivel frame is calculated for these positions. In swivel mode
“directly”, input fields with the names of the rotary axes of the active
swivel data record are displayed instead of “Rotation about” input fields.
In JOG mode VSK6 provides “Teach-in”, in order to transfer the actual
values of the automatic rotary axes.

Rotary axis 1 and 2


The decimal place TENS (Bit 1) of the system variable $TC_CARR37[n]
determines, what kind of rotary axes are part of the machine kinematics.
Selection:
⇒0 : Automatic
NC-Rotary axes are automatically traversed to the appropriate swivel
angle.
⇒1: Manual
Rotary axes are moved manually by the operator to the appropriate
position, e.g. „very simple machines“ with manually adjustable rotary
axes (measuring system: steel gage).
Messages 62180/62181 display the swivel angle to be set.
⇒2: Semi-automatic
In „semi-automatic“ mode, messages 62180/62181 (dispaly of angle
values to be set) are not displayed

Note:
Selection 1 refers to manual rotary axes, that are positioned at a calcula-
ted angle by an appropriate mechanism. For this purpose, the machine
manufacturer can modify the CUST_800 user cycles (see page 36) to
pass the swivel angle (local variable _A1, _A2) to a subroutine (markers
_M21.. For manual rotary axes).
Both mixed machine kinematics (e.g., 1st rotary axis automatic, 2nd rotary
axis manual) and ïncomplete“machine kinematics with only one rotary axis
are permitted.
If machine kinematics are to be implemented with just one rotary axis, this
must always be declared as the first rotary axis.

M102 Page 116 840Dsl SINUMERIK Operate


4.20 Startup CYCLE800
Toolcarrier parameters ($TC_CARR) Section 4
Notes
Selection of preferred direction of rotary axes
The decimal place TEN THOUSAND (Bit 3) of the system variable
$TC_CARR37[n] determines, which axes is to be optimized for the directi-
on reference in the swivle cycle. In addition the default direction for the ini-
tial setting can be set.

Selection:
⇒ 0: No display of the direction reference, direction selection Minus is generated
⇒ 3: Direction reference to rotary axis 1 optimized, direction selection default Minus
⇒ 4: Direction reference to rotary axis 2 optimized, direction selection default Minus
⇒ 5: No display of the direction reference, direction selection plus is generated
⇒ 8: Direction reference to rotary axis 1 optimized, direction selection default Plus
⇒ 9: Direction reference to rotary axis 2 optimized, direction selection default Plus

Explanation of function:
The NCU calculates two possible solutions using the angle range of the
rotary axes of the machine kinematics (set in $TC_CARR30[n] ..
$TC_CARR33[n]). Usually, only one of these solutions is technologically
suitable.
The rotary axis to which the two solutions are to refer is selected in
TC_CARR[37] (refer to THOUSANDS position).
The solution to be applied is selected in the input screen form of the swivel
cycle.
If "0" or "5" is set, the Direction parameter is not displayed in the input
screen form and parameter _DIR is always set to the default -1 (minus)
or +1 (plus).

Note:

Selection 0 or 5 are made for machine kinematics that only have one solu-
tion to reach the programed plane.
Selection 3 or 4 are made to control the preferred direction reference for
rotary axis 1 or 2 in „Minus“ direction as basic setting of the machine kinematics
(initial setting).

Selection 8 or 9 are made to control the preferred direction reference for


rotary axis 1 or 2 in „Plus“ direction as basic setting of the machine kinematics
(initial setting).

The values 1, 2, 6 and 7 are not permitted.

840Dsl SINUMERIK Operate Page 117 M102


4.21 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes
Example:

Effect of Parameter "Direction reference rotary axes" with mixed


machine kinematics “Typ M”.

1st rotary axis


Swivel head A rotates around machine axis X
Angle range of 1st rotary axis –30° to +90°
2nd rotary axis
Rotary axis C rotates around machine axis Z
Angle range of 2nd rotary axis 0° to +360°
(modulo axis)

Program 1:
Swivel CYCLE800 (... Rotation about X = 20°, ... minus direction)
A-axis rotates to - 20° and C-axis to 180°
Program 2:
Swivel CYCLE800 (... Rotation about X = 20° degrees, ... plus direction)
A-axis rotates to 20° and C-axis to 0°
Program 3:
Swivel CYCLE800 (... Rotation about X = 45° degrees, ... minus direction)
A-axis rotates to 45° and C-axis to 0°
Program 4:
Swivel CYCLE800 (... Rotation about X = 45°, ... plus direction)
A-axis rotates to 45° and C-axis to 0°

Note:
The “preferred direction” parameter has no effect in programs 3 and 4
because two solutions are not produced for the kinematics starting at 30°
around X or Y due to the limited angle range of the A axis (-30° to +90°)
and therefore the first solution is always applied.

M102 Page 118 840Dsl SINUMERIK Operate


4.22 Startup CYCLE800
Toolcarrier parameters ($TC_CARR) Section 4
Notes
Tracking TL and B-axis kinematics
The decimal place TEN THOUSAND (Bit 4) of the system variable
$TC_CARR37[n] determines, wether the Cycle "Align tool" for the tech-
nologies turn mill or mill turn are being enabled. In addition the tool track-
ing function with “TRAORI” can be enabled.

Selection:
⇒ 0: No (no display of the tool tracking input field)
⇒ 1: Yes (display of the tool tracking input field)
⇒ 2: No correction of tool tip + B-axis kinematics for turning technology
⇒ 3: Correction of tool tip + B-axis kinematics for turning technology

Explanation of function:
The Track Tool function requires the 5-axis transformation option TRAORI.
If “yes” is selected there is a dynamic tracking of the Tool tip active, with
the movement of the rotary axes the current position is maintained by the
tip of the Tool relative to the work-piece (TCPM*).

Selection 2 and 3 activates in addition B-axis kinematics, which enables


the "Align tool" function for milling and turning tools in CYCLE800.

The purpose of the "Align tool" function is to support turning machines


with a swivel-mounted B axis. This functionality is designed for use with a
specific configuration of turning or milling machines on which the tool ori-
entation is implemented by a swivel axis B (around Y) with associated
milling spindle (SP2). It is designed to be compatible with both turning and
milling tools.

In the case of "Align tool" in the turning area, activation of NC function


CUTMOD ensures that the correct tools for tool point direction or tool
clearance angle of a turning tool are made available.

(more about this subject can be found in section 3.58 - 3.67)

* TCPM: Tool center point management

840Dsl SINUMERIK Operate Page 119 M102


4.23 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes
Retraction mode
The decimal places ONE MILLION and TEN MILLION (Bit 6 and 7) of the
system variable $TC_CARR37[n] determines, which retraction variants are
availbel in the parameter input mask of the swivel cycle:
 Retraction along Z axis
 Retraction along Z and XY axes
 Retraction in maximum or inkremental tool direction
Table for coding of retraction modes

Z Z,X,Y Maximum tool Incremental Coding of


direction tool direction $TC_CARR37
xXXxxxxxx
1 0 0 0 00
1 1 0 0 01
0 1 0 0 02
0 0 0 0 03
0 0 1 0 04
1 0 1 0 05
0 1 1 0 06
1 1 1 0 07
0 0 0 1 08
1 0 0 1 09
0 1 0 1 10
1 1 0 1 11
0 0 1 1 12
1 0 1 1 13
0 1 1 1 14
1 1 1 1 15

Note:
Maximum and incremental retraction in tool direction always occurs in the
positive tool direction (away from workpiece). Retraction in tool direction is
always executed prior to swiveling the rotary axes with the current tool ori-
entation. If the swivel plane is undefined at the start of a program, the axis
should first be traversed to a safe position or be safely prepositioned using
retraction Z. Maximum and incremental retraction in tool direction is par-
ticularly suitable for machines with swivel heads. In the case of a machine
with a swivel head and an active swivel frame.

Example:
In the case of a machine with a swivel X WCS
Z
head, the head and the WCS in the G17
plane is swiveled -90 degrees around the Y
X axis. Selection of Retraction mode “max.
tool direction” for the Z axis in the swivel
Z
cycle, results in traversing the machine axis MCS
X to the positive software end position.
Y

M102 Page 120 840Dsl SINUMERIK Operate


4.24 Startup CYCLE800
Toolcarrier parameters (TC_CARR) Section 4
Notes
Swivel data record change and tool change
The decimal place HUNDRED MILLION (Bit 8) of the system variable
$TC_CARR37[n] determines, if the swivel data set (record) is to be retai-
ned after a tool change (relevant only to ShopMill/ShopTurn).
Selection:
⇒ 0: Swivel data set not enabled
⇒ 4: Swivel data set enabled, automatic swivel data set and tool change
⇒ 5: Swivel data set enabled, automatic swivel data set and manual tool change
⇒ 6: Swivel data set enabled, manual swivel data set and automatic tool change
⇒ 7: Swivel data set enabled, manual swivel data set and tool change

Explanation:
In general, the swivel CYCLE800 and tool change functions for a machine
are independent of each other. Thus, the swivel work plane can be re-
tained in a technological sequence with multiple tools (e.g. centering, drill-
ing, taping).
If the rotary axes of the active swivel data record are involved in the me-
chanical sequence of the tool change or these rotary axes have to be re-
tracted, the tool change sequence program must ensure that the rotary
axes positions are approached again after the tool change. If linear axes
are also involved in the tool change, the rotations in the NC (swivel frame)
must not be deleted. Rather the linear axes can be positioned as machine
axes during the tool change using the G153 or SUPA commands.

Retraction/Retraction position
$TC_CARR38[n] .. to $TC_CARR40[n]..
n=swivel data record number

Retracting the geometry axes before swiveling


The ONE MILLION and TEN MILLION positions of the system variable
$TC_CARR37[n] define which retraction modes are displayed in the input
screen for the swivel cycle:
 Retraction of axis “Z” or “Fixed pt. 1” refer to 1)
 Retract axes “Z, XY” or “Fixed pt. 2” refer to 1) 2) 3)
 Retract in “Max. tool direction”
 Retract in “Incremental tool direction”

$TC_CARR38[n] Retract position for X axis 2)

$TC_CARR39[n] Retract position for Y axis 3)

$TC_CARR40[n] Retract position for Z axis 1)

The mode of retraction can be modified in the CUST_800 user cycle (see
page 114-115), if necessary. If CUST_800.MPF user cycle is not modified,
retracting axis Z or retracting axes Z, XY is realized as an absolute ma-
chine position at the values of parameters $TC_CARR38[n] to
$TC_CARR40[n].

Note:
Display variants for retraction mode “Fixed pt. 1” and “Fixed pt. 2” can be
set in SD55221 $SCS_FUNKTION_MASK_SWIVEL_SET (see page 88).

840Dsl SINUMERIK Operate Page 121 M102


4.25 Startup CYCLE800
Section 4 Toolcarrier parameters ($TC_CARR)
Notes

Kinematics fine offset


$TC_CARR41..65[n]

In TC_CARR41...65 "Kinematics fine offset" the vectors of machine


kinematics I1 to I4 or the offset values of the rotary axes can be entered .

The fine offsets are activated by the following setting data:


SD 42974: $SC_TOCARR_FINE_CORRECTION = 1.

The fine offsets act in addition to the corresponding base vectors when the
function "swiveling" CYCLE800 or the NC function TCARR=n is called.

Assignment of base vectors to the fine offset vectors:


● I1 $TC_CARR1..3[n] → $TC_CARR41..43[n]
● I2 $TC_CARR4..6[n] → $TC_CARR44..46[n]

● I3 $TC_CARR15..17[n] → $TC_CARR55..57[n]
● I4 $TC_CARR18..20[n] → $TC_CARR58..60[n]

Offset vectors of rotary axes


● $TC_CARR24..25[n] → $TC_CARR64..65[n]
n...number of swivel data record

Application:
The fine offsets can be applied for temperature compensation of machine
kinematics. For this purpose, the fine offsets can be written, activated, and
deactivated in a corresponding manufacturer cycle.

M102 Page 122 840Dsl SINUMERIK Operate


4.26 Startup CYCLE800
Commissioning example: Swivel table "Type T" Section 4
Notes

Commissioning example: Swivel table "Type P"

Vectors relate to the basic setting of the kinematics.

Rotary axis vector V1:


Rotary axis A rotates about X.

Rotary axis vector V2:


Rotary axis C rotates about Z.

Offset vector I2:


Distance from the reference point of
the machine to the pivot
point/intersection of rotary axis 1

Offset vector I3:


Distance from the pivot point of
rotary axis 1 to the pivot
point/intersection of rotary axis 2

Offset vector I4:


Closure of vector chain I4=-(I2+I3)

Side view of the machine from the X direction

Spindle (tool adapter) is positioned on a gage block located on the top


surface of the table (rotary axis C) or the center of the table.
A measuring bar in the spindle is used to determine the precise center
of rotation for the rotary axis C in X and Y direction.

840Dsl SINUMERIK Operate Page 123 M102


4.27 Startup CYCLE800
Section 4 Commissioning example: Swivel table "Typ T"
Notes

Side view of the machine from the Y direction

Kinematik Swivel table Name: Table


X Y Z
Offsetvector I2 260.000 200.000 0.000
Rotary axis vector V1 -1.000 0.000 0.000
Offsetvector I3 0.000 0.020 20.400
Rotary axis vector V2 0.000 0.000 -1.000
Offsetvector I4 -260.000 -200.020 -20.400

Display options
Swivel Mode Axis by axis direct
Direction Rotary axis 1 opti-
mized
Tracking TL yes

Rotary axes Identifier


Rotary axis 1 A Mode Auto
Angular range -10.500 130.000
Rotary axis 2 C Mode Auto
Angular range 0.000 360.000

M102 Page 124 840Dsl SINUMERIK Operate


4.28 Startup CYCLE800
Commissioning example: Turn/mill “B-axis” Section 4
Notes
Commissioning example: Mill/turn with B-axis “Type M”

You can configure a milling machine with a B axis (rotation around Y) so


that turning is possible.
The following example refers to a milling machine kinematic type M with a
nutaded swivel head B (rotary axis 1 around ZY), a rotary table C (rotary
axis 2 around Z) and a main spindle SP1 in the tool direction Z (G17).

You require the following swivel data sets to use the "Align tool" and
"Swivel plane" functions:
 Swivel data set 1 for "Swiveling in the plane" when milling.
Mixed kinematics: Rotary axis 1: B-axis, rotary axis 2: C axis
 Swivel data set 2 for the "Swivel tool - align tool" when turning
Swivel head: Rotary axis 1: B-axis, rotary axis 2: Spindle SP1
The rotary axis C is declared as the master spindle.

When commissioning the "B-axis kinematics turning technology" in pa-


rameter $TC_CARR37[n], the TEN THOUSANDS position must be set to 2
or 3 in swivel data set 2. This is the reason that in the program editor
"Swivel tool - align turning or milling tool" is listed for swivel data set 2.

The CUTMOD NC function is activated when this data set 2 is called in the
NC program (CYCLE800 align turning tool). This means that the cutting
edge position or the tool reference point is updated corresponding to the
tool orientation.

Vectors relate to the basic setting of the kinematics.


Rotary axis vector V1: Rotary axis B rotates around Y and around Z.
Rotary axis vector V2: Rotary axis C rotates around Z.
Offset vector I2: Distance from the reference point of the tool adap-
ter to the pivot point/intersection of rotary axis 1
Offset vector I1: Closure of vector chain l1=-12
Offset vector I3: Distance from the reference point of the machine
to the pivot point/intersection of rotary axis 2
Offset vector I4: Closure of vector chain l4=-I3

Side view of the


machine:
Spindle (tool
adapter) is
positioned on a
block dimension
above the top edge
of the table (rotary
axis C) or the center
of the table.
A measuring rod in
the spindle is used
to determine the
turning center of
rotary axis C.
SP1

840Dsl SINUMERIK Operate Page 125 M102


4.29 Startup CYCLE800
Section 4 Manufacturer cycle CUST_800.spf
Notes

Manufacturer cycle CUST_800.SPF

This cycle is designed for the machine tool manufacturer or end user to
customize CYCLE800, based on the requirements of the machine tool.
Events before and after swiveling can be modified upon requirement.

Customization by the machine manufacturer

During swiveling, all axis positions are traversed using the CUST_800.SPF
program which is always called from CYCLE800 swivel cycle or E_TCARR
(ShopMill) or F_TCARR (ShopTurn).

In cycle CUST_800.SPF, the function markers (_M2: to _M59) are pre-


pared and documented. Also refer to the diagram “Structure of swivel
cycles” section 4.31 – 4.32

If you modify the cycle CUST_800.SPF, proceed as follows:


Copy CUST_800.SPF from the standard cycle directory into the manufac-
turer cycle or user cycle directory. On start of CYCLE800.SPF, the pro-
gram looks first in the user cycles directory for the subprogram, if not there,
then in manufacturer cycles and last in the standard cycles directory.

M102 Page 126 840Dsl SINUMERIK Operate


4.30 Startup CYCLE800
Manufacturer cycle CUST_800.spf Section 4
Notes
Parameters of the CUST_800.SPF manufacturer cycle

CUST_800 (INT _MODE, INT _TC1, REAL _A1, REAL _A2, INT _TC2,
REAL _T_POS)
SAVE DISPLOF

Parameter Description
_MODE A jump is made to markers _M2 to _M59
_TC1 Number of the new swivel head/table
_A1 Angle of rotary axis 1
_A2 Angle of rotary axis 2
_TC2 Feed evaluation in percent (%) for swiveling in JOG mode
_T_POS Incremental position during retraction in the incremental tool
direction (see marker M44, _M45)

Retract prior to swiveling


Example:
If the CUST_800.SPF cycle is not modified, the Z axis (marker _M41) or
the Z axis followed by the X, Y axes (marker _M42) are first traversed in
the Machine to the positions when retracting prior to swiveling. The freely
available position values are specified in the system variables
$TC_CARR38[n] to $TC_CARR40[n]. When retracting, the active tool
cutting edge is deselected (D0) and is reselected after retraction.

If retraction in the tool direction had been declared, the tool axis is re-
tracted to the software end position (maximum in tool direction) or by an
incremental distance away from the tool in the tool direction. The tool
lengths are taken into account accordingly.

840Dsl SINUMERIK Operate Page 127 M102


4.31 Startup CYCLE800
Section 4 Manufacturer cycle CUST_800.spf
Notes
Basic structure of swivel cycles

Input screen form ShopMill/ShopTurn Input screen form CYCLE800 G-Code

CUST_800.SPF
E_TCARR.SPF Marker: _M01 to _M11
(F_TCARR.SPF)
E_SWIV_H.SPF Marker: _M02 to _M09
(F_SWIV_H.SPF)
E_SP_RP.SPF Marker: _M14 to _M15
(F_SP_RP.SPF)
CYCLE800.SPF Marker: _M20 to _M59

End of cycle

Note:

The parameters are only valid in conjunction with the relevant jump label
in CUST_800.SPF (see program structure on following page).

If Inch is the basic system of the machine, the CUST_800.SPF program


must be modified accordingly.

Note the machine manufacturer‟s instructions.

The subprograms E_SWIV_H, E_TCARR, E_SP_RP apply only for


ShopMill.
The subprograms F_SWIV_H, F_TCARR, F_SP_RP apply only for
ShopTurn.

(also see structure diagram on next page)

M102 Page 128 840Dsl SINUMERIK Operate


4.32 Startup CYCLE800
Manufacturer cycle CUST_800.spf Section 4
Notes
CYCLE800.SPF structure CUST_800.SPF structure

Input parameters:
- workplane
- swivel data record name “TC”
- retract
- swivel plane
- offsets
- swivel mode
- sequence
- rotations
- coordinate shift
- direction
- track tool

Rewriting of vectors in kinematic chain

Marker:
Calculation
_M40 Init
of valid swivel
Rewriting of vectors in kinematic chain is possi-
data record
ble, e.g. temperature compensation vectors of
W-axis in case of boring machines.

Swivel data record invalid

Error messages

Adjustment of retraction strategy

Marker:
Retraction tool _M41 Z axis
axis _M42 Z, XY axis
_M43 Tool direction max.
_M44 Tool direction inc.

No retraction

Traversing the rotary axes in case of NC axes

Marker:
- Calculation of rotary _M20 Rotary axes 1,2 automatic swiveling
axis angels _M21 Rotary axes 2 automatic
- Display of angle
Rotary axes 1 manual swiveling
values to be set
_M22 Rotary axes 1 automatic swiveling
(manual rotary axes)
- Deactivate 5-axis
_M23 Rotary axes 1 manual swiveling
transformation _M30 Rotary axes 1 automatic
Rotary axes 2 manual swiveling
_M40 Rotary axes 1,2 manual swiveling
_M57 _M58 _M59 Swiveling in JOG with TRAORI

No traversing of rotary axes

End of cycle

840Dsl SINUMERIK Operate Page 129 M102


4.33 Startup CYCLE800
Section 4 Manufacturer cycle CUST_800.spf
Notes
Structure E_TCARR.SPF (F_TCARR.SPF) CUST_800.SPF

Tool name
Input data for swiveling The following structure relates to the
swivel data record change and the asso-
ciated tool change in ShopMill/ShopTurn
SDS = Swivel data record
Old SDS 1
New SDS?

Old SDS 1 Yes Marker: _M2 Change magazine tool


No = Swivel
_M3 Change manual tool
head?

No

Change old/ Yes


Marker: _M8 Swivel head/table
new SDS auto-
matically? automatically

No

Change old/ Yes


new SDS Marker: _M9 Swivel head/table
manually? manually

No

Change old Yes Marker: _M6 Swivel head/table


SDS automati- automatically
cally new SDS Marker: _M5 Swivel head/table
manually? automatically

No

Change old Yes Marker: _M7 Swivel head/table


SDS manually manually?
new SDS auto- Marker: _M8 Swivel head/table
matically? automatically?

No

Tool Yes Marker: _M2 Change magazine tool


change? _M3 Change manual tool

No Marker: _M12 Swivel after tool change (Auto)


_M13 Swivel after tool change (JOG)

Marker: _M14 Retraction after swiveling

End of cycle

M102 Page 130 840Dsl SINUMERIK Operate


4.34 Startup CYCLE800
Manufacturer cycle CUST_800.spf Section 4
Notes
Note on markers _M2 to _M13
If the swivel data set (SDS) or tool is changed, the linear axes are re-
tracted using the last retraction mode (modal).
If this behavior is not desired in milling/turning, the corresponding calls
must be commented out with a semicolon (;). The E_SWIV_H or
F_SWIV_H cycle is called in milling/turning (see markers _M2 to _M9) in
the CUST_800.SPF manufacturer cycle.
Parameter E_SWIV_H (Par1, Par2, Par3)
 Par1: Number of swivel data set (_TC1)
 Par2: Angle of 1st rotary axis
 Par3: Angle of 2nd rotary axis

Modification examples
If the rotary axes (swivel head/table) are not to be positioned during swivel
data change / tool change, the call of the E_SWIV_H cycle can be com-
mented out at the relevant markers. If the rotary axes are to move to a cer-
tain position, an angle value can be transferred to parameters Par 2, Par 3.

Note on markers _M14 to _M15


Depending on the values of the retraction plane and the programmed
swivel plane, it is possible that the linear axes now also travel the swiveled
retraction plane while running up from the current position to the software
limit switches after a block search. To avoid this problem, marker _M14 in
the CUST_800.SPF is called after swiveling. The E_SP_RP(30) cycle pre-
set there runs up to the milling retraction plane, whereby travel may be
along the software limit switches. An appropriate retraction after block
search can be set at marker _M15.

Note on markers _M20 to _M31


Markers _M20 to _M31 are distinguished by machine kinematics with two
rotary axes or one rotary axis. A distinction is also made between auto-
matic rotary axes (known to the NCU) and manual (semi-automatic) rotary
axes. There is only ever one valid marker for swiveling with the active
swivel data set.

Note on marker _M35


Run through _M35 for block search and a swivel data set with manual ro-
tary axes.

Note on marker _M46


Retraction before swiveling after a block search can be set at marker
_M46. Variable _E_VER is 1 if it is a milling technology program.

Note on markers _M57 to _M59


Markers _M57 to _M59 are used for swiveling in JOG mode and active
5-axis transformation (TRAORI).

840Dsl SINUMERIK Operate Page 131 M102


4.35 Startup CYCLE800
Section 4 Manufacturer cycle CUST_800.spf
Notes
Note on "Tool tracking"
“Tool tracking” requires that a 5-axis transformation is set up, which is
equivalent to the corresponding swivel data set. The programming section
for "Tool tracking" is integrated in the markers _M20, _M21, _M22 and
_M30. The first 5-axis transformation is called with TRAORI.

Note on tool change + swivel


In general, the swivel (CYCLE800) and tool change functions for a ma-
chine are independent of each other. Thus, the swiveled work plane can
be retained in a technological sequence with multiple tools, e.g. centering,
drilling, tapping.

If the rotary axes of the active swivel data set are involved in the mechani-
cal sequence of the tool change or have to be retracted, this must be taken
into account in the tool change program. After the tool change, the rotary
axis positions are approached as prior to the tool change. If linear axes
(geometry axes) are also involved in the tool change, the rotations in
the NC (swivel frame) must not be deleted. Rather, the linear axes can be
positioned as machine axes using the G153 or SUPA commands.

Note on swiveling without active tool compensation


If swiveling the rotary axes without active tool cutting edge (D0) is not pos-
sible, then you can adapt this in cycle CUST_800.SPF:

_M40:
IF ((NOT $P_TOOL) AND _TC1)
LOOP
MSG ("no tool cutting edge active")
M0
STOPRE
ENDLOOP
ENDIF
GOTOF_MEND

M102 Page 132 840Dsl SINUMERIK Operate


5.1 Appendix
User cycle TCARR_EDIT.MPF Section 5
Notes
User cycle TCARR_EDIT.MPF

General explanation:
You can use the following program to write the tool carrier parameters
$TC_CARR1 - 40 into the local user variables (LUD), in order to modify the
values. Alternatively you can also choose to generate a MPF file that con-
tains a list of all tool carriers. Modifications can then be also done in this
file. The generated MPF file is carrying the name that was defined in
$TC_CARR34[n]. The name of the generated file can be renamed, keep-
ing in mind to select a name suitable for the machine kinematics to be de-
scribed.
Upon execution of the user cycle TCARR_EDIT.MPF the program will stop
several times. At M0 you have then the choice to continue with “Cycle
Start”-key or abort with the “RESET”-key. The exact procedure is de-
scribed as follows.

Note:
TCARR_EDIT.MPF is not a standard cycle and is not part of the NC ar-
chive

Procedure:
1. Activate Toolcarrier “TC” in JOG mode
If a machine has multiple toolcarriers or if there is no toolcarrier active (see
example below), it is important to activate the appropriate Toolcarrier TC
first. This can be done with the “Swivel function” in JOG.
 Select the swivel data record “TC” with the “SELECT” key

840Dsl SINUMERIK Operate Page 133 M102


5.2 Appendix
Section 5 User cycle TCARR_EDIT.MPF
Notes
 Activate the swivel data record with “CYCLE START”.
Note! the appearing name of the swivel data record

Name of active swivel


data record

2. Display and modify TCARR parameters

 Load user cycle TCARR_EDIT.MPF in “AUTOMATIC” mode and


start the program with the "Cycle Start"-key.

M102 Page 134 840Dsl SINUMERIK Operate


5.3 Appendix
User cycle TCARR_EDIT.MPF Section 5
Notes
 On the first program stop with M0: Parameters TC_CARR1 to 40 of
the active toolcarrier are being displayed in the area "Parameter>>
User variable>> Local LUD". If no toolcarrier should be active, the
parameters of the toolcarrier 1 (TCARR = 1) appears.

 The relevant parameters can now be changed in the LUD‟s (local


user data).

840Dsl SINUMERIK Operate Page 135 M102


5.4 Appendix
Section 5 User cycle TCARR_EDIT.MPF
Notes
 Input now the offset vectors I1-I4 and rotary axis vectors V1 and V2
from our startup kinematic chain example and Continue the program
with the "CYCLE-START"-key.

 Second program stop with M0: Upon continuation of the program


with the “CYCLE-START” button all changes that were made are
written to the NC and the toolcarrier is being activated.

M102 Page 136 840Dsl SINUMERIK Operate


5.5 Appendix
User cycle TCARR_EDIT.MPF Section 5
Notes
3. Create MPF File

 Third program stop with M0: Upon continuation of the program with
the “CYCLE-START” button a new program (e.g. TABLE.MPF) with
all parameters ($ TC_CARR1 to 40) of the tool carrier is being
created.

 To check if all changes were made correctly, the


“TCARR_EDIT.MPF“ program can be restarted.

840Dsl SINUMERIK Operate Page 137 M102


840Dsl SINUMERIK Operate Page 138 M102
M103 5-axis transformation TRAORI

Brief discription
Objective of the module:

This module is aimed at experts working in the mould & die and aerospace industry who need to get
acquainted with the key basic principles of multi-axis machining. Building on this, it also provides ma-
chine users with practical tips so that they can organize their work efficiently and provides program-
mers with an insight into 5-Axis Transformation function TRAORI on the control and the CAD/CAM
system.

Description of the Module:

This Module shows the application range with the 5-Axis Transformation TRAORI. With help of prac-
tical programming examples and explanation through graphical illustrations you get to learn how to
use and program 5-axis transformation with TRAORI. In addition this manual shows a brief insight of
commissioning 5-axis transformation TRAORI and important parameter settings for a proper function-
ality. (Note: This module is not to be mistaken for a commissioning manual for 5-axis transformation)
840D sl Sinumerik
Operate V2.6

Contents :

Theory

Information for the programmer

Programming on the machine

Programming on the CAM

Information for the machine operator

Startup 5-Axis transformation TRAORI

840Dsl SINUMERIK Operate Page 1 M103


M103

M103 Page 2 840Dsl SINUMERIK Operate


M103
TRAORI: Description
TRAORI:
START
This Module shows the application range with the
5-Axis Transformation TRAORI. With help of prac-
tical programming examples and explanation
through graphical illustrations you get to learn how
to use and program 5-axis transformation with
TRAORI. In addition this manual shows a brief in- Theory
sight of commissioning 5-axis transformation
TRAORI and important parameter settings for a
proper functionality. (Note: This module is not to
be mistaken for a commissioning manual for 5-
axis transformation)
Information for
the programmer

Programming on
the machine

Programming on
the CAM

Information for the


machine operator

Startup 5-Axis
transformation
TRAORI

TRAORI:
END

Notes :

840Dsl SINUMERIK Operate Page 3 M103


1.1 First for the Theory
Section 1 Introduction
Notes
Introduction
With multi-axis machining, the main objectives are to achieve perfect sur-
face quality, precision, and speed without any need for re-machining.
Within this context, workflow is typically characterized by the CAD-CAM-
CNC process chain.
840D sl Operate is equipped with powerful, advanced functions which,
when intelligently used, make the whole process of 5-axis machining and
programming considerably easier while at the same time improving the
results of production.
Various application areas of 5-axis machining and their dedicated functions
that have been specifically developed for each area, are introduced and
considered in the this module.

(Range of 5-axis machining)

Requirements of 5-axis machining

Design standards in all application areas are becoming increasingly more


demanding.
Expectations in terms of ergonomics, the air drag coefficient (CW value) or
simply aesthetic appeal are creating a need for more complex surface ge-
ometries to be achieved in less time and with greater precision.
The design primarily comes from CAD systems, the machining programs
from CAM stations.
Nevertheless, the skilled machine tool operator still has overall responsibil-
ity (in terms of technology) for the quality of the mold and the complete
tool.
The 840D sl system, is perfectly suited to the demands of 5-axis machining
as well as HSC applications:
 Simple to operate
 User-friendly programming at the machine
 Optimum performance throughout the CAD - CAM - CNC process chain
 Maximum control over quality at the machine
 Optimized 5-axis functions

M103 Page 4 840Dsl SINUMERIK Operate


1.2 First for the Theory
Requirements of 5-axis machining Section 1
Notes
Different requirements depending on the application area
Depending on the application, the requirements imposed on the control will
vary and a whole range of different functions may be demanded.
Within this context, 5-axis machining can be broken down into three broad
areas:
 Free-form surfaces (mold making)
 Turbine and driving gear components (impellers, blisks)
 Structural parts (aviation industry)

The 840D sl provides optimum support for each of these areas

Free-form surfaces,
mold & die making
industry

Driving gear and


turbine
components,
e.g. impellers,
blisks

Structural parts,
aviation industry

Each of the above shown 5-axis machining applications requires a certain


type of 5-axis machine, that is best suitable for the application and de-
pends in most cases on size and required angle range of the workpiece.
5-axis transformation functions are also a requirement for a efficient
manufacturing process.
Depending on the application there are various kinematic solutions avail-
able. (see page 7)

840Dsl SINUMERIK Operate Page 5 M103


1.3 First for the Theory
Section 1 General explanation of kinematic transformation
Notes
Kinematic 5-axis transformation

General explanation of the function

The 5-axis transformation TRAORI is a dynamic transformation, which


allows simultaneous traversing of up to 5 axes.
The use of 5-axis transformation is to compensate movements of the tool
nose during machining, which result from changes in orientation, by means
of appropriate compensating movements of the geometry axes. The orien-
tation movement is therefore decoupled from the movement on the work-
piece contour. This allows an axially symmetrical tool (e.g. milling cutter) to
be oriented in any desired relation to the workpiece in every point of the
machining space.
Prerequisite is a machine tools, which can control tool movements in 5
axes simultaneously. The 3 familiar linear axes X Y Z plus an additional 2
rotary axes. The two rotary axes envolved in this transformation have diffe-
rent kinematics solutions that are part of a Kinematic chain. The kinema-
tik Transformation requires there for infor-mation about the machine de-
signe (Kinematik), that are defined in a set of trafo machine data.
Tool orientation can be specified in two ways:
 Machine-related orientation
The machine-related orientation is dependent on the machine
kinematics.
 Workpiece-related orientation
The workpiece-related orientation is not dependent on the machine
kinematics and is programmed by means of:
– Euler angles
– RPY angles
– Vector components
The direction of the tool is described in the workpiece coordinate system
with the part orientation. It is possible to program a specific component of
the tool in its orientation to the workpiece. In most cases, this will be a lon-
gitudinal axis of the tool with the tool tip (Tool Center Point, TCP), which is
also referred to as TCP-programming.
The workpiece is always programmed in the rectangular workpiece coordi-
nate system; any programmed or set FRAMES rotate and shift this system
in relation to the basic coordinate system. The calculation also includes
tool length compensation. The kinematic transformation then converts this
information into motion commands of the real machine axes.
The path and path velocity are programmed in the same way as for 3-axis
tools. The tool orientation is programmed additionally in the traversing
blocks.
The real-time transformation performs the calculation of the resulting mo-
tion of all 5 axes. The generated machining programs are therefore not
machine specific. Kinematic-specific post-processors are not used for the
5-axis machining operation.

M103 Page 6 840Dsl SINUMERIK Operate


1.4 First for the Theory
What moves and how? Section 1
Notes
What moves and how?
The 5-axis transformation package covers the three possible basic machine con-
figurations which differ in terms of tool and workpiece orientation:
• Orientation of workpiece with 2 rotary axes in the table (machine type P)
• Orientation of tool with 2 rotary axes in the head (machine type T)
• Orientation of workpiece & tool with mixed kinematics (machine type M)
The most common ones are shown here diagrammatically:

1 2

3 4

5 6

Type P 2 Rotary axes in the table 1 Rotate/Swivel 2 nutated *


Type T 2 Rotary axes in the head 3 Fork 4 nutated *
Type M 1 Rotary axis in the head 5 Rotate/Fork 6 nutated *
1 Rotary axis in the table
*Term: If the rotary axis is not perpendicular to a linear axis, it is referred to as a
”nutated” axis.

840Dsl SINUMERIK Operate Page 7 M103


1.5 First for the Theory
Section 1 What moves and how?
Notes
Sequence of movement at different kinematics

Depending on the machine kinematics, completely different machine


movements may be required to machine the same surface and there for
different NC programs. In the following example a cylinder jacket surface is
to be machined. It is quite obvious to notice, that the machine kinematics in
example 2 are much more suitable for the production of this workpiece.

Sequence of movements for head/


head kinematics (Type T)
For one tool path around the circum-
ference, a semicircle in X/Y has to be
described in the program. At the same
time the movement of the tool must
rotate around the Z axis during ma-
chining so that the cutter Is always
perpendicular to the surface.

Sequence of movements for table/


table kinematic (Type P)
For one tool path around the circum-
ference of the cylinder jacket the Table
has to Swivel the A axis 90°. The C
axis turns from +90° to -90° and the
tool moves along the Y axis.

Note:

With the use of 5-axis transformation their is no need to worry about ma-
chine kinematics and tool length. All you need to think about is the relative
movement between the tool and the workpiece. The control system does
the rest.

M103 Page 8 840Dsl SINUMERIK Operate


1.6 First for the Theory
What moves and how? Section 1
Notes
Influence of tool length on machine axis movement

The machine movements required for 5-axis machining depend


on the tool length.

Tool length
The longer the tool in the example,
the larger the traversing move-
ments of the axis slides.
Each change of tool length would
require the CNC program to be
recalculated on the CAM system.
Their for it is a requirement to the
control, that the computed NC-
program is usable for any tool
length. This active tool length com-
pensation is a integrated function
of Sinumerik 840D sl.
There is no need to worry about
tool length. The control system
takes care of it automatically.

Note:
Depending on the tool length, it can happen that the traversing range of an
axis is overrun and the axis runs on to the limit switch, even though all
values in the CNC program are within the work area. A distinction is made
here between the “gross” and “net” work area

Influence of a change in tool orientation on the movement of


the linear axes

Change of tool orientation


Simple movements can be trans-
formed into a complex curve by
simultaneously changing the tool
orientation. To mill a straight line with
no change of tool orientation, the tool
holder describes a straight line. If the
orientation changes at the same time,
the tool tip describes a curve ().
 In order to mill a straight line, the tool
holder must compensate, in a way
 that the tool tip describes the desired
straight line as the orientation
changes().
The example with the yellow linear
movement (), works with active
5-axis transformation TRAORI .

840Dsl SINUMERIK Operate Page 9 M103


1.7 First for the Theory
Section 1 Machine independent CNC programs
Notes
Machine independent CNC programs

Programming 5-axis transformation TRAORI

Of course it is desirable to work with CNC programs, that can run on vari-
ous machine kinematics with different tools without making changes to the
program. To make this possible, the control has to compensate for all the
previously shown influences.
Normally, NC programs are created in relation to the workpiece, i.e. all the
tool positions relate to the workpiece coordinate system (WCS). In order
for an NC program to be executed on the machine, the positions must be
transformed into axis movements, i.e. converted into the machine coordi-
nate system (MCS). This is achieved with the TRAORI function.
TRAORI is usually already called in the CNC program obtained from the
CAM system. The CNC program then simply contains:

 The coordinates of the points to be approached in X, Y and Z


 The tool orientation to this point in form of a direction vector
A3=, B3=, C3=, or
 Tool orientation with RPY angle A2=, B2=, C2=
When transformation is enabled, the positional data (X, Y, Z) always relate
to the tip of the tool (TCP).
Changing the position of the rotary axes involved in the transformation
causes compensating movements of the remaining linear machine axes in
such a way that the position of the tool tip is unchanged.

What does the TRAORI function do ?


 Compensation movements in X, Y and Z are being calculated with a
change in tool orientation, where the tooltip remains fixed to a position.
Compensation moves of the linear axes are preformed to compensate
rotary axis movement. NC programs become more compact and han-
dling of programs becomes easier.
 The current tool length and workpiece frames are taken into considera-
tion when calculating the traversing movements.
 Tool length and workpiece zero offsets can be altered on the control at
any time and are taken into consideration during program run.
 Programmed feedrate relates to tool tip (no inverse time calculation for
rotary axes necessary).
 The real-time transformation performs the calculation of the resulting
motion of all 5 axes. The generated machining programs are therefore
not machine specific and there is no need for a Kinematic-specific
post-processors for the 5-axis machining operation.

All of the above, allows greater flexibility in programming and machining of


complex 5-Axis parts.

M103 Page 10 840Dsl SINUMERIK Operate


1.8 First for the Theory
Machine-independent CNC programs Section 1
Notes
Programming:

TRAORI(n) ; 5-axis transformation on


TRAFOOF ; All transformations off

Explanation of commands:

TRAORI Activates the first programmed orientation transformation


_________________________________________________________________

TRAORI (n) Activates the orientation transformation programmed with n


_________________________________________________________________

n Transformation number (n = 1 or 2), TRAORI(1)


corresponds to TRAORI.
_________________________________________________________________

TRAORI (n, 0., 1., 5.) Activates the transformation specified by “n” with the
direction vector of the base orientation. The direction
vector is defined by parameters 2 to 4; the vector in the
example has the value (0, 1, 5). The first parameter
specifies the transformation number. The number can
be omitted if the first transformation is to be activated.
To enable the parameters to be identified correctly
when specifying an orientation, a blank space has to be
inserted instead of the transformation number, e.g.
TRAORI(, 0., 1., 5.).

_______________________________________________________________________

TRAFOOF Switches all transformations off

Note:
Depending on the configuration (reset mask G code group), TRAORI can
reset the active work offset (G54…) or tool offset (D1). Their for it is rec-
ommended to program a work offset and D number after the TRAORI
command.

840Dsl SINUMERIK Operate Page 11 M103


1.9 First for the Theory
Section 1 Machine-independent CNC programs
Notes

Without TRAORI

The control system disregards the tool length. It rotates around the center
of rotation of the axis. The tool tip moves out of position and does not re-
main fixed. Compensation values for Toollength from the Tooltip to the swi-
vel point have to be caculated by the CAM System.
Tool Length offset compensation on the control is not possible.

Example: Tool Carrier Head (Typ T)

Swivel Point

Tool Tip

Workpiece

M103 Page 12 840Dsl SINUMERIK Operate


1.10 First for the Theory
Machine-independent CNC programs Section 1
Notes
With TRAORI

The control system only changes the orientation of the tool, the position of
the tool tip remains fixed. The necessary compensating movements in X, Y
and Z are calculated automatically.
In the CNC program only the coordinates in X,Y and Z of the points to be
approached and the direction vector A3, B3, C3, or RPY angle A2, B2, C2
that defines the tool orientation irrespective (independent) of the machine
kinematics must be programmed. That means the CNC program only con-
tains geometry and orientation data.

Calculated intermidate points

Tool Tip

Workpiece

Tool Length and Workpiece zero offsets can be altered on the control at
any time. The control compensates with active TRAORI automatically for
changes in Tool length and shift of Workpiece location.
This allows greater flexibility in machining of complicated 5-Axis parts.

840Dsl SINUMERIK Operate Page 13 M103


1.11 First for the Theory
Section 1 Milling with 3, 3+2 or 5 Axes?
Notes
Milling with 3, 3+2 or 5 axes ?

3-axis machining:
Freeform surfaces with uniform convex curves in particular are conventionally pro-
duced with 3 controlled axes. The orientation 1 of the cutter remains unchanged
along the entire tool path. The cutting conditions at the cutter tip are never perfect.
Example 1:
3 axes
Controlled path axes X,Y,Z

3+2-axis machining with change of tool orientation:


This type of machining uses TRAORI to orient the tool in relation to the machining
surface. The tool is oriented from a start position through to an end position and
the tooltip is traced during rotary axis positioning. The position of the rotary axes
define the LEAD and TILT angle of the tool. Machining is executed with the three
linear axes while the rotary axes remain static during the entire machining proc-
ess. TRAORI takes the machine kinematics into account during swiveling, i.e. at-
tention is paid to tool offsets and zero points.

Example 2:
On this machine the orientation of the tool or the position of the table can be set
with the additional rotary axes A and C in the table.
In the picture on the left the cutting conditions deteriorate as the cutter moves up
towards the top or to the side of the workpiece. In the picture on the left the cutter
is working with optimum cutting conditions. In order to obtain optimum cutting con-
ditions, the table is swivelled. To machine a freeform surface completely, the table
has to be swivelled several times in various directions.

3+2 axes
Controlled path axes X,Y,Z
Fixed rotary axes e.g. A, C (table)

M103 Page 14 840Dsl SINUMERIK Operate


1.12 First for the Theory
Milling with 3, 3+2 or 5 Axes? Section 1
Notes
3+2 axis machining in a inclined plane:
This type of machining uses FRAMES (e.g. ROT, TRANS), to shift and rotate the
coordinate system (WKS) 1 in such a way, to align the work coordinate system
with the machining surface and TRAORI to trace the tool tip in space and orient
the tool normal to the new working plane 2. Machining is then executed in this
plane with the three linear axes while the rotary axes remain static during the en-
tire machining process. TRAORI takes the machine kinematics into account during
swiveling, i.e. attention is paid to tool offsets and zero points.
Example 3:
This example involves rotation of rotary axis B. The tool is oriented normal to the
machining plane (XY plane G17). Drilling cycles can now be applied to drill holes
in the inclined plane.
3+2 axes
Controlled path axes X,Y,Z
Fixed rotary axes e.g. B (head)

5-axis simultaneous machining:


This type of machining with TRAORI is a dynamic process. The rotary and linear
axes can be moved simultaneously during machining. The tool can be continu-
ously aligned with the surface while milling is in progress. The tool length is taken
into account and the kinematic compensation movements are initiated by the
TRAORI function when the rotary axes are rotated.
Example 4:
For machining of deep cavities or frequent curvature, 5 controlled axes are re-
quired. The orientation of the tool can be optimized along the entire path, synchro-
nously to the linear movement of the tool. In this way optimum cutting conditions
are maintained throughout the path.

5 axes
Controlled path axes X,Y,Z
Controlled rotary axes e.g. A, C (head)

840Dsl SINUMERIK Operate Page 15 M103


2.1 Information for the programmer
Section 2 Tool orientation
Notes
Tool orientation
How to program linear axes and rotary axes ?

To accommodate machining opera-


tions involving tools set at an angle or
in order to mill geometries located
anywhere in space, the three linear
axes X, Y and Z are required along
with two of the rotary axes A, B or C.
It must be possible to control the axes
simultaneously.

The tool position is approached in


space using linear axes X, Y and Z.
This enables the tool tip to adopt any
position.
With 3-axis machining, you program
the three linear axes to achieve the
desired machining operations. The
contour is milled line by line by mov-
ing the three linear axes.
If the tool also has to be set at an an-
gle, you will need rotary axes as well.

In this case the orientation of the tool


is changed using up to two additional
+C rotary axes, e.g. B and C.
This is necessary, for example, if the
tool needs to be aligned normal to the
machining surface or if you want to
+B
mill a pocket with inclined walls within
the context of circumferential milling.
Using three linear axes and two rotary
axes, theoretically any point in space
can be approached with any tool ori-
entation. This is the basis of 5-axis
machining

Note:
There are several variations of how the tool orientation can be described
(see following pages). In general 5-axis programs are generated with a
CAM system and the postprocessor determines which orientation method
is to be used. Never the less there are various functions that allow conven-
ient programming on the machine.

M103 Page 16 840Dsl SINUMERIK Operate


2.2 Information for the programmer
Tool orientation Section 2
Notes
Directional vector (A3=.. B3=.. C3=..)

Explanation of the commands

G1 X… Y… Z… A3=… B3=… C3=… Programming of directional vectors


(recommended).

The components of the direc-


tional vector 1 are pro-
grammed with A3, B3, C3.
The vector points in direction
of the tool holder. The length
of the vector is meaningless.
Vector components that are
not programmed are set
equal to zero.

N10 TRAORI
N20 G54 D1
N30 G1 X0 Y0 Z0 A3=1
B3=1 C3=2 F10000
……

In this example the tool points to the origin of the coordinate system
(X0,Y0,Z0) and the tool vector represents the diagonal of a cube
(35.264° to the XY-plane).

Note:
The use of directional vectors is recommended as preferred programming
method, in order to be independent of the machine kinematics. The vector
accuracy should be set relatively high. Values of 5 decimal places for lin-
ear axes and 6 decimal places for directional vectors produce good re-
sults.

If C3=1 is programmed only, a alignment of the tool axis along the Z axis
takes place. This comes in handy if e.g. the tool needs to be retracted in Z
direction with active FRAME rotation.

840Dsl SINUMERIK Operate Page 17 M103


2.3 Information for the programmer
Section 2 Tool orientation
Notes
Sample CNC-programm with directional vector A3=.. B3=.. C3=..

5AXIS_POS_VECT.MPF ;Program name

N10 T1 D1 ;Tool call with cutting edge #1


N11 M6 ;Automatic tool change
N12 S10000 M3 F1000 ;Technology data, tool, speed, etc.
N13 G54 G0 X0 Y0 Z5 ;Zero offset and start point,
N14 TRAORI ;Call 5-axis transformation
N15 G54 D1 ;Zero offset, tool offset (see reset mask !)
N16 A3=0 B3=0 C3=1 ;Tool parallel to Z axis
N17 G1 Z-1 ;Infeed in Z
N18 X100 Y0 A3=1 C3=1 ;Linear movement with orientation change
to 45° in the X/Z plane
N19 G0 Z100 ;Retract
N20 A3=0 B3=0 C3=1 ;Align tool parallel to Z axis
N21 TRAFOOF ;5-axis transformation off
N22 M30 ;End of program

In this example a straight line is milled from X0 to X100.


The tool orientation changes from 90° to 45°.

With active 5-axis transformation TRAORI there is no need to worry about


the actual machine movement when programming a straight line. The end
point is approached exactly, and the tool tip describes a straight line.

M103 Page 18 840Dsl SINUMERIK Operate


2.4 Information for the programmer
Tool orientation Section 2
Notes

Direct rotary axes positions (A=.. B=.. C=..)

Explanation of the commands

G1 X… Y… Z… A=… B=… C=… Direct programming of the rotary axes


movements A, B, C. Rotary axes are
traversed synchronous to the tool

The same position with tool orien-


tation can also be programmed
with specification of direct rotary
axes positions.
The position in the example is pro-
grammed as follows.

N10 TRAORI
N20 G54 D1
N30 G1 X0 Y0 Z0 B=54.73561
C=45 F10000
……

In this example the tool points to the origin of the coordinate system
(X0,Y0,Z0) and the tool vector represents the diagonal of a cube (35.264°).

Note:

If programming rotary axes direct, the generated NC program becomes


dependent on the machine kinematics. Flexibility is lost, since the program
becomes only runable on the machine type that the program was originally
generated for.
As resolution the same number of decimals can be used for the rotary
axes positions as for the linear axes. A higher resolution of decimal places
is not required.

840Dsl SINUMERIK Operate Page 19 M103


2.5 Information for the programmer
Section 2 Tool orientation
Notes

Programming with Euler angles ORIEULER

Explanation of the commands

ORIEULER Orientation programming on the basis of


Euler angles G-code

G1 X Y Z A2= B2= C2= Programming on basis of Euler angles,


interpretation is defined by machine data

The values programmed during orientation programming with A2, B2, C2


are interpreted as Euler angles (in degrees).

Starting with initial orientation 1:


The orientation vector results from turning a vector in the Z direction firstly
with A2 around the Z axis 2, then with B2 around the new Y axis 3 and
lastly with C2 around the new Z axis (order Z, Y’, Z’’).

Example program:

N010 TRAORI
N020 G54 D1 G0 X0 Y0 Z0
N030 ORIWKS
N040 ORIVECT
N050 G1 A2=0 B2=0 F1000
N060 G1 A2=60 B2=45
N070 …..
First rotation
around Z axis
In this case the value of C2
with A2=60°
(rotation around the new Z
axis) is meaningless and
does not have to be pro-
grammed.

Second rotation around


new X axis with B2=45°

Note:
Orientation angles via Euler angle, for the orientation axes
Default settable with MD21102 $MC_ORI_DEF_WITH_G_CODE = 0

M103 Page 20 840Dsl SINUMERIK Operate


2.6 Information for the programmer
Tool orientation Section 2
Notes

Programming with RPY angles ORIRPY

Explanation of the commands

ORIRPY Orientation programming on the basis of RPY


angles

G1 X Y Z A2= B2= C2= Programming on the basis of RPY (Roll Pitch


Yaw) angles. Interpretation is defined by means
of machine data.

The values programmed with A2, B2, C2 for orientation programming are
interpreted as an RPY angle (in degrees).

Starting with initial orientation 1:


The orientation vector results from turning a vector in the Z direction firstly
with C2 around the Z axis, then with B2 around the new Y axis 2 and lastly
with A2 around the new X axis 3 (order Z, Y’, X’’).

Example program:

N010 TRAORI
N020 G54 D1 G0 X0 Y0 Z0
N030 ORIWKS
N040 ORIVECT
N050 C2=0 B2=0 A2=0
N060 C2=90 B2=-45 A2=30
N080 …..
First rotation
around Z axis with In contrast to Euler angle
C2=90°; programming, all three val-
Second rotation ues here have an effect on
around new Y axis
with B2=45°
the orientation vector.

Third and last rotation


around new X axis with
A2=30°;

Note:

Orientation angles via RPY angle, for the orientation axes


Default settable with MD 21102 $MC_ORI_DEF_WITH_G_CODE = 1

840Dsl SINUMERIK Operate Page 21 M103


2.7 Information for the programmer
Section 2 Tool orientation
Notes
Tool orientation LEAD and TILT in conjunction with ORIPATH

Explanation of the commands

LEAD Lead angle for programming tool orientation.


Angle relative to the surface normal vector in the plane spanned
by the path tangent and surface normal vector.
TILT Tilt angle for programming tool orientation.
Describes rotation of Lead angle around surface normal vector

The resulting tool orientation is determined by:


 the path tangent TB
 the surface normal vector FN at the start of the block A4, B4, C4 and
at the end of the block A5, B6, C5
 the lead angle LEAD 1
 the tilt angle TILT 2 at end of block.

LEAD describes the angle between the surface normal and the new
tool orientation, in the direction of the path tangent. If the tool is also
rotated about the surface normal from this position, this corresponds
to the TILT angle.
LEAD and TILT are also programmed if the tool is to adopt a fixed setting
angle in relation to the machining direction, e.g. so that machining is not
performed at the cutter center at cutting surface feed rate = 0.

 
FN

TB

Example program:
N100 TRAORI
N110 G54 D1
N120 ORIWKS
N130 ORIPATH
N140 CUT3DF
N150 G0 X100 Y80 Z5 A3=0 B3=0 C3=1
N160 G1 Z0 LEAD=35.264 TILT=45 F500
N170 G1 G41 X240.000 A4=0.000 B4=0.000 C4=1.000
…...

M103 Page 22 840Dsl SINUMERIK Operate


2.8 Information for the programmer
Tool orientation Section 2
Notes
Surface normal vector (A4= B4= C4=) (A5= B5= C5=)

This information is used for face milling of curved surfaces of any kind.
For this type of 3D milling, you require line-by-line definition of 3D paths
on the workpiece surface. The tool shape and dimensions are taken into
account in the calculations, which are normally performed in CAM.
The fully calculated NC blocks are then read into the NC.

Explanation of the commands


G1 X Y Z A4= B4= C4= Programming the surface normal vector at start of block.
This information is used by CUT3DF, for example, for
the purpose of 5-axis surface machining with TRAORI.
When used in conjunction with LEAD and TILT, this pro-
vides a further option for tool orientation programming.
In this context, the LEAD and TILT angles relate to nor-
mal vectors A4 B4 C4. With ORIPATH, the orientation
vectors are programmed relative to the normal vectors
with LEAD and TILT.

G1 X Y Z A5= B5= C5= Programming the surface normal vector at end of block.

The surface normal vector (FN) is perpendicular to the machining surface


(TB) and defines the path curvature. It is necessary for tool orientation with
ORIPATH (LEAD, TILT) as well as for face radius correction with CUT3DF.
If only the start vector is programmed in a block (A4, B4, C4) 1, this means
that the programmed surface normal vector will remain constant through-
out the entire block.
If only the end vector is programmed (A5, B5, C5) 2, then great circle
interpolation is performed between the end value of the previous block
and the programmed end value.
If both start and end vectors are programmed, interpolation according to
the great circle principle is also performed between the two directions.

Note:
Programming with LEAD and TILT in combination with ORIPATH and
specification of the surface normal vectors is best suitable for 3D-face-
milling of free form surfaces.

840Dsl SINUMERIK Operate Page 23 M103


2.9 Information for the programmer
Section 2 Orientation reference of axes ORIMKS/ORIWKS
Notes

Orientation reference of axes ORIMKS/ORIWKS


Explanation of commands

The reference of the rotary axis interpolation can be set using the G-code
commands ORIWKS/ORIMKS.

ORIWKS Tool orientation in the workpiece coordinate system


Is used for orientation programming in the workpiece coordinate system
with:
 Euler or RPY angle or
 orientation vector
Hereby the reference system for the orientation vector is the workpiece
coordinate system (WCS), which can be rotated through a frame relative
to the Machine coordinate system (MCS).
Here the relative Position and orientation of the tooltip in relation to the
workpiece are being programmed. The movement executed by the tool
does therefore not depend on the machine kinematics. The way how the
orientation change is interpolation (ORIVECT or ORIAXES ?) is set by a
machine data. Which movements the machine then actually executes
depend on the machine kinematics.
In the case of a 5-axis program, if it is not immediately obvious on which
type of machine kinematics it is to run, always choose ORIWKS.
The default setting can be changed via the following machine data:
MD20150 $MC_GCODE_RESET_VALUES [24] = 2 ⇒ ORIWKS
The interpolation type can be changed via the following machine data:
MD21104 $MC_ORI_IPO_WITH_G_CODE = 1 ⇒ ORIVECT

ORIMKS Tool orientation in the machine coordinate system


The reference system for the orientation vector is the machine coordinate
system (MCS). Rotation of frames are not being considered.
Actual axes movements are here being programmed, e.g. to avoid collision
with fixtures or for simulation reasons on the CAM system.
The movement executed by the tool depends on the machine kinematics.
In this case the orientation interpolation must be set in the machine data to
ORIAXES only. The directly programmed rotary axes movements deter-
mine the actual machine movements.
The basic setting can be changed via the following machine data:
MD20150 $MC_GCODE_RESET_VALUES [24] = 1 ⇒ ORIMKS
The interpolation type can be changed via the following machine data:
MD21104 $MC_ORI_IPO_WITH_G_CODE = 0 ⇒ ORIAXES

M103 Page 24 840Dsl SINUMERIK Operate


2.10 Information for the programmer
Orientation interpolation for 5-Axis applications Section 2
Notes
Orientation interpolation for 5-Axis applications
General explanation:
A 5-axis machine can position the tool in any orientation to the workpiece,
subject of course to the machine kinematics. In order to move from one
orientation to another, intermediate positions must be interpolated. The
path from the start to the end orientation is described in this way.
Just as in the 2D range between
2 points, there are any number
of paths between 2 orientations.
In 2D interpolation we are
limited to

 Straight line (G1) 1


 Circle (G2, G3) 2

1
2

 Polynomial or B-spline 3
3
12

Various types of interpolation are


4 used in 3D applications.
In this example, which involves
milling a pocket wall with an incli-
nation of 45°, the tool moves from
position 1 to position 2.
The A and C axes rotate during
the movement so that the tool can
be oriented along the edges of the
pocket. This kind of interpolation
is known as

 Vector interpolation or great


circle interpolation 4

The most common types of orientation interpolations are explored on the


next pages.

840Dsl SINUMERIK Operate Page 25 M103


2.11 Information for the programmer
Section 2 Orientation interpolation for 5-Axis applications
Notes
Rotary axes-/linear interpolation ORIAXES

In linear interpolation from a start 1


to an end orientation 2 the neces-
sary rotary axis movements are bro-
ken down into equidistant sections.
This means that the orientation vec-
tor does not describe a defined sur-
face. This interpolation is therefore
not always ideal for circumferential
milling.
CAM systems attempt to compen-
sate for this effect by using suffi-
ciently small interpolation steps. For
optimum results, another type of in-
terpolation (such as vector interpola-
tion) should be used for these kinds
of applications.

Explanation of the command

Rotary axis-/ linear interpolation

ORIAXES Linear interpolation of the machine axes or interpola-


tion of the rotary axes using polynomials (if POLY is
active)

Note:
When programming on a CAM system, the effect of the G-code command
ORIAXES must be set accordingly in your CAM system and supported by
your postprocessor. By all means, with ORIAXES the CAM system must
calculate the sufficiently small intermediate interpolation steps, between
start and end orientation in order to interpolate a exact defined surface
(tool path).
Following machine data must be set for ORIAXES:
MD21104 $MC_ORI_IPO_WITH_G_CODE = 0

M103 Page 26 840Dsl SINUMERIK Operate


2.12 Information for the programmer
Orientation interpolation for 5-Axis applications Section 2
Notes

Vector-/Great circle interpolation (ORIVECT/ORIPLANE)

In this interpolation process the


path from the start 1 to an end ori-
entation 2 is interpolated in such a
way that the orientation vector runs
in the plane that is spanned by the
starting vector and the final vector.
Each rotary axis approaches equi-
distant angles. This type of orienta-
tion interpolation can be used for
example to precisely machine
inclined, plane walls in one block.

Explanation of the commands


Vector interpolation/Great circle interpolation

ORIVECT Interpolation of the orientation vector in one plane


(great circle interpolation)

ORIPLANE Interpolation in one plane (great circle interpolation),


synonym of ORIVECT

1
Field of applications:
ORIVECT should be used for
circumferential milling of structural
components e.g. in the aerospace
and aviation industry.

1.1

Note:
When programming on a CAM system, the effect of the G-code command
ORIVECT or ORIPLANE must be set accordingly in your CAM system and
supported by your postprocessor.
By all means, with ORIVECT there is no need to calculate intermediate
orientations, between start orientation 1 and end orientation 2.
Following machine data, must be set for ORIVECT or ORIPLANE:
MD21104 $MC_ORI_IPO_WITH_G_CODE = 1

840Dsl SINUMERIK Operate Page 27 M103


2.13 Information for the programmer
Section 2 Orientation interpolation for 5-Axis applications
Notes

Example great circle interpolation with ORIVECT:

In great circle interpolation the orientation should change from start A = sx,
B = sy, C = sz to end A = ex, B = ey, C = ez. No value is zero, i.e. the
orientation is inclined (s = start orientation, e = end orientation).
Reorientation in great circle interpolation takes place in a plane 3.
The line on the cone is referred to as a great circle 4.
In the illustration the C axis rotates through 85°. The A axis swivels from
60° to 30°. Speed control for the reorientation is continuous.

1 = start orientation, 2 = end orientation

Example programming code RPY angles:

ORIWKS
TRAORI
ORIVECT
G1 A2=60 C2=0 ; Start orientation 1
G1 A2=30 C2=85 ; End orientation 2

M103 Page 28 840Dsl SINUMERIK Operate


2.14 Information for the programmer
Orientation interpolation for 5-Axis applications Section 2
Notes
Comparison of orientation interpolation ORIVECT/ORIAXES:

Great Circle Interpolation


G-Codes ORIPLANE or ORIVECT
Advantage:
 Independent of machine kine-
matics
 Prevents Contour gauging
through changes in orientation
within a plane.
 Analogue to linear interpolation

Linear Axes interpolation


G-Codes ORIAXES
Disadvantage:
 Dependent on machine kine-
matics
 No „geometrically“ defined Sur-
face, contour gauging through
linear Interpolation of the
rotary axes can occur (see
graphic below).

Contour gauging

Note:
With ORIVECT the orientation axes are always traversed on the shortest
possible path.

840Dsl SINUMERIK Operate Page 29 M103


2.15 Information for the programmer
Section 2 Orientation interpolation for 5-Axis applications
Notes
Interpolation relative to path tangent ORIPATH

 
FN

TB

Explanation of the commands


Interpolation relative to path tangent

ORIPATH Tool orientation relative to the path.


A surface is spanned with the normal vector FN and path
tangent TB, which defines the meaning of LEAD 1 and
TILT 2 at the end point. This means that the path refer-
ence applies only for the definition of the end orientation
vector. Great circle interpolation is per formed from the
start to the end orientation.
LEAD and TILT do not simply mean lead and tilt angle.
They are defined as follows:

LEAD LEAD 1 describes the rotation in the plane that is spanned


by the normal vector FN and path tangent TB.

TILT TILT 2 then defines the rotation around the normal vector
FN. In other words they both have the meaning of theta
and phi in a spherical coordinate system, with the normal
vector as the Z axis and the tangent as the X axis
(also refer to chapter 2.7 on page 22).

ORIPATH
should be used for face milling in
mold making applications.

M103 Page 30 840Dsl SINUMERIK Operate


2.16 Information for the programmer
Orientation interpolation for 5-Axis applications Section 2
Notes

Conical surface interpolation (ORICONxx)

In conical surface interpolation from a start 1 to an end orientation 2 the


tool moves on a programmable peripheral surface of a cone anywhere in
the area. This type of interpolation allows machining of a precise cone
surface with a minimum of two blocks only.

Explanation of the commands

Conical surface interpolation


ORICONCW Interpolation on a peripheral surface of a cone in clockwise direc-
tion.
Programming:
Circle with endpoint and radius: G2 X.. Y.. Z.. CR=
End orientation: A3= B3= C3= or A2= B2= C2=
Rotary axis vector of the taper: A6= B6= C6=
Opening angle of the taper (PSI) value range 0 -180 deg: NUT=

ORICONCCW Interpolation on a peripheral surface of a cone in counter clock-


wise direction.
Programming:
Circle with endpoint and radius: G3 X.. Y.. Z.. CR=
End orientation: A3= B3= C3= or A2= B2= C2=
Rotary axis vector of the taper: A6= B6= C6=
Opening angle of the taper (PSI) value range 0 -180 deg: NUT=

ORICONIO Interpolation on the peripheral surface of a cone with


intermediate orientation
Programming:
Circle Endpoint: CIP X.. Y.. Z..
Circle intermediate point: I1=.. J2=.. K1=..
Intermediate point orientation vector: A7=.. B7=.. C7=..
End orientation vector: A3= B3= C3= or A2= B2= C2=

ORICONTO Interpolation on the peripheral surface of a cone with tangential


Transition
Programming:
Circle endpoint: CT X.. Y.. Z..
End orientation vector: A3= B3= C3= or A2= B2= C2=

840Dsl SINUMERIK Operate Page 31 M103


2.17 Information for the programmer
Section 2 Orientation interpolation for 5-Axis applications
Notes

Required definitions for programming

Generally, the following data are required:


 The start orientation is defined by the end orientation of the previous
block.
 The end orientation is defined either by specifying the vector (with A3,
B3, C3), the Euler angles or RPY angles (with A2, B2, C2) or by pro-
gramming the positions of the rotary axis (with A, B, C).
 The rotary axis of the taper is programmed as a (normalized) vector
with A6, B6, C6.
The programming of an end orientation is not absolutely necessary. If
no end orientation is specified, a full outside taper with 360° is interpo
lated.
 The opening angle of the cone is programmed degrees with the iden-
tifier NUT= (nutation angle). An end orientation must be specified. A
complete outside taper with 360 degrees cannot be interpolated in this
way. The sign of the opening angle defines whether the traversing angle
is to be greater or less than 180 degrees.
The identifiers have the following meanings:
NUT = +... Traverse angle smaller than or equal to 180 degrees
NUT = - ... Traverse angle greater than or equal to 180 degrees
A positive sign can be omitted when programming.
The value range of this angle is limited between 0° and 180°
The values 0° and 180° must not be programmed. If an angle is
programmed outside the valid range, an alarm is generated.
In the special case where NUT = 90°, the orientation vector in the plane
is interpolated perpendicular to the direction vector (large circle interpo
lation).
In order to define the cone, the direction vector or its opening angle
must be programmed. Both may not be specified at the same time.

 When programming ORICON, it is necessary to specify an intermedi-


ate orientation (A7, B7, C7) which is specified as a (normalized) vec-
tor. Programming of the end orientation is absolutely necessary in this
case.
The change in orientation and the direction of rotation is defined
uniquely by the three vectors Start orientation, End orientation and
Intermediate orientation.
All three vectors must be different. If the programmed intermediate
orientation is parallel to the start or end orientation, a linear great
circular interpolation of the orientation is executed in the plane that is
defined by the start and end vector.

M103 Page 32 840Dsl SINUMERIK Operate


2.18 Information for the programmer
Orientation interpolation for 5-Axis applications Section 2
Notes
 In addition you can program the two angles of the cone as follows:
PHI angle of rotation for orientation about the direction axis
PSI Opening angle of the cone

Example:

...
N10 G1 X0 Y0 F5000
N20 TRAORI ; orientation transformation active.
N30 ORIVECT ; interpolate tool orientation as a vector
N50 A3=0 B3=0 C3=1
N60 A3=0 B3=1 C3=1 ; Orientation in the Y/Z plane is rotated 45 degrees
; at the end of the block, the orientation (0, 1/√2),
; 1/√2) is reached.
N70 ORICONCW ; Orientation vector is interpolated in the clockwise
; direction on the outside of the cone with the direction;
N80 A6=0 B6=0 C6=1 A3=1 B3=0 C3=1 ; (0, 0, 1) to the orientation
; (1 / √2, 0, 1 / √2)
; interpolated clockwise,
; the rotation angle is 270 degrees.
; WZ orientation traverses a full
N90 A6=0 B6=0 C6=1 ; Rotation on the same outside surface of the cone
….

N190 TRAFOOF
N200 M30

840Dsl SINUMERIK Operate Page 33 M103


2.19 Information for the programmer
Section 2 Orientation interpolation for 5-Axis applications
Notes

Curve interpolation ORICURVE (Double spline interpolation)

In curve interpolation the move-


ment of the orientation vector is
described by the paths at the tool
tip (spline curve 1) and the path of
a second point on the tool (spline
curve 2).
To machine an inclined surface by
circumferential milling, for exam-
ple, the upper and lower contour
would be described. This type of
interpolation results in a faster
path speed and improved surface
quality. This is also referred to as
double spline interpolation.

The advantage is, that a great variety of surfaces to be machined, can be


precisely defined. The spline interpolation is the best possible interpolation,
but also the most complicated to program. A special syntax in the NC-
program is required, which has to be supported by the CAM system.

Explanation of the command

Spline-/double spline-Interpolation

ORICURVE Orientation interpolation with definition of the move-


ment of the tool tip and of a second point on the tool.
The path of the second point is defined with XH=...
YH=... ZH=..., in conjunction with BSPLINE as the
control polygon

Or with POLY as the polynomial:


PO[XH] = (xe, x2, x3, x4, x5)
PO[YH] = (ye, y2, y3, y4, y5)
PO[ZH] = (ze, z2, z3, z4, z5)

If additional BSPLINE or POLY information is not


available, simple linear interpolation is performed ac-
cordingly from the start to the end orientation.

M103 Page 34 840Dsl SINUMERIK Operate


2.20 Information for the programmer
Interpolation behavior in the vicinity of a Pole Section 2
Notes
Interpolation behaviour at pole zero position

Example 1: Behaviour ORIVECT at pole zero position


The situation is quite different if interpolation goes through the point 5.
This is the case if for example sx = 0 and ex = 0, i.e. the start and end ori-
entation are parallel to the Y/Z plane.
In this example the programmed start position 1 is A=-45° and the end
position 2 is A=45°. The A axis should not be allowed to swivel pass 0°.
What happens next? The C-axis starts at 0°, the A-axis at -45°, position 1.
During the orientation interpolation C-axis remains at 0°, while the A axis
approaches the position 5. Here the position of the C axis is undefined,
but just one interpolation phase later C-axis must rotate abruptly to 180°,
A-axis moves away from point 5 back to start position 1 to A-45° and C
remains at 180°.
To maintain the orientation speed, i.e. in position 5, the C-axis would have
to accelerate infinitely, which of course is not possible. In this case we
speak of a pole (singular position). For conventional 5-axis machines the
pole zero position is defined in such a way, that when the second rotary
axis rotates (here C-axis), the tool orientation remains unchanged.
Example AC-head-kinematics: Here A=0 corresponds to the pole orienta-
tion 5. To avoid such an extreme speed control, in the vicinity of the pole
the control switches to linear interpolation.

840Dsl SINUMERIK Operate Page 35 M103


2.23 Information for the programmer
Section 2 Interpolation behavior in the vicinity of a Pole
Notes
Example 2:
Let’s take another look at great circle interpolation in the vicinity of the pole
in practice:
Certain machine kinematics, especially the commonly used fork head, fea-
tures poles or singularities.
Orientation movements in the singular setting area of the 5-axis machines
require vast movements of the machine axes. (For example, with a rotary
swivel head with C as the rotary axis and A as the swivel axis, all positions
with A = 0 are singular.)
To avoid overloading the machine axes, the velocity control vastly reduces
the tool path velocity near the singular positions.

For example when milling a pocket


with a 45° inclined wall 3 the A and
C-axis rotate harmoniously when
traversing from one corner to the
other - everything is OK.

In this example the inclined wall is


now 80° 4.

What happens ?
The steeper the tool angle, the
faster the C axis has to rotate in the
center of the path in order to sustain
the orientation on the second half of
the path.

Note:
The pole situation is a physics problem rather than a control technology
problem.
With machine data MD21108 $MC_POLE_ORI_MODE the transforma-
tion can be parameterized in such a way that orientation movements close
to the pole, reduce the rotary axes velocity to avoid sudden acceleration at
singular positions.
With machine data $MC_TRAFO5_POLE_LIMIT Singular positions are
handled.

M103 Page 36 840Dsl SINUMERIK Operate


2.24 Information for the programmer
Interpolation behavior in the vicinity of a Pole Section 2
Notes
Singular positions and handling

Explanation:
Singularities (poles) are constellations in which the tool orientation be-
comes parallel to the first rotary axis (see example on page 35). If the ori-
entation is changed when the tool is in or close to a singularity (as is the
case with large circle interpolation ORIWKS), the rotary axis positions must
change by large amounts to achieve small changes in orientation. In ex-
treme cases, a jump in the rotary axis position would be needed.

Extreme velocity increase


If the path runs in close vicinity to a pole (singularity), one or several axes
may traverse at a very high velocity.
Alarm 10910 "Irregular velocity run in a path axis" is then triggered. The
programmed velocity is then reduced to a value, which does not exceed
the maximum axis velocity.

MD24540 $MC_TRAFO5_POLE_LIMIT
Unwanted behavior of fast compensating movements can be controlled by
making an appropriate selection of the following machine data:
MD24540 $MC_TRAFO5_POLE_LIMIT_1 (closing angle tolerance for in-
terpolation of first rotary axis by pole for first 5-axis transformation) or
MD24640 $MC_TRAFO5_POLE_LIMIT_2 (closing angle tolerance of first
rotary axis for interpolation by pole for second 5-axis transformation)
With interpolation through the pole point, only the first rotary axis moves;
the second axis remains in its start position. If a movement is programmed
which does not pass exactly through the pole point, but is to pass within
the tolerance defined by the following machine data in the vicinity of the
pole, a deviation is made from the specified path because the interpolation
runs exactly through the pole point.

MD21108 $MC_POLE_ORI_MODE
The following machine data can be used to set the response for large cir-
cle interpolation in pole position as follows:
MD21108 $MC_POLE_ORI_MODE (behavior during large circle interpola-
tion at pole position)
Does not define the treatment of changes in orientation during large circle
interpolation unless the starting orientation is equal to the pole orientation
or approximates to it and the end orientation of the block is outside the tol-
erance circle defined in the following machine data.
The following machine data is coded decimally.
MD21108 $MC_POLE_ORI_MODE
The ones decimal position defines the behavior if start orientation coin-
cides with pole position and the tens decimal position the behavior if start
orientation is within the tolerances defined by the closing angle tolerance.

Note:
All setting values are described in the "Channel-specific Machine Data" on
DoconCD.

840Dsl SINUMERIK Operate Page 37 M103


2.27 Information for the programmer
Section 2 Interpolation behavior in the vicinity of a Pole
Notes
Response of large circle interpolation at pole zero positions
with various settings of $MC_POLE_ORI_MODE

Interpolation with ORIVECT at pole zero position


Without orientation look ahead

Behavior:
Interpolate Rotary axes C 180 degree with max path velocity when rea-
ching pole zero position.

Pole zero position

Following Machine data must be set for this behavior:


MD 21108 $MC_POLE_ORI_MODE = 0
MD 24540 $MC_TRAFO5_POLE_LIMIT = (e.g. 2 deg)

Behavior:
Insert intermidiate points with great circle interpolation at pole zero positi-
on. Interpolation with reduced rotary axes velocity to avoid sudden
acceleration at singular positions.

Pole zero position

Following Machine MD must be set for this behavior:


MD 21108 $MC_POLE_ORI_MODE = 10
MD 24540 $MC_TRAFO5_POLE_LIMIT = (e.g. 2 deg)

M103 Page 38 840Dsl SINUMERIK Operate


2.28 Information for the programmer
Interpolation behavior in the vicinity of a Pole Section 2
Notes

Behavior:
If possible rotate rotary axis C syncron to linear axis until end position is
reached.

Following Machine MD must be set for this behavior:


MD 21108 $MC_POLE_ORI_MODE = 20
MD 24540 $MC_TRAFO5_POLE_LIMIT = (e.g. 2 deg)

With orientation look ahead


Here the orientation of the contour path is being precalculated. During tra-
versing of the first half of the contour path, the first rotary axis C rotates
simulataniously with the linear axis by 90 degrees. On the second half of
the contour path the C axis position remains unchanged, in order to be al-
ready in the correct orientation for the next contour path.

840Dsl SINUMERIK Operate Page 39 M103


3.1 Programming on the machine
Section 3 Application example 1: 3+2 axes positioning
Notes

Example 1: 3+2 axis positioning

Work Steps

1. Face milling inclined plane (Plane 1)


2. Circular Pocket milling Ø40mm (Plane 1)
3. Spot face positions at -7 deg (Plane 1)
4. Spot face positions at +7 deg (Plane 1)
5. Drill positions Ø8.5mm at +7 deg (Plane 1)
6. Drill positions Ø8.5mm at -7 deg (Plane 1)
7. Tap positions M10x1.5 at -7 deg (Plane 1)
8. Tap positions M10x1.5 at +7 deg (Plane 1)
9. Face milling inclined plane (Plane 2)
10. Face milling inclined plane (Plane 3)
11. Circular pocket milling (Plane3)
12. Circular pocket milling (Plane 2)

Tool List

T10 (Indexable roughing endmill D=30)


T11 (Carbide endmill 2 Flutes D=16)
T12 (Carbide endmill 2 Flutes D=10)
T13 (Carbide Twist Drill 8.5 mm)
T14 (Tap M10x1.5)

M103 Page 40 840Dsl SINUMERIK Operate


3.2 Programming on the machine
Application Example 1: 3+2 Axes Positioning Section 3
Notes
C-C

Pos. 2 Pos. 4

70

5 65°
60

35.2
24

20
.4
51.766

1
25
Pos. 1 Pos. 3

Plane 2 Plane 3
50

H-H
Plane 1
Y+

Y+
Z+

X+

840Dsl SINUMERIK Operate Page 41 M103


3.3 Programming on the machine
Section 3 Application example 1: 3+2 axes positioning
Notes
;*** 3+2 axis positioning with TRAORI and FRAMES ***
N100 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N102 G54 G17
N103 WORKPIECE(,,,“BOX“, 112,0,50,-80,0,0,100,100)

N104 T10 D1 ; Indexable roughing endmill D=30


N105 M6
N106 S8000 M3
N107 ORIWKS ;(Reference for transformation is WCS)
N108 ORIVECT ;(Vector interpolation)
N109 CUT2DF ;(2D cutter comp. in active frame)
N110 G0 G54 X0 Y0 Z100

N111 MSG(“Set FRAME for Plane 1“)


N112 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N113 AROT X-15 ;(Additive rotation of WCS about X plane1)
N114 TRAORI ;(Attention TCP is being tracked !)
N115 G0 X-20 Y10 M8 ;(Prepositioning tool in XY)
N116 G0 Z38.5 ;(Prepositioning tool in Z)
N117 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)

N118 MSG(“Face milling inclined plane 1“)


N119 CYCLE71(35.8,25.8,0,0,0,0,115,103.5,0,5,20,10,0,2000,11,5)
N120 G0 Z100
N121 TRAFOOF ;(Cancel 5-axis transformation)
N122 TRANS ;(Cancel all active programmable frames)

N123 T11 D1 ;(SC-Endmill D=16 FL=2)


N124 M6
N125 S8000 M3
N126 G54 G0 X0 Y0 Z100

N127 MSG(“Recalculate FRAME for Plane 1 after ATC“)


N128 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N129 AROT X-15 ;(Additive rotation of WCS about X plane1)
N130 TRAORI ;(Attention TCP is being tracked !)
N131 G0 X50 Y51.76 M8
N132 Z30

N133 MSG(“Pocket milling D40 plane 1“)


N134 POCKET4(30,0,2,-15,20,50,51.76,5,0,0,1000,1000,0,21,10,,,8,2.5)
N135 G0 Z100
N136 TRAFOOF ;(Cancel 5-axis transformation)
N137 TRANS ;(Cancel all active programmable frames)
N138 G0 A0 C0 ;(Zero return rotary axes)

*ZPS = Zero point shift


*WCS = Work coordinate system
*TCP = Tool centre point
*ATC = Automatic tool change

M103 Page 42 840Dsl SINUMERIK Operate


3.4 Programming on the machine
Application example 1: 3+2 axes positioning Section 3
Notes
N140 T12 D1 ;(SC-Endmill D=10 FL=2)
N141 M6
N142 S4000 M3 F500
N143 G54 G0 X0 Y0 Z100 D1

N144 MSG(“Set FRAME for Plane of Position 1 and 2“)


N145 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N146 AROT X-15 ;(Additive rotation of WCS about X-axis plane1)
N147 ATRANS X50 Y51.76 ;(Additive shift of WCS to pocket centre)
N148 ATRANS X-35 Y-24 ;(Additive shift of WCS to pos.1)
N149 AROT Y-7 ;(Additive rotation of WCS about Y-axis pos.1)
N150 TRAORI ;(Attention TCP is being tracked !)
N151 G0 X0 Y0 M8 ;(Prepositioning tool above pos.1)
N152 G0 Z20
N153 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)

N154 MSG(“Spot face positions 1, 2 “)


N155 MCALL CYCLE82(20,0,5,-3,,1)
N156 G0 X0 Y0
N157 G0 X0 Y60
N158 MCALL ;(Cancel modal cycle call)
N159 G0 Z100
N160 TRAFOOF ;(Cancel 5-axis transformation)
N161 TRANS ;(Cancel all active programmable frames)
N162 G0 A0 C0 ;(Zero return rotary axes)

N163 MSG(“Set FRAME for Plane of Position 3 and 4“)


N164 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N165 AROT X-15 ;(Additive rotation of WCS about X-axis plane1)
N166 ATRANS X50 Y51.76 ;(Additive shift of WCS to pocket centre)
N167 ATRANS X35 Y-24 ;(Additive shift of WCS to pos.3)
N168 AROT Y7 ;(Additive rotation of WCS about Y-axis)
N169 TRAORI ;(Attention TCP is being tracked !)
N170 G0 X0 Y0 ;(Prepositioning tool over pos. 3)
N171 G0 Z20
N172 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)

N173 MSG(“Spot face positions 3, 4 “)


N174 MCALL CYCLE82(20,0,5,-3,,1)
N175 G0 X0 Y0
N176 G0 X0 Y60
N177 MCALL ;(Cancel modal cycle call)
N178 G0 Z100
N179 TRAFOOF ;(Cancel 5-axis transformation)
N180 TRANS ;(Cancel all active programmable frames)

Note:
With the commands ATRANS and AROT, It is possible to shift and rotate
a FRAME incrementally (additive) multiple times in row, in order to define
a new machining plane.
G0 A3=1 B3=0 C3=0 Tool vector orientation normal to X-Axis
G0 A3=0 B3=1 C3=0 Tool vector orientation normal to Y-Axis
G0 A3=0 B3=0 C3=1 Tool vector orientation normal to Z-Axis

840Dsl SINUMERIK Operate Page 43 M103


3.5 Programming on the machine
Section 3 Application example 1: 3+2 axes positioning
Notes
N181 T13 D1 ;(Twist drill D=8.5")
N182 M6
N183 S4000 M3 F500

N184 MSG(“Recalculate FRAME for Plane pos. 1 and 2 after ATC)


N185 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N186 AROT X-15 ;(Additive rotation of WCS about X-axis plane1)
N187 ATRANS X50 Y51.76 ;(Additive shift of WCS to pocket centre)
N188 ATRANS X35 Y-24 ;(Additive shift of WCS to pos. 3)
N189 AROT Y7 ;(Additive rotation of WCS about Y-axis)
N190 TRAORI ;(Attention TCP is being tracked !)
N191 G0 G54 X0 Y0 M8 ;(Prepositioning tool above Pos. 3)
N192 G0 Z20

N193 MSG(“Deep hole drilling positions 3, 4 “)


N194 MCALL CYCLE83(20,0,5,-20,,-5,,,0,,1,1,3,5,,,1)
N195 G0 X0 Y0
N196 G0 X0 Y60
N197 MCALL ;(Cancel modal cycle call)
N198 G0 Z100
N199 TRAFOOF ;(Cancel 5-axis transformation)
N200 TRANS ;(Cancel all active programmable frames)
N201 G0 A0 C0 ; (*** Zero return rotary axes ***)

N202 MSG(“Set FRAME for Plane of Position 1 and 2“)


N203 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N204 AROT X-15 ;(Additive rotation of WCS about X-axis plane1)
N205 ATRANS X50 Y51.76 ;(Additive shift of WKS to pocket centre)
N206 ATRANS X-35 Y-24 ;(Additive shift WKS in XY Pos. 1***)
N207 AROT Y-7 ;(Additive rotation of WCS about Y-axis pos.1)
N208 TRAORI ;(Attention TCP is being tracked !)
N209 G0 G54 X0 Y0 ;(Prepositioning tool above Pos. 1)
N210 G0 Z20
N211 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)

N212 MSG(“Deep hole drilling positions 1, 2 “)


N213 MCALL CYCLE83(20,0,5,-20,,-5,,,0,,1,1,3,5,,,1)
N214 G0 X0 Y0
N215 G0 X0 Y60
N216 MCALL ;(Cancel modal cycle call)
N217 G0 Z100
N218 TRAFOOF ;(Cancel 5-axis transformation)
N219 TRANS ;(Cancel all active programmable frames)

Note:
If their is a coordinate rotation (ROT or AROT) active right after a tool
change, followed by a XY move, it is possible that a software limit alarm
occurs before the first movement of the machining axes.
Therefore it is recommended to position tool closer to the Workpiece, be-
fore swivelling to avoid this problem.
With active TRAORI (TCPM) the current position of the tool tip is dynami-
cally tracked during rotary axes movement.

M103 Page 44 840Dsl SINUMERIK Operate


3.6 Programming on the machine
Application example 1: 3+2 axes positioning Section 3
Notes
N220 T14 D1 ;(Tap M10x1.5)
N221 M6
N222 S800 M3
N223 G54 X0 Y0 Z100
N224 MSG(“Recalculate FRAME for Plane of Position 1 and 2“)
N225 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N226 AROT X-15 ;(Additive rotation of WCS about X-axis plane1)
N227 ATRANS X50 Y51.76 ;(Additive shift of WCS to pocket centre)
N228 ATRANS X-35 Y-24 ;(Additive shift of WCS to pos. 3)
N229 AROT Y-7 ;(Additive rotation of WCS about Y-axis pos.1)
N230 TRAORI ;(Attention TCP is being tracked !)
N231 G0 X0 Y0 M8 ;(Prepositioning tool above Pos. 1)
N232 G0 Z20
N233 MSG(“Tapping M10 positions 1, 2 “)
N234 MCALL CYCLE84(20,0,5,-15,,1,3,,1.5,0,800,800,3,1,0,0,,)
N235 G0 X0 Y0
N236 G0 X0 Y60
N237 MCALL ;(Cancel modal cycle call)
N238 G0 Z100
N239 TRAFOOF ;(Cancel 5-axis transformation)
N240 TRANS ;(Cancel all active programmable frames)
N241 G0 A0 C0 ;(Zero return rotary axes)
N242 MSG(“Set FRAME for Plane of Position 3 and 4“)
N243 TRANS Z50 ;(Absolute Shift of WCS to work piece top)
N244 AROT X-15 ;(Additive rotation of WCS about X-axis plane1)
N245 ATRANS X50 Y51.76 ;(Additive shift of WCS to pocket centre)
N246 ATRANS X35 Y-24 ;(Additive shift of WCS to pos. 3)
N247 AROT Y7 ;(Additive rotation of WCS about Y-axis pos.1)
N248 TRAORI ;(Attention TCP is being tracked !)
N249 G0 G54 X0 Y0 ;(Prepositioning tool above Pos. 1)
N250 G0 Z20
N251 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)
N252 MSG(“Tapping M10 positions 3, 4 “)
N253 MCALL CYCLE84(20,0,5,-15,,1,3,,1.5,0,800,800,3,1,0,0,,)
N254 G0 X0 Y0
N255 G0 X0 Y60
N256 MCALL ;(Cancel modal cycle call)
N257 G0 Z100
N258 TRAFOOF ;(Cancel 5-axis transformation)
N259 TRANS ;(Cancel all active programmable frames)
N260 G0 A0 C0 ;(Zero return rotary axes)
N261 T10 D1 ;(Indexable roughing endmill D=30)
N262 M6
N263 S8000 M3
N264 G54 G0 X0 Y0 Z100
N265 MSG(“Set FRAME for Plane 2“)
N266 TRANS X0 Z25 ;(Absolute Shift of WCS to left edge)
N267 AROT Z-45 ;(Additive rotation of WCS about Z-axis)
N268 AROT X54.735 ;(Additive rotation of WCS about X-axis plane 2)
N269 TRAORI ;(Attention TCP is being tracked !)
N270 G0 X0 Y0 M8 ;(Prepositioning tool above corner)
N271 G0 Z50
N272 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)

840Dsl SINUMERIK Operate Page 45 M103


3.7 Programming on the machine
Section 3 Application example 1: 3+2 axes positioning
Notes
N273 MSG(“Face milling corner in plane 2“)
N274 CYCLE71(50,20,0,0,-20,0,65,35,0,5,20,5,0,2000,11,10)
N275 G0 Z100
N276 TRAFOOF ;(Cancel 5-axis transformation)
N277 TRANS ;(Cancel all active programmable frames)
N278 G0 A0 C0 ;(Zero return rotary axes)
N279 MSG(“Set FRAME for Plane 3“)
N280 TRANS X100 Z25 ;(Absolute Shift of WCS to right edge)
N281 AROT Z45 ;(Additive rotation of WCS about Z-axis)
N282 AROT X54.735 ;(Additive rotation of WCS about X-axis)
N283 TRAORI ;(Attention TCP is being tracked !)
N284 G0 X0 Y0 ;(Prepositioning tool above corner)
N285 G0 Z50
N286 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)
N287 MSG(“Face milling corner in plane 3“)
N288 CYCLE71(50,20,0,0,-30,0,65,35,0,5,20,5,0,2000,11,10)
N289 G0 Z100
N290 TRAFOOF ;(Cancel 5-axis transformation)
N291 TRANS ;(Cancel all active programmable frames)
N292 T12 D1 ;(Carbide endmill 2 flutes D=10)
N293 M6
N294 S8000 M3
N295 G54 G0 X100 Y0 Z100
N296 MSG(“Recalculate FRAME for Plane 3 after ATC“)
N297 TRANS X100 Z25 ;(Absolute Shift of WCS to right edge)
N298 AROT Z45 ;(Additive rotation of WCS about Z-axis)
N299 AROT X54.735 ;(Additive rotation of WCS about X-axis)
N300 TRAORI ;(Attention TCP is being tracked !)
N301 G0 G54 X0 Y21.41 M8 ;(Prepositioning tool above corner)
N302 G0 Z50
N303 MSG(“Pocket milling D=11 in plane 2 “)
N304 POCKET4(50,0,2,-5,9,0,21.41,2.5,0,0,1000,1000,0,21,5,,,4,2.5)
N305 G0 Z100
N306 TRAFOOF ;(Cancel 5-axis transformation)
N307 TRANS ;(Cancel all active programmable frames)
N308 G0 A0 C0 ;(Zero return rotary axes)
N309 MSG(“Set FRAME for Plane 2“)
N310 TRANS X0 Z25 ;(Absolute Shift of WCS to left edge)
N311 AROT Z-45 ;(Additive rotation of WCS about Z-axis)
N312 AROT X54.735 ;(Additive rotation of WCS about X-axis)
N313 TRAORI ;(Attention TCP is being tracked !)
N314 G0 X0 Y21.41 ;(Prepositioning tool above corner)
N315 G0 Z50
N316 G0 A3=0 B3=0 C3=1 ;(Set tool normal to workplane)
N317 MSG(“Pocket milling D=11 in plane 2 “)
N318 POCKET4(50,0,2,-5,9,0,21.41,2.5,0,0,1000,1000,0,21,5,,,4,2.5)
N319 G0 Z100
N320 TRAFOOF ;(Cancel 5-axis transformation)
N321 TRANS ;(Cancel all active programmable frames)
N322 G0 A0 C0 ;(Zero return rotary axes)
N323 G0 SUPA Z0 D0 ;(Retract tool to Max Z position in MCS)
N324 G0 SUPA X0 Y0 D1 ;(Retract Tool to Max XY position in MCS)
N325 M30

M103 Page 46 840Dsl SINUMERIK Operate


3.8 Programming on the machine
Application example 1: 3+2 axes positioning Section 3
Notes
Simulation in operating area PROGRAM

3D view

Top view

840Dsl SINUMERIK Operate Page 47 M103


3.9 Programming on the machine
Section 3 Application example 2: Vector interpolation ORIVECT
Notes

Example 2: Vector interpolation ORIVECT

Lower profile Upper profile


ISD=0 ISD=10.154

Task description:
Circumferential milling of outside contour 10 deg:
 Vector programming A3,B3,C3 (lower profile)
 Direct rotary axes programing A,B,C (lower profile)
 RPY angle programing A2,B2,C2 (lower profile)
 RPY angle programing A2,B2,C2 with ISD (top profile)

Tools:
Solid Carbide Endmill 2FL D=10

Workpiece blank material:


Aluminium 100mm x 100mm x 50mm

M103 Page 48 840Dsl SINUMERIK Operate


3.10 Programming on the machine
Application example 2: Vector interpolation ORIVECT Section 3
Notes

Workpiece drawing example 2:

840Dsl SINUMERIK Operate Page 49 M103


3.11 Programming on the machine
Section 3 Application example 2: Vector interpolation ORIVECT
Notes
Lower profile 10 degrees
Vector programming A3= B3= C3=
EXAMPLE_2_VECTOR_PROG.MPF

;***VECTOR PROGRAMMING WITH ORIVECT***


N10 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N20 CYCLE800()
N40 G54
N50 WORKPIECE(,,"","BOX",112,0,-50,-80,0,0,100,100)
N60 T="CUTTER_D10"
N70 M6
N80 S6000 M3
N90 CYCLE832(0.01,3,1)
N100 ORIWKS
N110 TRAORI
N120 ORIVECT
N130 CUT3DC
N140 G54 G0 X-20 Y-20 D1
N150 G0 Z10
N160 G1 Z-10 F1000 M8
N170 G41 X0 A3=1.7632698 B3=0 C3=10
N180 G1 Y100
N190 G1 A3=0 B3=-1.7632698 C3=10
N200 G1 X100
N210 G1 A3=-1.7632698 B3=0 C3=10
N220 G1 Y0
N230 G1 A3=0 B3=1.7632698 C3=10
N240 G1 X0
N250 G1 G40 X-20 Y-20 A3=0 B3=0 C3=1
N260 G0 Z100
N270 TRAFOOF
N280 M30

Simulation

M103 Page 50 840Dsl SINUMERIK Operate


3.12 Programming on the machine
Application example 2: Vector interpolation ORIVECT Section 3
Notes
Lower profile 10 degrees
Direct rotary axes programming A, B, C,
EXAMPLE_2_DIRECT_PROG.MPF

;*** DIRECT ROTARY AXIS WITH ORIVECT***


N10 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N20 CYCLE800()
N40 G54
N50 WORKPIECE(,,,"BOX",64,0,-50,-80,0,0,100,100)
N60 T="CUTTER_D10"
N70 M6
N80 S6000 M3
N90 CYCLE832(0.01,3,1)
N100 ORIWKS
N110 TRAORI
N120 ORIVECT
N130 CUT3DC
N140 G54 G0 X-20 Y-20 A0 C0 D1
N150 Z10
N160 G1 Z-10 F1000 M8
N170 G41 X0 A10 C90
N180 G1 Y100
N190 G1 C0 A10
N200 G1 X100
N210 G1 C270 A10
N220 G1 Y0
N230 G1 A10 C180
N240 G1 X-10
N250 G40 X-20 Y-20 A0 C0
N260 G0 Z100
N270 TRAFOOF
N280 M30

Simulation

840Dsl SINUMERIK Operate Page 51 M103


3.13 Programming on the machine
Section 3 Application example 2: Vector interpolation ORIVECT
Notes

Lower profile 10 degrees


Programming with RPY angles A2= B2= C2=

EXAMPLE_2_RPY_PROG.MPF

;***ORIVECT WITH RPY ANGLES***


N10 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N20 CYCLE800()
N30 G54
N40 WORKPIECE(,,"","BOX",112,0,-50,-80,0,0,100,100)
N50 T="CUTTER_D10"
N60 M6
N70 S6000 M3
N80 CYCLE832(0.01,3,1)
N90 TRAORI
N100 ORIWKS
N110 ORIVECT
N120 CUT3DC
N130 G54 G0 X-20 Y-20 Z10 A0 C0 D1
N140 G1 Z-10 F1000 M8
N150 G41 X0 A2=0 B2=10 C2=0
N160 G1 Y100
N170 G1 A2=10 B2=0 C2=0
N180 G1 X100
N190 G1 A2=0 B2=-10 C2=0
N200 G1 Y0
N210 G1 A2=-10 B2=0 C2=0
N220 G1 X0
N230 G1 G40 X-20 Y-20 A2=0 B2=0 C2=0
N240 G0 Z100
N250 TRAFOOF
N260 M30

Simulation

M103 Page 52 840Dsl SINUMERIK Operate


3.14 Programming on the machine
Application example 2: Vector interpolation ORIVECT Section 3
Notes

ISD (Insertion depth)


Alternatively, the contour can be programmed in relation to the workpiece
surface and in this case the insertion depth ISD=10.154 (length of wall).
The adjustment can be calculated using the Pythagoras theorem.
4
10.15
ISD =

10

1.763

840Dsl SINUMERIK Operate Page 53 M103


3.15 Programming on the machine
Section 3 Application example 2: Vector interpolation ORIVECT
Notes

Upper profile 10 deg


Vector programming A3= B3= C3= and insertion depth ISD=

EXAMPLE_2_VECTOR_ISD.MPF

;***VECTOR PROGRAMMING WITH ORIVECT AND ISD***


N10 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N20 CYCLE800()
N30 G54
N40 WORKPIECE(,,"","BOX",112,0,-50,-80,0,0,100,100)
N50 T="CUTTER_D10" D1
N60 M6
N70 S6000 M3
N80 CYCLE832(0.01,3,1)
N90 TRAORI
N100 ORIWKS
N110 ORIVECT
N120 CUT3DC
N130 ISD=10.154
N140 G54 G0 X-20 Y-20 Z10
N150 G1 Z0 F1000 M8
N160 G41 X1.76 A3=1.7632698 B3=0 C3=10
N170 G1 Y98.2367302
N180 G1 A3=0 B3=-1.7632698 C3=10
N190 G1 X98.2367302
N200 G1 A3=-1.7632698 B3=0 C3=10
N210 G1 Y1.7632698
N220 G1 A3=0 B3=1.7632698 C3=10
N230 G1 X-10
N240 G1 G40 X-20 Y-20 A3=0 B3=0 C3=1
N250 G0 Z100
N260 TRAFOOF
N270 M30

Simulation

M103 Page 54 840Dsl SINUMERIK Operate


3.16 Programming on the machine
Application example 2: Vector interpolation ORIVECT Section 3
Notes

Upper profile 10 deg


Vector programming A3= B3= C3= and insertion depth ISD=

EXAMPLE_2_VECTOR_ISD_2.MPF

;***VECTOR PROGRAMMING WITH ORIVECT AND ISD***


;***MULTIPLE CUTS WITH SUBSEQUENT FINISHING***
N100 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N102 G54
N103 WORKPIECE(,,"","BOX",112,0,-50,-80,0,0,100,100)
N104 T="CUTTER_D10" D1
N105 M6
N106 S6000 M3
N107 CYCLE832(0.01,3,1)
N108 TRAORI
N109 ORIWKS
N110 ORIVECT
N111 CUT3DC
N112 ISD=2.5385
N113 OFFN=0.2
N114 G54 G0 X-20 Y-20 Z10
N115 _START:
N116 G1 Z0 F1000 M8
N117 G41 X1.7632698 A3=1.7632698 B3=0 C3=10
N118 G1 Y98.2367302
N119 G1 A3=0 B3=-1.7632698 C3=10
N120 G1 X98.2367302
N121 G1 A3=-1.7632698 B3=0 C3=10
N122 G1 Y1.7632698
N123 G1 A3=0 B3=1.7632698 C3=10
N124 G1 X-10
N125 G1 G40 X-20 Y-20 A3=0 B3=0 C3=1
N126 _END:
N127 ISD=5.077
N128 REPEAT _START _END
N129 ISD=7.6155
N130 REPEAT _START _END
N131 ISD=10.154
N132 REPEAT _START _END
N133 OFFN=0
N134 REPEAT _START _END
N135 G0 Z100
N136 TRAFOOF
N137 M30

840Dsl SINUMERIK Operate Page 55 M103


3.15 Programming on the machine
Section 3 Application example 2: Vector interpolation ORIVECT
Notes
Simulation in operating area PROGRAM

3D view

Further views, From front

M103 Page 56 840Dsl SINUMERIK Operate


3.15 Programming on the machine
Application example 2: Vector interpolation ORIVECT Section 3
Notes
Simulation in AUTO mode
(Simultaneous record)

3D view

Top view

840Dsl SINUMERIK Operate Page 57 M103


3.16 Programming on the machine
Section 3 Application example 3: Conical interpolation ORICON...
Notes

Example 3: Conical interpolation with ORICON...

Task description:
Circumferential milling of outer contour 10° and corner radius R10.
 Vector programming A3,B3,C3 (lower profile)
 RPY angle programming A2,B2,C2 (lower profile)

Tools:
Solid Carbide Endmill 2FL D=10mm

Workpiece blank material:


Aluminium 100mm x 100mm x 50mm

M103 Page 58 840Dsl SINUMERIK Operate


3.17 Programming on the machine
Application example 3: Conical interpolation ORICON... Section 3
Notes

Workpiece drawing example 3:

840Dsl SINUMERIK Operate Page 59 M103


3.18 Programming on the machine
Section 3 Application example 3: Conical interpolation ORICON...
Notes

Lower profile 10 degrees


Vector programming A3= B3= C3=

EXAMPLE_3_VECTOR_PROG.MPF

;***VECTOR PROGRAMMING WITH ORIVECT AND ORICON***


N100 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N102 G54
N103 WORKPIECE(,,"","BOX",112,0,-50,-80,0,0,100,100)
N104 T="CUTTER_D10"
N105 M6
N106 S6000 M3
N107 CYCLE832(0.01,3,1)
N108 TRAORI
N109 ORIWKS
N110 ORIVECT
N111 CUT3DC
N112 G54 G0 X-20 Y-20 Z10 D1
N113 G1 Z-10 F1000 M8
N114 G41 X0 A3=1.7632698 B3=0 C3=10
N115 G1 Y90
N116 ORICONCW
N117 G2 X10 Y100 CR=10 A3=0 B3=-1.7632698 C3=10 NUT=20
N118 ORIVECT
N119 G1 X90
N120 ORICONCW
N121 G2 X100 Y90 CR=10 A3=-1.7632698 B3=0 C3=10 NUT=20
N122 ORIVECT
N123 G1 Y10
N124 ORICONCW
N125 G2 X90 Y0 CR=10 A3=0 B3=1.7632698 C3=10 NUT=20
N126 ORIVECT
N127 G1 X10
N128 ORICONCW
N129 G2 X0 Y10 CR=10 A3=1.7632698 B3=0 C3=10 NUT=20
N130 ORIVECT
N131 G1 G40 X-20 Y10 A3=0 B3=0 C3=1
N132 G0 Z100
N133 TRAFOOF
N134 M30

M103 Page 60 840Dsl SINUMERIK Operate


3.19 Programming on the machine
Application example 3: Conical interpolation ORICON... Section 3
Notes
Simulation in operating area PROGRAM

3D view

840Dsl SINUMERIK Operate Page 61 M103


3.20 Programming on the machine
Section 3 Application example 3: Conical interpolation ORICON...
Notes

Lower profile 10 degree


RPY angle programming A2= B2= C2=

EXAMPLE_3_RPY_PROG.MPF

;***RPY ANGLE PROGRAMMING WITH ORIVECT, ORICON***


N100 CYCLE800(2,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N102 G54
N103 WORKPIECE(,,"","BOX",112,0,-50,-80,0,0,100,100)
N104 T="CUTTER_D10"
N105 M6
N106 S6000 M3
N107 CYCLE832(0.01,3,1)
N108 TRAORI
N109 ORIWKS
N110 ORIVECT
N111 CUT3DC
N112 G54 G0 X-20 Y-10 Z10 D1
N113 G1 Z-10 F1000 M8
N114 G41 X0 A2=0 B2=10 C2=0
N115 G1 Y90
N116 ORICONCW
N117 G2 X10 Y100 A2=10 B2=0 C2=0 CR=10 NUT=20
N118 ORIVECT
N119 G1 X90
N120 ORICONCW
N121 G2 X100 Y90 A2=0 B2=-10 C2=0 CR=10 NUT=20
N122 ORIVECT
N123 G1 Y10
N124 ORICONCW
N125 G2 X90 Y0 A2=-10 B2=0 C2=0 CR=10 NUT=20
N126 ORIVECT
N127 G1 X10
N128 ORICONCW
N129 G2 X0 Y10 A2=0 B2=10 C2=0 CR=10 NUT=20
N130 ORIVECT
N131 G1 G40 X-20 Y10 A2=0 B2=0 C2=0
N132 G0 Z100
N133 TRAFOOF
N134 G0 A0 C0
N135 M30

M103 Page 62 840Dsl SINUMERIK Operate


3.21 Programming on the machine
Application example 3: Conical interpolation ORICON... Section 3
Notes
Simulation in operating area PROGRAM

3D view

Top view

840Dsl SINUMERIK Operate Page 63 M103


3.22 Programming on the machine
Section 3 Application example 4: Pocket with inclined walls
Notes

Example 4: Pocket with inclined walls

Task description:
Pocket roughing + Circumferential pocket wall milling
 RPY angle programming A2, B2, C2 (lower profile)
 RPY angles programming A2, B2, C2 (upper profile with ISD) and auto-
matic angle calculation
 Vector programming A3, B3, C3, (upper profile with ISD)
Multiple cuts with subsequent finishing

Tools:
Solid Carbide Endmill D=14 FL=3

Workpiece blank material:


Aluminium 100mm x 100mm x 50mm

M103 Page 64 840Dsl SINUMERIK Operate


3.23 Programming on the machine
Application example 4: Pocket with inclined walls Section 3
Notes

Workpiece drawing example 4:

Calculation of ISD

25 5 25.9807
H β
OS

Calculation of angle

OS α
tan  
AS AS

OS
5
tan   atan(0.2) = 11.3099324
AS
25

840Dsl SINUMERIK Operate Page 65 M103


3.24 Programming on the machine
Section 3 Application example 4: Pocket with inclined walls
Notes
Pocket roughing with circumferential pocket wall milling
Programming RPY angles A2, B2, C2, lower profile

EXAMPLE_4_1.MPF

;*** 2D POCKET ROUGHING ***


N100 CYCLE800(0,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N103 G54
N104 WORKPIECE(,,,"BOX",112,0,-50,0,0,0,100,100)
N105 T="CUTTER_D14"
N106 M6
N107 S8000 M3
N108 CYCLE832(0.01,0,1) ;(Deselect HSC settings)
N110 TRANS X50 Y50 Z50 ;(ZP Shift to centre top pocket)
N111 G1 X0 Y0 F10000
N112 Z20
N113 CUT2DF ;(Cutter comp. 2D with FRAME)
N114 POCKET3(20,0,2,-25,70,50,15,0,0,90,2,0,0,2000,0.1,0,21
,60,8,3,15,6.5,1,0,1,2,11100,11,110)

;*** 3D SINGLE SWARF CUT WALL FINISH ***


N115 CYCLE832(0.01,1,1) ;(HSC Settings for finishing)
N116 TRAORI
N117 ORIWKS
N118 ORIVECT
N119 CUT3DC ;(Cutter comp. 3D Circumferential)
N120 G0 X0 Y0 D1
N121 G0 Z10
N122 G1 Z-24 F500
N123 G1 G41 X0 Y-35 Z-25 A2=0 B2=-11.3099324 C2=0 F500
N124 G1 X10
N125 ORICONCCW
N126 G3 X25 Y-20 A2=11.3099324 B2=0 C2=0 CR=15 NUT=11.3099324*2
N127 ORIVECT
N128 G1 Y20
N129 ORICONCCW
N130 G3 Y35 X10 A2=0 B2=11.3099324 C2=0 CR=15 NUT=11.3099324*2
N131 ORIVECT
N132 G1 X-10
N133 ORICONCCW
N134 G3 X-25 Y20 A2=-11.3099324 B2=0 C2=0 CR=15 NUT=11.3099324*2
N135 ORIVECT
N136 G1 Y-20
N137 ORICONCCW
N138 G3 X-10 Y-35 A2=0 B2=11.3099324 C2=0 CR=15 NUT=11.3099324*2
N139 ORIVECT
N140 G1 X0
N141 G40 X0 Y0 Z-24 A2=0 B2=0 C2=0
N142 G0 Z100
N143 TRAFOOF
N144 G0 A0 C0
N145 M30

M103 Page 66 840Dsl SINUMERIK Operate


3.25 Programming on the machine
Application example 4: Pocket with inclined walls Section 3
Notes
Pocket roughing with circumferential pocket wall milling
Programming RPY angles A2, B2, C2 upper profile with ISD, and
automatic angle calculation

EXAMPLE_4_2.MPF

DEF REAL _VECT1, _VECT2


_VECT1=5
_VECT2=25

R10=ATAN2(_VECT1,_VECT2)

;*** 2D POCKET ROUGHING ***


N100 CYCLE800(0,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N103 G54
N104 WORKPIECE(,,,"BOX",112,0,-50,0,0,0,100,100)
N105 T="CUTTER_D14"
N106 M6
N107 S8000 M3
N108 CYCLE832(0.01,0,1) ;(Deselect HSC settings)
N110 TRANS X50 Y50 Z50 ;(ZP Shift to centre top pocket)
N111 G1 X0 Y0 F10000
N112 Z20
N113 CUT2DF ;(Cutter comp. 2D with FRAME)
N114 POCKET3(20,0,2,-25,70,50,15,0,0,90,2,0,0,2000,0.1,0,21
,60,8,3,15,6.5,1,0,1,2,11100,11,110)

;*** 3D SINGLE SWARF CUT WALL FINISH ***


N115 CYCLE832(0.01,1,1) ;(HSC Settings for finishing)
N116 TRAORI
N117 ORIWKS
N118 ORIVECT
N119 CUT3DC ;(Cutter comp. 3D Circumferential)
N120 ISD=25.9807
N121 G0 X0 Y0 D1
N122 G1 Z1 F500
N123 G1 G41 X0 Y-40 Z0 A2=0 B2=-R10 C2=0 F500
N124 G1 X10
N125 ORICONCCW
N126 G3 X30 Y-20 A2=R10 B2=0 C2=0 CR=20 NUT=R10*2
N127 ORIVECT
N128 G1 Y20
N129 ORICONCCW
N130 G3 Y40 X10 A2=0 B2=R10 C2=0 CR=20 NUT=R10*2
N131 ORIVECT
N132 G1 X-10
N133 ORICONCCW
N134 G3 X-30 Y20 A2=-R10 B2=0 C2=0 CR=20 NUT=R10*2
N135 ORIVECT
N136 G1 Y-20
N137 ORICONCCW
N138 G3 X-10 Y-40 A2=0 B2=R10 C2=0 CR=20 NUT=R10*2
N139 ORIVECT
N140 G1 X0
N141 G40 X0 Y0 Z=IC(1) A2=0 B2=0 C2=0
N142 G0 Z100
N143 TRAFOOF
N144 G0 A0 C0
N145 M30

840Dsl SINUMERIK Operate Page 67 M103


3.26 Programming on the machine
Section 3 Application example 4: Pocket with inclined walls
Notes
Pocket roughing with circumferential pocket wall milling
Vector programming A3, B3, C3, upper profile with ISD,
Multiple cuts with subsequent finishing
EXAMPLE_4_3.MPF

;*** 2D POCKET ROUGHING ***


N100 CYCLE800(0,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N103 G54
N104 WORKPIECE(,,,"BOX",112,0,-50,0,0,0,100,100)
N105 T="CUTTER_D14"
N106 M6
N107 S8000 M3
N108 CYCLE832(0.01,0,1) ;(Deselect HSC settings)
N110 TRANS X50 Y50 Z50 ;(ZP Shift to centre top pocket)
N111 G1 X0 Y0 F10000
N112 Z20
N113 CUT2DF ;(Cutter comp. 2D with FRAME)
N114 POCKET3(20,0,2,-25,70,50,15,0,0,90,2,0,0,2000,0.1,0,21
,60,8,3,15,6.5,1,0,1,2,11100,11,110)

;*** 3D MULTIPLE SWARF CUTS WITH SUBSEQUENT WALL FINISH ***


N115 CYCLE832(0.01,1,1) ;(HSC Settings for finishing)
N116 TRAORI
N117 ORIWKS
N118 ORIVECT
N119 CUT3DC ;(Cutter comp. 3D Circumferential)
N120 ISD=(25.9807/4)
N121 OFFN=0.2 ;(Programmable contour offset)
N122 _START:
N123 G54 G1 X0 Y0 A3=0 B3=0 C3=1 D1
N124 G0 Z10
N125 G1 Z2 F500
N126 G41 X0 Y-40 Z0 A3=0 B3=-5 C3=25
N130 G1 X10 F800
N131 ORICONCCW
N132 G3 X30 Y-20 CR=20 A3=5 B3=0 C3=25 NUT=11.3099324*2
N133 ORIVECT
N134 G1 Y20
N135 ORICONCCW
N136 G3 X10 Y40 CR=20 A3=0 B3=5 C3=25 NUT=11.3099324*2
N137 ORIVECT
N138 G1 X-10
N139 ORICONCCW
N140 G3 X-30 Y20 CR=20 A3=-5 B3=0 C3=25 NUT=11.3099324*2
N141 ORIVECT
N142 G1 Y-20
N143 ORICONCCW
N144 G3 X-10 Y-40 CR=20 A3=0 B3=-5 C3=25 NUT=11.3099324*2
N145 ORIVECT
N146 G1 X0
N150 G40 G1 Y0 Z=IC(1) A3=0 B3=0 C3=1
N151 _END:
N152 ISD=(25.9807/4)*2
N153 REPEAT _START _END
N154 ISD=(25.9807/4)*3
N155 REPEAT _START _END
N156 OFFN=0
N157 ISD=25.9807
N158 REPEAT _START _END

M103 Page 68 840Dsl SINUMERIK Operate


3.27 Programming on the machine
Application example 4: Pocket with inclined walls Section 3
Notes
N159 G0 Z100
N160 TRAFOOF
N162 G0 A0 C0
N163 M30

Simulation in AUTO mode


(Simultaneous record)

3D view

Top view

840Dsl SINUMERIK Operate Page 69 M103


3.28 Programming on the machine
Section 3 Application example 4: ORIVECT, ORICON..
Notes

Example 5: Conical interpolation with ORICON...

Task description:
 Islands (Pyramid, Cone, Kidney)
Roughing with contour pocket cycle
 5-Axis circumferential milling of kidney 15 deg taper
 5-Axis circumferential milling of pyramid 7 deg taper
 5-Axis circumferential milling of cone 8 deg taper

Tools:
Roughing SC-Endmill 3FL D=12
Finishing SC-Endmill 2FL D=10

Workpiece blank material:


Aluminum 100mm x 100mm x 50mm

M103 Page 70 840Dsl SINUMERIK Operate


3.29 Programming on the machine
Application example 5: ORIVECT, ORICON.. Section 3
Notes

Workpiece drawing example 5:

15°

10
R1

840Dsl SINUMERIK Operate Page 71 M103


3.30 Programming on the machine
Section 3 Application example 5: ORIVECT, ORICON..
Notes
Mainprogram:
EXAMPLE_5_ORICON.MPF

N100 CYCLE800(0,"TABLE",200000,57,0,0,0,0,0,0,0,0,0,1,,1)
N101 CYCLE800()
N102 G54
N103 WORKPIECE(,,,"BOX",112,0,-50,-80,0,0,100,100)

;****2.5D ROUGHING KIDNEY PYRAMID CONE*****


N102 T="CUTTER_D12"
N103 M6
N104 S8000 M3
N105 G54 G0 X0 Y0 D1
N106 CYCLE832(0,0,1) ; Deselect High-Speed-Settings (DYNNORM)
;
N107 CYCLE62("BORDER",1,,)
N108 CYCLE62("PYRAMID",1,,)
N109 CYCLE62("CONE",1,,)
N110 CYCLE62("KIDNEY",1,,)
;
N111 CYCLE63
("ROUGH_AREA",1011,10,0,1,10,2000,0.1,40,2.5,0.1,0.1,0,0,0,5,1.25,15,
1,2,,,,0,101,111)

;**** 5-AXIS FINISHING KIDNEY PYRAMID CONE*****


N112 T="CUTTER_D10"
N113 M6
N114 S8000 M3
N115 CYCLE832(0.005,1,1) ; Select High-Speed-Settings (DYNFINISH)

N116 CALL "KIDNEY_15DEG" ;#SM;*RO*


N117 CALL "PYRAMID_7DEG" ;#SM;*RO*
N118 CALL "CONE_8DEG" ;#SM;*RO*
;
N119 CYCLE832(0,0,1) ; Deselect High-Speed-Settings (DYNNORM)
;
N120 G0 Z100
N121 M30

; ****SUBPROG. INTERACTIVE CONTOUR CALCULATOR****


N122 E_LAB_A_BORDER: ;#SM Z:2
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X-10 Y-10 ;*GP*
G1 Y110 ;*GP*
X110 ;*GP*
Y-10 ;*GP*
X-10 ;*GP*
;CON,0,0.0000,0,0,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD*
;S,EX:-10,EY:-10;*GP*;*RO*;*HD*
;LU,EY:110;*GP*;*RO*;*HD*
;LR,EX:110;*GP*;*RO*;*HD*
;LD,EY:-10;*GP*;*RO*;*HD*
;LL,EX:-10;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_BORDER:

M103 Page 72 840Dsl SINUMERIK Operate


3.31 Programming on the machine
Application Example 5: ORIVECT, ORICON.. Section 3
Notes
N123 E_LAB_A_PYRAMID: ;#SM Z:2
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X10 Y12 ;*GP*
G1 Y40 RND=2 ;*GP*
X40 RND=2 ;*GP*
Y10 RND=2 ;*GP*
X10 RND=2 ;*GP*
Y12 ;*GP*
;CON,0,0.0000,4,4,MST:0,0,AX:X,Y,I,J,CYL:1,0,10,TRANS:1;*GP*;*RO*;*
HD*
;S,EX:10,EY:10;*GP*;*RO*;*HD*
;LU,DEY:30;*GP*;*RO*;*HD*
;R,RROUND:2;*GP*;*RO*;*HD*
;LR,DEX:30;*GP*;*RO*;*HD*
;R,RROUND:2;*GP*;*RO*;*HD*
;LD,DEY:-30;*GP*;*RO*;*HD*
;R,RROUND:2;*GP*;*RO*;*HD*
;LL,DEX:-30;*GP*;*RO*;*HD*
;R,RROUND:2;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_PYRAMID:

N124 E_LAB_A_CONE: ;#SM Z:2


;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X62.5 Y20 ;*GP*
G2 I=AC(75) J=AC(20) ;*GP*
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,CYL:1,0,10,TRANS:1;*GP*;*RO*;*
HD*
;S,EX:62.5,EY:20;*GP*;*RO*;*HD*
;ACW,EX:62.5,EY:20,CX:75,RAD:12.5;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_CONE:

N125 E_LAB_A_KIDNEY: ;#SM Z:2


;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X10 Y80 ;*GP*
G2 X25.994 Y94.967 I=AC(25) J=AC(80) ;*GP*
X88.852 Y72.11 I=AC(18.039) J=AC(-24.769) ;*GP*
X70.781 Y48.167 I=AC(80) J=AC(60) ;*GP*
G3 X24.465 Y65.01 I=AC(21.613) J=AC(-14.94) ;*GP*
G2 X10 Y80 I=AC(25) J=AC(80) ;*GP*
;CON,0,0.0000,5,5,MST:0,0,AX:X,Y,I,J,CYL:1,0,10,TRANS:1;*GP*;*RO*;*
HD*
;S,EX:10,EY:80;*GP*;*RO*;*HD*
;ACW,DIA:237/0,CX:25,RAD:15;*GP*;*RO*;*HD*
;ACW,AT:0,RAD:120;*GP*;*RO*;*HD*
;ACW,DIA:37/0,AT:0,CX:80,CY:60,RAD:15;*GP*;*RO*;*HD*
;ACCW,AT:0,RAD:80;*GP*;*RO*;*HD*
;ACW,EX:10,EY:80,AT:0,CX:25,RAD:15;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_KIDNEY:

840Dsl SINUMERIK Operate Page 73 M103


3.32 Programming on the machine
Section 3 Application example 5: ORIVECT, ORICON..
Notes

Subprograms:

PYRAMID.SPF

N103 ORIWKS
N104 TRAORI
N105 G0 X-20 Y-10 Z10 A2=0 B2=0 C2=0
N105 G1 Z-10 F1000 M8
N107 CUT3DC
N107 ORIVECT
N108 G41 X10 A2=0 B2=7 C2=0
N109 G1 Y38
N110 ORICONCW
N111 G2 X12 Y40 A2=7 B2=0 C2=0 CR=2 NUT=14
N112 ORIVECT
N113 G1 X38
N114 ORICONCW
N115 G2 X40 Y38 A2=0 B2=-7 C2=0 CR=2 NUT=14
N116 ORIVECT
N117 G1 Y12
N118 ORICONCW
N119 G2 X38 Y10 A2=-7 B2=0 C2=0 CR=2 NUT=14
N120 ORIVECT
N121 G1 X12
N122 ORICONCW
N123 G2 X10 Y12 A2=0 B2=7 C2=0 CR=2 NUT=14
N124 ORIVECT
N125 G1 G40 X-20 Y12 A2=0 B2=0 C2=0
N126 G0 Z100
N127 TRAFOOF
N128 G0 A0 C0
N129 M17

CONE.SPF
N103 ORIWKS
N104 TRAORI ;Activate 5-axis transformation
N105 G0 X110 Y30 Z10 A2=0 B2=0 C2=0
N106 G1 Z-10 F1000 M8
N107 CUT3DC ;3D cutter comp for circumferential milling
N108 ORIVECT
N109 G41 X82.5 A2=-8 B2=0 C2=0
N110 G1 Y20
N111 ORICONCW
N112 G2 X62.5 Y20 A2=8 B2=0 C2=0 CR=12.5 NUT=16
N114 G2 X87.5 Y20 A2=-8 B2=0 C2=0 CR=12.5 NUT=16
N116 ORIVECT
N117 G1 X87.5 Y10
N118 G1 G40 X110 Y-10 A2=0 B2=0 C2=0
N119 G0 Z100
N120 TRAFOOF ;Deactivate 5-axis transformation
N121 G0 A0 C0
N122 M17

M103 Page 74 840Dsl SINUMERIK Operate


3.33 Programming on the machine
Application example 5: ORIVECT, ORICON.. Section 3
Notes

Cont.

KIDNEY.SPF
N103 ORIWKS
N104 TRAORI ;Activate 5-axis transformation
N105 G0 X-10 Y70 Z10 A2=0 B2=0 C2=0
N106 G1 Z-10 F1000
N107 CUT3DC ;3D cutter comp for circumferential milling
N108 ORIVECT
N109 G1 G41 X10 Y70 A2=0 B2=15 C2=0
N110 G1 Y80
N111 ORICONCW
N112 G2 X25.99 Y94.97 A2=0 B2=15 C2=-94 CR=15 NUT=30
N113 ORICONCW
N114 G2 X88.85 Y72.11 A2=0 B2=15 C2=-128 CR=120 NUT=30
N115 ORICONCW
N116 G2 X95 Y60 A2=0 B2=-15 C2=0 CR=15 NUT=30
N117 ORICONCW
N118 G2 X70.79 Y48.17 A2=0 B2=-15 C2=-128 CR=15 NUT=30
N119 ORICONCCW
N120 G3 X24.47 Y65.01 A2=0 B2=-15 C2=-94 CR=80 NUT=30
N121 ORICONCW
N122 G2 X10 Y80 A2=0 B2=15 C2=0 CR=15 NUT=30
N123 ORIVECT
N124 G1 Y95 Z=IC(1)
N125 G1 G40 X-10 A2=0 B2=0 C2=0
N126 G0 Z100
N127 TRAFOOF ;Deactivate 5-axis transformation
N128 G0 A0 C0
N129 M17

840Dsl SINUMERIK Operate Page 75 M103


3.34 Programming on the machine
Section 3 Application example 6: ORICURVE with BSPLINE
Notes

Example 5: Curve interpolation ORICURVE in combi-


nation with BSPLINE

Spline curve 2
Spline curve 1
XH= YH= ZH=
XYZ

Task description:
5-axis circumferential milling of a free form surface.

Define the path of the tool tip (Spline curve 1) and the path of the second
contact point of the tool (Spline curve 2) as a BSPLINE curve.

With the command ORICURVE it is than possible to interpolate the free


form surface with a 5-axis simultaneous circumferential tool path.

This kind of interpolation leads to a higher path velocity and a ex-


tremely smooth surface.

Tools:
Solid carbide end mill D=16 CR=3 FL=2

Workpiece blank material:


Aluminum 110 x 110 x 50

M103 Page 76 840Dsl SINUMERIK Operate


3.35 Programming on the machine
Application example 6: ORICURVE with BSPLINE Section 3
Notes

Workpiece drawing example 6:

840Dsl SINUMERIK Operate Page 77 M103


3.36 Programming on the machine
Section 3 Application example 6: ORICURVE with BSPLINE
Notes

Point table of the double spline

M103 Page 78 840Dsl SINUMERIK Operate


3.37 Programming on the machine
Application example 6: ORICURVE with BSPLINE Section 3
Notes

Mainprogram:

EXAMPLE_6_ORICURVE.MPF

N100 T="SC_ENDMILL_D16 D1"


N101 M6
N102 S5000 M3
N103 ORIWKS
N104 CUT3DC
N105 G54
N106 TRANS X50 Y50 Z50
N107 G0 X0 Y-70 Z100
N108 Z10 M8
N109 TRAORI
N115 CYCLE832(0.005,1,1) ;Select High-Speed-Settings (DYNFINISH)
N111 EXTCALL "BSPLINE_1"
N112 G0 Z200
N113 TRAFOOF
N114 TRANS
N115 G0 C0 A0
N116 M30

Note:
Since the tool path is already defined as a spline, it is of no use to turn on
compression with COMPCAD or COMPCURV, never the less CY-
CLE832 must be programmed to set important dynamic parameters for
the technology group DYNFINISH.
If programming on a CAM, the output of a double-spline in combination
with the command ORICURVE must be supported by your CAM system
and postprocessor.
Only B-Spline or POLY are supported with ORICURVE.
For detailed information about B-Spline and CYCLE832 refer to module
“M103_Advanced Surface Section 3.26 - 3.31”.

840Dsl SINUMERIK Operate Page 79 M103


3.38 Programming on the machine
Section 3 Application example 6: ORICURVE with BSPLINE
Notes

Subprogram:

BSPLINE_1.SPF

N100 ORIVECT
N101 G1 Z-18.3 F500
N102 G1 G41 X0 Y-54.44 A2=-20 B2=0 C2=0
N103 ORICURVE
N104 SPLINEPATH(1,X,Y,Z)
N104 BSPLINE SD=2
N105 X0 Y-54.44 Z-18.3 XH=0 YH=-47.59 ZH=0 ;P01
N106 X-9.980 Y-54.13 Z-18.3 XH=-9.980 YH=-47.27 ZH=0 ;P02
N107 X-19.94 Y-52.33 Z-18.3 XH=-19.94 YH=-46.97 ZH=0 ;P03
N108 X-28.30 Y-51.02 Z-18.3 XH=-28.30 YH=-47.41 ZH=0 ;P04
N109 X-32.79 Y-51.34 Z-18.3 XH=-32.79 YH=-48.05 ZH=0 ;P05
N110 X-38.74 Y-52.47 Z-18.3 XH=-39.35 YH=-49.29 ZH=0 ;P06
N111 X-45.50 Y-52.18 Z-18.3 XH=-44.31 YH=-49.69 ZH=0 ,P07
N111 X-49.34 Y-49.82 Z-18.3 XH=-46.96 YH=-47.63 ZH=0 ;P08
N112 X-51.94 Y-46.10 Z-18.3 XH=-49.03 YH=-44.69 ZH=0 ;P09
N112 X-52.67 Y-39.86 Z-18.3 XH=-49.39 YH=-39.86 ZH=0 ;P10
N113 X-52.11 Y-36.89 Z-18.3 XH=-48.83 YH=-36.89 ZH=0 ;P11
N114 X-51.33 Y-32.80 Z-18.3 XH=-48.05 YH=-32.80 ZH=0 ;P12
N115 X-51.02 Y-28.28 Z-18.3 XH=-47.41 YH=-28.31 ZH=0 ;P13
N116 X-52.16 Y-20.71 Z-18.3 XH=-46.98 YH=-20.71 ZH=0 ;P14
N117 X-54.13 Y-9.990 Z-18.3 XH=-47.27 YH=-9.980 ZH=0 ;P15
N118
N119 X-54.44 Y0 Z-18.3 XH=-47.59 YH=0 ZH=0 ;P16
N120 X-54.13 Y9.990 Z-18.3 XH=-47.27 YH=9.980 ZH=0 ;P17
N121 X-52.16 Y20.71 Z-18.3 XH=-46.98 YH=20.71 ZH=0 ;P18
N122 X-51.02 Y28.28 Z-18.3 XH=-47.41 YH=28.31 ZH=0 ;P19
N123 X-51.33 Y32.80 Z-18.3 XH=-48.05 YH=32.80 ZH=0 ;P20
N124 X-52.11 Y36.89 Z-18.3 XH=-48.83 YH=36.89 ZH=0 ;P21
N125 X-52.67 Y39.86 Z-18.3 XH=-49.39 YH=39.86 ZH=0 ;P22
N125 X-51.94 Y46.10 Z-18.3 XH=-49.03 YH=44.69 ZH=0 ,P23
N126 X-49.34 Y49.82 Z-18.3 XH=-46.96 YH=47.63 ZH=0 ;P24
N127 X-45.50 Y52.18 Z-18.3 XH=-44.31 YH=49.18 ZH=0 ;P25
N127 X-38.74 Y52.47 Z-18.3 XH=-39.35 YH=49.29 ZH=0 ;P26
N128 X-32.79 Y51.34 Z-18.3 XH=-32.79 YH=48.05 ZH=0 ;P27
N129 X-28.30 Y51.02 Z-18.3 XH=-28.30 YH=47.41 ZH=0 ;P28
N130 X-19.94 Y52.33 Z-18.3 XH=-19.94 YH=46.97 ZH=0 ;P29
N131 X-9.980 Y54.13 Z-18.3 XH=-9.980 YH=47.27 ZH=0 ;P30
N132

M103 Page 80 840Dsl SINUMERIK Operate


3.39 Programming on the machine
Application example 6: ORICURVE with BSPLINE Section 3
Notes
N133 X0 Y54.44 Z-18.3 XH=0 YH=47.59 ZH=0 ;P31
N134 X9.98 Y54.13 Z-18.3 XH=9.98 YH=47.27 ZH=0 ;P32
N135 X19.94 Y52.33 Z-18.3 XH=19.94 YH=46.97 ZH=0 ;P33
N136 X28.30 Y51.02 Z-18.3 XH=28.30 YH=47.41 ZH=0 ;P34
N137 X32.79 Y51.34 Z-18.3 XH=32.79 YH=48.05 ZH=0 ;P35
N138 X38.74 Y52.47 Z-18.3 XH=39.35 YH=49.29 ZH=0 ;P36
N138 X45.50 Y52.18 Z-18.3 XH=44.31 YH=49.18 ZH=0 ,P37
N139 X49.34 Y49.82 Z-18.3 XH=46.96 YH=47.63 ZH=0 ;P38
N139 X51.94 Y46.10 Z-18.3 XH=49.03 YH=44.69 ZH=0 ;P39
N140 X52.67 Y39.86 Z-18.3 XH=49.39 YH=39.86 ZH=0 ;P40
N141 X52.11 Y36.89 Z-18.3 XH=48.83 YH=36.89 ZH=0 ;P41
N142 X51.33 Y32.80 Z-18.3 XH=48.05 YH=32.80 ZH=0 ;P42
N143 X51.02 Y28.28 Z-18.3 XH=47.41 YH=28.31 ZH=0 ;P43
N144 X52.16 Y20.71 Z-18.3 XH=46.98 YH=20.71 ZH=0 ;P44
N145 X54.13 Y9.990 Z-18.3 XH=47.27 YH=9.980 ZH=0 ;P45
N146
N147 X54.44 Y0 Z-18.3 XH=47.59 YH=0 ZH=0 ;P46
N148 X54.13 Y-9.990 Z-18.3 XH=47.27 YH=-9.980 ZH=0 ;P47
N149 X52.16 Y-20.71 Z-18.3 XH=46.98 YH=-20.71 ZH=0 ;P48
N150 X51.02 Y-28.28 Z-18.3 XH=47.41 YH=-28.31 ZH=0 ;P49
N151 X51.33 Y-32.80 Z-18.3 XH=48.05 YH=-32.80 ZH=0 ;P50
N152 X52.11 Y-36.89 Z-18.3 XH=48.38 YH=-36.89 ZH=0 ;P51
N153 X52.67 Y-39.86 Z-18.3 XH=49.39 YH=-39.86 ZH=0 ;P52
N153 X51.94 Y-46.10 Z-18.3 XH=49.03 YH=-44.69 ZH=0 ;P53
N154 X49.34 Y-49.82 Z-18.3 XH=46.96 YH=-47.63 ZH=0 ;P54
N154 X45.50 Y-52.18 Z-18.3 XH=44.31 YH=-49.18 ZH=0 ;P55
N155 X38.74 Y-52.47 Z-18.3 XH=39.35 YH=-49.29 ZH=0 ;P56
N156 X32.79 Y-51.34 Z-18.3 XH=32.79 YH=-48.05 ZH=0 ;P57
N157 X28.30 Y-51.02 Z-18.3 XH=28.30 YH=-47.41 ZH=0 ;P58
N158 X19.94 Y-52.33 Z-18.3 XH=19.94 YH=-46.97 ZH=0 ;P59
N159 X9.980 Y-54.13 Z-18.3 XH=9.980 YH=-47.27 ZH=0 ;P60
N160 X0 Y-54.44 Z-18.3 XH=0 YH=-47.27 ZH=0 ;P01
N162
N163 ORIVECT
N164 G1 G40 X0 Y-70 A2=0 B2=0 C2=0
N166 M17

840Dsl SINUMERIK Operate Page 81 M103


3.40 Programming on the machine
Section 3 Application example 6: ORICURVE with BSPLINE
Notes

Simulation in operating area PROGRAM

3D view

Top view

M103 Page 82 840Dsl SINUMERIK Operate


3.41 Programming on the machine
Application example 6: ORICURVE with BSPLINE Section 3
Notes
Simulation in AUTO mode
(Simultaneous record)

3D view

Top view

840Dsl SINUMERIK Operate Page 83 M103


4.1 Programming on the CAM
Section 4 Process chain for producing 5-axis workpieces
Notes
Process chain for producing 5-axis workpieces

The production process chain generally starts with workpiece design. The data generated
at this stage provides the basis for further processing and, ultimately, for production.

CAD/CAM Production on machine

CAD model Generating a CAD model

CAM strategies Using the CAM system's internal strategies and


calculation of methods to generate the individual machining
tool path steps and to calculate the paths.

Simulation of tool path Simulation of the calculated tool paths with colli-
sion checking.

Generation of the NC code in the post proces-


sor. Generally, it is the path at the tool tip (TCP)
Post processor
that is output in the NC code.

Data transmission of NC programs and setting


up of tool and workpiece. Possible creation of a
Setting up the machine main program that will call the generated
geometry programs.

Definition of the high speed settings, e.g. in


CYCLE832, if not already taken into account by
Quality the post processor. These consist of the follow-
ing: tolerance, compressor, continuous-path
control, smoothing, jerk and speed.

Machining Production of workpiece on the machine.

M103 Page 84 840Dsl SINUMERIK Operate


4.2 Programming on the CAM
Procedure when working with a CAM system Section 4
Notes
Procedure when working with a CAM system:

Within the context of the process chain, it is the CAM system that is responsible for the key
task of generating the NC programs. The quality of this data plays a decisive role in deter-
mining the results of workpiece production.
This section outlines the procedure for generating the NC programs. Given the diverse
range of systems available on the market, only a brief summary can be provided.

 CAD data
Read CAD data into the CAM system. When reading the data in, a check should be per-
formed
to ensure that the surface geometries are free from defects, i.e. that there are no
steps or jumps. Flaws in the data such as these will manifest themselves on the surface of
the finished workpiece.
 Chucking situation
Define the chucking situation and the geometry that can be freely machined in a chucking
device. Define geometries such as a zero point.
 Specify tools
Define the necessary tools on the basis of the machining task at hand and enter the tech-
nology
data. As a general rule, CAM systems are able to read the data in from tool databases.
Amongst other things, the tools determine which subsequent machining strategies can be
used, e.g. whether plunge cutting is possible with the tool.
 Specify machining strategies
Define the machining process for the various workpiece geometries using the appropriate
strategies. First of all, roughing strategies are applied, e.g. roughing in the Z plane or equi-
distant from the surface geometry. CAM systems offer various options from 2 1/2-axis to 5-
axis machining.
The tool paths can be generated automatically or defined manually; these include, for ex-
ample, approach and retract strategies or special milling strategies such as trochoidal mill-
ing.
The machining strategies are gradually introduced in stages as part of this procedure and
are supported by automatic residual material detection, for example.
 Calculation and simulation
When simulating the calculated tool paths/machine movements different levels of quality
can be used, from straightforward simulation of the tool paths through to complete simula-
tion of the G and M codes that takes account of all machine-specific and control-specific
data. Here, potential collisions can be detected and avoided, for example, and the ma-
chine's maximum axis traversing ranges can be taken into account.
 Output of the NC code with the post processor
The post processor converts the sequences into NC programs taking into account the con-
trol-specific syntax and the control's special functions. For this purpose, CAM systems
make use of universal post processors or special post processors that have been optimized
for the SINUMERIK system. Manufacturer-specific functions such as separate coolant
strategies must be implemented in the post processor in consultation with the machine
manufacturer.

Key parameters
When working with CAD/CAM systems, certain tolerances and levels of accuracy that will
have an impact on subsequent machining must be observed.
Tolerance
The CAM system uses the CAD surface (spline) to generate a contour consisting of linear
traversing blocks (straight line elements). The extent to which the linear contour deviates
from the real contour from the CAD system is known as the chord error or chord tolerance.
This tolerance depends on the strategy used and is greater in the case of roughing strate-
gies than with finishing strategies. When the NC programs are executed on the machine,
the tolerance is specified by the CAM system in CYCLE832 so that optimum results can be
achieved in terms of surface quality and contour accuracy.
Accuracy
When outputting the NC blocks from the CAM system, you can specify the number of deci-
mal places. The required level of accuracy is dependent on the type of interpolation. In the
case of linear axes (X, Y, Z), at least 3 decimal places should be used for 3-axis programs.
If the blocks are to be output as rotary axis positions, with 5-axis programs 5 decimal com-
mas should be used in the linear and rotary axes for optimum surface quality. If they are to
be output in the form of a direction

840Dsl SINUMERIK Operate Page 85 M103


4.3 Programming on the CAM
Section 4 Program structure for 5-axis machining
Notes
Program structure for 5-axis machining
Recommendation for a practical program structure with CYCLE832

For machining purposes, a main program is generated (1) that includes all
technology data. The main program calls one or more subprograms (2)
and (3), that contain the workpiece' s geometry data. The tool change de-
fines how the content is divided into subprograms.

Main program Mainprog.MPF (1)


N100 T1 D1 ; Endmill_R_D12
N101 M6 ; Tool change
N102 S10000 M3 ; Spindle speed
N103 G54 ; Work offset
N104 CYCLE832(0.05,1,1) (4) ; High-speed-settings
N105 EXTCALL “CAM_ROUGH” (5) ; *External program call
N105 T2 D1 ; Ballmill_F_D8
N106 M6 ; Tool change
N107 S15000 M3
N108 G54
N108 CYCLE832(0.005,3,1) (4)
N109 EXTCALL “CAM_FINISH” (5)
N110 M30

Subprogram CAM_ROUGH.SPF (2)


N100 TRAORI
N101 G90
N102 G0 X0 Y0 Z10
N103 G1 Z0 F500
N104 G1 X-1.45345 Y0.67878 F10000
N105 G1 X-1.18141 Y0.84245
…….
N5046 G1 X-4.11845 Y-11.44212
N5047 G0 Z10
…….
N5051 G1 Z-2.13247 A3=0.34202 B3=0 C3=-0.93969 F800 (6)
…….
N6582 G1 X7.60978 Y3.55541 A3=0.34202 B3=0 C3=-0.9396
N6583 G0 Z50 A3=0.34202 B3=0 C3=0.93969
N6584 TRAFOOF
N6585 M17

Subprogram CAM_FINISH.SPF (3)


N100 TRAORI
N101 G90
N102 G0 X0 Y0 Z10 A3=0 B3=0 C3=0
N103 G1 Z0 F500
……
N6582 G1 X7.60978 Y3.55541 A3=0.34202 B3=0 C3=-0.9396
N6583 G0 Z50 A3=0.34202 B3=0 C3=0.93969
N6584 TRAFOOF
N7854 M17

* All programs should be located in one directory. If this is not the case,
then the path must be specified.

M103 Page 86 840Dsl SINUMERIK Operate


4.4 Programming on the CAM
Program structure for 5-axis machining Section 4
Notes
Main program:
The main program includes the two key functions for milling, CYCLE832
(4) and EXTCALL (5) .

CYCLE832:
CYCLE832 (4) has been specifically developed for the program structure
shown, where technology data and geometry data are separated. It brings
together all the key commands and activates control functions. The ma-
chining technology for milling is defined in CYCLE832.
For the roughing program "CAM_Rough" using T1, the parameters in
CYCLE832 were geared towards achieving a high velocity.
For the finishing program "CAM_Finish" using T2 the parameters in
CYCLE832were geared towards achieving a high level of accuracy and
surface quality. The current work offset is retained. (For more information
about CYCLE832, see module M104 “Advanced Surface").

EXTCALL:
CAM programs are generally extremely large, which is why they are stored
in an external memory. The EXTCALL command is used to call the sub-
programs from various locations, including external memories.
Example:
EXTCALL "USB:/MOLD_DIE/CAM_ROUGH.MPF"
EXTCALL “CF_CARD:/MOLD_DIE/CAM_ROUGH.MPF"

Subprogram:
In the subprogram (5), G90 for absolute programming is immediately fol-
lowed by the geometry blocks. In our example, these initially take the form
of blocks for 3-axis milling, which are then followed by the blocks for 5-axis
simultaneous milling (6). These are designated A3, B3, and C3.

840Dsl SINUMERIK Operate Page 87 M103


4.5 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes
Application Example 7: 5-Axis milling of a structural part

This example shows a structural component used in the aircraft industry,


that requires a variation of different 5-Axis machining operation. A variety
of different milling strategies in combination with 5-Axis Transformation
TRAORI and HSC CYCLE832 are used to cut the following part.

The Subprograms are only cut-outs in this documentation and serve only a
explanatory purpose of program structure and important functions.

M103 Page 88 840Dsl SINUMERIK Operate


4.6 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes
Production description on the CAM

Subprogram: ROUGHING_1.SPF
Operation 1: Rough out model
Tool: Toroid endmill D=16mm R=3mm
Strategy: 2 1/2 D Z-level roughing
CAM tolerance: 0.1 mm

Subprogram: FLOOR_FINISHING.SPF
Operation 2: Finishing floor
Tool: Solid carbide endmill D=12mm
Strategy: 2 1/2D Face milling
CAM tolerance: 0.01 mm

840Dsl SINUMERIK Operate Page 89 M103


4.7 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes
Subprogram: CIRCUMFERENCE.SPF
Operation 3: Swarf cut outer profile
Tool: Solid carbide endmill D=12mm
Strategy: 5-Axis circumferential milling
CAM tolerance:

Subprogram: CHAMBER123_CIRCUMF.SPF
Operation 4: Swarf cut chamber 1, 2 and 3
Tool: Solid carbide endmill D=12mm
Strategy: 5-Axis circumferential milling
CAM tolerance:

M103 Page 90 840Dsl SINUMERIK Operate


4.8 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes
Subprogram: CHAMBER123_CIRCUMF.SPF
Operation 4: Swarf cut chamber 1, 2 and 3
Tool: Solid carbide endmill D=12mm
Strategy: 5-Axis circumferential milling
CAM tolerance:

Subprogram: CHAMBER123_CIRCUMF.SPF
Operation 4: Swarf cut chamber 1, 2 and 3
Tool: Solid carbide endmill D=12mm
Strategy: 5-Axis circumferential milling
CAM tolerance:

840Dsl SINUMERIK Operate Page 91 M103


4.9 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes
Subprogram: CHAMBER1_R3_FINISHING
Operation 4: Chamber 1 corner radius R3 finishing
Tool: SC Ball mill D=6mm R=3mm
Strategy: 5-Axis simultanious copymilling
CAM tolerance: 0.01 mm

Subprogram: CHAMBER2_R3_FINISHING
Operation 5: Chamber 2 corner radius R3 finishing
Tool: SC Ball mill D=6mm R=3mm
Strategy: 5-Axis simultanious copymilling
CAM tolerance: 0.01 mm

M103 Page 92 840Dsl SINUMERIK Operate


4.10 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes
Subprogram: CHAMBER3_R3_FINISHING
Operation 6: Chamber 3 corner radius R3 finishing
Tool: SC Ball mill D=6mm R=3mm
Strategy: 5-Axis simultanious copymilling
CAM tolerance: 0.01 mm

Subprogram: EDGES_RADIA_R3_FINISHING
Operation 7: Undercut and corner radia R3 finishing
Tool: SC Ball mill D=6mm R=3mm
Strategy: 3+2 axis copymilling (Streamline)
CAM tolerance: 0.01 mm

840Dsl SINUMERIK Operate Page 93 M103


4.11 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes
Example main program:
The NC programs for producing following part involves a number of 3-5
axis roughing, pre-finishing, and finishing strategies. The key components
of the NC programs are illustrated below in the main program.
Within the main program, it is sometimes a good idea to define all technol-
ogy parameters such as feeds and speeds, high-speed-settings and spe-
cial M codes. All feed rates are defined as R parameters, this allows
greater flexibility to optimize feed rates for the machine operator.
The subprograms should only contain geometrical information.
In test mode, it is advisable to execute the subprograms individually; jump
labels can be used within the main program, for example, for the purpose
of launching the required subprogram.

MAINPROG.MPF

GOTOF OP_1 ; Jump label to operation 1

N100 OP_1:
N100 T="TOROID_D16_R3"
N101 M6
N104 S10000 M3
N105 R1=4000 ;Feed milling
N105 R2=4000 ;Feed approach
N106 G54 G0 X0 Y0 C0 A0 D1
N107 G0 Z100
N110 CYCLE832(0.05,3,1) ;High-speed-settings (DYNROUGH)
N112 EXTCALL"ROUGHING_1"
N113 CYCLE832() ;Deselect high-speed-settings
N114
N115 OP_2:
N115 T="SC_ENDMILL_D12"
N116 M6
N117 M25 ;Open C-axis clamping (OEM specific)
N118 M27 ;Open B-axis clamping (OEM specific)
N119 S12000 M3
N120 R1=800
N121 R2=1000
N122 G54 G0 X0 Y0 C0 A0 D1
N123 G0 Z100
N126 CYCLE832(0.005,1,1) ;High-speed-settings (DYNFINISH)
N128 EXTCALL"FLOOR_FINISHING"
N131 CYCLE832() ;Deselect high-speed-settings
N132
N133 OP_3:
N134 S12000 M3
N135 R1=400 ;Feed milling
N136 R2=1000 ;Feed approach
N137 G54 G0 X0 Y0 C0 A0 D1
N138 G0 Z100
N141 CYCLE832(0.01,3,1)
N143 EXTCALL"CIRCUMFERENCE"
N144 CYCLE832() ;Deselect high-speed-settings

M103 Page 94 840Dsl SINUMERIK Operate


4.12 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes
Cont.

N145 OP_4:
N146 S7500 M3
N147 R1=400 ;Feed milling
N148 R2=1000 ;Feed approach
N149 G54 G0 X0 Y0 C0 A0 D1
N150 G0 Z100
N153 CYCLE832(0.01,3,1)
N155 EXTCALL"SWARFCUT_CHAMBERS"
N156 CYCLE832() ;High-speed-settings (DYNFINISH)
N157
N158 OP_5:
N158 T="SC_Ballmill_D6"
N159 M6
N160 M25 ;Open C-axis clamping
N161 M27 ;Open B-axis clamping
N162 S15000 M3
N163 R1=2000 ;Feed milling
N164 R2=1000 ;Feed approach
N165 G54 G0 X0 Y0 C0 A0 D1
N166 G0 Z100
N168 CYCLE832(0.01,1,1) ;High-speed-settings (DYNFINISH)
N169 EXTCALL"CHAMBER1_R3_FINISHING"
N170 EXTCALL"CHAMBER2_R3_FINISHING"
N171 EXTCALL"CHAMBER2_R3_FINISHING"
N172 CYCLE832() ;Deselect high-speed-settings
N173
N173 OP_6:
N174 S15000 M3
N175 R1=2000 ;Feed milling
N176 R2=1000 ;Feed approach
N177 G54 G0 X0 Y0 C0 A0 D1
N178 G0 Z100
N179 CYCLE832(0.01,1,1) ;High-speed-settings (DYNFINISH)
N180 EXTCALL"EDGES_RADIA_R3_FINISHING"
N181 CYCLE832() ;Deselect high-speed-settings
N182
N183 SUPA G0 Z0 D0 ; Retract to save Z position in MCS
N184 SUPA G0 X0 Y0 D1 ; Retract to save X Y position in MCS
N185 M30

Note: (for the following 5-axis programs)

Programming on a CAM:

ORIAXES executes the orientation change between start and end orienta-
tion with direct rotary axes movement, there for intermediate orientations
between start orientation and end orientation of the tool between 2 blocks
were calculated by the CAM in order to follow the exact contour path, to
avoid contour gauging. (See comparison ORIVECT-ORIAXES chapter
2.13 – 2.14).

840Dsl SINUMERIK Operate Page 95 M103


4.13 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes

Subprogram: FLOOR_FINISHING.SPF

N100 ;cam tolerance=0.01


N102 TRAORI
N103 ORIWKS
N104 ORIAXES
N105 G54
N106 MSG("FLOOR_FINISHING")
N106 ;Positioning move
N107 G0 X-108.10653 Y-23.6845 Z35.30001 A3=0.0 B3=0.0 C3=1. M3
N108 ;Approach move
N109 G1 Z28.3 A3=0.0 B3=0.0 C3=1. F=R2 M8
N110 ;Start move
N111 G1 Z25.3 A3=0.0 B3=0.0 C3=1. F=R1
N112 Y.3155 A3=0.0 B3=0.0 C3=1.
N113 ;Milling
N114 Y26.1425 A3=0.0 B3=0.0 C3=1.
N115 X-104.67946 Y27.36186 A3=0.0 B3=0.0 C3=1.
N116 X-101.22582 Y28.50395 A3=0.0 B3=0.0 C3=1.
N117 X-97.74887 Y29.57295 A3=0.0 B3=0.0 C3=1.
N118 X-94.25014 Y30.56839 A3=0.0 B3=0.0 C3=1.
N119 X-90.7312 Y31.48983 A3=0.0 B3=0.0 C3=1.
N120 X-87.19361 Y32.33685 A3=0.0 B3=0.0 C3=1.
N121 X-83.63895 Y33.10909 A3=0.0 B3=0.0 C3=1.
N122 X-80.06879 Y33.80619 A3=0.0 B3=0.0 C3=1.
N123 X-76.48472 Y34.42785 A3=0.0 B3=0.0 C3=1.
N124 X-72.88834 Y34.97379 A3=0.0 B3=0.0 C3=1.
N125 X-69.28125 Y35.44377 A3=0.0 B3=0.0 C3=1.
N126 X-65.66505 Y35.83757 A3=0.0 B3=0.0 C3=1.
N127 X-62.04135 Y36.15503 A3=0.0 B3=0.0 C3=1.
……..

N833 X-7.85128 Y-14.36191 A3=0.0 B3=0.0 C3=1.


N834 X-6.78995 Y-14.87846 A3=0.0 B3=0.0 C3=1.
N835 X-5.69524 Y-15.31947 A3=0.0 B3=0.0 C3=1.
N836 X-5.63603 Y-15.33767 A3=0.0 B3=0.0 C3=1.
N837 X-5.58193 Y-15.36786 A3=0.0 B3=0.0 C3=1.
N838 ;Departure move
N839 X-10.92894 Y-26.35452 A3=0.0 B3=0.0 C3=1.
N840 Z8.5 A3=0.0 B3=0.0 C3=1.
N841 ;Retract move
N842 G0 Z35.3 A3=0.0 B3=0.0 C3=1.
N843 TRAFOOF
N844 SUPA G0 Z0.0 D0 ;Retract to save Z in MCS
N845 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1 ;Retract to save X Y in MCS
;and return rotary axes to
;initial position
N846 M17

M103 Page 96 840Dsl SINUMERIK Operate


4.14 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes

Subprogram: ROUGHING_1.SPF

N100 ORIWKS
N101 ORIAXES
N102 TRAORI
N103 G54
N104 MSG("CONTOUR_ROUGH")
N105 G0 X-35.83238 Y66.83713 Z36.9 A3=0.0 B3=0.0 C3=1.
N106 ;Approach move
N107 Z28.8 A3=0.0 B3=0.0 C3=1.
N108 ;Start move
N109 G1 Z25.8 A3=0.0 B3=0.0 C3=1. M8 F=R1
N110 Y53.83713 A3=0.0 B3=0.0 C3=1.
N111 ;Milling
N112 X38.58281 A3=0.0 B3=0.0 C3=1.
N113 X38.79515 Y53.85527 A3=0.0 B3=0.0 C3=1.
N114 X40.24081 Y53.65133 A3=0.0 B3=0.0 C3=1.
N115 X41.28869 Y52.59839 A3=0.0 B3=0.0 C3=1.
N116 X41.48567 Y51.15177 A3=0.0 B3=0.0 C3=1.
N117 X41.46543 Y50.92751 A3=0.0 B3=0.0 C3=1.
N118 Y-47.89652 A3=0.0 B3=0.0 C3=1.
………

N9264 X-116.52049 Y36.48922 A3=0.0 B3=0.0 C3=1.


N9265 X-115.35784 Y39.25117 A3=0.0 B3=0.0 C3=1.
N9266 X-113.34842 Y41.47431 A3=0.0 B3=0.0 C3=1.
N9267 X-110.68513 Y42.8147 A3=0.0 B3=0.0 C3=1.
N9268 X-102.46357 Y45.55847 A3=0.0 B3=0.0 C3=1.
N9269 X-94.09657 Y47.82676 A3=0.0 B3=0.0 C3=1.
N9270 X-85.61494 Y49.61121 A3=0.0 B3=0.0 C3=1.
N9271 ;Retract move
N9272 X-87.17279 Y57.45807 A3=0.0 B3=0.0 C3=1.
N9273 Z-1.1 A3=0.0 B3=0.0 C3=1.
N9274 ;Departure move
N9275 G0 Z36.9 A3=0.0 B3=0.0 C3=1.
N9277 TRAFOOF
N9278 SUPA G0 Z0.0 D0 ;Retract to save Z in MCS
N9279 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1 ;Retract to save X Y in MCS
;and return rotary axes to
;initial position
N9283 M17

840Dsl SINUMERIK Operate Page 97 M103


4.15 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes

Subprrogram: CIRCUMFERENCE.SPF

N100 ;cam tolerance=0.01


N101 TRAORI
N102 ORIWKS
N103 ORIAXES
N104 G54
N105 MSG("CIRCUMFERENCE")
N107 ;Positioning move
N106 G0 X-121.40912 Y36.4311 Z35 A3=.09603557 B3=-.2761492 C3=.9563047
M3
N108 ;Approach move
N109 G1 Z.15423 F=R2 M8
N110 ;Start move
N111 G1 X-110.05862 Y40.32549 A3=.09603557 B3=-.2761492 C3=.95630476
F=R1
N112 ;Milling
N113 X-108.60112 Y40.82556 A3=.09375063 B3=-.27693326 C3=.95630476
N114 X-107.13954 Y41.31347 A3=.09145933 B3=-.27769841 C3=.95630476
N115 X-105.67397 Y41.7892 A3=.08916182 B3=-.27844458 C3=.95630476
……..
……..

N726 X-114.03513 Y-4.2235 A3=0.0 B3=0.0 C3=1.


N727 X-114.09052 Y-3.75546 A3=0.0 B3=0.0 C3=1.
N728 X-114.10653 Y-3.2845 A3=0.0 B3=0.0 C3=1.
N729 Y34.71226 A3=0.0 B3=0.0 C3=1.
N730 ;Departure move
N731 Z21.1 A3=0.0 B3=0.0 C3=1. F=R2
N732 ;Retract move
N733 G0 Z35.5 A3=0.0 B3=0.0 C3=1.
N735 TRAFOOF
N736 SUPA G0 Z0.0 D0 ;Retract to save Z in MCS
N737 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1 ;Retract to save X Y in MCS
;and return rotary axes to
;initial position

N738 M17

M103 Page 98 840Dsl SINUMERIK Operate


4.16 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes

Subprogram: SWARFCUT_CHAMBERS.SPF

N100 ;camtolerance=0.01
N101 TRAORI
N102 ORIWKS
N103 ORIAXES
N104 G54
N105 MSG("SWARFCUT_CHAMBERS")
N107 ;Positioning move
N106 G0 X-42.04229 Y-33.2845 Z35.5 A3=.22495105 B3=0.0 C3=.97437006 M3
N107 ;Approach move
N108 G1 X-49.2255 Z4.3861 A3=.22495105 B3=0.0 C3=.97437006 F=R1
N109 ;Start move
N110 G1 Y-21.2845 A3=.22495105 B3=0.0 C3=.97437006 M8
N111 ;Milling
N112 Y-19.80012 A3=.22494426 B3=-.00777427 C3=.97434062
N113 Y-18.31573 A3=.22492386 B3=-.01554807 C3=.97425228
N114 Y-16.83134 A3=.22488987 B3=-.02332093 C3=.97410507
N115 Y-15.34695 A3=.22484229 B3=-.03109238 C3=.97389897
N116 Y-13.86256 A3=.22478112 B3=-.03886195 C3=.97363401
N117 Y-12.37817 A3=.22470637 B3=-.04662917 C3=.97331021
N118 Y-10.89378 A3=.22461803 B3=-.05439358 C3=.97292758
N119 Y-9.4094 A3=.22451612 B3=-.0621547 C3=.97248615
……..
……..

N1002 X7.9198 Y24.23603 A3=-.09765992 B3=-.27557894 C3=.95630476


N1003 X6.56069 Y24.71119 A3=-.09531984 B3=-.27639707 C3=.95630476
N1004 X5.1976 Y25.17482 A3=-.09297292 B3=-.27719533 C3=.95630476
N1005 X3.83062 Y25.62687 A3=-.09061931 B3=-.27797366 C3=.95630476
N1006 X2.45987 Y26.06732 A3=-.08825919 B3=-.278732 C3=.95630476
N1007 X1.08543 Y26.49613 A3=-.08589273 B3=-.27947031 C3=.95630476
N1008 X-.2926 Y26.91327 A3=-.08352009 B3=-.28018852 C3=.95630476
N1009 X-1.67412 Y27.31871 A3=-.08114144 B3=-.2808866 C3=.95630476
N1010 X-3.05902 Y27.71242 A3=-.07875696 B3=-.28156448 C3=.95630476
N1011 X-4.44722 Y28.09438 A3=-.07636682 B3=-.28222212 C3=.95630476
N1012 X-5.8386 Y28.46455 A3=-.07397118 B3=-.28285947 C3=.95630476
N1013 ;Departure move
N1014 X-7.46233 Y22.25554 Z28.61461 A3=-.07397118 B3=-.28285947
C3=.95630476
N1015 ;Retract move
N1016 G0 X-7.99492 Y20.21895 Z35.5 A3=-.07397118 B3=-.28285947
C3=.95630476
N1017 TRAFOOF
N1018 SUPA G0 Z0.0 D0 ;Retract to save Z in MCS
N1019 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1 ;Retract to save X Y in MCS
;and return rotary axes to
;initial position
N1020 M17

840Dsl SINUMERIK Operate Page 99 M103


4.17 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes

Subprogram: CHAMBER1_R3_FINISHING.SPF

N100 TRAORI
N101 ORIWKS
N102 ORIAXES
N103 G54
N104 MSG("5-AXIS CHAMBER-2 R3")
N104 ;Positioning move
N105 G0 X-52.73538 Y-17.80536 Z31.9 A3=-.39485858 B3=.49800333
C3=.77206177 M3
N106 ; Approach move
N107 G1 Z13.37361 A3=-.39485858 B3=.49800333 C3=.77206177 F=R2
N108 X-47.99708 Y-23.7814 Z4.10887 A3=-.39485858 B3=.49800333
C3=.77206177
N109 ; Start move
N110 G1 X-47.84399 Y-23.76942 Z3.80953 A3=-.39485858 B3=.49800333
C3=.77206177 M8 F=R1
N111 X-47.69248 Y-23.71986 Z3.51328 A3=-.39485858 B3=.49800333
C3=.77206177
N112 X-47.54444 Y-23.63337 Z3.22382 A3=-.39485858 B3=.49800333
C3=.77206177
N113 X-47.40175 Y-23.51101 Z2.94481 A3=-.39485858 B3=.49800333
C3=.77206177
N114 X-47.26618 Y-23.35433 Z2.67975 A3=-.39485858 B3=.49800333
C3=.77206177
N115 X-47.13946 Y-23.16531 Z2.43198 A3=-.39485858 B3=.49800333
C3=.77206177
…….

N6641 X-103.86052 Y-4.85962 Z3.35802 A3=.55592652 B3=.22406464


C3=.80046283
N6642 X-103.7161 Y-5.08117 Z3.56596 A3=.55592652 B3=.22406464
C3=.80046283
N6643 X-103.55844 Y-5.27298 Z3.79297 A3=.55592652 B3=.22406464
C3=.80046283
N6644 X-103.38952 Y-5.43264 Z4.03619 A3=.55592652 B3=.22406464
C3=.80046283
N6645 X-103.21147 Y-5.55814 Z4.29256 A3=.55592652 B3=.22406464
C3=.80046283
N6646 X-103.02652 Y-5.64791 Z4.55886 A3=.55592652 B3=.22406464
C3=.80046283
N6647 X-102.837 Y-5.70081 Z4.83174 A3=.55592652 B3=.22406464
C3=.80046283
N6647 ;Departure move
N6648 X-102.6453 Y-5.71617 Z5.10778 A3=.55592652 B3=.22406464
C3=.80046283
N6649 ;Retract move
N6650 G0 X-95.97418 Y-3.0274 Z14.71333 A3=.55592652 B3=.22406464
C3=.80046283
N6651 Z31.9 A3=.55592652 B3=.22406464 C3=.80046283
N6652 G0 X0 Y0 Z100 A3=0 B3=0 C3=1
N6653 TRAFOOF
N6654 SUPA G0 Z0.0 D0 ;Retract to save Z in MCS
N6655 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1 ;Retract to save X Y in MCS
;and return rotary axes to
;initial position
N6656 M17

M103 Page 100 840Dsl SINUMERIK Operate


4.18 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes

Subprogram: EDGES_RADIA_R3.SPF

N380 ;cam tolerance=0.06


N390 TRAORI
N420 ORIWKS
N430 ORIAXES
N440 MSG("EDGES_RADIA_R3_FINISH")
N440 ;Positioning move
N460 G0 X-108.10722 Y-16.24687 Z39.75758 A3=0.0 B3=-.30875245
C3=.95114243
N470 ; Approach move
N480 G1 Y-8.5532 Z16.05646 A3=0.0 B3=-.30875245 C3=.95114243 F=R2
N490 ; Start move
N500 G1 X-108.10697 Y-7.77163 Z16.10624 A3=0.0 B3=-.30875245
C3=.95114243 M8 F=R1
N510 X-108.10672 Y-7.02957 Z16.3566 A3=0.0 B3=-.30875245 C3=.95114243
N520 X-108.10647 Y-6.37759 Z16.7905 A3=0.0 B3=-.30875245 C3=.95114243
N530 X-108.10625 Y-5.86013 Z17.37835 A3=0.0 B3=-.30875245 C3=.95114243
N540 X-108.10607 Y-5.51245 Z18.0801 A3=0.0 B3=-.30875245 C3=.95114243
N550 X-108.10595 Y-5.35825 Z18.84793 A3=0.0 B3=-.30875245 C3=.95114243
N560 ; Milling
N570 X-108.10584 Y-5.30019 Z19.70929 A3=0.0 B3=-.30875245 C3=.95114243
N580 X-108.10574 Y-5.17854 Z20.37475 A3=0.0 B3=-.30875245 C3=.95114243

……….

……….

N9280 X4.66669 Y-27.44925 Z25.44657 A3=0.0 B3=-.30875245 C3=.95114243


N9290 Y-27.06127 A3=0.0 B3=-.30875245 C3=.95114243
N9300 Y-25.62899 A3=0.0 B3=-.30875245 C3=.95114243
N9310 ;Departure move
N9320 Y-24.85253 Z25.54879 A3=0.0 B3=-.30875245 C3=.95114243
N9330 Y-24.12899 Z25.84849 A3=0.0 B3=-.30875245 C3=.95114243
N9340 Y-23.50767 Z26.32525 A3=0.0 B3=-.30875245 C3=.95114243
N9350 Y-23.03091 Z26.94657 A3=0.0 B3=-.30875245 C3=.95114243
N9360 Y-22.73121 Z27.67011 A3=0.0 B3=-.30875245 C3=.95114243
N9370 Y-22.62899 Z28.44657 A3=0.0 B3=-.30875245 C3=.95114243
N9380 ;Retract move
N9390 G0 Y-25.34227 Z36.8051 A3=0.0 B3=-.30875245 C3=.95114243
N9410 TRAFOOF
N9420 SUPA G0 Z0.0 D0 ;Retract to save Z in MCS
N9430 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1 ;Retract to save X Y in MCS
;and return rotary axes to
;initial position
N9440 M17

840Dsl SINUMERIK Operate Page 101 M103


4.19 Programming on the CAM
Section 4 Application Example 7: 5-Axis simultaneous machining
Notes
Setting up workpiece on the machine:

 Pick up Part edge in X and Y, shift zero location in X111.3 and Y-50
in centre of pocket and set G54 workpiece zero offset.
 Pick up part top surface and shift zero offset in Z-28 to bottom edge
of part and set G54 workpiece zero offset.

Blank material: Aluminium 150 x 100 x 50

Tools: T1 Toroid endmill D=16mm R=3mm


T2 Solid carbide endmill D=12mm
T3 SC Ball mill D=6mm R=3mm

Z+
28

X+
G54

G54

M103 Page 102 840Dsl SINUMERIK Operate


4.20 Programming on the CAM
Application Example 7: 5-Axis simultaneous machining Section 4
Notes
Simulation in PROGRAM

840Dsl SINUMERIK Operate Page 103 M103


5.1 Information for the machine operator
Section 5 Retraction with TOROT
Notes
TOROT - retraction from an inclined hole
Function:
When 5-axis transformation is enabled, TOROT generates a frame
whose Z axis coincides with the current tool orientation. This allows
the tool to be retracted in a 5-axis program, after a tool breakage, for
example, without the risk of collision, by retracting the Z axis. After
tool orientation has been programmed with TOROT, all the pro-
grammed geometry axis movements refer to the frame generated by
this programming.

Programming of TOROT in MDA mode:

Select the “Machine” operating area.

Select “MDA” mode. Enter the program as follows:

N10 TRAORI ;5-axis transformation ON


N20 TOROT ;Calculate and select retraction frame
N30 G1 G91 Z50 F500 ;incr. retract in Z direction by 50 mm
N40 TOROTOF
N50 M17 ;End of subroutine

Select single block.

Start the program block by block with “Cycle Start”

With TOROT a FRAME is being


generated, with the current
Toolorientation parallel to the
Z-axis direction 1.
As an alternative to incremental
retraction in MDA mode, the
tool can be retracted in JOG
mode by pressing the direction
key in the tool direction.

Note:
Notice: For retraction in JOG mode the machine must be configured
accordingly (Z axis as the geometry axis).
TOROT must be deselected before the start of the next program with
TOROTOF

M103 Page 104 840Dsl SINUMERIK Operate


5.1 Information for the machine operator
Retraction with TOROT Section 5
Notes

840Dsl SINUMERIK Operate Page 105 M103


6.1 Startup 5-axis transformation TRAORI
Section 6 Prerequisites
Notes
Startup 5-axis transformation TRAORI
Prerequisites
5-axis transformation TRAORI is an option and requires a license

A set of transformation data for the 5-axis transformation TRAORI must be


set up in the machine data “$MC_TRAFO_ ....” (see picture below).
Press following soft-keys to enter machine data for setup of 5-Axis
transformation:

M103 Page 106 840Dsl SINUMERIK Operate


6.2 Startup 5-axis transformation TRAORI
Generic configuration of machine kinematics Section 6
Notes
Generic configuration of machine kinematics
To ensure that the 5-axis transformation can convert the programmed val-
ues to axis motions, certain information about the mechanical design of the
machine is required; this information includes the following 4 steps and is
stored in the machine data:
 Machine type (TRAFO_TYPE)
 Axis assignment
 Geometry information
 Assignment of direction of rotation

Machine type (TRAFO_TYPE)


Like the existing 5-axis transformations, there are three different variants of
generic 5-axis transformation:
1. Machine type: Rotatable tool
Both rotary axes change the orientation of the tool.
The orientation of the workpiece is fixed.
2. Machine type: Rotatable workpiece
Both rotary axes change the orientation of the workpiece.
The orientation of the tool is fixed.
3. Machine type: Rotatable tool and rotatable workpiece - one rotary axis
changes the tool orientation and the other the workpiece orientation.

The machine types have been designated above as types 1 to 3 and are
stored in the following machine data as a two-digit number. It is possible to
define up to 10 Transformation types per channel, from which only two can
be 5-axis transformations:
MD24100 $MC_TRAFO_TYPE_1 (definition of channel transformation 1)
MD24200 $MC_TRAFO_TYPE_2 (definition of channel transformation 2)
...
MD24480 $MC_TRAFO_TYPE_10 (definition of channel transformation
10)

Overview of machine types for the generic 5-axis transformation

Machine type 1 2 3
Swivel-/rotatable Tool Workpiece Tool/
workpiece
Transformation type: 24 40 56

840Dsl SINUMERIK Operate Page 107 M103


6.1 Startup 5-axis transformation TRAORI
Section 6 Generic configuration of machine kinematics
Notes
Axis assignment

MD 24110[n] $MC_TRAFO_AXES_IN_1 to
MD 24482[n] $MC_TRAFO_AXES_IN_1
(Axis assignment transformations 1-10)

The axis assignment at the start of the 5-axis transformation defines the axis
that will be mapped by the transformation internally onto a channel axis [n].
Thus, the following is defined in the machine data below:
MD24110[0] $MC_TRAFO_AXES_IN_1 (Channel axis 1 transformation 1)
MD24110[1] $MC_TRAFO_AXES_IN_1 (Channel axis 2 transformation 1)
MD24110[2] $MC_TRAFO_AXES_IN_1 (Channel axis 3 transformation 1)
...
MD24482[0] $MC_TRAFO_AXES_IN_10 (Channel axis 1 transform. 10)

Coresponds with:
MD24100 $MC_TRAFO_TYPE_1, MD24200 $MC_TRAFO_TYPE_2, ...
MD24480 $MC_TRAFO_TYPE_10

MD 24120[n] $MC_TRAFO_GEOAX_ASSIGN_TAB_1 and


MD 24220[n] $MC_TRAFO_GEOAX_ASSIGN_TAB_2
(Assignment of geometry axes to channel axes for 5-axis transformation 1/2)
This MD states the channel axes on which the axes “n” of the Cartesian
coordinate system are mapped for the active transformation 1 or 2.
See following example:
MD 24120[0] $MC_TRAFO_GEOAX_ASSIGN_TAB_1
(channel axes 1 of 1st 5-axis transformation)
MD 24120[1] $MC_TRAFO_GEOAX_ASSIGN_TAB_1
(channel axes 2 of 1st 5-axis transformation)
MD 24120[2] $MC_TRAFO_GEOAX_ASSIGN_TAB_1
(channel axes 3 of 1st 5-axis transformation)
…………..
MD 24220[n] $MC_TRAFO_GEOAX_ASSIGN_TAB_2
(channel axes 1 of 2nd 5-axis transformation)
Coresponds with:
MD20050 $MC_AXCONF_GEOAX_ASSIGN_TAB, if no transformation is
active.

MD 24130 $MC_TRAFO_INCLUDES_TOOL_1 and


MD 24230 $MC_TRAFO_INCLUDES_TOOL_2
(Tool handling with active 5-axis transformation 1/2)
This machine data states for each channel weather the tool is included in the
first transformation or not.
It is evaluated on the condition that the orientation of the tool with reference
to the basic coordinate system can not be changed by the transformation.
If this MD is set, the basic coordinate system refers to the tool reference
point even with active transformation. Otherwise it refers to the tool tip (tool
center point TCP).

M103 Page 108 840Dsl SINUMERIK Operate


6.2 Startup 5-axis transformation TRAORI
Generic configuration of machine kinematics Section 6
Notes
Example:
For assignment of channel axis for the 5-axis transformation refer to the
following basic machine data, example refers to machine type 2 (single
channel 5-axis machine with AC Swivel rotary table):

General MD
MD10000[0] $MN_AXCONF_MACHAX_NAME_TAB = X1
MD10000[1] $MN_AXCONF_MACHAX_NAME_TAB = Y1
MD10000[2] $MN_AXCONF_MACHAX_NAME_TAB = Z1
MD10000[3] $MN_AXCONF_MACHAX_NAME_TAB = SP1
MD10000[4] $MN_AXCONF_MACHAX_NAME_TAB = A1
MD10000[5] $MN_AXCONF_MACHAX_NAME_TAB = C1

Channel MD
MD20000 $MC_CHAN_NAME = CHAN1

These MD’s are used to specify which channel axis the geometry axis is
assigned to
MD20050[0] $MC_AXCONF_GEOAX_ASSIGN_TAB = 1
MD20050[1] $MC_AXCONF_GEOAX_ASSIGN_TAB = 2
MD20050[2] $MC_AXCONF_GEOAX_ASSIGN_TAB = 3

These MD’s are used to enter the names of the geometry axes separately
for each channel.
MD20060[0] $MC_AXCONF_GEOAX_NAME_TAB = X
MD20060[1] $MC_AXCONF_GEOAX_NAME_TAB = Y
MD20060[2] $MC_AXCONF_GEOAX_NAME_TAB = Z

These MD’s are used to specify the machine axis which the channel axis is
assigned to.
MD20070[0] $MC_AXCONF_MACHAX_USED = 1
MD20070[1] $MC_AXCONF_MACHAX_USED = 2
MD20070[2] $MC_AXCONF_MACHAX_USED = 3
MD20070[3] $MC_AXCONF_MACHAX_USED = 4
MD20070[4] $MC_AXCONF_MACHAX_USED = 5
MD20070[5] $MC_AXCONF_MACHAX_USED = 6
….

840Dsl SINUMERIK Operate Page 109 M103


6.1 Startup 5-axis transformation TRAORI
Section 6 Generic configuration of machine kinematics
Notes
Geometry information

Information concerning machine geometry is required so that the 5-axis


transformation can calculate axis values: This information is stored in the
machine data (in this case, for the first transformation in the channel):

MD24500 $MC_TRAFO5_PART_OFFSET_1 (workpiece offset vector)


 For machine type 2 (Swivel rotary table):
Closing vector of vector chain I4=-(I2+I3)
MD24500[0] $MC_TRAFO5_PART_OFFSET_1 = I4x
MD24500[1] $MC_TRAFO5_PART_OFFSET_1 = I4y
MD24500[2] $MC_TRAFO5_PART_OFFSET_1 = I4z

MD24550 $MC_TRAFO5_BASE_TOOL_1 (Vector of base tool)


 For machine type 2: (Swivel rotary table)
Vector measured from machine zero point (MCS) to centre pivot point
of first rotary axis (A).
MD24550[0] $MC_TRAFO5_BASE_TOOL_1 = I2x
MD24550[1] $MC_TRAFO5_BASE_TOOL_1 = I2y
MD24550[2] $MC_TRAFO5_BASE_TOOL_1 = I2z

M103 Page 110 840Dsl SINUMERIK Operate


6.2 Startup 5-axis transformation TRAORI
Generic configuration of machine kinematics Section 6
Notes
MD24560 $MC_TRAFO5_JOINT_OFFSET_1
(vector of the kinematic offset of 5-axis transformation 1)
 For machine type 2 (Swivel rotary table):
Vector from the first pivot point (A-axis) to the second pivot point
(C- axis)
MD24560[0] $MC_TRAFO5_JOINT_OFFSET_1 = I3x
MD24560[0] $MC_TRAFO5_JOINT_OFFSET_1 = I3y
MD24560[0] $MC_TRAFO5_JOINT_OFFSET_1 = I3z

MD 24510 $MC_TRAFO5_ROT_AX_OFFSET_1
(Angular offset rotary axes 1/2/3 in degrees of first 5-axis transformation)
MD24510[0] $MC_TRAFO5_ROT_AX_OFFSET_1
MD24510[1] $MC_TRAFO5_ROT_AX_OFFSET_1
MD24510[2] $MC_TRAFO5_ROT_AX_OFFSET_1

Assignment of direction of rotation

Rotary axis direction


MD24520[0] - [1] $MC_TRAFO5_ROT_SIGN_IS_PLUS_1
(Sign of rotary axis 1/2 for the first 5-axis transformation)
MD24620[0] - [1] $MC_TRAFO5_ROT_SIGN_IS_PLUS_1
(Sign of rotary axis 1/2 for the second 5-axis transformation)
This machine data designates the sign with which the two rotary
axes are included in the first 5-axis transformation of a channel.
MD = 0 (FALSE):
Sign is reversed.
MD = 1 (TRUE) :
Sign is not reversed and the traversing direction is defined
according to MD32100 $MA_AX_MOTION_DIR.
This machine data does not mean that the rotational direction of
the rotary axis concerned is to be reversed, but specifies whether
its motion is in the mathematically positive or negative direction
when the axis is moving in the positive direction.
The result of a change to this machine data is not therefore a
change in the rotational direction, but a change in the compensatory
motion of the linear axes.
However, if a directional vector and thus, implicitly, a compensatory
motion is specified, the result is a change in the rotational
direction of the rotary axis concerned.
On a real machine, therefore, the machine data may be set to FALSE
(or zero) only if the rotary axis is turning in an anti-clockwise
direction when moving in a positive direction.

Note:
However, this can also be achieved by inverting the direction of axis vector
$MC_TRAFO5_AXIS1/2_1/2 and therefore this machine data can be
neglected

840Dsl SINUMERIK Operate Page 111 M103


6.5 Startup 5-axis transformation TRAORI
Section 6 Generic configuration of machine kinematics
Notes
Rotary axis vectors
MD24570 $MC_TRAFO5_AXIS1_1 (direction 1st rotary axis) and
MD24572 $MC_TRAFO5_AXIS2_1 (direction 2nd rotary axis)
The vector of the rotary axis is defined by these machine data where ne is
1 or 2 for the first or second 5-axis transformation in the system respec-
tively.
The machine data specified above are fields with three values, which de-
scribe that axis direction as a vector (similar to the description of rotary
axes for orientable tool holder). The absolute value of the vectors is insig-
nificant; only the defined direction is relevant.

Example:
1. A-axis is the rotary axis (parallel to the X direction):
MD24570[0] $MC_TRAFO5_AXIS1_1 = 1.0 (direction first rotary axis)
MD24570[1] $MC_TRAFO5_AXIS1_1 = 0.0
MD24570[2] $MC_TRAFO5_AXIS1_1 = 0.0

2. C-axis is the rotary axis (parallel to the Z direction):


MD24572[0] $MC_TRAFO5_AXIS2_1= 0.0
MD24572[0] $MC_TRAFO5_AXIS2_1 = 0.0
MD24572[0] $MC_TRAFO5_AXIS2_1 = 1.0 (direction 2nd rotary axis)

M103 Page 112 840Dsl SINUMERIK Operate


6.6 Startup 5-axis transformation TRAORI
Generic configuration of machine kinematics Section 6
Notes
Setting the kinematics initial orientation

Basic tool orientation vector


MD24574 $MC_TRAFO5_BASE_ORIENT_1 (1. Channel transformation)
and $MC_TRAFO5_BASE_ORIENT_2 (2. Channel transformation)
This MD indicates the vector of the tool orientation in the general 5-axis
transformation (TRAFO_TYPE_ = 24, 40, 56) if this is not defined on the
transformation call (G17, G18, G19) or read from a programmed tool in the
program.

MD24574[0] $MC_TRAFO5_BASE_ORIENT_1 (tool orientation X)


MD24574[1] $MC_TRAFO5_BASE_ORIENT_1 (tool orientation Y)
MD24574[2] $MC_TRAFO5_BASE_ORIENT_1 (tool orientation Z)

Default setting of the orientation normal vector


The default setting of the orientation normal vector in the transformation
can also be defined as for the default setting of the orientation in one of
three ways:
Specification for the activation of the transformation
1. Vector components are transferred as parameters 8 to 10:
Parameter 1: Transformation No.
Parameter 2 - 4: Orientation vector,
Parameter 5 - 7: Rotary axis offsets

2. If no orientation normal vector has been specified and a tool is active,


the vector is taken from the tool data.

3. If no orientation normal vector has been specified and also no tool is


active, the vector defined in the following machine data is used.
MD24567 $MC_TRAFO6_BASE_ORIENT_NORMAL_1[0..2]
(tool normal vector)

The position of the orientation coordinate system of a standard tool de-


pends on the active plane G17, G18, G19 according to the following table:

Table 1- 5 Position of the orientation coordinat system


G17 G18 G19

Direction of orientation vector Z Y X

Direction of orientation normal vector Y X Z

840Dsl SINUMERIK Operate Page 113 M103


6.5 Startup 5-axis transformation TRAORI
Section 6 Generic configuration of machine kinematics
Notes

Orientation movements with axis limits

MD21180 $MC_ROT_AX_SWL_CHECK_MODE
(check software limits for orientation axes)
Calculate rotary axis position
If the final orientation in a 5-axis transformation is programmed indirectly in
an NC block by means of a Euler, RPY angle or direction vector, it is nec-
essary to calculate the rotary axis positions that produce the desired orien-
tation.
This calculation has no unique result and there are always at least two es-
sentially different solutions. In addition, any number of solutions can result
from a modification to the rotary axis positions by any multiple of 360 de-
grees.
The control system chooses the solution which represents the shortest dis-
tance from the current starting point, allowing for the programmed interpo-
lation type.

Determining permissible axis limits


The control system attempts to define another permissible solution if the
axis limits are violated, by approaching the desired axis position along the
shortest path. The second solution is then verified, and if this solution also
violates the axis limits, the axis positions for both solutions are modified by
multiples of 360 until a valid position is found.

The following conditions must be met in order to monitor the axis limits of a
rotary axis and modify the calculated end positions:
 A generic 5-axis transformation of type 24, 40 or 56 must be active.
 The axis must be referenced.
 The axis must not be a modulo rotary axis.
 The following machine data may not be equal to zero:
MD21180 $MC_ROT_AX_SWL_CHECK_MODE (check software limits
for orientation axes)

The following machine data specifies the conditions under which the rotary
axis positions may be modified:
MD21180 $MC_ROT_AX_SWL_CHECK_MODE

Value 0:
No modification permitted (default, equivalent to previous behavior).
Value 1:
Modification is only permitted if axis interpolation is active
(ORIAXES or ORIMKS).
Value 2:
Modification is always permitted, even if vector interpolation (large circle
interpolation, conical interpolation, etc.) was active originally.

M103 Page 114 840Dsl SINUMERIK Operate


6.6 Startup 5-axis transformation TRAORI
Generic configuration of machine kinematics Section 7
Notes
Example for the modification of rotary axis motion

The machine is a 5-axis machine of machine type 1 (two-axis swivel head


with CA kinematics transformation type 24).
The first rotary axis is a modulo axis parallel to Z (C axis); the second ro-
tary axis is parallel to Y (B axis) and has a traversing range from -5 de-
grees to +185 degrees.
To allow modification at any time, following machine data has the value 2:
MD21180 $MC_ROT_AX_SWL_CHECK_MODE
(check software limits for orientation axes)

N10 X0 Y0 Z0 B0 C0
N20 TRAORI( ) ; basic orientation 5-axis transformation
N30 B-1 C10 ; Rotary axis positions B-1 and C10
N40 A3=-1 C3=1 ORIWKS ; large circle interpolation in WCS
N50 M30

At the start of block N40 in the example program, the machine is posi-
tioned at rotary axis positions B-1 C10. The programmed end orientation
can be achieved with either of the axis positions B-45 C0 (1st solution) or
B45 C180 (2nd solution).
The first solution is selected initially, because it is nearest to the starting
orientation and, unlike the second solution, can be achieved using large
circle interpolation (ORIWKS). However, this position cannot be reached
because of the axis limits of the B axis.
The second solution is therefore used instead, i.e. the end position is B45
C180. The end orientation is achieved by axis interpolation. The pro-
grammed orientation path cannot be followed.

Additional important machine data

MD 30320 $MA_DISPLAY_MODULO: (Axis specific)


1: “Modulo 360 degrees” position display is active
In case of a positive direction of rotation, the control resets the position dis-
play internally to 0.0000 degrees after one full revolution of the specified
axis. The display range is always positive and lies between 0 and 359.999
degrees.
2: Absolute position display is active Rotary axes positions are displayed
as absolute positions (endless mode). E.g. position display +720 degrees
after two revolutions of the specified axis.
MD 30330 $MA_MODULO_RANGE: (Axis specific)
Defines the size of Modulo range (max. range of specified rot. Axis).
MD 30320 $MA_MODULO_RANGE_START: (Axis specific)
Defines the start position of the modulo range
Start at 0 degrees = modulo range 360 = 360 degree
Start at 180 degrees = modulo range 180 = 540 degree
Start at –180 degrees = modulo range –180 = 180 degree

840Dsl SINUMERIK Operate Page 115 M103


6.7 Startup 5-axis transformation TRAORI
Section 6 Configuration example 1 (Type 40)
Notes
Example 1: Configuration of 5-axis machine (Type 40)

Kinematic Swivel rotary table Type 40


X Y Z
Offsetvector I2 260.000 200.000 0.000
Rotary axis vector V1 -1.000 0.000 0.000
Offsetvector I3 0.000 0.020 20.400
Rotary axis vector V2 0.000 0.000 -1.000
Offsetvector I4 -260.000 -200.020 -20.400

Rotary axes Identifier


Rotary axis 1 A Mode
Angular range min. -10.500 130.000
Rotary axis 2 C Mode Modulo
Angular range max. 0.000 360.000

M103 Page 116 840Dsl SINUMERIK Operate


6.8 Startup 5-axis transformation TRAORI
Configuration example 1 (Type 40) Section 6
Notes
MD24100 $MC_TRAFO_TYPE_1 = 40

MD24110[0] $MC_TRAFO_AXES_IN_1 = 1
MD24110[1] $MC_TRAFO_AXES_IN_1 = 2
MD24110[2] $MC_TRAFO_AXES_IN_1 = 3
MD24110[3] $MC_TRAFO_AXES_IN_1 = 5
MD24110[3] $MC_TRAFO_AXES_IN_1 = 6

MD24120[0] $MC_TRAFO_GEOAX_ASSIGN_TAB_1 = 1
MD24120[1] $MC_TRAFO_GEOAX_ASSIGN_TAB_1 = 2
MD24120[2] $MC_TRAFO_GEOAX_ASSIGN_TAB_1 = 3

MD24130 $MC_TRAFO_INCLUDES_TOOL_1 = 1

MD24550[0] $MC_TRAFO5_BASE_TOOL_1 = 260


MD24550[1] $MC_TRAFO5_BASE_TOOL_1 = 200
MD24550[2] $MC_TRAFO5_BASE_TOOL_1 = 0

MD24560[0] $MC_TRAFO5_JOINT_OFFSET_1 = 0
MD24560[1] $MC_TRAFO5_JOINT_OFFSET_1 = 0.02
MD24560[2] $MC_TRAFO5_JOINT_OFFSET_1 = 20.4

MD24500[0] $MC_TRAFO5_PART_OFFSET_1 = -260


MD24500[1] $MC_TRAFO5_PART_OFFSET_1 = -200.02
MD24500[2] $MC_TRAFO5_PART_OFFSET_1 = -20.4

MD24570[0] $MC_TRAFO5_AXIS1_1 = 1.0


MD24570[1] $MC_TRAFO5_AXIS1_1 = 0.0
MD24570[2] $MC_TRAFO5_AXIS1_1 = 0.0

MD24572[0] $MC_TRAFO5_AXIS2_1 = 0.0


MD24572[1] $MC_TRAFO5_AXIS2_1 = 0.0
MD24572[2] $MC_TRAFO5_AXIS2_1 = 1.0

MD24574[0] $MC_TRAFO5_BASE_ORIENT_1 = 0
MD24574[0] $MC_TRAFO5_BASE_ORIENT_1 = 0
MD24574[2] $MC_TRAFO5_BASE_ORIENT_1 = 1

Additional important MD settings

MD21180 $MC_ROT_AX_SWL_CHECK_MODE = 1

MD 30320 $MA_DISPLAY_MODULO = 0 (AX5:A1)


MD 30320 $MA_DISPLAY_MODULO = 1 (AX6:C1)

MD 30330 $MA_MODULO_RANGE = 360 (AX6:C1)


MD 30320 $MA_MODULO_RANGE_START = 0 (AX6:C1)

840Dsl SINUMERIK Operate Page 117 M103


6.7 Startup 5-axis transformation TRAORI
Section 6 Parameterization of orientable tool holder data
Notes
Parameterization of orientable tool holder data

Application
Machine types for which the table or tool can be rotated, can either be op-
erated as true 5-axis machines or as conventional machines with ori-
entable tool holders. In both cases, machine kinematics is determined by
the same data, which, due to different parameters, previously had to be
entered twice - for tool holder via system variables and for transformations
via machine data. The new transformation type 72 can be used to specify
that these two machine types access identical data.

Transformation type 72
The following machine data can be used to define a generic 5-axis trans-
formation for transformation type 72 with kinematic data read from the data
for an orientable tool holder:
MD24100 $MC_TRAFO_TYPE_1 (definition of 1st transformation in
channel) or
MD24200 $MC_TRAFO_TYPE_2 (definition of 2nd transformation in chan-
nel)
From this number data is made available via machine data
MD24582 $MC_TRAFO5_TCARR_NO_1 (TCARR-Number for the 1st
5-axis transformation) or
MD24682 $MC_TRAFO5_TCARR_NO_2 (TCARR-Number for the 2nd
5-axis transformation).
The corresponding transformation type can then be derived from the con-
tent of kinematic type with parameter $TC_CARR23 (see following table).

Table: Machine types for generic 5-axis transformation

Machine type 1 2 3 4
swivel-/ Tool Workpiece Tool Orientable tool
rotatable: /workpiece holder TCARR
Kinematic T P M T,P,M
Type:
Transforma- 24 40 56 72 from
tions type: content of
$TC_CARR23

Activation

The most significant parameter values of an orientable toolholder for a


transformation can be activated in the part program with NEWCONFIG.
Alternatively, the machine data concerned for transformation type 72 can
be activated via the HMI user interface e.g with the „Swivel“ function in
JOG Mode.

M103 Page 118 840Dsl SINUMERIK Operate


6.8 Startup 5-axis transformation TRAORI
Parameterization of orientable tool holder data Section 6
Notes
Note
The transformation only takes place if the orientable toolholder concerned
is available and the value of $TC_CARR23 contains a valid entry for type
M, P or T kinematics in lower or upper case.

Transformation machine data for the first orientation transformation listed


in the tables below are equally valid for the second orientation transforma-
tion. All other machine data that may affect the transformation characteris-
tics and do not appear in the tables below, remain valid and effective:
MD24110/MD24210 $MC_TRAFO_AXES_IN_1/2
(axis assignment for transformation) or
MD24574/MD24674 $MC_TRAFO5_BASE_ORIENT_1/2
(basic tool orientation)
If in the tables below a second additive parameter appears in brackets for
the parameters of the orientable toolholder (e.g. $TC_CARR24 (+
$TC_TCARR64)), the sum of both values will only be effective if the fine
offset specified in setting data is active when the data are transferred from
the orientable toolholder.
SD42974 $SC_TOCARR_FINE_CORRECTION = TRUE
(fine offset TCARR on/off)

Assignment for all types of transformation

The assignments between the toolholder data for writing the linear offsets
and the corresponding machine data for kinematic transformations are de-
termined by the transformation type. The following assignment of all other
parameters is identical for all three possible types of transformation:

MD24100 $MC_TRAFO_TYPE_1 (definition of 24 $TC_CARR23 = T


transformation 1 in the channel)
40 P
56 M
MD24570 $MC_TRAFO5_AXIS1_1[0] (diirection 1st rotary axis) $TC_CARR7

MD24570 $MC_TRAFO5_AXIS1_1[1] $TC_CARR8

MD24570 $MC_TRAFO5_AXIS1_1[2] $TC_CARR9

MD24572 $MC_TRAFO5_AXIS1_1[0] (direction 2nd rotary axis) $TC_CARR10

MD24572 $MC_TRAFO5_AXIS1_1[1] $TC_CARR11

MD24572 $MC_TRAFO5_AXIS1_1[2] $TC_CARR12

MD24510 $MC_TRAFO5_ROT_AX_OFFSET_1[0] (Position $TC_CARR24


offset of rotary axes 1/2/3 for first 5-axis transformation) (+$TC_TCARR64)
MD24510 $MC_TRAFO5_ROT_AX_OFFSET_1[1] $TC_CARR25
(+$TC_TCARR65)
MD24520 $MC_TRAFO5_ROT_SIGN_IS_PLUS_1[0] (signe of TRUE*
rotary axes 1/2/3 for first 5-axis tarnsformation)
MD24520 $MC_TRAFO5_ROT_SIGN_IS_PLUS_1[1] TRUE*

840Dsl SINUMERIK Operate Page 119 M103


6.7 Startup 5-axis transformation TRAORI
Section 6 Parameterization of orientable tool holder data
Notes
*) MD24520/MD24620 $MC_TRAFO5_ROT_SIGN_IS_PLUS_1/2 are
redundant. They are used to invert the direction of rotation of the assigned
rotary axis.
However, this can also be achieved by inverting the direction of axis vector
$MC_TRAFO5_AXIS1/2_1/2. It is for this reason that there is no corre-
sponding parameter for the orientable toolholder.
For the purpose of absolute clarity, the following machine data
must be ignored:
MD24520/MD24620 TRAFO5_ROT_SIGN_IS_PLUS_1/2

Assignments for transformation type 24

Toolholder data assignments dependent on transformation type 24

Typ "T" (in accordance with MD24100 $MC_TRAFO_TYPE_1 = 24)


MD24500 $MC_TRAFO5_PART_OFFSET_1[0] $TC_CARR1
(Translation vector of 1st 5-axis transformation) (+$TC_TCARR41)
MD24500 $MC_TRAFO5_PART_OFFSET_1[1] $TC_CARR2
(+$TC_TCARR42)
MD24500 $MC_TRAFO5_PART_OFFSET_1[2] $TC_CARR3
(+$TC_TCARR43)
MD24560 $MC_TRAFO5_JOINT_OFFSET_1[0] $TC_CARR4
(Vektor of the kinematic offset of 1st 5-axis transformation) (+$TC_TCARR44)
MD24560 $MC_TRAFO5_JOINT_OFFSET_1[1] $TC_CARR5
(+$TC_TCARR45)
MD24560 $MC_TRAFO5_JOINT_OFFSET_1[2] $TC_CARR6
(+$TC_TCARR46)
MD24550 $MC_TRAFO5_BASE_TOOL_1[0] (Vector of base $TC_CARR15
tool of 1st 5-axis transformation) (+$TC_TCARR55)
MD24550 $MC_TRAFO5_BASE_TOOL_1[1] $TC_CARR16
(+$TC_TCARR56)
MD24550 $MC_TRAFO5_BASE_TOOL_1[2] $TC_CARR17
(+$TC_TCARR57)

Example of parameterization

The first 5-axis transformation is to obtain its data from machine data and
the second, in contrast, is to be parameterized using the data from the 3rd
orientable toolholder.
MD24100 $MC_TRAFO_TYPE_1 = 24 ; first 5-axis transformation
MD24200 $MC_TRAFO_TYPE_2 = 72 ; second 5-axis transformation
MD24682 $MC_TRAFO5_TCARR_NO_2 = 3 ; parameterize data of the
third orientable tool holder

M103 Page 120 840Dsl SINUMERIK Operate


6.8 Startup 5-axis transformation TRAORI
Configuration example 1 (Type 40) Section 6
Notes
Example 2: Configuration of a 5-axis machine (Type 72)
Press following soft-keys to enter machine data for setup of 5-Axis
transformation.

In this example the same machine (Swivel rotary table) as in example 1 is


set up in $MC_TRAFO_TYPE_2

To simplify the commissioning procedure you can select “TRAFO_TYP 72”


The following machine data meet the minimum requirement for setting up
5-axis transformation “TRAORI” with “TRAFO_TYPE 72”.

MC 24200 $MC_TRAFO_TYPE_2: (Machine type)


With Trafotyp 72 the same Toolcarrier parameters($TC_CARR...) as for
CYCLE800 are being used.

MD 24682 $MC_TRAFO5_TCARR_NO_2: (parameterized data for the


orientable tool holder TC_CARR parameters)
$MC_TRAFO5_TCARR_NO_2 = 1; parameterize data of the
first orientable tool holder

MC 24210[0] - [19] $MC_TRAFO_AXES_IN_2:


(Assignment of channel axes for the 2.transformation)
The input states which axis is mapped internally from the transformation to
the axis [n].

MC 24220[0] - [2] $MC_TRAFO_GEOAX_ASSIGN_TAB_2: (Assignment


of geometry axes to channel axes for the 2.Transformation)
This MD states the channel axes on which the axes of the Cartesian coor-
dinate system are mapped for the active transformation 2.

840Dsl SINUMERIK Operate Page 121 M103


6.9 Startup 5-axis transformation TRAORI
Section 6 Configuration example 2 (Type 72)
Notes

Activate the modified machine data with the “Set MD active (cf)” Softkey.

Note:

$MC_TRAFO_TYPE_2 = 72 refers to the TC_CARR parameters of offset


vectors and rotary axis vectors set in the swivel data record for CYLE800.
(refer to Module M102 “Section 4 Startup CYCLE800 Commissioning of
the kinematic chain”).
There for there is no need to define the rotary axes offset vectors and
directional vectors in the TRAFO machine data.

M103 Page 122 840Dsl SINUMERIK Operate


6.10 Startup 5-axis transformation TRAORI
Configuration example 2 (Type 72) Section 6
Notes

TCARR parameters for a “AC” Swivel rotary table type “P”

TCARR=0
$TC_CARR1[1]=0 ;Offset vector I1 (X)
$TC_CARR2[1]=0 ;Offset vector I1 (Y)
$TC_CARR3[1]=0 ;Offset vector I1 (Z)
$TC_CARR4[1]=260 ;Offset vector I2 (X)
$TC_CARR5[1]=200 ;Offset vector I2 (Y)
$TC_CARR6[1]=20.4 ;Offset vector I2 (Z)
$TC_CARR7[1]=-1 ;Rotary axis vector V1 (X)
$TC_CARR8[1]=0 ;Rotary axis vector V1 (Y)
$TC_CARR9[1]=0 ;Rotary axis vector V1 (Z)
$TC_CARR10[1]=0 ;Rotary axis vector V2 (X)
$TC_CARR11[1]=0 ;Rotary axis vector V2 (Y)
$TC_CARR12[1]=-1 ;Rotary axis vector V2 (Z)
$TC_CARR13[1]=0
$TC_CARR14[1]=0
$TC_CARR15[1]=0 ;Offset vector I3 (X)
$TC_CARR16[1]=0.02 ;Offset vector I3 (Y)
$TC_CARR17[1]=0 ;Offset vector I3 (Z)
$TC_CARR18[1]=-260 ;Offset vector I4 (X)
$TC_CARR19[1]=-200.02 ;Offset vector I4 (Y)
$TC_CARR20[1]=-20.4 ;Offset vector I4 (Z)
$TC_CARR23[1]="P" ;Kinematic type
$TC_CARR24[1]=0
$TC_CARR25[1]=0
$TC_CARR26[1]=0
$TC_CARR27[1]=0
$TC_CARR28[1]=0
$TC_CARR29[1]=0
$TC_CARR30[1]=-10.5 ; 1.Rotary axis min. range
$TC_CARR31[1]=0 ; 2.Rotary axis min. range
$TC_CARR32[1]=130 ; 1.Rotary axis max. range
$TC_CARR33[1]=360 ; 2.Rotary axis max. range
$TC_CARR34[1]="TABLE" ;Name of swivel data record
$TC_CARR35[1]="A1" ;Rotary axis 1 identifier
$TC_CARR36[1]="C1" ;Rotary axis 2 identifier
$TC_CARR37[1]=415013003 ;Display variants swivel mode
$TC_CARR38[1]=100 ;Retract position X
$TC_CARR39[1]=200 ;Retract position Y
$TC_CARR40[1]=410 ;Retract position Z
TCARR=1
M30

840Dsl SINUMERIK Operate Page 123 M103


M103 Page 124 840Dsl SINUMERIK Operate
M104 Advanced Surface (CYCLE832)

Brief description
Objective of the Module:

This module explains the use and application of the “high-speed setting” CYCLE832 in conjunction
with the option „Advanced Surface“ and all asociated comands.

Description of the Module:

This Module shows various applications of the “high-speed setting” CYCLE832 on practical exam-
ples, such as mould & die machining of free form surfaces. A detailed explanation CYCLE832 with all
it„s parameter settings, the option “Advanced Surface” with all associated path actions and special
commands for high speed machining applications, showes the use and function of the cycle.
840D sl Sinumerik
Operate V2.6

Contents :

Introduction

High-speed settings CYCLE832

Advanced surface

Manufacturer cycle CUST_832

G-code commands associated with “Advanced Surface

This document was produced for training purposes.


840Dsl SINUMERIK Operate Page 1 SIEMENS assumes no responsibility for it‟s contents M104
M104

M104 Page 2 840Dsl SINUMERIK Operate


M104
Cycle832: Description
Cycle832:
This Module shows various applications of the START
“high-speed setting” CYCLE832 on practical ex-
amples, such as mould & die machining of free
form surfaces. A detailed explanation CYCLE832
with all it„s parameter settings, the option
“Advanced Surface” with all associated path ac- Introduction
tions and special commands for high speed ma-
chining applications, showes the use and function
of the cycle.

High-speed
settings
CYCLE832

Advanced surface

Manufacturer cycle
CUST_832

G-code commands
associated with
“Advanced Surface”

Cycle832:
END

Notes :

840Dsl SINUMERIK Operate Page 3 M104


M104 Page 4 840Dsl SINUMERIK Operate
1.1 Introduction
Process chain CAD - CAM - CNC Section 1
Notes
Introduction
Process chain CAD - CAM - CNC

CAD -> CAM


Many CNC programs for freeform surface machining come from CAM sys-
tems. The CAM system obtains the workpiece geometry from a CAD sys-
tem.

CAM -> CNC


The CAD -> CAM -> (post-processor) -> CNC process chain is particu-
larly important in the machining of freeform surfaces.

CAD systems construct higher-


order surfaces (1) (Free form sur-
faces).

For example, in order to be able to


mill an entire surface, or for collision
checking, the CAM system gener-
ally converts the CAD surfaces into
a polyhedron.

In other words, the smooth design


surface is approximated by numer-
ous tiny planes (2).

This inevitably produces some


minor deviations from the original
free form surface.

The CAM programmer overlays this


polyhedron with tool paths, which
the postprocessor uses to create
CNC blocks within the specified
error tolerances. These usually
comprise numerous short straight
lines, G1 X Y Z (3).

That is why the machining result is


a polyhedron, i.e. the small planes
can be visibly mapped on the sur-
face. This can mean that rework is
necessary, however, which is
undesirable.

840Dsl SINUMERIK Operate Page 5 M104


1.2 Theory
Section 1 Precision, speed, surface quality
Notes
Precision, speed, surface quality

The control offers various functions which can help to avoid rework.

Programmable corner smoothing

One of these is defined corner


rounding at block boundaries. This
involves inserting geometrical
elements (4) at the corners, the tol-
erance of which can be altered.

Linear interpolation at the block


transitions leads to acceleration
jumps in the machine axes, which in
turn can cause resonance in the
machine elements and can ulti-
mately be detected on the work-
piece surface as a beveled pattern
(1) or as vibration (2).

Compressor function
4 CAD/CAM-Systems generate usu-
ally linear blocks, in respect of the
parameterized accuracy. This can
cause extremely high amount of
data, when working with complex
contours (free form surfaces) and
short path sections. These path
sections (3) limit the machining
velocity.
According to the specified tolerance
band (1) the compressor combines
a sequence of G1 commands (2)
and compresses them into a spline
(4), which is directly executable by
the control system.
This results in the following:

 Reduction of part program blocks that define the workpiece (smaller


programs).
 Smooth block to block transitions that make a smooth surface (machine
resonance is avoided.
 Higher path velocity and reduction of machine load.

M104 Page 6 840Dsl SINUMERIK Operate


2.1 CYCLE832 „High-speed settings“
General explanation Section 2
Notes
CYCLE832 “High-speed settings”
General explanation
With CYCLE832 you can influence the sequence of 3D programs, in order
to provide technological support when machining freeform surfaces in the
3-5 axis high speed cutting sector. CYCLE832 combines the essential
programming commands and G codes that are required for HSC.
When executing CAM programs in the HSC area, the control must be ca-
pable to pre-calculate a feed rate profile for high feed rates and short path
sections (NC blocks). A good surface quality with high precision in the μm
range at high machining feedrates >10 m/min is expected. By applying dif-
ferent machining strategies (roughing, semifinishing, finishing) you can use
CYCLE832 to fine tune the program. It is recommended to call CYCLE832
in the main program before calling the geometry subprogram.
In CYCLE832 „High-Speed-Settings“ you can select between 4 techno-
logical machining types from the technology „G group 59“ and activate the
appropriate dynamic parameters for the following machining types:

Machining type Technologie G-group 59 Field index


Deselection DYNNORM (Standard-Settings) 0
Roughing DYNROUGH (HSC-Settings) 3
Semifinishing DYNSEMIFINISH (HSC-Settings) 2
Finishing DYNFINISH (HSC-Settings) 1

Dynamic values and G-commands can be customized and depend upon


machine data settings (machine manufacturer !)
The 4 machining types in CYCLE832 are in direct relation to accuracy and
velocity of the path contour (see picture below).

The operater can emphesis bet-


ween accuracy, path velocity and
surface quality, through input of tole-
rance values.
 When roughing, the emphasis is
on velocity due to the smoothing
of the contour.

 When finishing, the emphasis is


on accuracy and surface quality.

In both cases, specifying a tolerance ensures that the machining of a free


form surfaces is observed in order to achieve the desired surface quality
and precision. Generally, when roughing, the tolerance is selected higher
than when finishing.

840Dsl SINUMERIK Operate Page 7 M104


2.2 CYCLE832 „High-speed settings“
Section 2 Programming procedure
Notes
Programming procedure

With the function High-speed settings (CYCLE832) machine data for ma-
chining of free form surfaces are being preset for best possible machining
results. The call of CYCLE832 includes three parameters:

 Tolerance: Enter the machining tolerance (smoothing) for the selected


machining type (technology group).
 Machining: Select the machining parameters for the technology
„roughing“, „semifinishing“, „finishing“ or „deselect“ with the blue select
key on the keyboard.
 Version reorganization: (always 1 not visible in cycle mask)

When selecting the machining type the following animations apear accor-
ding to the selection made.
Semifinishing
Roughing
Finishing

The input parameters in CYCLE832 are taken over into the program as
follows:
CYCLE832(0.01,3,1) ; HSC Settings roughing

M104 Page 8 840Dsl SINUMERIK Operate


3.1 Advanced Surface
Fundamentals Section 3
Notes
Advanced Surface
Fundamentals

Function
Advanced Surface (AS) is a function for machining of free form surfaces in
the area of tool and mold making.
Advanced Surface is an option (Order No. 6FC5800-0AS07-0YB0).
The machine and setting data, which are influenced by this functionality as
well as their contents, are subsequently listed. The values are recom-
mended settings. Dynamic G groups are used for the Advanced Surface
option.

Licensing
The High Speed Setting cycle (CYCLE832) works in conjunction with the
"Advanced Surface" functions and you require the software option in order
to use this function (see license manager below).

Preconditions, G code
 Preceding machine data is set
 The machine axes have been optimized
 The dynamic G groups have been set-up and are parameterizes for the
following machining types:
- Roughing (DYNROUGH
- Pre-finishing (DYNSEMIFIN)
- Finishing (DYNFINISH)

The following classification of the dynamic G code group 59 is recom-


mended:

DYNNORM 2.5D machining without AS


DYNPOS Positioning mode (ATC, taping, drilling) without AS
DYNROUGH 3D machining with AS
DYNSEMIFIN 3D machining with AS
DYNFINISH 3D machining with AS

ATC* = Automatic tool change

840Dsl SINUMERIK Operate Page 9 M104


3.2 Advanced Surface
Section 3 Fundamentals
Notes
Important G-comands in conjunction with Advanced Surface
The following G-code commands are preset in the CUST_832.SPF and
activated on selection of the technology groups CYCLE832 in conjunction
with the option “Advanced Surface” in a optimum way:

 COMPCAD is used to combine part programs with short linear blocks


(G1), with the associated tolerance, using polynomials. The path com-
pression technique has been developed so that the surface character,
which the milling paths form, is retained. (also see section 1.1-1.3)
 G645 (G code group 10) is used to switch into continuous path mode
with Look Ahead and is used to insert smoothing elements in existing
contour elements so that acceleration steps (jumps) do not occur (also
see section 3.5-3.11)
 FIFOCTRL (G code group 4) is used to switch in the automatic pre-
processing memory control. The feed is adapted so that the pre-
processing memory does not become empty (also section 3.32).
 FFWON (G code group 24) is used to switch in the parameterized pre-
control (speed or acceleration pre-control). FFWON can only be used if
pre-control is parameterized. This must be ensured by the machine
manufacturer (also see section 3.16-3.17).

The following commands are important for 5-axis machining:

 TRAORI enables the defined transformation and must be programmed


alone in the block.
 UPATH (G code group 45) is used to switch the path parameters for
5-axis interpolation.
 ORIAXES (G code group 51) linearly interpolates the orientation axes in
the block up to the end block.
 ORIWKS (G code group 25) defines the workpiece coordinate system
for orientation interpolation.

Note:
DYNNORM is the initial setting of the G code group (default).
For Advanced Surface, the precondition is that jerk limited velocity control
is active. Jerk limited velocity control is selected using the G code “SOFT”

M104 Page 10 840Dsl SINUMERIK Operate


3.3 Advanced Surface
Fundamentals Section 3
Notes
Activating the G code
Activation can be realized either using "Programming in the part program"
or when commissioning machines, by re-configuring the RESET response
(see $MC_GCODE_RESET_VALUES).

Reset behavior
The programmed values are valid until newly programmed or replaced by
specifying a negative value. The are also deleted at program end or with
channel reset, BAG-reset, NCK-reset (warm-start) and power on (cold-
start). After deletion the values in the machine– and setting data become
active again. New values can be programmed in any NC-block and acti-
vated.

Deselect machining type


If CYCLE832 is deselected the G-groups during program run are pro-
grammed to the settings in the machine data that are agreed upon in
MD20150[ ] $MC_GCODE_RESET_VALUES.

Example for reset values:

MD Name Value Description


MD20150[9] $MC_GCODE_RESET_VALUES 1 Activates G60
MD20150[11] $MC_GCODE_RESET_VALUES 1 Activates G601
MD20150[23] $MC_GCODE_RESET_VALUES 1 Activates FFWOF
MD20150[29] $MC_GCODE_RESET_VALUES 1 Activates COMPOF
MD20150[59] $MC_GCODE_RESET_VALUES 1 Activates DYNNORM

Definition on G codes which become active on run and reset or part pro-
gram end depend on:
 MD20152 $MC_GCODE_RESET_MODE at part program end and
 MD20112 $MC_START_MODE_MASK at part program start.

If CYCLE832 is deselected and their is no tolerance programmed, then


settings that are agreed on in the following channel specific setting data is
being used:

MD Name Description
SD55445 $SCS_MILL_TOL_VALUE_NORM Tolerance value for
Deselection

840Dsl SINUMERIK Operate Page 11 M104


3.4 Advanced Surface
Section 3 Programming examples
Notes
Programming examples

;***Without CYCLE832
N10 T1 D1 ;Tool call
N11 M6 ;Tool change
N12 SOFT ;Jerk limitation
N13 FFWON ;Speed or acceleration pre-control
N14 FIFOCTRL ;Pre-processing memory control
N15 G645 ;Continuous path mode with Look Ahead
N16 COMPCAD ;Compressor on
N17 DYNROUGH ;Technology group for roughing
N18 G54 G710 ;Work offset, metric program
N19 M3 S10000 ;Spindle on
N20 EXTCALL"CAM_ROUGH" ;External subprogram call CAM_ROUGH

;***5-AXIS PROGRAMM***
N21 T2 D1 ;Tool call
N22 M6 ;Tool change
N23 G54 G710 ;Work offset, metric program
N24 M3 S12000 ;Spindle on
N25 DYNFINISH ;Technology group for finishing
N26 TRAORI ;Activate 5-axis transformation
N27 ORIAXES ;Orientation interpolation
N28 ORIWKS ;Orientation reference WKS
N29 EXTCALL"CAM_FINISH" ;External subprogram call CAM_FINISH
N30 M30 ;End of program

;***With CYCLE832***
N10 T1 D1 ;Tool call
N11 M6 ;Tool change
N12 G54 G710 ;Work offset, metric program
N13 M3 S12000 ;Spindle on
N14 CYCLE832(0.05,3,1) ;Tolerance value 0.05 mm, “roughing”
N15 EXTCALL"CAM_ROUGH" ;External subprogram call CAM_ROUGH

;***5-AXIS PROGRAMM***
N16 T2 D1 ;Tool call
N17 M6 ;Tool change
N18 G54 G710 ;Work offset, metric program
N19 M3 S12000 ;Spindle on
N20 TRAORI ;Activate 5-axis transformation
N21 CYCLE832(0.005,1,1) ;Tolerance value 0.005 mm, “finishing”
N22 EXTCALL"CAM_FINISH" ;External subprogram call CAM_FINISH
N22 M30 ;End of program

Note:
The dynamic settings and values are automatically activated, when calling
the G-code command of the appropriate technology group (DYNNORM,
DYNPOS, DYNROUGH, DYNSEMIFIN, DYNFINISH).
No program stop occurs on call of the technology parameter.
The subprograms CAM_ROUGH.SPF, CAM_FINISH.SPF contain the
workpiece geometry and feed rates. Because of their size the subpro-
grams are called externally.

M104 Page 12 840Dsl SINUMERIK Operate


3.5 Advanced Surface
Machine data of technology G-group 59 Section 3
Notes
Machine data of technology G-group 59

The type of machining operations of the technology G-Group 59 are


assigned to CYCLE832 by means CUST_832.SPF:

Machining type Technology G-Group 59 Field index


Deselect DYNNORM 0
Positioning DYNPOS 1
Roughing DYNROUGH 2
Semi-finishing DYNSEMIFIN 3
Finishing DYNFINISH 4

With the technology G-Groups you can adopt dynamic parameters to the
appropriate machining operations. Channel specific and axis specific ma-
chine data of technology G-group 59 are activated with the appropriate
Field index:

MD Name Description
MD20600 $MC_MAX_PATH_JERK[0..4] Path oriented
maximum jerk

MD20602 $MC_CURV_EFFECT_ON_PATH_ACCEL Influence of path


[0..4] curvature on path
dynamic.

MD20603 $MC_CURV_EFFECT_ON_PATH_JERK[0..4] Influence of path cur-


vature on path jerk.

MD32300 $MA_MAX_AX_ACCEL[0..4] Maximum axes


acceleration

MD32310 $MA_MAX_ACCEL_OVL_FACTOR[0..4] Overload factor for


axial velocity jumps.

MD32431 $MA_ MAX_AX_JERK[0..4] Maximum axial jerk


for path motion.

MD32432 $MA_PATH_TRANS_JERK_LIM[0..4] Maximum axial jerk at


the block transition in
continuous-path
mode.
MD32433 $MA_SOFT_ACCEL_FACTOR[0..4] Scaling of accelera-
tion limitation for
SOFT

Note:
The initial recommanded values are only to be set up by the machine ma-
nufacturer (danger of machine damage).
During the optimization of the machine axes, the values (note array index)
of the specified machine data must be set correctly.

840Dsl SINUMERIK Operate Page 13 M104


3.6 Advanced Surface
Section 3 Configuration of prerequisite machine data
Notes
Configuration of prerequisite machine data
The subsequent list of machine data are prerequisite for the function of
CYCLE832 for a 3-5 axis machining and should be pre-assigned as
follows:

MD Name Description Rec. Comment


value
10200 $MN_INT_INCR_PER_MM Internal calculation 100000 100000 for
resolution, linear export ver-
axis sion
10210 $MN_INT_INCR_PER_DEG Internal calculation 100000 100000 for
resolution, rotary export ver-
axis sion
18360 $MN_MM_EXT_PROG_ Maximum reload 500 Against
BUFFER_SIZE memory when exe- jamming
cuting from external

18362 $MN_MM_EXT_PROG_NUM Number of ext. pro- 2


grams that can be
simultaneously
processed

20150 $MC_GCODE_RESET_VALU Initial setting G 3 FIFOCTRL


E[3] group 3

20150 $MC_GCODE_RESET_VALU Initial setting G 2 SOFT


E[19] group 19

20150 $MC_GCODE_RESET_VALU Initial setting G 2 UPATH (for


E[44] group 44 5-axis ma-
chining)
20150 $MC_GCODE_RESET_VALU Initial setting G 2 ORIAXES
E[50] group 50 (for 5-axis
machining)
20170 $MC_COPRESS_BLOCK_ Max. length of 20
PATH_ LIMIT POLY generated by
the compressor
20172 $MC_COPRESS_VELO_TOL Max. deviation of 1000 Default
the path feed for
COMPCAD
20443 $MC_LOOKAH_FFORM[0-1] Activates the ex- 0 Default
tended Look Ahead
in the particular
technology group
(DYNORM, DY-
POS)
Activates the ex- 1 Refer to
tended Look Ahead Daimler
in the particular machining
technology group times
(DYNROUGH,
DYNSEMIFIN,
DYNFINISH)

M104 Page 14 840Dsl SINUMERIK Operate


3.7 Advanced Surface
Configuration of prerequisite machine data Section 3
Notes
MD Name Description Rec. Comment
value
20482 $MC_COMPRESSOR_MODE Behavior of the 300
compressor toler-
ance

20490 $MC_IGNORE_OVL_FACTOR_ Control of G642 1


FOR_ADIS

20560 $MC_G0_TOLERANCE_ Factor for tolerance 3


FACTOR for COMPCAD,
G645, OST,
ORISON
20600 $MC_MAX_PATH_JERK[0-4] Path jerk 10000 Should not
be effective

20602 $MC_CURV_EFFECT_ON_ Ratio, translator to 0 Should not


PATH_ACCEL[0-1] centripetal accel- be effective
eration

20602 $MC_CURV_EFFECT_ON_ Ratio, translator to 0.65 Must be


PATH_ACCEL[2] centripetal accel- effective so
eration for that for ac-
DYNROUGH tive curva-
ture
smoothing,
the jerk is
not quite so
significantly
exceeded!

20602 $MC_CURV_EFFECT_ON_ Ratio, translator to 0.6 Must be


PATH_ACCEL[3] centripetal accel- effective so
eration for that for ac-
DYNSEMIFIN tive curva-
ture
smoothing,
the jerk is
not quite so
significantly
exceeded!

20602 $MC_CURV_EFFECT_ON_ Ratio, translator to 0.5 Limit rota-


PATH_ACCEL[4] centripetal accel- tional accel-
eration for eration es-
DYNFINISH pecially for
“large” ma-
chines!

20606 $MC_PREPDYN_SMOOTHING Active curvature 0 Default


_ON[0-1] smoothing

20606 $MC_PREPDYN_SMOOTHING Active curvature 1


_ON[2-4] smoothing

21104 $MC_ORI_IPO_WITH_G_ G code for orienta- 1


CODE tion interpolation

840Dsl SINUMERIK Operate Page 15 M104


3.8 Advanced Surface
Section 3 Configuration of machine data
Notes
MD Name Description Rec. Comment
value
28060 $MC_MM_IPO_BUFFER_SIZE Memory interpolator 150
for number of G1
blocks

28070 $MC_MM_NUM_BLOCKS_IN_ Memory preparation 80


PREP (preprocessing)
28520 $MC_MM_MAX_AXISPOLY_ Maximum number 5
PER_BLOCK of axis polynomi-
nals per block

28530 $MC_MM_PATH_VELO_SEGM Number of memory 5


ENTS elements for limiting
the path velocity
28533 $MC_MM_LOOKAH_FFORM_ Memory for ex- 18
UNITS tended LookAhead

28540 $MC_MM_ARCLENGTH_SEGM Number of memory 10


ENTS elements to display
the arc length func-
tion

28610 $MC_MM_PREPDYN_BLOCKS Memory curvature 10


smoothing

29000 $OC_LOOKAH_NUM_CHECKE Number of Look 150


D_BLOCKS Ahead blocks (this
must be the same
as N 28060)
42470 $SC_CRIT_SPLINE_ANGLE COMP criteria for 36 Default
target point analysis
(should be>30deg)
42471 $SC_MIN_CURV_RADIUS Factor for compres- 1
sor tolerance
(should be 0.3-3)
42500 $SC_IS_MAX_PATH_ACCEL Limits the path ac- 10000
celeration via SD

42502 $SC_IS_SD_MAX_PATH_ACCE Activates the path 0


L acceleration via SD

42510 $SC_SD_MAX_PATH_JERK Limits the path jerk 10000


via SD

42512 $SC_IS_SD_MAX_PATH_JERK Activates the path 0


jerk via SD

M104 Page 16 840Dsl SINUMERIK Operate


4.1 Manufacturer cycle CUST_832.SPF
General explanation Section 4
Notes
Manufacturer cycle CUST_832.SPF
General explanation
If the machine manufacturer requires additional responses from CYCLE
832 beyond those, which can be achieved by customizing the technology,
the settings (G-commands) in CYCLE832.SPF can be modified in the
manufacturer cycle CUST_832. Proceed as follows:
1. Copy cycle CUST_832.SPF from
directory /NC-data/Cycles/Standard cycles.
2. Past the cycle CUST_832.SPF in the directory
/NC-data/Cycles/Manufacturer cycles.
3. Open the cycle

Following commands are programmed in CUST_832.SPF:


SOFT
COMPCAD
G645
FIFOCTRL
UPATH
;FFWON (Machine dependent)
;OST (function available with V2.7)
;ORISON (function available with V2.7)
DYNNORM, DYNFINISH, DYNSEMIFIN, DYNROUGH
(depending on machining type)

Note:
A detailed explanation about settings of all G-Code comands in conjuncti-
on with the option Advanced Surface can be found in Section 7
„Importang G-code commands for „Advanced Surface“ .

840Dsl SINUMERIK Operate Page 17 M104


4.2 Manufacturer cycle CUST_832.SPF
Section 4 Structure of CYCLE832 and CUST_832
Notes
Following markers are prepared in CUST_832.SPF:
_M_INIT:
_M_NORM:
_M_FINISH:
_M_SEMIFINISH:
_M_ROUGH:

Explanation to FGREF[ ..]


(See page 50 Section 7 “Path feedrate factor for rotary axes orientation
with FGREF“)

Structure of CYCLE832 and CUST_832

With the input of the Tolerance value “_TOL” and the selection of the ma-
chining type “_TOLM” (roughing, semifinishing, finishing, deselect) in the
CYCLE832 input mask, there is a jump executed into cycle
CUST_832.SPF which activates the resulting technology group (dynrough,
dynsemifin, dynfinish, dynnorm).

CYCLE832.SPF CUST_832.SPF

CYCLE832

Eingabe parameter
_TOL
_TOLM

_M_INIT= Init CUST_832

_M_NORM = Deselect CYCLE832 or


_M_FINISH = Application finishing or
CYCLE832 _M_SEMIFIN = Application Semifinish or
_M_ROUGH = Application Roughing

End of
CYCLE832

M104 Page 18 840Dsl SINUMERIK Operate


4.3 Manufacturer cycle CUST_832.SPF
Structure of CYCLE832 and CUST_832 Section 4
Notes
Printout Manufacturer cycle CUST_832.SPF

PROC CUST_832(INT _MCASE,VAR REAL _FACTOR,VAR REAL


_FGREF) SBLOF DISPLOF
;VERSION: 02.06.53.00 ;DATE: 2010-06-22
;CHANGE : 02.06.47.00 ;DATE: 2009-10-22
;customer cycle to cycle High Speed Settings (CYCLE832)
; The user can modify marks _M_INIT, and _M_NORM to _M_ROUGH
; _M_INIT = Init CYCLE832
; _M_NORM = Deselect CYCLE832
; _M_FINISH = Machining Finish
; _M_SEMIFINISH = Machining Semifinish
; _M_ROUGH = Machining Rough
; _FACTOR for orientation axes see setting data from SD 55441 to 55443
N83201 CASE _MCASE OF 0 GOTOF _M0 1 GOTOF _M1 2 GOTOF _M2
3 GOTOF _M3 4 GOTOF _M4 10 GOTOF _M_NORM 11 GOTOF
_M_FINISH 12 GOTOF _M_SEMIFINISH 13 GOTOF _M_ROUGH 14 GO-
TOF _M_INIT DEFAULT GOTOF _MEND
LOOP
MSG("CUST_832: The parameter _: "<<_MCASE<<" is missing. Change
line N83201 above")
M0
STOPRE
ENDLOOP
;
_M_INIT:
_FGREF=10
GOTOF _MEND
;
_M_NORM:
GOTOF _MEND
;
_M_FINISH:
SOFT
COMPCAD
G645
FIFOCTRL
UPATH
;FFWON
;ORISON
;OST
DYNFINISH
GOTOF _MEND
;
_M_SEMIFINISH:
SOFT
COMPCAD
G645
FIFOCTRL
UPATH
;FFWON
;ORISON
;OST
DYNSEMIFIN
GOTOF _MEND
;

840Dsl SINUMERIK Operate Page 19 M104


4.4 Manufacturer cycle CUST_832.SPF
Section 4 Structure of CYCLE832 and CUST_832
Notes
_M_ROUGH:
SOFT
COMPCAD
G645
FIFOCTRL
UPATH
;FFWON
;ORISON
;OST
DYNROUGH
GOTOF _MEND
;
;------ compatible with CYC_832T and Advanced Surface
_M4:
;Parameter _FACTOR see Setting Data 55441
$SCS_MILL_TOL_FACTOR_ROUGH and following
GOTOF _MEND
;
_M0:
DYNNORM
GOTOF _MEND
;
_M1:
SOFT
;COMPCAD
;G645
;FIFOCTRL
;UPATH
;FFWON
;ORISON
;OST
DYNFINISH
GOTOF _MEND
;
_M2:
SOFT
;COMPCAD
;G645
;FIFOCTRL
;UPATH
;FFWON
;ORISON
;OST
DYNSEMIFIN
GOTOF _MEND
;
_M3:
SOFT
;COMPCAD
;G645
;FIFOCTRL
;UPATH
;FFWON
;ORISON
;OST
DYNROUGH
GOTOF _MEND
;
_MEND:
RET ;M17

M104 Page 20 840Dsl SINUMERIK Operate


4.5 Manufacturer cycle CUST_832.SPF
Customization example Section 4
Notes
Customization example

The machine manufacturer wants to perform the following customization:


1. The rotary axis tolerance is to be 12 times higher than the tolerances
of the linear axes.
2. In the "Finishing", "Rough-finishing" and "Roughing" machining
modes, the path jerk (MD $MC_MAX_PATH_JERK) is defined as
value 15 and the axis jerk (MD $MA_MAX_AX_JERK[AX]) as 150.
3. On de-selection of CYCLE832, the changed machine data must be
reset to the default settings (1000.15).

The G-groups (G-group 59) technology is used. The following


machine data were set up by the machine manufacturer for this
purpose:
MD20600: MAX_PATH_JERK[0]=1000 Deselection DYNNORM
MD20600: MAX_PATH_JERK[2]=15 Roughing DYNROUG
MD20600: MAX_PATH_JERK[3]=15 Rough-Finishing DYNSEMIFIN
MD20600: MAX_PATH_JERK[4]=15 Finishing DYNFINISH
MD32431: MAX_AX_JERK[0,n]=15 n=AX1 .. AX5
MD32431: MAX_AX_JERK[2,n]=150
MD32431: MAX_AX_JERK[3,n]=150
MD32431: MAX_AX_JERK[4,n]=150

The technology-dependent changeover occurs in CUST_832

%_N_CUST_832_SPF
;$PATH=/_N_CST_DIR
PROC CUST_832(INT _MCASE,VAR REAL _FACTOR,VAR REAL
_FGREF) SBLOF DISPLOF

_M_INIT
_FGREF=10
_FACTOR=12
IF NOT($MN_SCALING_SYSTEM_IS_METRIC)
_FACTOR=_FACTOR*$MN_SCALING_VALUE_INCH
ENDIF
GOTOF _MEND

840Dsl SINUMERIK Operate Page 21 M104


5.1 G-code commands associated with „Advanced Surface“
Section 5 Compressor functions
Notes
G-commands associated with “Advanced surface”
Compressor functions

COMPON, COMPCURV
The compressor functions COMPON and COMPCURV generate one poly-
nomial block from up to 10 consecutive linear blocks. The polynomial
blocks of the compressor functions have the following properties:
 COMPON: Continuous velocity block transitions.
 COMPCURV: Continuous velocity and acceleration block transitions

COMPCAD (is called in CUST_800.SPF)


The compressor functions COMPCAD can generate one polynomial block
from theoretically as many linear blocks as required. The polynomial
blocks have constant velocity and acceleration at the block transitions.
Corners that are desirable are identified as such and taken into account.

The maximum tolerable deviation of the calculated path to the pro-


grammed points can be specified using machine data for all compressor
functions. Different than for COMPON and COMPCURV, for COMPCAD,
the specified tolerances are not utilized in different directions in neighbor-
ing paths. In fact, COMPCAD attempts to achieve - under similar condi-
tions - also similar deviations from the programmed points.

The common objective of compressor functions is to optimize the surface


quality and machining speed by achieving continuous block transitions and
increasing the path length for each block.

COMPCAD is very processor and memory-intensive. It is recommended


that COMCAD is only used there where surface improvements were not
successful using measures in the CAD/CAM program.

NC-commands

COMPON Compressor on:


Continuous velocity block transitions.
Approximation by polynomial, 5th degree.
G1 blocks are approximated by a polynomial.
The block transitions are jerk-free.
COMPCURV Compressor on:
Continuous velocity and acceleration block transitions
Approximation by polynomial, 5th degree.
G1 blocks are approximated by a polynomial.
The block transitions are jerk-free.
Preferably for circumferential milling
COMPCAD Compressor on:
COMPCAD smoothes the point profile before approxima-
tion (B spline) and at high path speed offers maximum pre-
cision with constant-acceleration transitions
(compression rate unlimited, but max. path length 5 mm)
Recommended for the milling of freeform surfaces
COMPOF Compressor off

M104 Page 22 840Dsl SINUMERIK Operate


5.2 G-code commands associated with „Advanced Surface“
Compressor functions Section 5
Notes
Prerequisites for use
 The compressor functions COMPON, COMPCURV and COMPCAD
compress straight blocks of the form: N... G01 X... Y... Z... F…
 The COMPCAD compressor function also compresses all types of cir-
cular blocks of the form: N... G02/G03 X... Y... I... J... F...
 When orientation transformation (TRAORI) is active, and under certain
preconditions, the compressor functions COMPON, COMPCURV and
COMPCAD can also compress motion blocks for tool orientation and
tool rotation.
 The position data in the blocks to be compressed can be realized as
required, e.g. X100, X=AC(100), X=R1*(R2+R3)
 The compression operation is then interrupted by every other com-
mand, e.g. auxiliary function output, in and between the blocks to be
compressed.

Programming
Compressor functions are activated using the modal G-code commands
COMPON, COMPCURV or COMPCAD. When the compressor function is
enabled, to further improve the surface quality, the functions G645
(smoothing function) and SOFT (jerk limiting) can be used.
The commands must be written together at the beginning of the program.
The compressor functions are deactivated using the COMPOF command.

For programming of the compressor without CYCLE832 you should use


the following commands:

COMPCAD (activated in CYCLE832 DYNROUGH, DYNSEMI, DYNFIN)


COMPCURV (must be programmed separately)
COMPOF (activated in CYCLE832 DYNNORM)

Example:
G00 X30 Y6 Z40
G1 F10000 G645 ; Corner smoothing G645 on.
COMPCAD ; Compressor function COMPCAD on
FIFOCTRL
N24050 Z32.499
N24051 X41.365 Z32.500
N24052 X43.115 Z32.497
N24053 X43.365 Z32.477
N24054 X43.556 Z32.449
N24055 X43.818 Z32.387
N24056 X44.076 Z32.300

COMPOF ; Compressor function off
G00 Z50
M30

Note:
COMPCAD is recommended for CYCLE832 and is therefore preset in the
manufacturer cycle CUST_832.

840Dsl SINUMERIK Operate Page 23 M104


5.3 G-code commands associated with „Advanced Surface“
Section 5 Compressor functions
Notes
Parameter assignment

Maximum path length


The maximum distance up to which a block is still compressed, is set using
machine data: MD20170 $MC_COMPRESS_BLOCK_PATH_LIMIT
Longer blocks are not compressed, but are traversed normally.
Recommended setting: 20 [mm]

Maximum deviation of the path feedrate FLIN and FCUB


The maximum permissible deviation of the path feedrate for active com-
pressor function COMPON or COMPCURV is specified in the machine
data in conjunction with FLIN and FCUB:
MD20172 $MC_COMPRESS_VELO_TOL
The higher the permissible deviation, the more short blocks that can be
compressed into a long block.
Recommended setting: 100 [mm/min]

Axial deviation
For each axis involved in the compression, a maximum tolerable deviation
of the generated path from the program points can be specified. The set-
ting is done on an axis-for-axis basis using the machine data:
MD33100 $MA_COMPRESS_POS_TOL
The higher the permissible deviation, the more short blocks that can be
compressed into a long block.
Recommended setting: 0.01 [mm]

Contour accuracy
The maximum tolerable deviation of the generated path from the pro-
grammed points is specified using the following setting data for each
channel: SD42475 $SC_COMPRESS_CONTUR_TOL

Compression mode
The manner in which the maximum tolerable deviation from MD33100 and
SD42475 is taken into account is set via the units position in the machine
data: MD20482 $MC_COMPRESSOR_MODE (mode of compression)
Value Meaning
xx0 Tolerances specified in MD33100 $MA_COMPRESS_POS_TOL
are maintained for all the axes (geo and orientation axes).
xx1 Tolerances specified in SD42475 $SC_COMPRESS_CONTUR_TOL
are maintained for the geometry axes.
The tolerances specified with MD33100 $MA_COMPRESS_POS_TOL
are maintained for the orientation axes.
xx2 Tolerances specified with MD33100 $MA_COMPRESS_POS_TOL
are maintained for the geometry axes.
The tolerances specified with
- SD42476 $SC_COMPRESS_ORI_TOL
- SD42477 $SC_COMPRESS_ORI_ROT_TOL
are maintained for the axes of orientation motion (TRAORI).
xx3 Tolerances specified in SD42475$SC_COMPRESS_CONTUR_TOL
are maintained for the geometry axes.
The tolerances specified with
- SD42476 $SC_COMPRESS_ORI_TOL
- SD42477 $SC_COMPRESS_ORI_ROT_TOL
are maintained for the axes of orientation motion (TRAORI).

M104 Page 24 840Dsl SINUMERIK Operate


5.4 G-code commands associated with „Advanced Surface“
Compressor function Section 5
Notes
The tens position in MD20482 is used to set whether blocks with value
assignments (e.g. X=100 ...) should be compressed:

Value Meaning
x0x / x2x Blocks with value assignments are compressed (default setting).
Notice: This behavior is incompatible with earlier releases of the software!
x1x / x3x Blocks with value assignments are not compressed.
This behavior is compatible with earlier releases of the software.

The type of traversing blocks that are compressed is set with the hundreds
position of MD20482:

Value Meaning
0xx Circular blocks and G0 blocks are not compressed.

1xx Circular blocks are compressed. Only COMPCAD

2xx G0 blocks are compressed

3xx Circular blocks and G0 blocks are compressed.

Corner limit angle for COMPCAD


A limit angle can be defined for COMPCAD using the following setting
data, from which a block transition is interpreted as corner:
SD42470 $SC_CRIT_SPLINE_ANGLE (corner limit angle for compressor)
Values between 10 and 40 degrees are useful. The recommended setting
is 36 degrees.

Note
The corner limit angle for COMPCAD is only used as an approximate
measure for corner detection. By evaluating the plausibility, the compres-
sor can also identify flatter block transitions as corners and larger angles
as outliers.

Corresponding machine data


The machine data listed in the following table influence the compressor
function. The following values are recommended for these:

MD Name Description Rec.


value
MD18360 $MN_MM_EXT_PROG_BUFFER _SIZE (FIFO buffer size for 100
processing from ex-
ternal)
MD28520 $MC_MM_MAX_AXISPOLY_PER_ BLOCK (maximum number of 3
axis polynomials per
block)
MD28530 $MC_MM_PATH_VELO_SEGMENTS (Number of memory 5
elements for limiting
the path velocity)

840Dsl SINUMERIK Operate Page 25 M104


5.5 G-code commands associated with „Advanced Surface“
Abschnitt 5 Compressor functions
Notes
MD Name Description Rec.
value
MD28540 $MC_MM_ARCLENGTH_SEGMENTS number of memory 10
elements for displaying
the arc length function

MD28070 $MC_MM_NUM_BLOCKS_IN_PREP (number of blocks for 60


block preparation)
MD28060 $MC_MM_IPO_BUFFER_SIZE (number of NC blocks 100
for block preparation)
MD32310 $MA_MAX_ACCEL_OVL_FACTOR[AX1] (overload factor for Value for
axial jumps in velocity) G64 op-
eration
MD32310 $MA_MAX_ACCEL_OVL_FACTOR[AX2] (overload factor for Value for
axial jumps in velocity) G64 op-
eration
MD32310 $MA_MAX_ACCEL_OVL_FACTOR[AX3] (overload factor for Value for
axial jumps in velocity) G64 op-
eration
MD20490 $MC_IGNORE_OVL_FACTOR_FOR_ (G641/G642 irrespec-
ADIS tive of the overload
factor).

M104 Page 26 840Dsl SINUMERIK Operate


5.6 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Continuous-path mode and Look Ahead

General functionality
In the continuous-path mode the path velocity is not decelerated for the
block change in order to permit the fulfillment of an exact stop criterion.
The objective of this mode is to avoid rapid deceleration of the path axes
at the block-change point so that the axis velocity remains as constant
as possible when the program moves to the next block. To achieve this
objective, the "Look Ahead" function is also activated when the
continuous path mode is selected.
Continuous-path mode causes the smoothing and tangential shaping of
angular block transitions by local changes in the programmed contour.
The extent of the change relative to the programmed contour can be
limited by specifying the overload factor or rounding criteria.
The purpose of continuous-path control is to increase speed and harmo-
nize traversing performance. This is achieved with two functions:

 Look ahead - look-ahead speed control


The control system calculates several CNC blocks ahead (1) and
determines a modal speed profile. The way in which this speed
control is calculated can be set with functions G64, etc.
 Programmable corner smoothing
The look ahead function also means that the control system is able to
round the corners (2) it detects. The programmed corner points are
therefore not approached exactly. Sharp corners are rounded.

Picture right: To round sharp corners (3), the continuous-path commands


G641 to G654 form transition elements (2) at the block boundaries.
The continuous-path commands differ in the way they form these transition
elements.
With G641 you can define the degree of smoothing (1) (Tolerance band)
with the ADIS value. With G642, G643, G644 and G645 you can define the
degree of rounding for the individual axes in the setting data.

840Dsl SINUMERIK Operate Page 27 M104


5.7 G-code commands associated with „Advanced Surface“
Abschnitt 5 Continious-path mode and Look Ahead
Notes
Continuous-path operation causes:
 Contour rounding
 Shorter machining times through elimination of braking and acceleration
processes that are required to comply with the exact-stop criterion
 Improved cutting conditions because of the more constant velocity

Continuous-path mode is suitable if:


 A contour must be traversed as quickly as possible (e.g. with rapid
traverse).
 The exact contour may deviate from the programmed contour within a
specific tolerance for the purpose of obtaining a continuous contour.

Continuous-path mode is suitable if:


 A contour is to be traversed precisely.
 An absolutely constant velocity is required.

Implicit exact stop


 In some cases, an exact stop needs to be generated in continuous-path
mode to allow the execution of subsequent actions. In such situations,
the path velocity is reduced to zero.
 If auxiliary functions are output before the traverse motion, the previous
block is only terminated when the selected exact-stop criterion is ful-
filled.
 If auxiliary functions are to be output after the traverse motion, they are
output after the interpolator end of the block.
 If an executable block (e.g. starting a positioning axis) contains no travel
information for the path axes, the previous block is terminated on reach-
ing the selected exact-stop criterion.

M104 Page 28 840Dsl SINUMERIK Operate


5.8 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
continuation

 If a positioning axis is declared to be the geometry axis, the previous


block is terminated at the interpolator end when the geometry axis is
programmed.
 If a synchronized axis is programmed that was last programmed as a
positioning axis or spindle (initial setting of the special axis is positioning
axis), the previous block is ended at the interpolator end.
 If the transformation is changed, the block previously processed is ter-
minated with the active exact-stop criterion.
 A block is terminated on interpolator end if the following block contains
the changeover of the acceleration profile BRISK/SOFT.
 If the "empty buffer" function is programmed, the previous block is termi-
nated when the selected exact-stop criterion is reached.

Velocity = 0 in continuous-path mode


 Regardless of the implicit exact stop response, the path motion is
braked down to zero velocity at the end of the block in cases where:
 Positioning axes are programmed with the instruction POS, and their
traversing time exceeds that of the path axes. The block change occurs
when the "exact stop fine" of the positioning axes is reached.
 The time taken to position a spindle programmed with the instruction
SPOS is longer than the traversing time of the path axes. The block
change is carried out when the "exact stop fine" of the positioning spin-
dle is reached.
 The current block contains traversing commands for geometry axes and
the following block traversing commands for synchronized axes or, al-
ternatively, the current block contains traversing commands for synchro-
nized axes and the subsequent block traversing commands for geome-
try axes.
 Synchronization is required

Velocity reduction according to overload factor


The function lowers the path velocity in continuous-path mode until the
non-tangential block transition can be traversed in one interpolation cycle
while respecting the deceleration limit and taking and overload factor into
account. With the reduced velocity, axial jumps in velocity are produced
with a non-tangential contour at the block transition. These jumps in veloc-
ity are also performed by the coupled motion synchronized axes. The jump
in velocity prevents the path velocity dropping to zero. This jump is per-
formed if the axial velocity was reduced with the axial acceleration to a
velocity from which the new setpoint can be reached with the jump.
The magnitude of the setpoint jump can be limited using an overload fac-
tor. Because the magnitude of the jump is axial, the minimum jump of the
path axes which are active during the block change is considered
during block transition.

840Dsl SINUMERIK Operate Page 29 M104


5.9 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Overload factor
The overload factor restricts step changes in the machine axis velocity at
block ends. To ensure that the velocity jump does not exceed the maxi-
mum load on the axis, the jump is derived from the acceleration of the axis.
The overload factor indicates the extent by which the acceleration of the
machine axis (MD32300 $MA_MAX_AX_ACCEL) may be exceeded for
an IPO cycle.
The velocity jump results as follows:
Velocity jump = axis acceleration * (overload factor-1) * interpolator cycle.

The overload factor is saved in the machine data:


MD32310 $MA_MAX_ACCEL_OVL_FACTOR (overload factor for axial
velocity jumps)

Factor 1.0 means that only tangential transitions with finite velocity can be
traversed. For all other transitions, the velocity is reduced to zero by
changing the setpoint. This behavior is equivalent to the function "Exact
stop with interpolator end". This is undesirable for continuous-path mode,
so the factor must be set to greater than 1.0.
By setting the following machine data, the block transitions are rounded
independent of the set overload factor with G641/G642:
MD20490 $MC_IGNORE_OVL_FACTOR_FOR_ADIS

Note:
For startup and installation, please note that the factor must be reduced if
the machine is likely to be subject to vibrations during angular block transi-
tions and rounding is not to be used.

Activation/deactivation
Continuous-path mode with a reduction in speed according to the overload
factor can be activated in any NC part program block by the modal com-
mand G64.
Selecting the exact stop with G9 which works on a block-by-block basis
enables rounding to be interrupted.
Continuous-path mode G64 can be deactivated by selecting:
 Modal exact stop G60
 Rounding G641, G642, G643, G644 or G645

Implicit continuous-path mode


If it is not possible to insert rounding blocks in continuous-path mode with
rounding G641 due to the very short block path lengths (e.g. zero-clocked
blocks), the mode is switched over to continuous-path mode G64.

M104 Page 30 840Dsl SINUMERIK Operate


5.10 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Smoothing
Rounding (Smoothing) means that an angular block transition is changed
to a tangential block transition by a local change to the programmed con-
tour. This gives the area in the vicinity of the original angular block transi-
tion (including transitions between intermediate blocks inserted
by the CNC) a continuous contour.
During rounding, it is not only the geometry axes that are taken into ac-
count, but all machine axes which traverse synchronously. The rounding
function therefore smoothes the traversing path of orientation axes as well
as general velocity step changes in synchronized axes.

Note:
Rounding cannot and should not replace the functions for defined smooth-
ing, i.e. RND, RNDM, ASPLINE, BSPLINE, CSPLINE.
If a rounding movement initiated by G641, G642, G643, G644 or G645 is
interrupted, the corner point of the original contour will be used for subse-
quent repositioning, rather than the interruption point.

Continuous-path mode, G64


Without corner smoothing

In continuous-path mode, the tool travels across tangential contour transi-


tions with as constant a path velocity as possible (no deceleration at block
boundaries). Look Ahead deceleration takes place before corners (G9) and
blocks with exact stop ("Look Ahead", see pages 39-40). Corners are also
traversed at a constant velocity. In order to minimize the contour error, the
velocity is reduced according to an acceleration limit and overload factor.

Note:
The extent of smoothing of the contour transitions depends on the
feedrate and the overload factor. The overload factor can be set in the
MD32310 $MA_MAX_ACCEL_OVL_FACTOR
Block transitions settings are smothend independently, regardless of over-
load factor with MD20490 $MC_IGNORE_OVL_FACTOR_FOR_ADIS

840Dsl SINUMERIK Operate Page 31 M104


5.11 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Continious-path mode G641
Smoothing according to a path criterion

Function
In continuous-path mode with rounding according to a path criterion, the
size of the rounding area is influenced by the path criteria ADIS/ADISPOS.
The path criteria ADIS and ADISPOS describe the maximum distances
which a rounding block can occupy before and after a block.
The effect of G641 is similar to RNDM, however, it is not restricted to the
axes of the working plane.
With G641, you can specify the desired rounding area explicitly.
Smoothing cannot and should not replace the functions for defined
smoothing (RND, RNDM, ASPLINE, BSPLINE, CSPLINE).

Example:
N30 Programmed
N10 G1 G90 G94 X10 Y100 F10 intermediate point
N20 G641 ADIS=0.5
N30 G1 X... Y...
N40 X.. Y..

Smoothing must start at the ear-


liest 0.5 mm before the pro-
N10 Programmed
grammed end point
input block N40 Programmed
(intermidiate point) and must
output block
be completed 0.5mm before the
block end is reached. This set-
ting is modal.

Note:
Acute angles produce rounding curves with a large degree of curvature
and therefore cause a corresponding reduction in velocity.
ADISPOS is programmed in the same way as ADIS, but must be used
specifically for movements in rapid traverse mode G00.

Activation/deactivation
Continuous-path mode with rounding based on a path criterion can be acti-
vated in any NC part program block by the modal command G641. Before
or on selection, the path criteria ADIS/ADISPOS must be specified.
Selecting the exact stop which works on a block-by-block basis enables
rounding to be interrupted with G9.
Continuous-path mode with rounding based on a path criterion (G641) can
be deactivated by selecting:
 Modal exact stop (G60)
 Continuous-path mode G64, G642, G643, G644 or G645

M104 Page 32 840Dsl SINUMERIK Operate


5.12 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Scope of the path criterion
 ADIS or ADISPOS must be programmed. If the default is "zero", G641
behaves like G64.
 If only one of the blocks involved is rapid traverse G0, the smaller
rounding distance applies.
 If a very small value is used for ADIS, the control must make sure that
every interpolated block, even an intermediate rounding block, contains
at least one interpolation point. The maximum path velocity is thereby
limited to ADIS / interpolation cycle.
 Irrespective of ADIS and ADISPOS, the rounding area is limited by the
block length.
In blocks with short distances (distance < 4* ADIS and < 4* ADISPOS
respectively), the rounding distance is reduced so that a traversable
part of the original block is retained. The remaining length depends on
the axis path and is approximately 60% of the distance still to be trav-
ersed in the block. ADIS or ADISPOS is therefore reduced to the re-
maining 40% of the distance to be traversed. This algorithm prevents a
rounding block being inserted for a very small change in contour. In this
case, switchover to continuous-path mode G64 is automatic until round-
ing blocks can be inserted again.

Example: Path with limitation of ADIS

840Dsl SINUMERIK Operate Page 33 M104


5.13 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Continious-path mode G642 and G643
Smoothing in compliance with defined tolerances

Function
In continuous-path mode involving rounding in compliance with defined
tolerances, the rounding normally takes place while adhering to the maxi-
mum permissible path deviation.
Instead of these axis-specific tolerances, the maintenance of the maximum
contour deviation (contour tolerance) or the maximum angular deviation of
the tool orientation (orientation tolerance) can be configured.

Activation
Continuous-path mode with rounding in compliance with defined toler-
ances can be activated in any NC part program block by the modal com-
mand G642 or G643.
Selecting the exact stop which works on a block-by-block basis enables
rounding to be interrupted (G9).
Continuous-path mode with rounding in compliance with defined toler-
ances (G642/G643) can be deactivated by selecting:
 Modal exact stop (G60)
 Continuous-path mode G64, G641, G644 or G645

Note:
Expansion to include contour and orientation tolerance is only supported
on systems featuring the "Polynomial interpolation" option. When rounding
in compliance with the orientation tolerance, the additional option of
"orientation transformation" is also necessary.

Differences between G642 - G643


With regard to their rounding behavior, commands G642 and G643 differ
as follows:

G642 G643
With G642, the rounding path is de- In the case of G643, each axis may
termined on the basis of the shortest have a different rounding path. The
distance for rounding all axes. rounding travels are taken into
This value is taken into account account axis-specifically and block-
when generating a rounding block. internally
(⇒ no separate rounding block).
With G642, the rounding area re- Very different specifications for the
sults from the smallest tolerance contour tolerance and the tolerance
setting. of the tool orientation
can only have effect with G643.

M104 Page 34 840Dsl SINUMERIK Operate


5.14 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Maximum path deviation
The maximum path deviation permitted with G642 / G643 is set for each
axis in the machine data: MD33100 $MA_COMPRESS_POS_TOL

Contour tolerance and orientation tolerance


The contour tolerance and orientation tolerance are set in the channel-
specific setting data:
SD42465 $SC_SMOOTH_CONTUR_TOL (maximum contour deviation)
SD42466 $SC_SMOOTH_ORI_TOL (maximum angular deviation of the
tool orientation)

The settings data can be programmed in the NC program and can in this
way be specified differently for each block transition.

Note:
The setting data SD42466 $SC_SMOOTH_ORI_TOL is effective only in
active orientation transformation (TRAORI, ORIAXES).

Rounding behavior
Rounding behavior with G642 and G643 is configured via machine data:
MD20480 $MC_SMOOTHING_MODE (rounding behavior with G64x)

The units positions (E) define the behavior for G643, the tens positions (Z)
the behavior for G642:

Value Description
E or Z
0 All axes: Rounding by maintaining the maximum permitted path de-
viation with MD33100 $MA_COMPRESS_POS_TOL

1 Geometry axes: Rounding by maintaining the contour tolerance


with SD42465 $SC_SMOOTH_CONTUR_TOL
Remaining axes: Rounding by maintaining the maximum permitted
path deviation with MD33100 $MA_COMPRESS_POS_TOL

2 Geometry axes: Rounding by maintaining the orientation tolerance


with SD42466 $SC_SMOOTH_ORI_TOL
Remaining axes: Rounding by maintaining the maximum permitted
path deviation with MD33100 $MA_COMPRESS_POS_TOL

3 Geometry axes: Rounding by maintaining the contour tolerance and


the orientation tolerance with
SD42465 $SC_SMOOTH_CONTUR_TOL and
SD42466 $SC_SMOOTH_ORI_TOL
Remaining axes: Rounding by maintaining the maximum permitted
path deviation with MD33100 $MA_COMPRESS_POS_TOL

4 All axes: The rounding length programmed with ADIS or with ADIS-
POS is used (as in case of G641).
Any axis-specific tolerance or contour and orientation tolerance speci-
fications are ignored.

840Dsl SINUMERIK Operate Page 35 M104


5.15 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Profile for limit velocity
The use of a velocity profile for rounding in compliance with defined toler-
ances is controlled via the hundreds position in MD20480
$MC_SMOOTHING_MODE :

Wert Bedeutung

<100 A profile of the limit velocity is calculated within the rounding area, based
on the defined maximum values for acceleration and jerk on the partici-
pating axes or path.
This can lead to an increase in the path velocity in the rounding area and
therefore to the acceleration of the participating axes.

>100 A profile of the limit velocity is not calculated for rounding blocks with
G641/G642. A constant velocity limit is specified instead.
This prevents the participating axes being accelerated into the rounding
area during rounding with G641/G642. However, in certain cases, this
setting can cause the rounding blocks to be traversed too slowly, espe-
cially in large rounding areas.

1xx No velocity profile for G641

2xx No velocity profile for G642

Note:
MD28530 $MC_MM_PATH_VELO_SEGMENTS (number of memory ele-
ments for limiting the path velocity)

Constraints
Restriction for protection zones with active radius compensation and tool
orientation:
Although tool radius compensation is applied for a tool orientation, which is
not perpendicular to one of the three datum planes of the basic coordinate
system, the protection zones are not rotated onto the corresponding plane.
For G643 the following must apply:
MD28530 $MC_MM_PATH_VELO_SEGMENTS > 0 (number of memory
elements for limiting the path velocity)
If this condition is met, then it must be applicable for all axes:
MD35240 $MC_ACCEL_TYPE_DRIVE = FALSE (acceleration character-
istic line DRIVE for axes on/off)

M104 Page 36 840Dsl SINUMERIK Operate


5.16 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Continious-path mode G644
Smoothing with maximum possible axial dynamic response

Function
Maximizing the dynamic response of the axes is key to this type of continu-
ous-path mode with rounding.

Note:
Rounding with G644 is only possible if:
 all the axes involved contain only a linear motion in both the observed
blocks.
 no kinematic transformation is active
In case an involved axis contains a polynomial (polynomial
programmed, spline active, compressor active) or a kinematic
transformation is active, the block transition is rounded with G642.

Activation
Continuous-path mode with rounding with the maximum possible axial
dynamic response can be activated in any NC part program block by the
modal command G644.
Selecting the exact stop which works on a block-by-block basis enables
rounding to be interrupted (G9).
Continuous-path mode with rounding with the maximum possible axial dy-
namic response (G644) can be deactivated by selecting:
 Modal exact stop (G60)
 Continuous-path mode G64, G641, G642, G643 or G645

Parameter assignment
Rounding behavior with G644 is configured via the thousands and tens of
thousands places in the machine data:
MD20480 $MC_SMOOTHING_MODE (rounding behavior with G64x)

Value Description thousand's place

0xxx When rounding with G644, the maximum deviations for each axis speci-
fied by the following machine data are respected:
MD33100 $MA_COMPRESS_POS_TOL
If the dynamics of the axis permit, then any specified tolerance is not util-
ized.

1xxx Input the maximum rounding path by programming ADIS=... or ADIS-


POS=... (as for G641).

2xxx Input the maximum possible frequencies of each axis in the rounding
area using the machine data: MD32440 $MA_LOOKAH_FREQUENCY
(smoothing frequency for Look Ahead)
The rounding area is defined so that no frequencies in excess of the
specified maximum can occur while the rounding motion is in progress.

840Dsl SINUMERIK Operate Page 37 M104


5.17 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Cont.

Value Description (Thousand's digit)

3xxx Any axis that has a velocity jump at a corner traverses around the corner
with the maximum possible dynamic response (maximum acceleration
and maximum jerk).
If SOFT is active, the maximum acceleration and the maximum jerk of
each axis is maintained.
If BRISK is active, only the maximum acceleration and not the maximum
jerk of each axis is maintained.
With this setting, neither the maximum deviations nor the rounding dis-
tance are checked. The resulting deviations or rounding distances are
determined exclusively by the dynamic limits of the respective axis and
the current path velocity.
4xxx As in case of 0xxx, the maximum deviations of each axis specified with
the following machine data are used:
MD33100 $MA_COMPRESS_POS_TOL
Contrary to 0xxx, the specified tolerance is also utilized, if possible.
Therefore, the axis does not attain its maximum possible dynamics.
5xxx As in case of 1xxx, the maximum possible rounding path is specified
through programming of ADIS=... or ADISPOS= respectively.
Contrary to 1xxx, the specified rounding path is also utilized, if possible.
Therefore, the axes involved do not attain their maximum possible dy-
namics.
Value Description (Ten thousand’s digit)

0xxxx The velocity profiles of the axes in the rounding area are determined with-
out jerk limiting for BRISK and with jerk limiting for SOFT.

1xxxx The velocity profiles of the axes in the rounding area are always deter-
mined with jerk limiting, regardless of whether BRISK or SOFT is active.

When specifying the maximum axial deviations (MD33100


$MA_COMPRESS_POS_TOL) or the maximum rounding distance (ADIS /
ADISPOS) the available rounding path is normally not used, if permitted by
the dynamics of the axes involved. Through this, the length of the
rounding path depends on the active path feedrate. In case of lower path
speeds, one gets lower deviations from the programmed contours. How-
ever, it can be set that in these cases the specified maximum axial devia-
tion or the specified rounding distance is utilized, if possible. In this case
the deviations depend on the programmed contour independent of the
programmed path feedrate.

Note:
Apart from the ones mentioned, the following limitation can also become
active additionally: The rounding distance cannot exceed half the length of
the original participating blocks.

M104 Page 38 840Dsl SINUMERIK Operate


5.18 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Jerk limitation
The smoothing of the velocity jump on each axis and thus the shape of the
rounding path depends on whether an interpolation is performed with or
without jerk limitation. Without jerk limitation the acceleration of each axis
reaches its maximum value in the entire rounding area.

With jerk limitation, the jerk of each axis is limited to its maximum value
within the rounding area.
The rounding motion thus generally consists of 3 phases:
1. Phase
During phase 1, each axis builds up its maximum acceleration. The jerk is
constant and equal to the maximum possible jerk on the respective axis.
2. Phase
During phase 2, the maximum permissible acceleration is applied.
3. Phase
During phase 3, which is the last phase, the acceleration of each axis is
reduced back to zero with the maximum permissible jerk.

840Dsl SINUMERIK Operate Page 39 M104


5.19 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Continious-path mode G645
Rounding of tangential block transitions (used in CYCLE832)

Function
In continuous-path mode with rounding, rounding blocks are also only gen-
erated on tangential block transitions if the curvature of the original contour
exhibits a jump in at least one axis.
The rounding movement is defined here so that the acceleration of all axes
involved remains smooth (no jumps) and the parameterized maximum de-
viations from the original contour (MD33120
$MA_PATH_TRANS_POS_TOL) are not exceeded.
In the case of angular, non-tangential block transitions, the rounding be-
havior is the same as with G642 (see page 32-34).

Activation/deactivation
Continuous-path mode with rounding of tangential block transitions can be
activated in any NC part program block by the modal command G645.
Selecting the exact stop which works on a block-by-block basis enables
rounding to be interrupted with G9.
Continuous-path mode with rounding of tangential block transitions (G645)
can be deactivated by selecting:
 Modal exact stop (G60)
 Continuous-path mode G64, G641, G642, G644 or G645

Comparison between G642 and G645


When rounding with G642, the only block transitions rounded are those
which form a corner, i.e. the velocity of at least one axis jumps. However, if
a block transition is tangential, but there is a jump in the curvature, no
rounding block is inserted with G642. If this block transition is traversed
with finite velocity, the axes experience some degree of jump in
acceleration which (with the jerk limit activated!) may not exceed the pa-
rameterized limit (MD32432 $MA_PATH_TRANS_JERK_LIM). Depending
on the level of the limit, the path velocity at the block transition may be
greatly reduced as a result. This constraint is avoided by using G645 be-
cause the rounding movement is defined here in such a way that no jumps
occur in acceleration.

Parameter assignment
The following machine data indicates the maximum permissible path de-
viation for each axis during rounding with G645:
MD33120 $MA_PATH_TRANS_POS_TOL
This value is only of relevance to tangential block transitions with variable
acceleration. When angular, non-tangential block transitions are rounded,
(as G642) the tolerance from MD33100 $MA_COMPRESS_POS_TOL
becomes effective.

Note:
Only continuous-path mode G645 is recommended to be used in combina-
tion with the “Advanced surface” option. G645 is preset in CUST_832.SPF

M104 Page 40 840Dsl SINUMERIK Operate


5.20 G-code commands associated with „Advanced Surface“
Continious-path mode and Look Ahead Abschnitt 5
Notes
Look Ahead

General explanation
Look Ahead is a function which is active in continuous-path mode (G64,
G64x) and determines a foreseeable velocity control for multiple NC part
program blocks over and beyond the current block.

If a part program contains consecutive blocks with very small paths, only
one velocity is reached per block without Look Ahead, enabling decelera-
tion of the axes at the end of the block while maintaining acceleration lim-
its. This means that the programmed velocity is not reached at all.
With Look Ahead, however, it is possible to implement the acceleration
and deceleration phase over multiple blocks with approximately tangential
block transitions, thereby achieving a higher feedrate with shorter dis-
tances.
Example: Velocity control with short distances and exact stop G60 or continuous-path mode
G64 with Look Ahead

Deceleration to velocity limits is possible with Look Ahead such that viola-
tion of the acceleration and velocity limit is prevented.

Look Ahead takes foreseeable velocity limits into consideration such as:
 Exact stop at block end
 Velocity limit in the block
 Acceleration limit in the block
 Velocity limit on block transition
 Synchronization with block change at block transition

840Dsl SINUMERIK Operate Page 41 M104


5.21 G-code commands associated with „Advanced Surface“
Section 5 Continious-path mode and Look Ahead
Notes
Principle
Look Ahead carries out a block-specific analysis of velocity limits and
specifies the required brake ramp profile based on this information. Look
Ahead is adapted automatically to block length, braking capacity and per-
missible path velocity.
For safety reasons, the velocity at the end of the last prepared block must
initially be assumed to be zero because the next block might be very small
or be an exact-stop block, and the axes must have been stopped by the
end of the block.
With a series of blocks with high set velocity and very short paths, the
speed can be increased in each block depending on the velocity value cur-
rently calculated by the Look Ahead function in order to achieve the re-
quired set velocity. After this it can be reduced so that the velocity at the
end of the last block considered by the Look Ahead function can be
zero. This results in a serrated velocity profile (see the following fig.) which
can be avoided by reducing the set velocity or increasing the number of
blocks considered by the Look Ahead function.

Example for modal velocity control (number of blocks considered by the Look Ahead function = 2)

Activation/deactivation
Look Ahead is activated by selecting continuous-path mode G64, G641,
G642, G643, G644 or G645.
Selecting the exact stop which works on a block-by-block basis enables
rounding to be interrupted (G9).
Look Ahead is deactivated by selecting the modal exact stop (G60).

Number of blocks
To achieve reliable axis traversal in continuous-path mode, the feedrate
must be adapted over several blocks. The number of blocks considered by
the Look Ahead function is calculated automatically and can, if required, be
limited by a machine data. The default setting is "1", which means that
Look Ahead only considers the following block for velocity control.
Because Look Ahead is especially important for short blocks (relative to
the deceleration path), the number of blocks required is of interest for Look
Ahead braking. It is enough to consider the path length to be equal to the
deceleration path that is required to brake from max. velocity to standstill.
For a machine with a low axial acceleration of a = 1 m/s2 and a high feed-
rate of vpath = 10 m/min, the following number of nLookAhead blocks are allo-
cated to the control where it has an attainable block cycle time TB = 10ms:
nLookAhead = Deceleration path/Block length = (vpath2 / (2a)) / (vpath * TB) = 9
Considering these conditions, it is advisable to adapt the feedrate over 10
blocks.
M104 Page 42 840Dsl SINUMERIK Operate
5.22 G-code commands associated with „Advanced Surface“
Exact stop G60, G9 Abschnitt 5
Notes
Exact stop (G60, G9)

Function
In exact stop traversing mode, all path axes and special axes involved in
the traversing motion that are not traversed modally, are decelerated at the
end of each block until they come to a standstill. The transition to the next
block occurs only when all axes involved in the traversing motion have
reached their programmed target position with subject to the selected
exact stop criterion.
This results in the following response:
 The program run time is considerably longer compared to continuous
path mode due to the deceleration of the axes and the wait time until
"Exact stop" status is reached for all machine axes involved.
 In exact stop mode, undercuts can occur on the workpiece surface dur-
ing machining.

Status "Exact stop"


The state of the machine axis based on the position difference relative to
its position setpoint at the end of a traversing motion is also called an exact
stop. The machine axis reaches the "exact stop" state, as soon as its fol-
lowing error is less than the specified position difference (exact stop crite-
rion).

Application
Exact stop mode should always be used when the programmed contour
must be executed exactly (e.g. Drilling, Tapping, Tool change).

Activation
Exact stop mode can be activated on a modal basis or in blocks in the part
program:

G-Code Befehl Bedeutung


G60 Exact stop with modal effect
G9 Exact stop with block by block effect

840Dsl SINUMERIK Operate Page 43 M104

G601/G602
5.23 G-code commands associated with „Advanced Surface“
Section 5 Exact stop criteria "coarse" and "fine" (G601, G602)
Notes
Exact stop criteria "coarse" and "fine" (G601, G602)

Funktion
The exact stop criteria "Exact stop coarse" and "Exact stop fine" are used
to specify tolerance windows for a machine axis reaching the "exact stop"
state.

Picture: Tolerance window of the exact stop criteria

Parameters are assigned to the two exact stop criteria with machine data:
MD36010 $MA_STOP_LIMIT_FINE (exact stop fine)
MD36000 $MA_STOP_LIMIT_COARSE (exact stop coarse)

Note:
The tolerance windows of the exact stop criteria "Exact stop coarse" and
"Exact stop fine" should be assigned in such a way that the following re-
quirement is fulfilled: "Exact stop coarse" > "Exact stop fine"
G601, G602 and G603 are only active if G60 or G9 are active.

Exact stop criterion "Interpolator End"


In the case of the exact stop criterion "interpolator end" the block change to
the next traversing block takes place, as soon as all path axes and special
axes involved in the traversing motion, which do not traverse extending up
to block, have reached their position according to set point programmed in
the block. That is, the interpolator has executed the block. The actual posi-
tion and the following error of the relevant machine axes are not taken into
consideration for exact stop criterion "Interpolator end". Thus, depending
on the dynamic response of the machine axes, this can result in a rela-
tively large smoothing of the contour at the block changes in comparison to
the exact stop criteria "Exact stop coarse" and "Exact stop fine".

Activation of an exact stop criterion


An exact stop criterion is activated in the part program by programming the
appropriate G command:

G-code command Exact-stop criterion

G601 Exact stop fine


G602 Exact stop course
G603 Interpolator end

M104 Page 44 840Dsl SINUMERIK Operate


5.24 G-code commands associated with „Advanced Surface“
Exact stop criteria "coarse" and "fine" (G601, G602) Abschnitt 5
Notes
Block change depending on exact-stop criteria

The figure below illustrates the block change timing in terms of the se-
lected exact stop criterion.

Picture: Block change accordance to selected exact stop criterion

Evaluation factor for exact stop criteria


A parameter set-dependent evaluation of the exact stop criteria can be
specified via the following axis-specific machine data:
MD36012 $MA_STOP_LIMIT_FACTOR (exact stop coarse/fine and stand-
still factor)

Applications:
 Adaptation of the positioning response to different mass ratios, such as
after a gearshift
 Reduction in positioning time, depending on various machining states,
such as roughing and finishing

Assignable specification of the active exact stop criterion


The active exact stop criterion can be permanently specified for the part
program commands of the first G function group irrespective of the exact
stop criterion programmed in the part program. This specification can be
made independently for each of the following part program commands:
 Rapid traverse: G0
 Machining commands: G1, G2, G3, CIP, ASPLINE, BSPLINE,
CSPLINE, POLY, G33, G34, G35, G331, G332, OEMIPO01, OEMI-
PO02, CT
The setting is done in a channel-specific manner via the following machine
data: MD20550 $MC_EXACT_POS_MODE (exact stop conditions for G0
and G1)

840Dsl SINUMERIK Operate Page 45 M104


5.25 G-code commands associated with „Advanced Surface“
Section 5 Exact stop criteria "coarse" and "fine" (G601, G602)
Notes
Coding
Each exact stop criterion is location-coded:
MD20550 $MC_EXACT_POS_MODE = <ZE>
 Ones position E: Rapid traverse
 Tens position Z: all other part program commands in the first G function
group

Z or E Active exact stop criterion


0 Programmed exact stop criterion
1 G601 (Exact stop window fine)
2 (Exact stop window coarse)
3 (Interpolator end)

Example:
MD20550 $MC_EXACT_POS_MODE = 02
Ones position = 2:
With rapid traverse, exact stop criterion G602 (Exact stop window coarse)
is always active, irrespective of any programming in the parts program.
Tens digit = 0:
For traversing with all other parts program commands of the first G func-
tion group, the exact stop criterion programmed in the parts program is
active.

Assignable exact stop criterion for rapid traverse transitions in con-


tinuous path mode
The behavior at the block transition of part program blocks before and after
rapid traverse blocks can be parameterized as follows:
MD20552 $MC_EXACT_POS_MODE_G0_TO_G1 = <value>

Value Meaning
0 No additional stop at the block transition.

1 Stop at block transition: Same behavior as in the case of


G601 (Exact stop window fine)
2 Stop at block transition: Same behavior as G602 (Exact
stop window coarse).
3 Stop at block transition: Same behavior as G603
(Interpolator end).
4 Like 0, in addition, the override of the next non-G0 block
is taken into account with Look Ahead in the G0 block
during the transition from G0 to non-G0.
5 Like 0; in addition, the override of the next block is taken
into account with Look Ahead during the transition from
G0 to non-G0 and from non-G0 to G0.

M104 Page 46 840Dsl SINUMERIK Operate


5.26 G-code commands associated with „Advanced Surface“
Feed forward control and jerk limitation (FFWON, SOFT, ...) Abschnitt 5
Notes
Feed forward control and jerk limitation (FFWON, SOFT, …)

Feed forward control and jerk limitation are activated in CUST_832 in a


combination of the two functions. This is because this combination offers
ideal conditions for freeform surface milling. Both functions can of course
also be programmed separately.

Feed forward control function FFWON


Traversing with feed forward control permits higher path accuracy and im-
proved machining results.

Following errors cause contour


violation (1). The inertia in the
system means that the cutter
tends to leave the setpoint
contour (2) tangentially, i.e. the
actual contour (3) that is produced
deviates from the setpoint con-
tour. Following errors are due to
a combination of the system
(positioning control) and the
speed.
Feed forward control FFWON re-
duces speed dependent following
errors when contouring almost to
zero.

Following combinations are possible:

 FFWON SOFT:
The emphasis is on high path accuracy. This is achieved by a soft
speed control which is largely free from following errors.
 FFWOF SOFT:
High path accuracy is not a priority. Additional rounding is achieved by
means of following errors (default setting in CUST_832.SPF).
 FFWON BRISK:
not recommended
 FFWOF BRISK:
For use in roughing and when maximum speed is required.

Note:
The feed forward control for compensation of the following error is ma-
chine dependent an stands in direct correlation with the KV factor
(Commissioning of the machine). Recommended setting for CYCLE832 is
FFWOF in combination with SOFT. If feed forward control should still be
required for the particular machine tool, then a modification must be made
in the manufacturer Cycle CUST_832.SPF.

840Dsl SINUMERIK Operate Page 47 M104


5.27 G-code commands associated with „Advanced Surface“
Section 5 Feed forward control and jerk limitation (FFWON, SOFT, ...)
Notes
Jerk limitation function SOFT, BRISK

To make acceleration as gentle on the machine as possible, the accelera-


tion profile of the axes can be influenced by means of the commands Soft,
Brisk. If Soft is activated, the acceleration behavior does not change
abruptly but is increased by a linear characteristic. This reduces the load
on the machine. It also has a beneficial effect on the surface quality of
workpieces, since machine resonance is excited far less frequently.

BRISK:
Acceleration behavior: abrupt acceleration of the path axes according to
the specified machine data. The axis slides travel with maximum accelera-
tion until the feedrate is reached. BRISK enables time-optimized machin-
ing, but with jumps in the acceleration curve.

SOFT:
Acceleration behavior: soft acceleration of path axes. The axis slides travel
with constant acceleration until the feedrate is reached. SOFT acceleration
enables higher path accuracy and less wear and tear on the machine.

NC commands

FFWON Feedforward on

FFWOF Feedforward off

BRISK Without jerk limitation


Abrupt acceleration of path axes

SOFT With jerk limitation


Soft acceleration of path axes. Axial jerk limitation
(maximum jerk in machine data
JOG_AND_PS_MAX_JERK (jog and positioning)
MAX_AX_JERK (path mode)

M104 Page 48 840Dsl SINUMERIK Operate


5.28 G-code commands associated with „Advanced Surface“
Feed rate control FGROUP Abschnitt 5
Notes

Feed rate control FGROUP

Function FGROUP
The command FGROUP defines whether a path axis is to be traversed
with path feed or as a synchronized axis. The feed programmed with F
only applies to the path axes (geometry axes) programmed in the block.
FGROUP can be used to include a synchronized axis (e.g. rotary axes)
in the calculation of the path feed or to exclude a path axis from the
calculation.

Description of NC-commands
You can use the following commands to set the feed rates in the NC pro-
gram for all axes participating in the machining sequence. The path
feedrate is generally composed of the individual speed components of all
geometry axes participating in the movement and refers to the center point
of the cutter or the tip of the turning tool. The following feedrate types can
be programmed:
 Path feedrate with G commands G93, G94, G95 on axes participating in
movement
 Feedrate F for path axes
 Feedrate F for synchronized axes
 Feedrate F applies to all axes programmed under FGROUP
 Feedrate for synchronized-/path axes with limit speed FL

NC-command Description
FGROUP(Achse, Ach- Axes to be included in the feed group calculation
se,...)

FGROUP( ) No axis specified, the default configuration is restored

FGREF[Achse]= Reference radius for rotary axes

FL[Achse]= Velocity limit of specified axis

840Dsl SINUMERIK Operate Page 49 M104


5.29 G-code commands associated with „Advanced Surface“
Section 5 Feed rate control FGROUP
Notes
Feed F for path axes (X, Y, Z):
The feedrate is specified with address F. Depending on the default setting
in the machine data, the units of measurement specified with the G com-
mands are either in mm or inch (G70/G71 or G700/G710).
One F value can be programmed per NC block. The unit for the feedrate is
defined in one of the above G commands. The feed F acts only on path
axes and remains active until a new feedrate is programmed. Separators
are permitted after address F.
Example: F100 or F 100 or F.5 or F=2*FEED

Feed F for synchron axes (e.g. rotary axes A,B,C):


The feedrate programmed with address F applies to all the path axes pro-
grammed in the block, but not to synchronized axes. The synchronized
axes are controlled in such way, that they require the same time for their
path as the path axes, and all axes reach their end point at the same time.

Traverse synchronized axes with limit speed FL


With this command, synchronized/path axes are traversed at their limit
speed FL.

Example:
Helical interpolation with two geometrie axis X and Y that are being inter-
polated with the programed feed. The infeed axis Z in this case is the syn-
chron axis with a limited velocity specified with FL.

N10 G17 G94 G1 Z0 F500 ;Tool infeed


N20 X10 Y20 ;Approach start position
N25 FGROUP(X,Y,) ;Axes X/Y are path axes, Z is a
;synchronized axis
N30 G2 X10 Y20 Z-15 I15 J0 F1000 ;On the circular path, the feedrate
FL[Z]=200 ;is1000 mm/min.
;Traversing in the Z direction is
;synchronized.
...
N100 FL[Z]=$MA_AX_VELO_LIMIT[0,Z] ;The limit velocity is deselected
;when the velocity
;value is read from the MD.
N110 M30 ;End of program

M104 Page 50 840Dsl SINUMERIK Operate


5.30 G-code commands associated with „Advanced Surface“
Traverse rotary axes with path velocity F, FGREF Section 5
Notes
Traverse rotary axes with path velocity F, FGREF

Function
For machining operations, in which the tool or the workpiece or both are
moved by a rotary axis, the effective machining feedrate is to be inter-
preted as a path feed in the usual way by reference to the F value. This
requires the specification of an effective radius (reference radius) FGREF
for each of the rotary axes involved. The unit of the reference radius de-
pends on the G70/G71/G700/G710 setting. All axes involved must be in-
cluded in the FGROUP command, as shown in the example, in order to be
evaluated in the calculation of the path feed.

Tangential velocity F mm/min

Angular velocity U deg/min

FGREF[C]=R

Rotary axes

If linear and rotary axes are associated via FGROUP, the feedrate is inter-
preted in the unit of measurement of the linear axis.
The tangential velocity of the rotary axis in mm/min or inch/min is calcu-
lated according to the following formula:

F [mm/min] = U [deg/min] * π * 2R
360

F: Tangential velocity
U: Angular velocity
π: Circle constant
R: Radius

R is the reference radius of the rotary axis, and can be defined with
FGREF[axis]. If no FGREF[axis] is programmed, the following reference
radius applies:

R = 360 / mm / (2*π) = 57.296 mm


This is equivalent to 1 degree = 1 mm

Example:
N10 G54 G642 G710 G90
N20 FGROUP(X,Y,Z)
N40 FGREF[c]=57.296
N50 …..

840Dsl SINUMERIK Operate Page 51 M104


5.31 G-code commands associated with „Advanced Surface“
Section 5 Path feedrate factor for rotary axes orientation with FGREF
Notes
Path feedrate factor for rotary axes orientation with FGREF

Function
The programming of FGREF[..] is useful when machining with active 5-axis
transformation (e.g. TRAORI). In this case, in CUST_832.SPF, variable
_FGREF is pre-assigned a value of 10 mm. This value can also be modi-
fied. In CUST_832.SPF, the value of variable _FGREF is written to the ro-
tary axes involved in the machining, which are declared as orientation axis
of a 5-axis transformation, using the FGREF[rotary axis] command. With
active G70/G700 the value of _FGREF is converted into inch before writing
to the command FGREF[..]=...
The effect of FGREF depends if a change in orientation of the tool takes
place through rotary axis interpolation (direct) or vector interpolation.
Direct interpolation:
For rotary axes interpolation (direct) without 5-axis transformation the
FGREF factors of the orientation axes are computed like for rotary axes
as reference radius for the path of the axes.
Example: G1 X.. Y.. Z.. B.. C.. FGREF[B]=.. FGREF[C]=.. F500
Vector interpolation:
For vector interpolation with active 5-axis transformation a effective
FGREF factor becomes active, which is determined by the individual
FGREF factores of the geometrical average value.
Example: G1 X.. Y.. Z.. A3=.. B3=.. C3=.. F500
For a standard 5-axis transformation with two orientation axes the effective
FGREF Faktor is calculated from the squareroot of the 2 rotary axes fac-
tors in our example B and C.
FGREF[eff] = square root of:[(FGREF[B] * FGREF[C])]

Note:
The feed rate control FGROUP(X,Y,Z) is automatically called with active
5-axis transformation TRAORI. The effective FGREF Factor is automati-
cally calculated by specifying the Parameter _FGREF in the Manufacturer
cycle CUST_832 (recommended value 10).
See chapter 4.1 - 4.5 CUST_832.

M104 Page 52 840Dsl SINUMERIK Operate


5.32 G-code commands associated with „Advanced Surface“
Path reference UPATH/SPATH Section 5
Notes
Path reference UPATH / SPATH

During polynomial interpolation the user may require two different relation-
ships between the velocity-determining FGROUP axes and the other path
axes. The axes not contained in FGROUP are to be controlled:
 either synchronized with the path of the FGROUP axes
 or synchronized with the curve parameter.
Therefore, for the axes not contained in FGROUP there are two ways to
follow the path:
 SPATH travel synchronized with path S
 UPATH synchronized with the curve parameter U of FGROUP
Both types of path interpolation are used in different applications and can
be switched via G codes SPATH and UPATH.
 With SPATH the path reference for FGROUP- axes is arc length
 With UPATH the path reference for FGROUP- axes is curve parameter

Example:
The following picture shows the different geometrical relationship between
the axes at SPATH and UPATH. Parameterization of the orientation axis
equals to the path axes X,Y,Z

SPATH: UPATH:
A(X)=X A(X)=SQRT(X)
N20 N20

S S

N10 N10

N10 G1 X0 A0 F1000 SPATH N10 G1 X0 A0 F1000 UPATH


N20 POLY PO[X]=(10, 10) A10 N20 POLY PO[X]=(10, 10) A10

For UPATH in Block 20, the path S of the FGROUP depends on the
squareroot of the curve parameter U (A(X)=SQRT(X)). According to this
parameter the result are various positions for the synchron axes A along
the X-axis traversal with active UPATH in comparison to SPATH.

840Dsl SINUMERIK Operate Page 53 M104


5.33 G-code commands associated with „Advanced Surface“
Section 5 Path reference UPATH/SPATH
Notes
Restrictions
The path reference set is of no importance with
• linear and circular interpolation,
• in thread blocks and
• if all path axes are contained in FGROUP.

Explanation: Polynomial interpolation


Polynomial interpolation is always understood
 in the narrow sense (POLY),
 all spline interpolation types (ASPLINE, BSPLINE, CSPLINE) and
 linear interpolation with compressor (COMPCAD, COMPCURV)
During polynomial interpolation the positions of all path axes are specified
by the polynomials pi(U). Curve parameter U moves from 0 to 10 within an
NC block, therefore it is standardized.
The axes to which the programmed path feed is to relate can be selected
from the path axes by means of the command FGROUP. However, during
polynomial interpolation, an interpolation with constant velocity on path S
of these axes usually means a non constant change of curve parameter U.

Note:
UPATH is recomended in the program and preset in the manufacturer
cycle CUST_832.

M104 Page 54 840Dsl SINUMERIK Operate


5.34 G-code commands associated with „Advanced Surface“
Feedrate profile - FNORM, FLIN, … Section 5
Notes
Feedrate profile - FNORM, FLIN, …

What is a feedrate profile?


To allow a more flexible programming of the feedrate profile, linear and
cubic characteristics have been added to the feedrate programming in ac-
cordance with DIN 66025. The cubic characteristics can be programmed
either directly or as Interpolating splines. These additional characteristics
make it possible to program continuously smooth velocity characteristics
depending on the curvature of the workpiece to be machined.
These speed characteristics make it possible to program limiting accelera-
tion changes and thereby to produce uniform workpiece surfaces.

Programming
F... FNORM
F... FLIN
F... FCUB
F=FPO

Explanation of the commands

FNORM
Feed
(Default setting) Block change

The feedrate is applied over the entire


path of the block and is subsequently re-
garded as the modal value. Jump like
velocity changes are being approached
with maximum acceleration.
Path distance

FLIN Feed
(Path velocity profile linear) Block change

The feedrate is traversed linearly from the


current value at the beginning of the block
to the end of the block and is subse-
quently regarded as the modal value.

Path distance

FCUB
(Path velocity profile cubic) Feed Block change

The non-modally programmed F values,


relative to the end of the block, are con-
nected through a spline. The spline starts
and ends tangentially to the previous or
following feedrate setting. If the F address
is missing from a block, the last pro-
grammed F value is used.
Path distance

F=FPO
(Polynomial path velocity profile)
The F address denotes the feedrate pro-
file via a polynomial from the current value
to the end of the block. The final value is
subsequently regarded as the modal
value.

840Dsl SINUMERIK Operate Page 55 M104


5.35 G-code commands associated with „Advanced Surface“
Section 5 Control of preprocessing buffer FIFOCTRL
Notes
Control of pre-processing buffer FIFOCTRL

Mould & Die programs are in generally executed directly from the Hard
disk or a external storage device (e.g. USB-stick). The maximum number
of NC-blocks that can be loaded into the NC-memory is settable in the
machine data.
During machining of large NC-Files for example free form surfaces, it is
possible for the pre-processing buffer to run low. This can cause hesita-
tions during machining or even a complete stop.
Because of this exact reason the function FIFOCTRL is being used, to
avoid the pre-processing buffer from running low. For NC-programs with
very small point to point distances, it can be necessary to increase the
maximum number of NC-blocks to be loaded, in order to avoid the fill level
to run empty towards 0% and to keep the fill level as high as possible in
case of interpolation-crashes.

Note:

CYCLE832 by means CUST_832.SPF activates the pre-processing buffer


FIFOCTRL.

M104 Page 56 840Dsl SINUMERIK Operate


5.36 G-code commands associated with „Advanced Surface“
Programmable contour smoothing tolerance CTOL and OTOL Section 5
Notes
Programmable contour smoothing tolerance CTOL and OTOL

Function
The commands CTOL (Chord tolerance) and OTOL (Orientation tolerance)
can be used, if the tolerance is to be programmed without the support of
CYCLE832.
The tolerance value for the linear axes is (geometry axes) is passed to the
CNC with the command CTOL. CTOL = squareroot(3) * tolerance value.
The NC-Program can overwrite the parameterized tolerances. There for
following commands are available:

Command Syntax Meaning


CTOL CTOL=<Value> Contour tolerance
OTOL OTOL=<Value> Orientation tolerance
ATOL* ATOL[<Axis>]=<Value> Axis specific tolerance

*CTOL and OTOL have priority over ATOL

If rotary axes are involved in the operation (multi-axes transformation),


then the tolerance value is passed on to the CNC with the factor in NC-
command OTOL. This factor is settable for all four machining processes
in the following channel specific setting data of G-group 59:

MD Name Description Value


SD55440 $SCS_MILL_TOL_FACTOR_NORM Factor tolerance 10
of rotary axes for
CYCLE832
SD55441 $SCS_MILL_TOL_FACTOR_ROUGH Factor tolerance 10
of rotary axes
for roughing
SD55442 $SCS_MILL_TOL_FACTOR_SEMIFIN Factor tolerance 10
of rotary axes for
semi-finishing
SD55443 $SCS_MILL_TOL_FACTOR_FINISH Factor tolerance 10
of rotary axes for
finishing

On program start, the above described machine and setting data are valid
and define the tolerance for all compressor functions, and smoothing func-
tions (e.g. G642-G645).

Activation/Deactivation
The programming does not cause a stop. If possible, NC-block compres-
sion is also not interrupted. The programmed values are valid, until newly
programmed or deleted through definition of a negative value. They are
further deleted on program end, Channel reset, BAG-reset, NCK-reset
(warm start) and Power on (cold start). After deletion, the values of ma-
chine data and setting data are valid again. New values can be pro-
grammed and activated in every block.

840Dsl SINUMERIK Operate Page 57 M104


5.37 G-code commands associated with „Advanced Surface“
Section 5 Programmable contour smoothing tolerance CTOL and OTOL
Notes
Note:
The programmed tolerance effects also functions, which implicitly depend
upon the tolerance. These are:
 Limitations of cordial deviation on nominal value calculation.
 Basic functions of free form surface mode

Exceptions
The following rounding functions are not affected by the programming of
CTOL, OTOL, and ATOL:
 Rounding orientation with OSD (not released until V2.7)
Reason: OSD does not use a tolerance, it uses a distance from the
block transition.
 Rounding with G644
Reason: G644 is not used for processing, it is used for optimizing tool
changes and other movements in air.
 Rounding block transitions with uniform tangents and non-uniform
curvature with G645
G645 virtually always behaves like G642 and, thus, uses the pro-
grammed tolerances. The tolerance value from machine data MD33120
$MA_PATH_TRANS_POS_TOL is only used in uniformly tangential
block transitions with a jump in curvature, e.g. tangential circle/straight
line transition. The rounding path at these points may also be located
outside the programmed contour, where many applications are less
tolerant. Furthermore, it generally takes a small, fixed tolerance to
compensate for the sort of changes in curvature which need not
concern the NC programmer.

M104 Page 58 840Dsl SINUMERIK Operate


M105 3D Tool Radius Compensation

Brief description

Objective of the Module:

With help of this module you get to learn the purpose and use of tool radius compensation in con-
junction with 3-axis surface machining and 5-axis multi-axis surface machining.

Description of the Module:

This Module explains the function and application possibilities of various tool radius compensation
for 3-axis surface machining and 5-axis surface machining. In addition you find practical examples of
the application range with 3D radius compensation in this module.
840D sl Sinumerik
Operate V2.6

Contents :

3D Tool Radius Compensation

Practical application example

This document was produced for training purposes.


840Dsl SINUMERIK Operate Page 1 SIEMENS assumes no responsibility for it’s contents M105
M105

M105 Page 2 840Dsl SINUMERIK Operate


M105
3D TRC: Description
3D TRC:
START
This Module explains the function and application
possibilities of various tool radius compensation
for 3-axis surface machining and 5-axis surface
machining. In addition you find practical examples
of the application range with 3D radius compensa- 3D Tool radius
tion in this module. compensation

Practical applica-
tion example

3D TRC:
END

Notes :

840Dsl SINUMERIK Operate Page 3 M105


M105 Page 4 840Dsl SINUMERIK Operate
1.1 3D Tool radius compensation
3D Face milling with CUT3DF Section 1
Notes
3D Tool radius compensation

3D-Face milling with CUT3DF

General explanation:
Tool compensation makes a CNC program independent of the tool radius.
Tool radius compensation in the 2 ½ D range is a familiar concept. In the
3D range, however, especially with 5-axis milling, it can be very different.
For radius compensation in face milling with CUT3DF, it is not enough sim-
ply to specify the cutter geometry. The compensation direction is also re-
quired. The compensation direction is calculated from the surface normal,
the tool direction and the tool geometry. This perpendicular is known as
the surface normal or surface normal vector. It is calculated from the cur-
rent tool orientation and the perpendicular to the workpiece surface.

Application:
For a path of a spherical cutter in the work area the compensation must be
made perpendicularly to the surface on which the path is running. This
means that the compensation direction VK is described by the surface nor-
mal vector 1, 2 of the surface at the insertion point PE (see picture 1.1).
The compensation options in the control allow the tool offset to be calcu-
lated using the surface normal vector. Previously, very few CAM systems
were capable of providing the surface normal with every CNC block.
If the surface normal FN, tool radius and also the geometry of the cutter tip
are known, the control can calculate the new tool insertion point PE if tool
radius compensation CUT3DF is enabled. Picture 1.2 shows all the dimen-
sions used by the control system and the relevant geometrical data for the
referenced to the tool tip.

Picture 1.1: Surface normal Picture 1.2: Geometrical data and tool type

Note:
Generally speaking, only small radius changes relative to the standard tool
(radius used for calculations by the CAM program) can be corrected.
A smaller cutter radius is easy to calculate but results in a different peak-
to-valley height.
With a larger radius there is a risk of collision between the tool and the
workpiece contour.

840Dsl SINUMERIK Operate Page 5 M105


1.2 3D Tool radius compensation
Section 1 3D Face milling with CUT3DF
Notes
3D Face milling
For this type of 3D milling, you require line-by-line definition of 3D paths on
the workpiece surface. The tool shape and dimensions are taken into ac-
count in the calculations that are normally performed in CAM. In addition to
the NC blocks, the postprocessor writes the tool orientations (when 5-axis
transformation is active) and the G code for the desired 3D tool offset into
the parts program. This feature offers the machine operator the option of
using slightly smaller tools than that used to calculate the NC paths.
Picture 1.3: CUT3DF Face milling

Example:
NC blocks have been calculated with a 10 mm mill. In this case, the work-
piece could also be machined with a mill diameter of 9.9 mm, although this
would result in a different surface profile.

Tool shapes and tool data


The table below gives an overview of the tool shapes, which may be used
in face milling operations, as well as tool data limit values. The shape of
the tool shaft is not taken into consideration - the tools 120 and 156 are
identical in their effect.
If a different type number is used in the NC program than the one listed in
the table, the system automatically uses tool type 110 die-sinking cutter.
An alarm is output if the tool data limit values are violated.

M105 Page 6 840Dsl SINUMERIK Operate


1.3 3D Tool radius compensation
3D Face milling with CUT3DF Section 1
Notes

Tool length offset


The tool tip is the reference point for length offset
(intersection longitudinal axis/surface).

3D tool radius compensation at tool change


A new tool with changed dimensions (R, r, a) or a different form may
only be specified with the programming of G41 or G42 (transition G40
to G41 or G42, reprogramming of G41 G42). This rule does not apply
to any other tool data, e.g., tool lengths, so that tools to which
such data apply can be fitted without reprogramming G41 or G42 .

840Dsl SINUMERIK Operate Page 7 M105


1.4 3D Tool radius compensation
Section 1 Definition of surface normal vectors
Notes
Definition of surface normal vectors

Function:
Programming of surface normal vectors is required in conjunction with
CUT3DF for face milling of curved surfaces of any kind.
For this type of 3D milling, you require line-by-line definition of 3D paths
X Y Z on the workpiece surface, and the surface normal vectors A5= B5=
C5= and/or A4= B4= C4= .
For 5-axis machining of curved surfaces additional information for defini-
tion of tool orientation, as directional vector (A3= B3= C3= ) or as RPY-
angles (A2= B2= C2= ) , is required.

The path curvature is described by surface normal vectors with the follow-
ing components:
Picture 1.4: Surface normals
 G1 X Y Z A4=, B4=, C4=
Programming of surface normal vector
at block start (see picture 1.4)
 G1 X Y Z A5=, B5=, C5=
Programming of surface normal vector
at block end (see picture 1.4)

Effect
 If a block only contains the start vector, the surface normal vector will
remain constant throughout the block.
 If a block only contains the end vector, interpolation will run from the
end value of the previous block via great circle interpolation to the
programmed end value.
 If both start and end vectors are programmed, interpolation runs be-
tween the two directions, also via great circle interpolation. This allows
continuously smooth paths to be created.

Programming
When programming note the following:
 Regardless of the active G17 to G19 level, in the initial setting, surface
normal vectors point in the Z direction.
 The length of a vector is meaningless.
 Vector components that have not been programmed are set to zero.
 With active ORIWKS the surface normal vectors relate to the active
frame and rotate when the frame rotates (see module M103 "Reference
of the orientation axes ORIWKS/ORIMKS").

Note:
The surface normal vector must be perpendicular to the path tangent,
within a limit value set via machine data, otherwise an alarm will be output.

M105 Page 8 840Dsl SINUMERIK Operate


1.5 3D Tool radius compensation
Definition of surface normal vectors Section 1
Notes
Calculation of compensation vector for CUT3DF
The correction for the 3D tool radius compensation with CUT3DF is calcu-
lated through the vector components pointing from the tool insertion point
(PE) to the Tool tip (TCP). The resulting Vector (VK) is used for the tool
radius compensation in CUT3DF (see picture 1.5).
Picture 1.5: Correction vector Q: Tool orientation
FN: Surface normal
PE: Tool insertion point
TB: Path tangent
VK: Compensation vector
TCP: Tool tip

CUT3DF with LEAD and TILT

Function:
LEAD and TILT is another option to program tool orientation in combina-
tion with definition of surface normals. Programming with LEAD and TILT
finds it’s application in 3-axis face milling with or without change in tool ori-
entation, as well as 5-axis face milling with continuous change in tool ori-
entation of free form surfaces for mould & die machining.
The resulting Tool orientation is defined through:
 Path tangent TB
 Surface normal vector FN
 LEAD angle 1
 TILT angle 2 at end of block

 
FN

TB

Note:
The reference for the angles Lead and Tilt is always the surface normal
vector (FN) programmed with A4 B4 C4 or/and A5 B5 C5. Whereby the
surface normal can change continuously during the tool path relative to the
workpiece profile (see picture 1.5)

840Dsl SINUMERIK Operate Page 9 M105


1.6 3D Tool radius compensation
Section 1 3D Circumferencial milling with CUT3DC
Notes
3D Circumferential milling with CUT3DC

Function
The function CUT3DC is in particular used for pocket milling with inclined
side walls for peripheral milling (5-axis circumferential milling)
In this 3D tool radius compensation, a deviation of the mill radius is com-
pensated by infeed toward the surface normal to be machined.
The plane in which the face end of the mill is located remains unchanged if
the insertion depth (ISD) has remained the same (see picture 1.8)
For example, a mill with a smaller radius than a standard tool would not
reach the pocket base, which is also the limitation surface.
For automatic tool infeed, this limitation surface must be known to the con-
trol (see section 1.8 "3D circumferential milling with limitation surfaces").

Example
The type of milling used here (see picture 1.7) is implemented by defining
a path (guide line see picture 1.8) and the corresponding orientation. In
this type of machining, the shape of the tool on the path is not relevant.
The only decisive factor is the radius at the tool contact point.

Picture 1.7: 3D-Circumferential milling Picture 1.8: Guide line and ISD

Programming
When programming note the following:
 Tool orientation change is taken into account in tool radius compensa-
tion for cylindrical tools (type 120) only.
 The same programming commands apply to 3D tool radius compensa-
tion as to 2D tool radius compensation. With G41/G42, the left/right-
hand compensation is specified in the direction of movement.
The approach behavior is always NORM.
 3D tool radius compensation is only active when five-axis transforma-
tion is selected.

Note:
3D tool radius compensation is also called 5D tool radius compensation,
because in this case 5 degrees of freedom are available for the orientation
of the tool in space.

M105 Page 10 840Dsl SINUMERIK Operate


1.7 3D Tool radius compensation
3D Circumferencial milling with CUT3DCC and CUT3DCCD Section 1
Notes
3D Circumferential milling with CUT3DCC and CUT3DCCD

Function
In 3D circumferential milling with a continuous or constant change in tool
orientation, the tool center point path is frequently programmed for a de-
fined standard tool. Because in practice suitable standard tools are often
not available, a tool that does not deviate too much from a standard tool
can be used.
 CUT3DCCD takes account of a limitation surface for a real differential
tool that the programmed standard tool would define. The NC program
defines the center-point path of a standard tool.
 CUT3DCC with the use of cylindrical tools takes account of a limitation
surface that the programmed standard tool would have reached. The
NC program defines the contour on the machining surface.
A typical application for this function can be found in particular in structural
components in the aviation industry.

Example: Milling a pocket with a smaller cutter


Here the control system has to take into account not only that a compensa-
tion is required in the direction of the machining surface (3), but also that a
deeper insertion in the tool direction is required (6).
After radius compensation in the machining surface direction (3) the tool tip
(TCP) of the cutter with the smaller radius and the standard tool are at the
same level if both tools, as in this illustration, are the same length.
At the same time the cutter engages axially (6) so that the tool insertion
point (PE) just touches the limitation surface. This compensation in the
direction of the pocket base also requires an adjustment of the tool in the
milling direction. This is illustrated here by the visible underside
of the tool.
Picture 1.9: CUT3DCC 1 Standard tool (specified for program)
2 Real tool (tool with smaller radius )
3 Machining surface, inner surface
4 Limitation surface, base of pocket
5 Correction to machining surface
6 Correction to limitation surface

TCP Tool center point


PE Tool insertion point

840Dsl SINUMERIK Operate Page 11 M105


1.8 3D Tool radius compensation
Section 1 3D Circumferencial milling with CUT3DCC and CUT3DCCD
Notes
Tool parameters
Tool dimensions of a toroidal endmill with reduced radius as compared
with the standard tool (see picture 1.9).
Example: standard tools with corner rounding
Address Parameter Explanation
121 or 131 $TC_DP1 Tool type (toroidal endmill)
R= $TC_DP6 Nominal tool radius or diameter Ø *
r= $TC_DP7 Nominal corner radius

Example: real tool with corner rounding


Address Parameter Explanation
121 or 131 $TC_DP1 Tool type (toroidal endmill)
R $TC_DP6 Nominal tool radius or diameter Ø
r $TC_DP7 Nominal corner radius
ΔR $TC_DP15 Deviation of tool radius of the real tool com-
pared with the standard tool (tool wear).
Δr $TC_DP16 Deviation of corner rounding of the real tool
compared with the standard tool (tool wear).
R’ Actual tool radius
R’= $TC_DP6 + $TC_DP15 + OFFN
r’ Actual corner radius
R’= $TC_DP7 + $TC_DP16
The calculated actual radius R’ in our example is negative
The tool type ($TC_P1) is evaluated

Note:
Only cutter types with cylindrical shank (Shank radius R = corner radius r),
toroidal end mills (types 121 and 131) and, in the limit case, cylindrical die
mills (type 110) are permitted.
For cylindrical cutters the dimensions specified for the corner rounding are
not evaluated (except toroidal end mills).

Note:
For tool radius compensation with G41, G42 with active CUT3DCCD or
CUT3DCC, the option "5-axis transformation" must be available.

M105 Page 12 840Dsl SINUMERIK Operate


1.9 3D Tool radius compensation
3D Circumferencial milling with CUT3DCC and CUT3DCCD Section 1
Notes
Using cylindrical tools with corner radius
If cylindrical tools are used, infeed is only necessary if the machining sur-
face and the limitation surface form an acute angle (less than 90 degrees).
If a toroidal endmill is used (cylinder with rounded corners) tool infeed in
the longitudinal direction is required for both acute and obtuse angles.
If CUT3DCC is active with a toroidal endmill the programmed path refers to
a fictitious cylindrical mill with the same diameter. The resulting path refer-
ence point for a toroidal endmill is shown in picture 1.10 .

Picture 1.10: CUT3DCC

The angle between the machining and limitation surface may change from
an acute to an obtuse angle and vice versa even within the same block.
The tool actually used, may be either larger or smaller than the standard
tool. But the resulting corner radius must not be negative and the sign in
front of the resulting tool radius must not change.

In CUT3DCC the NC parts program refers to the contour on the machining


surface. As with 2D tool radius compensation, the effective tool radius is
used, which is totaled from:
 the tool radius (tool parameter $TC_DP6)
 the wear value (tool parameter $TC_DP15)
 and a programmed tool offset OFFN.
The position of the limitation surface is determined by the difference
between the following two values:
 Tool radius of standard tool (programmed tool radius)
 Tool radius of real tool (tool parameter $TC_DP6).

In CUT3DCCD the tool parameter $TC_DP6 specified does not affect the
tool radius and the resulting compensation.
The compensation is the sum of:
 The wear value of the tool radius (tool parameter $TC_DP15) and
 the programmed tool offset OFFN.

840Dsl SINUMERIK Operate Page 13 M105


1.14 3D Tool radius compensation
Section 1 Intersection procedure inside/outside corners G450/G451
Notes
Intersection procedure inside/outside corners G450/G451

Function:
Picture 1.12: Inside/outside corners

Intersection procedure circumferential milling with 3D radius comp.


The intersection procedure is especially advantageous for 3D programs
typically generated by CAD. These often consist of short straight blocks
(to approximate smooth curves), where the transitions between adjacent
blocks are almost tangential.
Up to now, with tool radius compensation on the outside of the contour,
circles were generally inserted to circumnavigate the outside corners.
These blocks can be very short with almost tangential transitions, resulting
in undesired drops in velocity.
In these cases, as with 2 ½ D radius compensation, both of the curves in-
volved are lengthened and the intersection of both lengthened curves is
approached.
The intersection is determined by extending the offset curves of the two
participating blocks and defining the intersection of the two blocks at the
corner in the plane perpendicular to the tool orientation. If there is no such
intersection, a circle is inserted at the corner.

Behaviour at Inside/outside corners G450/G451


Inside and outside corners are handled separately. The terms inner corner
and outer corner are dependent on the tool orientation.
When the orientation changes at a corner, for example, the corner type
may change while machining is in progress. Whenever this occurs, the
machining operation is aborted with an error message.
With 3D circumferential milling, G code G450/G451 is now evaluated at the
outside corners; this means that the intersection of the offset curves can
be approached. In older software versions a circle was always inserted at
the outside corners.

NC commands:
G450 Transition circle (tool travels around workpiece corners on circular
Path).
G451 Intersection of equidistant paths (tool backs off from workpiece
corner).
M105 Page 14 840Dsl SINUMERIK Operate
1.15 3D Tool radius compensation
Tool orientation outer/inner corners with ORIC and ORID Section 1
Notes
Tool orientation at outer/inner corners with ORIC and ORID

Function
A circle block with the radius of the cutter is always inserted at an outside
corner. The program commands ORIC or ORID can be used to define
whether changes in orientation programmed between blocks N1 and N2
are executed before the beginning of the inserted circle block or at the
same time.
Example for the change in orientation at an outer corner with ORIC
Picture 1.13: ORIC outside corner

If an orientation change is required at outside corners, this can be per-


formed either at the same time as interpolation or separately together
with the path movement.
With ORID, the inserted blocks are executed initially without a path move-
ment. The circle block generating the corner is inserted immediately before
the second of the two traversing blocks.
If several orientation blocks are inserted at an external corner and ORIC is
selected, the circular movement is divided among the individual inserted
blocks according to the values of the orientation changes.

Example for the change in orientation at an inner corner with ORIC

Picture 1.14: ORIC inside corner N09 G1 G41 X .. Y.. ORIC F500
N10 X .. Y.. Z..
N12 X .. Y.. Z.. A2=.. B2=.. C2=..
N15 X .. Y.. Z.. A2=.. B2=.. C2=..

840Dsl SINUMERIK Operate Page 15 M105


1.16 3D Tool radius compensation
Section 1 Tool orientation outer/inner corners with ORIC and ORID
Notes
Behaviour with ORIC
If two or more blocks with orientation changes are programmed between
the traversing blocks N10 and N20 (e.g., A2= B2= C2=) and ORIC is ac-
tive, the inserted circle block is divided according to the size of the angle
changes on these intermediate blocks.
The circle block inserted at the external corner is divided among N12 and
N14 in accordance with the change in orientation.
The circular movement and the orientation change are executed in parallel
Picture 1.15: ORIC Programming:
N07 CUT3DC
N08 ORIC
N09 G1 G41 X... Y... C2=… B2=…
F500
A circle block is inserted N10 X… Y… Z…
between N12 und N14
N12 C2=… B2=…
N14 C2=… B2=…
N20 X … Y… Z…

Behaviour with ORID


If ORID is active, all the blocks between the two traversing blocks N10 and
N20 are executed at the end of the first traversing block N12. The circle
block with constant orientation is executed immediately before the second
traversing block N20.
The N12 and N14 blocks are executed at the end of N10.
The circle block is then executed with the current orientation.
Picture 1.16: ORID Programming:
N07 CUT3DC
N08 ORID
N09 G1 G41 X... Y... C2=…
B2=…F500
N10 X …Y… Z…
N12 C2=… B2=…
N20 X... Y... Z...

Note:
The type of orientation change on a outside corner is set with the program-
ming command, which is active in the first traversing movement of an out-
side corner.
Without orientation change: If a orientation on a block border remains
unchanged, then the tool cross section is a circle, that touches both con-
tours.

M105 Page 16 840Dsl SINUMERIK Operate


1.17 3D Tool radius compensation
List of available tool radius compensations Section 1
Notes
List of available tool radius compensations

Command Description

2 1/D Circumferential milling


CUT2D  2 1/2D compensation with compensation plane
determined with G17 - G19
CUT2DF  2 1/2D compensation with compensation plane
determined by frame (e.g. TRANS, ROT)

3D Circumferential milling (structural components)

CUT3DC  Compensation perpendicular to path tangent and to tool


orientation

3D Circumferential milling with limitation surface


CUT3DCC  NC program refers to the contour on the machining
surface (real tool).
CUT3DCCD  NC program refers to the tool center path (norm tool).

Intersection procedure for inside/outside corners


G450  Transition circle (tool travels round workpiece corners
on a circular path
G451  Intersection of equidistant paths (tool backs off from the
workpiece corner).
ORID  No orientation change in inserted blocks at external cor-
ners. Orientation movement is executed in linear blocks
ORIC  Travel path extended with circles. The orientation
change is executed in a circular interpolation around
the corner

3D Face milling (free form surfaces)


CUT3DFS  Constant orientation (3-axis). Tool faces in Z direction of
the coordinate system defined with G17 - G19. Frames
have no influence.
CUT3DFF  Constant orientation (3-axis). Tool in Z direction of the
coordinate system currently defined with frame.

CUT3DF  5-axis with variable tool orientation for free form


surfaces with specification of surface normal vectors.

The compensations are activated by appending the appropriate


command G41/G42, e.g.: CUT3DC G41.
G40 deactivates the tool radius correction.

840Dsl SINUMERIK Operate Page 17 M105


2.1 Practical application examples
Section 2 CUT3DF in combination with LEAD and TILT
Notes
CUT3DF in combination with LEAD and TILT

Example:
3+2 axis face milling of a free form surfaces with tilted tool orientation.
Programming of tool orientation with LEAD and TILT in conjunction with
ORIPATH, surface normal vectors A4= B4= C4= and 3D tool radius com-
pensation CUT3DF.

N100 TRAORI
N110 G54
N120 ORIWKS
N130 ORIPATH
N140 CUT3DF
N160 G0 X-10 Y-10 Z35 LEAD=0 TILT=0 A4=0 B4=0 C4=1
N170 G1 Z25 LEAD=45 TILT=5 F500
N180 G41 X0 Y0 A4=.. B4=.. C4=..

N1231 G40 X-10 Y160 Z100

N1250 M30

M105 Page 18 840Dsl SINUMERIK Operate


2.2 Practical application examples
5-Axis face milling with CUT3DF Section 2
Notes
5-Axis face milling with CUT3DF

Example: 5-Axis facemilling of a free form surface


Programming of tool orientation with ORIAXES, vectors A3= B3= C3= ,
surface normal vectors A4= B4= C4= and 3D tool radius comp. CUT3DF

N100 TRAORI
N101 ORIWKS
N102 ORIAXES
N103 CUT3DF
N103 G54
N104 MSG("5-AXIS POCKET_RADIUS_R3")
N104 ;Positioning move
N105 G0 X-52.73538 Y-17.80536 Z31.9 A3=-.39485858 B3=.49800333
C3=.77206177 M3
N106 ; Approach move
N107 G1 Z13.37361 A3=-.39485858 B3=.49800333 C3=.77206177 F500
N108 X-47.99708 Y-23.7814 Z4.10887 A3=-.39485858 B3=.49800333
C3=.77206177
N109 ; Start move
N110 G41 X-47.84399 Y-23.76942 Z3.80953 A3=-.39485858 B3=.49800333
C3=.77206177 M8 F2000
N110 ; Milling
N111 X-47.69248 Y-23.71986 Z3.51328 A3=-.39485858 B3=.49800333
C3=.77206177 A4=... B4=... C4=... A5=… B5=… C5=…
N112 X-47.54444 Y-23.63337 Z3.22382 A3=-.39485858 B3=.49800333
C3=.77206177 A4=... B4=... C4=... A5=… B5=… C5=…
N113 X-47.40175 Y-23.51101 Z2.94481 A3=-.39485858 B3=.49800333
C3=.77206177 A4=... B4=... C4=... A5=… B5=… C5=…
N114 X-47.26618 Y-23.35433 Z2.67975 A3=-.39485858 B3=.49800333
C3=.77206177 A4=... B4=... C4=... A5=… B5=… C5=…
…….
N6646 X-103.02652 Y-5.64791 Z4.55886 A3=.55592652 B3=.22406464
C3=.80046283 A4=... B4=... C4=... A5=… B5=… C5=…
N6647 X-102.837 Y-5.70081 Z4.83174 A3=.55592652 B3=.22406464
C3=.80046283 A4=... B4=... C4=... A5=… B5=… C5=…
N6648 X-102.6453 Y-5.71617 Z5.10778 A3=.55592652 B3=.22406464
C3=.80046283 A4=... B4=... C4=... A5=… B5=… C5=…
N6649 ; Departure move
N6650 G40 X-95.97418 Y-3.0274 Z14.71333 A3=.55592652 B3=.22406464
C3=.80046283
N6651 Z31.9 A3=.55592652 B3=.22406464 C3=.80046283
N6652 G0 X0 Y0 Z100 A3=0 B3=0 C3=1
N6653 TRAFOOF
N6654 M30

840Dsl SINUMERIK Operate Page 19 M105


2.3 Practical application examples
Section 2 5-Axis circumferential milling with CUT3DC
Notes
5-Axis circumferential milling with CUT3DC

Example:
5-Axis circumferential milling outside periphery of a structural component.
Programming of tool orientation with ORIAXES and vectors A3= B3= C3=
3D tool radius compensation CUT3DC (standard tool centre path).

N100 TRAORI
N101 ORIWKS
N102 ORIAXES
N104 CUT3DC
N104 G54
N105 MSG("WALL_PERIPHERY")
N106 ;Positioning move
N107 G0 X-121.40912 Y36.4311 Z35 A3=.09603557 B3=-.2761492 C3=.9563047
M3
N109 G1 Z.15423 F=R2
N110 ;Approach move
N111 G41 G1 X-110.05862 Y40.32549 A3=.09603557 B3=-.2761492
C3=.95630476 M8 F=R1
N112 ;Milling
N113 X-108.60112 Y40.82556 A3=.09375063 B3=-.27693326 C3=.95630476
N114 X-107.13954 Y41.31347 A3=.09145933 B3=-.27769841 C3=.95630476
N115 X-105.67397 Y41.7892 A3=.08916182 B3=-.27844458 C3=.95630476
……..

N726 X-114.03513 Y-4.2235 A3=0.0 B3=0.0 C3=1.


N727 X-114.09052 Y-3.75546 A3=0.0 B3=0.0 C3=1.
N728 X-114.10653 Y-3.2845 A3=0.0 B3=0.0 C3=1.
N729 Y34.71226 A3=0.0 B3=0.0 C3=1.
N730 ; Departure move
N731 G40 X-124.10653 Y34.71226 Z21.1 A3=0.0 B3=0.0 C3=1. F=R2
N732 ; Retract move
N733 G0 Z35.5 A3=0.0 B3=0.0 C3=1.
N735 TRAFOOF
N736 SUPA G0 Z0.0 D0
N737 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1
N738 M30

M105 Page 20 840Dsl SINUMERIK Operate


2.4 Practical application examples
5-Axis circumferential milling with CUT3DCCD Section 2
Notes
5-Axis circumferential milling with CUT3DCCD

Example:
5-Axis circumferential milling of a Pocket with limitation surface of a struc-
tural component.
Programming of tool orientation with ORIAXES, vectors A3= B3= C3= and
3D tool radius compensation CUT3DCCD (standard tool centre path).

Limitation surface

N101 TRAORI
N102 ORIWKS
N103 ORIAXES
N104 CUT3DCCD
N104 G54
N105 MSG("POCKET_PERIPHERY")
N107 ;Positioning move
N106 G0 X-42.04229 Y-33.2845 Z35.5 A3=.22495105 B3=0.0 C3=.97437006 M3
N108 G1 X-49.2255 Z4.3861 A3=.22495105 B3=0.0 C3=.97437006 F=R1
N109 ;Approach move
N110 G41 Y-21.2845 A3=.22495105 B3=0.0 C3=.97437006 M8
N111 ;Milling
N112 Y-19.80012 A3=.22494426 B3=-.00777427 C3=.97434062
N113 Y-18.31573 A3=.22492386 B3=-.01554807 C3=.97425228
N114 Y-16.83134 A3=.22488987 B3=-.02332093 C3=.97410507
……..
N1010 X-3.05902 Y27.71242 A3=-.07875696 B3=-.28156448 C3=.95630476
N1011 X-4.44722 Y28.09438 A3=-.07636682 B3=-.28222212 C3=.95630476
N1012 X-5.8386 Y28.46455 A3=-.07397118 B3=-.28285947 C3=.95630476
N1013 ; Departure move
N1014 G40 X-7.46233 Y22.25554 Z28.61461 A3=-.07397118 B3=-.28285947
C3=.95630476
N1015 ; Retract move
N1016 G0 X-7.99492 Y20.21895 Z35.5 A3=-.07397118 B3=-.28285947
C3=.95630476
N1017 TRAFOOF
N1018 SUPA G0 Z0.0 D0
N1019 SUPA G0 X0.0 Y0.0 A0.0 C0.0 D1
N1020 M30

840Dsl SINUMERIK Operate Page 21 M105


M105 Page 22 840Dsl SINUMERIK Operate

Vous aimerez peut-être aussi