Machine, CL & Workpiece Coordinate Variables

The variables in this section are used to access positional data. Setting positional data through system variables is supported, but not recommended.

The linear axes of the machine are identified using the letters XYZ for primary linear axes, UVW for secondary linear axes and E for an extending (or quill) axis. The rotary axes of the machine are identified using the letters ABC for the main rotary axes, N for the first attachable rotary and D for second attachable rotary. The ABC letters can optionally be followed by H or T to distinguish a rotary head axis from a rotary table axis. Prior to V23, the XYZ axes of the SIDE head of a merging lathe were identified as UVW axes; starting with V23 either XYZ or UVW axes variables can be used.

A leading L or N character indicates the last or next position of the axis. On a merging lathe, the last and next values are based on the last and next motions for the current head, which may not necessarily be the last and next motions in the CLDATA.

${ABC[TH]}SHFT

A, B and C-axis shift value

Type: Numeric, Read/Write

${ND}SHFT

Nutating axis shift value

Type: Numeric, Read/Write

These variables contain the A, B, C and Nutating N, D axis shift values to be added to the corresponding registers before being punched to tape. This shift information is obtained from the Machine Description section of QUEST and can be changed during GENER processing. If the machine does not have the named axis, the corresponding value will be zero (0) and not settable.

$H{ABC[TH]}H

A, B and C-axis head change location

Type: Numeric, Read/Write

$H{ND}H

Nutating N, D axis head change location

Type: Numeric, Read/Write

These variables contain the A, B, C and Nutating N, D axis head change home positions as selected in QUEST. If the machine does not have the named axis, or does not have a head change location, the corresponding value will be zero (0) and not settable.

$H{ABC[TH]}M

Machine A, B and C-axis home or FROM location

Type: Numeric, Read/Write

$H{ND}M

Machine Nutating N, D axis home or FROM location

Type: Numeric, Read/Write

These variables contain the machine A, B, C and Nutating N, D home or FROM positions. For the A, B and C-axis variables, the inclusion of a T specifies a table axis and H, a head. If the machine does not have the named axis, the corresponding value will be zero (0) and not settable.

$H{XYZUVWE}H

X, Y, Z, U, V, W and E-axis head change locations

Type: Numeric, Read/Write

These variables contain the X, Y, Z, U, V, W and E-axis head change home positions as selected in QUEST. If the machine does not have the named axis, or if it has no head change location, then the corresponding value will be zero (0) and not settable.

$H{XYZUVWE}M

Machine X, Y, Z, U, V, W and E-axis Home/FROM positions

Type: Numeric, Read/Write

These variables contain the X, Y, Z, U, V, W and E-axis home or FROM positions. If the machine does not have the named axis, then the corresponding value will be zero (0) and not settable.

$[NL]{ABC[TH]}J

Joint A, B or C-axis rotation

Type: Numeric, Read-only

$[NL]{ND}J

Joint Nutating N, D axis rotation

Type: Numeric, Read-only

These variables contain machine A, B, C and Nutating N, D rotary axis joint positions, which include the effects of tool length and fixture (workpiece) compensation, as defined by the LIMIT/LENGTH and LIMIT/ADJUST commands (see “The LIMIT Command [MLEPC]”). $AJ, $BJ and $CJ refer to the current A, B and C rotary head or table axis joint positions. $NJ refers to the primary Nutating axis joint position. $DJ refers to the dual Nutating axis joint position.

If your machine has two axes of the same type (for example, B-axis head and table axes), specific names exist; $ATJ, $BTJ and $CTJ refer to table axes and $AHJ, $BHJ and $CHJ refer to the corresponding head axes.

Variables beginning with N are next axis position variables. For example, $NAJ refers to the next A-axis joint value and $NBTJ contains the next B-axis table joint value. Variables beginning with an L are last axis position variables. For example, $LCHJ contains the last C-axis head joint value.

If the machine does not have the named axis, the corresponding value will be zero.

$[NL]{ABC[TH]}M

Machine A, B or C-axis rotation

Type: Numeric, Read-only

$[NL]{ND}M

Machine Nutating N, D axis rotation

Type: Numeric, Read-only

These variables contain machine A, B, C and Nutating N, D rotary axis positions. These are similar to the joint axes listed above, but do not include the effects of tool length compensation or fixture (workpiece) compensation. $AM, $BM and $CM refer to the current A, B and C rotary head or table axis positions. $NM refers to the primary Nutating axis position. $DM refers to the dual Nutating axis position.

If your machine has two axes of the same type (for example, B-axis head and table axes), specific names exist; $ATM, $BTM and $CTM refer to table axes and $AHM, $BHM and $CHM refer to the corresponding head axes. In subsequent sections, table specific names may be identified by the fact that they are composed of the generic variable name plus the letter T. Similarly, head axis specific names contain the letter H.

Variables beginning with N are next axis position variables. For example, $NAM refers to the next A-axis value and $NBTM contains the next B-axis table value. Variables beginning with an L are last axis position variables. For example, $LCHM contains the last C-axis head value.

If the machine does not have the named axis, the corresponding value will be zero.

$[L]{ABC}W

Tool orientation relative to current active frame

Type: Numeric, Read/Write

