隐藏同名块,然后取消
谢谢大家。我想用一个命令来隐藏同名块,并用一个命令来显示它。
谢谢你的帮助!
:哭:回答,好吗 你用命令隐藏是什么意思,我应该说你认为它是如何工作的,“hideobjects”命令可以让你选择一个或多个要隐藏的对象(取消隐藏会将它们全部隐藏回来),另一种方法是将对象放在它们自己的层上,并可能使用宏打开/关闭层。这完全取决于你在做什么。
史蒂文,谢谢你的回复!
我知道的隐藏对象:
;;hideobjects
(defun c:yc ()
(if (ssget)
(progn
(vlax-for obj
(vla-get-activeselectionset
(vla-get-activedocument (vlax-get-acad-object))
)
(vla-put-Visible obj :vlax-false)
)
)
)
(princ)
)
;;display objects
(defun c:hfxs (/ ss)
(if (setq ss (ssget "x" '((60 . 1))))
(vlax-for obj
(vla-get-activeselectionset
(vla-get-activedocument (vlax-get-acad-object))
)
(vla-put-Visible obj :vlax-true)
)
)
(princ)
)
但我想隐藏一个块,相同名称的块全部隐藏。 要包含在该例程中的块的名称是什么?
它们是动态块还是正常块?
它们是否属于? 也许是基于“selectsimilar”的东西
嗨,塔尔瓦,很高兴见到你!为什么要更改个人资料图片?
1、块的名称不确定,必须用鼠标选择一个块。
2.两者
3.两者
也谢谢我
你不喜欢吗?如果是这样,我可以改变它。
试试下面的程序,让我知道结果。
(defun c:test (/ s sel nm lst ss)
;; Tharwat 26.Mar.2014 ;;
;; Hide Block name by Selection ;;
(or doc (setq doc (vla-get-activedocument (vlax-get-acad-object))))
(princ "\n Select Blocks to hide all with the same name ...")
(if (setq s (ssget "_:L" '((0 . "INSERT"))))
(progn (vlax-for x (setq sel (vla-get-activeselectionset doc))
(if (not (member (setq nm (vla-get-effectivename x)) lst))
(setq lst (cons nm lst))
)
)
(vla-delete sel)
(if (setq ss (ssget "_X"
(list '(0 . "INSERT")
(cons 410 (getvar 'CTAB))
(cons 2 (strcat "`*U*," (apply 'strcat (mapcar '(lambda (u) (strcat u ",")) lst))))
)
)
)
(progn (vlax-for x (setq sel (vla-get-activeselectionset doc))
(if (member (setq nm (vla-get-effectivename x)) lst)
(vl-catch-all-apply 'vla-put-visible (list x :vlax-false))
)
)
)
(vla-delete sel)
)
)
)
(princ)
)
(vl-load-com)
哈哈我喜欢上一个。
这个代码很好!完美的但是如何显示呢?
很好,很高兴听到
呵呵?
页:
[1]
2