Académique Documents
Professionnel Documents
Culture Documents
Training documentation
Sinumerik 840D sl
Edition 2011.1
Training Manual
Programming of 5-Axis
Manual for Milling machines
Valid for:
M101
Frames
M105
Tool radius
Compensation
End
M101 FRAMES
Brief description
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.
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 :
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
Overview of data
management
frames
Frame components
Swivel frames
FRAMES:
END
Notes :
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.
X, Y, Z
Axes perpendicular to one
another
A, B, C
Rotary axes rotating about
X, Y, Z
WCS
SZS
BZS
BCS
MCS
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“)
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
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)
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
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".
Picture 1.10: Settable FRAME G54 ... G599 between BNS and ENS
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
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
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.
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.
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.
$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.
Total translation
Coarse Fine
or or
absolute Translation additive translation
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)
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.
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.
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
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
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
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
The angles are only clearly and uniquely defined in the following ranges:
-180 <= x <= 180
-90 < y < 90
-180 <= z <= 180
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)
Programming Notes
Command Description
RPL Defines the angle for plane rotation with reference to the active
work plane G17-G19.
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
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.
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)
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
Y Y
X X
30°
45°
45°
Reference point
for rotation
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.
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.
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
Note:
The alignement of the tool is explained in detail in section 4.
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
Pivot point
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
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.
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.
;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
+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
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).
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
Brief description
Objective of the module:
After completing this module you will be able to program and setup the swivel CYCLE800
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.
Contents :
Theory CYCLE800
Startup CYCLE800
Appendix
Swivel function in
JOG mode
CYCLE800 in AUTO
mode
Startup CYCLE800
Appendix
Cycle800:
END
Notes :
Introduction
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.
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).
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
and
TRANS
AROT
ATRANS
TRAORI
Note:
1 2
Note:
Example refers to drawing on page 44
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.
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).
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
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.
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.
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.
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 .
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”)
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).
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”).
Note:
Default setting for swivel mode is “axis by axis”
Default setting for direction “+” or “-” can be set via TC_CARR[37]
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:
Note:
For ShopMill programs, the blank in the program header is automatically
referred to the base orientation (initial kinematic setting).
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)
The swivel data record can be deselected and the swivel frame
(WPFRAME, PARTFRAME, TOOLFRAME) can be deleted by
programming CYCLE800().
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).
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).
This is done, for example, to swivel the coordinate system back to its
original orientation.
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)
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.
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.
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.
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
α β
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.
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)
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)
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°
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.
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
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.
Z Y
50
X
50
45°
45°
45°
Z Y
View A
X
30° 20.412
View A
25
The first and the last step is in this example is the same for all swivel
modes:
1 2
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).
-α
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
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
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)
Plane 2
Plane 3
Plane 1
Plane 1
Plane 3
Plane 2
Y+
X+
35.
264
°
Y+
Z+
Z+
Y+
X+
Program: EXAMPLE_1.MPF
sin 15 = GK / 100
AK = sin 15 * 100 α
AK = 25.881 AK
N137 G0 X0 Y0
N138 G0 X0 Y60
N139 MCALL
N146 G0 X0 Y0
N147 G0 X0 Y60
N148 MCALL
N155 G0 X0 Y0
N156 G0 X0 Y60
N157 MCALL
N164 G0 X0 Y0
N165 G0 X0 Y60
N166 MCALL
N173 G0 X0 Y0
N174 G0 X0 Y60
N175 MCALL
N182 G0 X0 Y0
N183 G0 X0 Y60
N184 MCALL
GK = sin 35.264 * 25
GK = 14.4336
α
AK
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,)
Note:
Alternatively you can deselect CYCLE800 with manual input of
CYCLE800().
3D view
Top view
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”).
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).
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
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
• 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.
Work steps:
Tool List
Blank material:
Aluminium 150 x 80 x 25
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”.
Y+
X+
Program: EXAMPLE_2.MPF
N117 REPEAT LBL1 LBL0 P150; Call label for subprogram after M30 and
repeat 150 times
N124 REPEAT LBL1 LBL0 P750; Call label for subprogram after M30 and
repeat loop 75 times
3D view
Top view
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 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”.
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.
Press the following softkeys to open the Cycle “Align milling tool”:
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.
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
• 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
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
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
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”.
3D view
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.
Press the following softkeys to open the Cycle “Align milling tool”:
► 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.
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
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 .
This is done, for example, to swivel the coordinate system back to its
original orientation.
Parameter Description
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.
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.
This is done, for example, to swivel the coordinate system back to its
original orientation.
Parameter Description
T: Select a tool from the tool list by pressing the VSK 1 “Select tool”
D: Select the desired cutting edge number for the selected tool (1-9)
General explanation:
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.
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
>0
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:
Setting data
= 0 hide
= 1 display
= 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.
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).
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.
For the swivel function, swivel data sets must created in the NCK and de-
clared in the following machine data.
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.
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
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.
=0 Not active
=1 Remains active
=0 Do not delete
=1 Delete
= 0 Do not reset
= 1 Reset
= 0 Do not reset
= 1 Reset
= 0 Do not reset
= 1 Reset
Application: Work offset G5xx, including all rotations, should remain active after
Power On.
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
= 0 As programmed
Cycle alarms 61186 and 61187 can be hidden or displayed using the fol-
lowing cycle machine data.
= 0 Hide fault 61186 "Active work offset G%4 and basic (basic reference)
contains rotations"
(default).
= 1 Display fault 61186
= 0 Hide fault 61187 "Active basis and basis reference (G500) contain rota-
tions" (default).
= 1 Display fault 61187
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.
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.
Which rotary axis rotates around which axis of the coordinate system or
the machine axis (axes)?
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.
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).
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.
Note:
5-axis transformation TRAORI is an option and requires a license
(see picture below)
Note:
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
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).
Swivel head (Typ T) Swivel table (Typ P) Swivel head + Rotary table
(Typ M)
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.
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
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.
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.
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 _)!
0= Axis by axis
1= Axis by axis + projection angle
2= Axis by axis + projection angle + solid angle
3= Axis by axis + directly
0= Automatic
1= Manual
2= Semi-automatic
HUNDREDS 2 Type of rotary axis 2
0= Automatic
1= Manual
2= Semi-automatic
02 = Retraction Z, XY
03 = Retraction Z or Z, XY
...
08 = Incremental retraction in tool direction
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.
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.
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).
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.
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*).
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
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
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).
The fine offsets act in addition to the corresponding base vectors when the
function "swiveling" CYCLE800 or the NC function TCARR=n is called.
● I3 $TC_CARR15..17[n] → $TC_CARR55..57[n]
● I4 $TC_CARR18..20[n] → $TC_CARR58..60[n]
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.
Display options
Swivel Mode Axis by axis direct
Direction Rotary axis 1 opti-
mized
Tracking TL yes
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.
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.
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.
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).
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)
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.
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).
Input parameters:
- workplane
- swivel data record name “TC”
- retract
- swivel plane
- offsets
- swivel mode
- sequence
- rotations
- coordinate shift
- direction
- track tool
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.
Error messages
Marker:
Retraction tool _M41 Z axis
axis _M42 Z, XY axis
_M43 Tool direction max.
_M44 Tool direction inc.
No retraction
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
End of cycle
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?
No
No
No
No
No
End of cycle
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.
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.
_M40:
IF ((NOT $P_TOOL) AND _TC1)
LOOP
MSG ("no tool cutting edge active")
M0
STOPRE
ENDLOOP
ENDIF
GOTOF_MEND
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
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.
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.
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
Programming on
the machine
Programming on
the CAM
Startup 5-Axis
transformation
TRAORI
TRAORI:
END
Notes :
Free-form surfaces,
mold & die making
industry
Structural parts,
aviation industry
1 2
3 4
5 6
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.
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
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:
Explanation of commands:
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.).
_______________________________________________________________________
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.
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.
Swivel Point
Tool Tip
Workpiece
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.
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.
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
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)
5 axes
Controlled path axes X,Y,Z
Controlled rotary axes e.g. A, C (head)
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.
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.
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:
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.
Note:
Orientation angles via Euler angle, for the orientation axes
Default settable with MD21102 $MC_ORI_DEF_WITH_G_CODE = 0
The values programmed with A2, B2, C2 for orientation programming are
interpreted as an RPY angle (in degrees).
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.
Note:
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
…...
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.
G1 X Y Z A5= B5= C5= Programming the surface normal vector at end of block.
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.
The reference of the rotary axis interpolation can be set using the G-code
commands ORIWKS/ORIMKS.
1
2
Polynomial or B-spline 3
3
12
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
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
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.
ORIWKS
TRAORI
ORIVECT
G1 A2=60 C2=0 ; Start orientation 1
G1 A2=30 C2=85 ; End orientation 2
…
Contour gauging
Note:
With ORIVECT the orientation axes are always traversed on the shortest
possible path.
FN
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.
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
Spline-/double spline-Interpolation
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.
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.
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.
Behavior:
Interpolate Rotary axes C 180 degree with max path velocity when rea-
ching pole zero position.
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.
Behavior:
If possible rotate rotary axis C syncron to linear axis until end position is
reached.
Work Steps
Tool List
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+
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
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.
3D view
Top view
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
Simulation
Simulation
EXAMPLE_2_RPY_PROG.MPF
Simulation
10
1.763
EXAMPLE_2_VECTOR_ISD.MPF
Simulation
EXAMPLE_2_VECTOR_ISD_2.MPF
3D view
3D view
Top view
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
EXAMPLE_3_VECTOR_PROG.MPF
3D view
EXAMPLE_3_RPY_PROG.MPF
3D view
Top view
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
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
EXAMPLE_4_1.MPF
EXAMPLE_4_2.MPF
R10=ATAN2(_VECT1,_VECT2)
3D view
Top view
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
15°
10
R1
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)
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
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
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.
Tools:
Solid carbide end mill D=16 CR=3 FL=2
Mainprogram:
EXAMPLE_6_ORICURVE.MPF
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”.
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
3D view
Top view
3D view
Top view
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.
Simulation of tool path Simulation of the calculated tool paths with colli-
sion checking.
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
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.
* All programs should be located in one directory. If this is not the case,
then the path must be specified.
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.
The Subprograms are only cut-outs in this documentation and serve only a
explanatory purpose of program structure and important functions.
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
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:
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
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
MAINPROG.MPF
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
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
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).
Subprogram: FLOOR_FINISHING.SPF
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.
………
Subprrogram: CIRCUMFERENCE.SPF
N738 M17
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
……..
……..
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
…….
Subprogram: EDGES_RADIA_R3.SPF
……….
……….
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.
Z+
28
X+
G54
G54
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
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)
Machine type 1 2 3
Swivel-/rotatable Tool Workpiece Tool/
workpiece
Transformation type: 24 40 56
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
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
….
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
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
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
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.
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.
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.
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
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
MD24574[0] $MC_TRAFO5_BASE_ORIENT_1 = 0
MD24574[0] $MC_TRAFO5_BASE_ORIENT_1 = 0
MD24574[2] $MC_TRAFO5_BASE_ORIENT_1 = 1
MD21180 $MC_ROT_AX_SWL_CHECK_MODE = 1
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).
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 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:
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
Activate the modified machine data with the “Set MD active (cf)” Softkey.
Note:
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
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.
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
Advanced surface
High-speed
settings
CYCLE832
Advanced surface
Manufacturer cycle
CUST_832
G-code commands
associated with
“Advanced Surface”
Cycle832:
END
Notes :
The control offers various functions which can help to avoid rework.
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:
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:
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
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)
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”
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.
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.
MD Name Description
SD55445 $SCS_MILL_TOL_VALUE_NORM Tolerance value for
Deselection
;***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.
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
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.
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“ .
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
End of
CYCLE832
%_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
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
NC-commands
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.
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.
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).
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.
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.
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:
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
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.
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
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..
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
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.
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.
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
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.
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.
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)
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)
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.
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.
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.
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.
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.
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
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
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
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.
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:
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.
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.
The figure below illustrates the block change timing in terms of the se-
lected exact stop criterion.
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
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.
Value Meaning
0 No additional stop at the block transition.
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.
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
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,...)
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.
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.
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:
Example:
N10 G54 G642 G710 G90
N20 FGROUP(X,Y,Z)
N40 FGREF[c]=57.296
N50 …..
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.
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
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.
Note:
UPATH is recomended in the program and preset in the manufacturer
cycle CUST_832.
Programming
F... FNORM
F... FLIN
F... FCUB
F=FPO
FNORM
Feed
(Default setting) Block change
FLIN Feed
(Path velocity profile linear) Block change
Path distance
FCUB
(Path velocity profile cubic) Feed Block change
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.
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:
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:
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.
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.
Brief description
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.
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 :
Practical applica-
tion example
3D TRC:
END
Notes :
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.
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.
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.
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)
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.
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.
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.
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 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.
Function:
Picture 1.12: Inside/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
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=..
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.
Command Description
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=..
…
N1250 M30
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
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
……..
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