明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 783|回复: 6

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

[复制链接]
发表于 2022-12-8 14:15 | 显示全部楼层 |阅读模式
20明经币
本帖最后由 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)
      )
    )
  )
)

附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

这简单的东西最好能学一下,另外建议是分开两个命令更有效率,选项越多越麻烦 (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 ...
发表于 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)
)
回复

使用道具 举报

发表于 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)
      )
    )
  )
)
回复

使用道具 举报

 楼主| 发表于 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种模式切换的
选择模式有两种:选择模式有两种:①关闭选中视口/②关闭未选中(即反选)视口
回复

使用道具 举报

 楼主| 发表于 2022-12-9 14:47 | 显示全部楼层
本帖最后由 lxl217114 于 2022-12-9 14:53 编辑
start4444 发表于 2022-12-9 14:42
这简单的东西最好能学一下,另外建议是分开两个命令更有效率,选项越多越麻烦
(defun c:tt5 (/ i key s1 ...

感谢,可以把maiko和您上一个的代码整到一起,设定两个命令。


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

点评

更新了  发表于 2022-12-9 15:46
回复

使用道具 举报

发表于 2023-2-7 16:02 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-7 04:11 , Processed in 0.138640 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表