Rotation

Neben der Nullpunktverschiebung ist es auch möglich, eine Rotation (Drehung) zu programmieren. Dabei wird zwischen einer absoluten und einer additiven Rotation unterschieden.

Mit der Rotation können im Werkstückkoordinatensystem die Koordinatenachsen (X, Y und Z) gedreht werden.

Damit ist es möglich, schräg liegende Flächen (in der Ebene oder auch im Raum) zu bearbeiten.

Absolute Rotation

Befehl

ROT X<Wert(x)> Y<Wert(y)> Z<Wert(z)>

Aufhebung

ROT (ohne Parameter)

Die Anweisungen zur Rotation müssen in einem eigenen Satz programmiert werden. Dabei sind die Winkelangaben grundsätzlich in Grad vorzunehmen.

Drehrichtung

Ein positiver Winkel beschreibt die Drehung in Richtung der positiven Koordinatenachse und Drehung gegen den Uhrzeigersinn.

Durchführung der Drehung

Bei der Drehung eines Koordinatensystems ist die Reihenfolge der Drehung von entscheidender Bedeutung. In TwinCAT NC I wird die Rotation immer in folgender Reihenfolge um das globale Koordinatensystem durchgeführt:

  1. Drehung um die Z-Achse,
  2. Drehung um die Y-Achse,
  3. Drehung um die X-Achse.

Diese Reihenfolge wird auch dann eingehalten, wenn die Parameter in einer anderen Reihenfolge programmiert werden.

Als Drehpunkt wird immer der Ursprung des Werkstückkoordinatensystems verwendet. D. h. die gerade aktive gesamte Nullpunktverschiebung beschreibt den Drehpunkt.

Additive Rotation

Neben der absoluten Programmierung der Rotation, ist es auch möglich diese additiv durchzuführen. Dabei gelten die gleichen Bedingungen wie bei der absoluten Rotation.

Befehl

AROT X <Wert(x)> Y<Wert(y)> Z<Wert(z)>

Aufhebung

ROT (ohne Parameter)

Beispiel:

N10 G01 G17 X0 Y0 Z0 F60000
N20 G55
N30 G58 X200 Y0
N50 L47
N60 G58 X200 Y200
N65 ROT Z30
N70 L47
N80 G58 X0 Y200
N90 AROT Z15
N100 L47
N110 M30
L47
N47000 G01 X0 Y0 Z0 (movements for zero shift & rotation)
N47010 G91 (incremental dimensions)
N47020 G01 X100
N47030 G01 Y80
N47040 G03 X-20 Y20 I-20 J0
N47050 G01 X-40
N47060 G01 Y-40
N47070 G01 X-40 Y-30
N47080 G01 Y-30
N47090 G90
N47100 M17
Rotation 1:

In diesem Beispiel wird die gleiche Kontur unter verschiedenen Drehwinkeln verfahren. Da die Kontur (L47) im Kettenmaß programmiert ist und der Anfangspunkt über die programmierte Nullpunktverschiebung beschrieben wird, ist die Drehung recht anschaulich.

Hinweis:

Nach der Programmierung des ROT- bzw. AROT-Kommandos muss immer der komplette Bahnvektor (X, Y & Z) zugewiesen werden.

Erweiterungen der Rotation

In der Default-Konfiguration muss nach einem ROT-Kommando immer der komplette Bahnvektor programmiert werden. Da dies in einigen Applikation schwer zu realisieren ist, kann optional diese Berechnung automatisch im Interpreter erfolgen. Möchte man diese Option nutzen, so sollte zu Beginn des NC-Programms 'RotExOn' programmiert werden.

Befehl

RotExOn

Aufhebung

RotExOff

Beispiel:

N10 RotExOn
...
N100 G54 (activate zero point & point of rotation)
N110 ROT X90
N120 G0 Z3 (preposition the tool)
N130 G01 Z-10 F6000 (lower to cutting depth)
N140 G01 X100
N150 G01 Z3 (raise to preposition)
...
N1000 RotExOff
N1010 M30

Berechne Rotation

Befehl

CalcRot[ R<s>; R<t>; R<u>]

 

CalcInvRot[ R<s>; R<t>; R<u>]

Parameter

Die 3 R-Parameter beschreiben den zu berechnenden Vektor. Mit der Berechnung wird das Ergebnis in diese R-Parameter eingetragen und der ursprüngliche Wert damit überschrieben

Die Funktion CalcRot rotiert einen dreidimensionalen Vektor um die aktuellen Rotationswinkel. Dabei wurden die Rotationswinkel zuvor mit ROT bzw. AROT beschrieben. Die Reihenfolge der Berechnung ist die gleiche wie bei der eigentlichen Rotation, also Z, Y und X.

Die Funktion CalcInvRot verhält sich genau umgekehrt. Dabei werden die Vorzeichen der aktuell gültigen Rotationswinkel invertiert und die Reihenfolge der Berechnung ist X, Y und Z. Der Vektor wird also quasi zurückgedreht.

CalcRot und CalcInvRot generieren keine Geometrie, sondern führen lediglich die Berechnung des Vektors aus.

Beispiel:

N10 G01 X40 Y10 Z0 F6000 (the axes are moved
without rotation)
N20 R1=40 R2=10 R3=0

N30 ROT Z45

(What is the position to which X, Y, must be taken so that no
movement is executed?)
N40 CalcInvRot[R1; R2; R3]
N50 G01 X=R1 Y=R2 Z=R3 (R1=35.35 R2=-21.21 R3=0)
N60 ...

Befehl

RotVec[ R<x>; R<y>; R<z>; R<α>; R<β>; R<γ>]

Parameter

Die 3 R-Parameter (x..z) beschreiben den zu drehenden Vektor. Mit der Berechnung wird das Ergebnis in diese R-Parameter eingetragen und der ursprüngliche Wert damit überschrieben
Die letzten 3 R-Parameter beschreiben die Winkel.

Die Funktion RotVec rotiert einen dreidimensionalen Vektor um die mitgegebenen Winkel. Dabei ist die Reihenfolge der Drehung wie beim ROT Z, Y und X. RotVec ist eine reine Berechnungsroutine zum Drehen eines Vektors und hat keine Auswirkungen auf ROT bzw. AROT.