Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Koordinatentransformation/Transformationsmatrizen im Part

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Koordinatentransformation/Transformationsmatrizen im Part (338 mal gelesen)
JZühlke
Mitglied
Data Science Consultant


Sehen Sie sich das Profil von JZühlke an!   Senden Sie eine Private Message an JZühlke  Schreiben Sie einen Gästebucheintrag für JZühlke

Beiträge: 13
Registriert: 28.04.2022

erstellt am: 14. Feb. 2023 10:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

Ich knoble gerade an einem CATIA Problem, bei dem ich eure Hilfe brauche. Ich habe ein Skript, das geschrieben, das alle Koordinatensysteme aus einer Baugruppe extrahiert und als ein Part ablegt. Ich würde jetzt gerne alle anderen Koordinatensystem relativ zum ersten extrahierten Koordinatensystem beschreiben. Koordinatentransformationen bzw. Transformationsmatrizen waren nie meine Stärke und ich bin mir auch jetzt nicht sicher, wie ich vorgehen soll.

Ich habe das Skript von Steffen Hohmann gefunden, komme aber bei den Achsen nicht weiter. https://ww3.cad.de/foren/ubb/Forum137/HTML/001008.shtml#000004


Der aktuelle Stand ist folgender:

Code:

        Dim TempAxis1 As Object = CATIA.ActiveDocument.Selection.Item(1).Value
        Dim TempAxis2 As Object = CATIA.ActiveDocument.Selection.Item(2).Value
        'TempAxis1 und TempAxis2 sind meine beiden Test-Achsensysteme

        Dim oAxis As AxisSystem = TempAxis1
        Dim i As Integer
        Dim Coord_a(2)                  'Array der Ursprungskoordinaten des aktiven Achsensystems
        Dim Coord_b(2)
        Dim Vx_A(2), Vy_A(2), Vz_A(2)  'Richtungsvektoren des aktiven Achsensystems
        Dim x, y, z As Double          'absolute Koordinaten des Punktes
        Dim xa, ya, za As Double        'Ursprungskoordinaten des aktiven Achsensystems
        Dim xp, yp, zp As Double        'relative Koordinaten des Punktes zum aktuellen Achsensystem

        'Ermitteln der Punktkoordinaten
        TempAxis2.GetOrigin(Coord_b)
        x = Coord_b(0)
        y = Coord_b(1)
        z = Coord_b(2)

        'For i = 1 To CATIA.ActiveDocument.Part.AxisSystems.Count
        '    oAxis = CATIA.ActiveDocument.Part.AxisSystems.Item(i)
        '    If oAxis.IsCurrent Then
        oAxis.GetOrigin(Coord_a)
                oAxis.GetXAxis(Vx_A)
                oAxis.GetYAxis(Vy_A)
                oAxis.GetZAxis(Vz_A)
        '        Exit For
        '    End If
        'Next i
        xa = Coord_a(0) : ya = Coord_a(1) : za = Coord_a(2)

        xp = Vx_A(0) * (x - xa) + Vx_A(1) * (y - ya) + Vx_A(2) * (z - za)
        yp = Vy_A(0) * (x - xa) + Vy_A(1) * (y - ya) + Vy_A(2) * (z - za)
        zp = Vz_A(0) * (x - xa) + Vz_A(1) * (y - ya) + Vz_A(2) * (z - za)

        MsgBox("" + xp.ToString + " " + yp.ToString + " " + zp.ToString + " ")


Hat jemand den Code, um die Achsensysteme zu transformieren?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lionel Hutz
Mitglied



Sehen Sie sich das Profil von Lionel Hutz an!   Senden Sie eine Private Message an Lionel Hutz  Schreiben Sie einen Gästebucheintrag für Lionel Hutz

Beiträge: 363
Registriert: 26.03.2014

CATIA V5 R20

erstellt am: 14. Feb. 2023 13:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für JZühlke 10 Unities + Antwort hilfreich

Wirf mal einen Blick auf das Makro DMUPstCopyPasteKeepAbsolutePosition aus der Catia-Hilfe
z.B. hier https://www.maruf.ca/files/caadoc/CAAScdDmuUseCases/DMUPstCopyPasteKeepAbsolutePositionSource.htm
Da werden Parts per Matrixmanipulation im Product positioniert.
Mathematisch musst du ja die Verschiebung und Verdrehung, die du auf dein Referenz-Achsensystem aufbringen müsstest, um es auf den Nullpunkt ohne Verdrehung zu platzieren auf die anderen Achsensysteme anwenden.
Da sollten dann die Koordinaten relativ zum Referenzsystem herauskommen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz