找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2322|回复: 9

[研讨] 用 XDRXAPI 优化消重实体

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-6-24 21:51:37 | 显示全部楼层 |阅读模式

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

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

×
这是一个老话题,论坛上也有A/Vlisp程序,这些程序大都用的是 elist 表比较,现在的问题是:用 xdrx_api 的哪些函数可以优化这些消重程序,提高效率?

关于消重程序的链接
http://www.xdcad.net/forum/forum.php?mod=viewthread&tid=580869
http://www.xdcad.net/forum/forum.php?mod=redirect&goto=findpost&ptid=667628&pid=3448893
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-24 22:12:37 | 显示全部楼层
我想,应该有个 xdrx_entity_box  xdrx_curve_box  xdrx_getsamplept ...

点评

之所以提出这个问题,是受这个函数启发 xdrx_entity_getstretchpoint,这个函数功能是得到实体的拉伸点(夹点),换个角度应用,如果实体相同,这些夹点也相同不就是完全重复了吗! 而且这个函数返回的是夹点表,  详情 回复 发表于 2013-6-24 22:51
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-24 22:20:00 | 显示全部楼层
关键是重复的实体怎么定义,是同一个类型的实体吗? 比如都是园重叠在一起,填充重叠在一起? 还是只要有重叠不管什么实体都算? 如果这样,那哪个是有用的?

点评

这个重复分几种情况: 1 实体类型相同,外观完全重合,仅属性不同(如颜色、图层、线形),当然个别专业故意重叠用层表示不同含义除外(如规划用图层表示不同层数的轮廓线) 2 实体类型相同或不同,为包含关系,这  详情 回复 发表于 2013-6-24 22:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-24 22:39:38 | 显示全部楼层
newer 发表于 2013-6-24 22:20
关键是重复的实体怎么定义,是同一个类型的实体吗? 比如都是园重叠在一起,填充重叠在一起? 还是只要有重 ...

这个重复分几种情况:
1 实体类型相同,外观完全重合,仅属性不同(如颜色、图层、线形),当然个别专业故意重叠用层表示不同含义除外(如规划用图层表示不同层数的轮廓线)
2 实体类型相同或不同,为包含关系,这里可以只讨论简单实体,如 ARC on Circle 上,ARC on  ARC Line on line,Ellipse on Ellipse ,Solid  in Solid,Pline 和 Spline 比较复杂,暂时不考虑
3 部分重叠,主要指 Arc Line Pline的子段 Spline Ellipse Solid
4 Hatch
5 其他。。。

这里先说一个最简单的,完全重合的实体,不考虑属性(对不想消重的实体可以通过Layer等工具关闭后,程序就可以简单化),都写成函数形式,这样以后就可以把其他情况扩展进来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-6-24 22:51:41 | 显示全部楼层
newer 发表于 2013-6-24 22:12
我想,应该有个 xdrx_entity_box  xdrx_curve_box  xdrx_getsamplept ...

之所以提出这个问题,是受这个函数启发 xdrx_entity_getstretchpoint,这个函数功能是得到实体的拉伸点(夹点),换个角度应用,如果实体相同,这些夹点也相同不就是完全重复了吗!

而且这个函数返回的是夹点表,表的长度大大缩短了,用 Equla 比较短表时间也会大大缩短!重要的是这个可以解决 DIM 完全重合了

关于 xdrx_entity_getstretchpoint 自由伸缩的例子
http://www.xdcad.net/forum/forum.php?mod=viewthread&tid=17554
http://www.xdcad.net/forum/forum.php?mod=viewthread&tid=16600&page=1#pid84637

点评

哦,受启发了。 不过这个只能判断完全重合吧,如果部分重合呢?要怎么做?  详情 回复 发表于 2013-6-25 00:13
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-25 00:13:42 | 显示全部楼层
eachy 发表于 2013-6-24 22:51
之所以提出这个问题,是受这个函数启发 xdrx_entity_getstretchpoint,这个函数功能是得到实体的拉伸点( ...

哦,受启发了。

不过这个只能判断完全重合吧,如果部分重合呢?要怎么做?

点评

这个 Stretchpoint 可以用来解决一部分实体,不是全部都用这一个函数; xdrx_entity_getstretchpoint方便之处是对一些复杂实体一次把特征点都取出来(Pline Solid Spline Ellipse Dimension arc )减少了中间过程  详情 回复 发表于 2013-6-25 00:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-6-25 00:28:15 | 显示全部楼层
newer 发表于 2013-6-25 00:13
哦,受启发了。

不过这个只能判断完全重合吧,如果部分重合呢?要怎么做?

这个 Stretchpoint 可以用来解决一部分实体,不是全部都用这一个函数;
xdrx_entity_getstretchpoint方便之处是对一些复杂实体一次把特征点都取出来(Pline Solid Spline Ellipse Dimension arc )减少了中间过程

部分重合就要分类型、分情况写程序了:

1 Line ,Stretchpoint 就是(起点 中点) 用矢量的概念取判断会少一些判断

2 Arc on Circle 最简单 =〉圆心同,半径等

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

使用道具 举报

发表于 2013-6-25 06:18:54 | 显示全部楼层
这个问题非常值得研究,{:soso_e112:},只是能力太薄呀

点评

有兴趣可以一起练练手,分段写函数,最后综合一个程序,全当提高了  详情 回复 发表于 2013-6-25 07:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-6-25 07:41:40 | 显示全部楼层
GTJ116600 发表于 2013-6-25 06:18
这个问题非常值得研究,,只是能力太薄呀

有兴趣可以一起练练手,分段写函数,最后综合一个程序,全当提高了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-27 14:50:33 | 显示全部楼层
真要做好难度有点大,底板那层说得对,这种程序最好要有操作选项,删除哪些重复内容,还是一股脑全删除?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-20 13:20 , Processed in 0.471440 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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