[求助]关于vba中插入块后出现的问题??
我在编写刀具cad的过程中,将刀具主视图、左视图、廓形图定义为块,然后在块中添加尺寸标注,但在使用insert 插入块以后,生成的图形中不显示块中的尺寸标注,但在插入点却有一个数值为零的尺寸显示,试着用explode方法打散后,可以正确显示图形及尺寸标注。问题按同样的方法(使用EXplode)最后在添加廓形图块的时候,图样中多了一个块参照(插入点处有零尺寸显示),只有在程序执行绘图完毕后,手工才能删除!在插入块的时候我只执行了一次,为何会出现多余的块参照?如何在程序中解决这问题?可能是何原因导致?
有谁遇到过同样的问题吗?请斑竹和大家不吝赐教!!!!
请参见二次开发栏目中的文章
http://www.mjtd.com/a2/list.asp?id=279谢过斑竹。我的解决方法是这样的……
按照链接中所述方法,可以解决在块中添加尺寸的问题。但如果尺寸较多的话,会比较麻烦。经实验发现,包含尺寸的块在插入以后,显示不正确的问题,基本可以用如下方法解决:Set blkRef0bj = ThisDrawing.ModelSpace.InsertBlock(insertpt, blockname, xscale, yscale, 1#, rotAngle)
Dim explode_objs As Variant
explode_objs = blkRef0bj.Explode
blkRefObj.Delete
'对于块中有块的情况,可这样解决
For Each explode_objs In ThisDrawing.ModelSpace
If TypeOf explode_objs Is AcadBlockReference Then
'explode_objs.Explode
explode_objs.Delete
End If
If TypeOf explode_objs Is AcadBlock Then
'explode_objs.Explode
explode_objs.Delete
End If
Next
仅供参考。
这种方法不太好吧,把标注对象都给分解开了
Re:关于vba中插入块后出现的问题
housm兄:在插入块的时候只执行了一次,而出现多余的块参照,我估计是你的块在插入前有一个定义块的过程。可以在该过程中加入一个判断语句:如果块集合中已经有了需要的块,就跳过块定义的过程,直接引用已有的块。谢谢!
页:
[1]