找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1047|回复: 9

[ARX函数]:怎样通过选择一个点找到距离最近的物体

[复制链接]
发表于 2004-11-14 15:49:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
请教有那些办法?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-25 11:19:31 | 显示全部楼层
我也碰到过这样的问题,我的解决办法:通过此点,水平和垂直分别画条直线,长度自定,判断与哪些实体相交,如果只有一个,就得了。如果多于一个,就判断距离。当然,这要求此点附近的试题都是线状的,而且长度较长,不适用于点等小实体。仅供参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-25 15:25:20 | 显示全部楼层
一般工作时,CAD屏幕上都有物体,这样可以根据你定的点,求出以点为中心的矩形坐标,根据这些坐标,根据这些坐标使用选择函进行选择,看能不能选到物体,如没有,范围扩大,再选,直到能选到,再根据选到的物体坐标与定的点坐标距离,得出最近物体
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-25 17:11:43 | 显示全部楼层
谢谢2位
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-26 18:29:17 | 显示全部楼层
用这个可以实现:
AcGeCurve2d *pCurve1,*pCurve2;

dis=pCurve1->distanceTo(*pCurve2);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-28 22:24:29 | 显示全部楼层
三楼所言极是!
是个好办法,用选择集选择一下
如果选到实体,不止一个的话
用5楼的方法,dis=pCurve1->distanceTo(*pCurve2);
如果能求实体之间的最短距离
就是一个绝妙的算法!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-15 11:18:12 | 显示全部楼层
我现在也遇到了这个问题,就用上面的办法吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-18 18:03:06 | 显示全部楼层
是不是用圆形好一些,楼上的大侠能不能把解决的函数贴出来让大家参考一下,谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-18 23:35:53 | 显示全部楼层
现在看来以上方法均存在理论上的缺陷,理论上就不严格。
二楼的方法:那每次扩大矩形的量如何来确定呢?
我觉得有两个方案可以参考:
1。当图纸较小时直接遍历整个模型空间;
2。当图纸很大时,可以通过系统变量得到整个图纸的包容框的坐标,
   然后将这个包容框缩小1/2建立选择集,看是否能选择到实体,能则再将这个当前包容框
   缩小1/2变为1/4去建立选择集,否则将这个当前包容框反向扩大3/2倍去建立选择集。依次
   类推,用一个量去记录每次包容框的变化量,当这个量小到一定程度后就可以对选择集进行
   分析了。大家不要担心这个循环会进行很多次,其实要不了几次这个控制量就会变的很小
   的,一般是不会超过10次的。以前我用VBA做派料软件时要使一个图块与另一个图块紧贴在
   一起但又不允许相交就是采用这个方法做的。速度基本没什么问题。如果用ARX那更不成问
   题。至于那个控制量我在这里还一下子说不清楚,仅以此作为心得体验供大家参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-19 10:06:24 | 显示全部楼层
能不能这样呢?:新建一个AcGePoint3dArray派生类储存所有实体或图块的顶点坐标,用包围框程序能得出来,然后与所选点的距离逐一判断,这样能粗略的得出最近的物体。
函数正在思考中,写出来以后再与大家分享。高手们也请不吝赐教!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 16:17 , Processed in 0.487456 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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