elitefish 发表于 2016-12-19 11:26:05

关于 Command-s vl-cmdf command 的疑问 (已解决)

本帖最后由 elitefish 于 2016-12-20 08:34 编辑

新版的CAD,使用系统命令 时多了个 command-s 命令

在循环中使用时,如果用command 或 vl-cmdf 会提示“VVC: Internal Error” 或提示用 "command-s" 命令
非循环中使用的时候可以用 command vl-cmdf 都没问题

但 使用 (command-s "break" (list ename pt1) pt2) 时会显示 :“应用程序错误: 图元/点表无效。”
而用 (command "break" (list ename pt1) pt2) 没问题


帮助里面的介绍只是说 command-s 语句必须是完整执行的 不能在中间夹杂 与用户交互的过程(如:getstring getpoint pause 等),是不是还有其他的限制?
为什么 “break” 命令用command能执行但 command-s 就无法执行呢。

已找到问题解决方法
<div><span style="color: rgb(102, 102, 102); line-height: 1.5;">(setq EF:CMD (if command-s command-s vl-cmdf))</span></div><div><span style="line-height: 1.5; color: rgb(102, 102, 102);">(EF:Cmd "BREAK" ename "F" pt1 pt2)</span></div>

这个可以执行
command-s崩溃的问题,在执行command-s前先禁用所用反应器待command-s执行完成再恢复反应器就不会崩溃了


ngc 发表于 2016-12-19 20:06:36

command-s,第一次见到,{:1_14:}我一直常用command

elitefish 发表于 2016-12-20 08:31:55

已找到问题解决方法

(setq EF:CMD (if command-s command-s vl-cmdf))
(EF:Cmd "BREAK" ename "F" pt1 pt2)

这个可以执行
command-s崩溃的问题,在执行command-s前先禁用所用反应器待command-s执行完成再恢复反应器就不会崩溃了

sicky111 发表于 2016-12-27 22:13:32

终于知道解决办法了。

huangpc27 发表于 2018-8-16 11:58:57

没搞明白什么意思{:1_9:}

sicky111 发表于 2018-8-17 00:02:31

今天又碰到command-s的问题了。

wsh8561 发表于 2019-7-18 00:01:37

我今天碰到的出错应该也是这个问题, lsp在2006下完全正常,在2018下出错(在主函数循环中调用的子函数里有command 调用hatchedit的 计算交互应答参数都完整 command还是会进入交互,改成command-s倒是执行成功后会跟随有出错,即使循环只有一次也是如此 试了很多都没解决)。
请问:关闭/开启反应器怎么写?

wsh8561 发表于 2019-7-22 16:29:33

wsh8561 发表于 2019-7-18 00:01
我今天碰到的出错应该也是这个问题, lsp在2006下完全正常,在2018下出错(在主函数循环中调用的子函数里有 ...

关闭反应器后正常了
或卸载晓东工具箱后也正常

libo20000 发表于 2023-3-14 15:56:45

本帖最后由 libo20000 于 2023-3-14 15:59 编辑

command-s不支持带点的对象,必须(car (entsel))后才能执行,而部分cad命令又必须带点。
(setq ename (entsel))
(command "BREAK" ename pt1)
(command-S "BREAK" (car ename) pt1)
上述代码执行的结果是完全不一样的,这个如何解决?其他trim之类的命令都有这个问题。

处处受限制的命令,速度再快都是渣渣

david8888 发表于 2026-2-11 10:35:59

学习了,避免雷区
页: [1]
查看完整版本: 关于 Command-s vl-cmdf command 的疑问 (已解决)