xjjy 发表于 2004-9-23 09:44:00

[求助][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>)

yulijin608 发表于 2004-9-23 13:06:00

(getvar "DIMLDRBLK")        返回值为空说明cad的系统变量dimldrblk为空                                <BR>恢复原值时使用(setvar "dimldrblk" ldr_old)不是(command "dimldrblk" ldr_old) <BR><BR>

meflying 发表于 2004-9-23 13:19:00

你不是已经恢复了原值吗,它最后返回的当然是原来的值,而不是你的DOT.


至于2楼说的第二个问题,两种都可以的

xjjy 发表于 2004-9-23 15:44:00

问题是并没 有返回原值!


请看:


Command: (setq ldr_old (getvar "DIMLDRBLK"))<BR>""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       &lt;=原值


Command: (setvar "dimldrblk" "dot")<BR>"dot"


Command: (command "dimldrblk" ldr_old)<BR>dimldrblk<BR>Enter new value for DIMLDRBLK, or . for default &lt;"Dot"&gt;:<BR>Command: nil


Command: (setq ldr_old (getvar "DIMLDRBLK"))<BR>"Dot"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               &lt;=变为DOT<BR>

meflying 发表于 2004-9-23 16:32:00

明白了,那你在第一句判断一下,


(if (= (setq ldr_old (getvar "DIMLDRBLK")) "")


(setq ldr_old ".")


)
页: [1]
查看完整版本: [求助][LISP]我的问题: