- Funktion starten
- Verschieben / Drehen
- Orientierung an einem Punkt ausrichten
- Spiegeln (gleicher Roboter, linker / rechter Roboter)
- Annahmen der Spiegelung
- Vorschau, Prüfung und Schreiben
- Rückgängig
- API
- Grenzen und Lizenz
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:
- BASE des Punktes (Fanuc: UF) - die Base der Bewegung jedes Punktes,
- WORLD - das Weltkoordinatensystem der Zelle,
- TOOL des Punktes (Fanuc: UT) - das Tool jedes Punktes, die Verschiebung erfolgt also in Richtung der Toolachsen,
- Custom frame (eigenes Koordinatensystem) - als Werte (X Y Z und Drehungen in WORLD) oder durch drei Punkte: Ursprung, ein Punkt auf der +X-Achse und ein Punkt in der XY-Ebene.
▲ 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
- Same robot (gleicher Roboter) - die TCP-Pose wird an der Ebene gespiegelt und im Koordinatensystem des Punktes zurückgeschrieben (R' = Rm · R · M). Der Offset wird vom Ursprung des Koordinatensystems gemessen.
- Left / right robot (mirrored twin) (linker / rechter Roboter) - die Punkte werden für den Zwillingsroboter berechnet, der in der Zelle gespiegelt steht: Die Pose wird über die Zellenwelt genommen, gespiegelt (Matrix N der Ebene) und in der BASE des Zwillings geschrieben: T' = BASE'-1 · N · (ROB · BASE · T) · M, bei exakter Spiegelung gleich N · T · M. Der Offset ist die Lage der Ebene in der Zellenwelt (z. B. der Mittelwert von Y beider Roboter bei einer XZ-Ebene). Optional geben Sie die Position dieses Roboters und des Zwillingsroboters in der Zelle an (X Y Z und A B C wie $ROBROOT); sie sind nur bei BASE 0 und bei Zwillingen relevant, die keine exakte Spiegelung sind (ein Drehungsunterschied von einigen Grad zwischen beiden Robotern ist typisch). Ohne Angabe steht der Zwilling exakt gespiegelt.
Konfiguration nach der Spiegelung:
- Mirrored (Standard) - KUKA: S unverändert, die Bits von A1, A4 und A6 in T werden invertiert (T xor 41, z. B. T59 wird zu T18); Fanuc: die Konfiguration wird aus den Achsen J1, J4, J6 mit geändertem Vorzeichen abgeleitet. Achspunkte (Fanuc J[]) erhalten negierte J1, J4 und J6 und werden als Achsen geschrieben.
- Keep the configuration of the point - S/T (CONFIG) bleibt unverändert; die Achsen werden dann beim linken / rechten Roboter nicht geprüft (Status not checked).
▲ Annahmen der Spiegelung
Die Spiegelung für den Zwillingsroboter ist eine Berechnung mit diesen Annahmen:
- Die BASE des Zwillings ist die gespiegelte Base: BASE' = N · BASE · N in der Welt (Punkte mit BASE_NO <> 0) bzw. der Roboterursprung des Zwillings (ROBROOT) bei BASE 0.
- Das TOOL des Zwillings ist das gespiegelte Tool: TOOL' = N · TOOL · M.
- Die Spiegelebene ist in der Welt der Zelle angegeben (z. B. die XZ-Ebene beim Mittelwert von Y beider Roboter).
▲ 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:
| Status | Bedeutung |
|---|---|
| OK | mit inverser Kinematik innerhalb der Software-Endschalter erreichbar. |
| over axis limit | eine Achse läge außerhalb der Software-Endschalter (rot; die Achsen über dem Limit werden aufgelistet). |
| not reachable | keine Lösung der inversen Kinematik (rot). |
| not checked | die Erreichbarkeit wird nicht geprüft (z. B. Konfiguration beibehalten beim linken / rechten Roboter). |
| error | der Punkt kann nicht berechnet werden (Meldung in der Zeile, z. B. nicht unterstützte Montage oder fehlende Kinematik). |
▲ 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"}
| Parameter | Bedeutung |
|---|---|
| mode | preview (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, points | Programm; Punktnamen ("P12") oder "all". |
| op | move, align, mirror. |
| frame, pivot | base, world, tool, custom; tcp oder frame. |
| dx dy dz rx ry rz | Verschiebung (mm) und Drehung (Grad). |
| custom / customPoints | {"x","y","z","rx","ry","rz"} in WORLD oder drei Punkte ["P1","P2","P3"]. |
| ref | Referenzpunkt von align. |
| plane, offset | xz, yz, xy; Lage der Ebene (mm). |
| mirror, config, mflip | same oder lr; mirrored oder keep; z, y, x. |
| srcRobot, dstRobot | {"x","y","z","a","b","c"} Positionen dieses und des Zwillingsroboters in der Zelle. |
| allowWarnings | auch Punkte mit Status limit / unreachable / not_checked anwenden (Standard false). |
| maxRows | maximale Zahl der Antwortzeilen (Standard 500). |
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
- Nur VKRC- und Fanuc-Programme; KRC, ABB und Yaskawa: noch nicht verfügbar.
- Die Funktion benötigt die Kinematik des Roboters. Bei nicht unterstützter Montage oder ohne Kinematik antwortet sie mit einem eindeutigen Fehler und rechnet nicht (kein stilles Ergebnis).
- Die Erreichbarkeitsprüfung nutzt die inverse Kinematik und die Software-Endschalter des Roboters; sie ersetzt nicht die Prüfung auf Kollisionen und des Programms in der Simulation.
- Lizenz: die Basislizenz des Roboter-Editors (VKRC bzw. VFanuc).