基于Android平台的五轴数控加工仿真系统研究

2016-01-22 02:10游玉霖
组合机床与自动化加工技术 2015年12期
关键词:Android平台数控加工

游玉霖,施 群

(上海大学 机电工程与自动化学院,上海 200072)



基于Android平台的五轴数控加工仿真系统研究

游玉霖,施群

(上海大学 机电工程与自动化学院,上海200072)

摘要:随着3G乃至4G时代的到来,基于Windows平台的五轴数控加工仿真系统已不能满足移动办公理念,因此文章提出了基于Android平台操作系统的五轴数控加工仿真系统。利用UG绘制铣床三维模型同时导出STL文件,同样使用UG对工件进行建模并对其进行五轴数控加工仿真,运用UG提供的后处理构造器得到NC文件,借助JAVA编程语言对STL文件和NC文件进行读取并且显示铣床三维模型和刀路轨迹,导入基于Android平台创建的OpenGL ES的窗口进行仿真;提出了一种改进的Z-map模型使其适用于五轴数控加工仿真同时能高效的实现切削仿真。实验结果表明该仿真系统可清晰反映出五轴数控加工仿真的过程,验证了其可行性,对于数控加工仿真与手机的结合具有一定的现实指导意义。

关键词:Android平台;数控加工;仿真系统

0引言

移动办公是指通过包括手机、笔记本在内的各类移动设备接入企业内部网络进行办公。移动办公的思想使得工程师们不用局限于工作地点的限制,可以随时进行生产指导与科学研发。随着手机和平板电脑的智能化发展以及不断兼容PC机的功能,由于其小巧轻便,移动办公更多演变成为手机办公[1],即在手机中安装应用程序,建立手机与电脑互联互通的企业软件应用系统。移动办公的高效快捷,以及它在企业中的高的可操作性,可以帮助企业更加快速适应市场的变化[2],在安全的范围内,尽可能的帮助企业提高生产效率,降低企业的生产成本,在市场上掌握主动。因此,现阶段很多应用软件不能仅仅局限于基于Windows、Linux等系统的PC机上,随着移动办公不断地深入人心,开发手机、平板电脑上所能运行APP已成为一种流行趋势。手机与平板电脑现在最主要两大系统分别是IOS与Android,由于Android为开源系统赢得了更多研发人员的青睐。

在传统数控加工过程中一般通过首件试切的方法来验证零件加工程序,这一过程不但周期长、成本高,而且风险和劳动强度大,因此国内外很多学者开始利用计算机来模拟实际加工环境,建立数控仿真平台,帮助编程人员在程序完成后就可以部分或全部发现实际加工过程中可能出现的异常情况并予以调整,这样可以大大缩短生产周期,减小生产成本。邬再新等[3]、李国良[4]、赵岩[5]以Visual C++6.0为开发平台对数控车削三维仿真系统进行了深入的研究,采用OpenGL技术对仿真系统进行开发并且取得了一定的成果;朱国涛[6]结合三维实体布尔集合运算原理以及实体造型技术理论,提出了一种三轴数控铣削加工过程的计算机仿真系统原型;陈建[7]利用VS2008与Open Scene Graph(OSG)开发一套五轴数控加工仿真系统,利用该系统可以进行常规机床实例建模,同时针对五轴刀具双摆动、工作台双回转、刀具摆动与工作台回转机床进行加工仿真;Lufeng Luo等[8]人利用OpenGL图形库在C++6.0的平台上搭建在虚拟环境中的多轴虚拟机床,利用三角网格实现动态建模和时时切削模型;E.Budak等[9]通过选择五轴铣削的加工参数来提高五轴加工仿真的生产效率和加工质量;杨琳[10]利用Visual C++平台完成车铣复合加工仿真环境的建立,对车铣复合加工NC仿真系统所涉及到的工艺和仿真加工技术进行了深入探讨,完成了车铣复合加工仿真系统整体性的构建和开发。同时国内外市场上能够实现数控仿真的CAM系统软件是不胜枚举,例如美国DES公司的UG、美国参数技术公司(PTC)的Pore、Cimatron Technologies公司开发的Cimatron以及美国CNC Software公司开发的Master CAM等。然而无论现在成形的软件或是科研人员研究开发的仿真系统都是基于Windows 或Linux等操作系统的数控加工仿真系统,只能在PC机上使用。随着移动办公逐渐深入人心,智能手机与平板电脑终将逐步取代传统电脑,因此开发适用于智能手机与平板电脑的数控加工仿真系统终将成为一种发展趋势,与此同时Android系统拥有多层次结构、良好的开发环境、强大的调试工具以及开放性等诸多优势,且是现在的智能手机与平板电脑的主流系统,因此提出一种基于Android平台五轴数控加工仿真系统以满足移动办公的需求。

