About Requesting a Point (ActiveX)

The GetPoint method prompts the user for the specification of a point at the AutoCAD Command prompt.

This method accepts two parameters, an optional from point and the prompt string. If the from point is provided, AutoCAD draws a rubber-band line from that point. To control the user input, this method can be preceded by a call to the InitializeUserInput method.

Get a point selected by the user

The following example prompts the user for two points, then draws a line using those points as the start point and endpoint.

AutoLISP
(vl-load-com)
(defun c:Ch3_GetPointsFromUser()
    (setq acadObj (vlax-get-acad-object)
          doc (vla-get-ActiveDocument acadObj)
          moSpace (vla-get-ModelSpace doc)
          utilityObj (vla-get-Utility doc))

    (setq prompt1 "\nSpecify start point of line: "
          prompt2 "\nSpecify end point of line: ")

    ;; Get the first point without entering a base point
    (setq startPnt (vla-GetPoint utilityObj nil prompt1))

    ;; Use the point entered above as the base point
    (setq endPnt (vla-GetPoint utilityObj startPnt prompt2))

    ;; Create a line using the two points entered
    (vla-AddLine moSpace startPnt endPnt)
    (vla-ZoomAll acadObj)
)
VBA (AutoCAD Only)
Sub Ch3_GetPointsFromUser()
  Dim startPnt As Variant
  Dim endPnt As Variant
  Dim prompt1 As String
  Dim prompt2 As String

  prompt1 = vbCrLf & "Specify start point of line: "
  prompt2 = vbCrLf & "Specify end point of line: "

  ' Get the first point without entering a base point
  startPnt = ThisDrawing.Utility.GetPoint(, prompt1)

  ' Use the point entered above as the base point
  endPnt = ThisDrawing.Utility.GetPoint(startPnt, prompt2)

  ' Create a line using the two points entered
  ThisDrawing.ModelSpace.AddLine startPnt, endPnt
  ThisDrawing.Application.ZoomAll
End Sub