VLR SysVar反应堆帮助
全部的我正在寻找一种方法来创建一个反应器,当用户或AutoCAD更改系统变量时,该反应器会将其更改回特定变量。
具体来说,我说的是多重引线比例,您可能已经注意到,如果您有几个样式,并且在它们之间切换,则多重引线比例将重置为1或样式中设置的特定比例。我将dimscale和mleaderscale设置为相同,当这种更改发生时,mleaderscale结束更改,迫使我在每次更改样式后重置mleaderscale。
我想看看使用VLR SysVar反应堆和:VLR sysVarWillChange和:VLR sysVarChanged的可行性。我很难理解与这些反应有关的正确代码。我对VLR的最大体验就是VLR指挥反应堆。
目标:
当Mleaderscale更改时,它将重置为dimscale的当前值。
任何帮助或轻推都将不胜感激,
马特 我的两分钱。。。
*如果*您的目标是更改sysvar的值(假设您将其正确设置为open),那么我建议使用:vlr sysVarChanged回调。如果您熟悉vlr命令reactor的语法,那么对于:vlr sysVarChanged所需的回调列表项应该没有问题。
把一些代码放在一起,并进行测试。如果你仍然有问题,或想尝试一些独特的,张贴代码,让我们知道。
希望这有帮助! 我的版本没有sysvar Mleaderscale,因此这是完全未经测试的
(vl-load-com)
(defun mlsreact ()
(if (not mls_react)
(setqmls_react (vlr-sysvar-reactor nil '((:vlr-sysVarChanged . mls2ds))))
)
)
(mlsreact)
(defun mls2ds (event parameter)
(if (eq (car parameter) "MLEADERSCALE")
(setvar "mleaderscale" (getvar "dimscale"))
)
)
正如一位智者所说。。。
英雄联盟 我对此进行了测试,程序在引发事件时导致autocad崩溃。
好吧,我会浸在水里。。。希望你学到点什么
敬请期待。。。。相同的“Bat通道”,相同的“Bat时间”。。。 您正在创建自己的无限循环,方法是让一个反应器在每次更改MLEADERSCALE时激活,并将其设置为其他值,从而激活反应器内的反应器。
尝试以下操作:
通过这种方式,它将第二次发射,但会注意到MLEADERSCALE和DIMSCALE相等,不会继续。 谢谢,现在我明白了!
小心递归循环Larry。。。
反应堆将对回调等作出反应。。。
编辑:艾伦先到了-应该先看帖子。。。
页:
[1]
2