Specifies the end tangent of the spline as a directional vector.
Supported platforms: Windows only
Read-only: No
Type: Variant (three-element array of doubles)
A directional vector representing the end tangent of the spline.
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.
VBA:
Sub Example_EndTangent()
' This example creates a spline. It then queries the current setting for
' the EndTangent, and then changes the EndTangent to a new value.
' 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
Dim msg As String
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
GoSub GETPOINTS
MsgBox "The EndTangent for the spline is " & msg, vbInformation, "EndTangent Example"
' Change the end tangent of Spline to (1.5,0.707,2)
Dim newTan(0 To 2) As Double
newTan(0) = 1.5: newTan(1) = 0.707: newTan(2) = 2
splineObj.EndTangent = newTan
ThisDrawing.Regen True
GoSub GETPOINTS
MsgBox "The EndTangent has been changed to " & msg, vbInformation, "EndTangent Example"
Exit Sub
GETPOINTS:
msg = ""
' Get the coordinates from the end tangent
Dim count As Integer
For count = 0 To 2
msg = msg & Format(splineObj.EndTangent(count), "0.###") & ", "
Next
msg = VBA.Left(msg, Len(msg) - 2)
Return
End Sub
Visual LISP:
(vl-load-com)
(defun c:Example_EndTangent()
;; This example creates a spline. It then queries the current setting for
;; the EndTangent, and then changes the EndTangent to a new value.
(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)
(setq msg "")
;; Get the coordinates from the end tangent
(setq endTangent (vlax-safearray->list (vlax-variant-value (vla-get-EndTangent splineObj))))
(setq msg (strcat msg (rtos (nth 0 endTangent) 2 3) ","
(rtos (nth 1 endTangent) 2 3) ","
(rtos (nth 2 endTangent) 2 3)))
(alert (strcat "The EndTangent for the spline is " msg))
;; Change the end tangent of Spline to (1.5,0.707,2)
(setq newTan (vlax-3d-point 1.5 0.707 2))
(vla-put-EndTangent splineObj newTan)
(vla-Regen doc :vlax-true)
(setq msg "")
(setq endTangent (vlax-safearray->list (vlax-variant-value (vla-get-EndTangent splineObj))))
(setq msg (strcat msg (rtos (nth 0 endTangent) 2 3) ","
(rtos (nth 1 endTangent) 2 3) ","
(rtos (nth 2 endTangent) 2 3)))
(alert (strcat "The EndTangent has been changed to " msg))
)