Hallo Cyril,
Ich poste meinen gesamten Code. Ich habe zwei Schleifen gesetzt, denn wenn ich meine Figuren bereits umbenannt habe, hat es nicht funktioniert, also benenne ich sie zuerst mit einem Zähler um (1,2,3,4...), dann benenne ich sie mit dem Lineal um.
Option Explizit
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swRootComp als SldWorks.Component2
Dimmen von Kindern als Variante
Dim swChild As SldWorks.Component2
Dim SwSelData As SldWorks.SelectData
Dim ChildCount so lange
Dim oldName als Zeichenfolge
Dimmen newName als Zeichenfolge
Sonne j So lang
Sonne h So lange
Dim ParentName als Zeichenfolge
DimmfehlerUmbenennen wie lang
Status dimmen: Als boolescher Wert
Schwache Warnungen So lange
Sparen Sie so lange
Dim swModelDocExt als ModelDocExtension
Dim swCustProp As CustomPropertyManager
Dim bool als boolescher Wert
Dim val As String
Dim valout As String
Sub main()
Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Übergeordneter Name = Links(swModel.GetTitle, 7)
Legen Sie swRootComp = swModel.ConfigurationManager.ActiveConfiguration.GetRootComponent3(True) fest.
j = 1
h = 1
TraverseComponent swRootComp, 1
swModel.ForceRebuild3 Wahr
status = swModel.Save3(swSaveAsOptions_SaveReferenced, errorsSave, Warnungen)
Ende Sub
Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
Dim vChildComp als Variante
Dim swChildComp als Komponente2
Dim swModelChild als SldWorks.ModelDoc2
Dim swCustProp As CustomPropertyManager
Dim val As String
Dim valout As String
Sonne i So lang
Dim status2 als boolescher Wert
Dim val1 als Zeichenfolge
Dim valout1 als Zeichenfolge
vChildComp = swComp.GetChildren
Für i = 0 TB UBound(vChildComp)
Legen Sie swChildComp = vChildComp(i) fest.
TraverseComponent swChildComp, nLevel + 1
swChildComp.Select4 Falsch, SwSelData, Falsch
Legen Sie swModelChild = swChildComp.GetModelDoc2 fest
Set swCustProp = swModelChild.Extension.CustomPropertyManager("Default") ' setze den Namen der Konfiguration ein, einschließlich der
Wenn nicht, ist swCustProp nichts, dann
status = swCustProp.Get4("SWOODCP_PanelStockLength", False, val, valout)
status2 = swCustProp.Get4("HARDWARE", Falsch, val1, valout1)
If valout <> "" Or valout1 <> "" Dann
newName = h
errorsRename = swModel.Extension.RenameDocument(newName)
Debug.Print swModelChild.GetTitle & " : " & h & " - " & errorsUmbenennen
h = h + 1
Ende, wenn
Ende, wenn
Weiter i
Für i = 0 TB UBound(vChildComp)
Legen Sie swChildComp = vChildComp(i) fest.
TraverseComponent swChildComp, nLevel + 1
swChildComp.Select4 Falsch, SwSelData, Falsch
Legen Sie swModelChild = swChildComp.GetModelDoc2 fest
Set swCustProp = swModelChild.Extension.CustomPropertyManager("Default") ' Setze den Namen der Konfiguration, einschließlich der
Wenn nicht, ist swCustProp nichts, dann
status = swCustProp.Get4("SWOODCP_PanelStockLength", False, val, valout)
status2 = swCustProp.Get4("HARDWARE", Falsch, val1, valout1)
If valout <> "" Or valout1 <> "" Dann
newName = Übergeordneter Name & "-000" & j
Wenn Len(newName) > 12, dann
newName = Links(neuerName, 8) und Rechts(neuer Name, 4)
Ende, wenn
errorsRename = swModel.Extension.RenameDocument(newName)
Debug.Print swModelChild.GetTitle & " : " & j & " - " & errorsUmbenennen
j = d + 1
Ende, wenn
Ende, wenn
Weiter i
Ende Sub