... mit PALmill5
Wer nicht länger nur ein (verunsichertes) Anhängsel seiner
Technisch-mathematische Grundlagen
Um die Schwenkposition zu beschreiben, benötigt man den sog. Eulerwinkel. Das ist der Winkel, um den ein Objekt (Werkzeug bzw. Werkstück) um eine definierte Achse gedreht wird.
![]() |
Da ein Raum dreidimensional ist, sind auch 3 Schwenkachsen nötig, um jede beliebige (Ver_)drehung zu erreichen.
Die 3 Linearachsen X, Y, Z stehen sinnvollerweise senkrecht zueinander, und zwar nach den Fingern der rechten Hand. (sog. "Rechte-Hand-Regel"; s. linke Skizze) |
![]() |
Die 3 zugehörigen Schwenkachsen A, B, C bilden sich lt. dem math. Rechtssystem (= rechtshändiges Koordinatensystem): Zeigt der Daumen der rechten Hand in Richtung der Linearachse, so zeigen die Finger die Drehrichtung der zugehörigen Drehachsen an. (s. linke Skizze) |
![]() |
Um die Bearbeitungsebene von der Waagerechten ("Flächen-Normale" o. Normalenvektor C zeigt nach oben.) zu einer anderen,
beliebigen Orientierung zu bekommen, benötigt man nur 2 Achsen. Hier sind's die Achsen A + B. --> CNC-Maschinen haben neben 3 Linearachsen meist nur 2 Schwenkachsen.
... denn eine Drehung des Werkzeuges (C-Achse) spielt außer beim Senkerodieren keine Rolle. |
Muss man (und muss die Steuerung) sich dann die gesamte Schwenk-"Historie" merken, damit die Lage aller Achsen eindeutig bestimmt ist?
Nein! Man beschreibt jede neue Schwenkposition, als sei sie aus 3 Drehungen um die feststehenden "Welt"-Koordinatenachsen A, B und dann C entstanden; nur diese 3 Raumwinkel bleiben gespeichert. Sie bilden die math. Basis für den "Schwenkzustand".
Andere Bezeichnungen für die (Spatial- oder) Raumwinkel A, B und C sind:
Roll Pitch Yaw
Roll- Nick- und Gierwinkel
Bank Attitude Heading
Phi Theta Psi
Der Mathematiker ist fertig und zufrieden, aber an den Maschinen sind doch ganz andere Drehachsen?
By the way Mathematiker: Die Rotationsmatix ist identisch mit dem "bunten Koordinaten-Dreibein XYZ" in der PALmill-Simulation von der "Länge 1".
![]() |
Der Maschinenhersteller entscheidet (je nach Raumbedarf, Kosten, Steifigkeit, Leistung, Maßhaltigkeit, ...) wie und weiviel Schwenkachsen er einbaut.
Oft wird durch das Schwenken um eine Achse eine andere Achse in ihrer Ausrichtung verändert. Das bedeutet, dass die Schwenkwinkel der real vorhandenen Maschinenachsen (Achswinkel, o. Kardanwinkel) nicht immer mit den o.g. Raumwinkel identisch sein dürften!! Im linken Beispiel bleiben die Achsen B und C ortsfest; A verändert sich durch B. | |
![]() |
Im 2. Bild verändert sich die Raumlage der Achse A, wenn B schwenkt.
Wird die C-Koordinate verändert, so ändern sich die Lagen von A und B!! Ein CNC-Programm, das die Winkel der Maschinenachsen verwenden würde, liefe nur auf Maschinen richtig, die die gleiche prinzipielle Bauweise der Schenkachsen hätten. | |
![]() |
CNC-Programme sollten aber auf allen Maschinentypen richtig funktionieren!
Ein CNC-Programm müsste also der Steuerung möglichts nicht die Winkel der Maschinenachsen, sondern die Raumwinkel (oder die zugehörige Rotations-matix) mitteilen! Dies geschieht entweder direkt mit G17 AM.. BM.. CM oder indirekt mit den restlichen G16- bzw. G17-Funktionen. Merke: ![]() |
* (Viele Steuerungen erlauben's, weil sie sie intern zu Raumwinkel zurückrechnen.)
(Wer's trotzdem üben will, kann den PALmill-Befehl G170 verwenden. G170 gibt's bei PAL nicht!)
![]() Der Wegbefehl lautete: G00 BT-18 G01 X20 |
Steht die Winkelangabe in einem Wegbefehl, so stellt sich nur das Werkzeug zur Bearbeitungsebene schräg.
Das ist allerdings nur sehr selten erwünscht. In den Skizzen sieht man die (z.T. übertrieben großen) Anstell- oder auch Einstellwinkel. |
![]() Der "Sturz" verbessert hier die Zerspanung. |
![]() |
Zuerst sorgt man dafür, dass das Werkzeug sich "in Sicherheit" befindet. ("Weit genug weg.")
Jetzt wird der Koordinatenursprung verschoben: G59 XA 120 Nun wird das Koordinatensystem um 45 Grad gekippt: G17 BM45 Dadurch ist aber keine Bewegung erfolgt! Erst mit: G00 X0 Y0 Z60 dreht und verfährt das Werkzeug an die Position im neuen Koordinatensystem. (Kollisionsgefahr!) Tipp: Immer alle 3 Koordinaten (X,Y und Z) eingeben, da sonst ein undefiniert Zustand besteht. |
Beide Schritte sind bei PALmill5 erforderlich. (Wie's bei der PAL-CNC aussehen soll, weiß ich nicht.) Bei Heidenhain kann man eingeben, ob und wie die Maschinen(ausgleichs)bewegungen sein sollen.
![]() |
Angenommen, der Winkel Alpha wäre 15 Grad. Damit "Z" des zu drehende Koordinatensystems
senkrecht zur blaue Fläche zeigt, programmiert man:
G17 BM75 ; Nicht genannte Schwenkachsen werden 0 gesetzt. Analog schwenkt man auf die "rosa Fläche" mit: G17 AM75 ( Die Positon des Koordinatensystems hat sich in beiden Fällen natürlich nicht verändert.) |
![]() |
Zuerst muss der Koordinatenursprung mit G59 XA20 ZA70 verschoben werden. Wenn man nun (schrittweise, also inkremental) um die Raumwinkel drehen will, muss man leider beachten, dass die 1. "Dreh-Einstellung" beim nächsten Schritt mitgedreht wird!! Also: Nicht zuerst die B-Achse drehen,sonst liegt X nachher nicht mehr auf I, sondern man muss das Koordinatensystem (mit G17 AM34,44) um X drehen und dann erst um die Raumachse B!! G17 AM34,44 BM36,87 Die Reihenfolge nicht vertauschen! G17 BM36,87 AM34,44 ergäbe eine andere "Schrägstellung" der Ebene! Übrigens: Diese G17-Schwenkbewegung darf nicht in zwei Befehlszeilen aufgeteilt werden, da mit dem G17-Aufruf immer zuerst das Koordinatensystem ungefragt in die Ausgangsstellung zurückgedreht wird!!? (seltsam eigenwillige PAL-Syntax!) |
Das Programmieren mittels Raumwinkeln ist also "gefährlich fehleranfällig"; Alternativen verwenden! s. u.
Wer's nicht glaubt, lege die Y-Achse auf Linie II:
Dann wäre die Drehung der Raumachsen:
G17 BM29,66 AM40,6
Mein Tipp bei "schiefen Schrägen": Lass' die Finger weg von den Raumwinkeln.
|
Viel einfacher ist das Programmieren, wenn man statt um die fixen Raumachsen, um die aktuelle, evtl. schon gekippte Koordinatenachse schwenkt. Das heißt, wir
schwenken im obigen Beispiel umgekehrt: zuerst um die B-Achse und nun um die geschwenkte Achse A. (Die Achsen, die wir bereits geschwenkt haben, bleiben nun fix; die Fehlergefahr ist gesunken.)
Wir verwenden G16, die "inkrementelle Drehung der aktuellen Bearbeitungsebene.
G16 BR36,87 G16 AR34,44 Reihenfolge beachten! Beide Befehle können auch zusammgefasst werden zu: G16 BR36,87 AR34,44 Oh Padauz! Die Drehung von A>B>C um die Raumachsen bewirkt das Gleiche wie die Drehung C>B>A um die momentanen Koordinatenachsen! |
![]() Der Mathematiker schwenkt seine 3 Raumwinkel, der Programmierer die vielen Winkel seiner Bearbeitungsebenen und die CNC-Maschine ihre (beiden) Achswinkel. Die NC-Steuerung beherrscht alle. Eine weitere Erleichterung ist die "Ebenenanwahl mit Schnittwinkeln" G17 AS BS CS:
AS beschreibt den Winkel der Bearbeitungsebene auf der Y-Z-Ebene.
|
![]() |
Nachdem der Koordinatenursprung mit G59 XA20 ZA70 verschoben wurde, wird mit der 1. Winkelangabe die X-Koordinate festgelegt. mit dem 2. Winkel wird Y "angedeutet" (d.h. er muss nicht schon exakt zu X ausgerichtet sein). ! Soll X auf Linie I liegen, so ist's eine "B-Drehung", soll X auf Linie III liegen, so wär's eine "C-Drehung", soll X auf Linie II liegen, so wäre der 1. Parameter AS... G17 BS36,8 CS41,24 Die beiden Winkel definieren eine Fläche, von der die Steuerung die "Flächennormale" (Z-Richtung) errechnet. Aus X und Z wird abschließend die Y-Richtung festgelegt. (Das "Koordinaten-Dreibein" und somit die Rotationsmatrix sind nun definiert.) Will man X lieber auf die Linie III legen, so muss man die Reihenfolge der Winkel vertauschen. Aber Vorsicht Rechtssystem! Damit Z nicht um 180 Grad "umgepolt" wird, muss der 2. Winkel um 180 Grad umgedreht werden. G17 CS41,2 BS216,8 |
Ähnlich funktioniert auch die 4. Alternative: "Drei-Punkte-Definition einer Bearbeitungsebene " |
![]() |
Statt der o.g. Winkel benutzt man zuerst die Linie 1-2 und dann die Linie 1-3. Es werden also 3 Punkte auf der Bearbeitungsebene angegeben. Den G59-Befehl kann man sich sparen, wenn man so den 1. Punkt definiert. (Die Berechnung der Winkel, die oben nötig waren, entfällt hier.) G17 XD20 YD0 ZD70 XE100 YE0 ZE10 XF100 YF70 ZF70 Danach läuft alles genau so, wie oben bei den Schnittwinkeln beschrieben. Will man X lieber auf die Linie III liegen, so muss auch hier, laut Rechtssystem, die Richtung des 2. Vektors "umgepolt" werden. G17 XD20 YD0 ZD70 XE100 YE70 ZE70 XF-60 YF0 ZF130 |
Ist die Senkrechte der Bearbeitungsebene bekannt, verwendet man besser die: "Ebenenanwahl mit Basis- und Zustellvektor " |
![]() |
Will man die beiden (Kühlmittel-)Bohrungen miteinander verbinden, so kann sich die mühsame Winkel-Rechnerei sparen.
Man legt zuerst den Nullpunkt auf die "Treffer"-Stelle der 1 Bohrung: G59 XA30 YA20 ZA50 Zum Zielpunkt sind's nun 40 in X, 50 in Y und -30 in Z. Die Ebenen-Normale zeigt aber genau umgekehrt. (von der Bohrerspitze zum Spannfutter) Also: G17 XB50 YB0 ZB0 XN-40 YN-50 ZN30 Der Basisvektor wurde hier "grob" festgelegt; die Steuerung legt ihn korrekt rechtwinklig, in dem sie ihn auf die Bearbeitungsfläche projiziert. |
Wer unbedingt mit den Achswinkeln programmieren will, muss die jeweilige Maschinen-Kinematik beachten. |
![]() WBC (Workpiece C sitzt auf B) |
G170 BM60 CM-90 |
In eigener Sache: Ich habe nur sehr wenig Informationen zu diesem Thema
gefunden. (Herbst 2016) Ich hoffe, dass sich kein größerer Fehler eingeschlichen hat. Sollten Sie jedoch feststellen, dass etwas
nicht richtig dargestellt wurde, so mailen Sie mir das bitte. Danke
Meine E-mail-Adresse steht auf der Startseite von PALmill.