1仿真系统平台的搭建

三维仿真系统是指能根据用户提供的控制参数实时地、动态地将局部或全部加工状态显示在手机或者平板图形输出屏幕上。在数控切削加工过程中,用户输入NC 加工控制代码后,三维仿真能根据控制代码要求进行动态过程仿真。仿真显示过程,实则是把加工过程中加工零件的图像以及刀具位置等数据信息动态的显示到计算机屏幕上。加工过程中刀具加工的几何位置、加工时间在状态栏显示,零件仿真画面在屏幕切分窗口的显示区域显示。用户可以调节切分窗口大小,旋转图像观看加工工件。图像数据信息收集由OpenGL ES完成。因此基于Android的仿真平台的搭建需要解决三个问题:①机床模型在Android平台下的显示;②NC程序如何导入Android系统并显示加工路径;③如何在Android平台实现五轴数控加工仿真。

1.1系统开发工具

所述的仿真系统基于OpenGL ES , 结合JAVA语言使用Eclipse工具在Android环境下开发而成。

OpenGL ES (OpenGL for Embedded Systems) 是OpenGL三维图形API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API是由Khronos集团定义推广的一款跨平台的,功能完善的2D和3D图形应用程序接口API,主要针对多种嵌入式系统专门设计包括控制台、移动电话、手持设备、家电设备和汽车。

在正式开发Android应用程序之前,可以利用Eclipse软件中的Android Virtual Device Manager对模拟器进行创建,设置参数如下:Target为Android4.2.2-API Level 127,显示屏分辨率WVGA为参数480×800,开启Use Host GPU以配置OpenGL ES。可以将在模拟器运行成功的应用程序安装到Android系统手机中。如图1所示为手机的主界面。

Android提供了两个基本的类:GLSurfaceView和 GLSurfaceView.Rendere以便使用OpenGL ES API来创建和操纵图形。GLSurfaceView是一个视图类,可以用于调用OpenGL API在上面绘制图形和操纵物体。GLSurfaceView.Renderer接口定义了在一个OpenGL ES的GLSurfaceView中绘制图形所需要的方法。并使用GLSurfaceView.setRenderer()方法将它依附到GLSurfaceView实例对象上。

图1 移动平台

1.2机床三维模型的绘制

搭建仿真平台,在平台中显示机床的模型更能真实的反映整个加工的过程,由于OpenGL ES中任何形状的3D物体都是用三角形拼凑而成的,如果直接利用OpenGL ES提供的绘制三角形的指令对机床模型进行绘制只会达到事倍功半的效果。因此利用美国DES公司的UG软件对机床进行造型,整体轮廓如图2所示。与此同时将绘制的机床3D图形以STL (Stereo Lithography)文件格式输出。STL文件是一种用许多空间三角形面片来逼近三维实体表面的数据模型,STL文件有两种数据类型即ASCII格式和二进制格式[11]。这项研究采用ASCII格式的STL文件:

图2 UG机床造型

solid (name) 文件开始,name为实体的名字

facet normal Nx Ny Nz,三角形面片外法向量坐标

outer loop

vertex V1x V1y V1z,三角形面片第一点坐标

vertex V2x V2y V2z,三角形面片第二点坐标

vertex V3x V3y V3z,三角形面片第三点坐标

endloop

endfacet

1.3STL文件的读取与显示

对于STL文件,由于各三角形面片的顶点存在着重复存储的问题,因此读取之前必须进行数据筛选,去除冗余信息以节省内存。具体的处理方法是:首先对构成每个三角面片的顶点进行重复性判断,对于没有重复的顶点添加到最终的顶点存储结构中;而对于有重复的顶点,对其采用快速分类算法进行排序,然后将重合的顶点合并为一个顶点,存储在新建的模型顶点坐标表中;再对模型顶点坐标表中的每个顶点找到其相邻的顶点,建立只存储顶点 ID号的顶点邻接表;最后删除读入的原三角面片的顶点坐标表。具体的算法流程如图 3所示。

