harrison-matt 发表于 2022-7-6 10:27:17

VLR SysVar反应堆帮助

全部的
 
我正在寻找一种方法来创建一个反应器,当用户或AutoCAD更改系统变量时,该反应器会将其更改回特定变量。
 
具体来说,我说的是多重引线比例,您可能已经注意到,如果您有几个样式,并且在它们之间切换,则多重引线比例将重置为1或样式中设置的特定比例。我将dimscale和mleaderscale设置为相同,当这种更改发生时,mleaderscale结束更改,迫使我在每次更改样式后重置mleaderscale。
 
我想看看使用VLR SysVar反应堆和:VLR sysVarWillChange和:VLR sysVarChanged的可行性。我很难理解与这些反应有关的正确代码。我对VLR的最大体验就是VLR指挥反应堆。
 
 
目标:
当Mleaderscale更改时,它将重置为dimscale的当前值。
 
任何帮助或轻推都将不胜感激,
 
马特

BlackBox 发表于 2022-7-6 10:34:34

我的两分钱。。。
 
*如果*您的目标是更改sysvar的值(假设您将其正确设置为open),那么我建议使用:vlr sysVarChanged回调。如果您熟悉vlr命令reactor的语法,那么对于:vlr sysVarChanged所需的回调列表项应该没有问题。
 
把一些代码放在一起,并进行测试。如果你仍然有问题,或想尝试一些独特的,张贴代码,让我们知道。
 
希望这有帮助!

lpseifert 发表于 2022-7-6 10:38:02

我的版本没有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"))
   )
)

BlackBox 发表于 2022-7-6 10:44:18

正如一位智者所说。。。
 
 
 
英雄联盟

harrison-matt 发表于 2022-7-6 10:47:13

我对此进行了测试,程序在引发事件时导致autocad崩溃。
 

lpseifert 发表于 2022-7-6 10:52:05

好吧,我会浸在水里。。。希望你学到点什么

BlackBox 发表于 2022-7-6 11:04:04

 
 
 
敬请期待。。。。相同的“Bat通道”,相同的“Bat时间”。。。

alanjt 发表于 2022-7-6 11:04:49

您正在创建自己的无限循环,方法是让一个反应器在每次更改MLEADERSCALE时激活,并将其设置为其他值,从而激活反应器内的反应器。
 
尝试以下操作:
 
通过这种方式,它将第二次发射,但会注意到MLEADERSCALE和DIMSCALE相等,不会继续。

harrison-matt 发表于 2022-7-6 11:12:47

谢谢,现在我明白了!

Lee Mac 发表于 2022-7-6 11:18:05

 
小心递归循环Larry。。。
 
反应堆将对回调等作出反应。。。
 
编辑:艾伦先到了-应该先看帖子。。。
页: [1] 2
查看完整版本: VLR SysVar反应堆帮助