[求助][LISP]我的问题:
请问各位大哥:<BR> 我的代码如下,我希望首先获得当前的lead箭头形式,再把他该为DOT形式,尔后恢复为原值,新建一图档,运行<BR> (setq ldr_old (getvar "DIMLDRBLK"))后,返回值为空,为何?运行完后,并不是我期望的! lead箭头仍为DOT.(defun C:test() <BR> (setq ldr_old (getvar "DIMLDRBLK"))<BR> (setvar "dimldrblk" "dot")<BR> (command "dimldrblk" ldr_old) <BR>) (getvar "DIMLDRBLK") 返回值为空说明cad的系统变量dimldrblk为空 <BR>恢复原值时使用(setvar "dimldrblk" ldr_old)不是(command "dimldrblk" ldr_old) <BR><BR> 你不是已经恢复了原值吗,它最后返回的当然是原来的值,而不是你的DOT.
至于2楼说的第二个问题,两种都可以的 问题是并没 有返回原值!
请看:
Command: (setq ldr_old (getvar "DIMLDRBLK"))<BR>"" <=原值
Command: (setvar "dimldrblk" "dot")<BR>"dot"
Command: (command "dimldrblk" ldr_old)<BR>dimldrblk<BR>Enter new value for DIMLDRBLK, or . for default <"Dot">:<BR>Command: nil
Command: (setq ldr_old (getvar "DIMLDRBLK"))<BR>"Dot" <=变为DOT<BR> 明白了,那你在第一句判断一下,
(if (= (setq ldr_old (getvar "DIMLDRBLK")) "")
(setq ldr_old ".")
)
页:
[1]