These variables represent the tool orientation in the current RTCP output format. The values can indicate a direction vector, the upper point of the “two-points” programming output, coefficients of the virtual axis (RPY, Euler, or custom virtual axis), or standard active rotary axes when RTCP is not active. Names beginning with L refer to the last tool orientation coefficients used in the previous motion.

$[NL]{IJK}M

Machine tool axis I, J and K-vector components

Type: Numeric, Read-only

These variables contain the machine I, J and K cosine vectors of the tool axis. $IM, $JM and $KM refer to the current vector values. Names beginning with N are next vector components and those beginning with L are last vector components. The default tool axis vector is 0,0,1 for cases where the tool orientation has not been changed by the movement of rotary axes, or by a LOAD, LOADTL or TOOLNO statement.

$[NL]{XYZIJK}C

CL file X, Y, Z, I, J, K coordinates

Type: Numeric, Read-only

These variables contain the CL file X, Y, Z, I, J and K coordinates. $XC, $YC, $ZC, $IC, $JC and $KC refer to the current values. Names beginning with N are next values and those beginning with L are last coordinate values.

$[NL]{XYZUVWE}J

Joint X, Y, Z, U, V, W and E-axis positions

Type: Numeric, Read-only

These variables contain the machine X, Y, Z, U, V, W and Extending (E) axis joint positions, which include the effects of tool length and fixture (workpiece) compensation, as defined by the LIMIT/ LENGTH and LIMIT/ADJUST commands (see “The LIMIT Command [MLEPC]”). $XJ, $YJ, $ZJ, $UJ, $VJ, $WJ and $EJ represent current axes positions.

Variables beginning with an N contain next axes joint positions. For example, $NXJ refers to the next X-axis joint value. Variables beginning with an L are last axes joint position variables. For example, $LUJ contains the last U-axis (or secondary X-axis) joint value.

If the machine does not have the named axis, the corresponding value will be zero (0).

$[NL]{XYZUVWE}M

Machine X, Y, Z, U, V, W and E-axis positions

Type: Numeric, Read-only

These variables contain the machine X, Y, Z, U, V, W and Extending (E) axis positions. These are similar to the joint axes listed above, but do not include the effects of tool length compensation or fixture (workpiece) compensation. $XM, $YM, $ZM, $UM, $VM, $WM and $EM represent current axes positions.

Variables beginning with an N contain next axes positions. For example, $NXM refers to the next X-axis value. Variables beginning with an L are last axes position variables. For example, $LUM contains the last U-axis (or secondary X-axis) value.

If the machine does not have one of the named axes, the corresponding value will be zero (0).

$[NL]{XYZ}W

LCS X, Y, Z coordinates

Type: Numeric, Read/Write

$[NL]{IJK}W

LCS I, J, K coordinates

Type: Numeric, Read-only

These variables contain the local coordinate system (LCS) X, Y and Z coordinates of the tool tip and the I, J and K cosine vectors of the tool axis when a local coordinate frame is active. If a local coordinate frame is not active then these variables return machine coordinates instead (e.g., $ZW returns $ZM when a local coordinate frame is not active). $XW, $YW, $ZW, $IW, $JW and $KW refer to the current position. Names beginning with N are next values and those beginning with L are last coordinate values.

$T{ABC[TH]}H

A, B and C-axis tool change location

Type: Numeric, Read/Write

$T{ND}H

Nutating N, D axis tool change location

Type: Numeric, Read/Write

These variables contain the A, B, C and Nutating N, D axis tool change home positions as selected in QUEST. If the machine does not have the named axis, or does not have a tool change location, the corresponding value will be zero (0) and not settable.

$T{XYZUVWE}H

X, Y, Z, U, V, W and E-axis tool change locations

Type: Numeric, Read/Write

These variables contain the X, Y, Z, U, V, W and E-axis tool home positions as selected in QUEST. If the machine does not have the named axis, or if it has no tool change location, then the corresponding value will be zero (0) and not settable.

$CLAMPM{XYZUVWE}

X, Y, Z, U, V, W and E-axis hardware clamped status

Type: Numeric, Read/Write

$CLAMPM{ABC[TH]}

A, B and C-axis hardware clamped status

Type: Numeric, Read/Write

$CLAMPM{ND}

Nutating N, D axis hardware clamped status

Type: Numeric, Read/Write

$CLAMPM

Array of hardware clamped status of axes

Type: Numeric, Read/Write

These variables contain the status of the axis indicating if axis is clamped or unclamped.

0:

Axis is unclamped and is available for any movement

1:

Axis is clamped and hardware break is applied.

The $CLAMPMAT, $CLAMPMBT and $CLAMPMCT refer to rotary table axes while $CLAMPMAH, $CLAMPMBH and $CLAMPMCH refer to the corresponding rotary head axes. $CLAMPMA, $CLAMPMB and $CLAMPMC variables refer to either a rotary head or a rotary table depending of which one is available or active in the machine.

The $CLAMPM(iaxis) macro variable is an array of 15 elements which contain the hardware clamped status of the 15 possible axes, as follows:

1, 2, 3

X, Y and Z linear axes

4, 5, 6

U, V and W secondary linear axes

7, 8, 9

A’, B’ and C’ rotary table axes

10, 11, 12

A, B and C rotary head axes

13

Extending (quill) axis

14, 15

N1 and N2 removable rotary head axes