[讨论]SelectAtPoint方法是鸡肋,仅能选择过一点的一个对象!
下面是帮助系统中的原文:Selects an object passing through a given point and places it into a selection set.
在实用中,不如用下面的函数来代替:
' 选择通过某点的实体<BR>Public Sub SelectAtPoint(ByRef SSet As AcadSelectionSet, ByVal pt As Variant)<BR> ' 构造一个以pt为中心的小矩形作为选择范围<BR> Dim pt1 As Variant, pt2 As Variant<BR> Dim objUtility As Object<BR> Set objUtility = ThisDrawing.Utility ' 必须使用后期绑定<BR> objUtility.CreateTypedArray pt1, vbDouble, pt(0) - 0.01, pt(1) - 0.01, pt(2)<BR> objUtility.CreateTypedArray pt2, vbDouble, pt(0) + 0.01, pt(1) + 0.01, pt(2)<BR> <BR> SSet.Select acSelectionSetCrossing, pt1, pt2<BR> MsgBox SSet.count<BR>End Sub 这个问题三年前已经发现。<BR>解决方法很简单,并不需要构造小矩形,只需要把点做为两个点的参数。<BR>SSet.Select acSelectionSetCrossing, pt , pt 请问,会不会由于系统的舍入误差导致选择不准?
比如有条线 过上述该点的。
但是该点坐标最末一位和直线上相同点的最末一位 存在微小差异。
导致选择不准?
这种情况下小矩形可能更加准确些?
我是猜测。不知道有没有这种可能? 如果有误差,单选时也有误差。
页:
[1]