About Editing Splines (VBA/ActiveX)

Existing spline objects can be edited using the object's properties and methods.

Use the following editable properties to change splines:

ControlPoints
Specifies the control points of a spline.
EndTangent
Specifies the end tangent of the spline as a directional vector.
FitPoints
Specifies all the fit points of a spline.
FitTolerance
Refits the spline to the existing points with new tolerance values.
Knots
Specifies the knots vector for the spline.
StartTangent
Specifies the start tangent for the spline.

In addition, you can use the following methods to edit splines:

AddFitPoint
Adds a single fit point to the spline at a given index.
DeleteFitPoint
Deletes the fit point of a spline at a given index.
ElevateOrder
Elevates the order of the spline to the given order.
GetFitPoint
Gets the fit point of the spline at a given index. (Gets one fit point only. To query all the fit points of the spline, use the FitPoints property.)
Reverse
Reverses the direction of a spline.
SetControlPoint
Sets the control point of the spline at a given index.
SetFitPoint
Sets the fit point of the spline at a given index. (Sets one fit point only. To change all the fit points of the spline, use the FitPoints property.)
SetWeight
Sets the weight of the control point at a given index.

Use the following read-only properties to query splines:

Area
Gets the enclosed area of a spline.
Closed
Indicates whether the spline is open or closed.
Degree
Gets the degree of the spline's polynomial representation.
IsPeriodic
Specifies if the given spline is periodic.
IsPlanar
Specifies if the given spline is planar.
IsRational
Specifies if the given spline is rational.
NumberOfControlPoints
Gets the number of control points of the spline.
NumberOfFitPoints
Gets the number of fit points of the spline.

Change a control point on a spline

This example creates a spline and then changes the first control point for the spline.

Sub Ch4_ChangeSplineControlPoint()
  ' Create the spline
  Dim splineObj As AcadSpline
  Dim startTan(0 To 2) As Double
  Dim endTan(0 To 2) As Double
  Dim fitPoints(0 To 8) As Double

  startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0
  endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0
  fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0
  fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0
  fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0
  Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)
  splineObj.Update

  ' Change the coordinate of the first fit point
  Dim controlPoint(0 To 2) As Double
  controlPoint(0) = 0
  controlPoint(1) = 3
  controlPoint(2) = 0
  splineObj.SetControlPoint 0, controlPoint
  splineObj.Update
End Sub