Hallo zusammen!
Ich hab ein C# Programm das per Com-API auf Catia zugreift.
Ich möchte nun den Instanznamen eines Parts unter Komponente ändern.
Mein Baum sieht so aus:
RootProduct
|
-- Komponente
|
-- ZielPart
Wenn ich das ZielPart unterm RootProduct hängen habe klappt alles wunderbar. Wenn ich es unter die Komponente hänge wird der Instanzname einfach nicht gestzt (ich krieg nichtmal ne Exception).
Hier mal mein Code:
// Neues Catia-Dokument erzeugen
Document CatiaDocument = CatiaApplication.CreateProductDocument();
// Neues Root-Produkt erzeugen & PartNummer setzen
Product CatiaRootProduct = CatiaDocument.Product;
CatiaRootProduct.PartNumber = "RootProduct";
// Komponente unter Root-Produkt hängen
Product myComponent = CatiaRootProduct.AddNewComponent("Komponente");
// Part unter die Komponente fügen
CatiaDocument myPartDocument = CatiaApplication.OpenDocument("ZielPart.Catpart"); //Part aus Datei laden
myPartDocument.Component.PartNumber = "ZielPart";
Product myPart = myComponent.AddExternalComponent(myPartDocument);
myPart.Name = "TEST";
Naja und es funktioniert eben nicht - Zielpart bekommt nicht den Instanznamen TEST.
Ich habe schon versucht überall zwischendrinnen ein "Product = Product.ReferenceProduct" zu setzen, der Macrorecorder ist damit ja nicht gerade sparsam (nebenbei, für was ist das denn gut? - werden dann erst Eigenschaften des Objekts geladen?). Aber das hilft auch nicht.
Unsre CADler meinen es könnte vielleicht daran liegen das ich die Komponente erst Activ setzen muss - aber geht das mit der API überhaupt, und wenn wie?
Vielen Dank schon mal!
Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP