Batch create feature folders in the active SOLIDWORKS document
This VBA macro allows to create feature folders in the batch mode in the active SOLIDWORKS assembly or part document.
Macro will ask for the number of folders to be created and the folder prefix name.
Macro will create the specified number of folder with the prefix name followed by the index.
If folder with the next index already exists, next index will be used for the naming
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("Specify the number of folders to create", "Batch Folder Creator", "5"))
folderNamePrefix = InputBox("Specify the prefix name of the folder", "Batch Folder Creator", "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, "", "Failed to create a folder, make sure there there is at least one feature in the model"
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, "", "No model opened"
End If
End Sub