A channel of a multi-channel machine can switch a kinematic
transformation on and off from the part program, Siemens style
(SINUMERIK function manual "Transformations"). This is an addition to the
switchable kinematics of LinuxCNC ([cha:switchable-kinematics], G12.1):
the transformation sits between a channel’s pose and its joints, so every
channel has its own, and the data come from the INI file of the channel.
A single-channel machine keeps using switchkins.
The transformations
TRAORI,TRAORI(n)-
Orientation transformation for a milling head on a swivel axis: the program gives the position of the tool centre point and the swivel angle (or an orientation vector), the control compensates the linear axes so that the tip stays where it is programmed while the head swivels. The tool length offset (G43) of the tool table is part of the tool vector and swivels with the head.
TRANSMIT,TRANSMIT(n)-
Face transformation of a turning centre: the program writes Cartesian
X/Yon the face of the part, the control moves the radial linear axis and the workpiece rotary axis (C). The pole side is configurable (POLE_SIDE0 through the pole, 1 in front, 2 behind); near the pole the feed is reduced so that the rotary axis stays within its velocity limit. TRACYL(d),TRACYL(d, n)-
Cylinder surface transformation:
Yis the unrolled coordinate on the cylinder of diameterdover the rotary axis. The groove side offset (k) is not supported. TRAFOOF-
Transformation off. Selecting another transformation switches.
The statements are read-ahead stops: the position is read back in the new
coordinates once motion switched. Reset and program end keep the
transformation (Siemens TRAFO_RESET_VALUE behaviour "stay"). Cutter
radius compensation must be off when selecting.
Data sets in the INI file
Up to 6 data sets per channel under [CHANNEL_n] ([CHANNEL_0] for
channel 0), k = 1.. is the number given in the statement; the axes are
named with their machine axis names.
[CHANNEL_2]
; TRAORI: the B axis (about machine Y, mathematically positive) swivels the head
; in the X3/Z3 plane; at B = 0 the tool points down (-X3), its tip 230 mm below
; the pivot, so TCS -Z is machine -X3
TRAORI_1_BASE_TOOL = -230 0 0 ; pivot -> gauge point at B = 0 (channel axes X Y Z)
TRAORI_1_ROT_AXIS = B ; the swivel axis (machine axis name)
TRAORI_1_ROT_DIR = 0 1 0 ; direction of the rotation axis
TRAORI_1_ROT_SIGN = 1 ; -1 when the axis turns clockwise
TRAORI_1_ROT_OFFSET = 0 ; swivel position of the base orientation
; TRANSMIT / TRACYL on the main spindle (GET(C1) first)
TRANSMIT_1_LINEAR = X3 ; radial axis
TRANSMIT_1_ROT = C1 ; the rotary axis (must be in the channel)
TRANSMIT_1_LONG = Z3 ; axis parallel to the rotary axis (unchanged)
TRANSMIT_1_VIRTUAL = Y ; the virtual axis (default Y)
TRANSMIT_1_POLE_SIDE = 1
TRACYL_1_ROT = C1
TRACYL_1_LINEAR = X3 ; radial infeed (unchanged)
TRACYL_1_LONG = Z3
The data sets are handed to motion at start-up so that the TCS jog knows the tool axis before any program selected a transformation.
Maths (for integrators)
With t = BASE_TOOL minus the tool length offset in force, a =
ROT_DIR, θ = ROT_SIGN · (B - ROT_OFFSET) and the rotation R(θ)
about a: TRAORI gives TCP = J - t + R·t for the joints J (inverse: J = P
+ t - R·t); TRANSMIT computes r = √(X²+Y²), φ = atan2(Y, X) with a
continuous rotary axis; TRACYL maps Y to the rotary axis by Y·360/(π·d).
The real joint behind a virtual axis holds its position; the status pose
shows the machine value of the rotary axis that a transformation drives.
Orientation vectors A3, B3, C3
With TRAORI in force a block may give the tool orientation as a vector
instead of the swivel angle: A3= B3= C3= are the components of the
direction from the tool tip into the tool (machine axes, Siemens ORIMKS).
The interpreter turns the vector into the swivel axis word of the block;
an orientation that the single rotary axis cannot reach (a component along
the rotation axis that differs from the base orientation), the zero vector
and orientation words without TRAORI are errors. With a swivel axis about
Y and a tool pointing -Z at B = 0, G0 A3=1 C3=0 sets B90, G0 C3=1
sets B0. Euler angles (A2/B2/C2) are not supported.
TCS: jogging in the tool coordinate system
The TCS key of the machine control panel (command.set_tcs(on),
status tcs, HAL motion.N.tcs) switches the jog of a channel >= 1 into
the tool coordinate system: the Z key moves along the tool axis of the
(possibly swivelled) head, X along the swivel axis, Y perpendicular to
both. The frame comes from the channel’s TRAORI data set (no TRAORI
needs to be selected); when the swivel axis moves while jogging the frame
is set up again. Without a TRAORI data set TCS is the machine system. The
position table of mchmi reads "TCS" while it is on.