Here is my old lisp.
;;;=======================[ getpoint_only.lsp ]=======================
;;; Author: Charles Alan Butler [CAB @ TheSwamp.org
;;; Version: 1.0 Jun. 16, 2005
;;; Purpose: Only get a point, do not return without one
;;; Sub_Routines: -None
;;; Arguments: msg string containing the prompt message
;;; p1 may be nil or a point
;;; Usage: (getpoint_only msg p1)
;;; Returns: -the point picked
;;; Note: -User may enter a point at the command line 10,10 or 10,10,0
;;;====================================================================
;; This is an attempt at preventing the user from entering a distance
;; which ACAD uses with the cursor direction to derive the new point.
(defun getpoint_only (msg p1 / pt loop fuzz lastp)
(or msg (setq msg "\n"))
(while
(progn
(initget 128)
(if (and p1 (listp p1))
(setq pt (getpoint p1 msg))
(setq pt (getpoint msg))
)
(if (or (null pt) (= (type pt) 'STR))
(princ "\nPick point only, Try Again.")
)
)
)
pt
)