本帖最后由 dhy 于 2014-12-4 19:57 编辑
我想利用Gu_xl版主的“Lisp程序设计错误处理的技巧”来处理角度单位问题,可是,在中途中断的情况下,没有设置会原来的角度单位,不知道这变量应该怎样设置,请告诉们指点一下,谢谢!
- (defun c:tt2 (/ p1p2 osmode cmdecho *error*)
- (defun *error* (msg)
- (setvar "aunits" aunits) ;_ 恢复aunits系统变量
- (setvar "cmdecho" cmdecho) ;_ 恢复cmdecho系统变量
- (setvar "osmode" osmode) ;_ 恢复osmode系统变量
- (princ "error: ")
- (princ msg) ;_ 打印错误信息
- (princ)
- )
- ;;;以下为主程序内容
- (setq aunits (getvar "aunits"));_ 保存系统变量aunits值
- (SETVAR "aunits" 3) ;;设置角度弧度制,0为十进制度数(默认)
- (setq cmdecho (getvar "cmdecho"));_ 保存系统变量cmdecho值
- (setvar "cmdecho" 0) ;_ 关闭命令行的回显提示
- ;保存系统变量osmode值
- (setq osmode (getvar "osmode"))
- (setvar "osmode" 0) ;_ 关闭捕捉模式
- (setq p1 (getpoint "\n输入第一点: ")
- P2 (getpoint "\n输入第二点: ")
- P3 (getpoint "\n输入第三点: ")
- )
- (vl-cmdf "_.pline" p1 p2 p3"c")
- (setvar "aunits" aunits) ;_ 恢复aunits系统变量
- (setvar "cmdecho" cmdecho) ;_ 恢复cmdecho系统变量
- (setvar "osmode" osmode) ;_ 恢复osmode系统变量
- (princ)
- )
|