Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Positionsmatrix - Achse invertieren

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:  Positionsmatrix - Achse invertieren (1693 mal gelesen)
mvo
Mitglied
Konstrukteur


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

Beiträge: 94
Registriert: 22.10.2001

CATIA V5R21 SP2
WIN 7 64bit

erstellt am: 17. Apr. 2018 09:41    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


Invert_Axis.png

 
Hallo zusammen,

ich habe eine Frage zur Positionierung eines CATParts im CATProduct.
Momentan besteht das Problem (aufgrund der Mirror-Function in V4 + V5 Migration), dass die Positionsmatrix des Parts im Product linkshändisch ist.
Öffnet man das Part allein, ist die Achse OK (das Part selbst wurde also nicht angefasst).
Die Positionsmatrix habe ich ausgelesen (siehe Bild). Nun würde ich gern per Matrix-Umrechnung und Move-Operation in VBA eine Achse (z.B. die Y-Achse) invertieren.
Ist dies möglich?

Danke und Gruß,
Marco

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 17. Apr. 2018 10:01    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 mvo 10 Unities + Antwort hilfreich

Hallo Marco,

hast du mal die Makroaufzeichnung benutzt, die sollte brauchbares liefern.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

mvo
Mitglied
Konstrukteur


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

Beiträge: 94
Registriert: 22.10.2001

CATIA V5R21 SP2
WIN 7 64bit

erstellt am: 17. Apr. 2018 10:18    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 Uwe,

danke für die schnelle Antwort!
Mir geht es nicht um die Befehle an sich. Diese sind mir klar. Ich habe folgendes benutzt:

Dim intPosArr(11)
intPositionObj.GetComponents intPosArr
intPositionObj.SetComponents intPosArr

Nun möchte ich aber das Array für intPosArr so umrechnen, dass z.B. die Y-Achse invertiert wird (also quasi eine Spiegelung an der XY-Ebene des positionierten Bauteils).
Ist also eher ein mathematisches Problem.

Ich habe es mit

intPosArr(1) = -intPosArr(1)
intPosArr(4) = -intPosArr(4)
intPosArr(7) = -intPosArr(7)

versucht. Dann bekomme ich auch wieder ein rechthändisches Achsensystem. Jedoch ist das gedreht (je nach Position des Bauteils).

Gruß,
Marco

[Diese Nachricht wurde von mvo am 17. Apr. 2018 editiert.]

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 17. Apr. 2018 20:10    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 mvo 10 Unities + Antwort hilfreich

Servus Marco

In meinem Kurztest hat es genau wie du es beschrieben hast geklappt eine Achse des Teil zu invertieren (uns somit das Teil zu spiegeln)
Geht es wenn das Teil im Ursprung der Baugruppe liegt?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

mvo
Mitglied
Konstrukteur


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

Beiträge: 94
Registriert: 22.10.2001

CATIA V5R21 SP2
WIN 7 64bit

erstellt am: 15. Mai. 2018 14:26    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 Bernd,

danke für die Antwort!

Ja, wenn das Teil an der Hauptachse positioniert ist, funktioniert es.
Nur wenn es verschoben und/oder gedreht ist, wird es entweder 90° oder 180° um eine Achse gedreht (die genaue Konstellation konnte ich noch nicht ganz nachvollziehen). Ich habe aber gelernt, dass mit der genannten Matrix-Operation immer der Hauptebene gespiegelt wird!?

Gruß,
Marco

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 15. Mai. 2018 16:54    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 mvo 10 Unities + Antwort hilfreich

Servus Marco

Zitat:
... genannten Matrix-Operation immer der Hauptebene gespiegelt wird!? ..
Deshalb wird bei vielen Transformationen das Teil auf den Ursprung ausgerichtet, die Transformation vorgenommen und dann wieder verschoben. Dies lässt sich natürlich auch mit der Berechnung einer entsprechenden Transformationsmatrix zusammenfassen (siehe gutes Mathebuch)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

mvo
Mitglied
Konstrukteur


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

Beiträge: 94
Registriert: 22.10.2001

CATIA V5R21 SP2
WIN 7 64bit

erstellt am: 16. Mai. 2018 11:00    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

Genau für diese Operation/ berechnung bin ich anscheinend zu doof. 

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 16. Mai. 2018 11:08    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 mvo 10 Unities + Antwort hilfreich

Servus

Dann probier es mal so (ungetestet):
- Positionsmatrix auslesen und zwischenspeichern
- Teil auf 0,0,0 mit invertierter Achse positionieren (SetComponents)
- Teil mit .Move.Apply und der ursprünglichen Positionsmatrix verschieben

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

mvo
Mitglied
Konstrukteur


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

Beiträge: 94
Registriert: 22.10.2001

CATIA V5R21 SP2
WIN 7 64bit

erstellt am: 29. Mai. 2018 13:40    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

Ich habe es nun hinbekommen. Der "Trick" war, dass man mittels

intPosArr(3) = -intPosArr(3)
intPosArr(4) = -intPosArr(4)
intPosArr(5) = -intPosArr(5)

(statt 1;4 und 7) invertiert, da das Array bzgl. Rotationsmatrix nach x, y und z-Vektor aufgebaut ist (hätte ich auch früher drauf kommen können):

0 3 6
1 4 7
2 5 8

@Bernd: Danke für deine Anregungen!!

Gruß,
Marco

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