基于OpenGL与VC++的虚拟数控铣孔仿真研究

2013-10-14 06:55张玉霞王培俊扈志远聂良兵潘璇
机械制造与自动化 2013年2期
关键词:数控铣毛坯刀具

张玉霞,王培俊,扈志远,聂良兵,潘璇

(西南交通大学国家级机械基础实验示范中心,四川成都 610031)

0 引言

虚拟制造以计算机为平台,在计算机仿真环境下进行加工而不消耗物理资源,对真实产品制造的动态进行描述[1]。现实的数控加工开始前需要检查NC代码是否有错,加工过程中需检验加工是否符合要求,通常需要试切检验,造成一些不必要的资源浪费和产品生产周期的加长。虚拟数控加工仿真技术在此背景下应运而生,在虚拟环境下用户可以实现对产品从设计、加工和装配、检验到使用整个生命周期的模拟和仿真。虚拟数控加工仿真系统的研究开发,不仅能节约资源、避免损失,而且可以通过模拟机床及加工过程来培训数控机床操作人员,也可以帮助机床制造商向远程客户演示其产品[2]。数控加工作为现代机械加工的主要方式,对其过程进行仿真具有重要的理论研究和实用价值[3]。本文以长征机床厂KV800型数控铣床为原型,在研究其操作手册的基础上,开发了虚拟数控铣削仿真系统,实时模拟数控铣孔的过程,通过控制面板实现人机交互操作功能。

1 虚拟数控加工系统的结构组成

系统包括三个模块:铣床场景模块、控制面板模块、铣孔加工模块。其中铣孔加工模块包括铣孔算法、刀具库、毛坯库和NC代码解析模块,如图1所示。各个模块的功能分别为:

图1 虚拟数控加工系统的结构组成图

a)铣床场景模块:通过Pro/E等建模软件建立铣床的主要结构部件,转换为.3ds文件,导入到程序中。

b)控制面板模块:人机交互界面的主要组成部分,通过点击操作面板上的按钮实现机床的各种功能以及创建、载入和保存NC代码等。

c)铣孔加工模块:1)铣孔算法:主要是实现铣孔过程中毛坯材料去除过程的模拟。2)刀具库及毛坯库:根据不同的加工需求选择符合要求的刀具,设定毛坯参数,实时创建并安装毛坯。3)NC代码解析模块:通过对用户自定义的NC代码进行读取并编译,获得关键加工信息。

2 虚拟加工环境建模

虚拟数控加工仿真系统的基础是虚拟加工环境的模型建立。通过计算机图形处理技术构建物体的三维几何模型,对于所需要虚拟仿真的物体原型进行真实模拟,提供重要的几何信息和加工信息[2]。本系统采用 Visual Studio 2010编译软件,以OpenGL底层库为基础。虚拟加工环境的建模方法主要有两种。1)直接以OpenGL图形库为基础,通过VC++程序调用图形库的函数来完成建模。这种方法占用系统资源少、系统配置要求比较低,但模型建立比较复杂、难度比较高。2)通过第三方建模软件,解决了复合模型建立的问题,造型比较美观,但占用系统资源比第一种方法大得多,对系统配置要求比较高[3]。

虚拟数控铣床是由许多零部件构成的装配体,结构复杂,选用OpenGL图形库进行造型非常困难。而第二种方法采用实体几何法建模思想,层次化、结构化构建机床模型,将机床的复杂建模转化为简单形体的建模活动的组合。本文选择三维建模软件Pro/E进行建模,建模思路为:采用实体几何建模思想,以实际数控铣床为对象,忽略机床伺服装置和内部传动装置,根据各零部件物理模型之间的装配关系装配成一台完整的虚拟机床。装配关系应当全面地表达零部件之间的连接性、层次性。

