张胜奎 李长有 程晓琦
(河南理工大学机械与动力工程学院,河南 焦作 454000)
点胶机数控系统中的图形输入技术
张胜奎 李长有 程晓琦
(河南理工大学机械与动力工程学院,河南 焦作 454000)
提出了一种基于通用图形数据交换文件直接提取制造工艺参数的方法。分析了通用图形数据交换 DXF文件的结构;给出了工艺参数提取的具体步骤;利用这种图形输入技术,以Visual Basic 6.0为开发平台,开发了一种数控系统软件。经应用于全自动点胶机,验证了系统的开放性和实用性。
DXF;Visual Basic6.0;数据提取;点胶机;图形输入
随着计算机技术的发展,机械制造领域中的CAD、CAM、CAE和CAPP等技术日新月异。涌现出了许多面向集成化、一体化、智能化的大型计算机辅助软件。如UG、Proe等。这些软件大都只针对大型加工制造过程,而且价格昂贵,不适合中小型数控加工设备。另一方面,我国是制造业大国,拥有大量的中小型机械制造设备。这些设备有些配备了专有的数控系统。但是这些数控系统大多采用手工测量方式获取数控程序所需参数。使得程序开发周期较长,严重影响了数控加工的效率。
提高数控系统的数据获取效率的一种方法是使用图形输入技术。图形输入技术是在PC机上绘制出零件图或加工路径图;然后利用软件从图形中提取出数控加工所需参数;经过优化处理后应用于数控加工过程的一种技术。数控系统中图形输入环节的优劣标志着该系统智能化程度的高低。
点胶机是一种进行自动胶液涂覆的机器。可用于电子封装、零件固定和玻璃密封等场合。长期以来,我国使用的自动化点胶设备一直依靠国外进口。为了提高我国在国际制造业中的竞争力,必须自主研发出具有高自动化水平的点胶设备。
提出了一种以 Visual Basic6.0为开发平台,基于 DXF文件的图形输入技术实现方法。这种图形输入技术是针对点胶机数控系统研制的。但其基本算法和原理也可以用于其它的数控系统。DXF文件属于图形数据交换格式。它是CAD图形文件的一种数据交换接口。随着CAD软件的进一步流行,DXF文件已经成为了一种事实上的图形数据交换标准。Visual Basic语言是RAD技术(Rapid Application Developing)首选编程语言。它具有高效、快速、功能强大等诸多优点。点胶是产品加工、制造的一个重要环节。
1.DXF文件结构分析
DXF文件有两种格式:ASCII码格式和二进制格 。数据提取一般使用的是 ASCII码格式的 DXF文件。本质上讲,DXF文件是一种标记性文件。它是利用特定的标记符号来代表特定的信息,从而构成DXF文件。
DXF文件从形式上可以分为多个段。而每个段又由多个组构成。每个组包括两部分内容:组码和相关的组值。组码由十进制整数表示。组码定义了组值的数据类型和该组的其它相关信息。如:组码 0表示下该组的组值是一个字符串类型数据。而且,一般0组码所在的组表示DXF文件的开头或结尾;也可表示段的开头或结尾;还可表示表、图元、对象等内容的开头或结尾。组值的数据类型有字符串、整数、或浮点数。
一个完整的DXF文件共包含7个段。段名和相关内容见表1。
表1 DXF文件结构表
2.工艺参数提取方法
对于点胶数控加工有用的图元一般包括:点、直线、圆弧、圆、椭圆和多段线等实体元素。它们的信息都储存在DXF文件的ENTITIES段。需要提取的实体图元参数有以下几个方面:
点的信息存储在组码为0、组值为字符串“POINT”的部分。组码为10、20、30的组值分别表示该点的坐标值;组码为210、220、230的组值分别表示点的拉伸方向矢量的X、Y、Z值。
直线图元信息存储在组码为0、组值为字符串“LINE”的部分。组码为10、20、30的组值分别表示直线的起点坐标的X、Y、Z值;组码为11、21、31的组值分别表示直线的终点坐标的X、Y、Z值;组码为210、220、230的组值分别表示直线的拉伸方向矢量的X、Y、Z值。
圆弧信息存储在组码为0、组值为字符串“ARC”的部分。组码为10、20、30的组值分别表示圆弧的圆心坐标的X、Y、Z值;组码为40的组值表示圆弧的半径值;组码为50和51的组值分别表示圆弧的起点角度值和终点角度值;组码为210、220、230的组值分别表示了圆弧的拉伸矢量的X、Y、Z值。
圆信息存储在组码为0、组值为字符串“CIRCLE”的部分。组码为 10、20、30的组值分别表示圆心坐标值;组码为 40的组值表示半径值;组码为 210、220、230的组值分别表示圆的拉伸矢量的X、Y、Z值。
椭圆信息存储在组码为0、组值为字符串“ELLIPSE”的部分。组码为10、20、30的组值分别表示椭圆中心点坐标的X、Y、Z值;组码11、21、31的组值分别表示椭圆长轴端点坐标的X、Y、Z值;组码210、220、230的组值分别表示椭圆的拉伸方向矢量的X、Y、Z值;组码为40的组值代表短轴和长轴之比。组码为41、42的组值分别代表椭圆弧的开始角度和结束角度。
二维多段线和三维多段线信息的提取方式是不同的。
二维多段线的信息可以在ENTITIES 段中以组码为0、组值为字符串“LWPOLYLINE”部分找到。需要提取的参数有:多段线中顶点的个数(在组码为 90的组中);多段线的类型代码(表示多段线是闭合多段线还是非闭合多段线。包含在组码为70的组中);表示顶点坐标值的组码是10、20(以二维坐标表示);多段线的标高值由组38提供(没有组38时默认标高为0);组42表示了多段线中弧线的凸度值;拉伸矢量存储在组 210、220、230中。需要注意的是:当二维多段线在一个倾斜的平面上绘制时,多段线的 OCS(Object Coordinate System)坐标系和UCS(User Coordinate System)坐标系是不重合的。而多段线的顶点坐标值在 DXF文件中是以OCS为基准存储的。这样就产生了一个问题:从DXF文件中提取出的多段线顶点坐标值不是实际图形中的坐标值。解决这个问题的方法是进行坐标变换。
三维多段线的信息存储在组码为0、组值为“POLYLINE”的部分中。提取信息时应先找到该组所在的位置,然后在后面的各组中提取有用信息。三维多段线的各个顶点的三维点坐标值存放在以组码为0、组值为“VERTEX”的代码部分。其中的10、20、30组的组值表示顶点的X、Y、Z值。
数据提取流程图见图 1。这是一种根据指定线型选取图元,然后提取被选取图元信息的方法。图中提出的算法如下:首先在表段(“TABLES”段)提取出图形中包含的所有图层名和图层中所定义的线型名。将这些信息存储起来;然后在实体段(“ENTITIES”段)中提取各个实体所在的图层名或实体的线型名。(如果实体的线型是用户在绘图时指定的,则出现线型名。如果没有出现线型名,则该实体的线型为所在图层的线型。)通过这些数据得到实体的线型名;最后和实线线型名“continuous”比较,以决定是否提取该图元的参数。
图1 数据提取流程图
(三)应用实例
将提出的图形输入技术应用于点胶机,设计出了数控系统上位机软件。而后结合硬件系统设计,研发出了点胶机数控系统。该系统实现了点胶机工作流程的自动化。
1.点胶机数控系统设计原理
系统采用PC上位机加运动控制器的双CPU控制结构。这种控制结构的优点是:既能实现柔性控制,又能保持极强的实时性。PC机负责图形绘制、图形输入、参数优化、仿真及实时通信功能。这些功能都由所设计的上位机软件实现。下位机采用单片机为主控芯片,主要实现实时的伺服控制和逻辑控制功能。上位机和下位机之间的通信采用 RS-232C串口方式。该系统即可以实现实时点胶控制,又可以实现上位机和下位机之间的异步工作方式。所谓异步,是指可以先脱离下位机,在PC机上完成各种控制参数和控制算法的设计和仿真工作;然后将这些数据储存起来;等到实际需要进行数控加工时,再将这些数据发送给下位机。而下位机中只固化一些基本的伺服控制和逻辑控制程序。一旦接收到所需的数据,下位机便可以进行实际的数控点胶。点胶机数控系统原理及功能如图2所示。
图2 数控系统原理图
2.图形输入技术的应用
软件设计中采用VB面向对象的编程理念和模块化设计思想。将数控系统分解为多个功能模块。每个模块封装独立的功能和算法,便于程序进行调试、修改以及代码的重用。值得一提的是,该软件中利用Visual Basic语言实现了数据结构中的链表。开发出了链表类,并将链表对象应用于中间数据的动态存取,极大地改进了程序的实用性和内存使用的高效性。
开发出的数控软件能够实现三维点胶控制。可以对 CAD图形中的多个点胶平面进行识别、排序;并对点胶路径进行自动优化。图3所示的是用AutoCAD2007绘制出的手机滑轨三维图。图中粉红色图元表示需要点胶的轨迹。
图3 手机滑轨三维图
图形输入模块要实现的功能是将这些图元的有用参数提取出来,经过处理后用于点胶运动控制。数控软件图形输入模块界面如图 4所示。表中已清晰地列出了数控点胶所需的参数。
图4 点胶机数控软件界面图
图形输入技术为数控程序员提供了友好的交互界面,实现了数控程序编制的自动化,将程序员从繁重的代码编程中解放出来,极大地提高了编程的效率。
所开发的点胶数控软件是面向三维 CAD图形的。同样也适用于二维图形的输入。程序经在 VB6.0平台上多次调试证明:运行良好,高效便捷。
[1] 翟霞,毋彩虹.AutoCAD 应用开发技术[M].北京:中国电力出版社,2007:131.
[2] (美)Ellen Finkelstein.AutoCAD2007 宝典[M].北京:人民邮电出版社,2007:129.
[3] 李文,高健.谈零件特征信息自动拾取的方法[J].机电工程技术,2008,37(02),27-28.
[4] 谢敏,戴明.基于 DXF图形文件的加工控制系统[J].微计算机信息,2006,22(5-1):7-9.
TP274+.2
A
1008-1151(2011)02-0097-03
2010-11-26
张胜奎(1976-),男,河南平顶山人,河南理工大学机械与动力工程学院在读硕士研究生,研究方向为传感与测控技术。