我在autocad 2015中遇到了这个错误,但由于某种原因,2014年没有。
如果没有事先调用(*push error using command*),则无法从*error*调用(命令)。
建议将(命令)调用转换为(命令-s)。
谁能帮我理解这意味着什么?我一直在使用Afralisp的代码
- (defun c:drawline () ;define function
- (initerr) ;intit error
- (setvar "cmdecho" 0) ;reset variables
- (setvar "osmode" 32)
- (command "undo" "m") ;set mark
- (setq pt1 (getpoint "\nPick First Point: ")) ;get points
- (setq pt2 (getpoint pt1 "\nPick Second Point: "))
- (command "LAYER" "M" "2" "") ;change layer
- (command "Line" pt1 pt2 "") ;draw line
- (setq pt3 (getpoint pt2 "\nPick Third Point: "));get 3rd point
- (setvar "osmode" 0) ;reset snap
- (command "Line" pt2 pt3 "") ;draw line
- (reset) ;reset variables
- (princ)
- )
- (defun error() ;load function
- (prompt "\nGlobal Error Trap Loaded") ;inform user
- (princ)
- );defun
- ;;;*==========================================================
- (defun initerr () ;init error
- (setq oldlayer (getvar "clayer")) ;save settings
- (setq oldsnap (getvar "osmode"))
- (setq oldpick (getvar "pickbox"))
- (setq temperr *error*) ;save *error*
- (setq *error* trap) ;reassign *error*
- (princ)
- );defun
- ;;;*===========================================================
- (defun trap (errmsg) ;define trap
- (command nil nil nil)
- (if (not (member errmsg '("console break" "Function Cancelled"))
- )
- (princ (strcat "\nError: " errmsg)) ;print message
- )
- (command "undo" "b") ;undo back
- (setvar "clayer" oldlayer) ;reset settings
- (setvar "blipmode" 1)
- (setvar "menuecho" 0)
- (setvar "highlight" 1)
- (setvar "osmode" oldsnap)
- (setvar "pickbox" oldpick)
- (princ "\nError Resetting Enviroment ") ;inform user
- (terpri)
- (setq *error* temperr) ;restore *error*
- (princ)
- );defun
- ;;;*===========================================================
- (defun reset () ;define reset
- (setq *error* temperr) ;restore *error*
- (setvar "clayer" oldlayer) ;reset settings
- (setvar "blipmode" 1)
- (setvar "menuecho" 0)
- (setvar "highlight" 1)
- (setvar "osmode" oldsnap)
- (setvar "pickbox" oldpick)
- (princ)
- );defun
您可以在此处找到代码:http://www.afralisp.net/autolisp/tutorials/error-trapping.php |