虚拟加工仿真的过程是在基于OpenGL底层图形库的VC++框架中进行的,由外部软件建立的机床模型必须导入到VC++框架中,方法有转换法和直接导入法。转换法由第三方软件(如Deep Exploration,3DExploration等)完成,具体步骤如下:将Pro/E模型文件保存为.obj的标准3D模型文件,导入Deep Exploration中,转存为.cpp文件。这些cpp文件可以在VC++框架中以头文件的形式导入整个机床模型[4]。此方法比较简单方便,但是数据都是包装在文件中的,不方便整改,而且尺寸多有变化,不方便进行装配。此处采用第二种方法,直接解析.3ds文件格式,编写相应的3DSLoader类将其模型数据读入内存进行绘制,方便装配。

人机交互控制系统是虚拟仿真系统的重要组成部分,采用MFC框架进行开发,三维图形界面如图2所示,包括主菜单、工具栏、图形显示区以及操作面板区和状态栏。通过菜单按钮和操作面板区按钮可以执行相应的命令,比如加载坯料、选择刀具等。在图形显示区可以通过鼠标的点击拖拽以及滚轮的滚动,方便的实现对模型的各视角的观察以及缩放。

图2 虚拟加工环境三维界面

3 毛坯库的建模

在毛坯的加工过程中伴随有物理变换和几何变换。物理变换主要有:刀具与坯料之间的作用力、热量的转换等。几何变换主要是坯料几何模型的变换。由于物理变换比较复杂、视觉效果不明显,在系统中只考虑几何变换。

由于毛坯在加工过程中几何形状时时改变,所以直接采用VC++程序调用OpenGL图形库进行毛坯的几何建模,满足虚拟加工的实时性、交互性的要求。毛坯几何建模的方法主要是:1)离散化建模,这种实体造型方法所表达的几何模型,对实体造型要求高、计算量大,相当耗时。2)单元体化建模,速度快,能够实现实时仿真,但由于单元体的模拟过程单一,不宜进行精确的加工仿真[5]。本系统针对的是铣孔加工,毛坯多为平面体,多用在平面上打孔,所以采用面片法建模。将毛坯分为六个面片,在需要开孔的面片上进行打孔。采用此方法数据存储量少,仿真效果精确。

4 加工仿真的实现

虚拟数控铣孔仿真是数控铣床在虚拟环境中的映射,它能实现功能特征、几何特征与实际铣床的一致性。真实的数控铣孔加工过程中,主要运动包括铣床的运动以及切削工件的运动。因此数控铣孔加工仿真主要分为铣床运动仿真和去除材料仿真两部分。

4.1 数控铣床运动仿真

机床运动仿真主要表现为卡盘随主轴的旋转运动、大拖板与导轨之间相对运动,小拖板与大拖板之间的相对运动,刀具架的转动等[6]。在OpenGL中利用OpenGL的双缓存技术,配合时间计时器与响应函数,改变结构间的相对坐标,完成加工中各项运动仿真的效果。时间计时器的设定是通过添加消息响应函数ON_WM_TIMER()来实现的。利用函数SetTimer(n,t,NULL)设定标号为 n且每 t μs发送一次WM_TIMER消息的时钟定时器。利用时间消息响应函数On Timer(UINT nIDEvent)设置每次刷新时变量改变值,即设定机床如何动作。利用KillTimer(n)关闭一个标号为n的定时器,该定时器不再发送WM_TIMER消息到程序,停止机床动作。

4.2 去除材料的仿真

数控铣床铣孔过程中最重要的仿真是对毛坯材料去除过程的仿真,毛坯材料的去除算法决定了加工过程的真实性。去除材料仿真过程是利用计算机图形技术,通过动画的形式,形象直观的模拟切削的过程[2]。本文设计了G代码实时编译模块。首先,读取NC代码进行解析,获得加工过程的关键数据,将数据传递给机床运动仿真模块,在虚拟环境中完成切削加工。G代码的读取与加载如图3所示。G代码可以手工点击面板上的字母按钮逐个逐行输入,同时也可以读取外部TXT文件格式的G代码,提高仿真效率。当代码被加载到系统中后,C++的读文件函数对其进行响应,读取关键字的值,将其赋给控制切削变化的变量,配合时间计时器的响应函数,完成加工仿真。

