Get Parabolas in Sketch Example (VBA)
This example shows how to get information about all of the parabolas
in a sketch.
'-----------------------------------------------
'
' Preconditions:
' (1)
Sketch is open.
' (2)
Sketch contains at least one parabola.
'
' Postconditions: None
'
'------------------------------------------------
Option Explicit
Public Enum swLineTypes_e
swLF_VISIBLE
= 0
swLF_HIDDEN
= 1
swLF_SKETCH
= 2
swLF_DETAIL
= 3
swLF_SECTION
= 4
swLF_DIMENSION
= 5
swLF_CENTER
= 6
swLF_HATCH
= 7
swLF_TANGENT
= 8
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swFeat As
SldWorks.feature
Dim
swSketch As
SldWorks.sketch
Dim
vParabArr As
Variant
Dim
i As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSketch = swModel.GetActiveSketch2
Set
swFeat = swSketch
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swFeat.Name
vParabArr
= swSketch.GetParabolas2
For
i = 0 To swSketch.GetParabolaCount
- 1
Debug.Print
" Parabola["
& i & "]"
Debug.Print
" Color
=
" & vParabArr(18 * i + 0)
Debug.Print
" Linetype
=
" & vParabArr(18 * i + 1)
'
Drawings only
Debug.Print
" Font
=
" & vParabArr(18 * i + 2)
Debug.Print
" Width
=
" & vParabArr(18 * i + 3)
Debug.Print
" LayerID
=
" & vParabArr(18 * i + 4)
Debug.Print
" Layer
Override =
" & vParabArr(18 * i + 5)
Debug.Print
" Start
Pt =
(" & vParabArr(18 * i + 6) * 1000# & ", " &
vParabArr(18 * i + 7) * 1000# & ", " & vParabArr(18
* i + 8) * 1000# & ") mm"
Debug.Print
" End
Pt
=
(" & vParabArr(18 * i + 9) * 1000# & ", " &
vParabArr(18 * i + 10) * 1000# & ", " & vParabArr(18
* i + 11) * 1000# & ") mm"
Debug.Print
" Focus
Pt =
(" & vParabArr(18 * i + 12) * 1000# & ", " &
vParabArr(18 * i + 13) * 1000# & ", " & vParabArr(18
* i + 14) * 1000# & ") mm"
Debug.Print
" Apex
Pt =
(" & vParabArr(18 * i + 15) * 1000# & ", " &
vParabArr(18 * i + 16) * 1000# & ", " & vParabArr(18
* i + 17) * 1000# & ") mm"
Next
i
End Sub
'-----------------------------------------------