bamboo 发表于 2003-5-23 09:52:00

怎样在指定层提取对象属性

public acadobj as acadobject
public line as acadline

public sub auto()
dim startpt1 as variant
dim startpt2 as variant
set acadobj=thisdrawing.activedocument.modelspace.item(0)
set line=thisdrawing.activedocument.modelspace.item(0)
startpt1=line.startpoint(0)
startpt2=line.startpoint(1)
end sub
VB环境下,其中thisdrawing已是创建过的AUTOCAD应用。
为什么我一将第1层设为当前层,在调用提取属性函数,提取的还是第0层的对象属性

efan2000 发表于 2003-5-23 13:08:00

这跟层是没有关系的。

使用ModelSpace枚举的实体都是在所有的层上,而跟当前层的设置没有关系,如果只对某一层的实体进行操作,要跟据实体的Layer属性来判断是哪一个层的。还有一种方法是使用选择集,当然还有过滤机制。具体的可以看帮助文件。下面是选择集的一个用法。之后可以使用像sstext.Item(0)来访问选择集中的实体。
Sub Ch4_FilterLayer()
   Dim sstext As AcadSelectionSet
   Dim FilterType(0) As Integer
   Dim FilterData(0) As Variant
   Set sstext = ThisDrawing.SelectionSets.Add("SS2")
   FilterType(0) = 8 '代表层的组码
   FilterData(0) = "1" '层的名称
   sstext.SelectOnScreen FilterType, FilterData
End Sub

bamboo 发表于 2003-5-23 20:13:00

非常感谢你指点迷津,再帮帮我

文档第0层是老师出的考题,第一层是老师的答案层,我只是想提取答案层的对象属性。selectionsets还是不能区别出对象是哪个层的。怎样可以解决这个问题。谢谢。
页: [1]
查看完整版本: 怎样在指定层提取对象属性