clement 发表于 2004-5-24 14:53:00

[求助]关于清空块定义中所有实体的问题

Sub SetBlockEmpty(ByRef Doc As AutoCAD.AcadDocument, ByVal strBlockName As String)<BR>       Dim objBlock As AutoCAD.AcadBlock<BR>       Dim n As Integer<BR>       Dim i As Integer<BR>       <BR>       Set objBlock = Doc.Blocks(strBlockName)<BR>       <BR>       If Err Then<BR>                       Err.Clear<BR>                       Exit Sub<BR>       End If<BR>       <BR>       n = objBlock.Count



'问题在这里,循环运行了若干次以后提示"无效的过程或调用参数"后终止.       Regen后块引用中实体有所减少但未清空<BR>       For i = 0 To n - 1<BR>                       objBlock.Item(i).Delete<BR>       Next<BR>'-----------


       <BR>       Set objBlock = Nothing<BR>End Sub


看来是遍历有问题,请问现在想把块定义中的所有实体清空应该如何修改?谢谢.

clement 发表于 2004-5-24 15:10:00

已经解决了!


Do Until objBlock.Count = 0<BR>                       objBlock.Item(objBlock.Count - 1).Delete<BR>Loop

雪山飞狐_lzh 发表于 2004-5-24 15:18:00

直接



for i=        0 to objBlock.count-1<BR>                       objBlock(0).Delete<BR>next i

clement 发表于 2004-5-24 15:52:00

多谢赐复!

efan2000 发表于 2004-5-25 11:41:00

虽然块中没有包含实体,但插入到图纸中的该块的块引用对象依然存在。

clement 发表于 2004-5-25 16:55:00

我的目的是对块的定义进行更新,清空原先的定义只是第一步.
页: [1]
查看完整版本: [求助]关于清空块定义中所有实体的问题