Punkte transformieren - verschieben, drehen, ausrichten, spiegeln
Das Kontextmenü der Punktetabelle eines VKRC- oder Fanuc-Programms enthält die Funktion Transform points... (Punkte transformieren). Sie ändert Position und Orientierung einer Gruppe von Punkten auf einmal: verschiebt und dreht sie, gibt ihnen die Orientierung eines Referenzpunkts oder spiegelt sie - zum Beispiel um eine Naht zu verschieben, eine Vorrichtung auszugleichen oder die Punkte des Zwillingsroboters (links / rechts) vorzubereiten. Vor dem Schreiben sehen Sie eine Tabelle vorher / nachher mit der Prüfung, ob jeder neue Punkt noch erreichbar ist und innerhalb der Achsgrenzen liegt. Die Änderung lässt sich rückgängig machen.

▲ Funktion starten

Wählen Sie in der Punktetabelle die Punkte aus (einen oder mehrere, Strg / Umschalt + Klick) und im Kontextmenü Transform points.... Das Fenster zeigt die ausgewählten Punkte; alle Einstellungen wirken genau auf diese Punkte. Transformiert werden können nur Punkte, die in einer Bewegung des Programms verwendet werden, weil TOOL und BASE (Fanuc: UT und UF) der Bewegung das Koordinatensystem des Punktes festlegen. Das Menü enthält außerdem Undo last points transform (siehe Rückgängig).

Unterstützt werden VKRC- und Fanuc-Programme. Bei KRC-, ABB- und Yaskawa-Programmen meldet die Funktion, dass sie noch nicht verfügbar ist.

▲ Verschieben / Drehen

Operation: Move / rotate verschiebt die Punkte um X, Y, Z (mm) und dreht sie um die Winkel Rz, Ry, Rx (Grad; die Drehung ist Rz · Ry · Rx). Das Frame legt die Achsen von Verschiebung und Drehung fest: Rotate about (Drehen um): TCP of each point dreht jeden Punkt um seinen eigenen TCP (die Positionen ändern sich nur durch die Verschiebung), Origin of the frame (whole group) dreht die ganze Gruppe als starren Körper um den Ursprung des Koordinatensystems.

▲ Orientierung an einem Punkt ausrichten

Operation: Align orientation to a point gibt allen ausgewählten Punkten die Orientierung eines Referenzpunkts. Die Positionen bleiben unverändert. Das ist nützlich, wenn eine Gruppe von Punkten mit derselben Werkzeuglage angefahren werden soll.

▲ Spiegeln

Operation: Mirror spiegelt die Punkte an einer Ebene (XZ, YZ oder XY des Koordinatensystems) im Abstand Plane offset. Die Ebene kann in der BASE des Punktes, in WORLD oder in einem eigenen Koordinatensystem angegeben werden (nicht in TOOL).

Modus Tool axis flip (M) (Umklappen der Toolachse) - die Toolachse, die die Spiegelung umkehrt: Z des Tools (Standard, M = diag(1, 1, -1)), Y des Tools (= N · T · N; bei Tools mit anderer Achslage ist das um 180° falsch) oder X des Tools. Prüfen Sie das Ergebnis an einem Punkt, dessen Zwilling bekannt ist.

Konfiguration nach der Spiegelung:
▲ Annahmen der Spiegelung

Die Spiegelung für den Zwillingsroboter ist eine Berechnung mit diesen Annahmen: Die Annahmen wurden an einem KUKA-Roboterpaar in einer Beispielzelle bestätigt (Prozesspunkte eines Programms lagen innerhalb weniger bis einiger zehn mm und etwa 1 bis 3 Grad von den am Zwilling geteachten Punkten; mit dem Umklappen Y ist das Ergebnis um 180° falsch; der T-Wert des Zwillings weicht nur in der Nähe der Handsingularität von der xor-Regel ab). Für Fanuc und ABB sind sie nicht bestätigt. Prüfen Sie dort das Ergebnis an einem bekannten Punktepaar. Die Programme der Zwillingsroboter sind keine maschinellen Spiegelbilder voneinander: Anfahr- und Home-Punkte können um mehr als 200 mm abweichen. Spiegeln Sie daher die Prozesspunkte, nicht die Anfahr- und Home-Punkte, und prüfen Sie sie mit der Erreichbarkeitsprüfung und in der Simulation.

