Get Features of Multibody Sheet Metal Part Example (VBA)
This example shows how to get the number and names of the features in
a multibody sheet metal part.
'---------------------------------------------------------------------------
' Preconditions: A multibody sheet metal part is open.
'
' Postconditions: Compare the results printed to the
' Immediate
window with the bodies and
' features
in the sheet metal solid bodies folder.
'--------------------------------------------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swFeatMgr As
SldWorks.FeatureManager
Dim
swFeat As
SldWorks.Feature
Dim
swBodyFolder As
SldWorks.BodyFolder
Dim
swBody As
Body2
Dim
FeatType As
String
Dim
FeatTypeName As
String
Dim
NbrOfBodies As
Long
Dim
Bodies As
Variant
Dim
Features As
Variant
Dim
i As
Long
Dim
j As
Long
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swFeatMgr = swModel.FeatureManager
Set
swFeat = swModel.FirstFeature
Do
While Not swFeat Is Nothing
FeatType
= swFeat.Name
FeatTypeName
= swFeat.GetTypeName2
Debug.Print
" "
& FeatType & " [" & FeatTypeName & "]"
If
FeatTypeName = "SolidBodyFolder" Then
Set
swBodyFolder = swFeat.GetSpecificFeature2
Bodies
= swBodyFolder.GetBodies
Debug.Print
" Number
of bodies: " & swBodyFolder.GetBodyCount
For
i = 0 To (swBodyFolder.GetBodyCount
- 1)
Set
swBody = Bodies(i)
Features
= swBody.GetFeatures
Debug.Print
" Number
of features in body #" & i + 1 & ": " & swBody.GetFeatureCount
For
j = 0 To (swBody.GetFeatureCount
- 1)
Debug.Print
" Name
of feature: " & Features(j).GetTypeName2
Next
j
Next
i
End
If
Set
swFeat = swFeat.GetNextFeature
Loop
End Sub