Hallo zusammen,
ich schreibe derzeit meine Projektarbeit an der Uni in Erlangen, in der es darum geht, verschiedene Informationen aus einem Catia Part mit einem VBA Macro zu extrahieren und aus den Daten ein Graphenmodell zu basteln. Der Graph soll die Relationen zwischen den in den Skizzen der verschiedenen Features enthaltenen geometrischen Elementen zeigen. Also zum Beispiel den Abstand zweier Linien o.Ä. Die Relationen innerhalb einer Skizze sind dabei die Constraints, die ja relativ leicht ausgelesen werden können (über getconstraintelement der klasse constraint). Sobald ein solches constraint allerdings ein skizzenexternes element referenziert, z.B. eine Kante, Fläche etc, bekommt man von getconstraintelement "Mark.1" als referenznamen. Um dieses Problem zu umgehen habe ich bereits eine Abfrage eingebaut, die den Benutzer auffordert das externe element auszuwählen. über [selection-objekt].item2(n).value.name bekomme ich den BRepnamen der externen referenz, der eigentlich alle relevanten informationen enthält.
Beispiel:
"Selection_REdge:(Edge:(Face:(Brp:(Pad.2;0:(Brp:(Sketch.4;5)));None:();Cf11:());Face:(Brp:(Pad.2;2);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());Pad.1_ResultOUT;Z0;G3173) "
Das externe Element ist eine Kante (Edge:)
Die Kante wird von der Fläche1 Face:(Brp:(Pad.2;0:(Brp:(Sketch.4;5)));None:();Cf11:())
und der Fläche2 Face:(Brp:(Pad.2;2);None:();Cf11:()) erzeugt.
Fläche1 wird erzeugt von KE: "Pad.2" und dem Element Nummer 5 von Skizze
Fläche2 wird erzeugt von KE: "Pad.2" und stellt den Deckel, also Limit2, dar.
Ich dachte nun bei der element nummer (im Beispiel 5) handelt es sich um die 5. Position in der Liste geometrischer Elemente der Skizze. Dem ist leider nicht so -.-
Leider nummeriert Catia die geometrischen Elemente intern anders als die Nummerierung, die über die Automation API zur Verfügung steht. (nicht sicher ob die Aussage so richtig ist.) :)
Die Frage wäre jetzt also ob man irgendwie auf die interne Nummerierung zugreifen kann oder, wenn das nicht möglich ist, ob ihr eine Idee habt, wie man eine Körperfläche auf das zugehörige Skizzenelement zurückführen kann.
Ich bin mit meinem Latein leider am Ende und deshalb sehr dankbar für alle Anregungen! :confused:
Gruß
Jonas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP