Get P-Spline Parameterization Data Example (VB.NET)
This example shows how to get P-spline parameter data for a selected
spline or curve.
'----------------------------------------------------------------------------
' Preconditions:
' 1. Open <SOLIDWORKS_install_dir>\samples\tutorial\molds\telephone.sldprt.
' 2. Select a curved edge of Shell1 in the graphics area.
' 3. Open an Immediate Window.
'
' Postconditions:
' View the following information about the selected spline
'
in the
Immediate Window:
' * dimension
' 1-D: X
' 2-D: X, Y
' 3-D: X, Y, Z
' 4-D: X, Y, Z, W (where W is the weight of the control point)
' * order (degree + 1)
' * periodicity
' * number of knots
' * number of segments
' * coefficients in each segment polynomial
' # coefficients = (segment count) X (dimension) X (count)
' * spline style: color, layer, layer override, line style, line weight
'----------------------------------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System
Imports
System.Diagnostics
Partial
Class
SolidWorksMacro
Sub
main()
Dim
swApp As
SldWorks
Dim
Part As
ModelDoc2
swApp = CreateObject("SldWorks.Application")
Part = swApp.ActiveDoc
Dim
swSelectMgr As
SelectionMgr
swSelectMgr = Part.SelectionManager
Dim
swSketchSeg As
Edge
swSketchSeg =
swSelectMgr.GetSelectedObject6(1, -1)
Dim
swCurveIn As
Curve
Dim
swSplineParaData As
SplineParamData
Dim
varCtrlPoints As
Object =
Nothing
Dim
varKnotPoints As
Object =
Nothing
Dim
boolStatus As
Boolean
Dim
i As
Long
swCurveIn = swSketchSeg.GetCurve
swSplineParaData = swCurveIn.GetPCurveParams2
Debug.Print("P-spline")
Debug.Print("")
Debug.Print("The dimension is: "
& swSplineParaData.Dimension)
Debug.Print("The order is: "
& swSplineParaData.Order)
Debug.Print("The periodicity is:
" & swSplineParaData.Periodic)
Debug.Print("The knot count is: "
& swSplineParaData.KnotPointsCount)
Debug.Print("Knots: ")
boolStatus = swSplineParaData.GetKnotPoints(varKnotPoints)
For
i = 0 To
UBound(varKnotPoints)
Debug.Print(varKnotPoints(i))
Next
i
Debug.Print("The segment count
is: " & swSplineParaData.SegmentCount)
boolStatus = swSplineParaData.GetSegments(varCtrlPoints)
Debug.Print((swSplineParaData.SegmentCount *
swSplineParaData.Dimension * swSplineParaData.Order) &
" Coefficients: ")
For
i = 0 To
UBound(varCtrlPoints)
Debug.Print(varCtrlPoints(i))
Next
i
Debug.Print("")
Debug.Print("COLORREF of spline:
" & swSplineParaData.Color)
Debug.Print("Layer of spline: "
& swSplineParaData.Layer)
Debug.Print("Style overrides as
defined in swLayerOverride_e: " &
swSplineParaData.LayerOverride)
Debug.Print("Line style as
defined in swLineStyles_e:: " &
swSplineParaData.LineStyle)
Debug.Print("Line weight at
defined in swLineWeights_e: " &
swSplineParaData.LineWidth)
End
Sub
Public
swApp As
SldWorks
End
Class