GetPoint Method (ActiveX)

Gets the point selected in AutoCAD.

Supported platforms: Windows only

Signature

VBA:

RetVal = object.GetPoint([Point [, Prompt]])
object

Type: Utility

The object this method applies to.

Point

Access: Input-only; optional

Type: Variant (three-element array of doubles)

The 3D WCS coordinates specifying the relative base point.

Prompt

Access: Input-only; optional

Type: Variant (string)

The text used to prompt the user for input.

Return Value (RetVal)

Type: Variant (three-element array of doubles)

The 3D WCS coordinates of the point the AutoCAD user has selected.

Remarks

AutoCAD pauses for user input of a point, and sets the return value to the value of the selected point. The Point parameter specifies a relative base point in the WCS. The Prompt parameter specifies a string that AutoCAD displays before it pauses. Both Point and Prompt are optional.

The AutoCAD user can specify the point by entering a coordinate in the current units format; GetPoint treats the Point parameter and the return value as three-dimensional points. The user can specify the point also by specifying a location on the graphics screen. If the Point parameter is provided, AutoCAD draws a rubber-band line from Point to the current crosshair position.

The coordinates of the point stored in the return value are expressed in terms of the WCS.

If a keyword is returned instead of a point, AutoCAD will generate the error message "User input keyword." Use the GetInput method to obtain the keyword from the return value.

Examples

VBA:

Sub Example_GetPoint()
    ' This example returns a point entered by the user.
    
    AppActivate ThisDrawing.Application.Caption
    
    Dim returnPnt As Variant
    
    ' Return a point using a prompt
    returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
    MsgBox "The WCS of the point is: " & returnPnt(0) & ", " & returnPnt(1) & ", " & returnPnt(2) & vbCrLf & _
           "(Enter the next value without prompting.)", , "GetPoint Example"
    
    ' Return a point, no prompt
    returnPnt = ThisDrawing.Utility.GetPoint
    MsgBox "The WCS of the point is: " & returnPnt(0) & ", " & returnPnt(1) & ", " & returnPnt(2), , "GetPoint Example"
    
    ' Return a point using a base point and a prompt
    Dim basePnt(0 To 2) As Double
    basePnt(0) = 2#: basePnt(1) = 2#: basePnt(2) = 0#
    returnPnt = ThisDrawing.Utility.GetPoint(basePnt, "Enter a point: ")
    MsgBox "The WCS of the point is: " & returnPnt(0) & ", " & returnPnt(1) & ", " & returnPnt(2)
    
    ' Create a line from the base point and the last point entered
    Dim lineObj As AcadLine
    Set lineObj = ThisDrawing.ModelSpace.AddLine(basePnt, returnPnt)
    ZoomAll
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_GetPoint()
    ;; This example returns a point entered by the user.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; Return a point using a prompt
    (setq returnPnt (vlax-variant-value (vla-GetPoint (vla-get-Utility doc) nil "Enter a point: ")))
    (alert (strcat "The WCS of the point is: " (rtos (vlax-safearray-get-element returnPnt 0) 2) ", "
		                                             (rtos (vlax-safearray-get-element returnPnt 1) 2) ", "
		                                             (rtos (vlax-safearray-get-element returnPnt 2) 2) "\n"
                                               "(Enter the next value without prompting.)"))
    
    ;; Return a point, no prompt
    (setq returnPnt (vlax-variant-value (vla-GetPoint (vla-get-Utility doc))))
    (alert (strcat "The WCS of the point is: " (rtos (vlax-safearray-get-element returnPnt 0) 2) ", "
		                                             (rtos (vlax-safearray-get-element returnPnt 1) 2) ", "
		                                             (rtos (vlax-safearray-get-element returnPnt 2) 2)))
    
    ;; Return a point using a base point and a prompt
    (setq basePnt (vlax-3d-point 2 2 0))
    (setq returnPnt (vlax-variant-value (vla-GetPoint (vla-get-Utility doc) basePnt "Enter a point: ")))
    (alert (strcat "The WCS of the point is: " (rtos (vlax-safearray-get-element returnPnt 0) 2) ", "
		                                             (rtos (vlax-safearray-get-element returnPnt 1) 2) ", "
		                                             (rtos (vlax-safearray-get-element returnPnt 2) 2)))
    
    ;; Create a line from the base point and the last point entered
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq lineObj (vla-AddLine modelSpace basePnt returnPnt))
    (vla-ZoomAll acadObj)
)