乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 3

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

[复制链接]

34

主题

372

帖子

7

银币

中流砥柱

Rank: 25

铜币
508
发表于 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
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2005-5-25 12:54:00 | 显示全部楼层
这个问题三年前已经发现。
解决方法很简单,并不需要构造小矩形,只需要把点做为两个点的参数。
SSet.Select acSelectionSetCrossing, pt , pt
回复

使用道具 举报

23

主题

76

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
168
发表于 2005-5-26 10:05:00 | 显示全部楼层
请问,会不会由于系统的舍入误差导致选择不准?
比如有条线 过上述该点的。
但是该点坐标最末一位和直线上相同点的最末一位 存在微小差异。
导致选择不准?
这种情况下小矩形可能更加准确些?
我是猜测。不知道有没有这种可能?
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2005-5-27 21:54:00 | 显示全部楼层
如果有误差,单选时也有误差。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 13:53 , Processed in 0.857981 second(s), 61 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表