Specifies the X direction of the given UCS.
Supported platforms: Windows only
Read-only: No
Type: Variant (three-element array of doubles)
A vector specifying the X direction of the given UCS.
If you change the X vector value on the active UCS, you must reset the active UCS to see the changes. To reset the active UCS, use the ActiveUCS property.
VBA:
Sub Example_XVector() ' This finds the current setting of XVector for a given UCS. ' It then changes the XVector and resets the UCS. Dim viewportObj As AcadViewport ' Set the viewportObj variable to the activeviewport Set viewportObj = ThisDrawing.ActiveViewport ' Define a new UCS and turn on the UCS icon at the origin. Dim ucsObj As AcadUCS Dim origin(0 To 2) As Double Dim xAxisPoint(0 To 2) As Double Dim yAxisPoint(0 To 2) As Double origin(0) = 2: origin(1) = 2: origin(2) = 0 xAxisPoint(0) = 3: xAxisPoint(1) = 2: xAxisPoint(2) = 0 yAxisPoint(0) = 2: yAxisPoint(1) = 3: yAxisPoint(2) = 0 Set ucsObj = ThisDrawing.UserCoordinateSystems.Add(origin, xAxisPoint, yAxisPoint, "UCS1") ThisDrawing.ActiveUCS = ucsObj viewportObj.UCSIconOn = True viewportObj.UCSIconAtOrigin = True ThisDrawing.ActiveViewport = viewportObj ' Display the current setting of the XVector MsgBox "The current XVector is: " _ & ucsObj.XVector(0) & ", " & ucsObj.XVector(1) & ", " & ucsObj.XVector(2) & vbCrLf _ & "The current YVector is: " _ & ucsObj.YVector(0) & ", " & ucsObj.YVector(1) & ", " & ucsObj.YVector(2), , "XVector Example" ' Change the setting of XVector Dim newVector(0 To 2) As Double newVector(0) = 1: newVector(1) = 1: newVector(2) = 0 ucsObj.XVector = newVector ' Reset the active UCS to see the change ThisDrawing.ActiveUCS = ucsObj MsgBox "The new XVector is: " _ & ucsObj.XVector(0) & ", " & ucsObj.XVector(1) & ", " & ucsObj.XVector(2) & vbCrLf _ & "The YVector is: " _ & ucsObj.YVector(0) & ", " & ucsObj.YVector(1) & ", " & ucsObj.YVector(2), , "XVector Example" End Sub
Visual LISP:
(vl-load-com) (defun c:Example_XVector() ;; This finds the current setting of XVector for a given UCS. ;; It then changes the XVector and resets the UCS. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Set the viewportObj variable to the activeviewport (setq viewportObj (vla-get-ActiveViewport doc)) ;; Define a new UCS and turn on the UCS icon at the origin. (setq origin (vlax-3d-point 2 2 0) xAxisPoint (vlax-3d-point 3 2 0) yAxisPoint (vlax-3d-point 2 3 0)) (setq ucsObj (vla-Add (vla-get-UserCoordinateSystems doc) origin xAxisPoint yAxisPoint "TEST")) (vla-put-ActiveUCS doc ucsObj) (vla-put-UCSIconOn viewportObj :vlax-true) (vla-put-UCSIconAtOrigin viewportObj :vlax-true) (vla-put-ActiveViewport doc viewportObj) ;; Display the current setting of the XVector (alert (strcat "The current XVector is: " "\n" (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-XVector ucsObj)) 0) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-XVector ucsObj)) 1) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-XVector ucsObj)) 2) 2) "\nThe current YVector is: " "\n" (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-YVector ucsObj)) 0) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-YVector ucsObj)) 1) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-YVector ucsObj)) 2) 2))) ;; Change the setting of XVector (setq newVector (vlax-3d-point 0.7071 0.7071 0)) (vla-put-XVector ucsObj newVector) (setq newVector (vlax-3d-point -0.7071 0.7071 0)) (vla-put-YVector ucsObj newVector) ;; Reset the active UCS to see the change (vla-put-ActiveUCS doc ucsObj) (alert (strcat "The new XVector is: " "\n" (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-XVector ucsObj)) 0) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-XVector ucsObj)) 1) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-XVector ucsObj)) 2) 2) "\nThe new YVector is: " "\n" (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-YVector ucsObj)) 0) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-YVector ucsObj)) 1) 2) ", " (rtos (vlax-safearray-get-element (vlax-variant-value (vla-get-YVector ucsObj)) 2) 2))) )