图3 STL 文件读取流程图

基于Android的仿真系统中机床模型的显示,采用OpenGL ES作为三维图形接口,并以JAVA为主要的开发语言。利用JAVA标准IO库InputStream与InputStreamReader类型定义对象并绑定STL文件;再用标准库String类型中的readLine逐行读取绑定的STL文件;然后对读入的数据进行是否为顶点信息的判断,存储其中的顶点数据。再应用OpenGL ES编程技术实现对STL三维模型文件的显示。读取UG导出的机床STL并显示如图4。

图4 仿真平台下铣床三维模型

2读取五轴NC文件显示加工刀路

通过UG对工件进行模拟加工,运用UG提供的后处理构造器得到NC文件,本文以C-A双摆铣床加工作为加工实例,因此得到的NC文件中包含刀位点坐标(X,Y,Z)以及刀具绕Z轴转动的C角、刀具绕X轴转动的A角。NC文件的读取采用与上文所述STL文件相同的读取方法,利用JAVA标准IO库InputStream与InputStreamReader类型定义对象并绑定NC文件;再用标准库String类型中的readLine逐行读取绑定的NC文件,定义如下数据结构:

public class readFiveAxieFile {

public float x=0;

public float y=0;

public float z=0;

public float C=0;

public float A=0;}

构建ListfiveAixs链表结构将读取数据储存与其中。由于OpenGL ES中并没有三维图元元素,对于三维图形的构建必须用三角片体拼凑。因此文章采用UG对于球头刀进行绘制然后导出STL文件,然后在仿真系统中读取STL文件对球头刀进行显示。由于文章构建的是仿真的加工系统,因此在研究过程中开启一个线程New Thread(),然后利用Thread.Sleep(100)指令每休息100ms对屏幕进行重绘从而动态显示走刀过程具体如图5所示,最后可得到完整路径轨迹如图6所示。

图5 带刀具走刀过程

图6 刀具轨迹路径

3改进Z-map模型

由于手机、平板电脑的CUP、内存等与计算机硬件技术的水平还有一定的差距,对于构建的基于Android的仿真系统,仿真加工的速度成为研究过程中选择毛坯构造方法的主要考虑的因素。Z-Map 相对于现在流行的几种建模方法例如实体几何法(CSG)、八叉树表示法等的主要优点是:不用做布尔运算,大大提高了仿真速度,并且能自由旋转、缩放、平移。对于这种方法王鹏远[12]在其硕士论文中已经做了详细的介绍,文章中就不做过多的描述。然而由于Z-map 值只表示高度,只适合三轴加工,无法运用于五轴数控加工中。因此文章中提出一种数据结构对Z-map表示进行改进使其适用于五轴数控加工。将Z-map线段表示为如下的数据结构:

public class Line {

float startZ; //直线段的起点

float endZ;//直线段的终点

}

public class LineList {

float x; //Z-map投影点的X坐标

float y; //Z-map投影点的Y坐标

List line= new ArrayList();//创建链表储存每投影点上对应的直线

int m_LineTotally; // 在单个投影点上对应的直线段条数

}

主要思想是将刀具切割一条Z-map直线段时可以将直线段进行分割。此时假设刀具为圆柱体,进行数控仿真加工的问题则可以转化为毛坯直线与刀具圆柱面的交点,首先需要对空间圆柱面的变化进行推导,现在以C-A双摆五轴机床的刀具作为实例进行公式的推导。公式中I、J、K分别表示刀具的矢量方向,X、Y、Z为刀具摆动过程中刀具表面的坐标点,θ表示圆周的角度,其中0≤θ≤2π,r为刀具的半径,n为刀具切削刃的长度,C表示绕Z轴的旋转角度,A表示绕X轴的旋转角度,TX、TY、TZ表示刀具的刀尖坐标点。空间圆柱面与直线交点(ArrayZ1、ArrayZ2)公式推导情况分类讨论:仅以I≠0,J≠0的情况为例进行推导。

当I≠0,J≠0时,通过推导空间任意平面上圆的参数方程(1)、(2)、(3),在此基础上推导出沿空间任意方向圆柱面的参数方程即空间任意方向刀具摆动的参数方程(4)、(5)、(6)。

x=r·cosθ

(1)

y=r·sinθ

(2)

z=0

(3)

(4)

(5)

Z=sinA·y+cosA·z+K·n+Tz

(6)

