明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1140|回复: 2

[求助]新手急需解决一个选择集的问题

[复制链接]
发表于 2008-11-24 19:50:00 | 显示全部楼层 |阅读模式

在一个cad图上,有已经画好的数据表格(多个),下面用程序举个简单的例子

Sub test()
  Dim point1(0 To 2) As Double
  Dim point2(0 To 2) As Double
  Dim point3(0 To 2) As Double
  Dim point4(0 To 2) As Double'''''''''''''''定义4个假设已知的点

  Dim sel1 As AcadSelectionSet
  Set sel1 = ThisDrawing.SelectionSets.Add("s1")
  point1(0) = 1488
  point1(1) = 15
  point1(2) = 0
  point2(0) = 1478
  point2(1) = 15
  point2(2) = 0'''''按图上线对象的位置来说这两点组成的选择区域至少能横跨一个线对象


  point3(0) = 408
  point3(1) = 918
  point3(2) = 0
  point4(0) = 380
  point4(1) = 918
  point4(2) = 0''''''按图上线对象的位置来说这两点组成的选择区域至少能横跨一个线对象
  'sel1.Select acSelectionSetCrossing, point1, point2''''与这两点构成的直线区域相交的对象应该都会存如选择集中
  MsgBox ">>>>>>>>>>" + CStr(sel1.Count)'''按我理解来看选择集中的对象数至少应该是1
  sel1.Delete
End Sub

问题是:通过测试sel1.Select acSelectionSetCrossing, point1, point2我发现:结果能正常显示出1个对象

但我又试sel1.Select acSelectionSetCrossing, point3, point4却发现:结果显示出0个对象(实际上这两组点肯定横跨至少一个线对象)

之后我不经意间回到cad图中在point3, point4这组点附近用鼠标点了一下,后又试发现上述情况颠倒了:

sel1.Select acSelectionSetCrossing, point3, point4  结果能正常显示出1个对象

sel1.Select acSelectionSetCrossing, point1, point2  却显示出0个对象

而再次回到cad图中又在point1, point2这组点附近点了一下,发现显示对象数又颠倒了(回到第一种情况)

这是为什么呢?我想要得结果是两种情况都能同时正常显示出至少1个对象(即都能正常存入选择集中)该怎么解决?

发表于 2008-11-24 21:10:00 | 显示全部楼层

在窗选时,只选你的显示屏显示的,看不到的,他也选不到的。不行就zoomall下再选了

 楼主| 发表于 2008-11-24 21:36:00 | 显示全部楼层

谢谢指点!这下明白了,卡了我半天了

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

本版积分规则

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

GMT+8, 2024-11-26 06:31 , Processed in 0.155982 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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