Koordinatensystem schieben, drehen und skalieren
G-Code: G53
, G54
, G55
, G56
Funktion:
Die G-Code-Befehle G54
, G55
und G56
schieben, drehen und skalieren das Decoderkoordinatensystem, das der Interpreterbaustein SMC_NCInterpreter
intern verwendet. Die Koordinatentransformationen werden während der Ausführung der Funktionsbaustein-Instanz SMC_NCInterpreter
bei allen Bahnelementen berechnet.
G-Code-Befehl G53
setzt das Decoderkoordinatensystem zurück in die ursprüngliche Lage, Orientierung und Skalierung: Es entspricht dem Maschinenkoordinatensystem.
Tipp
Verschieben und verdrehen Sie das Decoderkoordinatensystem, um den G-Code von Bahnelementen, die sich gleichen und nur durch Lage, Orientierung oder Skalierung unterscheiden, immer wieder zu verwenden.
Tipp
Das Drehen und Skalieren des Decoderkoordinatensystems funktioniert nur im Online-Interpreter (nicht im CNC-Editor).
Koordinatensysteme MCS und DCS
Das Maschinenkoordinatensystem MCS (engl. Machine Coordinate System) wird durch die verwendete Kinematik vorgegeben, die dessen Lage und Orientierung bestimmt.
Das Decoderkoordinatensystem DCS (engl. Decoder Coordinate System) ist ein Koordinatensystem, das der Interpreter (Funktionsbaustein-Instanz SMC_NCInterpreter
) verwaltet. Alle Koordinatenangaben für Bewegungsbefehle werden in diesem Koordinatensystem interpretiert. Das betrifft die Zielposition einer Bewegung (X/Y/Z
), aber auch einen Kreismittelpunkt (I/J/K
) oder eine Ebene, die mit G15/G16/G17/G18/G19
eingestellt wird.
Das DCS wird mit den Befehlen G53/G54/G55/G56
programmiert. Sie können das DCS bezogen auf das Maschinenkoordinatensystem drehen, schieben oder skalieren, und somit innerhalb der G-Codedatei beliebig oft in Lage, Orientierung und Skalierung anpassen. Sie programmieren die Bahnelemente relativ zum DCS. Das kann beispielswiese bei gleichen Bahnenelementen in verschiedenen Lagen und Orientierungen von Vorteil sein.
Die nachfolgende Grafik zeigt eine Verschiebung (links) und eine Verschiebung mit Verdrehung (rechts).

