huazhijia 发表于 2006-4-12 11:58:00

请教斑竹,如何查找重复点!看看我的程序,数量大就比较慢!(图中的点数目比较多)

<P>&nbsp;aSub mody()<BR>Dim entity As AcadPoint<BR>Dim obj As AcadPoint<BR>Dim xx As Variant<BR>Dim yy As Variant<BR>Dim i As Integer<BR>Dim k As Integer<BR>Dim j As Integer<BR>Dim l As Integer<BR>Dim x As Double<BR>Dim y As Double<BR>Dim a As Double<BR>Dim b As Double<BR>Dim m As Single<BR>m = 0<BR>If ThisDrawing.ModelSpace.Count &lt;&gt; 0 Then<BR>&nbsp; i = ThisDrawing.ModelSpace.Count&nbsp;&nbsp;&nbsp; '图中CAD中的点的总数<BR>&nbsp; k = ThisDrawing.ModelSpace.Count&nbsp;&nbsp;&nbsp; '图中CAD中的点的总数<BR>&nbsp; For j = 0 To i - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set entity = ThisDrawing.ModelSpace.Item(j)&nbsp;&nbsp; '选择一个点<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xx = entity.Coordinates&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '将点的坐标给xx<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x = xx(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '为横坐标值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y = xx(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '为纵坐标值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For l = k - 1 To j + 1 Step -1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set obj = ThisDrawing.ModelSpace.Item(l)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yy = obj.Coordinates<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = yy(0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = yy(1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'MsgBox a &amp; "=" &amp; x<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If a = x And b = y Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entity.color = acBlue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '点变色<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj.color = acBlue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '点变色<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m = m + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next l<BR>&nbsp;&nbsp; Next j<BR>&nbsp;&nbsp; MsgBox m<BR>Else<BR>MsgBox "在模型空间中没有对象存在。"<BR>End If<BR>End Sub</P>
<P>'请斑竹看看,还有没有其他好的方法来找出图中大量点的程序!</P>

mccad 发表于 2006-4-12 12:30:00

<P>既然是点坐标,就可以取出来进行排序。排序后就可以看出哪些是重复的了。</P>
页: [1]
查看完整版本: 请教斑竹,如何查找重复点!看看我的程序,数量大就比较慢!(图中的点数目比较多)