找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1027|回复: 2

[求助]:'请教,做重复点用acSelectionSetCrossing选择,有时候旁边的点也变红!

[复制链接]
发表于 2006-4-14 21:23:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Sub delchongfupoint()
Dim entity As AcadPoint
Dim xyz As Variant
Dim i As Double
Dim j As Double
Dim counter As Integer
Dim ftype(0 To 1) As Integer
Dim fdata(0 To 1) As Variant
Dim sset As AcadSelectionSet
'初始颜色是acwhite;扫描过的颜色是acblue;重合点的颜色是acred

If ThisDrawing.ModelSpace.Count <> 0 Then
  i = ThisDrawing.ModelSpace.Count

'先循环一下,初始化设置所有的颜色为acwhite,如果已知颜色的话是不需要做的

  For j = 0 To i - 1
      Set entity = ThisDrawing.ModelSpace.Item(j)
      entity.Color = acWhite
  Next j
  For j = 0 To i - 1
      Set entity = ThisDrawing.ModelSpace.Item(j)
      xyz = entity.Coordinates  '取得点的坐标

'判断图形中是否已经存在同名的选择集
  On Error Resume Next
     If Not IsNull(ThisDrawing.SelectionSets.Item("sset")) Then
        Set sset = ThisDrawing.SelectionSets.Item("sset")
        sset.Delete    '及时删除不用的选择集非常重要
     End If

'创建新选择集
     Set sset = ThisDrawing.SelectionSets.Add("sset")
     If Err Then Set sset = ThisDrawing.SelectionSets.Add("sset")
        sset.Clear

'指定过滤机制
  ftype(0) = 0: fdata(0) = "point"
  ftype(1) = 8: fdata(1) = "*"       '图层名

'使用crossing的选择模式
  sset.Select acSelectionSetCrossing, xyz, xyz, ftype, fdata   '这里我只是把同构xyz坐标的点给选出来,但是有时候图放的很小时,会把xyz旁边的点选中,但是如果把图放大后,这个在xyz旁边的点就不会被选中,不知道是什么原因,请指教?

     Dim obj As AcadPoint
     For Each obj In sset
      If obj.Color = acBlue Then
         obj.Color = acRed
      End If
      If obj.Color = acWhite Then
         obj.Color = acBlue
      End If
     Next
  Next j
MsgBox "描点结束!"
Else
MsgBox "在模型空间中没有对象存在。"
End If
End Sub

'请教斑竹,我用acSelectionSetCrossing时,不是只选择这个xyz上的点吗,但是程序运行,有的时候它旁边的点也变红,不知道是怎么回事,请指教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-14 23:16:28 | 显示全部楼层
可以用dxf组码10做过滤条件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-15 09:48:18 | 显示全部楼层
怎么用10作为过滤手段呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 17:52 , Processed in 0.440036 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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