欢迎来到天天文库
浏览记录
ID:23980797
大小:52.50 KB
页数:4页
时间:2018-11-12
《autocad数据检查》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、AutoCAD数据检查摘要:本文详细讨论了在AutoCAD中,找出几体实体的重复的方法,通过对不同几何体的分析,利用ObjectARX函数,精确的计算处理重复的矢量几何体,同时运用面向对象的编程技术,以VisualC为编程工具实现。 关键词:重复几何体矢量数据量AutoCAD 大量的数字化矢量数据转换成数据库。而在实际生产作业中发现,重复数据不但占用多余的数据量,浪费空间,而且也不符合现在的数据入库规定。为提高数据库数据质量、减少数据量,将需要更多的数据优化。对数据的压缩也许会广泛地应用,但作为应该应用于具体工作量的删除重复数据的补充
2、,删除重复数据的做法应该应用于平时作业当中。 现实的方法 ①矢量:如果一条线段的端点是有次序之分的,我们把这种线段成为有向线段(directedsegment)。如果有向线段P1P2的起点P1在坐标原点,我们可以把它称为矢量(vector)P2。 ②可能会有重复,判断是否相交。我们分两步确定两条线段是否相交: (1)快速排斥 设以线段P1P2为对角线的矩形为R,设以线段Q1Q2为对角线的矩形为T,如果R和T不相交,显然两线段不会相交。 (2)跨立 如果两线段相交,则两线段必然相互跨立对方。若P1P2跨立Q1Q2,则矢量(P1-Q
3、1)和(P2-Q1)位于矢量(Q2-Q1)的两侧,即(P1-Q1)×(Q2-Q1)*(P2-Q1)×(Q2-Q1)0。当(P1-Q1)×(Q2-Q1)=0时,说明(P1-Q1)和(Q2-Q1)共线,但是因为已经通过快速排斥试验,所以P1一定在线段Q1Q2上;同理,(Q2-Q1)×(P2-Q1)=0说明P2一定在线段Q1Q2上。所以判断P1P2跨立Q1Q2的依据是:(P1-Q1)×(Q2-Q1)*(Q2-Q1)×(P2-Q1)>=0。同理判断Q1Q2跨立P1P2的依据是:(Q1-P1)×(P2-P1)*(P2-P1)×(Q2-P1)>=0。具体
4、情况如下图所示: 在AutoCAD环境下我们还要考虑到几何体的层次、线型、颜色等软件定义的一些实体属性。具体见下表列出AutoCAD中常用的实体属性: ObjectARX函数 AcDbEntity类,用到的类成员说明: ①virtualAcad::ErrorStatusgetPlane(AcGePlane&unnamed,AcDb::Planarity&unnamed)const; AcDbEntity::getPlan函数是计算实体与实体之间的投影参数,在ModeSpace中实体与实体间可能会不在同一投影内,调用AcDbEntit
5、y类中的getPlane函数求得投影的参数值。 ②virtualAcad::ErrorStatusintersectarker=0,intotherGsMarker=0 )const; AcDbEntity::intersectExtents(AcDbExtents&extents)const; UnimplementedattheAcDbEntitylevel,thismethodisintendedtobeoverriddeninderivedclasses。实体的外矩形框。 AcDbCurve类,用到的类成员说明: ①vir
6、tualAcad::ErrorStatusgetParamAtPoint(constAcGePoint3d&unnamed,double&unnamed)const; Thisfunctiondeterminestheparameterofthecurveatpointandreturnstheparameterinparam. 曲线上的点数numVerts 程序实现 采用向对象的编程技术,以VisualC为编程工具,对矢量的数据文件进行处理,有效的实现了在AutoCAD环境重复的几何体过滤,程序的部分流程如下图。 结束语 通过实
7、践证明,有效的删除和过滤出重复的几何实体,对矢量数据进行优化,减少数据数量,减少垃圾数据,从而能得到更优质的数据,减少对数据库的的负载量,节省存储资源。重复数据消除技术的出现从某种意意上讲也在很大程度上缓解了一系列的问题,解决了这个问题也得到了越来越广泛的认可。
此文档下载收益归作者所有