编辑多个块(颜色)a
假设我有一大堆积木,它们都是不同的颜色。我想让它们都变成一种颜色,而不必进入块编辑器屏幕。一定有办法的。 用所需的颜色重新定义块。Autocad将询问您是否要更新图形中的当前块定义。 这确实可以归结为一开始就做对了。如果你真的需要,你应该只在块中定义颜色和层。最好在第0层上创建几何体,并使用“颜色byLayer”或“byBlock”。这样,你所需要做的就是把你的积木放在一个不同的层上,或者给它们分配一个不同的克隆,一切都完成了。
嗯,我必须把其他人的计划放进我的画里。例如HVAC、机械图纸。这些人使用大约20种不同的颜色,所有的东西都是一块。我喜欢把所有其他交易都做成某种颜色,然后锁上。这样,当我绘制管道时,我可以集中注意力。
如果每个人都像你说的那样做,那就行了。 在这种情况下,要回答您最初的问题,我认为编程是唯一的方法。 您可以编辑一个块并更改其中的所有内容。这是一个lisp,用于将发现特定线型的每个块中的线型更改为不同的线型。
我从这里的论坛上得到了一个叫做block edit的来源
; my line only change
;(defun c:normblocks (/ adoc)
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark adoc)
(vlax-for block (vla-get-blocks adoc)
(if (not (wcmatch (strcase (vla-get-name block) t) "*_space*"))
(vlax-for ent block
(if(= (vla-get-linetype ent ) "solid" )
(progn
(vla-put-linetype ent "Continuous")
(princ (vla-get-name block))
)
);_ end of if
) ;_ end of vlax-for
) ;_ end of if
) ;_ end of vlax-for
(vla-regen adoc acactiveviewport)
(vla-endundomark adoc)
(princ)
完整的代码应易于更改颜色
(defun c:normblocks (/ adoc)
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark adoc)
(vlax-for block (vla-get-blocks adoc)
(if (not (wcmatch (strcase (vla-get-name block) t) "*_space*"))
(vlax-for ent block
; (vla-put-color ent 0)
(vla-put-linetype ent "Bylayer")
(vla-put-lineweight ent aclnwtbyblock)
) ;_ end of vlax-for
) ;_ end of if
) ;_ end of vlax-for
(vla-regen adoc acactiveviewport)
(vla-endundomark adoc)
(princ)
) ;_ end of defun
(defun c:normblock (/ adoc selset)
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark adoc)
(if (setq selset (ssget "_:S:L" '((0 . "INSERT"))))
(vlax-for ent (vla-item
(vla-get-blocks adoc)
(cdr (assoc 2 (entget (ssname selset 0))))
) ;_ end of vla-item
(vla-put-color ent 0)
(vla-put-linetype ent "ByBlock")
(vla-put-lineweight ent aclnwtbyblock)
) ;_ end of vlax-for
) ;_ end of if
(vla-endundomark adoc)
(princ)
) ;_ end of defun
按层查找颜色
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark adoc)
(vlax-for block (vla-get-blocks adoc)
(if (not (wcmatch (strcase (vla-get-name block) t) "*_space*"))
(vlax-for ent block
(vla-put-color ent 0)
(vla-put-linetype ent "Bylayer")
(vla-put-lineweight ent aclnwtbyblock)
) ;_ end of vlax-for
) ;_ end of if
) ;_ end of vlax-for
(vla-regen adoc acactiveviewport)
(vla-endundomark adoc)
(princ)
这真是太棒了,希望它能起作用。 哇,我把所有这些都做成了一个Lisp文件,加载到CAD中。砰!
我可以把任何一个方块换成任何我想要的颜色!只需点击它并改变颜色!
我不必进入块编辑!
只要加载,它就会自动使每个块都完美。
这将为我节省很多时间。只是想让你知道你让别人的生活更轻松了。哇,我觉得我现在可以休息更长时间了!咖啡听起来不错 用于规范化当前图形块的另一个程序
标准块。lsp 你能解释一下如何加载lisp文件吗,我不知道如何使用lisp:(。我有许多块我想更改为相同的颜色,否则无法执行
页:
[1]
2