春鸽带你飞 发表于 2019-6-20 22:22:08

为什么多个command命令只能执行一个?

为什么多个command的命令只能执行一个?后面的会自动跳出程序,忽略执行!如下面的代码所示,执行多段线程序后就跳出程序了,没有继续执行circle命令。
(defun c:tt ()
(command "_.pline")
(command "circle")
(setq objLine (entlast))







ysq101 发表于 2019-6-25 23:31:59

Andyhon 发表于 2019-6-21 08:35
(defun c:tt ()
(command "_.pline")
(while (= (logand (getvar 'CmdActive) 1) 1) (command pause) ...

这是什么神仙操作?
版主能讲解一下吗?

kucha007 发表于 2021-5-24 00:42:32

ysq101 发表于 2019-6-25 23:31
这是什么神仙操作?
版主能讲解一下吗?

(while (= (logand (getvar 'CmdActive) 1) 1) (command pause));等待上一个命令完成再执行接下来的命令

Andyhon 发表于 2019-6-21 08:35:21

(defun c:tt ()
(command "_.pline")
(while (= (logand (getvar 'CmdActive) 1) 1) (command pause))

(command "circle")
(while (= (logand (getvar 'CmdActive) 1) 1) (command pause))

(setq objLine (entlast))

satan421 发表于 2019-6-21 08:18:41

因为你的语句不完整,(command "_.pline")就结束了?后续是要求点坐标的,结果你又来一个command,只能是出错退出,还执行啥。

烟盒迷唇 发表于 2019-6-21 10:45:29

就是呀,不完整让CAD怎么操作呢

春鸽带你飞 发表于 2019-6-21 12:41:55

Andyhon 发表于 2019-6-21 08:35
(defun c:tt ()
(command "_.pline")
(while (= (logand (getvar 'CmdActive) 1) 1) (command pause) ...

谢谢!完美解决问题!!!

春鸽带你飞 发表于 2019-6-21 12:43:04

satan421 发表于 2019-6-21 08:18
因为你的语句不完整,(command "_.pline")就结束了?后续是要求点坐标的,结果你又来一个command,只能是出 ...

就是要这种不完整的,以便后面可以画多段线,有大神解决了问题,不过同样谢谢你的解答!!

305341043 发表于 2023-4-12 16:21:13

(defun c:tt ()
(command "copy" (ssget) "" "m")
(while (= (logand (getvar 'CmdActive) 1) 1) (command pause))

(command "_vpclip")
(while (= (logand (getvar 'CmdActive) 1) 1) (command pause))

(setq objLine (entlast)))
这个不断开:复制操作不可见,直接裁剪,可行吗
页: [1]
查看完整版本: 为什么多个command命令只能执行一个?