lpseifert 发表于 2022-7-6 15:03:02

用于开关之间的电抗器

也许有人能给我指出正确的方向。。。最后,我想在MS/PS之间切换时设置dimscale;将dimscale设置为与VP scale相同(例如VP scale-1”=50’,dimscale=50;或者可能使用Cannoscalevalue),并在切换到PS时将dimscale设置为1。我似乎找不到在反应器中使用的正确事件。有什么想法吗?
事先警告一下,这是我第一次尝试使用反应堆。
谢谢-

wizman 发表于 2022-7-6 15:08:20

这是一个lpseifert示例,我认为您可以从这里开始….'-)
 

(vl-load-com)
(defun chtab ()
   (if    (not ct_rea)
   (setq
       ct_rea (vlr-miscellaneous-reactor
            nil
            '((:VLR-layoutSwitched . yourlispnamegoeshere))
          ) ;_ end_vlr-sysvar-reactor
   ) ;_ end_setq
   ) ;_ end_if
) ;_ end_defun
(chtab)

(defun yourlispnamegoeshere (event parameter)
   (princ "YOU SWITCHED LAYOUT")
) ;_ end_defun
 
*编辑*
我知道你已经在找活动了,我会查一下我能查到什么

lpseifert 发表于 2022-7-6 15:15:10

谢谢wizman,但我相信当你切换布局选项卡时,这会调用一个reactor;我希望在同一个布局选项卡上从MS切换到PS(反之亦然)的反应。

wizman 发表于 2022-7-6 15:21:04

请尝试lpseifert:
 
 
(vl-load-com)
(defun chspce ()
   (if        (not ch_spce)
(setq
    ch_spce (vlr-sysvar-reactor
                nil
                '((:vlr-sysvarchanged . yourlispnamegoeshere))
          ) ;_ end_vlr-sysvar-reactor
) ;_ end_setq
   ) ;_ end_if
) ;_ end_defun
(chspce)

(defun yourlispnamegoeshere (event parameter)
   (If        (eq (car parameter) "CVPORT")
(princ "YOU SWITCHED SPACE")
   ) ;_ end_If
) ;_ end_defun

lpseifert 发表于 2022-7-6 15:28:01

非常感谢wizman,当我切换时会触发反应堆。请问变量“event”和“parameter”的用法是什么?Autodesks帮助对vlr功能没有真正的帮助。

wizman 发表于 2022-7-6 15:32:46

欢迎使用lpseifert,这些是反应器触发的结果参数,事件是反应器对象,参数是元素列表,这些元素因特定事件而异
 
特别是:vlr sysVarChanged:
 
参数是由2项组成的列表,即
 
第一个参数是标识系统变量名称的字符串。(这就是为什么使用汽车)
 
第二个参数是指示更改是否成功的符号(如果成功,则为T,如果不成功,则为nil)。
 
 
看一看vlisp圣经,它也有一个很好的反应堆讨论。

Lee Mac 发表于 2022-7-6 15:36:45

非常感谢Wizman的上述解释,-我总是对参数的函数感到困惑,尤其是。。。
 
非常感谢
 

lpseifert 发表于 2022-7-6 15:39:20

这是我到目前为止得到的,也许有人会发现它很有用。对于我使用的比例,似乎效果不错,我还没有测试过建筑比例。
多亏了威兹曼,他完成了举重。
我希望通过提取视口的dxf代码来设置dimscale,但在没有实际拾取视口边界的情况下,无法想出如何进行entsel。有人知道怎么做吗?

alanjt 发表于 2022-7-6 15:44:45

这将选择您的视口
 
(if
(setq ss_vp
(ssget "_x"
(list
   (cons 410 (getvar "ctab"))
   (cons 0 "VIEWPORT")
);list
);ssget
);setq
(setq ent_vp
(entget
   (ssname ss_vp 0)
);entget
);setq
);if

Lee Mac 发表于 2022-7-6 15:49:31

也可能?
 
4
页: [1] 2
查看完整版本: 用于开关之间的电抗器