在当前布局有多个视口的情况下,实现关闭选中视口/关闭未选中视口显示状态
本帖最后由 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-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)
)
(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)
)
)
)
) 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:53 编辑
start4444 发表于 2022-12-9 14:42
这简单的东西最好能学一下,另外建议是分开两个命令更有效率,选项越多越麻烦
(defun c:tt5 (/ i key s1 ...
感谢,可以把maiko和您上一个的代码整到一起,设定两个命令。
独显模式,好像少了一个【恢复其他视口>显示】的功能
感谢大佬分享
感谢大佬的分享 牛啊牛啊别的帖子指引过来的正好用上 谢谢大佬分享 感谢大佬分享
页:
[1]