Get Shell Feature Data Example (VBA)
This example shows how to get data about a shell feature.
'---------------------------------------------------
'
' Preconditions:
' (1)
Part is open.
' (2)
Shell feature is selected.
'
' Postconditions: None
'
'----------------------------------------------------
Option Explicit
Public Enum swShellDirection_e
swShellDirectionInward
= 0
swShellDirectionOutward
= 1
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swSelData As
SldWorks.SelectData
Dim
swFeat As
SldWorks.feature
Dim
swShell As
SldWorks.ShellFeatureData
Dim
vFaceRemArr As
Variant
Dim
vFaceRem As
Variant
Dim
swFaceRem As
SldWorks.face2
Dim
vMultiFaceArr As
Variant
Dim
vMultiFace As
Variant
Dim
swMultiFace As
SldWorks.face2
Dim
swEnt As
SldWorks.Entity
Dim
i As
Long
Dim
bRet As
Boolean
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swSelData = swSelMgr.CreateSelectData
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swShell = swFeat.GetDefinition
'
Get shell data
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swFeat.Name
Debug.Print
" Direction
=
" & swShell.Direction
Debug.Print
" FacesRemovedCount
=
" & swShell.FacesRemovedCount
Debug.Print
" MultipleThicknessFacesCount
=
" & swShell.GetMultipleThicknessFacesCount
Debug.Print
" Thickness
=
" & swShell.Thickness
* 1000# & " mm"
'
Rollback to get to faces
bRet
= swShell.AccessSelections(swModel,
Nothing): Debug.Assert bRet
swModel.ClearSelection2
True
vFaceRemArr
= swShell.FacesRemoved
For
Each vFaceRem In vFaceRemArr
Set
swFaceRem = vFaceRem
Set
swEnt = swFaceRem
bRet
= swEnt.Select4(True, swSelData):
Debug.Assert bRet
Next
swModel.ClearSelection2 True
vMultiFaceArr
= swShell.MultipleThicknessFaces
For
Each vMultiFace In vMultiFaceArr
Set
swMultiFace = vMultiFace
Set
swEnt = swMultiFace
Debug.Print
" MultThick("
& i & ") =
" & swShell.GetMultipleThicknessAtIndex(i)
* 1000# & " mm"
i
= i + 1
bRet
= swEnt.Select4(True, swSelData):
Debug.Assert bRet
Next
swModel.ClearSelection2 True
'
Cancel rollback
swShell.ReleaseSelectionAccess
End Sub
'---------------------------------------------------