Get Projected Curve Example (VBA)
This example shows how to get a projected curve on one or more faces.
'----------------------------------------------------
'
' Preconditions:
' (1)
Model document is open.
' (2)
Curve has been projected on one or more faces of the model.
'
' Postconditions: None
'
'-----------------------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.feature
Dim
swProjCurveFeat As
SldWorks.ProjectionCurveFeatureData
Dim
swSketchFeat As
SldWorks.feature
Dim
swSketch As
SldWorks.sketch
Dim
vFaceArr As
Variant
Dim
vFace As
Variant
Dim
swFace As
SldWorks.face2
Dim
swEnt As
SldWorks.entity
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swProjCurveFeat = swFeat.GetDefinition
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swFeat.Name
Debug.Print
" Reverse
=
" & swProjCurveFeat.reverse
'
Rollv back to access to the geometric entities
bRet
= swProjCurveFeat.AccessSelections(swModel,
Nothing): Debug.Assert bRet
Set
swSketchFeat = swProjCurveFeat.sketch
Set
swSketch = swSketchFeat.GetSpecificFeature2
Debug.Print
" Sketch
=
" & swSketchFeat.Name
vFaceArr
= swProjCurveFeat.faceArray
For
Each vFace In vFaceArr
Set
swFace = vFace
Set
swEnt = swFace
bRet
= swEnt.Select4(True, Nothing):
Debug.Assert bRet
Next
vFace
Stop
swProjCurveFeat.ReleaseSelectionAccess
End Sub
'----------------------------------------------------