Get Lines in Sketch Example (VBA)
This example shows how to get the number of lines in the selected sketch
and their start and end points coordinates.
'------------------------------------------------
'
' 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
swPart As
SldWorks.PartDoc
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.feature
Dim
swSketch As
SldWorks.Sketch
Dim
NumLines As
Long
Dim
vLines As
Variant
Dim
i As
Variant
Dim
bRet As
Boolean
Dim
TrueFalse As
Boolean
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swPart = swModel
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Debug.Print
"Feature = " & swFeat.GetTypeName
Set
swSketch = swFeat.GetSpecificFeature2
NumLines
= swSketch.GetLineCount2(1)' Exclude
crosshatch lines
Debug.Print
" NumLines
= " & NumLines
vLines
= swSketch.GetLines2(1) 'Exclude
crosshatch lines
For
i = 0 To NumLines - 1
Debug.Print
" Line("
& i & ")"
Debug.Print
" type
= "
& vLines(7 * i)
Debug.Print
" start
= (" & _
vLines(12
* i + 6) * 1000# & "," & _
vLines(12
* i + 7) * 1000# & "," & _
vLines(12
* i + 8) * 1000# & ") mm"
Debug.Print
" end
=
(" & _
vLines(12
* i + 9) * 1000# & "," & _
vLines(12
* i + 10) * 1000# & "," & _
vLines(12
* i + 11) * 1000# & ") mm"
Next
i
End Sub