I want this command to repeat until it is canceled. It currently does that, when the escape key is used, but if the enter key or space bar is used instead of selecting a point, it spits back this error.
Error: bad argument type: numberp: nil
the program works fine, I just want the error message to go away
Code:
;;===============================================
;; L o c a l F u n c t i o n s
;;===============================================
;; error function & Routine Exit
(defun *error* (msg)
(if
(not
(member
msg
'("console break"
"Function cancelled"
"quit / exit abort"
""
)
)
)
(princ (strcat "nError: " msg))
) ; endif
(restore_sys_vars) ; reset vars
)
;; Function to save system variables in global variable
;; call to function
;; (save_sys_vars '("CMDECHO" "CLAYER" "OSMODE" "CECOLOR"))
(defun save_sys_vars (lst)
(setq *sysvarlist* '())
(repeat (length lst)
(setq *sysvarlist*
(append *sysvarlist*
(list (list (car lst) (getvar (car lst))))
)
)
(setq lst (cdr lst))
)
)
;; Function to reset system variables
(defun restore_sys_vars ()
(repeat (length *sysvarlist*)
(setvar (caar *sysvarlist*) (cadar *sysvarlist*))
(setq *sysvarlist* (cdr *sysvarlist*))
)
)
(save_sys_vars
'("CMDECHO" "OSMODE" "CECOLOR" "CLAYER" "PICKBOX" "TEXTSTYLE")
)
;GET SYSTEM VAR & error handling
;SET SYSTEM VAR
(defun c:ca (/ ss elev th textobj)
(setvar "cmdecho" 0)
(setvar "osmode" 512)
(setq ss (getpoint "Select Contourn")
elev (rtos (caddr ss))
th (* 0.06 40)
textobj (vla-addtext acadModelSpace elev (vlax-3d-point ss) TH)
)
(vla-put-alignment textobj 10)
(vla-put-textalignmentpoint textobj (vlax-3d-point ss))
(c:ca)
(*error* "") ;RESTORE SYSTEM VAR
(princ)
) ;end defun
any help would be appreciated