wanchr 发表于 2019-11-7 09:55:19

让一个自定义命令一直重复运行,直到esc取消要怎么写

(defun c:x()
(a)
)
怎么给(a)加个套让他直到用户取消才不运行/谢谢指教下。

Andyhon 发表于 2019-11-7 12:51:42

While 如何

mikewolf2k 发表于 2019-11-7 14:15:16

LISP具体不清楚,不过感觉理论上不大可行,除非加别的手段。如果要相应用户按键,那么就要停下来等待用户交互,不按键就不继续。如果要继续,也就是不响应用户按键,那么按ESC也就无效。

wanchr 发表于 2019-11-7 14:26:48

while (Esc 这个键的条件)要怎么获到。我就是要这个代码,插进(a)里,让他停下来。

Andyhon 发表于 2019-11-7 16:00:41

(while testexpr )

(a)的返回值為何!?

(while (a))
or
(while (not (a)))

Try...

wanchr 发表于 2019-11-7 17:42:48

我把(a)插入自身,他就一直重复运行了,esc也能取消,
但是有个问题我在(a)打开过一个文件,esc取消时他还没保存,要怎么让他取消时保存一下呢
(close ff)

Andyhon 发表于 2019-11-7 19:25:38

请参考 *error* 函数

应用例请直接在坛内搜...

尘缘一生 发表于 2019-11-11 23:24:53

我截段代码。三领外挂的

(setq loop t)
(princ (strcat "\n【空格】【回车】复制距离<" (rtos sldis1 2 2) ">:【右键】【ESC键】退出"))
(while (= t loop);命令期间如果按下空格、回车、右健时结束命令
(setq grr (grread t ));请求输入
(setq gr(car grr))
(cond
   ((or(equal grr '(2 32));空格
   (equal grr '(2 13));回车
    )
    (setq pt2 (polar pt2 ang sldis1))
    (command "COPY" s "" pt1 pt2)
   )   
   ((equal grr'(11 0));右击
    (setq loop nil)
   )   
)
)
页: [1]
查看完整版本: 让一个自定义命令一直重复运行,直到esc取消要怎么写