yichong 发表于 2004-3-27 20:53:00

[求助]如何修改块中的AcadText的文本内容?

我通过在ModelSpace中增加了一些AcadLine和AcadText做了一个标题栏,并定义成AcadBlock,想用程序去修改块中的AcadText的文本内容,请问是否须分解块?<BR>我试着用如下程序分解:<BR>        Dim blockRefObj As AcadBlockReference<BR>        Dim explodedObjects As Variant<BR>        explodedObjects = blockRefObj.Explode<BR>但总提示说blockRefObj未定义,请问若可行,该如何将blockRefObj与图形中已有的块联系起来?<BR>如不可行,该如何去修改块中的AcadText的文本内容?<BR>

mccad 发表于 2004-3-28 08:28:00

不知你的AcadBlock是如何定义出来的。


如果你是想先定义块再插入块,则可以在Blocks中添加一个命名块,原来再在这个块中添加AcadLine和AcadText,再插入到图形ModelSpace中。这样会方便一些。


修改块中的文字,不必炸开,而直接在块中修改,因为块中的每个图元你都可以通过程序得到。

yichong 发表于 2004-3-28 21:19:00

关键问题就是我不知如何用程序得到该块,并修改其中文本!<BR>举例说,我是用类似以下程序DRAW的块:<BR>Dim B As acadblock<BR>Dim BR As AcadBlockReference<BR>Dim SPnt(0 To 2), EPnt(0 To 2) As Double<BR>SPnt(0) = 0: SPnt(1) = 0: SPnt(2) = 0<BR>EPnt(0) = 0: EPnt(1) = 50: EPnt(2) = 0<BR>Dim line As AcadLine<BR>Dim text As AcadText<BR>Set line = B.AddLine(SPnt, EPnt)<BR>Set text = B.AddText("标题栏文本", SPnt, 5)<BR>Set BR = ThisDrawing.ModelSpace.InsertBlock(ePnt, "TitleBar", 1#, 1#, 1#, 0)<BR>想用另外一个类似以下程序得到该块:<BR>Dim BlkRef As AcadBlockReference<BR>Dim Pnt As Variant<BR>Dim Blk As AcadEntity<BR>ThisDrawing.Utility.GetEntity Blk, Pnt, "Get Block:"<BR>......<BR>我是新手,能否给写出一些关键的代码??谢谢了!!
页: [1]
查看完整版本: [求助]如何修改块中的AcadText的文本内容?