Zero Offest Shifts (G53,G54...59)
G53 zero shift suppression
| Command | G53 (default setting) | 
| Cancellation | G54..G57 | 
Deactivate any zero offset shift translation. This adjustment is the default. The deactivation becomes active also for the current block. See sections Zero Offset Shift and G58/ G59 for details.
G54..G57 adjustable zero shift
| Command | G54 | 
| Cancellation | G53 | 
Activates the translation that is associated with the given G-Code (TZ54…TZ57). Also activates the translations of G58 and G59. The translations apply to the current block and all succeeding blocks until changed. See section Zero Offset Shift for details.
G58, G59 programmable zero shift
| Command | G58 or G59 | 
| Cancellation | G53 | 
Set the translation that is associated with the given G-Code. The new translation value is given by the parameters X,Y,Z, which are mandatory. By default, the associated translations are zero. See section Zero Offset Shift for details.
Example:
The resulting MCS (machine coordinate system) path and the applied translations of this example are shown in Figure “ExampleG54G58G59”.
- The first line sets the translation that is associated with G54to[0,5,0].
- The next line sets the programmed translation of G58to[0,10,0]. Since zero-offset-shifts are still disabled (defaultG53), the PCS (program coordinate system) and MCS (machine coordinate system) match.
- Accordingly, the block N20results in a linear movement from MCS (machine coordinate system) coordinate[0,0,0]to[20,0,0].
- The next line activates G54and programs a linear movement alongN30, wherebyG54becomes active before the movement. The programmed PCS (program coordinate system) coordinate[40,0,0]is mapped to the MCS (machine coordinate system) coordinate[40,15,0].
- The next line sets the programmed transformation G59to[0,5,0]. Thereby, the effective translation changes from[0,15,0]to[0,20,0]. Since the current MCS (machine coordinate system) coordinate must not be affected by this change, the current PCS (program coordinate system) coordinate is set to[40,-5,0], implicitly.
- The succeeding ST-functionframeGetstores these coordinates in[pcsX,pcsY,pcsZ].
- The next line merely programs the X-coordinate of the end of segmentN50. Therefore, the PCS (program coordinate system) coordinate of the end of segmentN50is[60,-5,0], which is mapped to the MCS (machine coordinate system) coordinate[60,15,0]. In other words: The translationG59is active, but does not become apparent due to the adaption of the current PCS (program coordinate system) coordinate. (See section Applying Transformations for details.)
- It becomes apparent by the last line, which sets the PCS (program coordinate system) coordinate of the end of segment N60to[80,0,0]. This coordinate is mapped to the MCS (machine coordinate system) coordinate[80,20,0].
!zeroOffsetShiftSet(g:=54, x:=0, y:=5, z:=0);
N10 G58 X0 Y10 Z0
N20 G01 X20 Y0 F6000
N30 G54 X40 Y0
N40 G59 X0 Y5 Z0
!VAR pcsX, pcsY, pcsZ : LREAL; END_VAR
!frameGet(x=>pcsX, y=>pcsY, z=>pcsZ);
N50 X60
N60 X80 Y0
M02
Figure “ExampleG54G58G59”.