haohaohapp 发表于 2004-12-27 09:24:00

如何判断某个GROUP是在模型空间还是布局空间?

我在一张图的模型空间和布局空间都有几个GROUP,我用THISDRAWING.GROUPS得到是所有的GROUP,但我如何知道其中某个GROUP是在模型空间还是在布局空间?谢谢指教

efan2000 发表于 2004-12-27 19:59:00

组并没有空间之分,只有其中的实体有,可通过判断其中的实体的Owner属性。

haohaohapp 发表于 2004-12-28 08:15:00

可是我通过组中的item并没有发现有OWNER属性。

yulijin608 发表于 2004-12-28 12:25:00

<TABLE cellSpacing=0 width="100%" border=1>
<TBODY>
<TR>
<TD width="12%">
67

</TD>
<TD width="88%">
空间,即模型空间或图纸空间(固定)

</TD></TR></TBODY></TABLE>你看能不能通过选择集来过滤,组码为67.

zfbj 发表于 2004-12-28 12:34:00

实体才有Owner属性。

haohaohapp 发表于 2004-12-29 16:12:00

我的GROUP中都是直线,所以我得不到OWNER属性,请高手们再指教一个好的方法。这对我很重要

mccad 发表于 2004-12-29 22:51:00

怎么会得不到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

haohaohapp 发表于 2005-1-20 09:34:00

楼上的回复很感谢,但是还有一个问题,就是如何知道一个GROUP是在布局1里还是在布局2里,或是布局3里?请高手指教。

mccad 发表于 2005-1-20 12:25:00

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

haohaohapp 发表于 2005-1-20 13:42:00

不行呀,楼上的,这句:Set L = s.Layout 报错:


方法'Layout' 作用于对象 'IAcadBlock' 时失败
页: [1] 2
查看完整版本: 如何判断某个GROUP是在模型空间还是布局空间?