Get b-spline parameters from the selected edge using SOLIDWORKS API
This VBA example extracts the parameters (dimension, order, periodicity, control and knot points) from the selected edge of b-spline type (e.g. edge derived from the spline segment). The extracted data can be used in the IModeler::CreateBsplineCurve SOLIDWORKS API method to build the curve of the same geometry.
The data is output into the Immediate window of VBA editor in the following format:
Props: Dimension Val Order Val Control Points Count Val Periodic Val Knots: Val 1 ... Val N Control Points: Val 1 ... Val N
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swSelMgr As SldWorks.SelectionMgr Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Dim swEdge As SldWorks.Edge Set swEdge = swSelMgr.GetSelectedObject6(1, -1) Dim swCurve As SldWorks.Curve Set swCurve = swEdge.GetCurve Dim swSplineData As SldWorks.SplineParamData Set swSplineData = swCurve.GetBCurveParams5(False, False, False, False) Dim i As Integer Debug.Print "Props:" Debug.Print swSplineData.Dimension Debug.Print swSplineData.Order Debug.Print swSplineData.ControlPointsCount Debug.Print swSplineData.Periodic Debug.Print "Knots:" Dim vKnotPts As Variant swSplineData.GetKnotPoints vKnotPts For i = 0 To UBound(vKnotPts) Debug.Print vKnotPts(i) Next Debug.Print "Control Points:" Dim vCtrlPts As Variant swSplineData.GetControlPoints vCtrlPts For i = 0 To UBound(vCtrlPts) Debug.Print vCtrlPts(i) Next End Sub