| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: Geniale 3D-Visualisierung für intuitiven HMI Einsatz, eine Pressemitteilung
|
Autor
|
Thema: ReplaceComponent ohne Selection (649 / mal gelesen)
|
Lionel Hutz Moderator
 
 Beiträge: 497 Registriert: 26.03.2014 CATIA V5 R26
|
erstellt am: 28. Aug. 2020 08:35 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich möchte das erste Part im ersten Unterprodukt (oOldPart) ersetzen durch ein Part dessen Dateipfad (sNewPArt) bekannt ist. Ich habe oOldPart sowie das Oberprodukt bereits identifiziert, kriege das ReplaceComponent aber nicht richtig gefüttert. Was von den Objekten entsprechenden Objekten muss ich verwenden? Code: Sub CATMain() Dim oDocs As Documents Dim oDoc As Document Dim oProds As Products Dim oOldPart 'As ? Dim oOldPartReference As Product '? Dim oParentProds As Products Set oDoc = CATIA.ActiveDocument Set oDocs = CATIA.Documents Set oProds = oDoc.Product.Products 'Pfad der neuen Parts sNewPart = "D:\temp\PART1.CATPart" Set oOldPart = oProds.Item(1).Products.Item(1) Set oOldPartReference = oOldPart.ReferenceProduct MsgBox oOldPart.Name 'Instanzname des Altteils MsgBox oOldPartReference.Name ' des Altteils MsgBox oOldPartReference.Parent.Name 'Dateiname des Altteils 'MsgBox oOldPartReference.Parent.Product.PartNumber Set oParentProds = oOldPart.Parent.Parent MsgBox oParentProds.Name 'Instanzname des Oberprodukts '---------Hier kommt die Fehlermeldung Set oNewPart = oParentProds.ReplaceComponent(oOldPartReference, sNewPart, False) End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Aug. 2020 08:48 <-- editieren / zitieren --> Unities abgeben:          Nur für Lionel Hutz
Servus Du bist wohl per Parent eine Stufe zu hoch gegangen.
Code: Set oOldPart = oProds.Item(1).Products.Item(1) Set oParentProds = oOldPart.Parent.Parent Set oNewPart = oParentProds.ReplaceComponent(oOldPartReference, sNewPart, False) 'vermutlich muss es hier die Instanz sein und nicht das ReferenceProduct
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lionel Hutz Moderator
 
 Beiträge: 497 Registriert: 26.03.2014 CATIA V5 R26
|
erstellt am: 28. Aug. 2020 09:12 <-- editieren / zitieren --> Unities abgeben:         
Wunderbar. Danke. Code: Sub CATMain() Dim oDocs As Documents Dim oDoc As Document Dim oProds As Products Dim oOldPart As Product Dim oParentProds As Products Dim sNewPart As String Set oDoc = CATIA.ActiveDocument Set oDocs = CATIA.Documents Set oProds = oDoc.Product.Products 'Pfad der neuen Parts sNewPart = "D:\temp\PART1.CATPart" Set oOldPart = oProds.Item(1).Products.Item(1) Set oParentProds = oOldPart.Parent oParentProds.ReplaceComponent oOldPart, sNewPart, False End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |