找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2081|回复: 6

[讨论]:[选择一条直线上的所有实体

[复制链接]
发表于 2004-3-30 16:49:54 | 显示全部楼层 |阅读模式

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

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

×
为什么AutoMap中在选择一条直线打断时即使线不在屏幕上也可以选中与这条直相交的所有实体.谁知道它是怎么做的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-3-30 23:25:55 | 显示全部楼层

Re: [讨论]:[选择一条直线上的所有实体

最初由 Gxiaofeng 发布
[B]为什么AutoMap中在选择一条直线打断时即使线不在屏幕上也可以选中与这条直相交的所有实体.谁知道它是怎么做的? [/B]


你能确定吗?如果能,那么就不是用ssget 基于象素的方法构建选择集。

但是,你可以用遍历数据库的实体的方法,用AcDbLine::boundingBoxIntersectWith (.....)求直线和所有实体的外框交点,有交点的,加入到AcDbObjectIdArray 数组里面就可以找到了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-1 20:48:57 | 显示全部楼层

Re: Re: [讨论]:[选择一条直线上的所有实体

最初由 XDSoft 发布
[B]

你能确定吗?如果能,那么就不是用ssget 基... [/B]



当然可以确定!!因为我经常用AutoMap来裁图....是偶然才发现不在屏幕上也可以打断....如果不信大家可试试。


如果要用boundingBoxIntersectWith来和整个数据库中的实体判断和有没有交点那也太慢了!!!

要是图内有几十万个实体就不知道要算到什么时候去了????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-4-2 11:34:39 | 显示全部楼层

Re: Re: Re: [讨论]:[选择一条直线上的所有实体

最初由 Gxiaofeng 发布
[B]


当然可以确定!!因为我经常用AutoMap来裁图....是偶然才发现不在屏幕上也可以打断....如果不信大家可试... [/B]



1、一点也不慢,ARX遍历一个几十万实体的数据库,也就0.0几秒的时间,推荐你求外框交点而不是用 AcDbEntity::intersectWith(..),就是求外框交点要比AcDbEntity::intersectWith(..)快。现在的机器主频都上G赫兹,你算算几十万个实体大概的时钟周期,换算成时间,很短的。

2、以前发过帖子讨论过ssget构建选择集使用X参数获得数据库所有实体和用ARX直接接遍历数据库得到,ARX遍历的方法甚至比SSGET要快。

3、屏幕外的,一定是通过遍历数据库得到,没有其他方法。屏幕内的,ACAD使用内部的“显示表”结构,基于象素的选择实体,就是ssget 除去X参数外的构建选择集方法,要比用ARX遍历数据库要快,因为使用“显示表”缓存CACHE就是为了加快选择的。

4、你说的MAP没有用过,想问下,如果让用户选择实体操作,用户是怎么选择到“屏幕外”的东西打断的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-3 00:17:39 | 显示全部楼层

Re: Re: Re: Re: [讨论]:[选择一条直线上的所有实体

最初由 XDSoft 发布
[B]


1、一点也不慢,ARX遍历一个几十万实?.. [/B]



1.Map的打断实体有两个功能一个是手选别一个是根据过滤.所以才偶然发现屏幕外的也可以打断.

2.我以前做过一个自动打断的程序,是用SSGET选择线上的实体,但问题就在与这个线相交的线中有的有线型
  而线型的虚线部分正好在这个线上所以就没办法选上,这才想到用遍历数据库方法来选
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-11-3 10:54:50 | 显示全部楼层
有点没看懂,很深奥。但是几十万实体的时间真的只有0.几秒吗?我用REGEN命令的时候经常等半天。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 23:13 , Processed in 0.196097 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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