Der Interpreter erhält über seinen Eingang eOriConv
die Information, ob A/B/C
als Zusatzachsen behandelt werden oder als Orientierungswerte. Dementsprechend werden die Koordinaten der Bahnelemente transformiert. Der Interpreterbaustein verwaltet somit ein aktives Koordinatensystem. Initial, wenn das DCS weder verschoben, noch gedreht oder skaliert ist, entspricht das DCS dem MCS. Die Start- und Zielposition und die Ebene für Kreisbögen werden in den erzeugten GeoInfo-Objekten immer relativ zum MCS angegeben.
| Keine Orientierungskonvention angegeben. Der Inhalt der G-Code-Worte A/B/C wird als Schiebewert interpretiert. |
| Die Orientierungskonvention ist die Standard-Y-Konvention (Z, Y‘, Z‘‘). Der Inhalt der G-Code-Worte A/B/C wird als Winkel interpretiert. |
| Die Orientierungskonvention ist die Gier-Nick-Roll-Konvention (Z, Y‘, X‘‘). Der Inhalt der G-Code-Worte A/B/C wird als Winkel interpretiert. |
| Die Orientierungskonvention ist die XYZ-Konvention (X, Y‘, Z‘‘). Der Inhalt der G-Code-Worte A/B/C wird als Winkel interpretiert. |
Befehl G53, G54, G55, G56
G-Code | Beschreibung |
---|---|
| Setzt das Decoderkoordinatensystems zurück Das DCS wird wieder in die gleiche Lage und Orientierung gebracht wie das MCS. |
| Schiebt, dreht und skaliert das DCS absolut Die Werte beziehen sich auf das MCS. Wenn keine Orientierungskonvention angegeben ist ( Wenn eine Orientierungskonvention angegeben ist, bewirkt der Befehl auch eine Schiebung entlang der Achsen X/Y/Z und entlang zusätzlichen linearen Achsen P/Q/U/V/W. Außerdem werden die Koordinatenachsen gedreht. Dabei gibt die Orientierungskonvention die Drehfolge an und die G-Code-Wörter A/B/C die Drehwinkel in Grad. Hinweis: Der Interpreter kann gerichtete Drehungen in einem Bereich von -180° bis +180° ausführen. Wenn Sie einen Winkel außerhalb dieses Bereichs angeben, rechnet der Interpreter den Wert so um, dass er im ausführbaren Bereich liegt. Dann erst führt der Interpreter die Drehung der Koordinatenachsen aus. Beispielsweise wird bei einer Winkelangabe von 350° eine Drehung von -10° ausgeführt. |
| Schiebt, dreht und skaliert das DCS relativ zu dessen aktueller Lage und Orientierung Die Werte werden somit relativ zum aktuellen DCS-Ursprung und in Richtung der aktuellen Koordinatenachsen des DCS interpretiert. Bezogen auf das Maschinenkoordinatensystem wird eine weitere Schiebung/Drehung hinzugefügt. Wenn keine Orientierungskonvention angegeben ist, bewirkt der Befehl nur eine relative Schiebung entlang der Achsen X/Y/Z/A/B/C und auf alle zusätzlichen linearen Achsen P/Q/U/V/W. Somit kann auch eine Schiebung entlang der Achsen A/B/C programmiert werden. Wenn eine Orientierungskonvention angegeben ist, bewirkt der Befehl auch eine relative Schiebung entlang der Achsen X/Y/Z und entlang der zusätzlichen linearen Achsen P/Q/U/V/W. Vor allem aber werden die Koordinatenachsen weiter gedreht. Dabei gibt die Orientierungskonvention die Drehfolge an und die G-Code-Wörter A/B/C den Drehwinkel. |
| Setzt den Referenzpunkt des Decoderkoordinatensystems neu Die aktuelle Orientierung, Position und Skalierung des DCS wird als Referenz gesetzt. Tipp: Wenn der Referenzpunkt X0 Y0 Z0 A0 B0 C0 ist, dann wird das DCS identisch zur aktuellen Position und Orientierung gesetzt. |
Syntax
G53 G54 X Y Z A B C I J K P Q U V W G55 X Y Z A B C I J K P Q U V W G56 X Y Z A B C I J K P Q U V W
G-Code Wort | Beschreibung |
---|---|
| Wert, um den das Decoderkoordinatensystem geschoben wird |
| Wenn am Wenn am Hinweis: Beachten Sie bei der Programmierung der DCS-Drehung, dass immer für alle 3 Achsen die Drehwinkel in |
| Skalierung in Richtung X Beispiel: |
| Skalierung in Richtung Y Beispiel: |
| Skalierung in Richtung Z Beispiel: |
| Wert, um den die Zusatzachse des Decoderkoordinatensystems geschoben wird |
DCS schieben
Setzen Sie den Eingang
eOriConv
der Funktionsbaustein-InstanzSMC_NCInterpreter
aufSMC_ORI_CONVENTION.ADDAXES
.Das DCS kann geschoben werden. Eine Drehung ist nicht möglich.
Programmieren Sie die CNC-Bahn. Geben Sie zuerst die Lageverschiebung des DCS an.
Beispiel:
G54 X10 Y10 Z10 A30 B30 C30
Die Achsen X/Y/Z/A/B/C des DCS werden geschoben.
Absoluter Offset
N10 G0 X100 Y100 F100 N20 G54 X50 Y50 (Offset auf 50/50) N30 G1 X0 Y0 (Fahrt nach 50/50) N40 G54 X100 Y100 (Offset auf 100/100) N50 G1 X0 Y0 (Fahrt nach 100/100) N60 G53 (Offset auf 0) N70 G1 X0 Y0 (Fahrt nach 0/0)
Aktuelle Position als Offset
N0 G0 X100 Y100 F100 N10 G56 X0 Y0 (Aktuelle Position 100/100 wird 0/0) N20 G1 X10 (Fahrt nach 110/100) N30 G56 X20 Y0 (Aktuelle Position 110/100 wird 20/0) N40 G1 X0 (Fahrt nach 90/100)
Offset um Wert anpassen
N0 G54 X10 Y20 Z30 U7 (Offset: X=10, Y=20, Z=30, U=7) N10 G55 X-10 U7 (Offset: X=0, Y=20, Z=30, U=14)
Gleiches Bahnelemente in 2 Lagen
N05 G17 N10 G54 X10 Y10 Z10 N20 G01 X6.574 Y-10 Z-1.961 I8.287 J-0.000 N30 G02 X-0.480 Y-10 Z0.008 I-3.527 J4.988E-05 N040 G02 X3.418 Y-9.806 Z4.482 I1.949 J0.097 N50 G55 X10 Y10 Z10 N60 G01 X6.574 Y-10 Z-1.961 I8.287 J-0.000 N70 G02 X-0.480 Y-10 Z0.008 I-3.527 J4.988E-05 N80 G02 X3.418 Y-9.806 Z4.482 I1.949 J0.097

DCS schieben und drehen
Setzen Sie den Eingang
eOriConv
der Funktionsbaustein-InstanzSMC_NCInterpreter
auf die gewünschte Orientierungskonvention, beispielsweiseSMC_ORI_CONVENTION.ZYZ
.Die Orientierungskonvention und damit die Drehfolge der Achsen X/Y/Z des DCS ist programmiert. Bei
SMC_ORI_CONVENTION.ZYZ
ist die Drehfolge ZY’Z‘‘ und entspricht der Standard-Y-Konvention.Hinweis: Solange der Eingang
eOriConv
eine Orientierungskonvention enthält, und nicht den WertSMC_ORI_CONVENTION.ADDAXES
, werden bei den G-Code-BefehlenG54/G55/G56
die Werte der WörterA/B/C
als Winkelangaben für die Drehung interpretiert.Programmieren Sie die CNC-Bahn. Geben Sie zuerst die Lageverschiebung und Drehung des DCS an.
Beispiel:
G54 X10 Y10 Z10 A30 B30 C30
Die Werte der Wörter
A/B/C
geben die Drehrichtung und den Winkel in Winkelgrad an. Entsprechend wird das Koordinatensystem gedreht. Die Werte der WörterX/Y/Z
definieren die Schiebung.Hinweis: Beachten Sie bei der Programmierung der DCS-Drehung, dass immer für alle 3 Achsen die Drehwinkel in
A/B/C
anzugeben sind. Das Fehlen eines Drehwinkels führt zu einem Fehler beim Interpretieren (SMC_DEC_DCS_NOT_ALL_OF_ABC_GIVEN
).Wenn der Eingang
eOriConv
der Funktionsbaustein-InstanzSMC_NCInterpreter
den WertSMC_ORI_CONVENTION.ADDAXES
enthält, ist keine Drehung des DCS möglich. Die Werte inG54/G55/G56
werden als zusätzliche Splineachsenwerte interpretiert. Eine Schiebung ist möglich.
Die Orientierungskonvention ist bei den Beispielen auf den Standard-Y-Konvention festgelegt worden (eOriConv = SMC_ORI_CONVENTION.ZYZ
). Allgemein gilt bei G54
: X/Y/Z/A/B/C/P/Q/V/W
gibt einen absolut neuen Wert im MCS an. G55
: X/Y/Z/A/B/C/P/Q/V/W
gibt einen relativen Wert im DCS an. G56
: X/Y/Z/A/B/C/P/Q/V/W
gibt einen absolut neuen Wert im DCS an.
Absolute Orientierung mit G54
N01 G54 X10 A30 B0 C0
G54
bewirkt eine Schiebung und Drehung. Dabei ist die Lage und Orientierung absolut zum MCS angegeben.
Relative Orientierung mit G55
N01 G54 X10 A30 B0 C0 (Bezieht sich auf MCS) N02 G55 Y10 A0 B30 C0 (Bezieht sich auf das in 01 definierte DCS)
G54
führt hier zu einer Schiebung um 10 Einheiten in X-Richtung und um eine 30°-Drehung um die Z-Achse absolut zum MCS. Im Satz 02 wird das DCS dann um weitere 10 Einheiten in Richtung der gedrehten Y-Achse geschoben und dann um weitere 30° um die gedrehte Y-Achse gedreht. Die Transformation in Satz 02 ist also relativ zur Transformation in Satz 01.
Referenzierung bezogen auf aktuelle Orientierung mit G56
N01 G01 X10 A10 B90 C10 (Orientierung ist A=10°, B=90°, C=10°) N02 G56 A0 B0 C0 (DCS wird auf X=10, A=10°, B=90°, C=10° gesetzt)
G56
bewirkt, dass die aktuelle Orientierung des DCS (im Beispiel programmiert in Satz 01) als Referenz gesetzt wird.
Beispiel Kreisbogen
N0 G17 N0 G54 A0 B90 C0
Die gewählte Kreisebene wird relativ zum DCS interpretiert. Im Beispiel wird mit G17
die X/Y-Ebene gewählt und anschließend das DCS um 90° um die Y-Achse gedreht. Dann ist die gewählte Ebene im DCS nach wie vor die X/Y-Ebene. Im MCS entspricht das der X/Z-Ebene.
Mit G17
wird die X/Y-Ebene gewählt. Danach wird das DCS um 90° gedreht. Das bewirkt, dass im DCS nach wie vor die X/Y-Ebene aktiviert ist. Das entspricht allerdings im MCS der Y/Z-Ebene.
Tipp
Im 2.5D-Modus (G15
) darf nur um die Z-Achse gedreht werden. Eine Drehung um eine andere Achse führt zu einem Fehler, der vom Interpreter gemeldet wird (SMC_DEC_DCS_2D_NOT_IN_XY_PLANE
). Damit bleibt im 2.5D-Modus immer die X/Y-Ebene des MCS eingestellt.
Koordinatensystem skalieren
Wichtig
Wenn nach einer ungleichmäßigen Skalierung eine Drehung programmiert ist, könnte eine Scherung entstehen. In diesem Fall wird der Fehler SMC_DEC_ROTATION_AFFECTS_SCALING
ausgegeben.
Wichtig
Es müssen entweder alle 3 Skalierungsfaktoren angegeben werden oder keiner.
Absolut skalieren
Syntax: G54 I<i> J<j> K<k>
Ein Koordinatensystem kann in den 3 Raumrichtungen X/Y/Z
jeweils unabhängig voneinander gestreckt oder gestaucht werden: Sie können für jede Richtung einen Faktor angegeben. Geben Sie den Skalierungsfaktor für X in I, für Y in J und für Z in K an. Ein Skalierungsfaktor > 1 bewirkt eine Streckung. Ein Skalierungsfaktor < 1 bewirkt eine Stauchung.
10-fache Streckung:
N01 G01 X10 N02 G54 A90 B0 C0 I10 J1 K1 N03 G01 X10 Y20 N04 G01 X5 Y10
Alle Zielpunkte sind in Richtung der gedrehten X-Achse auf das 10-fache gestreckt.
Folgender Code generiert dieselbe Bahn:
N01 G01 X10 N02 G01 X-20 Y100 N03 G01 X-10 Y50.
Sind weder I noch J noch K angegeben, dann bleibt der vorher gesetzte Wert erhalten:
N01 G54 I10 J1 K1 N02 G54 X1 N03 G01 X10
Dieselbe Bahn wird mit folgendem Code bewirkt:
N01 G01 X101
Relativ skalieren
Syntax: G55 I<i> J<j> K<k>
Ein Skalierungsfaktor > 1 bewirkt eine Streckung. Ein Skalierungsfaktor < 1 bewirkt eine Stauchung. Dabei multiplizieren sich die Skalierungsfaktoren.
100-fache Streckung:
N01 G54 I10 J1 K1 N02 G55 I10 J1 K1 N03 G01 X10 Y20 N04 G01 X5 Y10
Folgender Code bewirkt die gleiche Skalierung:
N01 G55 I100 J1 K1
Kreis skalieren
Die Skalierung eines Kreisbogens ist nur gültig, wenn nach der Skalierung das Element noch ein Kreisbogen (keine Ellipse) ist.
Wenn alle 3 Skalierungsfaktoren denselben Betrag haben
Wenn die Kreisebene eine der Hauptebenen des DCS ist und die entsprechenden 2 Skalierungsfaktoren denselben Betrag haben
Koordinatensystem spiegeln
Eine absolute Skalierung mit negativen Skalierungsfaktoren in I
, J
oder K
bewirken Spiegelungen des aktuellen Koordinatensystems.
Negativer Skalierungsfaktor
G54 A30 B0 C0 I-1 J1 K1