【反应器】模型和布局使用不同的全局比例
本帖最后由 kucha007 于 2022-12-30 18:29 编辑加载但不必运行,如果想每次都加载就放启动组或者acadiso.lsp
本来是有点感兴趣但不知道怎么操作,无意中接触了反应器,就学习了一下,学习资料也放在这里:
https://www.afralisp.net/visual-lisp/tutorials/reactors-part-1.php
(vl-load-com)
;;加载就修改
(K:ChkModel)
;;设置并初始化反应器,切换工作空间时修改
(vlr-sysvar-reactor nil '((:vlr-sysVarChanged . *WSReactor*)))
;;反应器回调函数
(defun *WSReactor* (Rea Data)
(if (= (car Data) "TILEMODE")
(K:ChkModel)
)
)
;;通用函数:判断工作空间
(defun K:ChkModel nil
(cond
((= 1 (getvar "TILEMODE"));模型空间
;(setvar "PSLTSCALE" 0);缩放时不使用视口比例
(setvar "LTSCALE" 500);设置全局缩放比例为500
)
((= 0 (getvar "TILEMODE"));布局空间
(setvar "PSLTSCALE" 1);缩放时使用视口比例
(setvar "LTSCALE" 10);设置全局缩放比例为10
)
)
)
另一个有意思的东西,用来判断活动视口:
;;判断工作空间及是否在活动视口中
(cond
((= (getvar "TILEMODE") 1)
(princ "\n——★★★ 在模型空间中 ★★★——")
)
((and (= (getvar "TILEMODE") 0)(= (getvar "CVPORT") 1))
(princ "\n——★★★ 在布局空间中 ★★★——")
)
((and (= (getvar "TILEMODE") 0)(> (getvar "CVPORT") 1))
(princ "\n——★★★ 在活动视口中 ★★★——")
)
)
谢谢楼主分享 感谢大佬分享 ++++++++++лз 本帖最后由 tomonkey239 于 2022-12-30 17:26 编辑
再想反应器是怎么样的,感谢分享
但是试了下,运行不成功
tomonkey239 发表于 2022-12-30 17:01
再想反应器是怎么样的,感谢分享
但是试了下,运行不成功
不用运行。加载就可以用了,加载后你切换空间,再检查全局比例就知道了 有没有画一个矩形的的反应器?大佬 tomonkey239 发表于 2022-12-31 13:29
有没有画一个矩形的的反应器?大佬
学习资料里有关于命令反应器的信息 本帖最后由 dingtiedt 于 2023-12-3 16:27 编辑
大师,把两个一合并,切换到model空间,提示是正常的;在布局与布局、或者在布局与活动视口之间切换时,有时显示不正常,在布局空间时,提示“在活动视口中”,在活动视口中时,提示“在布局空间中”,请大师看看什么原因
(vl-load-com)
(K:ChkModel)
(vlr-sysvar-reactor nil '((:vlr-sysVarChanged . *WSReactor*)))
(defun *WSReactor* (Rea Data)
(if (= (car Data) "TILEMODE")
(K:ChkModel)
)
)
(defun K:ChkModel nil
(cond
((= (getvar "TILEMODE") 1)
(princ "\n——★★★ 在模型空间中 ★★★——")
)
((and (= (getvar "TILEMODE") 0)(= (getvar "CVPORT") 1))
(princ "\n——★★★ 在布局空间中 ★★★——")
)
((and (= (getvar "TILEMODE") 0)(> (getvar "CVPORT") 1))
(princ "\n——★★★ 在活动视口中 ★★★——")
)
))
厉害厉害,膜拜
页:
[1]