求布局视口中反向冻结功能
本帖最后由 nyistjz 于 2020-12-3 03:44 编辑如附件,是我在本论坛找到的可以在视口中冻结和打开的两个功能,很好用。
但是目前缺少了,反向冻结的功能,也就是把冻结的解冻,把非冻结的冻结。
还请高手,能有解决办法,感谢!
====================================================
如附件,按网友们的意见已做修改,并增加了些功能,希望对大家有帮助 !
在模型与布局中会有不同的表现 本帖最后由 wudechao 于 2020-11-9 12:06 编辑
nyistjz 发表于 2020-11-9 00:46
感谢,可以实现需要的功能。
另外,这个程序有个小问题,就是反显和全显,时需要点击需要的视口才行, ...;我改一下
(defun c:tt5 (/ i lalist ssent ffg)
(princ "-->反转视口内冻结非冻结图层")
(setvar "cmdecho" 0)
(setq ffg (getvar "cvport"))
(if (/= ffg 1)
(setq ssent (ssget "x" (list '(0 . "VIEWPORT") (cons 69 ffg))))
(progn
(command "_PSPACE")
(setq ssent (ssget '((0 . "VIEWPORT"))))
)
)
(if ssent
(progn
(setq i 0)
(repeat (sslength ssent)
(if (/= "" (setq lalist (la:getfreezelayerforview (vlax-ename->vla-object (ssname ssent i)))))
(command "_.vplayer" "f" "*" "s" (ssname ssent i) "" "" "_.vplayer" "T" lalist "S" (ssname ssent i) "" "")
(command "_.vplayer" "f" "*" "s" (ssname ssent i) "" "")
)
(setq i (1+ i))
)
)
)
(if (/= ffg 1)
(command "_.MSPACE")
)
(setvar "cmdecho" 1)
(princ)
) (defun C:tt5(/ i laList ssent)
(princ "-->反转视口内冻结非冻结图层")
(setvar "cmdecho" 0)
(if (/= (getvar "cvport") 1)(command "_PSPACE"))
(if (setq ssent (ssget '((0 . "VIEWPORT"))))
(progn
(setq i 0)
(repeat (sslength ssent)
(if (/= "" (setq laList(LA:GetFreezeLayerForView(vlax-ename->vla-object(ssname ssent i)))))
(command "_.vplayer" "f" "*" "s" (ssname ssent i) "" "" "_.vplayer" "T" laList "S" (ssname ssent i) "" "")
(command "_.vplayer" "f" "*" "s" (ssname ssent i) "" "")
)
(setq i (1+ i))
)
)
)
(setvar "cmdecho" 1)
(princ)
) nyistjz 发表于 2021-9-13 13:45
最好不要这么操作,因为在视口中,是对单个视口的操作,而对模型的操作会影响到全部的视口。
对于你这个 ...
现在经常有一些图纸,大地下室,模型空间都是画在一起的,在图纸空间利用视口里面的图层冻结,分隔成多张图纸,这样的就会有一个问题,需要在图纸空间才能方便的浏览图纸,我现在的方法是,在某个视口中把冻结的图层放到一个组过滤器里面,然后在模型空间里面把组过滤器里面的图层关闭或冻结,这样看到的东西就和图纸空间中一致,毕竟在模型空间操作,大的图纸不怎么卡 start4444 发表于 2020-11-9 00:00
(defun C:tt5(/ i laList ssent)
(princ "-->反转视口内冻结非冻结图层")
(setvar "cmdecho" 0)
感谢,可以实现需要的功能。
另外,这个程序有个小问题,就是反显和全显,时需要点击需要的视口才行,有没有可能直接对已经激活的这个视口反显或全显,而去除掉选择视口的这个步骤。
是否可以实现? 本帖最后由 nyistjz 于 2020-11-9 12:46 编辑
wudechao 发表于 2020-11-9 12:02
;我改一下
(defun c:tt5 (/ i lalist ssent ffg)
大侠,牛逼,膜拜中!:handshake考虑很全面。
wudechao 发表于 2020-11-9 12:02
;我改一下
(defun c:tt5 (/ i lalist ssent ffg)
大侠,不好意思,还想再请教您个功能。
有没有办法在视口中实现“只打开指定图层”的功能,比如:选择图层1和图层2,则只保留这两个图层打开是打开状态,其它图层全部冻结关闭。 顶一下 求大神解决 附件已经有更新,在1楼 nyistjz 发表于 2020-12-3 03:43
附件已经有更新,在1楼
能不能把 ZD();打开指定图层 命令完善
很需要这个命令 求大神们 完善这个功能
页:
[1]
2