Version: CATIA V5 R28
Guten Tag zusammen,
Ich arbeite aktuell an einem Makro, dass durch eine Auswahl des Benutzers in Excel unterschiedliche Powercopies in ein CATPart einfügt. Zusätzlich können in der Excel-Maske mehrere Parameter vom Anwender verändert werden.
Durch die Änderung der Parameter ergeben sich logischerweise unterschiedliche Ergebnisgeometrien, welche hinsichtlich deren Flächenträgheitsmomente (bzw. Steifigkeiten)untersucht werden sollen. Bei der Ergebnisgeometrie handelt es sich um eine Fläche (Join).
In einem einfachen Testproduct lässt sich der Flächenschwerpunkt (bzw. dessen Koordinaten) über den nachfolgenden Codeausschnitt ermitteln. Hierbei befindet sich im Testproduct (Product1) nur eine Fläche, weshalb dies Problemlos klappt.
Code zur Bestimmung des COG:
Dim dCoordinate
Dim NewInertia As Variant
Set NewInertia = product1.GetTechnologicalObject("Inertia")
NewInertia.GetCOGPosition dCoordinate
'Umrechnungen, weil Catia die Koordinaten in m statt mm ausgibt, die Ausgabe in mm jedoch in diesem Fall angestrebt wird
XKoordinate = dCoordinate(0) * 1000
YKoordinate = dCoordinate(1) * 1000
ZKoordinate = dCoordinate(2) * 1000
Ähnlich verhält es sich bei der Bestimmung der Flächenträgheiten:
Dim oMatrix(8)
Dim Inertia_Matrix As Variant
Set Inertia_Matrix = product1.GetTechnologicalObject("Inertia")
Inertia_Matrix.GetInertiaMatrix oMatrix
'Umrechnungen, weil Catia gibt das Massenträgheitsmoment in der Einheit kg*m^2 an
'Durch diesen Schritt wird das Massenträgheitsmoment in kg*mm^2 ausgegeben
Ix_Trägheitsmoment = oMatrix(0) * (10) ^ 6
Iy_Trägheitsmoment = oMatrix(4) * (10) ^ 6
Iz_Trägheitsmoment = oMatrix(8) * (10) ^ 6
Ziel ist es, das Product 1 durch eine zuvor ausgewählte Fläche auszutauschen (Vorauswahl z.B. durch User Selection). Dies ist notwendig, da in der Powercopy mehrere Zwischenergebnisse ebenfalls Flächen sind, welche jedoch für die Steifigkeit und die Lage des Flächenschwerpunkt keine Rolle spielen dürfen. Das Flächenträgheitsmoment soll also ausschließlich von der Ergebnisgeometrie ausgegeben werden.
Ansatz/Idee: Austausch des product 1 durch die zuvor ausgewählte Fläche
Set Inertia_Matrix = oErgebnisflaeche.GetTechnologicalObject("Inertia")
anschließende Fehlermeldung: 'object doesnt support this property or method'
Ich habe auf einer Internetseite eine Codeausschnitt gefunden, mit welchem nur ein Ordered Geometrical Set angesprochen wird (siehe Anhang). Dieser ist jedoch vermutlich veraltet, da laut CATIA v5 Automatisierungshilfe das Measure Inertia Tool ja mittlerweile über 'GetTechnologicalObject' aufgerufen wird.
Für Tipps/Ideen jeglicher Art bin ich dankbar!
Mit freundlichen Grüßen,
jsautomotive
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP