lusakura 发表于 2009-3-16 11:32:00

[求助]新手求助,关于CAD Blockreference的问题 ,望各位大大不吝赐教!

本帖最后由 作者 于 2009-3-16 11:45:21 编辑 <br /><br /> <p>我在做一个把EXCEL中的数据读取到CAD中并用这些数据来生成一些图纸的事情,碰到如下这个问题困扰很久一直没有解决:</p><p>作为模板的CAD图纸里已经有了一个块:acbldefl ,这个块包含了一些内容 比如叫 ID1 ID2 ID3 ,分别表示电缆的大小,类型和数量,我的目的是想让EXCEL中存着的50台电机的电缆数据读到CAD中然后分别写入ID1 ID2 ID3并另存为,现在的问题是,我怎么能直接修改block : acbldefl里的 tag: ID1 ID2 ID3?</p><p>我看到的例子都是类似&nbsp;&nbsp;&nbsp; 如下语句,都是插入块</p><p>Dim blockRefObj As AcadBlockReference<br/>&nbsp;&nbsp;&nbsp; insertionPnt(0) = 2<br/>&nbsp;&nbsp;&nbsp; insertionPnt(1) = 2</p><p>&nbsp;&nbsp;&nbsp; insertionPnt(2) = 0<br/>&nbsp;&nbsp;&nbsp; Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (insertionPnt, "TESTBLOCK", 1, 1, 1, 0)</p><p>可我不知道当这个块存在的时候我怎么去调用? </p><p>我想照着例子来</p><p>Set TestBlkRef = ThisDrawing.ModelSpace.Item("acbldefl") </p><p>可是报错说无效的过程调用或参数...</p><p>卡在这个问题上了,希望大大们指点一下,不胜感激!</p>

lusakura 发表于 2009-3-16 22:47:00

深夜来顶,期待回复

英雄无敌 发表于 2009-3-17 11:18:00

<p>Set TestBlkRef = ThisDrawing.ModelSpace.Item("acbldefl") 改成</p><p>Set TestBlkRef = ThisDrawing.blocks("acbldefl") 试试</p>

lusakura 发表于 2009-3-17 12:32:00

<p>谢楼上回复,我忘记说了</p><p>TestBlkRef 类型是 AcadBlockReference,按您那样改完会报类型不匹配...</p><p>Sub AJJJ()<br/>Dim Test As Variant<br/>Dim TestBlk As AcadBlock<br/>Dim TestBlkRef As AcadBlockReference<br/>Dim varAttributes As Variant<br/>Dim i As Integer<br/>'Set TestBlkRef = ThisDrawing.ModelSpace.Item("acbldefl")<br/>Set TestBlkRef = ThisDrawing.Blocks("acbldefl")<br/>varAttributes = TestBlkRef.GetAttributes<br/>If varAttributes(i).TagString = "1" Or True Then<br/>&nbsp;&nbsp; varAttributes(1).TextString = "aaaaabbbbbbbbbbbbb"<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; varAttributes(2).TextString = "3"<br/>&nbsp;&nbsp;&nbsp; varAttributes(3).TextString = "4"<br/>End If</p><p>End Sub</p><p>干脆全贴出来</p>

英雄无敌 发表于 2009-3-17 15:33:00

blockreference在一张图中有很多个,对于有Attribute的blockreference,每个Attribute可能不一样的,这样的话,你可能要建立一个选择集,选择所有块名为“acbldefl”blockreference,并对每个blockreference进行Attribute的操作。

lusakura 发表于 2009-3-18 08:49:00

<p>谢谢楼上!</p>
页: [1]
查看完整版本: [求助]新手求助,关于CAD Blockreference的问题 ,望各位大大不吝赐教!