关于反应堆的问题
大家好,我没有发现任何类似的信息,关于反应堆的问题,让我好奇。
所以我的问题是:
*回拨问题:
是否可以通过reactor作为回调运行lisp命令定义?
例如,运行C:测试某个事件。
*事件问题:
是否可以像循环一样重新运行该命令(C:测试),例如延迟0.5秒?(我不知道结果可能是什么-可能AutoCAD会崩溃)。
但这意味着不包括任何活动?或者,如果有一个变量很重要:从“CDATE”变量的某个值中获取它。
*此类事件的回调示例:
-每隔15分钟从lisp这样的列表中打印提示:
(defun-q c:test ( / lst )
(setq lst '( "[#1] Tip Number 1."
"[#2] Tip Number 2."
"[#3] Tip Number 3."
"[#4] Tip Number 4."
"[#5] Tip Number 5."
"[#6] Tip Number 6."
)
)
(setq c:test (vl-list* '( / lst ) (list 'setq 'lst (list 'quote (append (cdr lst) (list (car lst))))) (cddr c:test)))
(setq storedvalue (car lst))
(princ (strcat "\n" storedvalue " "))
(princ)
)
-或者lisps在图形中执行一些检查:例如,是否有需要清除的块/层,
是否进行了选择?如果是,则调用属性,如果不是,则关闭属性(Lee Mac对这一点没有反应,但我仍然对另一种方式很好奇)。 如果我理解你的问题,是的,你可以为某个事件编写一个LISP例程,只需使用vla sendcommand。要将命令延迟5秒,请使用延迟命令(使用vla sendcommand),延迟量为5000。 嗨broncos15,
但这是否意味着vla sendcommand将适用于lisp命令定义?
我知道它可以与标准的autocad命令一起使用,正如我在LM中看到的示例:
(autoprops:sendcommand "_.properties ")
(defun autoprops:sendcommand ( com )
(eval
(list 'defun 'autoprops:sendcommand '( com )
(list 'vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) 'com)
)
)
(autoprops:sendcommand com)
)
但这会以同样的方式工作吗
(autoprops:sendcommand "_.test ")
我没有听说过延迟命令,但你知道我在问什么类型的反应堆了
(延迟运行c:test,c:test对图形执行检查)。 是的,你可以像那样使用它。我使用的参考是http://www.afralisp.net/archive/methods/list/sendcommand_method.htm.是的,我理解。在做其他事情之前,你想把延迟命令放在反应堆的开头。那样的话,你可以延迟任何时间,然后让反应堆做任何你想做的事情。 谢谢,现在我知道我的那些反应堆“想法”是可能的。
然而,我仍然很惊讶为什么这种延迟反应器如此不受欢迎(根据我在谷歌的研究)。
可能的原因是,它会不断检查事件,从而耗尽CPU。
页:
[1]