lxl217114 发表于 2022-12-8 14:15

在当前布局有多个视口的情况下,实现关闭选中视口/关闭未选中视口显示状态

本帖最后由 lxl217114 于 2022-12-9 11:39 编辑

http://bbs.mjtd.com/thread-181845-1-1.html
不知道20明经币够不够



在当前布局有多个视口的情况下,实现显示视口对象 >否。
选择模式有两种:①关闭选中视口/②关闭未选中(即反选)视口
[显示视口对象>否]


以下是 6# maiko提供的代码,感谢maiko,可在此基础上面修改。
(defun c:tt ( / ss s1 i )
(if (setq ss (ssget'((0 . "VIEWPORT"))))
    (repeat (setq i (sslength ss))
      (setq s1 (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
      (if (eq :vlax-true (vla-get-viewporton s1))
      (vla-put-ViewportOn s1 :vlax-false)
      (vla-put-ViewportOn s1 :vlax-true)
      )
    )
)
)

start4444 发表于 2022-12-8 14:15

本帖最后由 start4444 于 2022-12-9 15:47 编辑

lxl217114 发表于 2022-12-9 14:30
谢谢大佬,您这个码实现了②关闭未选中

再劳烦实现2种模式切换的

这简单的东西最好能学一下,另外建议是分开两个命令更有效率,选项越多越麻烦

(defun c:tt5 (/ i key s1 ss)
        (setq key (getstring "\n关闭(空格)/独显(S)/全显(A):"))
        (if (= key "a") (command "MVIEW" "on" "all" ""))       
(if (/= key "a")
                (progn (setq ss (ssget'((0 . "VIEWPORT")))) (if (= key "s") (command "MVIEW" "off" "all" ""))
    (repeat (setq i (sslength ss))
      (setq s1 (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
      (if (eq :vlax-true (vla-get-viewporton s1))
      (vla-put-ViewportOn s1 :vlax-false)
      (vla-put-ViewportOn s1 :vlax-true)
      )
    )
))
        (princ)
)

start4444 发表于 2022-12-9 14:22

(defun c:tt5 ( / ss s1 i )
        (setq ss (ssget'((0 . "VIEWPORT"))))
        (command "MVIEW" "off" "all" "")
(if ss
    (repeat (setq i (sslength ss))
      (setq s1 (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
      (if (eq :vlax-true (vla-get-viewporton s1))
      (vla-put-ViewportOn s1 :vlax-false)
      (vla-put-ViewportOn s1 :vlax-true)
      )
    )
)
)

lxl217114 发表于 2022-12-9 14:30

start4444 发表于 2022-12-9 14:22
(defun c:tt5 ( / ss s1 i )
        (setq ss (ssget'((0 . "VIEWPORT"))))
        (command "MVIEW" "off" "all" " ...

谢谢大佬,您这个码实现了②关闭未选中

再劳烦实现2种模式切换的
选择模式有两种:选择模式有两种:①关闭选中视口/②关闭未选中(即反选)视口

lxl217114 发表于 2022-12-9 14:47

本帖最后由 lxl217114 于 2022-12-9 14:53 编辑

start4444 发表于 2022-12-9 14:42
这简单的东西最好能学一下,另外建议是分开两个命令更有效率,选项越多越麻烦
(defun c:tt5 (/ i key s1 ...
感谢,可以把maiko和您上一个的代码整到一起,设定两个命令。


独显模式,好像少了一个【恢复其他视口>显示】的功能

222808 发表于 2023-2-7 16:02

感谢大佬分享
页: [1]
查看完整版本: 在当前布局有多个视口的情况下,实现关闭选中视口/关闭未选中视口显示状态