您现在的位置是:首页 > 行业 > 制造 >

AUTOLISP进行程序设计时的缺省输入函数建立

2009-09-05 04:31:00作者: 来源:

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

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

  如:

  (setqwidth(getreal″inputwidth:″))

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

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

  (if(not?width)

  (setq?width0.3);第一次依0?3为缺省值)

  (princ″inputwidth:″)

  (princ″

  (princ?width)

  (princ″:″);显示提示信息

  (setqw1(getrea1))

  (if(notw1)

  (setqw1?width)

  (setq?widthw1);用全局变量保存当前输入值

  (princw1)

  )

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

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

  (defundefal(strval)

  (setq?globaval)

  (princ(strcatstr″

  (princ?globa)

  (princ″″)

  (setqvar(getreal))

  (if(notvar)

  (setqvar?globa);用缺省值作为输入

  )

  (princvar)

  )

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


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们