Diese Antwort hilft nur bedingt, trotzdem Danke.
Wie es scheint, gibt es für mein triviales Problem keine saubere Lösung.
CATIA.ActiveDocument.Part.FindObjectByName("GeoSet_Makro") war so ziemlich das erste, was ich ausprobiert habe. Neben CATIA.ActiveDocument.Part.CreateReferenceFromName("Part1/!GeoSet_Makro") in allen Schreibweisen.
Das Problem an FindObjectByName ist, dass der gesamte Baum des Parts solange durchsucht wird, bis der gesuchte Begriff gefunden wurde oder nicht. Wie lange mag die Ausführung der Anweisung FindObjectByName dauern, wenn jemand aus Unwissenheit mit einem Part arbeitet, das 80.000 einzelne Flächen enthält?
Ich möchte sowieso nicht das gesamte Part nach einem Namen durchsuchen, sondern nur einen ganz bestimmten Knoten. Genauso, wie es CATIA macht, wenn unter Options eingestellt wurde Cecking Operation When Renaming: Under the same tree node.
Zumindest lässt sich per FindObjectByName sicherstellen, dass das per Makro erzeugte Geom. Set einen eindeutigen Namen hat. Wird jedoch tief verschachtelt im Baum ein Element mit dem gesuchten Name gefunden, dann wird der Name fälschlicherweise nicht zum Umbenennen verwendet. Es wäre denkbar, dass auf "GeoSet2_Makro" ein "GeoSet4_Makro" folgt, nur weil FindObjectByName irgendwo tief im Baum ein "GeoSet3_Makro" gefunden hat.
Mal abgesehen vom unnötigen Scannen des Baums wäre dieser höchst unwahrscheinliche Fall kein Beinbruch. Alle formelmäßigen Verknüpfungen der Elemente im erzeugten Geom. Set würden tadellos funktionieren. Aber scheinbar habe ich eine Abneigung gegen bewusst in Skripte eingebaute logische Fehler. Es muss doch eine einfache, zuverlässige Methode geben, die CATIA-Funktion Cecking Operation When Renaming: Under the same tree node per Makro nachzubilden!
[Diese Nachricht wurde von Math.random am 16. Apr. 2010 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP