1 系统总体结构设计
本文所研制仿真系统总体结构如图 1所示,系统主要由程序代码编辑、加工过程和动画仿真两大模块组成. 代码检查器检查错误,并通过编译得出可执行数据,从而得到刀具轨迹,以此来驱动加工过程. 动画仿真模块由人机交互得到的加工条件等信息,并生成和显示虚拟加工环境. 动画仿真是整个系统的核心模块.
2 数控仿真系统具体实现
2. 1 数控代码编辑模块
数控代码编辑模块提供一个文本编辑器,可以用来创建和打开数控代码文件,其数控代码文件没有设立专门的扩展名,而是用文本文件的扩展名,这样可以在别处编辑,而后在此打开. 编辑器内提供一些简单的文本编辑功能,如复制、粘贴、剪切、撤销等. 此外编辑器也具有提示功能,当代码被更改和尚未存储时,再打开或新建另一个代码文件时,自动提示用户保存文档,文本编辑器内还有快捷菜单,方便了操作. 编辑器对数控代码的长度可以说是没有限制的. 应用程序界面如图 2所示.
2. 2 程序代码检查编译模块
数控加工具有加工内容具体和严密的特点,所以在编制数控程序时需要分析考虑的内容较多,例如数控系统的基本功能,数控程序的结构,数控指令的作用、应用格式,零件图纸的技术特性,几何形状、尺寸及工艺要求等.
2. 2. 1 语法检查
语法检查主要是检查一些不符合要求的非法字符及参数错误或者拼写错误. 对于系统不能识别的指令同样给出提示.
2. 2. 2 数控代码的转换
数控代码在编辑好后存盘, 并通过了错误检查,此时计算机并不能识别,需要将其转化为相应的内容以供程序来识别[ 3 ]. 对于发现的错误给出相应的提示,包括: 错误的详细信息、错误所在编辑其中的位置. 用鼠标双击改错误信息,可到达相应的行. 具体实现采用的方法是: 建立一组结构体来记录数控指令的相关信息,按照数控指令的格式,把此序列按程序段和程序的格式来存储. 即一个程序是由几个程序段序列组成,程序段则是由数控指令序列组成.结构体如下:
2. 3 动画仿真模块
2. 3. 1 o p e n g l简介
科学可视化、计算机动画和虚拟现实是近年来的热门话题,而这些热门话题中的核心技术都是三维真实感图形显示. 当前三维图形显示在各个领域内都有广泛的应用. o p e n g l是目前比较完善的三维图形标准,它是s g i 公司推出的. o p e n g l被严格定义为“一种到图形硬件的软件接口”. 从本质上说,它是一个*可移植并且速度很快的 3 d图形和建模库. o p e n g l不是像c或c++ 那样的编程语言,它更像一种运行时库,提供一些预封装的函数.
2. 3. 2 轴的模型的建立
在进行三维动画显示之前,我们必须对轴的模型加以确定,因为车削时需要改变轴的尺寸,因此必须用一种方法来记录轴上面的尺寸. 用下面的结构体来表达轴上的尺寸信息:
程序实现刀具切削轴的过程如下: 从转换后的数控指令里读出数据,进行插补,将插补后的点存入一个数组中来控制刀具移动路线. 同时根据刀具在其预定轨迹的某一个位置来确定轴被刀具切削掉的部分,进而改变轴上面的片的坐标,这样轴的尺寸就被改变了.
2. 4 仿真显示模块
加工仿真就是利用计算机图形技术,让计算机模拟真实的加工过程,通过动画的形式形象、直观地模拟数控加工的切削过程. 零件仿真画面在屏幕切分窗口的显示区域显示. 用户可以调节切分窗口大小,旋转图像观看加工工件. 通过仿真结果的可视化显示,可以发现错误,修改工艺文件,优化加工方案. 根据计算机动画原理,每秒显示 25幅以上的切削加工场景,整个加工过程的演示就是连续的.用o p e n g l的双缓存( d o u b l e b u f f e r i n g ) 技术可以方便地实现刀具相对运动过程的动画仿真. 双缓存提供两个颜色缓存,在一个缓存中显示帧时,在另一个缓存中绘制帧. 在绘图时,数控加工仿真系统根据插补计算得到的刀位轨迹值,在屏幕上实时地显示刀具的变化情况. 对于每一个计算出的插值点,刀具就进给一步,系统即刷新一次,此时在后台缓存进行建模及对模型进行变换,在前台缓存显示由后台缓存已计算好的画面,如此反复,终动态显示切削加工过程. 另外还利用 o p e n g l的显示列表技术和局部刷新技术防止场景的颤动,增强切削场景的显示效果.
分析数控车床加工的特点: 数控车床的毛坯通常为棒料,为回转体零件,而且刀具做的只是x方向和z方向上的二维运动. 因此在本系统的仿真算法中,首先将毛坯进行细分为单位厚度的小圆柱单元,小圆柱单元的厚度根据仿真所需的精度和显示效果来决定[ 4]小圆柱单元的具体的数据结构为:
读入经过程序处理模块得到的仿真驱动信息,即刀具运动信息,得到车刀刀尖处的位置( x t ,z t) ,根据z t确定刀具经过的小圆柱单元在工件数组中的位置,也就是确定哪个单元体被切削. 然后比较该单元体的直径和刀尖点的x t坐标,确定该单元体是否被切削.具体的实现命令如:
对工件数组进行遍历,根据工件数组中数据绘制相应的单元体,也就显示了加工后的工件.
2. 5 动画的实现
三维动画仿真中,本系统采用o p e n g l双缓冲区实现动画仿真. 使用双缓冲实现动画仿真可以避免程序在运行时产生闪烁,从而使动画看上去更加连续. 动画时增加了光照,看上去更具真实感. 双缓存动画技术就是多页面切换技术,这种技术称为“页面共振”技术. 对于某些图形系统,显示模式允许有一个以上的显示页面,其中一页被定义成主显示页面,其余页面作为图形显示的缓存页. 在主显示页显示的同时,下一幅图形可放置在工作页面上,然后再把工作页切换成主显示页,如此反复进行,每次用新图形代替旧图形,从而形成动态变化过程.
图形显示模块主要负责刀具、夹具和主轴的绘制工作,而数据处理则是负责插补运算和刀具切削轴的计算,实现了数据和显示分离,具有较好的模块性. 仿真效果如图 3所示.
2. 6 切削仿真过程实现
为了得到连续、动态的切削效果,屏幕画面必须不断刷新. 由于是可旋转的三维图像,每次刷新时仅将切削处重画是不行的,必须将整根轴重画.但如果将整根轴*重画,计算量大、耗时长、效率低,为此,利用了显示表对切削过程的模拟进行优化. 在上面提到的轴节点中,有一g l u n i t 类型属性量i n d e x ,即是该节点的显示表. 这样,该节轴在没有变化之前,程序里实际上只画了一次,即将绘图命令执行结果存储在缓存中,以后每次显示时只需执行g l c a l l l i s t ( i n d e x ) 即可. 由于采用了面向对象的列表结构,整根轴的显示可以转化为列表的遍历,依次调用每个节点的显示表,迅速完成图形显示. 而且,复杂的切削过程也转化为对列表和各个节点的操作,如在某段柱体上切削圆弧只需在柱节点前插入一圆弧节点,同时将原柱体分为 2段, 1个节点分为 2个,前面的节点代表圆弧未曾涉及的部分,长度由 b3到e3( 如图 4所示) .
该节轴只需绘制一次,将绘制结果存入该节点的显示列表即可,后面的节点涉及被圆弧覆盖的部分,长度由b2到e2. 随着切削的进行,每次屏幕刷新前只需将被覆盖柱与圆弧进行重画,生成该节点新的显示表,轴的其他各节显示表不变. 随着圆弧不断变长,即圆弧节点属性e n d( e) 值变大,被覆盖柱节点不断变短,即其属性 b e g i n( b2) 值变大,直至柱节点的 b e g i n( b2) 等于a i m e n d ,删除该柱节点,圆弧即加工完毕.
采用面向对象的方法,使抽象、复杂的切削过程具体化、简单化、对象化,将切削动作转化为对 2个或数个相关节点的操作,不仅提高了编程效率,增强了系统的可维护性,而且大大提高了系统的可靠性.
3 结语
o p e n g l技术以其强大的性能为三维仿真系统开发提供了有力的工具. 面向对象的设计方法更侧重于用计算机语言对现实世界进行抽象归纳、描述,而不是对过程、数据的处理,因而使得整个设计过程更加简洁、可靠. 基于上述思想,我们开发出三维数控机床仿真系统,该系统以某型数控车床为蓝本,可三维、动态仿真其所有常用指令,且集显示窗口、操作面板、信息提示和指令输入于一体,具有良好的界面和的仿真效果,该系统在wi n d o w s 98环境下用v i s u a l c++6. 0实现.经验证,该系统具有良好的界面和交互性; 较好地实现了数控程序进行正确性检查; 可以同步显示加工代码和工件切削状态,以验证加工代码编写的正确性; 可以判断诸如刀具与夹具干涉等错误;在显示过程中还可以旋转、放大、缩小对象,使操作者可以从任何角度清楚地观察刀具切削的过程.
本文由 伯特利数控文章 整理发表,文章来自网络仅参考学习,本站不承担任何法律责任。
/bethel/news/
神州无甲醛玻璃棉甲醛含量
膨胀型阻火模块厂家介绍其优点
D661-4651现货
钢铁行业实施超低排放改造,注重无组织排放治理和运输方式的清洁化改造
净化P165705液压油滤芯清洗或更换的方法
探讨OpenGL仿真切削
气体采样解决方案
1200*600 600*600 *岩棉板 国标岩棉板直销
新能源纯电动扫地车常见小故障解析及解决方案
旅游景区自动气象站故障维修
枕式包装机诞生的缘由
LUV-II紫外加速老化试验箱操作步骤
温湿度记录仪在医药冷链验证中的应用
出售承诺回收二手离心脱水机
电加热反应釜的选型注意要点及使用保养
固定污染源烟气排放监测防爆分析站房(小屋)
介绍龙门冲床维护和保养要求
常见有机化合物的化学需氧量
聚氨酯直埋保温结构的施工方法
线切割加工的工件的装夹与调整