将公式(1)、(2)、(3)代入公式(4)、(5)得

X=cosC·r·cosθ+sinC·cosA·r·sinθ+

I·n+Tx

(7)

Y=-sinC·r·cosθ+cosC·cosA·r·sinθ+

J·n+Ty

(8)

联立方程(6)、(7)和(8)求解:

(9)

类似可得到,当 I≠0,J≠0及I≠0,J≠0情况下空间圆柱面与直线交点(Z1,Z2)的公式推导。

当求得空间刀具与毛坯直段的交点后对求得的交点进行分析,如图7所示,当刀具与毛坯直线段求交的过程中,一个投影点对应的Z空间方向上只有一条直线段(数据结构设为endZ0,startZ0)的情况可以将其分为以下五种情况:

情况一:当投影点向Z方向做射线与刀具两交点(ArrayZ1、ArrayZ2,其中ArrayZ1< ArrayZ2)均大于毛坯的最高点此时刀具与毛坯体无交点不发生切削。

图7 一个投影点对应一条直线的情况

情况二:当投影点向Z方向做射线与刀具两交点一个交点大于毛坯的最高点另一交点小于毛坯的最高点,此时刀具与毛坯体发生切削将毛坯线段的endZ0修改为ArrayZ1。

情况三:当投影点像Z方向做射线与刀具两交点均位于毛坯的最高点与最低点之间,此时刀具与毛坯体发生切削此时新建一条直线Line line = new Line()设其为(endZ1,startZ1)并对其进行赋值同时改变原直线段值即使得endZ0=ArrayZ1,endZ1=endZ2,startZ2=ArrayZ2。

情况四:当投影点向Z方向做射线与刀具两交点一个交点大于毛坯的低高点另一交点小于毛坯的最低点,此时刀具与毛坯体发生切削将毛坯线段的startZ0修改为ArrayZ2。

