Copy and Rotate Body using Edge Example (VBA)
This example shows how to copy and rotate a body using an edge.
'--------------------------------------------
'
' Preconditions:
' (1)
Part document is open.
' (2)
Part document contains a Body-Move/Copy1 feature.
'
' Postconditions: A body is copied and then rotated.
'
'--------------------------------------------
Option Explicit
Sub main()
Dim
swApp As SldWorks.SldWorks
Dim
part As SldWorks.PartDoc
Dim
swModel As SldWorks.ModelDoc2
Dim
swModelDocExt As SldWorks.ModelDocExtension
Dim
swSelMgr As SldWorks.SelectionMgr
Dim
component As SldWorks.Component2
Dim
moveCopyFeat As SldWorks.feature
Dim
moveCopy_featData As SldWorks.MoveCopyBodyFeatureData
Dim
Edge As SldWorks.Edge
Dim
boolstatus As Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
part = swModel
Set
swModelDocExt = swModel.Extension
Set
swSelMgr = swModel.SelectionManager
Set
moveCopyFeat = part.FeatureByName("Body-Move/Copy1")
Set
moveCopy_featData = moveCopyFeat.GetDefinition
boolstatus
= moveCopy_featData.AccessSelections(part,
component)
moveCopy_featData.TransformType = swTransformType_Rotation
boolstatus
= swModelDocExt.SelectByID2("",
"EDGE", -0.02055182710563, 0.02578483802733, 0.01961522451472,
False, 0, Nothing, swSelectOptionDefault)
Set
Edge = swSelMgr.GetSelectedObject5(1)
moveCopy_featData.TransformReferenceEntity = Edge
moveCopy_featData.TransformX = 0.09
boolstatus
= moveCopyFeat.ModifyDefinition(moveCopy_featData,
part, Nothing)
moveCopy_featData.ReleaseSelectionAccess
End Sub