在活动的SOLIDWORKS文档中批量创建特征文件夹
VBA宏在活动的SOLIDWORKS零件或装配中创建指定数量的具有指定前缀名称的特征文件夹
这个VBA宏允许在活动的SOLIDWORKS装配或零件文档中批量创建特征文件夹。
宏将询问要创建的文件夹数量和文件夹前缀名称。
宏将创建指定数量的文件夹,前缀名称后跟索引。
如果下一个索引的文件夹已经存在,则使用下一个索引进行命名。
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swApp.ActiveDoc
If Not swModel Is Nothing Then
Dim foldersCount As Integer
Dim folderNamePrefix As String
foldersCount = CInt(InputBox("指定要创建的文件夹数量", "批量文件夹创建器", "5"))
folderNamePrefix = InputBox("指定文件夹的前缀名称", "批量文件夹创建器", "MyFolder")
Dim swAnchorFeat As SldWorks.Feature
Set swAnchorFeat = swModel.Extension.GetLastFeatureAdded
Dim swFeatMgr As SldWorks.FeatureManager
Set swFeatMgr = swModel.FeatureManager
Dim i As Integer
Dim nextIndex As Integer
nextIndex = 0
For i = 1 To foldersCount
swAnchorFeat.Select2 False, -1
Dim swFolderFeat As SldWorks.Feature
Set swFolderFeat = swFeatMgr.InsertFeatureTreeFolder2(swFeatureTreeFolderType_e.swFeatureTreeFolder_EmptyBefore)
If swFolderFeat Is Nothing Then
Err.Raise vbError, "", "无法创建文件夹,请确保模型中至少有一个特征"
End If
Dim folderName As String
Do
nextIndex = nextIndex + 1
folderName = folderNamePrefix & nextIndex
Loop While False <> swFeatMgr.IsNameUsed(swNameType_e.swFeatureName, folderName)
swFolderFeat.Name = folderName
swModel.Extension.ReorderFeature swFolderFeat.Name, "", swMoveLocation_e.swMoveToEnd
Next
Else
Err.Raise vbError, "", "未打开模型"
End If
End Sub