Get Loft's Pick Points Example (VB.NET)
This example shows how to get the pick points of a loft feature.
'----------------------------------
' Preconditions:
' 1. Open:
' <SolidWorks_install_dir>\samples\tutorial\cosmosfloxpress\ball valve\handle.sldprt.
' 2. The feature named 1 (a loft feature)
is selected.
'
' Postconditions: None
'-----------------------------------
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System
Imports System.Diagnostics
Partial Class SolidWorksMacro
Dim
swModel As ModelDoc2
Dim
swSelMgr As SelectionMgr
Dim
swFeat As Feature
Dim
swFeatData As LoftFeatureData
Dim
swMathPoint As MathPoint
Dim
newMathPoint() As MathPoint
Dim
pickPointData As Object
Dim
pointVar As Object
Dim
newTopVar As Object
Dim
pointData As Object
Dim
selCount As Long
Dim
chainCount As Long
Dim
pointCount As Long
Dim
numberOfChains As Long
Dim
numOfPointInEachChain As Long
Dim
newCount As Long
Sub
main()
swModel
= swApp.ActiveDoc
swSelMgr
= swModel.SelectionManager
selCount
= swSelMgr.GetSelectedObjectCount
If
selCount <> 1 Then
MsgBox("Select
a loft feature.")
End
If
swFeat
= swSelMgr.GetSelectedObject6(1,
-1)
swFeatData
= swFeat.GetDefinition
'
Get the loft's pick points
newCount
= 0
pickPointData
= swFeatData.PickPoints
numberOfChains
= UBound(pickPointData) + 1
Debug.Print("No.
of chains = " & (UBound(pickPointData) + 1))
Debug.Print("")
For
chainCount = LBound(pickPointData) To UBound(pickPointData)
pointData
= pickPointData(chainCount)
numOfPointInEachChain
= UBound(pointData) + 1
ReDim
Preserve newMathPoint(0 To ((numberOfChains * numOfPointInEachChain) -
1))
Debug.Print("Chain
= " & chainCount & ", Number of points = " &
(UBound(pointData) + 1))
For
pointCount = LBound(pointData) To UBound(pointData)
swMathPoint
= pointData(pointCount)
pointVar
= swMathPoint.ArrayData
newMathPoint(newCount)
= swMathPoint
newMathPoint(newCount).ArrayData = pointVar
Debug.Print("X
= " & pointVar(0) * 1000 & " Y = " & pointVar(1)
* 1000 & " Z = " & pointVar(2) * 1000)
newCount
= newCount + 1
Next
pointCount
Debug.Print("")
Next
chainCount
End
Sub
'''
<summary>
'''
The SldWorks swApp variable is pre-assigned for you.
'''
</summary>
Public
swApp As SldWorks
End Class