JohnK 发表于 2021-11-24 09:35:33

更改块中的文本颜色/图层,每个图形多个,多个图形

大家早上好,
我在P&ID上有一个属性化的仪表块“PD7D”,气泡内有三行文字,E&I人员希望将文字改为红色,以便突出/更容易找到。该块在每个图形和大量图形上显示多个实例,虽然我可以在EAE(属性选项卡)中轻松更改,然后使用BATTMAN在打开的图形上的每个块上同步它,但我试图避免在至少300个P&ID上一次打开一个图形
我事先表示歉意,但我已经在这里搜索了两天了,要么我的搜索词很糟糕,要么我就是没认出我要找的信息,这两种情况都很可能发生。我要说的是,一路上我发现了一些好东西。lsp祝大家感恩节快乐!
**** Hidden Message *****

诛仙图片 发表于 2021-11-24 12:30:08

欢迎是的,这个地方一直是一些非常有才华的程序员的家(大多数是用多种语言编程的)
不是最有效的,但使用简单的lisp(可视lisp)选择块并更改其属性颜色(仅用于快速演示)
显然,对于许多图形,您需要编写过程脚本,我们必须使用AutoLisp制作一个例程来更改颜色,以便您可以使用AccoronSole或更自动化的工具。我只是没有时间(和能力)制作一个使用entmake的版本
(defun c:chred ()
( (lambda ()
    (vla-StartUndoMark (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))
    (setq _block (vlax-ename->vla-object (car (entsel))))
    (if (vlax-method-applicable-p _block 'getattributes)
   (setq _attributes (vlax-invoke _block 'getattributes)))
    (if (= :vlax-true (vlax-get-property _block 'hasattributes))
   (setq _attributes (vlax-invoke _block 'getattributes)) )
    (foreach _attribute _attributes (vla-put-Color _attribute 1))
    (vla-EndUndoMark (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))
   )
)
)

无敌水世界 发表于 2021-11-24 14:27:59

谢谢你,约翰,工作得很好!他们让我们提前去度假,所以下周我会多玩玩。再次感谢,注意安全!
页: [1]
查看完整版本: 更改块中的文本颜色/图层,每个图形多个,多个图形