Move Bodies Example (VBA)
This example shows how to move all of the bodies in a part document.
'-------------------------------------------------------------
'
' Preconditions: Part
document is open and contains one or more bodies.
'
' Postconditions: All of the bodies in the part document
are moved to the specified
' location.
'
'--------------------------------------------------------------
Option Explicit
Public Enum swBodyType_e
swAllBodies
= -1
swSolidBody
= 0
swSheetBody
= 1
swWireBody
= 2
swMinimumBody
= 3
swGeneralBody
= 4
swEmptyBody
= 5
End Enum
Sub SelectOrigin _
( _
swApp
As SldWorks.SldWorks, _
swModel
As SldWorks.ModelDoc2, _
nSelMark
As Long _
)
Dim
swFeat As
SldWorks.Feature
Dim
bRet As
Boolean
Set
swFeat = swModel.FirstFeature
Do
While Not swFeat Is Nothing
If
"OriginProfileFeature" = swFeat.GetTypeName
Then
bRet
= swFeat.Select2(True, nSelMark):
Debug.Assert bRet
Exit
Do
End
If
Set
swFeat = swFeat.GetNextFeature
Loop
End Sub
Sub SelectBodies _
( _
swApp
As SldWorks.SldWorks, _
swModel
As SldWorks.ModelDoc2, _
vBodyArr
As Variant, _
)
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swSelData As
SldWorks.SelectData
Dim
vBody As
Variant
Dim
swBody As
SldWorks.body2
Dim
bRet As
Boolean
If
IsEmpty(vBodyArr) Then Exit Sub
For
Each vBody In vBodyArr
Set
swBody = vBody
swSelData.Mark = 1
bRet
= swBody.Select2(True, swSelData):
Debug.Assert bRet
Next
vBody
End Sub
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swPart As
SldWorks.PartDoc
Dim
vBodyArr As
Variant
Dim
swFeatMgr As
SldWorks.FeatureManager
Dim
swFeat As
SldWorks.Feature
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swPart = swModel
Set
swFeatMgr = swModel.FeatureManager
swModel.ClearSelection2 True
vBodyArr
= swPart.GetBodies(swAllBodies)
SelectBodies
swApp, swModel, vBodyArr
SelectOrigin
swApp, swModel, 8
Set
swFeat = swFeatMgr.InsertMoveCopyBody2(
_
0.1,
0.2, 0.3, _
0#,
_
0#,
0#, 0#, _
0#,
0#, 0#, _
False,
1): Debug.Assert Not swFeat Is Nothing
End
Sub
'-------------------------------------------------------------