Ich gruesse alle Profis der V5-Makros.
Ich arbeite mit R16 und habe mir ein Makro geschrieben, dass auf allen Strukturebenen die Partnumber und die Instanz nach dem Dokumentennamen umbenennen soll. Das klappt auch ganz gut, nur die Produkte ab der 2.Baumstrukturebene werden nicht umbenannt. Die Parts veraendert er anstandslos. Ich kann mir das nicht erklaeren. Weiss von Euch jemand Rat?
Hier der Code:
Sub Main()
Set oRoot = CATIA.ActiveDocument
Set oProd = oRoot.Product
Set oProducts = oRoot.Product.Products
SUB_ProdScan oProducts
End Sub
Sub SUB_ProdScan(oProducts)
For i = 1 To oProducts.Count
n = 8 'CatPart
If oProducts.Item(i).Products.Count = 0 Then
Dim SubProduct As Product
Set SubProduct = oProducts.Item(i)
Set ProdToRename = SubProduct.Parent.Parent.ReferenceProduct.Products.Item(SubProduct.Name)
catpartname = ProdToRename.ReferenceProduct.Parent.Name 'Dokumentenname
laenge_name = Len(catpartname) 'Laenge des Dokumentennamens
Partname = Mid(catpartname, 1, laenge_name - n) 'Dokumentenname ohne Extension
'MsgBox catpartname
'MsgBox Partname
laenge_instanz = Len(ProdToRename.Name)
instanz_nr = Mid(ProdToRename.Name, laenge_instanz - 1, 2) 'Welche Instanz ist hier verbaut?
neue_Instanz = Partname + instanz_nr 'Uebernahme der vorhandenen Instanznummer
'MsgBox neue_Instanz
ProdToRename.Name = neue_Instanz
ProdToRename.PartNumber = Partname
Else
n = 11 'CatProduct
catpartname = oProducts.Item(i).ReferenceProduct.Parent.Name 'Dokumentenname
laenge_name = Len(catpartname) 'Laenge des Dokumentennamens
Partname = Mid(catpartname, 1, laenge_name - n) 'Dokumentenname ohne Extension
'MsgBox catpartname
'MsgBox Partname
laenge_instanz = Len(oProducts.Item(i).Name)
instanz_nr = Mid(oProducts.Item(i).Name, laenge_instanz - 1, 2) 'Welche Instanz ist hier verbaut?
neue_Instanz = Partname + instanz_nr 'Uebernahme der vorhandenen Instanznummer
'MsgBox neue_Instanz
oProducts.Item(i).Name = neue_Instanz
oProducts.Item(i).PartNumber = Partname
Set oProductsUebergabe = oProducts.Item(i).Products
SUB_ProdScan oProductsUebergabe
End If
Next
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP