# Coordinate systems

After the homing, the controller is at the machine zero point or in the machine coordinate system. If this is followed by inputs from the NC program (e.g. X100), the programmed coordinates (Index p) then coincide with the absolute coordinates (Index a):

| xa = xp ya = yp |

Offsets occur due to the definition of workpiece coordinate systems. The spatial positions in the workpiece coordinate system differ from the coordinate systems that are defined by the physical machine axes. Here a distinction must be made between programmed, constant, translatory offsets in a single axis and dynamic offsets that result from kinematic (e.g. cylindrical ⇔ Cartesian) or geometric transformations (e.g. tool radius compensation, mirroring), which in general affect several axes.

For example, the zero point can be offset from machine zero point M to a freely selectable workpiece zero point W or a workpiece coordinate system by a zero offset (NPV-G54…G59). The absolute coordinates result from adding NPV and programmed coordinates:

| xa = xNPV + xp ya = yNPV + yp |

Irrespective of these NPVs specified by the zero offset data block, additional offset types can be explicitly programmed in the subroutine e.g. with G92 X... Y ... Z ...

This reference point offset (BPV) is added to the preceding NPV. The absolute coordinates can then be determined as follows:

| xa = xNPV + xBPV + xp ya = yNPV + yBPV + yp |

Defining a workpiece coordinate system using NPV and BPV (for legend, see below)

| xa, ya : | Absolute coordinates
| xp, yp : | Programmed coordinates
| xNPV, yNPV : | Zero offset
| xBPV, yBPV : | Reference point offset
| M : | Machine zero point
| W : | Workpiece zero point
| B : | Reference point for coordinates
| P : | Position

The coordinate display on the user interface shows active offsets by the remaining difference between the coordinates of physical machine axes (ACS) and workpiece coordinates (PCS). However, some offsets also result from manipulating machine and workpiece coordinates (e.g. tool radius compensation, mirroring) and therefore do not result in a coordinate difference.

The tables below provide an overview of the additional offset types in anticipation of the sections further below. The following conditions for the parameters are active:

Activation and deactivation infer the time when the offset becomes visible on the user interface as a coordinate difference or change in coordinates. However in general, an offset only becomes physically active at the earliest with the first motion that follows any activation or deactivation. For example, deactivation at program end leads to a compensating motion in the first motion of the following program.

## Programmable offsets (linear, constant)

No. | Description | Definition | ACS – PCS Difference when active | Activation | Deactivation | Temporary suppression
1 | Reference point offset | NC program | yes | NC block “G92 X.. Y..“ G90/91 Consider dependency | NC block “G92 X0 Y0“ or NC program start | "#SUPPRESS OFFSETS" "#MCS ON"
2 | Zero offset | List NC prg. | yes | NC block “G54...G59” | NC block “G53“ or NC program start | “#SUPPRESS OFFSETS“ "#MCS ON"
3 | Clamp position offset | List | yes | Program paths Not changeable during program | NC program start Not changeable during program | “#SUPPRESS OFFSETS“ "#MCS ON"
4 | Tool offset | List NC prg. External | yes | NC block “D..“ | NC block “D0“ or NC program start | “#SUPPRESS OFFSETS“ "#MCS ON"
5 | Position preset | NC program | yes | NC block "#PSET.." | NC block ”#PRESET...“ or program start | “#SUPPRESS OFFSETS“ "#MCS ON"
6 | CS offset | NC program | yes | NC block ”#CS ON[vx,vy,vz,.." | NC block “#CS OFF“ or NC program end | "#MCS ON"
7 | ACS offset | NC program | yes | NC block ”#ACS ON[vx,vy,vz,..“ | NC block ”#ACS OFF“ or NC program end | "#MCS ON"

## Offsets caused by geometric transformation (linear, dynamic):

No. | Description | Definition | ACS – PCS Difference when active | Activation | Deactivation | Temporary suppression
8 | CS | NC program | yes | NC block ”#CS ON[..,..,..]“ | NC block “#CS OFF“ or NC program end | "#MCS ON"
9 | ACS | NC program | yes | NC block ”#ACS ON[..,..,..]“ | NC block “#ACS OFF“ or NC program end | "#MCS ON"
10 | Contour rotation | NC program | No | NC block ”#ROTATION ON[ANGLE..]” | NC block ”#ROTATION OFF” | "#MCS ON"
11 | Mirroring | NC program | No | NC motion block after G21/22/23 | NC motion block after G20 | Not suppressible
12 | Tool radius compensation | NC program | No | NC block G41/42 | NC block G40 | Not suppressible
13 | Kinematic transformation | NC program | No | NC block ”#TRAFO ON Automatic program start | NC block ”# TRAFO OFF | "#MCS ON"

## Offsets caused by special functions:

No. | Description | Definition | ACS – PCS Difference when active | Activation | Deactivation | Temporary suppression
14 | Offset due to manual mode with parallel interpolation | Handwheel NC prg. | yes | NC block "G201" | NC block "G202" | Not suppressible
15 | Offset due to measurement run | NC program | yes | NC block "G101" | NC block "G102" | "#SUPPRESS OFFSETS" "#MCS ON"
16 | Offset after ho- ming | NC program | No | NC block “G74 X.. Y.. Z.. “ | Not possible | Not suppressible

The NC command #SUPPRESS OFFSETS only acts within an NC block

The NC command #MCS ON deactivates any offsets until command #MCS OFF is programmed.

Within every (A)CS the offset types 1, 2 and 5 are stored "locally”.

Overview of additional offsets and coordinate systems