Insert Reference Points Example (VBA)
This example shows how to inserts six, evenly spaced referenced points
on the selected edge.
'-----------------------------------------------------
'
' Preconditions:
' (1)
Part or assembly document is open.
' (2)
Edge is selected.
'
' Postconditions: Six, evenly spaced, reference points
are created on the
' selected
edge.
'
'------------------------------------
Option Explicit
Public Enum swRefPointType_e
swRefPointInvalid
= 0
swRefPointUndefined
= 1
swRefPointAlongCurve
= 2
swRefPointCenterEdge
= 3
swRefPointFaceCenter
= 4
swRefPointFaceVertexProjection
= 5
swRefPointIntersection
= 6
End Enum
Public Enum swRefPointAlongCurveType_e
swRefPointAlongCurveDistance
= 0
swRefPointAlongCurvePercentage
= 1
swRefPointAlongCurveEvenlyDistributed
= 2
End Enum
Public Enum swOnSurfacePlaneProjectType_e
swOnSurfacePlaneProjecttoNearestLocation
= 0
swOnSurfacePlaneProjectAlongSketchNormal
= 1
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swFeatMgr As
SldWorks.FeatureManager
Dim
vFeatArr As
Variant
Dim
vFeat As
Variant
Dim
swFeat As
SldWorks.feature
Dim
swRefPt As
SldWorks.refPoint
Dim
swRefPtData As
SldWorks.RefPointFeatureData
Dim
swMathPt As
SldWorks.MathPoint
Dim
nStatus As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swFeatMgr = swModel.FeatureManager
Debug.Print
"File = " & swModel.GetPathName
'
An edge must be preselected
vFeatArr
= swFeatMgr.InsertReferencePoint(swRefPointAlongCurve,
swRefPointAlongCurveEvenlyDistributed, 0#, 6)
For
Each vFeat In vFeatArr
Set
swFeat = vFeat
Set
swRefPt = swFeat.GetSpecificFeature2
Set
swRefPtData = swFeat.GetDefinition
Set
swMathPt = swRefPt.GetRefPoint
Debug.Print
" "
& swFeat.Name
Debug.Print
" Pt
= (" & _
swMathPt.ArrayData(0) * 1000# & ", "
& _
swMathPt.ArrayData(1) * 1000# & ", "
& _
swMathPt.ArrayData(2) * 1000# & ") mm"
Debug.Print
" AlongCurveOption
=
" & swRefPtData.AlongCurveOption
Debug.Print
" Distance
=
" & swRefPtData.distance
* 1000# & " mm"
Debug.Print
" Type
=
" & swRefPtData.Type
Next
End Sub
'-----------------------------------------------------