LISP2LEARN 发表于 2022-7-6 07:29:04

块颜色

大家好,
 
再次需要你的帮助。我有一个块,我需要按层或特定颜色更改块内的所有实体。我在考虑“nentselp”,但这只会给我一个实体来选择。我的问题是如何将块内的所有实体放入选择集,以便处理它们。我不需要完整的代码,只是选择部分对我来说就足够了。非常感谢。

pBe 发表于 2022-7-6 07:33:09

 
您所描述的更像是重新定义块。
你意识到,当你这样做时,它会影响相同名称的所有块。
这就是你想要实现的吗?

MSasu 发表于 2022-7-6 07:35:38

您打算如何区分ByLayer和分别直接附着的颜色实体?
大约只有一个街区?希望您知道有内置的REFEDIT和BEDIT命令。

Tharwat 发表于 2022-7-6 07:41:16

setbylayer

LISP2LEARN 发表于 2022-7-6 07:44:29

是的,重新定义区块,这是我的目标。
 

LISP2LEARN 发表于 2022-7-6 07:45:10

这就是我目前正在做的。在图形上的每个块上使用bedit更改块内实体的颜色。我需要把所有的家具、固定装置、橱柜按我们公司的标准(颜色)摆放。
 
 

Tharwat 发表于 2022-7-6 07:50:59

我的版本更改为任何色块和实体以及。。。。
 

(defun c:Test (/ color ss i sn obj lst name)
(vl-load-com)
;;; Tharwat 01. July. 2012;;;
(cond ((not acdoc)
      (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
       )
)
(if (and (setq color (acad_colordlg 7 t))
          (setq ss (ssget "_:L"))
   )
   (progn
   (vla-startundomark acdoc)
   (repeat (setq i (sslength ss))
       (setq obj (vlax-ename->vla-object
                   (setq sn (ssname ss (setq i (1- i))))
               )
       )
       (if (eq (cdr (assoc 0 (entget sn))) "INSERT")
         (vlax-for block (setq
                           blk (vla-item
                                 (vla-get-blocks acdoc)
                                 (setq name (vla-get-EffectiveName obj))
                               )
                         )
         (if (and (eq :vlax-false (vla-get-isXref blk))
                  (if (not (member name lst))
                      (setq lst (cons name lst))
                  )
               )
             (vlax-for x blk
               (if
               (not (eq "AcDbBlockReference" (vla-get-objectname x)))
                  (vla-put-color x color)
               )
             )
         )
         )
         (vla-put-color obj color)
       )
   )
   (vla-regen acdoc acAllViewports)
   (vla-endundomark acdoc)
   )
   (princ)
)
(princ "\n Written by Tharwat Al Shoufi ")
(princ)
)

pBe 发表于 2022-7-6 07:52:49

@塔瓦特
对于具有属性的块,在其中加入attsync。
 
@LISP2学习
这就是你想要做的吗?

LISP2LEARN 发表于 2022-7-6 07:56:25


 
@LISP2学习
这就是你想要做的吗?
 
 
Tharwat和pBe,非常感谢。这正是我想要的。塔瓦,你帮我省了几个小时的工作。再次感谢你们,我不知道该如何表达我对你们在cadtutor的帮助。

Tharwat 发表于 2022-7-6 07:58:57

 
好观点pBe。
 
 
不客气。
 
这里是另一个包括pBe指出的属性块。
 

(defun c:test (/ attribute b blk color i lst name obj sn ss)
;;;;;            Tharwat 01. June. 2012               ;;;;;
;;;;;            This peice of code to change all         ;;;;;
;;;;;selected objects (Blocks / Attribted Block / Objects)   ;;;;;
(if (not acdoc)
   (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
)
(if (and (setq color (acad_colordlg 7 t))
          (setq ss (ssget "_:L"))
   )
   (progn
   (vla-startundomark acdoc)
   (repeat (setq i (sslength ss))
       (setq obj (vlax-ename->vla-object
                   (setq sn (ssname ss (setq i (1- i))))
               )
       )
       (cond
         ((eq (cdr (assoc 66 (entget sn))) 1)
          (progn
            (vlax-for block (setq b (vla-item (vla-get-blocks acdoc)
                                              (cdr (assoc 2 (entget sn)))
                                    )
                            )
            (vlax-for x b (vla-put-color x color))
            )
            (foreach attribute (vlax-invoke obj 'Getattributes)
            (vla-put-color attribute color)
            )
          )
         )
         ((and (eq (cdr (assoc 0 (entget sn))) "INSERT")
               (not (member (cdr (assoc 2 (entget sn))) lst))
          )
          (progn
            (setq lst (cons (cdr (assoc 2 (entget sn))) lst))
            (vlax-for block
                      (setq blk (vla-item (vla-get-blocks acdoc)
                                          (cdr (assoc 2 (entget sn)))
                              )
                      )
            (if (eq :vlax-false (vla-get-isXref blk))
                (vlax-for x blk
                  (if
                  (not
                      (eq "AcDbBlockReference" (vla-get-objectname x))
                  )
                     (vla-put-color x color)
                  )
                )
            )
            )
          )
         )
         (t (vla-put-color obj color))
       )
   )
   (vla-regen acdoc acAllViewports)
   (vla-endundomark acdoc)
   )
   (princ)
)
(princ "\n Written by Tharwat Al Shoufi ")
(princ)
)

页: [1] 2
查看完整版本: 块颜色