AddFitPoint Method (ActiveX)

Adds the fit point to the spline at a given index.

Supported platforms: Windows only

Signature

VBA:

object.AddFitPoint Index, FitPoint
object

Type: Spline

The object this method applies to.

Index

Access: Input-only

Type: Integer

Position in the fit point list to add the fit point. If the index is a negative number, then the point is added to the beginning of the spline. If the index exceeds the number of fit points in the spline, then the point is added to the end of the spline.

FitPoint

Access: Input-only

Type: Variant (three-element array of doubles)

The 3D WCS coordinates specifying the fit point to be added.

Return Value (RetVal)

No return value.

Remarks

AutoCAD adds the point and refits the spline through the new set of points. To view the changes, use the Update or Regen method.

Examples

VBA:

Sub Example_AddFitPoint()
    ' This example creates a spline object in model space.
    ' It then adds a fit point to 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
    
    ' Create the spline object
    Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)
    ZoomAll
    MsgBox "The Spline has " & splineObj.NumberOfFitPoints & " fit points.", , "AddFitPoint Example"
    
    ' Define the new fit point
    Dim newFitPoint(0 To 2) As Double
    newFitPoint(0) = 8: newFitPoint(1) = 5: newFitPoint(2) = 0
    
    ' Add the new fit point at the first index in the spline's array of points
    splineObj.AddFitPoint 1, newFitPoint
    ThisDrawing.Regen True
    MsgBox "A fit point has been added at Index:1  WCS: 8, 5, 0" & vbCrLf & "The Spline has " & splineObj.NumberOfFitPoints & " fit points.", , "AddFitPoint Example"

End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AddFitPoint()
    ;; This example creates a spline object in model space.
    ;; It then adds a fit point to 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 10)
          endTan (vlax-3d-point 0.5 0.5 10))
    (setq fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill fitPoints '(1 1 10
                                     5 5 10
                                     10 0 10
                                    )
    )
    
    ;; Create the spline object
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan))
    (vla-ZoomAll acadObj)
    (alert (strcat "The Spline has " (itoa (vla-get-NumberOfFitPoints splineObj)) " fit points."))
    
    ;; Define the new fit point
    (setq newFitPoint (vlax-3d-point 8 5 0))
    
    ;; Add the new fit point at the first index in the spline's array of points
    (vla-AddFitPoint splineObj 1 newFitPoint)
    (vla-Regen doc :vlax-true)
    (alert (strcat "A fit point has been added at Index:1  WCS: 8, 5, 0"
		                 "\nThe Spline has " (itoa (vla-get-NumberOfFitPoints splineObj)) " fit points."
           )
    )
)