情况五:当投影点向Z方向做射线与刀具两交点(ArrayZ1、ArrayZ2,其中ArrayZ1

如图8所示,当刀具与毛坯直线段求交的过程中,一个投影点对应的Z空间方向上大于一直线段的情况可以将其分为以下3种情况。具体分析与上文相同。

利用上文所述的改进Z-map模型在Android平台下实现五轴数控加工仿真的具体流程如图9所示。

图9 五轴数控加工仿真的具体流程

4实验验证

根据上文所述,文章中提出的基于Android的五轴数控加工仿真系统的具体搭建过程如图10所示。为了验证仿真系统的可用性,本次实验利用魅族MX 2搭载的Android系统进行了实验验证。

图10 仿真系统的具体搭建过程

实验平台:魅族 MX 2搭载的基于Android 4.1的Flyme 2.0深度定制系统。

配置:三星 Exynos 的四核CPU,2GB内存。

如上文所述利用UG 7.0绘制五轴C-A双摆头铣床与被加工工件的三维模型,将绘制的三维模型以STL文件的ASCII格式导出并将其导入仿真系统中。同样利用UG软件得到工件的五轴数控加工NC代码,采用上文所述的方法导入仿真系统,利用改进的Z-map毛坯模型实现五轴数控加工仿真。如图11所示为五轴双摆C-A铣床加工毛坯的仿真,为了更直观的反应铣削加工的全过程对刀具切削毛坯部分进行局部放大图12所示。

图11 五轴C-A双摆铣床加工毛坯仿真过程

图12 五轴双摆C-A铣床加工毛坯的局部放大图

通常为了使得加工过程更为直观高效一般只显示刀具切削毛坯的过程,如图13所示为被加工工件三维图形,图14所示为刀具与改进的Z-map模型毛坯发生切削的过程,如图15所示为工件加工结果。从图中可以看出,由实验结果可以看出搭建的仿真系统可以清晰的反映出五轴数控加工仿真的过程,因此验证了基于Android环境开发的五轴数控加工仿真系统的可行性,如果将基Android环境的开发数控加工仿真系统推广到三轴铣削、车削、车铣复合、磨削等各种加工方法,这样不仅可以体现出数控模拟仿真的优越性,而且符合现在移动办公的思想。随着科技的发展,智能手机与平板电脑的性能配置必将取得飞速的发展,因此在不远的将来在移动终端上实现对复杂工件的模拟仿真加工将逐步取代传统的仿真模式。

图13 被加工工件示意图

图14 加工中间过程示意图

图15 加工完成示意图

5结论

文章提出一种基于Android平台五轴数控加工仿真系统,将现在移动办公的思想与五轴数控加工仿真巧妙的结合,为数控仿真系统的研究提供了一个新的研究方向,有利于CAD/CAM 技术和数字化制造技术更为深入的发展。

(1)分析STL文件的文件结构,解决了读取STL文件并进行显示的问题,从而可以将机床模型导入仿真系统;

(2)解决了仿真系统如何读取五轴数控加工的NC文件的问题,为仿真系统根据NC文件显示加工路径实现仿真加工扫清了障碍;

(3)提出改进的Z-map模型使其适用于五轴数控加工,实现在Android平台下的五轴数控加工仿真,并大大提高了仿真速度。

[参考文献]

[1] 汪礼勇.企业信息化的第二春—移动办公[J].电信网技术 ,2009 (12):36-38.

[2] 臧智岩.移动办公在企业内的应用[J].电子技术与软件工程,2014(3):59.

[3] 邬再新,程萍,惠相君.基于OpenGL的数控车削动态仿真过程及图形显示[J].机械设计与制造,2007(2):98-99.

[4] 李国良.基于OpenGL的虚拟数控车床加工仿真系统研究[D].成都:西南交通大学,2011.

[5] 赵岩.基于OpenGL的数控车削三维仿真系统的研究[D]. 南京:南京理工大学,2011.

[6] 朱国涛.三轴数控铣削加工的仿真建模与软件实现[D]. 长沙:国防科学技术大学,2006.

[7] 陈建.通用五轴数控加工仿真系统研发[D].成都:西南交通大学,2011.

[8] Lufeng luo ,Guoqing Li,Shuang Sun,et al. Research on Behavior Simulation of Multi-axis CNC Machine Tool in Virtual Environment[C].Internation Conference on Measuring Technology and Mechatronics Automation, 2010:31-34.

[9] E Budak,E Ozturk,L T Tunc.Modeling and simulation of 5-axis milling processes[J].CIRP Annals-Manufacturing Technology,2009,58:347-350.

[10] 杨琳.数控车铣复合加工程序仿真系统研究[D].重庆:重庆大学,2010.

[11] 严桔铭,钟艳如.基于VC++和OpenGL的STL文件读取显示[J].计算机系统应用,2009(3):172-175.

[12] 王鹏远. 三轴数控铣削加工图形仿真技术的研究与实现[D].苏州:苏州大学,2006.

(编辑赵蓉)

Study on Five-axis CNC Machining Simulation System Based on Android

YOU Yu-lin,SHI Qun

(School of Mechatronics Engineering and Automation, Shanghai University, Shanghai 200072,China)

Abstract:With the advent of the 3G and 4G era, the five-axis NC machining simulation system, which is based on the Windows platform, can’t meet the concept of mobile office. So this paper proposes a five-axis NC machining simulation system which is based on Android operating system platform. In this paper, a three-dimensional milling model has been drawn with the UG, and the STL files need to export.we use UG to build a mold of the workpiece, make a simulation of its five-axis machining, and then use the post build provided by UG to get the NC files, read the STL files and the NC files using JAVA programming language and display the three-dimensional milling model and the tool path. At the last, we need to import it to the OpenGL ES which is based on the Android platform to conduct a simulation. This paper proposes an improved Z-map model to make it more suitable for five-axis NC machining simulation , and at the same time to realize the efficient cutting simulation. Experimental results show that this simulation system can reflect the process of five-axis NC machining simulation clearly, and we have verified its feasibility. For it has a practical significance by combining cell phone with CNC machining for simulation.

Key words:Android platform ; CNC machining ; simulation system

中图分类号:TH166;TG659

文献标识码:A

作者简介:游玉霖(1989—),男,福建漳州人,上海大学硕士研究生,研究方向为数控技术,(E-mail)529285260@qq.com。

收稿日期:2015-01-14

文章编号:1001-2265(2015)12-0138-06

DOI:10.13462/j.cnki.mmtamt.2015.12.038

猜你喜欢
Android平台数控加工
基于Android平台软件开发技术研究
基于Android平台的人脸识别系统设计与实现
基于Android平台的健康医疗APP设计与开发
进出瓶螺旋杆的螺旋线简化设计及加工
Android手机主题设计 
基于Android的Python语言英汉维电子词典设计与实现
数控加工实训教学改革研究