兰州人 发表于 2006-11-30 17:34:00

块的添加问题-经过Boolean处理的实体如何l添加块中.

<P>块的基本定义
<TABLE cellSpacing=1 cellPadding=4 border=0>
<TBODY>
<TR vAlign=top>
<TH align=left>
<P class=Bullet2>VBA class name:</P></TH>
<TD>
<P class=Bullet2>AcadBlock&nbsp;</P></TD></TR>
<TR vAlign=top>
<TH align=left>
<P class=Bullet2>Create using:</P></TH>
<TD>
<P class=Bullet2>Blocks.Add&nbsp;</P></TD></TR>
<TR vAlign=top>
<TH align=left>
<P class=Bullet2-end>Access via:</P></TH>
<TD>
<P class=Bullet2-end>Blocks.Item<BR>Layout.Block&nbsp;</P></TD></TR></TBODY></TABLE></P>
<P>一般的使用方法见后面程序所述,主要语句是用的Block.add方法,代表语句是Set circleObj = blockObj.AddCircle(center, radius)。</P>
<P><FONT face="" color=#ff0000 size=2><U><STRONG>我的问题是经过Boolean处理的实体如何添加块中.</STRONG></U></FONT></P>
<P>&nbsp;boxObj.Boolean acIntersection, cylinderObj</P>
<P>可以写成set box =&nbsp; boxObj.Boolean acIntersection, cylinderObj</P>
<P>得到box.objectID,或box.handle, box.name,我试了好多次都不能通过。</P>
<P>从block帮助文件中,objectID,HANDLE,Name是block的属性,用什么办法可以将经过boolean处理过的实体添加到定义块中,谢谢。</P>
<P>以下是块定义常用的方法</P>
<P>' 定义块<BR>Dim blockObj As AcadBlock<BR>Dim insertionPnt(0 To 2) As Double<BR>insertionPnt(0) = 0<BR>insertionPnt(1) = 0<BR>insertionPnt(2) = 0<BR>Set blockObj = ThisDrawing.Blocks.Add _<BR>(insertionPnt, "CircleBlock")<BR><BR>' 向块中添加圆<BR>Dim circleObj As AcadCircle<BR>Dim center(0 To 2) As Double<BR>Dim radius As Double<BR>center(0) = 0<BR>center(1) = 0<BR>center(2) = 0<BR>radius = 1<BR>Set circleObj = blockObj.AddCircle(center, radius)<BR></P>

兰州人 发表于 2006-11-30 18:53:00

<P><用CopyObjects拷贝对象到块中>可以解决这个问题</P>
<P><A href="http://www.mjtd.com/Html/Develop/DevVBA/64620021110192230.htm" target="_blank" >http://www.mjtd.com/Html/Develop/DevVBA/64620021110192230.htm</A></P>
<P>&nbsp;创建对象集合<BR><BR>Dim objCollection(0 To 0) As Object<BR>Set objCollection(0) = circleObj<BR><BR>' 拷贝对象到块中,并返回新拷贝的对象<BR><BR>Dim retObjects As Variant<BR>retObjects = ThisDrawing.CopyObjects(objCollection, blockObj)<BR></P>
<P>从理论讲是可行的,我马上去试一下.</P>
页: [1]
查看完整版本: 块的添加问题-经过Boolean处理的实体如何l添加块中.