Get Sketch Points Example (VBA)
This example shows how to loop through a
selected sketch that has one or more sketch points and get the x and y
coordinates of every sketch point.
'-------------------------------------------------------
' Preconditions:
' 1. Open a model containing a sketch with one or more
' sketch points.
' 2. Select the sketch.
' 3. Open the Immediate window.
' 4. Run the macro.
'
' Postconditions:
' 1. Prints the value returned by ISketchPoint::GetCoords
' for each sketch point in the sketch to the
' Immediate window.
' 2. Prints the x and y coordinates of each sketch
' point in the sketch to the Immediate window.
' 3. Examine the Immediate window to verify that
' ISketchPoint:GetCoords returns the x coordinate of
' a sketch point.
'--------------------------------------------------------
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSketch As SldWorks.Sketch
Dim swFeat As SldWorks.Feature
Dim swSketchPoint As SldWorks.SketchPoint
Dim sketchPointArray As Variant
Dim i As Long
Dim xValue As Double
Dim yValue As Double
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
Set swSketch = swFeat.GetSpecificFeature2
Debug.Print "FeatName = " + swFeat.Name
Debug.Print " "
sketchPointArray = swSketch.GetSketchPoints2
For i = 0 To UBound(sketchPointArray)
' Get value returned by ISketchPoint::GetCoords
Set swSketchPoint = sketchPointArray(i)
Debug.Print "Value returned by ISketchPoint::GetCoords: " & swSketchPoint.GetCoords
' Get the x & y coordinates
xValue = sketchPointArray(i).X
yValue = sketchPointArray(i).Y
Debug.Print "Sketch point coordinates: "
Debug.Print " x: " & xValue
Debug.Print " y: " & yValue
Debug.Print " "
' Do something useful with the data
Next i
End Sub