Find Total Length of Sketch Segments in Sketch Example (VBA)
This example shows how to find the total length of all sketch segments
in a sketch.
'----------------------------------------------------
Option
Explicit
Public Enum swSketchSegments_e
swSketchLine
= 0
swSketchArc
= 1
swSketchEllipse
= 2
swSketchSpline
= 3
swSketchTEXT
= 4
swSketchParabola
= 5
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.feature
Dim
swSketch As
SldWorks.sketch
Dim
i As
Long
Dim
bRet As
Boolean
Dim
vSketchSeg As
Variant
Dim
swSketchSeg As
SldWorks.SketchSegment
Dim
nLength As
Double
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swSketch = swFeat.GetSpecificFeature2
vSketchSeg
= swSketch.GetSketchSegments
For
i = 0 To UBound(vSketchSeg)
Set
swSketchSeg = vSketchSeg(i)
'
Ignore construction lines
If
swSketchSeg.ConstructionGeometry
= False Then
'
ignore text
If
swSketchTEXT <> swSketchSeg.GetType
Then
nLength
= nLength + swSketchSeg.GetLength
End
If
End
If
Next
i
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" Sketch
= " & swFeat.Name
Debug.Print
" Total
length = " & nLength * 1000# & " mm"
End Sub
'----------------------------------------------------