(/= (getvar "cmdactive") 0) 可以判断CAD命令是否在运行,
请问如何判断是否在运行Lisp命令?
网友答: 本帖最后由 你有种再说一遍 于 2025-8-1 18:30 编辑
这个事情还真的要在ARX或者C#上面干才行,
因为lisp判断lisp是否执行是必然执行.
其实官方可以做一个事件空穴,
也就是技术上面没有什么难度,毕竟事件是一层抽象,
可能还是因为嫌麻烦所以没做.
以下是ARX的lisp表达式执行触发的事件(反应器)
https://help.autodesk.com/view/O ... ispWillStart_ACHAR_
延伸一下:
判断ARX是否触发执行?
这样就需要通过软件分层实现,让ARX有专属的域内.网友答: 本帖最后由 你有种再说一遍 于 2025-8-1 17:15 编辑
哪有命令是异步,顶多只是打印和发送异步命令是异步.
命令应该是不会不执行的啊,
不然看看是否执行 命令触发前事件,命令触发后事件.
还是说你没有\n\r.网友答: 用lisp来判断lisp是否在运行,那结果肯定是在运行。
autolisp起源于dos时代,它带着那个时代的烙印,就是单任务,单线程,不能重入。因此不可能同时运行两个lsp函数的,只能等一个运行完了,再运行另一个。你发送到命令行的命令,也是要等到别的命令完成后才执行。网友答: 判断是否有反应器在运行?网友答:
不是监视反应器,而是监视是否有lisp程序(c:xx)在运行。
反应器很容易导致CAD异常,感觉反应器就是一个不成熟的方法。网友答: 本帖最后由 vitalgg 于 2023-8-1 21:44 编辑
无须判断。lisp是单进程的,你要做判断时,一定在运行lisp. 在运行其它lisp语句时,你又不能运行判断语句。
正所谓,阴在阳之内,不在阳之对。
正所谓,你在观察量子的时候,量子就塌缩成了你想要的样子。网友答: 也可以用cmdactive变量进行判断网友答: 可以用lisp命令反应器判断 只提供思路 不写码网友答:
()优雅
( )网友答: arx可以让判断网友答: 这个应该没办法
请问如何判断是否在运行Lisp命令?
网友答: 本帖最后由 你有种再说一遍 于 2025-8-1 18:30 编辑
这个事情还真的要在ARX或者C#上面干才行,
因为lisp判断lisp是否执行是必然执行.
其实官方可以做一个事件空穴,
也就是技术上面没有什么难度,毕竟事件是一层抽象,
可能还是因为嫌麻烦所以没做.
以下是ARX的lisp表达式执行触发的事件(反应器)
https://help.autodesk.com/view/O ... ispWillStart_ACHAR_
延伸一下:
判断ARX是否触发执行?
这样就需要通过软件分层实现,让ARX有专属的域内.网友答: 本帖最后由 你有种再说一遍 于 2025-8-1 17:15 编辑
22693766 发表于 2025-8-1 15:01
没法子判断, 我也发现某些命令是异步的, 还没执行就结束, 都没法判断是否执行完毕
哪有命令是异步,顶多只是打印和发送异步命令是异步.
命令应该是不会不执行的啊,
不然看看是否执行 命令触发前事件,命令触发后事件.
还是说你没有\n\r.网友答: 用lisp来判断lisp是否在运行,那结果肯定是在运行。
autolisp起源于dos时代,它带着那个时代的烙印,就是单任务,单线程,不能重入。因此不可能同时运行两个lsp函数的,只能等一个运行完了,再运行另一个。你发送到命令行的命令,也是要等到别的命令完成后才执行。网友答: 判断是否有反应器在运行?网友答:
caoliu023 发表于 2023-7-31 15:32
判断是否有反应器在运行?
不是监视反应器,而是监视是否有lisp程序(c:xx)在运行。
反应器很容易导致CAD异常,感觉反应器就是一个不成熟的方法。网友答: 本帖最后由 vitalgg 于 2023-8-1 21:44 编辑
无须判断。lisp是单进程的,你要做判断时,一定在运行lisp. 在运行其它lisp语句时,你又不能运行判断语句。
正所谓,阴在阳之内,不在阳之对。
正所谓,你在观察量子的时候,量子就塌缩成了你想要的样子。网友答: 也可以用cmdactive变量进行判断网友答: 可以用lisp命令反应器判断 只提供思路 不写码网友答:
vitalgg 发表于 2023-8-1 21:27
无须判断。lisp是单进程的,你要做判断时,一定在运行lisp. 在运行其它lisp语句时,你又不能运行判断语句。 ...
()优雅
( )网友答: arx可以让判断网友答: 这个应该没办法