--- title: "Catch-Mechanismus" slug: "catch-mechanismus" updated: 2026-02-04T13:20:19Z published: 2026-02-04T13:20:19Z canonical: "kb.moveit.at/catch-mechanismus" --- > ## Documentation Index > Fetch the complete documentation index at: https://kb.moveit.at/llms.txt > Use this file to discover all available pages before exploring further. # Catch-Mechanismus Mit dem Catch-Mechanismus werden bei zwei Objekten lokale „benannte“ Punkte mit einem lokalen Achsensystem erstellt. Mit einem Programmaufruf werden diese zwei Koordinatensystem deckungsgleich übereinanderer gebracht. ![](https://cdn.document360.io/3757b259-159c-4720-a193-d5c07ebc9cf7/Images/Documentation/image(188).png) Im obigen Beispiel werden die zwei kleinen Lokalen Achsensystem deckungsgleich übereinandergelegt. Beim Catch wird der Griff nicht nur positioniert sondern auch gedreht. ### Catchpunkte definieren Catchpunkte können auf zwei Arten angelegt werden: - DES-Files → Description-File - Programmtechnisch → AddCatchPointOrientation Ein Catchpunkt besteht aus: - Position relativ zur Objektmatrix - Ausrichtung zur Objektmatrix - Name Es muss für die Konfiguration der Catch-Name vom bewegenden Objekt und auch vom Zielobjekt bekannt sein. Ein vernünftiges Namensschema ist hier wichtig. Catchpunkte werden relativ zur Objektmatrix (Nicht zu verwechseln mit der Position) angelegt. Jedes Objekt hat eine Objektausrichtung, eine Matrixposition und die Objektbox. Matrixposition und Objektbox müssen nicht übereinstimmen. Zu erkennen ist die am einfachsten in PLAN4, wenn Position und Absolut-Position nicht übereinstimmen: ![](https://cdn.document360.io/3757b259-159c-4720-a193-d5c07ebc9cf7/Images/Documentation/image(189).png) #### Anlegen von Catchpunkten mit DES-Files Das DES-File muss denselben Namen haben wie das A3d-File, und muss im selben Ordner abgelegt werden. Für jedes Objekt kann man dann einen Eintrag im DES-File schreiben. Siehe Beispiel am Anfang → Die X-Achse schaut in X, die Y-Achse schaut nach oben (=Z), die Z-Achse schaut -Y (Aus dem Griff heraus) (Diese Verdrehung der Achse wird später erklärt.) Inhalt eines DES-Files: *Object "Stange_L900_Halbrund_R" { Catch { Delete Matrix = "BohrungZentrum"; Matrix = "BohrungZentrum", "Bohrung",* *1,0,0**,* *0,0,1**,* *0,-1,0* *,* *12.5, 265, 650**, FLAGS{INTERACTIVE}; Delete Matrix = "BohrungUnten"; Matrix = "BohrungUnten", "Bohrung", 1,0,0, 0,0,1, 0,-1,0 , 12.5, 265, 305, FLAGS{INTERACTIVE}; } }* Rot = X-Achse Grün = Y-Achse Blau = Z-Achse Gelb ist die Position #### Programmtechnisches Anlegen der Catchpunkte Mit dem Kernelbefehl **„AddCatchPointOrientation“** kann ein Catchpunkt erzeugt werden. Um doppelte Catchpunkte zu vermeiden kann man mit **„DeleteCatchInfo“** vorher Catchinformationen löschen. Kernel.DeleteCatchInfo(objId, catchName) Kernel.AddCatchPointOrientation(objId, catchName, "ProgammSnap", posX, posY, posZ, XAxisX,XAxisY,XAxisZ,YAxisX,YAxisY,YAxisZ) #### Position und Achsenverdrehung Die Flächenpunktnummerierung ist immer beginnend von links unten → gegen dem Uhrzeigersinn. (Ergänzung: Fläche = 5 = von Unten → Punkt 0 = links hinten, Punkt 2 = rechts hinten) ![](https://cdn.document360.io/3757b259-159c-4720-a193-d5c07ebc9cf7/Images/Documentation/image(190).png) Das lokale Koordinatensystem ist in jeder Fläche gleicht definiert: - X-Achse geht von Punkt 0 Richtung Punkt 2 - Y-Achse geht von Punkt 0 Richtung Punkt 6 - Z-Achse zeigt aus der Fläche raus. Wenn man einen Catchpunkt 100mm von der Fläche entfernt angeben will benötigt man offsetZ = 100. #### GetBoxPointOrientationLocal Kernel.GetBoxPointOrientationLocal( objId, boxFace, facePoint, offsetX, offsetY, offsetZ, rotateAngle, posX, posY, posZ, XAxisX, XAxisY, XAxisZ, YAxisX, YAxisY, YAxisZ ) - objId = Kennzeichnung des Objektes - boxFace ( 0 -5 ) = Definition der Fläche - facePoint ( 0 – 8 ) = Definition des Punktes auf der Fläche. - offsetX, offsetY, offsetZ → Verschieben des Punktes auf dem lokalen Flächenkoordinatensystem. - rotateAngle → Winkel um welchen der Catchpunkt gedreht werden soll. (z.B. Griff vertikal, horizontal → Verdrehung um 90Grad) Als Ergebnis erhält man die Position und die Verdrehung relativ zur Objektmatrix und man kann die Werte posX … XAxis… und YAxis… für den Befehl „AddCatchpointOrientation“ verwenden. **Beispiel:** Man möchte auf der rechten Seite mittig 100mm von unten einen waagrechten Stangengriff montieren. - boxFace = 1 - bacePoint = 1 → (Unten in der Mitte) - offsetX = 0 → Keine Verschiebung links rechts - offsetY = 100 → Verschiebung um 100 nach oben (lokales Kordinatensystem) - offsetZ = 0 → Keine Verschiebung von Fläche weg. - rotateAngle = 90 → (In Abhängig von Griffmatrix → In unserem Beispiel muss der Griff gedreht werden) Kernel. GetBoxPointOrientationLocal ( objId, 1, 1, 0, 100, 0, 90, posX, posY, posZ, XAxisX, XAxisY, XAxisZ, YAxisX, YAxisY, YAxisZ ) Kernel.DeleteCatchInfo( objId, catchName ) Kernel.AddCatchPointOrientation( objId, catchName, "ProgammSnap", posX, posY, posZ, XAxisX,XAxisY,XAxisZ,YAxisX,YAxisY,YAxisZ ) > [!WARNING] > Ident mit GetBoxPointOrientationLocal gibt es auch „GetBoxPointOrientation“. Hier werden die gleichen Information, jedoch ins Weltkoordinatensystem umgerechnet geliefert. #### Prüfen der Catchpunkte In Plan4 werden Catchpunkte mit einem blauen Punkt markiert: ![](https://cdn.document360.io/3757b259-159c-4720-a193-d5c07ebc9cf7/Images/Documentation/image(191).png) Im Debugdialog von OCX können die Definitonen der Catchpunkte ausgelesen werden: ![](https://cdn.document360.io/3757b259-159c-4720-a193-d5c07ebc9cf7/Images/Documentation/image(192).png)