图3 G代码的读取与加载

数控铣床铣孔过程是工件刀具做回转运动和z轴进给运动,因此可以通过设定孔类型、孔径大小、孔的深度、刀具位置来实现参数化、动态化的加工仿真。其过程及原理如图4所示。

图4 铣孔过程原理示意图

具体算法为:用面片法建立立方体,其中孔所在面利用模板缓存,开启模板测试,以孔的半径r为半径画一个圆,在这个圆内所有点的模板缓存设置为1,孔以外的点模板缓存位置设置为0,模板缓存值为1的点通不过模板缓存测试,只画通过模板缓存测试的点。然后在圆心画一个半径为r的圆R。当刀具跟坯料发生干涉并向下移动H时,圆R向下移动H并产生一个高度为H的孔四周的圆柱面。整个铣孔的过程是对各个面的操作,通过对时间控制器的控制,完成整个工件毛坯的铣孔仿真。

在实时加工仿真中,刀具模型与坯料模型进行铣孔运算,根据运算结果更新工件实体库中的数据信息,调用实体显示函数,获取更新后的工件毛坯模型数据并将其显示在屏幕上。整个加工过程中,利用了OpenGL的双缓存技术,定时器技术以及界面刷新技术。由于数据更新的速度远远大于使用实体显示函数来更新造型的速度,因此可以获得平滑逼真的动画效果[7]。

5 结语

本文基于VC++与OpenGL开发了虚拟数控铣床铣孔加工仿真系统。加工环境以及加工模块的建模分别采用了外部建模然后导入和直接调用OpenGL底层图形库的方法,可以方便地模拟真实的机床,具有较好的可扩展性。系统的操作界面使用MFC编程设计,具有友好的人机交互性,用户可以便捷的对整个系统的加工过程进行多视角的局部或整体的观察。对G代码实时读取和自定义输入,实现了铣孔加工的参数化动态仿真。刀具和毛坯的选择设计完善了系统的仿真效果。切削加工的方针算法在一定程度上弥补了由外部模型导入带来的系统压力。实验表明,仿真效果达到了预期要求,具有较好的现实意义。

[1]白广利,杨洪亮,纪彬,等.虚拟制造技术的初步研究[J].石油机械,2005,33(9):78-82.

[2]侯磊,王培俊,李国良,等.基于OpenGL与VC++的虚拟数控车床加工仿真研究[J].机械工程与自动化,2011(167):4-10.

[3]谷峰,李印结.国际先进制造技术的研究动态[J].制造技术与机床,2006(5):40-43.

[3]其木格,李强.基于UG的虚拟机床运动学建模与仿真[J].机械制造与自动化,2007(05):26-29.

[4]阳旭,王培俊,杨利明,等.滑动轴承三维油膜压力动态分布可视化研究[J].机械工程与自动化,2010(2):14-16.

[5]熊家伟,黄明吉,贾志新.虚拟数控车床仿真系统的研究与开发[J].机械制造与自动化,2006(03):95-96.

[6]陈云,杜齐明,董万福,等.现代金属切削刀具实用技术[M].北京:化学工业出版社,2008:200.

[7]余湛悦,周来水,张臣.提高数控加工仿真速度和效果的关键技术研究[J].计算机辅助设计与图形学学报,2004,16(5):642-647.

猜你喜欢
数控铣毛坯刀具
热锻状态铝合金锻件毛坯的优化方法
无织构刀具与织构刀具铣削性能对比研究
基于机器视觉的毛坯件磨削轨迹识别研究
基于最短路径的杠杆毛坯尺寸设计
切削刀具刃口形貌对刀具使用寿命的影响
基于路径图的平面毛坯尺寸基准的研究
多功能刀具
CAXA制造工程师在数控铣削加工中的应用
利用五轴数控铣床进行曲面切削的方法
数控铣床刀具选择探究