数控加工教学平台仿真.doc

上传人:鲁** 文档编号:561930545 上传时间:2022-12-03 格式:DOC 页数:6 大小:206.52KB
返回 下载 相关 举报
数控加工教学平台仿真.doc_第1页
第1页 / 共6页
数控加工教学平台仿真.doc_第2页
第2页 / 共6页
数控加工教学平台仿真.doc_第3页
第3页 / 共6页
数控加工教学平台仿真.doc_第4页
第4页 / 共6页
数控加工教学平台仿真.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数控加工教学平台仿真.doc》由会员分享,可在线阅读,更多相关《数控加工教学平台仿真.doc(6页珍藏版)》请在金锄头文库上搜索。

1、基于OpenGL的数控加工教学平台的建模与仿真摘要:文章以 Windows XP为开发平台,以 开放式图形开发库OpenGL及Visual C+6.0 软件为开发工具,建立了数控加工教学平台中的几何模型和运动模型并论述了其编程原理。关键词:数控教学平台;建模;数控仿真;OpenGLAbstract: This paper uses Windows XP as developing platform, uses OpenGL and Visual C+6.0 software as developing tool to build geometry model and movement mode

2、l of NC Teaching Platform and the principle of program is expounded.Key words: NC teaching platform; modeling; NC simulation; OpenGL 0 前言二十一世纪机械制造业的竞争,其实质是数控技术的竞争。近年来,国内外都十分重视数控教学。数控教学大致包括一般数控知识的教学和实际操作技能的培训两部分内容,相应的培训除了必要的理论讲解,大部分工作是在数控设备上的实际操作训练。而数控设备价格昂贵,培训者的误操作还可能会危及机床设备甚至于操作者自身的人身安全。因此,数控先期教学不适

3、合在实际设备上进行。随着计算机软硬件技术、图形图像处理及虚拟加工技术的发展, 建立一个经济、高效、快捷、通用的数控加工教学平台已经成为可能。在这个数控加工教学平台上,操作者能够在生动、直观的动画环境下,数控编程、手工操作、试切对刀和数控加工,犹如在操作一台真正的数控机床。数控加工教学平台的开发需要专门的三维图形加速引擎及开发接口平台, Windows操作系统下提供了多种这样的平台 ,最常见的有 Direct3D和 OpenGL两种。下面介绍基于OpenGL的数控加工教学平台的建模与仿真。1 OpenGL建模方法OpenGL是开放式图形开发库(Open Graphics Library)的缩写,

4、是美国硅谷图像公司用C语言为图形工作站开发的图形软件。 OpenGL是一个图形和硬件的软件接口,它由几百个指令或函数组成,是一个三维的图形和模型库,在CAD/CAM 等需要高级三维对象可视化和图形绘制的领域被广泛应用,OpenGL还提供了诸如基本图元绘制、变换矩阵、着色模式、光照、反走样等方法来控制三维图形的绘制。现在,Windows操作系统全面支持OpenGL,使用户在 PC机上可用它开发图形动画产品,实现虚拟仿真。目前,OpenGL己成为新一代三维图形开发的工业标准。OpenGL建模的工作流程,如图1所示。几何顶点数据图像象素数据运算器显示列表逐个顶点操作图像操作光栅化逐个片元操作纹理映射

5、帧缓冲器图1 OpenGL建模的工作流程图1中几何顶点数据包括模型的顶点集、线集、多边形集,这些数据经过运算器、逐个顶点操作等;图像象素数据包括象素集、影像集、位图集等,图像象素数据的处理方式与几何顶点数据的处理方式是不同,但它们都经过光栅化,逐个片元 (Fragment)操作,直至把最后的光栅数据写入帧缓冲器。在 OpenGL中的所有数据,包括几何顶点数据和图像数据都可以被存储在显示列表中,或者立即可以得到处理。OpenGL中,显示列表技术是一项重要的技术。OpenGL要求把所有的几何图形单元都用顶点来描述,这样运算器和逐个顶点计算操作都可以针对每个顶点进行计算和操作,然后进行光栅化形成图形

6、碎片;对于图像数据,象素操作结果被存储在纹理组装用的内存中,再与几何顶点操作一样光栅化形成图形片元。整个流程操作的最后,图形片元都要进行一系列的逐个片元操作,这样最后的象素值送入帧缓冲器实现图形的显示。OpenGL并未提供复杂物体的建模技术,只提供了一些绘制点、线及多边形的基本建模函数,给程序员以巨大的自由发挥空间。通过基本图形的组合、平移、旋转和缩放,可得到任意三维形体。在OpenGL中,通过定义光源的颜色、透明度、位置和照射方向来定义光源。而材质反映了物体的本身特性,它决定了反射光的颜色、特性和强度。材质颜色包括环境反射光、漫反射光、镜面反射光和自身发射光。通过光源和材质的合理设置,能逼真

7、模拟出物体外观。纹理映射是真实感图形制作的一个重要部分。OpenGL提供了一系列完整的操作函数来定义、设置和调用纹理,用户可用它们构造理想的物体表面,将纹理图案用不同方式粘贴到曲面上,使三维场景中的物体更生动、更自然。2 数控加工教学平台的总体设计数控加工教学平台的具体设计目标为:(1)能实现零件装夹、自动换刀、切削成形等过程的仿真。(2)能通过键盘、鼠标、图形终端等外部设备实现人机交互。(3)能够进行刀具与夹具、工件的碰撞干涉检查。(4)能对加工误差进行分析与评价。根据上述的具体设计目标,结合现有的研究基础,数控加工教学平台的总体框架如图2所示,包括数控机床模型、刀具模型、夹具模型、工件模型

8、,通过逐条读取及编译NC代码来进行切削加工仿真及碰撞干涉检查仿真,最终实现数控加工过程的仿真教学。数控加工教学平台加工环境加工过程刀具模型夹具模型工件模型程序处理机床模型切削加工干涉检验图2 数控教学平台的总体结构3 数控加工教学平台的建模根据系统总体结构框架图,把系统划分为如下几个模块:加工环境模块、NC代码处理模块、切削加工仿真模块、碰撞干涉检查模块。3.1 加工环境建模加工环境模型主要包括机床模型、毛坯模型、刀具模型、夹具模型等, 这些模型在NC代码驱动下相互协同工作,完成加工的仿真。在这里我们需要用OpenGL和Visual C+6.0来建立模型, 从而建立符合功能要求的加工环境仿真模

9、块。基本步骤如下:(1)根据基本图形单元建立景物模型,并且对所建立的模型进行数学描述(点、线、多边形、图像和位图都看作基本图形单元);(2)把景物模型放在三维空间中的合适的位置,并且设置视点(ViewPoint);(3)计算模型中所有物体的色彩, 其中的色彩根据应用要求来确定,同时确定纹理粘贴方式等;(4)把景物模型的数学描述及其色彩信息转换至计算机屏幕上的象素。下面是建模的部分程序:void CRenderView:DrawBase() glPushMatrix(); /压入当前矩阵堆栈/DrawBoard(); /建立横向溜板、纵向工作台、工件等模块函数/glColor3f(0.8f,0.

10、8f,0.8f); /设置当前颜色/glTranslatef(-5.0f,-(2.5f+1.5f*board_ply),0.0f); /把当前矩阵乘上一个平移矩阵/auxSolidBox(base_width,5.0f,10.0f); /建立床身底座模型/glTranslatef(-(base_width/2.0f-5.0f),2.5f+pole_high/2.0f,0.0f); /把当前矩阵乘上一个平移矩阵/ glPopMatrix(); /弹出当前矩阵堆栈/3.2 NC代码处理模块NC代码是由定义了一定功能的大写字母附上数据后组合而成的,一般每条指令完成一个动作, 若干条指令按一定结构构成

