cad中autolisp编程中实现“指定基点或 [位移(D)/模式(O)/多个(M)] <位移>: ”

在编程过程中,我现在只会获取已经知道格式的如
6.l (getangle [基点] [提示])请求输入十进制角度数值,响应一个弧度值提示及参考点可有可无
6.2(getcorner 基点[提示])请求输入另一矩形框对角点坐标
6.3(getdist [基点][提示])请求输入一段距离
6.4(getint [提示])请求输入一个整数值
6.5(getkword [提示]请求输入“关键词”
6.6(getorient [基点][提示])请求输入十进制角度,响应一弧度值不受angbase、angdir影响
6.7(getPoint [基点][提示])请求输入一个点的坐标
6.8(getreal [提示]请求输入一个实数
6.9(getstring [提示])请求输入一个字符串
6.10(initget [位]字符串)设定下次getxxx函数的有效输入
但有时候在执行命令中,需要实现通过输入一个字符,改变当前输入下一个点的程序功能。这样就变成本来我用(getPoint [基点][提示])请求输入一个点的坐标时,用户却输入了一个字符。这样的功能是怎样实现的呢?求教。

用initget函数可实现,下面实例就是在获取距离的时候,还可以键盘输入S来运行SE程序。
(initget "S")
(setq ds(getdist "\n输入距离或 [参照(S)]: "))
(cond
((= ds "S") (se)) ;选择参照实体并处理
((= ds nil) (end)) ;空输入退出,可在前面initget中禁止
(t nil) ;正常输入,向下继续
)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-25
这个不是三言两语就可以说得清楚的,建议你还是先看看入门的lisp教程书。追问

我看了入门的,现在也会编一点简单的程序。如果我想搞明白这方面需要重点关注哪方面呢?谢谢啊

相似回答