如何判断某个GROUP是在模型空间还是布局空间?
我在一张图的模型空间和布局空间都有几个GROUP,我用THISDRAWING.GROUPS得到是所有的GROUP,但我如何知道其中某个GROUP是在模型空间还是在布局空间?谢谢指教组并没有空间之分,只有其中的实体有,可通过判断其中的实体的Owner属性。 可是我通过组中的item并没有发现有OWNER属性。 <TABLE cellSpacing=0 width="100%" border=1>
<TBODY>
<TR>
<TD width="12%">
67
</TD>
<TD width="88%">
空间,即模型空间或图纸空间(固定)
</TD></TR></TBODY></TABLE>你看能不能通过选择集来过滤,组码为67. 实体才有Owner属性。 我的GROUP中都是直线,所以我得不到OWNER属性,请高手们再指教一个好的方法。这对我很重要 怎么会得不到Owner属性呢:Sub GenGroupSpace()
Dim g As AcadGroup
Dim e As AcadEntity
Dim m As AcadObject
For Each g In ThisDrawing.Groups
Set e = g(0)
Set s = ThisDrawing.ObjectIdToObject(e.OwnerID)
MsgBox "组合" & g.Name & "所在的空间为:" & s.Name
Next
End Sub 楼上的回复很感谢,但是还有一个问题,就是如何知道一个GROUP是在布局1里还是在布局2里,或是布局3里?请高手指教。 Sub GetGroupSpace()
Dim g As AcadGroup
Dim e As AcadEntity
Dim L As AcadLayout
Dim s As AcadObject
Dim t As String
For Each g In ThisDrawing.Groups
Set e = g(0)
Set s = ThisDrawing.ObjectIdToObject(e.OwnerID)
If s.Name = "*Model_Space" Then
t = t & "组合 " & g.Name & " 所在的空间为:模型空间" & vbCrLf
Else
Set L = s.Layout
t = t & "组合 " & g.Name & " 所在的空间为:图纸空间的 " & L.Name & vbCrLf
End If
Next
If t <> "" Then MsgBox t, , "明经通道VBA示例"
End Sub 不行呀,楼上的,这句:Set L = s.Layout 报错:
方法'Layout' 作用于对象 'IAcadBlock' 时失败
页:
[1]
2