I have a macro, that i thought was correct... I want to sort my top level BOMs by "Part number", "ascending" in order of (1) assemblies then (2)parts...
The normal "Sort" GUI works, must be something i cant see...
| Dim swApp | As SldWorks.SldWorks |
| Dim swModel | As SldWorks.ModelDoc2 |
| Dim swDraw | As SldWorks.DrawingDoc |
| Dim swBomTable | As SldWorks.BomTableAnnotation |
| Dim swBomFeat | As SldWorks.BomFeature |
| Dim swSortData | As SldWorks.BomTableSortData |
| Dim swSelMgr | As SldWorks.SelectionMgr |
| Dim swFeat | As SldWorks.Feature |
| Dim sortArray(2) | As String |
| Dim vTables | As Variant |
| Dim boolstatus | As Boolean |
Sub Sort_BOM_Data()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swSelMgr = swModel.SelectionManager
Set swFeat = swModel.FirstFeature
Do While Not swFeat Is Nothing
| If "BomFeat" = swFeat.GetTypeName Then | |
| swFeat.Select (False) | |
| Set swBomFeat = swFeat.GetSpecificFeature2 | |
| vTables = swBomFeat.GetTableAnnotations | |
| Set swBomTable = vTables(0) | |
| End If | |
| Set swFeat = swFeat.GetNextFeature |
Loop
Set swSortData = swBomTable.GetBomTableSortData
swSortData.ColumnIndex(0) = 3
swSortData.Ascending(0) = True
sortArray(0) = swBomTableSortItemGroup_e.swBomTableSortItemGroup_Assemblies
sortArray(1) = swBomTableSortItemGroup_e.swBomTableSortItemGroup_Parts
sortArray(2) = swBomTableSortItemGroup_e.swBomTableSortItemGroup_None
swSortData.ItemGroups = sortArray
swSortData.DoNotChangeItemNumber = False
boolstatus = swBomTable.Sort(swSortData)
swModel.ClearSelection2 (True)
End Sub
SolidworksApi macros