十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

[文章]浅谈二维C缸筒AD系统绘图装配消隐的实现(2)

时间:2016-06-21 08:00来源:来自网络 作者:天圆液压 点击:
传统的零件视图块都具有一个外边界,可以没有内边界或者有若干个内孔边界。但在系统的新版本中,由于要实现对于CTEXT实体的正确处理,零件视图块的概念被扩展到具有多个外边界和各自的多个内边界的情况。CTEX

传统的零件视图块都具有一个外边界,可以没有内边界或者有若干个内孔边界。但在系统的新版本中,由于要实现对于CTEXT实体的正确处理,零件视图块的概念被扩展到具有多个外边界和各自的多个内边界的情况。CTEXT是由多个分离的字符或汉字形成的特殊的文字实体,每个字符或汉字都有各自的包围盒形成的边界,因此CTEXT实体的轮廓边界特征是具有多个不相交的外边界,没有内边界。

零件视图块的边界表示应当满足这样一些要求,一是完备表示零件视图块的内、外边界轮廓信息,二是应采用数据冗余度最小的数据结构。系统中采用这样的数据结构表示边界,若干个有序关键点顺次连结成没有自相交的封闭边界,一个零件视图块的各内外边界形成该零件视图块的边界链表。

3.1 边界上关键点的数据结构

typedefstruct

{

char               tag;

double           x,y,r,r2,angle,twist;

}                 TSLoopEdge;

  在这一表示边界关键点的数据结构中,不仅记录了构成边界的各点的坐标,还记录了与该点与下一点构成的曲线边的基本信息,因此这一点的数据结构和下一点的数据结构中的坐标值唯一决定这一段曲线边,下面对该结构各域作具体说明:

tag:记录与下一点共同构成的曲线类型;

为线段、圆弧、椭圆弧三种,当曲线为圆弧、椭圆弧时,还需要其中一空闲数据位记录曲线由该点到下一点是逆时针方向还是顺时针方向,以确定曲线几何表示;

(x,y):记录这一点的坐标值;

r:当曲线为圆弧时记录其半径,当曲线为椭圆弧时记录其半长轴;

r2:当曲线为椭圆弧时记录其半短轴;

angle:当曲线为椭圆或圆弧情况时,记录点对应的参数角;

twist:当曲线为椭圆弧时,记录该椭圆弧的偏转角度。

用上面的边界点的数据表示方法,当前点的坐标、下一点坐标以及当前点数据结构中记录的曲线边的几何参数可以唯一地决定这段曲线边。以椭圆弧为例,首先根据当前点的参数角和椭圆弧的长短轴数据,可以计算出椭圆模型坐标系中当前点的坐标,然后根据椭圆弧偏转角计算出世界坐标系中当前点相对于椭圆心的坐标,这样就可以计算出椭圆心坐标,再根据下一点的坐标值以及标志域中一位记录的表示椭圆弧几何形状的信息,便能唯一确定这段椭圆弧曲线边。

3.2 边界表示数据结构

零件视图块的每一内、外边界采用下面的数据结构进行表示,若干个边界项形成一个链表,完整地表示出零件视图块的边界结构。

  tag:表示消隐时边界对当前扫描实体的是否可能遮挡标志,以及表示边界是外边界还是内边界;

当被扫描图形实体的消隐高度高于边界对应的零件视图块,或者被扫描图形实体在边界的包围盒之外时,该边界对扫描实体无遮挡关系。

(x,y,x,y):表示边界的包围盒数据;

height:边界所在的零件视图块的消隐高度;

PtNum:边界的关键点个数;

边界为1个圆时是特殊情况,此时关键点为圆心,点数为1。见图3。

pts:边界的有序关键点数组首指针;

next:下一边界指针;

图3 线段被有内孔的零件视图快遮挡

4 装配消隐的实现

消隐的实现方法应该保持图形中各个实体的几何数据不变,在消隐后图形可以得到恢复,因此,消隐通过对实体的显示数据以及打印数据进行处理而实现。

由于显示链表中存储的最终实体数据是离散线段或者填充多边形,而零件视图块边界对填充多边形的裁剪目前是通过边界对填充多边形的各边的裁剪来实现的,因此装配消隐就转化为零件视图块内、外边界间的有效区域对线段的遮挡问题,其实质为:对具有一定消隐高度的直线段P1P2和具有一定消隐高度的由外边界和零或多个内孔构成的平面区域,求线段不被遮挡的部分。

假设一装配图具有N条离散直线段,其中li的消隐高度为hi(i为0到N-1),同时有M个零件视图形成的有效平面区域,其中πj的消隐高度为Hj(j为0到M-1),消隐算法的流程描述如下:

在系统的新版本中,CTEXT文字是一种新的文字实体,它具有多个分离的字符或汉字,因此CTEXT实体构成的零件视图块具有多个外边界。具有多个外边界的零件视图快的消隐处理,与通常的具有唯一外边界的零件视图块的处理有一定差别,具有一个外边界的零件视图区域对线段进行裁剪时,裁剪结果是线段在外边界外的部分与线段在各内孔中的部分的并集,而具有多个外边界和各自的若干内孔边界的零件视图区域对线段进行裁剪时,结果是线段逐一被各个外边界内区域裁剪的部分,与原线段在各内孔边界内部的部分的并集,前一部分指被上一个外边界内部区域裁剪的结果作为输入又被下一个外边界内部区域进行裁剪,以此类推。

参考文献:
[1] 吴怀军,孙家广.基于回溯的参考点边界搜索算法[J].计算机研究与发展,1998,35(6):563
[2] 郑国勤,孙家广.二维CAD系统绘图装配消隐实现方法[J].计算机辅助设计与图形学学报,1998,10(6):496
[3] 严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,1987
[4] 孙家广,杨长贵.计算机图形学(新版)[M].北京:清华大学出版社,1995
[5] NichollTM,LeeDT,NichollRA.Anefficientnewalgorithmfor2Dlineclipping[J].ComputerGraphics,1987,21(4):253-262

液压缸缸筒 (责任编辑:admin)
分享按钮
------分隔线----------------------------