llsheng_73 发表于 2014-5-23 09:23:08

系统变量备份和恢复

本帖最后由 llsheng_73 于 2014-5-23 09:31 编辑

(defun dfl_var(var / a)
(setq a(list(car var)(mapcar'getvar(car var))))
(mapcar'setvar(car var)(last var))a)
(defun *error*(msg)
(dfl_var var)
(while(>(getvar'CMDACTIVE)0)(command ""));;此处可以参照G版出错处理帖子加一些处理
(setq var nil))

(defun C:tt()
(setq var(dfl_var'(('cecolor'clayer'osmode'autosnap)("250""0" 16384 63)));;修改系统变量需要修改哪些系统变量参照此表修改,前边一个子表为系统变量名,后边一个子表为对应的系统变量值
;;;
;;;加上自己的处理过程
;;;
(*error* nil);;恢复系统变量
)

liu22737 发表于 2014-5-23 09:27:38

(while(>(getvar'CMDACTIVE)0)(command ""))
遇到FILLET命令时,进入到第二选择时双引号是结束不掉掉的,直接(command)强制结束就行了

llsheng_73 发表于 2014-5-23 09:30:36

本帖最后由 llsheng_73 于 2014-5-23 09:33 编辑

liu22737 发表于 2014-5-23 09:27 static/image/common/back.gif
(while(>(getvar'CMDACTIVE)0)(command ""))
遇到FILLET命令时,进入到第二选择时双引号是结束不掉掉的,直 ...
对CAD的命令不是太清楚了,谢谢指出问题
现在我把恢复系统变量弄前边去,后边再来结果未结束的命令,总之恢复系统变量是大事,至于命令是否结束,反正程序已经出错了,那么结束不了的情况自己结束它也一样?

edata 发表于 2014-5-23 11:26:21

要先中断command函数,不然变量会出问题。

ysq101 发表于 2014-12-31 20:27:10

llsheng_73 发表于 2014-5-23 09:30 static/image/common/back.gif
对CAD的命令不是太清楚了,谢谢指出问题
现在我把恢复系统变量弄前边去,后边再来结果未结束的命令,总之 ...

新手一般不写错误处理。。。。因为程序只是自己用哈哈。。
可以看看我发的贴
http://bbs.xdcad.org/thread-673304-1-1.html
页: [1]
查看完整版本: 系统变量备份和恢复