如何反复执行某命令,直到输入空格键退出?
如题。自定义一个命令ccc(),如何反复执行该命令,直到输入空格键退出?比如ccc()就是画一个圆(command "c").
我见过一个例子,如下:
(defun c:aaa()
(setq Osnapmode (getvar "OSMODE"));获得当前捕捉模式
(while (setq pt(getpoint "\n 圆心:"))
(command "_.circle" pt)
(while (/= 0 (getvar "cmdactive"))
(command pause)
)
)(princ)
)
就是想实现这样的功能。但是不知道怎样把命令从画圆扩展到任意命令。
求教。
试试下面的程序可否满足你的要求:
(DEFUN c:aaa ()
(PRINC "\naaaaa")
)
(DEFUN c:test ( / gr gr-model gr-value)
(SETQgr 0
gr-model 0
gr-value 0
)
(WHILE (OR (/= gr-model 2);非键盘
(/= gr-value 32) ;非空格键
)
(SETQ gr (GRREAD T)
gr-model (CAR gr)
gr-value (CADR gr)
)
(c:aaa);你自己的程序放在这里或调用你的程序
)
)
谢谢!我试了一下,没有实现我想要的那个功能。您可以试试我上面的那段程序。 (while <-----不是就是加了這個嗎?
.
.
(command "_.circle" pt)
);end while
還是我理解錯誤? lincctw_ccl 发表于 2013-4-8 23:09 static/image/common/back.gif
(while
建议还是在cad上运行一下。我感觉循环里面嵌套的那个循环,还有(command pause) 都有些用处。还没有真弄明白。正在查函数,学习中。 我改成這樣好像結果也是一樣的!!
(defun c:aaa()
(setq Osnapmode (getvar "OSMODE"));
(while (setq pt(getpoint "\n 圓心:"))
(command "_.circle" pt pause)
)
(princ)
) 用While做成死循环。这样退出必须是按esc。楼主的例子是调用cad命令但参数不全时常用代码。 wowan1314 发表于 2013-4-8 23:49 static/image/common/back.gif
用While做成死循环。这样退出必须是按esc。楼主的例子是调用cad命令但参数不全时常用代码。
现在的情况是按空格也能退出。不晓得是啥原理哎。用空格退出命令,感觉上比esc退出要好看些。 wowan1314 发表于 2013-4-8 23:49 static/image/common/back.gif
用While做成死循环。这样退出必须是按esc。楼主的例子是调用cad命令但参数不全时常用代码。
另外,您的头像很经典啊!赞 我有些明白了。把那些不必要的玄虚都去掉,只留下最核心的部分,这个东东还是不难看明白的。
(defun c:ccc()
(while (setq pt(getpoint "\n ccc 指定圆的圆心:"))
(command "circle" pt pause)
)(princ)
)
关于为什么空格也能退出,我想这大概是cad自己的某种功能,暂不深究了。
谢谢各位的回帖!
Happy!
页:
[1]
2