Osai 10 CNC Reference Manual
Osai 10 CNC Reference Manual
Code: 45006842M
Rev. 02
OSAI S.p.A.
Via Torino, 14 - 10010 Barone Canavese (TO) – Italy
e-mail: [email protected]
Web: www.osai.it
This document has been prepared in order to be used by OSAI. It describes the latest release of the
product.
OSAI reserves the right to modify and improve the product described by this document at any time
and without prior notice.
Actual application of this product is up to the user. In no event will OSAI be responsible or liable for
indirect or consequential damages that may result from installation or use of the equipment described
in this text.
abc
UPDATE
10 Series CNC High Speed Machining
INDEX updated
CHAPTER 5
page 2 added: the parameter “Format” to the triletteral PNT for specifying the input
type for the profile programming
page 12 added: the parameter “Diam” to the triletteral AXI and the value TAO in the
parameter “Type”
page 16 inserted: an extension of the machine kinematics for positioning 2 rotation
axes to the linear axes. Extension of the triletteral MAC with new values.
page 25 inserted: a paragraph dealing with the Smoothing tolerances and
parameters
PREFACE
Mechanical technology has evolved to such a degree that what were once considered insuperable
limits as regards machining speeds and accelerations have now become the norm in the world of
machine tools. It is now common to hear of machines capable of transverse speeds of the order of 80
- 100 m/minute and accelerations in the order of one or more g, traverse. The field of application
typical of these machines is the high-speed milling of surfaces.
The solution normally adopted with numeric controls, that is, the machining of profiles as a sequence
of linear micro steps is no longer applicable, because the mechanics follow the continual changes in
direction, with undesirable effects on the surface finish. The programmed points are taken as
obligatory points, through which machining must pass. In addition, “G01” programming is understood
strictly as a linear interpolation between points. This means that, to obtain a sufficiently accurate
curve, the points must be programmed so close to one another that the programmed broken line is
indistinguishable from the desired curve. This type of approach is still normally used with machine
tools having a high level of inertia which has the effect mechanically smoothing the broken line.
With the introduction of particularly rigid machines together with motor drives of an acceptable size
capable of providing high torque levels (brushless motors), this solution was no longer applicable, as
all the sudden changes in direction could be recognized by the machine tool resulting, at best, in a
poor quality surface finish.
At this point, there were two possible ways of solving the problem, by modifying the motion dynamics
and the geometry of the paths. In fact, the execution of the commands has to be filtered, in order to
obtain a “smooth” output to the servo motors, and the path program design has to be modified through
the interpretation of the programmed values as a set of points to be approximated in the best possible
way.
The solution chosen by Osai led to the implementation of the new Polynomial Interpolation
Algorithms.
This manual provides all the information necessary for the use of the new feature known as High
Speed Machining. In particular, this manual refers to the HIGH SPEED INTERPOLATION option,
specific for applications in which machining involves more than 3 axes.
The HSM feature for machining processes that involve 3 axes or less, is
IMPORTANT included as standard in the E69 System Software for all models of 10 Series
numeric controls.
To extend this feature to more than three axes (max.6), the E96 option (High
Speed Interpolation) has to be installed.
WARNINGS
To ensure that the system is used correctly, the indications given in the manual should be followed,
paying particular attention to the paragraphs preceded by the signs: WARNING, CAUTION or
IMPORTANT.
Indicates situations that may cause damage to the system, the equipment or
WARNING
the operator.
Precedes operations that must be performed with care to ensure the complete
IMPORTANT success of the application.
END OF PREFACE
INDEX
SETUP
TYPE OF POINTS DESCRIBED IN THE PART PROGRAM..........................................5-2
VERSOR MANAGEMENT METHODS.........................................................................5-3
LOOK AHEAD MANAGEMENT..................................................................................5-4
THRESHOLDS .........................................................................................................5-6
TOOL DEFINITION...................................................................................................5-7
TOOL DIRECTION (3D).............................................................................................5-8
CHANGE IN CURVATURE MANAGEMENT.................................................................5-9
EDGE MANAGEMENT ..............................................................................................5-10
AXIS DEFINITION ....................................................................................................5-11
AXIS PARAMETERS ................................................................................................5-13
AXIS DYNAMICS .....................................................................................................5-14
MACHINE KINEMATICS ...........................................................................................5-15
Definition of the Kinematic Chain.......................................................................5-15
Description of the Kinematic Chain....................................................................5-20
SMOOTHING TOLERANCES AND PARAMETERS .....................................................5-25
SPECIAL SMOOTHING PARAMETERS .....................................................................5-27
PATH OPTIMIZER
GENERAL................................................................................................................6-1
PROGRAM INSTALLATION ON A PC.......................................................................6-2
EXECUTION MODES ................................................................................................6-3
USAGE MODES .......................................................................................................6-4
Tolerances: Toll, TollX and TollV........................................................................6-4
Buffer management: Pnt...................................................................................6-4
Edge management: Racc, C0, RaccX, C0X, RaccV, C0V ....................................6-5
POINT TYPES..........................................................................................................6-6
ISO Part program for a 3-axes machine .............................................................6-6
ISO Part program for a 5-axes machine .............................................................6-6
END OF INDEX
GENERAL CONSIDERATIONS
The High Speed Machining feature is used for machining surfaces (profiles) defined by points, created
by CAD/CAM systems, on machine tools having 3 to 5 axes (3 linear + 2 rotary).
The High Speed Machining feature must be enabled in the AMP environment, by selecting the
appropriate field in the PROCESS CONFIG section (PROC CHAR softkey).
1. Create a setup file (part program) that contains all the parameters for handling the profile: tools,
axes and kinematics of the machine.
The setup file (whose structure is described in chapter 5) will be recalled in the main program by
means of a three-letter command with the following format:
(HSM, setup file name)
Example:
; HSM PROGRAMMING EXAMPLE
G1 X..Y..Z.. A.. B.. F…
------
(HSM, CONFIG1)
G61
G1 X..Y..Z..A..B..
------
G60
; END OF PROGRAM
The profile may also be inserted in a specific file which will be recalled as a subprogram by the
CLS instruction.
Example 2:
; HSM PROGRAMMING EXAMPLE
G0 X..Y..Z.. A.. B.. F…
------
(HSM, CONFIG1)
------
(CLS,PROFILO1-------------------------------------------------- à G61
------ G1 X…Y..Z..A..B..
------ ------------------------------
; END OF PROGRAM ------------------------------
------ G60
A profile is a set of points that make up the ISO part-program of the surface to be machined, created
by the CAD/CAM system in which the characteristics described in this chapter are to be respected.
On the basis of the programmed points a polynomial curve will be constructed, defining the path to be
followed. This path will pass through the programmed points with a configurable tolerance. The
methods by which the points are to be linked will be defined by the G01 and G00 codes that may be
programmed together with the points.
The sections executed in G00 will be considered as individual positioning operations; each point will
be linked to the next by means of a “linear” movement to be performed with the dynamic traverse
positioning (each section in G00 will start at zero speed and end at zero speed). For this reason, G00
mode will not calculate the polynomial curve. At the end of a section in G00 there will be no pause
(end of movement synchronism, entry into tolerance status, etc..) and the next movement will be
carried out immediately. This behaviour is similar to the programming of G01 and G09 codes in the
same block.
p3
p1 p4
p2
p0
With G01, each point will be linked geometrically to the following ones by means of a polynomial
curve, so the generated path may be considered “continuous”. This link will be interrupted by the
programming of a G00 or the programming of special G codes described below. The dynamics of the
sections in G01 are the same as the “cutting” movements (such as normal G01 movements in ISO
programming).
p3
p1 p4
p2
p0
In addition to the G01 and G00 functions, the following G functions, specific for the HSM feature, may
be programmed in the profile.
G61
Determines the start of the profile and must be programmed in a block on its own. When the G61
function is activated, there must be no form of virtualization active (UPR,UVP,UVC,TCP).
Before activating the G61 function, the setup file must be defined by means of the instruction:
The G61 command may ONLY be executed within a part program in AUTO or BLK BY BLK status.
G60
Determines the end of the profile and must be programmed in a block on its own.
If the machine is in single STEP execution, the profile between G61 and G60 is considered as a
single instruction. To stop its execution, it is necessary to switch to HOLD status.
G62
Splits a profile in two parts and determines the point where one profile ends and another begins,
maintaining continuity between the two curves.
The points preceding the G62 function will be used to generate a first curve, while the subsequent
points will be used to generate another one. These curves will be linked and will therefore be
continuous; the initial inclination of the second curve will correspond to the final inclination of the
previous curve.
G62 p3
p1 p4
p2
p0
As regards dynamics, with G62 no deceleration and acceleration ramp will be generated to link the
two curves. This G function must be programmed in a part program block on its own.
G62
G63
Splits a profile into two parts and determines the point where one profile ends and the other one
begins, maintaining continuity between the two curves. The points preceding the G63 function will
be used to generate a first curve, while the subsequent points will be used to generate another one.
While with G62, the initial inclination of the second curve depends strictly on the final inclination of
the first, with G63, the initial inclination of the second curve IS NOT influenced by that of the first. To
maintain continuity, a “radius” that depends on the chordal error with which the splines are to be
calculated is inserted.
With G63 a reduction in speed may occur at the point where the two curves are linked. This G
function must be programmed in a part program block on its own.
G66
Splits a profile into two parts and determines the point where one profile ends and the other one
begins, creating a discontinuity between the two curves, that is, the point preceding the G66
represents an edge. At this point, two curves are generated, the first using the points preceding the
G66 function and the second using the subsequent points. These curves will NOT be linked, and so
there will be a discontinuity.
G66
p3
p1 p4
p2
p0
This discontinuity will be reached at zero speed; the first curve will therefore end with a deceleration
ramp to 0 (zero) speed after which the second curve will be tackled with an acceleration ramp to
reach the required machining speed. This G function must be programmed in a part program block on
its own.
v
G66
G67
With G67, a “discontinuity” may be defined on the profile defined with G66. What changes is the
dynamic approach to the edge, that is, the end of the curve is not reached at zero speed but at a
speed value (vs) that enables the axes to reach the edge without any dynamic problems. This speed
value is calculated on the basis of the acceleration that may be withstood by each axis. This G
function must be programmed in a part program block on its own.
v
G67
vs
The transition G codes are particularly useful when “similar”, repetitive curves are to be defined
(providing the programmed points are also similar and repetitive).
Supposing we have a profile defined by 100 points of which the first 50 represent the first machining
pass (from p1 to p50) and the other 50 (from p50 to p99) the same profile shifted slightly (second
pass).
p1
p50 p99
As the points between p1 and p50 are “similar” to the points between p50 and p99, the conditions for
calculating the two polynomial curves will also be similar. Two “parallel”, almost identical curves will
therefore be generated.
If the G62 function has not been programmed on point p50 the NC may generate curves that are not
perfectly parallel. This normally undesired effect is due to the fact that the calculation of the
polynomial takes into account the “history” along the calculated paths.
The “history” of point p1 is clearly different from that of point p50. In fact, point p1 has no history while
in point p50, the NC has followed a path determined by the first 49 points.
When the G62 function is inserted, it cancels the “history” and produces a geometrical pattern almost
identical to the one calculated starting from point p1.
In machining processes that entail several passes, failure to program G62 would have the undesirable
effect of producing different levels of machining between one pass and another.
Between the G61 and G60 blocks it will only be possible to program the points that make up the
profile to be machined or the G codes for defining their management method: no other type of
programming will be allowed.
Points may be programmed using, absolute programming may be used by means of (G90) or
incremental programming by means of (G91). All numerical parameters required may be defined
directly or by means of E or L variables: programming with expressions is not valid so XE(E2) or
X(E1+E2) type programming is not allowed, while XE1 is allowed.
Activation of the HSM (High Speed Machining) feature G61 forces of G01 and G90, modes while at
the exit (G60) the G functions active when G61 was programmed will be restored.
The first point programmed MUST be expressed in absolute positions (G90) and must contain the
programming of all axes associated with the HSM programming (axes configured in the HSM setup
file).
The G61/G60 program section will be considered, from the system point of view, as a single program
block. As regards interfacing with the machine logic, a request for consent for movement will be made
when the G61 function is reached, and an end of movement request will be made when the G60
function is reached (in the same way as for the G27 and G28 continuous movements).
A regards consent for movement, the XW03 variable, which contains the type of movement, will be
set as shown below:
END OF CHAPTER
Before defining how the points are handled, it is necessary to specify what they represent as
programming may be executed in relation to three types of coordinates, that is:
The cutter contact points are linked to the cutter location points through the geometry and orientation
of the tool. The axis location points are linked to the cutter location points through the geometry of
the machine tool. In machining processes with three axes, the coordinates will simply be translated
while, in those with five coordinated axes, rototranslation matrices that take into account the
geometrical transformations due to the movement of the rotary axes will be applied. The figure below
shows what is meant by cutter contact points, cutter location points and axis location points.
Tool
length
s
diu
Normal Ra
Edge
to surface radius
Cutter contact points
Points are defined by means of normal axis coordinates in the format [Axis name][Position];
example: X100 Y200 Z40.
Tool Direction
The tool direction represents the orientation of the tool (from the tip to the attachment) within the part
reference system.
Two methods may be used to define the tool direction. The first is by directly programming the versor
that identifies the tool direction. This versor is expressed using the ijk coordinates in the format:
[i] [X-coordinate component] [j][Y-coordinate component] [k][Z-coordinate component]
The system will automatically normalize the length of the versor to the unitary length (1.0).
The second way of defining the tool direction is by programming the rotary axes. The system will
automatically determine the three components of the ijk versor depending on the kinematics of the
machine.
The normal to the surface direction represents the direction of the “line” perpendicular to the surface
to be machined (starting from the surface) within the part reference system.
There are two ways of defining the direction normal to the part. The first is by directly programming
the versor that identifies the normal direction. This versor (of a unitary length) is expressed using the
mno coordinates in the format:
[m] [X-coordinate component] [n][Y-coordinate component] [o][ Z-coordinate component]
The system will automatically normalize the length of the versor to the unitary length (1.0).
The second way is to have this direction calculated automatically by the system. The direction is
calculated on the basis of the tangent to the profile (direction of the movement), on the basis of the
tool direction (ijk versor) and an angle of contact between the part and the tool. This calculation
makes sure that the mno versor is normal to the tangent to the profile and that it defines an angle α
(angle of contact) with the tool versor ijk.
ijk mno
α
α tg profile
This type of approach is only significant when the contour is to be machined. When a surface is to be
machined, this approach could fail as there is no information about the “surface” to be machined, only
information about the “direction” of displacement.
The direction of application of the tool radius represents the direction in which radius compensation is
to be applied (starting from the centre of the tool) within the part reference system.
There are two ways of defining the tool radius application direction. The first is by directly
programming the versor that identifies the direction. This versor (of a unitary length) is expressed
using the pqd coordinates in the format
The system will automatically normalize the length of the versor to the unitary length (1.0).
The second way is to have this direction calculated automatically by the system. The direction is
calculated automatically on the basis of the tool direction (ijk versor) and the normal to the part (mno
versor). This calculation ensures that the pqd versor is normal to the tool direction and is on the plane
formed by the ijk and mno versors.
ijk
ijk
pqd
pqd mno
mno
Programming of the versor pqd is only significant when specific cutting strategies are applied.
Tangential Axis
The tangential axis is an axis whose position is calculated so as to remain tangential to the profile
described. It is calculated on the basis of the tangent to the polynomial curve on the work plane.
Tangential axis
x
An initial value of the tangential axis (first programmed point) may be defined and the subsequent
positions may be calculated on the basis of this value.
END OF CHAPTER
Depending on the type of machine tool used, the points programmed and a series of additional
parameters, the features may be obtained using “High Speed Machining”.
Machines with 5 axes are characterised by the fact that they have two rotary axes that are used to
orient the tool during the machining phase. The direction of the tool and the position of the rotary axes
are two closely related parameters.
One feature of High Speed Machining is that it “automatically” calculates the position of the rotary
axes on the basis of the tool direction (ijk vector). In this way, the same part program may be used on
machines having different kinematics providing both machines can reach the same positions.
In order to use tool radius and length compensation, the type of axis positions and vectors as defined
in the table below must be included in the part program. The feed rate may refer to the point of
contact between the tool and the part (chip removal speed, therefore at the Cutter Contact Point) or
the centre of the tool (at the Cutter Location Point). The difference between these two types of
settings is significant when tools with a large diameter are used, that is, where the path of the centre
of the tool is significantly different from that of the profile of the part.
Setting Description
Example:
N001 G61
N002 G1 X10Y10Z10 i0j0k1 m0n0o1 p0q0d1 F10000
N002 X20Y10Z10
…..
N100 G60
In order to use tool length compensation, the type of axis position and vectors as defined in the table
below must be included in the part program. The feed rate will refer to the centre of the tool (at the
Cutter Location Point).
Setting Description
Example:
N001 G61
N002 G1 X10Y10Z10 i0j0k1 F10000
N002 X20Y10Z10 ….
…..
N100 G60
No Tool Compensation
In this case, only the positions of the axes as defined in the table below have to be included in the
part program. The feed rate will refer to the actual movement of the axes (Axis Location Point). The
feed rate may however be set is relation to the centre of the tool (Cutter Location Points).
Setting Description
Example:
N001 G61
N002 G1 X10Y10Z10 A10 B10 F10000
N002 X20Y10Z10 ….
…..
N100 G60
If the tangential axis is associated with a rotary axis, its position (calculated by the system) is used
to rotate the Tool Direction vector (ijk) so as to keep it tangential to the profile. In this case, the Tool
Direction vector must NOT be programmed in the part reference system but in relation to the direction
of the movement.
Generic machines or machines with 3 axes are characterised by the fact that they do not have axes
for orienting the tool during the machining phase. The tool direction is generally fixed.
In order to use tool radius and length compensation, the type of axis positions and vectors as defined
in the table below must be included in the part program. The feed rate may refer to the point of
contact between the tool and the part (chip removal speed, therefore at the Cutter Contact Point) or
the centre of the tool (at the Cutter Location Point). The difference between these two types of
settings is significant when tools with a large diameter are used, that is, where the path of the centre
of the tool is significantly different from that of the profile of the part.
Setting Description
Example:
N001 G61
N002 G1 X10Y10Z10 m0n0o1 p0q0d1 F10000
N002 X20Y10Z10 ….
…..
N100 G60
In order to use tool length compensation, the type of axis position and vectors as defined in the table
below must be included in the part program. The feed rate will refer to the centre of the tool (at the
Cutter Location Point).
Setting Description
Example:
N001 G61
N002 G1 X10Y10Z10 F10000
N002 X20Y10Z10 ….
…..
N100 G60
No Tool Compensation
In this case, only the positions of the axes as defined in the table below have to be included in the
part program. The feed rate will refer to the actual movement of the axes (Axis Location Point). The
feed rate may however be set in relation to the centre of the tool (Cutter Location Points).
Setting Description
Example
N001 G61
N002 G1 X10Y10Z10 F10000
N002 X20Y10Z10 ….
…..
N100 G60
When management of the tangential axis is requested, its position is calculated automatically by the
system. Any programming of the tangential axis within the part program defines further rotations of
the axis with respect to the tangent calculated by the system. The programming of the value 0 (zero)
on the axis activates the calculation of the position by the High Speed algorithms.
END OF CHAPTER
Up to now we have always talked about programming by means of points i.e. the points defined in the
part program represent the entities out of which polynomial curves are calculated. But appropriate
programming allows direct definition of polynomial curves or to define curves using B-Splines.
POLYNOMIAL PROGRAMMING
in which
G61 P3
where the line <* defines the global parameter of the polynomial with the following meaning:
PROGRAMMING DESCRIPTION
It has to be stressed that the final point of a polynomial (the point defined by fn(S))
IMPORTANT MUST be identical to the starting point of the next polynomial (defined by fn+1(0)).
Based on the type of points defined you also have to program the polynomials for the versors along
which to calculate the tool length and the tool radius compensation in addition to the axes
polynomials:
• The parameters "Polynomial Length" and the relative “Feed” have to refer to the
curve on the Cutter Contact.
IMPORTANT
• The polynomials for the three versors (ijk, mno and pqd) MUST always be
programmed. Therefore you CANNOT request their automatic calculation or
determine their values based on the positions (polynomials) of the rotational
axes.
• The automatic calculation of the tangent axis is not managed.
• The parameters "Polynomial Length" and the relative “Feed” may refer to any
curve (Cutter Contact, Cutter Location, arbitrary), therefore the
IMPORTANT
parameterisation of the polynomial is free.
• The polynomial for the tool direction versor (ijk) MUST always be programmed.
Therefore you CANNOT determine their values based on the positions
(polynomials) of the rotational axes.
• The automatic calculation of the tangent axis is not managed.
• The parameters "Polynomial Length" and the relative “Feed” may refer to any
curve (Cutter Contact, Cutter Location, arbitrary), therefore the
IMPORTANT
parameterisation of the polynomial is free.
• The automatic calculation of the tangent axis is not managed.
For all programming types described above you can also calculate polynomials for
additional axes but you have to apply the HSM configuration rules described
below.
WARNING
Example:
G61 P5
<*,4.000000000e+001,3,3000,1
<X,-3.835260000e+002,0.000000000e+000,-4.440892099e-016,1.850371708e-017,-5.782411587e-019,1.355252716e-
021
<Y,-1.121540000e+002,-1.776356839e-015,1.110223025e-016,4.625929269e-018,7.228014483e-
020,0.000000000e+000
<Z,2.000000000e+002,-1.000000000e+000,-2.220446049e-016,0.000000000e+000,7.228014483e-020,-6.776263578e-
022
<i,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000
<j,-5.375997577e-003,-1.084202172e-019,0.000000000e+000,0.000000000e+000,-8.823259867e-024,6.893171771e-
027
<k,9.999855492e-001,1.387778781e-017,-8.673617380e-019,0.000000000e+000,-1.411721579e-021,-1.764651973e-
024
<*,2.488900000e+001,5,3000,5
<X,-3.835260000e+002,0.000000000e+000,-8.881784197e-016,7.401486831e-017,0.000000000e+000,-1.445602897e-
020
<Y,-1.121540000e+002,-3.552713679e-015,0.000000000e+000,9.251858539e-018,0.000000000e+000,1.807003621e-
021
<Z,1.600000000e+002,-1.000000000e+000,0.000000000e+000,-3.700743415e-017,-2.023844055e-018,1.626303259e-
020
<i,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000
<j,-5.375997577e-003,-2.168404345e-019,1.355252716e-020,0.000000000e+000,6.176281907e-023,2.205814967e-025
<k,9.999855492e-001,0.000000000e+000,0.000000000e+000,0.000000000e+000,-6.776263578e-021,2.823443158e-023
<*,6.557923113e+001,64,3000,5
<X,-3.836260000e+002,-8.775202787e-013,8.304468224e-014,-2.544261098e-015,3.13695828e-017,-1.359876104e-
019
<Y,-1.736380000e+002,4.116045842e-001,3.370526100e-003,1.039559753e-005,1.237013981e-007,-1.997131743e-
009
<Z,8.603200000e+001,9.164030615e-001,-2.215163382e-003,1.562230248e-005,-6.930401526e-007,3.106008361e-
009
<i,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000,0.000000000e+000
<j,-9.155922041e-001,5.944508142e-003,-1.757065214e-004,6.214612678e-006,-5.203550510e-008,1.330231937e-010
<k,4.021080896e-001,6.332656007e-003,9.717969494e-005,-8.784047262e-007,-5.093874428e-009,3.500516597e-011
G60
B-SPLINES PROGRAMMING
Programming with B-Splines is similar to programming by means of points. The only difference is that
the programmed points are NOT points through which the curve runs: they are the "curve control
points". In this sense the curve tries to pass as smoothly as possible between the programmed
points. If you are not familiar with B-Splines, you should study their theory in order to understand their
programming and the terminology used.
P(s) = Σ P N (s)
i i,d
i=1
where
s B-Spline parameter
n number of control points
P(s) the point calculated for the parameter s
Pi ith control point
Ni,d dth B-Spline base function value
The formula defined above defines a B-Spline curve of the nth degree. You can program B-Spline
curves of the 3rd, 4th and 5th degree. The degree of the programmed B-Splines is defined by
associating the parameter P to G61 at High Speed start.
For example, in order to program with 3rd degree B-Splines you have to write:
G61 P3
In case the P parameter is omitted, the 5th degree is programmed as default.
In order to program a B-Spline curve you have to define the control points for all axes configured in the
HIGH SPEED set-up as well as the elements of the knot vector. For example, B-Splines directly
referring to the positions of the X, Y and Z axis are programmed as follows:
where
You can program G62, G66 and G67 between one B-Spline and the next. The
final control point of a B-Spline must coincide with the first one of the following B-
IMPORTANT
Spline.
Based on the type of points defined you also have to program the B-Splines for the versors along
which to calculate the tool length and the tool radius compensation in addition to the axes B-Splines:
• The parameters K and the relative “Feed” have to refer to the curve on the Cutter Contact.
• The control points for the three versors (ijk, mno and pqd) MUST always be programmed.
Therefore you CANNOT request their automatic calculation or determine their values based on the
positions (B-Splines) of the rotational axes.
• The automatic calculation of the tangent axis is not managed.
• The parameters K and the relative “Feed” may refer to any curve (Cutter Contact, Cutter Location,
arbitrary), therefore the parameterisation of the B-Spline is free.
• The control points for the tool direction versor (ijk) MUST always be programmed. Therefore you
CANNOT determine their values based on the positions (B-Splines) of the rotational axes.
• The automatic calculation of the tangent axis is not managed.
N100 X… Y… Z… K.. F…
• The parameters K and the relative “Feed” may refer to any curve (Cutter Contact, Cutter Location,
arbitrary), therefore the parameterisation of the B-Spline is free.
• The automatic calculation of the tangent axis is not managed.
For all programming types described above you can also calculate B-Splines for
additional axes but you have to apply the HSM configuration rules described
below.
WARNING
Example:
G61 P3
X0 Y0 Z0 K0 F3000
X0.7 Y2.3 Z0 K0
X3.8 Y2.6 Z0 K0
X2.3 Y-1.5 Z0 K0
X6.9 Y-1.5 Z0 K2.5
X6.1 Y1.2 Z0 K5
X8.4 Y1.5 Z0 K7.5
K10.
K10
K10
K10
G60
END OF CHAPTER
A special file (part program) contains the setup of the HSM environment.
This setup is activated whenever the G61 code is programmed.
All numerical values may be defined directly or by means of E or L parameters.
The syntax of the three-letter code that defines how to manage the versors is as follows:
Ijk Character PRG or REL Defines whether the “Tool Direction” vector is programmed
Obligatory directly by means of the ijk components or whether it is
to be calculated on the basis of the position of the rotary
axes. When the versor is not necessary, this setting is
ignored.
PRG The versor is programmed using the ijk
components.
REL The versor is to be determined from the position of
the rotary axes.
Mno Character PRG or REL Defines whether the “Normal to Surface” vector is
Obligatory programmed directly using the mno components or
whether it is to be calculated automatically by the
system. If the versor is not necessary, this setting is
ignored.
PRG The versor is programmed using the mno
components.
REL The versor is to be determined automatically by
the system.
Pqd Character PRG or REL Defines whether the “Tool Radius Application Direction”
Obligatory vector is programmed directly using the pqd components
or whether it is to be calculated automatically by the
system. When the versor is not necessary, this setting is
ignored.
PRG The versor is programmed using the pqd
components.
REL The versor is to be determined automatically by the
system.
The syntax of the three-letter code that defines the method of look ahead and dynamics management
is as follows:
(JRK, Mode, Jrs, Entities, Tstab, Tintgr, Ttop) example: (JRK, ENA,, )
Figure 1
THRESHOLDS
The syntax of the three-letter code that defines the value of thresholds used in generating the
polynomial curves is as follows:
(THR, Tol, TolV, Scale, NullMov, Chord) example: (THR , 0.01 , 0.0001 , 0 , 0 , 0.1 )
Tol Number Obligatory Defines the tolerance range to be used in generating the
polynomial curves. As defined previously, the polynomial
curves generated pass through the programmed points,
within a given tolerance threshold. This parameter defines
the tolerance value. It is defined in mm (or inches if the
machine is configured in inches).
TolV Number Obligatory Defines the tolerance range to be used in generating the
polynomial curves calculated on the versors. This value is
important because the precision with which the rotary
axes are positioned depends on the precision with which
the curves are generated on the versors (in particular, on
the ijk versor). The number has no dimension in that it
refers to entities like versors which always have a
dimension of 1. We suggest a value equal to 0.1 times
the Toll value defined previously be set. 0 disables the
management of a tolerance on the versors.
Scale Number Obligatory Scale factor to be applied to the programmed axes. If 0 is
set, the scale factor is not to be applied. It is not applied
to the versors and rotary axes, when programmed.
NullMov Number Obligatory Null movement threshold. If the distance between one
point and the next is less than this threshold in mm (or
inches if the machine is configured in inches) the next
point is eliminated.
Chord Number Obligatory Maximum allowed chordal error at input and output during
the generation of a polynomial. Value expressed in mm
(or inches if the machine is configured in inches).
TOOL DEFINITION
In the High Speed Machining system, “Cylindrical”, “Ball-ended” and “Toroidal” type tools may be
managed. The syntax of the three-letter code that defines the characteristics of the tool to be used for
machining is as follows:
Len Number Taken from the Defines the length of the tool to be used for tool length
offset active on compensation. If no value is set, the tool length is taken
G61 from the offsets active in the system on the activation of
Optional the G61. The value set here is only active during the
machining of the current section of G61/G60.
Radius Number Taken from the Defines the radius of the tool to be used for tool radius
offset active on compensation. If no value is set, the tool radius is taken
G61 from the offsets active in the system on the activation of
Optional G61. The value set here is only active during the
machining of the current section of G61/G60.
EdgeRad Number Obligatory Defines the radius on the edge of the tool. As this value is
not handled by the system offsets, it has to be set.
Angle Number Obligatory Defines the angle of contact between the tool and the
part. It is used in the automatic calculation of the vector
normal to the surface.
OriginLen Number Obligatory Defines the length of the tool for which the part program
was generated. This field is used when the points entered
refer to “Axis location points” and the feed rate is to be
set in relation to the “Cutter location points”.
Defines the tool direction (to be used for compensation purposes) for generic machines or machines
with 3 axes (it is not required on machines with 5 axes). In practice, the unitary vector (similar to ijk)
which identifies the tool direction in the part reference system has to be defined.
The syntax of the three-letter code that defines the direction of the tool to be used for machining is as
follows:
Xcomp Number Obligatory Component of the tool direction along the X axis.
Ycomp Number Obligatory Component of the tool direction along the Y axis.
Zcomp Number Obligatory Component of the tool direction along the Z axis.
The algorithm used by the CAM systems to generate the points of a profile takes into account the
“chordal error”, that is, it generates points closer together when the radius of curvature of the profile to
be described becomes more accentuated. A change in curvature may therefore be generically
identified by a variation in the distance between one set of points and the following ones. This
variation in curvature may be identified automatically by the High Speed Machining algorithms so as
to avoid oscillations around the point where this change takes place.
Supposing, for example, we have a curved section followed by a straight section. The spline on the
straight section would tend to oscillate or generate a “hump”, so it is important to identify it.
At the point of the “change in curvature” the system will automatically insert a G62 or a G63 as
requested by the user.
The syntax of the three-letter code that defines how to identify and then manage the change in
curvature is as follows:
Len Number Obligatory Defines the minimum length of the “long section” for the
change in curvature to be managed. It is defined in mm
(or inches if the machine is configured in inches).
Ratio Number Obligatory Defines the ratio between the long section and short
section so that the change in curvature may be identified.
For example, the value 6 defines that the distance
between p2 and p3 must be greater than 6 times the
distance between p1 and p2 for the change in curvature to
be activated.
Mode Character G62 or G63 Defines the transition code to be set on the “change in
Obligatory curvature” point
G62 The two segments are generated with two splines
tangential to one another, so the second spline will
have an initial inclination equal to the final
inclination of the first spline.
G63 The two segments are generated by two non-
tangential splines, but are linked on the basis of
the calculation tolerance set.
EDGE MANAGEMENT
The automatic identification of edges is important for the same reason as the identification of changes
in curvature. Failure to identify edges could generated incorrect oscillations on the splines. The
optimum dynamic approach for handling an edge is to stop at zero speed and then restart on the next
section. Stopping may be damaging however as the tool, as it turns, continues to remove material
and so some “notches” may be visible on the part. For this reason, it is possible to define whether
and how to stop at the edge.
The syntax of the three-letter code that defines how to identify and therefore how to manage the
presence of edges is as follows:
AXIS DEFINITION
The axes to be subjected to the High Speed Machining algorithms may be defined. A maximum of 6
axes may be defined, of which 3 axes make up the three Cartesian axes, 2 are rotary axes (for
machines with 5 axes) and other additional axes. The syntax of the three-letter code for defining the
axes is as follows:
(AXI, Name, Id, Type , CinType, Diam) example: (AXI , X , 1 , ABS , LI1, DIS)
Name Character Obligatory Defines the name of the axis. This name may be different
from the one set in AMP for the axis, and may therefore
be compared to an implicit “DIN” in the HSM setup. This
association only applies to the G61/G60 section being
machined.
Id Number Obligatory Defines the ID of the axis. This axis must be under the
control of the Process in which the part program is being
executed.
Type Character ABS, ORD, Defines the axis type, and influences the method by
VRT, TAN, which the axis is managed by the HSM algorithms.
OTH or TAO ABS The axis is of the x-coordinate type (in the
Obligatory Cartesian coordinate system)
ORD The axis is of the y-coordinate type (in the
Cartesian coordinate system)
VRT The axis is of the z-coordinate type (in the
Cartesian coordinate system)
TAN Tangential axis, calculated automatically by the
system
TAO tangent axis, automatically calculated by the
system with the moving axis (positive direction) in
clockwise sense, i.e. in the sense opposite to the
trigonometric convention.
OTH Other type of axis, different from the previous ones.
CinType Character LI1, LI2, LI3, Defines the position of the axis in the kinematic chain of
WRK, TOL or the machine (see following sections). For generic
OTH machines or machines with 3 axes for which the
Obligatory kinematic chain does not have to be defined, we
recommend the following setup:
LI1 To be associated with the axis defined as ABS (x-
coordinate) in the previous field.
LI2 To be associated with the axis defined as ORD (y-
coordinate) in the previous field.
LI3 To be associated with the axis defined as VRT (z-
coordinate) in the previous field.
OTH Additional axis.
For machines with 5 axes, the setup values are as
follows:
LI1 First axis in the kinematic chain.
LI2 Second axis in the kinematic chain.
LI3 Third axis in the kinematic chain.
WRK Rotary axis closest to the part.
TOL Rotary axis closest to the tool.
OTH Additional axis.
Diam Character ENA or DIS Allows to characterise the axis as Diametral. If not
optional defined, the analog active system parameter is used.
ENA the axis is defined as diametral.
DIS normal axis
AXIS PARAMETERS
Some characteristics of the axis set on the system may be varied. These variations are only active in
the G61/G60 section being machined. The syntax of the three-letter code is as follows:
Name Character Obligatory Axis name as defined in the three-letter code (AXI).
NullMov Number Obligatory Defines the null movement for the axis in question. If the
position programmed for an axis differs from the current
position (or last programmed position) for a value lower
than the null movement, the movement of the axis (the
new position) is not considered. We recommend it be left
set to 0 and activated only in cases in which the part
program under execution contains imprecisions in the
programming of the axes.
Pitch Number Optional Used for redefining the rollover pitch for the axis in
question. It may be used, for example, to program a non-
rollover rotary axis with rollover values and vice versa. If
not defined, the analog active system parameter is used.
Lim- Number Optional Used for redefining the lower operating limit for the axis in
question. If not defined, the analog active system
parameter is used.
Lim+ Number Optional Used for redefining the upper operating limit for the axis in
question. If not defined, the analog active system
parameter is used.
AXIS DYNAMICS
Some dynamic characteristics of the axis set in the system may be varied. These variations are only
active in the G61/G60 section being machined. The syntax of the three-letter code is as follows:
Name Character Obligatory Axis name as defined in the three-letter code (AXI).
Vmax Number Optional Used for redefining the maximum speed at which the axis
may be moved when a machining operation in G01 is in
progress. It must be defined in mm/min. If not defined, the
analog active system parameter is used.
Amax Number Optional Used for redefining the maximum acceleration at which
the axis may be moved when a machining operation in
G01 is in progress. It must be defined in mm/sec 2. If not
defined, the analog active system parameter is used.
Jmax Number Optional Used for redefining the maximum Jerk to which the axis
may be moved when a machining operation in G01 is in
progress. It must be defined in mm/sec 3. If not defined,
the analog active system parameter is used.
Vrap Number Optional Used for redefining the maximum speed at which the axis
may be moved when a machining operation in G00 is in
progress. It must be defined in mm/min. If not defined, the
analog active system parameter is used.
Arap Number Optional Used for redefining the maximum acceleration at which
the axis may be moved when a machining operation in
G00 is in progress. It must be defined in mm/sec 2. If not
defined, the analog active system parameter is used.
Jrap Number Optional Used for redefining the maximum Jerk at which the axis
may be moved when a machining operation in G00 is in
progress. It must be defined in mm/sec 3. If not defined,
the analog active system parameter is used.
MACHINE KINEMATICS
By configuring the machine kinematics, the various transformations that enable the machine to switch
from programming in “Cutter contact points” or “Cutter location points” to the actual movement of the
axes may be configured, programming the rotary axes automatically and carrying out the
compensation described previously for machines with 5 axes.
A fundamental operation in defining the machine kinematics is to identify the “Kinematic Chain” that
is, to define the sequence of movements of the axes and define how movement passes from one axis
to another. This chain must start from the tool and end at the part.
The kinematics managed by High Speed Machining include 2 rotary axes and 3 linear axes with the
possibility of handling the rotary axes in three different layouts:
a) Two rotary axes associated with two rotary tables on which the part to be machined is positioned.
In this case, the kinematic chain is defined as follows :
Tool → Linear axes → First table → Second table → Part
b) A rotary axis associated with a rotary table on which the part to be machined is positioned and
another rotary axis assembled on the head. In this case, the kinematic chain is defined as follows:
Tool → Head rotary axis → Linear axes → Rotary table → Part
c) Two rotary axes both assembled on the head (Double twist) that move around the part. In this
case, the kinematic chain is defined as follows :
Tool → First head rotary axis → Second head rotary axis → Linear axes → Part
This structure may be illustrated (using the symbols defined in the setup of the three-letter code AXI
for the TipoCin) field in the form of the table below:
In the kinematic chain, the “Machine Bed” may have one of four positions, which may be illustrated by
means of the table below:
The machine kinematics can be extended so that rotational axes (always and only 2) can also be
positioned on top of the linear ones. Hence you can describe machines using those cinematic
solutions defined as “auxillary axes parallel to the main E axis”. The additional possible cinematic
chains are:
a) a rotational axis for a turntable for mounting the piece to be machined and an auxillary axis
parallel to the main E axis for the second linear axis. In this case the cinematic chain is defined
as follows:
Tool -> linear axes (3rd and 2nd) -> rotational -> linear axis (1st ) -> turntable -> work piece
b) a rotational axis for a turntable for mounting the piece to be machined and an auxillary axis
parallel to the main E axis” for the third linear axis. In this case the cinematic chain is defined as
follows:
Tool -> linear axis (3rd) -> rotational -> linear axis (2nd and 1st ) -> turntable -> work piece
c) a rotational axis mounted on the head moving around the work piece and an auxillary axis parallel
to the main E axis for the second linear axis. In this case the cinematic chain is defined as
follows:
Tool -> rotating head ->linear axes (3rd and 2nd) -> rotational -> linear axis (1st ) ->work
piece
d) a rotational axis mounted on the head moving around the work piece and an auxillary axis parallel
to the main E axis for the third linear axis. In this case the cinematic chain is defined as follows:
Tool -> rotating head ->linear axis (3rd) -> rotational -> linear axes (2nd and 1st ) ->work
piece
e) a last configuration with two auxillary axes parallel to the main E axis. In this case the cinematic
chain is defined as follows:
Tool -> rotational ->linear axis (3rd) -> rotational -> linear axis (2nd) -> rotational -> linear
axis (1s) ->work piece
This structure can be summarised (using the symbols defined in the configuration of the triletteral AXI
for the field TipoCin) with the following table
Tool Rotary Rotary Linear3 Rotary Linear Rotary Linear1 Rotary Rotary Work
piece
This extension also propagates to the machine bed which has to allow two further positions which
can be described by the following scheme:
Tool Rotary Rotary Linear3 Rotary Linear Rotary Linear1 Rotary Rotary Work
piece
Machine Bed Machine Bed Machine Bed Machine Bed Machine Bed Machine Bed
TOL BC2 B23 BC1 B12 WRK
The three-letter code that defines the machine kinematics is not obligatory: it is to be defined when
the machine in question has 5 axes, in other words, when a rotary axis is defined using the AXI three-
letter code. The code has the following syntax:
Let’s take an example. Supposing we have a machine in which the part is fined to a table (Y), and
there is a bi-rotational head (A and B) fixed to the X and Z axes. These axes move independently of
Y.
Z+
A+
B+
X+
T
P
Y+
In this case, the kinematic chain, starting from the tool and ending at the part is as follows :
T B A Z X Y --- --- P
TOL WRK LI3 LI2 LI1
The machine has “TOL” type kinematics (two rotary axes close to the tool), the “Machine Bed” is
positioned between the X axis and the Y axis and therefore of the “B12” type and, in fact, the two
sections of the kinematic chain move independently.
The aim of the description of the kinematic chain is to define how movement passes from one axis to
another. For all linear and rotary axes, a kinematic describing three-letter code must be defined and
also, as described in the previous chapter, the kinematics for two “dummy” axes such as the tool
axis ‘t’ and the part axis ‘w’ must be defined
Here below is a definition of the syntax of the three-letter code and the rules for defining the kinematic
chain using the machine described in the previous section as an example.
(CIN, Name, OffX, OffY, OffZ, RotX, RotY, RotZ) example: (CIN , X , 0 , 0 , 0 , 0 , 90 , 0 )
Name Character Obligatory Axis name as defined in the three-letter code (AXI).
OffX Number Obligatory Translation along the X axis to switch from the Cartesian
coordinates associated with an axis to the Cartesian
coordinates associated with the next element in the
kinematic chain.
OffY Number Obligatory Translation along the Y axis to switch from the Cartesian
coordinates associated with an axis to the Cartesian
coordinates associated with the next element in the
kinematic chain.
OffZ Number Obligatory Translation along the Z axis to switch from the Cartesian
coordinates associated with an axis to the Cartesian
coordinates associated with the next element in the
kinematic chain.
RotX Number Obligatory Rotation about the X axis to switch from the Cartesian
coordinates associated with an axis to the Cartesian
coordinates associated with the next element in the
kinematic chain.
RotY Number Obligatory Rotation about the Y axis to switch from the Cartesian
coordinates associated with an axis to the Cartesian
coordinates associated with the next element in the
kinematic chain.
RotZ Number Obligatory Rotation about the Z axis to switch from the Cartesian
coordinates associated with an axis to the Cartesian
coordinates associated with the next element in the
kinematic chain.
As the kinematic chain is divided into two segments, the segment that starts at the Machine Bed and
ends at the part must be described first and then the segment that goes from the Machine Bed to the
tool must be described.
To do this, an arbitrary set of Cartesian axes fixed to the Machine Bed must be defined followed by a
set of Cartesian axes fixed to each component of the kinematic chain that respects the following
rules:
Linear axes: the +Z direction of the Cartesian axes must correspond to the positive direction of the
axis, the directions of the X and Y axes have no particular meaning.
Rotary axes: the +Z direction of the Cartesian axes must correspond to the normal with respect to
the positive direction of rotation of the axis (anticlockwise), the directions of the X and Y axes have no
particular meaning.
Tool axis: the +Z direction of the Cartesian axes must go from the tip of the tool towards the spindle
attachment, the directions of the X and Y axes have no particular meaning. The origin of these axes
must be set at the point where the tool is attached to the spindle (in practice, as though the tool had
a length of 0).
Part axis: the Cartesian axes must correspond to the reference system with which the part was
programmed and, like this, is bracketed to the machine.
Using the machine described previously as an example, we shall define all the sets of axes required
for the setup of the machine kinematics.
NOTE:
The sets of axes must be defined with the machine in its Homing position.
First of all, for simplicity, we shall set the Machine Bed at the centre of rotation of the rotary axis A,
and set the “zero” of the linear axes, X, Y and Z to this position. With this simplification, the origins of
the axes associated with the axes A, X, Y, Z and Machine Bed lie at the same point.
We shall also assume that the part programming origin is in the same position: any variations in the
origin may be programmed using the ordinary programming procedure used on the 10 Series controls.
At this point we can define the kinematic chain and therefore define the rototranslation sequences to
be applied to the sets of axes defined above.
NOTE:
The rotations to switch from one set of Cartesian axes to another must always be carried out in the
order X axis, Y axis and Z axis.
The first segment of the kinematic chain starts at the Machine Bed and reaches the part, so the path
to be described is defined by the sequence:
• Y axis →Part
The second segment of the kinematic chain always starts from the Machine Bed and reaches the
tool, so the path to be described is defined by the sequence:
Machine bed -> X axis -> Z axis -> A axis -> B axis -> Tool.
• X axis →Z axis
• Z axis→A axis
• A axis →B axis
When the centres of rotation of the two axes lie at the same point, no translation has to be defined; if
they do not, that is, if the two centres are misaligned, the translation to be made in switching from the
“A axis” set to the “B axis” set must be defined. The translations must be applied before the rotation
and calculated with respect to the initial set (in our case the “A axis”).
B axis → Tool
The misalignment between the centre of rotation B and the tool-spindle attachment point must be
defined; as this value is a translation, it must be applied with respect to the “B axis” set and in our
case is equivalent to the K value with respect to the Y axis.
On the basis of the considerations made above, the kinematic chain may be summarised as shown
in the table below:
Y 0 0 0 +90 0 +180
Part 0 0 0 +90 0 +180
X 0 0 0 0 +90 0
Z 0 0 0 0 -90 0
A 0 0 0 0 0 0
B 0 0 0 -90 0 0
Tool 0 K 0 +90 0 0
The parameters described in the following are used in the smoothing phase of programs which is
executed by the off-line package “Path Optimizer”. The manual for this package contains a complete
description of the usage modes for these parameters. The syntax of the triletteral which defines the
value of the smoothing parameters is as follows:
(SMT, Toll, TollX, TollV, Racc, RaccX, RaccV, C0, C0X, C0V)
Toll number mandatory defines the tolerance range to be used in the smoothing
phase. The curves generated by the smoothing utility remain
in a certain tolerance range around the defined points.
Definition in mm (or inch if the machine is configured for
inches).
TollX number mandatory defines the tolerance range to be used in the smoothing
phase. The curves generated by the smoothing utility remain
in a certain tolerance range around the defined points.
Definition in mm (or inch if the machine is configured for
inches). This applies to the additional and/or tangent axes.
TollV number mandatory defines the tolerance range to be used in the smoothing
phase. This tolerance is applied to the versors. The curves
generated by the smoothing utility remain in a certain
tolerance range around the defined points/versors. This value
is important as the positioning precision of the rotational
axes derives from the precision with which the versor curves
are generated (especially for the versor ijk). The number
does not have a dimension because it refers to an entity
such as versors which always have the dimension one. You
should set this value to 0.1 times the value of Toll defined
before.
Racc number mandatory when two curves have to be joined, it defines the distance
from their intersection where the transition can begin. This
parameter should be recalculated depending on the angle
defined by the two intersecting curves. If this angle is 90°,
the full Racc value is used. For other angles it is suitably
reduced. Definition in mm (or inch if the machine is
configured for inches).
RaccX number mandatory the same as above but used for joining curves generated for
the additional and/or tangent axes.
RaccV number mandatory the same as above but used for joining curves generated for
versors.
C0 Character G63, G66 o defines the behaviour of the smoothing phase, when a type
G67 CO discontinuity (edge) is encountered. Edges are
intercepted by the parameters of the triletteral EDG.
mandatory
However it is possible that additional edges are generated,
especially when asking for very low tolerances.
G63 The edge is executed by inserting a joining piece
which is generated taking account of the previously
configured parameter Racc.
G66 The move ends with speed 0.
G67 The move ends with highest possible speed in order
to deal with the edge as well as possible.
C0X Character G63, G66 o defines the behaviour of the smoothing phase, when a type
G67 CO discontinuity (edge) is encountered on the additional
and/or tangent axes.
mandatory
G63 The edge is executed by inserting a joining piece
which is generated taking account of the previously
configured parameter RaccX.
G66 The move ends with speed 0.
G67 The move ends with highest possible speed in order
to deal with the edge as well as possible.
C0V Character G63, G66 o defines the behaviour of the smoothing phase, when a type
G67 CO discontinuity (edge) is encountered on the versors.
Edges are intercepted by the parameters of the triletteral
mandatory
EDG(only for the versors ijk). However it is possible that
additional edges are generated, especially when asking for
very low tolerances.
G63 The edge is executed by inserting a joining piece
which is generated taking account of the previously
configured parameter RaccV.
G66 The move ends with speed 0.
G67 The move ends with highest possible speed in order
to deal with the edge as well as possible.
The parameters described in the following are used in the smoothing phase of programs which is
executed by the off-line package “Path Optimizer”. The manual for this package contains a complete
description of the usage modes for these parameters. As these parameters are CRITICAL for the
good functioning of the package, the user should not modify them except in special cases
and after consulting OSAI. Hence, the programming of these parameters is optional: if the
smoothing utility does not find these triletterals, it uses its default values. The syntax of the triletteral
which defines some threshold values used for generating polynomial curves is as follows:
(SMS, Split, SplitX, SplitV, Cond, CondX, CondV, Len, Pnt, C1, Progr)
Split number optional defines how to split the tolerance parameter among the two
phases of the smoothing process (the linear phase and the
quintic spline phase).
SplitX number optional defines how to split the tolerance parameter among the two
phases of the smoothing process (the linear phase and the
quintic spline phase) for the additional and/or tangent axes.
SplitV number optional defines how to split the tolerance parameter among the two
phases of the smoothing process (the linear phase and the
quintic spline phase) for the versors.
Cond number optional defines the constraint conditions for the begin and the end (for
the programmed points) of each piece of the curve. By
programming this value you can influence the smoothness of
the generated curve. Possible conditions are:
1. force only passage on the programmed point
2. force passage on the programmed point and the first
derivation (i.e. set the joining direction of the first two
points)
3. force passage on the programmed point, the first derivation
and the second derivation (i.e. set the curvature generated
by the first three points).
CondX number optional defines the constraint conditions for the begin and the end
(for the additional and/or tangent axes) of each piece of the
curve. By programming this value you can influence the
smoothness of the generated curve. Possible conditions are:
1. force only passage on the programmed point
2. force passage on the programmed point and the first
derivation (i.e. set the joining direction of the first two
points)
3. force passage on the programmed point, the first
derivation and the second derivation (i.e. set the curvature
generated by the first three points).
CondV number optional defines the constraint conditions for the begin and the end
(for the additional and/or tangent axes) of each piece of the
curve. By programming this value you can influence the
smoothness of the generated curve. Possible conditions are:
1. force only passage on the programmed point
2. force passage on the programmed point and the first
derivation (i.e. set the joining direction of the first two
points)
3. force passage on the programmed point, the first
derivation and the second derivation (i.e. set the curvature
generated by the first three points).
Len number optional defines the maximum length of the generated polynomials
Pnt number optional defines the maximum number of points to be used for
generating a curve. Minimum value: 100, maximum 10,000.
C1 Character ENA or defines whether to enable the smoothing algorithm on point
DIS with continuity C1 ( points where there may be acceleration
jumps). Presently you should leave this value at DIS.
optional
Progr Character ENA or defines whether to generate the real part program (ENA) or
DIS an output for debugging. Only for internal OSAI use.
optional
Example: Example:
1 – Setup for machine with 5 axes: 2 – Setup for machine with 3 axes:
(MAC , TOL , B12 ) (PNT , AXI , AXI , QUI )
(PNT, CLP , CLP , QUI ) (VER , REL , PRG , PRG )
(VER , REL , PRG , PRG ) (JRK, ENA , , ,400 ,150 ,200)
(THR , 0.01 , 0.0001 , 0 , 0.001 , 0.05 ) (THR , 0.01 , 0.0001 , 0 , 0.001 , 0.05 )
(JRK, ENA , , ,400 ,150 ,200 ) (TOL , , , 0 , -90 , )
(TOL , , , 0 , -90 , ) (TOD , 0 , 0 , 1 )
(CRV , 1 , 6 , G63 ) (CRV , 1 , 6 , G63 )
(EDG, 30 , 0 , G66 , 1 ) (EDG , 30 , 0 , G66 , 1 )
; ;
(AXI , X , 1 , ABS , LI2 ) (AXI , X , 1 , ABS , LI1 )
(AXP, X , 0 , , , ) (AXP, X , 0 , , , )
(DIN , X , , , , , , ) (DIN , X , , , , , , )
(CIN , X , 0 , 0 , 0 , 0 , 90 , 0 ) ;
; ;
(AXI ,Y, 2 , ORD , LI1 ) (AXI ,Y, 2 , ORD, LI2 )
(AXP,Y, 0 , , , ) (AXP,Y, 0 , , , )
(DIN ,Y, , , , , , ) (DIN ,Y, , , , , , )
(CIN ,Y, 0 , 0 , 0 , 90 , 0 , 180 ) ;
; ;
(AXI , Z , 4 , VRT , LI3 ) (AXI , Z , 3 , VRT, LI3 )
(AXP , Z , 0 , , , ) (AXP, Z , 0 , , , )
(DIN , Z , , , , , , ) (DIN , Z , , , , , , )
(CIN , Z , 0 , 0 , 0 , 0 , -90 , 0 ) ;
;
(AXI , A , 5 , OTH , WRK )
(AXP, A , 0 , , , )
(DIN , A , , , , , , )
(CIN , A , 0 , 0 , 0 , 0 , 0 , 0 )
;
(AXI , B , 6 , OTH , TOL )
(AXP, B , 0 , , , )
(DIN , B , , , , , , )
(CIN , B , 0 , 0 , 0 , -90 , 0 , 0 )
;
(CIN , t , 0 , 246.5 , 0 , 90 , 0 , 0 )
(CIN, w , 0 , 0 , 0 , 90 , 0 , 180 )
END OF CHAPTER
GENERAL
With the arrival of very advanced machine tools an NC solution for machining profiles as a
sequence of linear micro interpolations is no longer acceptable. The programmed points coming
from CAD and representing the tool position at any time can oscillate. Up to now the machine's
inertia has smoothed the erratic line mechanically. Now the mechanics are able to follow the
continuous variations of direction with undesirable consequences for the surface.
Therefore it now becomes necessary to work not only on the dynamics of the feed, filtering out
command execution in order to obtain a smooth output towards the servomotors, but also on the
geometry of the trajectories by interpreting the programmed points as a point set to be fitted as well
as possible.
PROGRAM INSTALLATION ON A PC
Use the two “Path Optimizer” option E105 installation floppies for installing the application on a PC:
− Insert the floppy labelled 1/2 into the PC's floppy drive.
− In the group Start, Control Panel select Install Applications.
− Click the Install… button and then Next.
− Use the Browse … button to select the floppy drive, select the Install.exe, click on the Button
Open and then End.
− The program will ask for the directory in which to copy the files (default is C:\WINDOWS\Temp .
Then click on Extract.
− You will be asked to insert the following floppy 2.
− At the end of the operation confirm the request for executing the set-up and follow the
instructions for installing the Path Optimizer.
EXECUTION MODES
PathOptimizer has to be executed in the Windows environment and can be activated in batch
mode (i.e. directly after the CAD output) or via a user interface.
− Batch Mode: Path Optimizer <Input File> <Setup File> <Output File>
Input File name of the file containing the part ISO program on which to apply the optimisation
Setup File name of the file containing the High Speed configuration and the optimising
method
Output File name of the file in which to write the output of the process
where you have to input the name of the Input File (the part program to which to apply
the optimisation process), the name of the Setup File (description of the data types
defined in the part program, generation tolerances, and description of the machine on
which the work will be carried out) and the name of the Output File (the part program
generated on the basis of the input file and sent to the NC for execution). The Browse
button helps you to find them on the PC. When clicking on the Calculate button you
start the calculation phase (the progress bar underneath shows the advance). With the
STOP you can suspend execution. The window below visualises the processing results
and error states.
USAGE MODES
PathOptimizer uses the same techniques for intercepting edges and curvature variations as the
High Speed Machine. You can find the syntax of the parameters described below in Chapter 5.
Firstly insignificant points are sorted out of the input points. The remaining ones are linearly
th
interpolated, thus creating a broken line. This broken line is approximated by a series of 5 degree
curves lying within the defined tolerance range.
In order to optimise the smoothing process it is fundamental to take account of the tolerance
requested from the CAM during the point part program generation. If one tried to generate splines
with a lower tolerance than that with which the points were acquired, one would obtain ragged
curves i.e. curves reflecting the broken line.
Set-up parameters defined in the configuration file with the triletteral SMS
In order to avoid uselessly long processing times, which could arise when processing too many
points simultaneously, the program subdivides the input point set into point groups (to be
processed simultaneously), the quantity of which the user can set and modify with the parameter
Pnt. A curve is created for each of these subsets. For joining them into a single continuous and
homogenous curve, only a pair of curves is considered at a time which is subjected to a merging or
fitting process based on the following strategy:
merging, used where the two segments considered do not have G62, G63, G66 or G67,
i.e. belong to a single continuous curve
fitting, used in the other cases, i.e. when the joining point of the two segments is, for
example, an edge (G66)
Edge interception is a phase which is normally executed by means of the parameters of the
triletteral EDG specified in the HSM manual. However, if setting especially restrictive tolerances,
0 1 0
there may appear further discontinuity points called C or C . C is for producing edge resulting
from rounding the configuration parameter C0 (C0X for additional axes and C0V for versors) in
1
input. As far as C is concerned, its full management is delegated to later development of this
software package via the parameter C1 contained in the triletteral SMS.
Possible values for the parameter C0 (COX or C0V) for executing edges during the smoothing
phase:
− edge with dynamic halt (G66), the move ends with speed 0
− edge with machining speed different from 0 (G67), the
move ends with the maximum speed allowed
− edge with rounding (G63), the move is executed by
inserting a joining piece taking account of the
parameter Racc (RaccV for versors). This parameter
is the distance from the intersection at which the
transition can start.
POINT TYPES
− CLP: given points defined in Cutter Location Point coordinates as input, the PathOptimizer
generates 5th degree polynomials defined as Cutter Location Points. On these points the NC
can later apply tool length compensation.
− AXI: given points defined in Axis Location Point coordinates as input, the PathOptimizer
generates 5th degree polynomials on the Axis Location Points. The polynomials on the
Cartesian axes (XYZ) can also be generated in relation to the Cutter Location Points, in this
sense the versor is applied which is defined by TOD programming so that it goes from points in
machine coordinates to points defined TCP coordinates. In this last case tool length
compensation is carried out by the NC on the machine.
NOTE:
You can manage the tangent axis and define additional axes beyond those belonging to the
Cartesian triple.
− CCP: given points defined in the work piece reference system and referred to the axes XYZAB
or XYZ ijk as input, the PathOptimizer generates 5th degree polynomials referred to the Cutter
Contact Point for the axes XYZ ijk mno pqd. The polynomials on ijk are calculated starting from
directly programmed ijk points or starting from the position of the rotational axes (in the example
AB) and applying the machine kinematics supplied with the set-up file. The versors mno and
pdq can be programmed or automatically calculated as defined in Chapter 2. The tool
length/radius compensation is carried out by the NC on the machine.
− CLP: given points defined in the tool center point reference system and referred to the axes
XYZAB or XYZ ijk as input, the PathOptimizer generates 5th degree polynomials referred to the
Cutter Location Point for the axes XYZ ijk. The polynomials on ijk are calculated starting from
directly programmed ijk points or starting from the position of the rotational axes (in the example
AB) and applying the machine kinematics supplied with the set-up file. The versors mno and
pdq can be programmed or automatically calculated as defined in Chapter 2. The tool
length/radius compensation is carried out by the NC on the machine.
− AXI: given points defined in the machine reference system and referred to the axes XYZAB or
XYZ ijk as input, the PathOptimizer generates 5th degree polynomials referred to the Cutter
Location Point for the axes XYZ ijk. The polynomials on ijk are calculated starting from directly
programmed ijk points or starting from the position of the rotational axes (in the example AB)
and applying the machine kinematics supplied with the set-up file by passing from the points in
machine coordinates to points in TCP coordinates. Tool length compensation is carried out by
the NC on the machine.
NOTE:
You can manage the tangent axis (which may or may not belong to one of the two rotational axes
associated with the machine kinematics) and define additional axes beyond those belonging to the
cartesian triple.
END OF CHAPTER