明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1556|回复: 3

在VB.NET中关于选择集使用的一个问题!

[复制链接]
发表于 2005-3-8 17:19:00 | 显示全部楼层 |阅读模式
以下是在VB.NET中关于选择集使用的一段程序,用意是想得到CAD某一图层中全部实体类型,程序代码为: Dim acadapp As AcadApplication Dim Sels As AcadSelectionSets
Sels = acadapp.ActiveDocument.SelectionSets Dim Sel As AcadSelectionSet
Dim mspaceObj As AcadObject
Dim FilterType(0) As Integer
Dim FilterData(0) As Object
Dim LayCount As Integer
Dim LayName As String LayCount = acadapp.ActiveDocument.Layers.Count For I = 1 To LayCount - 1
LayName = acadapp.ActiveDocument.Layers.Item(I).Name
If StrComp(LayName, "YD-R2", 1) = 0 Then
Sel = Sels.Add(LayName)
FilterType(0) = 8
FilterData(0) = LayName Sel.Select(AcSelect.acSelectionSetAll, , , FilterType, FilterData) '该语句得到得到的实体数总为0,不知道为什么?
For Each mspaceObj In Sel
MsgBox(mspaceObj.ObjectName)
Next Sel.Delete()
End If
Next I 请各位帮我找找原因,好吗?以上这段代码在VBA中运行的话,可以得到我想要的结果!
 楼主| 发表于 2005-3-8 18:13:00 | 显示全部楼层

Re

我找到了部分的原因:如果把语句


Sel.Select(AcSelect.acSelectionSetAll, , , FilterType, FilterData)


改为:


Sel.Select(AcSelect.acSelectionSetAll)


就可以得到实体类型了,但得到是全部实体的类型,而不是特定层内的实体类型。所以,应该是过滤器设置失效的原因了。那过滤器在这里应该怎么设置呢?
发表于 2005-3-8 20:00:00 | 显示全部楼层
注意VB与VB.Net的数据类型的对应


VB的Integer对应.Net下的Short
发表于 2006-12-4 19:58:00 | 显示全部楼层
本帖最后由 作者 于 2006-12-5 15:56:45 编辑

牛人就是牛人!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 22:27 , Processed in 0.148500 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表