明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1157|回复: 5

求清理重复实体对象方法

[复制链接]
发表于 2016-4-20 06:31:12 | 显示全部楼层 |阅读模式
本帖最后由 bbkcylh 于 2016-4-20 20:45 编辑

      现在有一个地形图,面积比较大,几十平方公里,由于作图原因里面存在较多重复的图形数据,需要予以删除。请问用VBA来编程实现,应该怎么来做。主要是怎么判断图形中2个实体对象是重叠的,对象包括:线、文字、块等等。谢谢
       因为图形数据量比较大,主要考虑两点:一是怎么判断重叠,二是效率。

       因为数据量比较大,所以把一个对象分别与其余对象进行比对是不现实的,根本无法忍受。我采用的方法是,首先读取当前对象的边框,然后在这个矩形范围内选择所有实体,并进行比对。这样效率可以明显提高,每个实体对象的比对次数都不会太高。但是难以解决的还是怎么来快速判断是否重叠上,感觉非常麻烦。。。。
发表于 2016-4-20 09:09:40 | 显示全部楼层
现在的判断重复实体,其实都不是看图面重叠的,是比较两个元素的某些属性,比如顶点半径等,如果一样则认为重复,删掉一个。这么做的话,每个元素要跟其余所有元素比一次,所以效率是很低的,而且判断依据相当的不准,比如两根线,一个1-3,一个1-5,从图面上来看,1-3完全在1-5中,是重叠的,但是根据前面算法,顶点不一样,也就不是重叠的了。
楼主最好仔细检查下自己图纸中的重复图形的具体情况,看能不能针对性的找出适合自己的算法。
发表于 2016-4-20 19:29:56 | 显示全部楼层
这程序如果自己编,还是有维度的,效率的重点。通用选择分片区进行对比,效率能高一点。
如果安装有express tool,直接用overkill,高版本cad自带这功能了
 楼主| 发表于 2016-4-20 20:45:58 | 显示全部楼层
mikewolf2k 发表于 2016-4-20 09:09
现在的判断重复实体,其实都不是看图面重叠的,是比较两个元素的某些属性,比如顶点半径等,如果一样则认为 ...

因为数据量比较大,所以把一个对象分别与其余对象进行比对是不现实的,根本无法忍受。我采用的方法是,首先读取当前对象的边框,然后在这个矩形范围内选择所有实体,并进行比对。这样效率可以明显提高,每个实体对象的比对次数都不会太高。但是难以解决的还是怎么来快速判断是否重叠上,感觉非常麻烦。。。。
 楼主| 发表于 2016-4-20 20:46:43 | 显示全部楼层
mikewolf2k 发表于 2016-4-20 09:09
现在的判断重复实体,其实都不是看图面重叠的,是比较两个元素的某些属性,比如顶点半径等,如果一样则认为 ...

因为数据量比较大,所以把一个对象分别与其余对象进行比对是不现实的,根本无法忍受。我采用的方法是,首先读取当前对象的边框,然后在这个矩形范围内选择所有实体,并进行比对。这样效率可以明显提高,每个实体对象的比对次数都不会太高。但是难以解决的还是怎么来快速判断是否重叠上,感觉非常麻烦。。。。
 楼主| 发表于 2016-4-20 20:47:49 | 显示全部楼层
zzyong00 发表于 2016-4-20 19:29
这程序如果自己编,还是有维度的,效率的重点。通用选择分片区进行对比,效率能高一点。
如果安装有expres ...

知道这个工具,也用过,很不错。
但总想挑战下自己,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 01:54 , Processed in 0.155812 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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