我建议为每个例程添加一个错误处理程序。错误定义中的某些操作可能不适用于所有LISP
看看你创建的Lisp程序的数量,也许一个适用于所有人可能没那么糟糕。。。
实例
-
- (defun c:[color=red]acc[/color] (/ *error* # ss lay id a)
- (setvar 'cmdecho 0)
- (command "undo" "begin")
- (defun *error* (msg)
- (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
- (princ (strcat "\n** Error: " msg " **"))
- )
- (setvar 'nomutt 0)
- (command "undo" "end")
- (setvar 'cmdecho 1)
- (princ)
- )
- (setq id 0)
- (prompt "Select objects to be changed to current layer...")
- (setvar 'nomutt 1)
- (repeat (setq # (sslength (setq ss (ssget ))))
- (setq a (entget (ssname ss id)))
- (entmod (subst (cons 8 (getvar 'clayer))(assoc 8 a) a))
- (setq id (+ id 1))
- )
- (setvar 'nomutt 0)
- (command "undo" "end")
- (setvar 'cmdecho 1)
- (princ)
- )
*这可以通过几种方式实现。只是我做事的方式* |