Dim swApp AsObject Dim swModel As SldWorks.AssemblyDoc Dim designer AsString Dim valout AsString Dim longstatus AsLong, longwarnings AsLong Dim swAssy As SldWorks.AssemblyDoc
Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
'遍历装配体 Dim swAssy As Variant swAssy = swModel.GetComponents(True) tmp = GetAsmChild(swAssy)
swModel.Save
EndSub
Function GetAsmChild(swmodelComps As Variant) Dim swmodelComp As SldWorks.Component2 Dim swmodel As ModelDoc2 Dim swAsm As SldWorks.AssemblyDoc DimtextAsString Set myd = CreateObject("Scripting.Dictionary")
'遍历装配体所有东西 For i = 0To UBound(swmodelComps) Set swmodelComp = swmodelComps(i) Set swmodel = swmodelComp.GetModelDoc2
'跳过重复零件 If myd.Exists(swmodel.GetTitle) Then GoToContinue Else myd.Add swmodel.GetTitle, i EndIf
'递归改名 If swmodel.GetType = 1Then 'do something here ElseIf swmodel.GetType = 2Then swAsm = swmodel t = GetAsmChild(swAsm.GetComponents(True), designer, no) EndIf Continue: Next