关于默认值的问题。
这就是我所拥有的,但是当例程运行时,除了我的默认距离值之外,一切都正常。为什么会这样?(setq dist (getreal "\nWhat is the Offset Distance? [.083/0.95] <0.83> :"))
我只需要将0.83设为默认值,这样就可以消除击键,直到我必须使用不同的数字。 如果用户点击“回车”,dist将为“零”。因此,在该行之后使用:
(if(非dist)(setq dist 0.83)) 在调用(getdist)之前,您可能还需要研究调用(initget)。它可以强制一个正的非零值(偏移量需要这个值)-大卫 initget在那里已经就绪,设置为1 2 4 64,我尝试了(if(not dist)(setq dist 0.83))
仍然返回需要一个数值错误 请张贴您的initget是如何设置的 抱歉,我发布到quick,你的initget不应该有1,因为它
防止用户通过只输入ENTER来响应请求。因此,它会循环,直到得到响应或推送逃逸。 您需要将1放入(initget)。它强制输入-大卫 看,思考总是让我变得内敛。谢谢大家!但是,既然你在这里并且知道的比我多,那么你如何让它在下次调用命令时保持其先前的值呢? 保留值可以通过以下两种方式之一实现
[列表]
[*]将变量设置为全局变量,使其在AutoCAD会话仍处于打开状态时保持活动状态,但在AutoCAD关闭时将失去其值。
将值写入文件并让程序访问它(这是首选) 这里有一个方法
(defun test (/ dist)
(if (null *dist*)
(setq *dist* 0.83)
)
(setq dist (getreal (strcat "\n What is the offset distance?: <" (rtos *dist* 2 2) ">: "))
)
(if (not dist)
(setq dist *dist*)
(setq *dist* dist)
)
(alert (strcat "\nThe value of *dist* is " (rtos *dist* 2 2)
"\nThe value or dist is " (rtos dist 2 2)))
)
页:
[1]
2