This example shows how to get B-spline
parameter data (knots, control points, etc.) for a selected spline
or curve.
//---------------------------------------------------------------------------
// Preconditions:
// 1. Open <SolidWorks_install_dir>\samples\tutorial\molds\telephone.sldprt.
// 2. Select a curve in the graphics area.
// 3. Rename the namespace of this macro to match the name of your C#
project.
// 4. 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)
// * number of control points
// * periodicity
// * number of knots:
// if periodicity = 1,
// number of control points + 1
// else
// number of control points + order
// * spline style: color, layer, layer override, line style, line weight
//--------------------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System;
using
System.Diagnostics;
namespace
GetBSplineParamData_CSharp.csproj
{
partial
class
SolidWorksMacro
{
public
void Main()
{
ModelDoc2
Part = null;
Part = (ModelDoc2)swApp.ActiveDoc;
SelectionMgr
swSelectMgr = null;
swSelectMgr = (SelectionMgr)Part.SelectionManager;
IEdge
swSketchSeg = null;
swSketchSeg = (ISketchSegment)swSelectMgr.GetSelectedObject6(1,-1);
Curve
swCurveIn = null;
SplineParamData
swSplineParaData = default(SplineParamData);
object
varCtrlPoints = null;
object
varKnotPoints = null;
bool
boolStatus = false;
int
i = 0;
swCurveIn = (Curve)swSketchSeg.GetCurve();
Debug.Print("");
Debug.Print("B-spline");
Debug.Print("");
swSplineParaData = (SplineParamData)swCurveIn.GetBCurveParams5(false,
false,
true,
true);
Debug.Print("The
dimension is: " + swSplineParaData.Dimension);
Debug.Print("The
order is: " + swSplineParaData.Order);
Debug.Print("The
periodicity is: " + swSplineParaData.Periodic);
Debug.Print("The
control point count is: " +
swSplineParaData.ControlPointsCount);
Debug.Print("The
knot point count is: " + swSplineParaData.KnotPointsCount);
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);
}
public
SldWorks
swApp;
}
}