yjsyx333 发表于 2008-11-24 19:50:00

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

<p>在一个cad图上,有已经画好的数据表格(多个),下面用程序举个简单的例子</p><p>Sub test()<br/>&nbsp; Dim point1(0 To 2) As Double<br/>&nbsp; Dim point2(0 To 2) As Double<br/>&nbsp; Dim point3(0 To 2) As Double<br/>&nbsp; Dim point4(0 To 2) As Double'''''''''''''''定义4个假设已知的点</p><p>&nbsp; Dim sel1 As AcadSelectionSet<br/>&nbsp; Set sel1 = ThisDrawing.SelectionSets.Add("s1")<br/>&nbsp;&nbsp;point1(0) = 1488<br/>&nbsp; point1(1) = 15 <br/>&nbsp; point1(2) = 0<br/>&nbsp; point2(0) = 1478<br/>&nbsp; point2(1) =&nbsp;15<br/>&nbsp; point2(2) = 0'''''按图上线对象的位置来说这两点组成的选择区域至少能横跨一个线对象</p><p><br/>&nbsp; point3(0) = 408<br/>&nbsp; point3(1) = 918<br/>&nbsp; point3(2) = 0<br/>&nbsp; point4(0) = 380<br/>&nbsp; point4(1) = 918<br/>&nbsp; point4(2) = 0''''''按图上线对象的位置来说这两点组成的选择区域至少能横跨一个线对象<br/>&nbsp; 'sel1.Select acSelectionSetCrossing, point1, point2''''与这两点构成的直线区域相交的对象应该都会存如选择集中<br/>&nbsp; MsgBox "&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;" + CStr(sel1.Count)'''按我理解来看选择集中的对象数至少应该是1<br/>&nbsp; sel1.Delete<br/>End Sub</p><p>问题是:通过测试sel1.Select acSelectionSetCrossing, point1, point2我发现:结果能正常显示出1个对象</p><p>但我又试sel1.Select acSelectionSetCrossing, point3, point4却发现:结果显示出0个对象(实际上这两组点肯定横跨至少一个线对象)</p><p>之后我不经意间回到cad图中在point3, point4这组点附近用鼠标点了一下,后又试发现上述情况颠倒了:</p><p>sel1.Select acSelectionSetCrossing, point3, point4&nbsp; 结果能正常显示出1个对象</p><p>sel1.Select acSelectionSetCrossing, point1, point2&nbsp; 却显示出0个对象</p><p>而再次回到cad图中又在point1, point2这组点附近点了一下,发现显示对象数又颠倒了(回到第一种情况)</p><p>这是为什么呢?我想要得结果是两种情况都能同时正常显示出至少1个对象(即都能正常存入选择集中)该怎么解决?</p><p></p>

fjfhgdwfn 发表于 2008-11-24 21:10:00

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

yjsyx333 发表于 2008-11-24 21:36:00

<p>谢谢指点!这下明白了,卡了我半天了</p>
页: [1]
查看完整版本: [求助]新手急需解决一个选择集的问题