▲ Vorschau, Prüfung und Schreiben

Die Tabelle zeigt für jeden Punkt: das Koordinatensystem (TOOL / BASE), die Werte vorher und nachher (X Y Z und die Winkel - KUKA C B A, Fanuc W P R - im Koordinatensystem des Punktes), die Verschiebung in mm, die Konfiguration vorher / nachher, die Achsen nach der Transformation und den Status:
StatusBedeutung
OKmit inverser Kinematik innerhalb der Software-Endschalter erreichbar.
over axis limiteine Achse läge außerhalb der Software-Endschalter (rot; die Achsen über dem Limit werden aufgelistet).
not reachablekeine Lösung der inversen Kinematik (rot).
not checkeddie Erreichbarkeit wird nicht geprüft (z. B. Konfiguration beibehalten beim linken / rechten Roboter).
errorder Punkt kann nicht berechnet werden (Meldung in der Zeile, z. B. nicht unterstützte Montage oder fehlende Kinematik).
Vor Apply wird nichts geschrieben. Gibt es Punkte mit einem Problem, fragt Apply, wie damit verfahren werden soll (trotzdem schreiben oder nur die Punkte mit Status OK). Die exakten Werte (10 signifikante Stellen) werden in die Punktdaten des Programms geschrieben; das Dokument ist geändert, aber nicht gespeichert - speichern Sie es wie gewohnt. Achspunkte werden als Achsen geschrieben.

▲ Rückgängig

Undo last points transform (Kontextmenü der Punktetabelle) stellt die gesicherten Werte der Punkte wieder her, die die letzte Transformation geändert hat. Pro Programm wird eine Transformation gemerkt; eine neue ersetzt sie.

▲ API

Jede Einstellung des Fensters ist ein Parameter des Editor-Befehls points_transform und umgekehrt (siehe VeRa / Editor-API):
{"cmd":"points_transform","file":"D:/x/UP42.src","mode":"preview","points":["P12","P13"],
 "op":"move","frame":"base","pivot":"tcp","dx":0,"dy":5,"dz":0,"rx":0,"ry":0,"rz":0}
{"cmd":"points_transform","mode":"preview","points":"all","op":"mirror","plane":"xz","offset":191008,
 "mirror":"lr","config":"mirrored","mflip":"z"}
{"cmd":"points_transform","file":"D:/x/UP42.src","mode":"apply","points":["P12"],"op":"align","ref":"P5"}
{"cmd":"points_transform","file":"D:/x/UP42.src","mode":"undo"}
ParameterBedeutung
modepreview (Standard, schreibt nichts; das Programm darf geöffnet sein oder auf der Platte liegen), apply, undo (das Programm muss im Editor geöffnet sein; die Änderung bleibt ungespeichert - mit save speichern).
file, pointsProgramm; Punktnamen ("P12") oder "all".
opmove, align, mirror.
frame, pivotbase, world, tool, custom; tcp oder frame.
dx dy dz rx ry rzVerschiebung (mm) und Drehung (Grad).
custom / customPoints{"x","y","z","rx","ry","rz"} in WORLD oder drei Punkte ["P1","P2","P3"].
refReferenzpunkt von align.
plane, offsetxz, yz, xy; Lage der Ebene (mm).
mirror, config, mflipsame oder lr; mirrored oder keep; z, y, x.
srcRobot, dstRobot{"x","y","z","a","b","c"} Positionen dieses und des Zwillingsroboters in der Zelle.
allowWarningsauch Punkte mit Status limit / unreachable / not_checked anwenden (Standard false).
maxRowsmaximale Zahl der Antwortzeilen (Standard 500).
Die Antwort enthält je Punkt eine Zeile: point, status (ok, limit, unreachable, not_checked, error), frame, before / after (x y z rx ry rz im Koordinatensystem des Punktes; KUKA C B A, Fanuc W P R), worldBefore / worldAfter (BASE 0 = Roboterkoordinaten), shiftMM, configBefore / configAfter, axes. Die Agentenschnittstelle editor_read erlaubt nur mode: preview; apply und undo laufen über editor_command. Empfohlene Reihenfolge für einen Agenten: preview, Status jeder Zeile lesen, apply (allowWarnings nur bewusst), speichern, bei Bedarf undo.

▲ Grenzen und Lizenz