块颜色
大家好,再次需要你的帮助。我有一个块,我需要按层或特定颜色更改块内的所有实体。我在考虑“nentselp”,但这只会给我一个实体来选择。我的问题是如何将块内的所有实体放入选择集,以便处理它们。我不需要完整的代码,只是选择部分对我来说就足够了。非常感谢。
您所描述的更像是重新定义块。
你意识到,当你这样做时,它会影响相同名称的所有块。
这就是你想要实现的吗? 您打算如何区分ByLayer和分别直接附着的颜色实体?
大约只有一个街区?希望您知道有内置的REFEDIT和BEDIT命令。 setbylayer 是的,重新定义区块,这是我的目标。
这就是我目前正在做的。在图形上的每个块上使用bedit更改块内实体的颜色。我需要把所有的家具、固定装置、橱柜按我们公司的标准(颜色)摆放。
我的版本更改为任何色块和实体以及。。。。
(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)
)
@塔瓦特
对于具有属性的块,在其中加入attsync。
@LISP2学习
这就是你想要做的吗? 对
@LISP2学习
这就是你想要做的吗?
Tharwat和pBe,非常感谢。这正是我想要的。塔瓦,你帮我省了几个小时的工作。再次感谢你们,我不知道该如何表达我对你们在cadtutor的帮助。
好观点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