20060510412 发表于 2015-3-29 17:03:56

请问如何遍历多个图纸空间(paperspace)?

本帖最后由 20060510412 于 2015-3-29 17:14 编辑

我想使用vba遍历dwg文件里面的所有对象,遇到了一个问题:
如果是遍历模型空间里面的对象比较简单,如下:
For Each ent In objDBX.ModelSpace
如果是遍历图纸空间里面的对象,起初我是用的这一句:
For Each ent In objDBX.PaperSpace
后来发现这样是有问题的:因为我的图纸里面有多个图纸空间,而上面这句代码遍历的只是当前被激活的图纸空间,请问应该如何遍历所有的图纸空间呢?

mikewolf2k 发表于 2018-1-4 12:42:40

    For Each MyLayout In ThisDrawing.Layouts
      If MyLayout.ModelType = False Then
         ThisDrawing.ActiveLayout = MyLayout
           'do event
      End If
    Next

zzyong00 发表于 2015-3-29 20:06:33

Public Sub ss()
Dim objB As AcadBlock, obj1 As AcadObject
For Each objB In ThisDrawing.Blocks
    Debug.Print objB.Name
    For Each obj1 In objB
      Debug.Print Space(6); obj1.ObjectName
    Next obj1
Next objB
End Sub

20060510412 发表于 2015-3-29 20:52:48

zzyong00 发表于 2015-3-29 20:06 static/image/common/back.gif


太感谢了!这个问题困扰了我好久,一直不知道怎么解决。

2017forverd 发表于 2018-1-3 18:42:43

zzyong00 发表于 2015-3-29 20:06


如果要遍历每个空间的同时,激活这些空间为active,怎么操作?
页: [1]
查看完整版本: 请问如何遍历多个图纸空间(paperspace)?