11、一段程序,主要包括准备功能G代码、辅助功能M代码、进给功能F代码、主轴转速功能S代码及刀具功能T代码等。NC代码处理模块用于实现NC代码输入、显示修改及分析解释功能。程序的读取可以采用直接键盘手工输入和程序文件读入两种方式;代码解释和分析主要是分析程序的结构,通过对NC代码的理解、检查代码语法语意的正确性,经过译码、刀补计算、进给速度处理,以得到刀具中心轨迹和其它所需数据,为刀具路径建立数据表,作为仿真的驱动信息,用于模拟加工模块。NC代码的处理过程主要包括NC程序的读入以及对读入程序的词法、语法检查和解释。目前国内外的数控装置几乎都采用可变程序段“字地址格式”,国际标准化组织制定了字地址程序

12、段格式ISO6983-1-1982标准,形式如下:N G X Y Z I J K M S T F根据NC代码的特点,本系统存取、管理这些代码采用单向链表结构来实现。由于本系统数控源代码是以文本格式存储的,所以首先由C +提供的I/O流操作函数Ofstream,fstream,ifstream来实现对源代码的存取,由类ifstream读入每一程序行,将读入的程序行以字符串的格式存入text_list链表的text成员中,该链表的具体结构为: struct Pro _text CString text;int lengh; Pro text3next;对数控程序代码和数控仿真目的分析可知,我们只需

13、从数控程序中提炼与仿真系统运动部件有关的运动与状态信息,而对于那些与运动轴无关的代码,只要计算机能够识别它们并进行词法的检验就可以了。因此,遍历text_list链表对结构体中成员text进行分析,根据特定的算法,去除注释等不必要的信息,提取有用的代码信息即程序行中的指令值存入dictate _ list链表。同时该过程还完成数控程序的词法和语法的检查,若有错误的信息将其存入指定的文件中。dictate_list链表的结构为:struct Command intN; /行号 CString G; /G指令 double X; /x坐标 double Z; /z坐标 double R; /圆弧半

14、径值 double I; /圆弧中心坐标 Idouble K; /圆弧中心坐标 Kdouble F; /进给速度值int S; /S指令 CStringM; /M指令 int T; /刀具号 Command3next; /next指针 然后提取有关命令动作和状态信息,通过对已经存入缓冲区的数据结构进行分析扫描,即遍历dictate_list链表,分离出相应的信息,进行刀具轨迹的离散和插补,得到仿真的驱动信息,将其存入一定的数据结构中。3.3 切削加工仿真模块切削加工仿真模块是根据NC代码对加工环境模型中各运动部件的运动进行模拟,实现教学系统中刀具和工件之间的相对运动。该模块利用计算机图形技术,

15、让计算机模拟真实的加工过程,通过动画的形式形象、直观的模拟数控加工的切削过程。通过仿真结果的可视化显示,可以发现错误,修改工艺文件,优化加工方案。根据计算机动画原理,每秒显示25幅以上的切削加工场景,整个加工过程的演示就是连续的。用OpenGL 的双缓存(Double Buffering)技术可以方便地实现刀具相对运动过程的动画仿真。双缓存提供两个颜色缓存,在一个缓存中显示帧时,在另一个缓存中绘制帧。在绘图时,数控加工仿真系统根据插补计算得到的刀位轨迹值,在屏幕上实时的显示刀具的变化情况。对于每一个计算出的插值点,刀具就进给一步,系统即刷新一次,此时在后台缓存进行建模及对模型进行变换,在前台缓存显示由后台缓存已计算好的画面,如此反复,最终动态显示切削加工过程。另外还利用OpenGL 的显示列表技术和局部刷新技术防止场景的颤动,增强切削场景的显示效果。3.4干涉碰撞检验模块干涉碰撞检验模块主要是检验刀具和主轴相对于非加工部件如夹具、工件的非加工部位、加工工作台的干涉现象,由于加工过程由NC代码驱动,干涉出现位置的NC代码信息可及时反馈提交用户进行检查和修改。干涉检查结果需进行分析,按以下判据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号