乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 181|回复: 8

[讨论]关于选择集过滤器的问题,看问题出在哪里了?

[复制链接]

2

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2010-10-21 09:17:00 | 显示全部楼层 |阅读模式
简单说一下我的问题:
我的图形里有很多线段,我要通过屏幕选择一部分,然后通过全选的方式选择余下的部分。
我写了部分代码,但是全选的时候出错了,选择不了所有蓝色的直线,请看代码:
  1. Sub FilterLine()
  2.    On Error GoTo ErrorHandle
  3.    Dim sslines As AcadSelectionSet
  4.    Dim J1line As AcadSelectionSet
  5.    Dim Hubline As AcadSelectionSet
  6.    Dim Shroudline As AcadSelectionSet
  7.    
  8.    Dim FilterTypeJ1(0) As Integer
  9.    Dim FilterDataJ1(0) As Variant
  10.    Dim FilterTypeHS(5) As Integer
  11.    Dim FilterDataHS(5) As Variant
  12.       
  13.    FilterTypeJ1(0) = 0
  14.    FilterDataJ1(0) = "Line"
  15.    
  16.    FilterTypeHS(0) = -4
  17.    FilterDataHS(0) = ""
  18.   
  19.    Set J1line = ThisDrawing.SelectionSets.Add("J1")
  20.    Set Hubline = ThisDrawing.SelectionSets.Add("Hub")
  21.    Set Shroudline = ThisDrawing.SelectionSets.Add("Shroud")
  22.    
  23.    AppActivate " 2008"
  24.       
  25.    MsgBox "选择J=1计算站"
  26.    J1line.SelectOnScreen FilterTypeJ1, FilterDataJ1
  27.    J1line.Highlight (False)
  28.    MsgBox "J=1计算站对象数:" & J1line.Count
  29.       
  30.    MsgBox "选择Hub"
  31.    Hubline.SelectOnScreen FilterTypeHS, FilterDataHS
  32.    Hubline.Highlight (False)
  33.    MsgBox "Hub计算站对象数:" & Hubline.Count
  34.          
  35.    MsgBox "选择Shroud"
  36.    Shroudline.SelectOnScreen FilterTypeHS, FilterDataHS
  37.    Shroudline.Highlight (False)
  38.    MsgBox "Shroud计算站对象数:" & Shroudline.Count
  39.    
  40.    
  41.    Dim FilterType1(3) As Integer
  42.    Dim FilterData1(3) As Variant
  43.    
  44.   '以下的过滤代码好像有问题,选择的时候不起作用,选不了蓝色的线,试了好几种情况都不行,把and 去掉也不行,加上也不行!
  45.    FilterType1(0) = -4
  46.    FilterData1(0) = ""
  47.    'FilterType1(3) = 10
  48.    'FilterData1(3) = 868#
  49.    'FilterType1(4) = -4
  50.    'FilterData1(4) = "and>"
  51.    
  52.       
  53.    Set ss2lines = ThisDrawing.SelectionSets.Add("SSets2")
  54.    ss2lines.Select acSelectionSetAll, , , FilterType1, FilterData1
  55.    
  56.    i = ss2lines.Count
  57.    MsgBox "全部对象数:" & i
  58.    
  59.       
  60.    'Dim E As AcadEntity
  61.    'For Each E In ss2lines
  62.    '   MsgBox E.ObjectName
  63.    '   i = 1
  64.    '   If (i = 1) Then
  65.    '    End
  66.    '   End If
  67.    
  68.   ' Next E
  69.    
  70.    i = ss2lines.Count
  71.    MsgBox "所需对象数:" & i
  72.    
  73.    
  74.       
  75.    ss2lines.Delete
  76.    J1line.Delete
  77.    Hubline.Delete
  78.    Shroudline.Delete
  79.    
  80.    
  81.    Exit Sub
  82. ErrorHandle:
  83.    
  84.    ThisDrawing.SelectionSets("J1").Delete
  85.    ThisDrawing.SelectionSets("Hub").Delete
  86.    ThisDrawing.SelectionSets("Shroud").Delete
  87.    ThisDrawing.SelectionSets("SSets2").DeleteEnd Sub
回复

使用道具 举报

1

主题

113

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2010-10-21 10:18:00 | 显示全部楼层

  1. Sub FilterLine()
  2. On Error GoTo ErrorHandle
  3. Dim sslines As AcadSelectionSet
  4. Dim J1line As AcadSelectionSet
  5. Dim Hubline As AcadSelectionSet
  6. Dim Shroudline As AcadSelectionSet Dim FilterTypeJ1(0) As Integer
  7. Dim FilterDataJ1(0) As Variant
  8. Dim FilterTypeHS(5) As Integer
  9. Dim FilterDataHS(5) As Variant FilterTypeJ1(0) = 0
  10. FilterDataJ1(0) = "Line" FilterTypeHS(0) = -4
  11. FilterDataHS(0) = "
回复

使用道具 举报

2

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2010-10-21 13:06:00 | 显示全部楼层
TO wylong :
刚运行了一下,也还是不行呢,在go to o的地方出错了:”标签未定义“。
能说一下我之前那个代码为啥选择不了想要的直线吗?
回复

使用道具 举报

1

主题

113

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2010-10-21 13:14:00 | 显示全部楼层
写错了
On Error goto o改成On Error goto 0
回复

使用道具 举报

2

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2010-10-21 13:39:00 | 显示全部楼层
还是有错误,怎么在
MsgBox "选择Hub"
Hubline.SelectOnScreen FilterTypeHS, FilterDataHS
Hubline.Highlight (False)
MsgBox "Hub计算站对象数:" & Hubline.Count

这个地方出错了呢?出错信息是:“Filter list 在selectonscreen 中无效!”
奇怪啊,我检查了一遍,也没啥改动呀?还请指教啊
回复

使用道具 举报

1

主题

113

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2010-10-21 20:01:00 | 显示全部楼层
你上面的代码我没改动过的,你自己好好检查一下吧
回复

使用道具 举报

2

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2010-10-22 09:14:00 | 显示全部楼层
我更改一下,还是不能选择蓝色的直线,真弄不明白了问题出在哪里呢?还请高手过来指点一二!谢谢了!
回复

使用道具 举报

2

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2010-10-22 09:15:00 | 显示全部楼层
选择蓝色线,过滤器这样设置有问题吗?
   FilterType1(0) = 0
   FilterData1(0) = "Line"
   FilterType1(1) = 62
   FilterData1(1) = 5
回复

使用道具 举报

0

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
3
发表于 2015-11-5 23:40:00 | 显示全部楼层
请问这个问题最后怎么解决了,谢谢,我也遇到这方面的问题,谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-20 05:08 , Processed in 1.248911 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表