Files
Lesson 4.3 selected edge length code
Code
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swEdge As SldWorks.Edge
Dim swCurve As SldWorks.Curve
Dim swCurveParams As SldWorks.CurveParamData
Dim dblLength As Double
Dim dblTotalLength As Double
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
dblTotalLength = 0
For i = 1 To swSelMgr.GetSelectedObjectCount2(-1)
If swSelMgr.GetSelectedObjectType3(i, -1) = 1 Then
Set swEdge = swSelMgr.GetSelectedObject6(i, -1)
Set swCurve = swEdge.GetCurve
Set swCurveParams = swEdge.GetCurveParams3
dblLength = swCurve.GetLength3(swCurveParams.UMinValue, _
swCurveParams.UMaxValue)
dblTotalLength = dblTotalLength + dblLength
'print to immediate window
Debug.Print "---EDGE #" & i
Select Case swCurve.Identity
Case 3001
Debug.Print " Type: line"
Case 3002
Debug.Print " Type: circle"
Case 3003
Debug.Print " Type: ellipse"
Case 3004
Debug.Print " Type: intersection"
Case 3005
Debug.Print " Type: b-curve"
Case 3006
Debug.Print " Type: sp-curve"
Case 3008
Debug.Print " Type: constant parameter"
Case 3009
Debug.Print " Type: trimmed"
End Select
dblLength = Round(dblLength, 4)
Debug.Print " Length = " & dblLength * 1000 & "mm"
End If
Next i
'print total length
Debug.Print "---Total length: " & dblTotalLength * 1000 & "mm"
End Sub