mikewolf2k 发表于 2012-12-20 16:08:15

有的块不能getboundingbox

参看附件内的三个块,白色的那个块在执行到ACADEnt.GetBoundingBox Temppnt1, Temppnt2时报错
Run-tim error '-2145386468(8020001c)':
Invalid extents
如果删除这个块,另外两个块没问题。不知何故,求教。
付代码如下:
    For Each ACADEnt In ActiveDocument.ModelSpace
      Debug.Print ACADEnt.Handle
      ACADEnt.GetBoundingBox Temppnt1, Temppnt2
    Next

另外一个问题,想获得整张图的这个边界点,不知道有什么便捷方法么。现在是遍历所有图元,然后取最外的两点,操作时间比较长。
还有对于模型空间和图纸空间的元素,这个边界点是什么情况,两个空间内的坐标是什么关系?
谢谢!



欢乐 发表于 2012-12-22 23:16:48

下载下来试了下.GetBoundingBox 三个都没有问题啊?第二个问题用Application.ZoomExtents然后查看activeviewport的width和height就OK了

mikewolf2k 发表于 2012-12-24 13:58:24

1. 奇怪了,我这就是不行。能否看看你的代码?以下是我的:
Sub test()
    Dim ACADEnt As AcadEntity
    Dim Temppnt1 As Variant, Temppnt2 As Variant
    ZoomAll
    For Each ACADEnt In ActiveDocument.ModelSpace
      Debug.Print ACADEnt.Handle
      ACADEnt.GetBoundingBox Temppnt1, Temppnt2
    Next
End Sub
2. 这样不行的,如果是个棍子长条形,view的长宽中的一项是大于图元边界范围的。
页: [1]
查看完整版本: 有的块不能getboundingbox