明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3283|回复: 3

[讨论]SelectAtPoint方法是鸡肋,仅能选择过一点的一个对象!

[复制链接]
发表于 2005-5-25 11:18:00 | 显示全部楼层 |阅读模式
下面是帮助系统中的原文: Selects an object passing through a given point and places it into a selection set. 在实用中,不如用下面的函数来代替: ' 选择通过某点的实体
Public Sub SelectAtPoint(ByRef SSet As AcadSelectionSet, ByVal pt As Variant)
' 构造一个以pt为中心的小矩形作为选择范围
Dim pt1 As Variant, pt2 As Variant
Dim objUtility As Object
Set objUtility = ThisDrawing.Utility ' 必须使用后期绑定
objUtility.CreateTypedArray pt1, vbDouble, pt(0) - 0.01, pt(1) - 0.01, pt(2)
objUtility.CreateTypedArray pt2, vbDouble, pt(0) + 0.01, pt(1) + 0.01, pt(2)

SSet.Select acSelectionSetCrossing, pt1, pt2
MsgBox SSet.count
End Sub
发表于 2005-5-25 12:54:00 | 显示全部楼层
这个问题三年前已经发现。
解决方法很简单,并不需要构造小矩形,只需要把点做为两个点的参数。
SSet.Select acSelectionSetCrossing, pt , pt
发表于 2005-5-26 10:05:00 | 显示全部楼层
请问,会不会由于系统的舍入误差导致选择不准?


比如有条线 过上述该点的。


但是该点坐标最末一位和直线上相同点的最末一位 存在微小差异。


导致选择不准?


这种情况下小矩形可能更加准确些?


我是猜测。不知道有没有这种可能?
发表于 2005-5-27 21:54:00 | 显示全部楼层
如果有误差,单选时也有误差。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 14:39 , Processed in 0.185824 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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