2016-11-22 3 views
0

ich habe ein spezifisches Problem, dass dieses Stück Code nicht wie erwartet funktioniert:catvba, catia Produkt Bug Umbenennung

Private Sub productRename() 
    Dim oProd As Product 
    Set oProd = CATIA.Documents.Add("Product").Product 

    Set oProd = oProd.Products.AddNewComponent("Product", "") 
    oProd.Name = "prod.1" 

    Set oProd = oProd.Products.AddNewComponent("Product", "") 
    oProd.Name = "prod.2" 
End Sub 

Ich versuche Instanznamen auf verschiedenen Ebenen zu wechseln, kann auf der ersten Ebene, aber nicht für andere Ebenen. Ein bestimmtes Skript erstellt ein neues Produkt, fügt ein Unterprodukt hinzu, benennt es um und fügt dann eine weitere Unterebene hinzu und versucht, sie umzubenennen. Das Skript wird jedoch ohne Fehler beendet, ohne die letzte Instanz zu ändern. Instanznamen sind nicht in Konflikt, einzigartig, da es nur diese neu erstellten Produkte gibt.

Problem erscheint auf R24 SP4, also kann bitte jemand bestätigen, dass es auf verschiedenen SP-Ebene funktioniert?

Antwort

1

das Referenzprodukt anstelle der Instanz Produkt Verwenden Sie das neue Kind hinzuzufügen, und Sie sollten den Namen der Instanz

Dim PN As String 
PN = "12345" 
Dim instanceName as String 
instanceName = "12345.X" 

Set oProd3 = oProd2.ReferenceProduct.Products.AddNewComponent("Product", PN) 
oProd3.Name = instanceName 
+0

das ist richtig, danke! auch wenn, würde nett sein zu wissen, warum ref produkt kann und instanz produkt kann nicht instanz name – tsolina

0

Ihr Code hat dasselbe Verhalten auch in r25.

Ich würde so etwas wie dies versuchen:

Sub CATMain() 

Dim oProd As Product 
Set oProd = CATIA.Documents.Add("Product").Product 

Set oProd1 = oProd.Products.AddNewComponent("Product", "prod.1") 
'~ oProd1.Name = "prod.1" 

Set oProd2= oProd1.Products.AddNewComponent("Product", "prod.2") 
'~ oProd2.Name = "prod.2" 

    Set oProd3 = oProd2.Products.AddNewComponent("Product", "prod.3") 
'~ oProd3.Name = "prod.3" 

End Sub 
+0

dank Ferdo einstellen können , aber ich würde dies auch tun, und das würde für catparts funktionieren, aber nicht für .cgr, wenn es auch Instanzen auf verschiedenen Ebenen gibt, sobald Produkt erstellt wird, kann der Name nicht geändert werden, seltsam – tsolina

+0

Vielleicht habe ich nicht verstanden, was Sie tun wollen, aber von Ihrem Code und Ihrer Erklärung scheint es dass Sie neue Produkte untereinander hinzufügen und von Anfang an umbenennen möchten. Was willst du eigentlich? Um eine völlig neue Produktstruktur mit allen Arten von CATIA-Dateien zu erstellen? – ferdo

+0

genau, das war nur ein Beweis für Fehler in Catia, aber ich denke, es war sogar auf R19 arbeiten ... also ja, ich bin Produkt von Grund auf einige Ordnerstruktur mit jeder Art von Daten in ihm bauen, die gut funktioniert, außer ich kann Namen nicht ändern, nachdem sie erstellt werden – tsolina

Verwandte Themen