This is some stuff from my library that allows for default values if nil is passed in the parameter list. Note that the quantum of parameters must still be equal.
eg
(setq tmpPT (kpsl_getpoint nil nil nil nil nil))
or use an override to suit
(setq tmppt (kpsl_getpoint "Pick Work Point"
(if pt03 pt03 (setq pto3 (list 0 0 0)))
(+ 1 8 32)
nil
pt03
)
)
;;; kwb 20021103 ---------------------------------------------
;;;
;;; Arguments:
;;; msg : The prompt string.
;;; def : Value to return if response is <enter>.
;;; bit : initget bit
;;; kwd : Initget keywords string.
;;; bpt : Base point
;;;
;;; Note : Arguments may be set to nil
;;; requires kpsl_ptos
(defun kpsl_getpoint (msg def bit kwd bpt / returnvalue)
(or kwd (setq kwd ""))
(or bit (setq bit 1))
(setq msg (strcat "\n"
(cond (msg)
("Specify Point")
)
)
)
(if def
(setq msg (strcat "\n" msg " <<" (kpsl_ptos def nil nil) ">>: ")
bit (logand bit (~ 1))
; drop the 1 bit if def used
)
(setq msg (strcat "\n" msg ": "))
)
(initget bit kwd)
(setq returnvalue (if bpt
(getpoint msg bpt)
(getpoint msg)
)
)
(if returnvalue
returnvalue
def
)
)
;;;--------------------------------------------------------
;;; Convert Angles from DEGREES to RADIANS
(defun kpsl_dtr (ang) (* pi (/ ang 180.0)))
;;; Convert Angles from RADIANS to DEGREES
(defun kpsl_rtd (ang) (/ (* ang 180.0) pi))
;;; kwb 20021103 ------------------------------------------------------
;;; kpsl_ptos (pt xmode xprec
;; Return a point formatted as a string
;; Arguments :
;; pt : point list
;; xmode : Units to use , can be nil
;; xprec : display precision to use , can be nil
(defun kpsl_ptos (pt xmode xprec)
(or xmode (setq xmode (getvar "LUNITS")))
(or xprec (setq xprec (getvar "LUPREC")))
(if pt
(strcat (rtos (car pt) xmode xprec)
","
(rtos (cadr pt) xmode xprec)
","
(rtos (caddr pt) xmode xprec)
)
)
)