Hallo!
Wir haben
Surfcam als CAM-System und u.a. eine DMC80U (5-Achsen) mit
Heidenhain TNC 426 auf der wir 3-achsig im Raum positioniert arbeiten, sprich eine Ebene schief
drehen und auf der rumbohren,
fräsen, etc.
Wir haben zwar einen PP der recht gut funktioniert, aber ein paar kleine Haken hat, und die möchte ich ihm nun austreiben. Leider bin ich kein Mathegenius und mit Vektoren und Raumwinkeln rumdrehen ist nicht sooo easy... offenbar. Also konkret geht's um dies:
Surfcam gibt mit für jede Ebene (lokales Koordinatensystem) eine
Matrix mit 3x3 Vektoren und die dazugehörige Verschiebung zum Weltkoordinatensystem zurück, im APT-Code sieht das so aus:
--- Doku APT-Anfang ---
Syntax:
MCS/x(i),x(j),x(k),y(i),y(j),y(k),z(i),z(j),z(k),dx,dy,dz
MCS/x(i),y(i),z(i),x(j),y(j),z(j),x(j),y(j),z(k),dx,dy,dz
Description: The MCS/ statement contains twelve fields that define the active construction view when the toolpath was generated. The matrix values are expressed in two forms, depending upon the output mode switches on the INC2APT
command line.
The first form above is generated when output is in view coordinates or when the
?-M? command line switch is active. The values in this matrix are measured from
world zero to cview.
The second form above is generated when output is in world coordinates when
the ?-W? command line switch is active. The values in this matrix are world zero
location and orientation measured in cview space. Note that field order is also
changed.
--- Doku APT-Ende ---
Also ich habe die 1. Form die mit ?-M? erzeugt wird.
Die Heidenhain TNC 426 kann damit aber direkt nichts anfangen, denn die braucht die Winkel um die die Achsen rotiert wurden:
--- Doku Heidenhain-Anfang ---
Im Zyklus 19 definieren Sie die Lage der Bearbeitungsebene, sprich die Lage der Werkzeugachse bezogen auf das maschinenfeste
Koordinatensystem, durch die Eingabe von Schwenkwinkeln (A, B, C).
Der Winkel A rotiert um X, Winkel B um Y und Winkel C um die Z-Achse.
Die Lage der Bearbeitungsebene kann durch bis zu drei Drehungen (Raumwinkel) des maschinenfesten Koordinatensystems beschrieben werden. Die Reihenfolge der Drehungen für die Berechnung der Lage der Ebene ist festgelegt: Zuerst dreht die TNC die A-Achse, danach die B-Achse und schließlich die C-Achse.
--- Doku Heidenhain-Ende ---
Nun ja, solange ich nur um 2 Achsen rotiere kann ich mir einen zurechtbiegen, das macht unser PP jetzt nämlich auch, aber wenn?s um 3 Achsen geht, versagt er kläglich.
Bei Heidenhain hab ich auch schon mal angefragt, aber die haben da nix in der Schublade liegen was Sie so einfach rausgeben können, bzw. wollen.
Wer eine Idee dazu hat, immer her damit.
Anbei noch ein Datensatz mit APT-Code und ABC-Drehungen in einer Zeile, Daten durch Semikolon getrennt (CSV-Format), Zeilenende durch ein $ kenntlich gemacht, damit Ihr mal selber rumprobieren könnt.
Mit freundlichem Gruß
Andreas Killer, Arbeitsvorbereitung und NC-Programmierung
KLÖCKNER HÄNSEL PROCESSING GmbH
Lister Damm 19
D-30163 Hannover
Name;A;B;C;MCS;x(i);x(j);x(k);y(i);y(j);y(k);z(i);z(j);z(k);X;Y;Z;$
Welt;0;0;0;MCS;1;0;0;0;1;0;0;0;1;0;0;0;$
A30;30;0;0;MCS;1;0;0;0;0,8660254038;0,5;0;-0,5;0,8660254038;0;0;0;$
B30;0;30;0;MCS;0,8660254038;0;-0,5;0;1;0;0,5;0;0,8660254038;0;0;0;$
C30;0;0;30;MCS;0,8660254038;0,5;0;-0,5;0,8660254038;0;0;0;1;0;0;0;$
A30 B30;30;30;0;MCS;0,8660254038;0,25;-0,4330127019;0;0,8660254038;0,5;0,5;-0,4330127019;0,75;0;0;0;$
A30 C30;30;0;30;MCS;0,8660254038;0,4330127019;0,25;-0,5;0,75;0,4330127019;0;-0,5;0,8660254038;0;0;0;$
B30 C30;0;30;30;MCS;0,75;0,5;-0,4330127019;-0,4330127019;0,8660254038;0,25;0,5;0;0,8660254038;0;0;0;$
A30 B30 C30;30;30;30;MCS;0,75;0,6495190528;-0,125;-0,4330127019;0,625;0,6495190528;0,5;-0,4330127019;0,75;0;0;0;$
A90 C163,203;90;0;163,203;MCS;-0,9573365465;0,2889753221;0;0;0;1;0,2889753221;0,9573365465;0;-10,26931;3,863069;15,55336;$
A90 C16,797;90;0;16,797;MCS;0,9573365465;-0,2889753221;0;0;0;1;-0,2889753221;-0,9573365465;0;-16,048816;-15,283662;15,55336;$
A? B? C?;?;?;?;MCS;-0,7321186853;-0,681177092;-0,0000000084;0,0860782099;-0,0925155513;0,9919835758;-0,6757164882;0,7262497106;0,1263668684;-151,270878;16,707009;36,010487;$