liuhaixin88 发表于 2022-7-5 23:15:36

隐藏同名块,然后取消

谢谢大家。
我想用一个命令来隐藏同名块,并用一个命令来显示它。
谢谢你的帮助!

liuhaixin88 发表于 2022-7-5 23:22:05

 
:哭:回答,好吗

steven-g 发表于 2022-7-5 23:23:34

你用命令隐藏是什么意思,我应该说你认为它是如何工作的,“hideobjects”命令可以让你选择一个或多个要隐藏的对象(取消隐藏会将它们全部隐藏回来),另一种方法是将对象放在它们自己的层上,并可能使用宏打开/关闭层。这完全取决于你在做什么。

liuhaixin88 发表于 2022-7-5 23:26:05

 
史蒂文,谢谢你的回复!
我知道的隐藏对象:
;;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)
)
 
但我想隐藏一个块,相同名称的块全部隐藏。

Tharwat 发表于 2022-7-5 23:30:28

要包含在该例程中的块的名称是什么?
它们是动态块还是正常块?
它们是否属于?

steven-g 发表于 2022-7-5 23:34:42

也许是基于“selectsimilar”的东西

liuhaixin88 发表于 2022-7-5 23:35:59

 
嗨,塔尔瓦,很高兴见到你!为什么要更改个人资料图片?
 
1、块的名称不确定,必须用鼠标选择一个块。
2.两者
3.两者

Tharwat 发表于 2022-7-5 23:39:04

 
也谢谢我
 
 
你不喜欢吗?如果是这样,我可以改变它。
 
试试下面的程序,让我知道结果。
 

(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)

liuhaixin88 发表于 2022-7-5 23:43:54

 
哈哈我喜欢上一个。
 
这个代码很好!完美的但是如何显示呢?

Tharwat 发表于 2022-7-5 23:46:19

 
很好,很高兴听到
 
呵呵?
页: [1] 2
查看完整版本: 隐藏同名块,然后取消