ElevateOrder Method (ActiveX)

Elevates the order of the spline to the given order.

Supported platforms: Windows only

Signature

VBA:

object.ElevateOrder Order
object

Type: Spline

The object this method applies to.

Order

Access: Input-only

Type: Integer

A positive value greater than the current order. The maximum order is 26.

Return Value (RetVal)

No return value.

Remarks

The order of a spline is equal to the degree of the spline plus one (+1). You can query the degree of the spline by using the Degree property.

Entering a value greater than the current value increases the number of control points uniformly across the spline for more localized control. Once a spline order has been elevated, it cannot be reduced.

When a spline is elevated, it is converted from an interpolated (fit) spline to a control point spline. This means that after elevation, the spline no longer has fit tangents and the StartTangent and EndTangent properties for the spline are no longer accessible. The only way to edit a control point spline is through the ControlPoints property, or the SetControlPoint or GetControlPoint methods.

Examples

VBA:

Sub Example_ElevateOrder()
    ' This example creates a spline object in model space.
    ' It then elevates the order of the spline.

    ' 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)
    ZoomAll
    MsgBox "The current order of the spline is " & splineObj.Degree + 1, , "ElevateOrder Example"
    
    ' Elevate the order of the spline
    splineObj.ElevateOrder (splineObj.Degree + 10)
    ThisDrawing.Regen True
    MsgBox "The order of the spline has been raised to " & splineObj.Degree + 1, , "ElevateOrder Example"
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_ElevateOrder()
    ;; This example creates a spline object in model space.
    ;; It then elevates the order of the spline.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; Create the spline
    (setq startTan (vlax-3d-point 0.5 0.5 0)
          endTan (vlax-3d-point 0.5 0.5 0)
          fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill fitPoints '(1 1 0
                                     5 5 0
                                     10 0 0
                                    )
    )  

    ;; Create the spline
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan))
    (vla-ZoomAll acadObj)
  
    (alert (strcat "The current order of the spline is " (itoa (1+ (vla-get-Degree splineObj)))))
    
    ;; Elevate the order of the spline
    (vla-ElevateOrder splineObj (+ (vla-get-Degree splineObj) 10))
    (vla-Regen doc :vlax-true)
    (alert (strcat "The order of the spline has been raised to " (itoa (1+ (vla-get-Degree splineObj)))))
)