为AUTOLISP建立缺省输入函数

2007-08-24 16:11:04 来源:模具网   

使用LISP编程时,常常需要用户回答一些参数,为了提高工作效率,希望能用回车代替某个特定输入即缺省值。此时,在程序中增加一个判断可使变量得到缺省回答。

(setqwidth(getreal″inputwidth:″))

(if(nullwidth)(setqwidth0.3));回车置width的值为0.3。

有时需要依上一次的输入值为本次的缺省输入(如宽度、角度、距离等),这时就需要用全局变量保存上一次输入值提供缺省输入。例如,若欲将上次输入的宽度值作为缺省输入可使用下述函数

(if(not?硍idth)
(setq?硍idth0.3);第一次依0??3为缺省值)
(princ″\inputwidth:″)
(princ″\n
(princ?硍idth)
(princ″:″);显示提示信息
(setqw1(getrea1))
(if(notw1)
(setqw1?硍idth)
(setq?硍idthw1);用全局变量保存当前输入值
(princw1)
)

函数的执行结果是第一次执行时依宽度0??3为缺省值,提示信息为inputwidth:,给定新的输入值后如0??5,下一次依宽度0??5为缺省提示值,提示信息为inputwidth:。

在一般情况下,还可通过建立缺省处理函数,加快程序处理速度,减少编码。如

(defundefal(strval)
(setq?砱lobaval)
(princ(strcatstr″
(princ?砱loba)
(princ″″)
(setqvar(getreal))
(if(notvar)
(setqvar?砱loba);用缺省值作为输入
)
(princvar)
)

这是一个有参函数,它将输入的实数作为返回值。当按(defal″inputwidth″0.5)调用时提示信息为inputwidth:。该函数能按str的提示缺省输入实数(由val给定)类值(如角度、距离等),加入到ACAD?盠SP文件中即可像LISP标准函数一样供其它函数调用。

(责任编辑:小编)
下一篇:

第三届 CHINAPLAS x CPRJ 塑料回收再生与循环经济论坛暨展示会

上一篇:

将CAD图纸转换为SolidWorks三维模型详解

  • 信息二维码

    手机看新闻

  • 分享到
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们