Get Sectioned Bodies Example (VBA)
This example shows how to get sectioned bodies and create a new part
using the sectioned bodies.
'-------------------------------------------------------
'
' Preconditions:
' (1)
An assembly is open and full resolved.
' (2)
Active view is a section view.
' (3)
At least one sectioned component is selected in either the
FeatureManager
design tree or the graphics area.
'
' Postconditions:
' (1)
New part is created.
' (2)
New part has one or more bodies from the selected
' and
sectioned component.
'
'--------------------------------------------------------
Option Explicit
Public Enum swCreateFeatureBodyOpts_e
swCreateFeatureBodyCheck
= &H1
swCreateFeatureBodySimplify
= &H2
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swComp As
SldWorks.Component2
Dim
swModView As
SldWorks.ModelView
Dim
vBodyArr As
Variant
Dim
vBody As
Variant
Dim
swBody As
SldWorks.body2
Dim
swNewPart As
SldWorks.PartDoc
Dim
swFeat As
SldWorks.feature
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swComp = swSelMgr.GetSelectedObjectsComponent2(1)
': Debug.Assert Not swComp Is Nothing
Set
swModView = swModel.ActiveView
Set
swNewPart = swApp.NewPart
vBodyArr
= swComp.GetSectionedBodies(swModView):
Debug.Assert UBound(vBodyArr) >= 0
For
Each vBody In vBodyArr
Set
swBody = vBody
Set
swFeat = swNewPart.CreateFeatureFromBody3(swBody,
False, swCreateFeatureBodyCheck): Debug.Assert Not swFeat Is Nothing
Next
vBody
End Sub
'-------------------------------------------