APP下载

DXF数据源在数控系统路径规划前的优化

2011-10-18尚仕波

制造技术与机床 2011年9期
关键词:图元重合交叉

尚仕波 袁 华 朱 震

(天地科技股份有限公司,北京100013)

DXF(Drawing Exchange File)文件是AutoCAD软件系统用于与其他CAD/CAM系统及应用程序间的图形信息交换文件,其结构既严密又易于读取,已经成为了一种标准数据接口,在数控加工领域得到了广泛的应用[1]。许多学者就DXF文件的基本结构、常用DXF组码的意义及DXF文件中图元信息的提取算法作了大量的研究,采用在所有段中检索与目标组码相匹配组值的方法得到需要的图元数据,解决了DXF文件在不同CAD应用程序间的数据交换问题[2]。但是,DXF文件不同的段之间可能包含相同的组码,在所有段中检索将会得到多余的图元信息。另外在绘图过程中,绘制人员由于不良的绘图习惯或其他原因,图形中可能产生图元重复或图元交叉的情况,这些错误在图形显示和打印时难被发现,在路径规划时甚至造成无法求解,而这方面的研究还不多见[3-4]。本文就DXF文件中图元的提取及DXF图形的优化等问题进行了研究,完善DXF图元的提取算法并提出了对DXF数据源在数控加工前进行优化的设想。

1 DXF文件图元提取

1.1 DXF文件的结构

DXF文件的最小组成单位是组,一个DXF文件由多个组组成,每个组占两行。第一行为组码(GROUP VALUE),是一个整数;第二行为组值(GROUP VALUE),数据类型取决于组码的数值。DXF文件分成很多段(SECTION),每个段由多个组组成。每个段均由组值为字符串SECTION的0组开始,接着是组码为2组值为段名的2组,最后以组值为ENDSEC的0组表示该段结束。所有段结束后,以组值为EOF(End Of File)的0组结束。DXF文件一般由以下6段组成:HEADER(标题段)、CLASSES(类段)、TABLES(表段)、BLOCKS(块段)、ENTITIES(实体段)、OBJECTS(对象段)。当将预览图像与DXF文件一同保存时,文件还存在 THUMBNAILIMAGE(图片预览段)[5]。

CAD软件系统为了便于用户管理图形和表达机械零件的结构,增加了线型及图层等功能。绘制的图形除了确定图元所需的坐标信息外,还包括图元的图层、线型及线宽等信息。而实际加工时,只需要确定图元的坐标信息,这些数据都保存在ENTITIES(实体段)中。当图形输出DXF格式时,通常将BLOCK(块)打散变成独立的图元,然后对整个图形输出为DXF格式[6]。

1.2 提取算法

为了提高读取效率,算法只对ENTITIES段进行读取。从组值为ENTITIES的行开始直到读取到组值为OBJEC的行,对ENTITIES段中组码为0的组进行检测并提取图元信息。其中包括线段、圆弧及矩形等CAD系统的常用命令,读取流程如图1所示。

2 DXF文件的优化过程

2.1 图形优化的意义

在一个计算机图形系统中,基本几何元素有点、线段和圆(圆周和圆弧段)。在图形的相互关系处理中,点实际上不独立构成图形的某一部分(只是作为一种标识),因此,基本几何元素只是线段和圆(弧)两种,用这两种基本几何元素描述所有图形。在AutoCAD等绘图软件中,虽然绘制图形的命令很多,但绘制的图形均可以采用线段和圆弧来描述。在数控加工系统中,待加工的图形可以描述为包含1个外环、零个或多个内环的连通域,不存在孤立的图元[7]。

但在DXF数据源的绘制过程中,由于图层、线型及线宽的应用,图形中粗线覆盖细线或实线覆盖虚线的错误非常常见,绘图者很难在图形绘制的过程中发现图元间的重合,这些重合的图元在显示屏或打印出的图纸中也发现不出来,而这些重合的图元在进行数控加工的路径规划时变成孤立的图元,不满足加工的要求。另外,由于CAD系统的精度设置及绘图过程中自动捕捉功能的应用,在两个图元的连接点处会出现交叉的情况,细微的交叉在图形的绘制及输出过程中也难发现,图形的交叉部分将会造成加工过程中的过切现象。另外,DXF文件中的图元按照图形的绘制顺序进行存储,在显示屏上和打印的图纸中并不需要考虑图元的顺序,但在数控加工中,加工路径为一条连续的有向线段。然而图形的绘制者并未考虑到加工的需求,因此输出的DXF文件在路径规划前需要进行有序化及单向化。

2.2 图元的交叉和重合

对于平面图形的基本图元线段和圆弧两种,由于圆弧图元的判定问题可以通过线段插补或按照弧所对应的弦考虑,因此本文只讨论线段图元的优化问题。

2.2.1 图元的描述

图形中的线段图元按照其所在的直线进行判断,具有相交、平行和重合3种关系。设直线通过点P1(x1,y1)和P2(x2,y2),则直线方程可以表示为

式(1)为直线的两点式方程。令A=(y2-y1)、B=(x1-x2)、C=-(A·x1+B·y1),将式(1)转换为直线的标准方程,即:

其中直线的法向量n=(A,B)。

2.2.2 线段关系的判断

根据线段所在的直线方程,首先通过两线段所在直线法向量的叉积和常量C判断两条直线间的关系重合、平行或相交,再对相交直线的进一步判断线段是否相交[8]。由于图形在绘制过程中一般不会出现多余的平行线段错误,且出错后也便于修改,所以本文不讨论平行线错误的情形,只讨论环上相邻边的交叉错误和重合错误。假设环上相邻两边的4个顶点P1(x1,y1)、P2(x2,y2)、P3(x3,y3)、P4(x4,y4)构成线段P1P2、P3P4,判断算法的伪代码如下:

(1)线段所在的直线相交

当|n1×n2|≠0时,线段所在的直线相交,但P1P2、P3P4是否交叉需要作进一步的判断。首先采用线段的包络矩形进行快速排斥试验。如图2a所示,当线段的包络矩形没有重叠区域时,线段没有交点;当线段的包络矩形有重叠区域时,线段是否交叉需要进一步判断,如图2b、c所示。

判断算法的伪代码如下:

如图3所示,当线段相交时二者互相跨立对方,线段的两个端点分别位于另一条线段两侧,可以构造新的向量来确定线段之间的关系。首先判断线段P3P4是否跨立P1P2:在图3a中,P1P3和P1P4在P1P2的同侧,(P1P2×P1P3)·(P1P2×P1P4)>0;在图3b中,(P1P2×P1P3)·(P1P2×P1P4)<0,线段P3P4跨立P1P2;同理判断P1P2是否跨立P3P4。当P1P2与P3P4互相跨立时,判断出图形中存在线段交叉。

判断算法的伪代码如下:

(2)线段所在的直线重合

当|n1×n2|=0且C1=C2,线段所在的直线重合,可通过包容性试验进一步检查线段是否重合,即通过比较x方向或y方向的坐标值进行判断,如图4所示。

判断算法的伪代码如下:

2.3 图形的前处理

图元错误消除后,在路径规划前需要对单个图元进行有序化成环处理。首先对无序图元进行分别成环,采用比较图元的顶点坐标的方法把孤立的图元连接成环,然后按环的正方向进行图元的排序。当图形中所有的环都识别后,通过包络矩形法识别出内环和外环,从而得到由一个外环、零个或多个内环构成的连通区域[9]。满足了热切割等数控加工图形的路径规划要求[10]。

2.3.1 有序化成环处理

算法的伪代码如下:

2.3.2 内外环识别

在环的识别算法中,已经把图形中的所有图元按环存储在一个集合中,根据包络矩形大小进一步判别出内外环,包络矩形最大的环属于外环。因为内环总是在外环内部且不相交,因此只判断包络矩形的一个坐标分量的最大值或最小值即可。算法描述如下:

根据算法,通过C#编程实现了含有一个字符‘A’的内环的判别,如图5所示。字符‘A’的内外环按照环的正方向进行了有序化成环处理。

3 结语

本文研究了DXF格式数据源在数控系统中路径规划前的优化问题,为DXF数据源的优化提供了可供借鉴和参考的内容,得到的主要结论有:

(1)DXF文件由含有不同图形信息的组构成,只对包含图元几何信息的ENTITIES段进行读取解决了其他读取算法存在的读取多余图元信息的问题。

(2)图形中的图元重复或图元交叉的情况会影响路径规划的求解。以直线图元为例,通过对直线的法向量和常量进行快速排斥试验和跨立试验找出图形中的交叉错误、包容性试验消除重合错误得到优化的图元信息。

(3)路径规划的本质是环间连线的最优化求解。对优化的图元进行有序化并进行内外环识别,解决偏移补偿等前处理问题。

[1]陈太喜.低成本、便携式的EPS快速成形系统[J].工程设计学报,2008,15(5):319-323.

[2]夏涛.基于DXF文件的接口设计及两点最短路径的求取[J].仪器仪表用户,2006,13(1):89-90.

[3]孙海波.EPS快速成形系统最短切割路径的求解[J].工程图学学报,2008,6:108-112.

[4]龚清洪.基于DXF的绘图轨迹优化及仿真系统研究[D].西安:西北工业大学,2006.

[5]郭朝勇.AutoCAD R14(中文版)二次开发技术[M].北京:清华大学出版社,1999.

[6]李海峰.火焰切割机床自动编程系统开发[J].水利电力机械,2003,25(5):40-42.

[7]何援军.计算机图形学[M].北京:机械工业出版社,2006.

[8]潘金贵.现代计算机常用数据结构和算法[M].南京:南京大学出版社,1994.

[9]刘会霞.钣金件数控激光切割割嘴路径优化[J].计算机辅助设计与图形学学报,2004,16(5):60-665.

[10]李艳华.慢速走丝线切割加工自动编程系统的研究[D].哈尔滨:哈尔滨工业大学,2006.

猜你喜欢

图元重合交叉
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
“六法”巧解分式方程
电力系统单回线自适应重合闸的研究
连数
连一连
电气CAD接线图快速转换G图形的技术应用研究
双线性时频分布交叉项提取及损伤识别应用
数控车床的工艺与编程
浅析重合闸