Get Sketch Points and Sketch Point IDs Example (VBA)
This example shows how to get all of the sketch points in the selected
sketch and their IDs.
'--------------------------------------
'
' Preconditions: Model document is open and a sketch is
selected.
'
' Postconditions: None
'
'--------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swSelData As
SldWorks.SelectData
Dim
swSketch As
SldWorks.Sketch
Dim
swSketchPt As
SldWorks.SketchPoint
Dim
swFeat As
SldWorks.feature
Dim
vSketchUserPt As
Variant
Dim
vSketchPt As
Variant
Dim
vSketchPtID As
Variant
Dim
i As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swSelData = swSelMgr.CreateSelectData
Set
swFeat = swSelMgr.GetSelectedObject6(1,
0)
Set
swSketch = swFeat.GetSpecificFeature2
Debug.Print
"FeatName = " + swFeat.Name
vSketchUserPt
= swSketch.GetUserPoints2
For
i = 0 To UBound(vSketchUserPt) / 3 - 1
'
Coordinates in sketch space
Debug.Print
" UserPt
(" & i & ") = (" & _
vSketchUserPt(3
* i + 0) * 1000# & ", " & _
vSketchUserPt(3
* i + 1) * 1000# & ", " & _
vSketchUserPt(3
* i + 2) * 1000# & ") mm"
Next
i
Debug.Print
""
vSketchPt
= swSketch.GetSketchPoints2
For
i = 0 To UBound(vSketchPt)
Set
swSketchPt = vSketchPt(i)
'
Do not assert;
'
will fail if point has been deleted
'
or if point references another entity;
'
for example, point in sketch or vertex
bRet
= swSketchPt.Select4(True, swSelData)
'
Dump persistent identifier
vSketchPtID
= swSketchPt.GetId
Debug.Print
" IDPt("
& i & ") = [" & _
vSketchPtID(0)
& ", " & _
vSketchPtID(1)
& "]"
Debug.Print
" ("
& _
swSketchPt.X * 1000# & ", " &
_
swSketchPt.Y * 1000# & ", " &
_
swSketchPt.Z * 1000# & ") mm"
Next
i
End Sub