五轴数控加工仿真系统的设计
2018-04-18褚人宇杨忠林潘炳伟
褚人宇, 杨忠林, 潘炳伟
上海电气集团股份有限公司 中央研究院 上海 200070
1 研究背景
数控加工仿真是虚拟制造的一个重要基础和分支。在数控加工中,刀具运动过程由数控指令程序控制完成。为了保证能正确有效地加工出合格零件,数控程序的仿真验证是十分重要的环节。20世纪90年代中后期,伴随着虚拟制造技术的发展,出现了虚拟机床这一新技术。作为虚拟制造的支撑技术之一,虚拟机床技术具有巨大的经济效益和广阔的应用前景。作为数控加工几何仿真技术的一部分,虚拟机床加工系统的基本要求是能够在计算机上描述真实加工过程[1]。
目前,国外对于数控加工几何仿真技术的研究已取得一定成果。美国马里兰大学开发了用于培训数控操作人员的虚拟数控机床仿真器。美国CGTech公司开发了VERICUT数控仿真软件,不仅能实现分析切削状态的功能,而且能增强多轴仿真[2]。韩国Turbotek公司开发了面向培训的虚拟数控铣削加工环境,能够实现数控加工的几何仿真,并配有声响信息。日本索尼公司研制了FREDAM系统,可以对球头铣刀加工自由曲面过程进行三维仿真,并进行干涉碰撞检查[3]。意大利博洛尼亚大学用B样条曲面建立了端铣刀与工作台模型,采用真实感图形显示铣床精加工过程。法国达索公司的CATIA软件可以使机床仿真加工模拟达到四维空间[4-8]。与此同时,国外一些著名计算机辅助设计、制造软件,如UG、Pro/E、MasterCAM等在国内也得到了广泛应用[9]。
目前,我国的虚拟加工系统无论在功能、可靠性,还是在加工仿真效果上都不及国外同类系统,尤其是在五轴加工仿真方面还有所欠缺,也没有真正形成具有自身特色的工程化、商业化虚拟加工系统[10]。另一方面,多数国外软件存在价格昂贵、性价比低、对运行环境要求高、不符合国内用户操作习惯等缺点。因此,进一步研究虚拟加工技术,不断提高国产虚拟加工系统的性能,是非常有必要的。
2 系统结构设计
应用Visual C++ 2010调用OpenGL函数,再辅之以3DS Max与UG进行可视化三维仿真开发,充分结合OpenGL强大的三维图形功能和 Visual C++ 完善的界面功能,面向对象编程。五轴数控加工仿真系统中,几何基础模块包含机床模块、工件模块、刀具模块。向程序中导入数控代码,通过OpenGL动画处理形成数控加工过程的仿真。图1为五轴数控加工仿真系统层次结构图。
图1 五轴数控加工仿真系统层次结构图
3 仿真数据建模
3.1 STL数据
STL是三维实体造型统一接口文件格式,目前已被工业界认为是快速成形领域的标准描述文件格式。传统的计算机辅助设计、制造软件,如UG、Pro/E、SolidWorks等,都能导入导出图形STL文件,实现三维图形的显示。STL文件包含二进制格式与ASCII码格式,出于编程方便考虑,笔者采用ASCII码格式。ASCII码格式的STL文件逐行给出三角面片的几何信息,每一行以1个或2个关键字开头。STL文件中信息单元facet是一个带矢量方向的三角面片,STL三维模型就是由一系列这样的三角面片构成的。整个STL文件的首行给出了文件路径及文件名。在STL文件中,每一个facet由7行数据组成,facet normal是三角面片指向实体外部的法矢量坐标,outer loop说明随后的3行数据分别是三角面片的3个顶点坐标,3个顶点沿指向实体外部的法矢量方向逆时针排列。
ASCII码格式的STL文件结构如下:
Solid filename stl∥文件路径及文件名
Facet normal x y z∥三角面片法向量的3个分量值
Outer loop
Vertex x y z∥三角面片第一个顶点坐标
Vertex x y z∥三角面片第二个顶点坐标
Vertex x y z∥三角面片第三个顶点坐标
End loop
End facet∥完成一个三角面片定义
根据文件格式的特点,笔者应用C++标准库中的ifstream类型定义对象,绑定待读取的STL文件。再采用逐行读取的方式用标准库中的string类型getline函数从ifstream对象绑定的STL文件中读入数据。由于只需用到其中的顶点信息,因此通过判断字符Vertex,然后读取其后数据即可完成。通过定义以下数据结构储存STL文件的信息:
typedef struct mySTLtriangle{∥定义绘制图形的数据结构
float normal[3];∥三角面片法向量的3个分量值
float a[3]; ∥三角面片第一个顶点坐标
float b[3]; ∥三角面片第二个顶点坐标
float c[3]; ∥三角面片第三个顶点坐标
}mySTLtriangle;
将STL文件读入系统后,通过OpenGL绘图机制,绘制三角面片,并且将图形显示出来。
3.2 3DS数据
3DS Max是一套多功能三维动画软件,集实体造型、静态着色和动画创作于一体。3DS Max能够与AutoCAD进行图形信息交换,利用扫描仪输入图形,通过视频图形阵列与电视转换接口可以将动画输出至电视等。
3DS文件基于块概念存储,块描述了场景、视图状态、材质、网格数等数据。每个块都包含一个标志和下一个块的偏移量。基于这种块结构,可以根据实际需要选择块。对于不需要的块,可以跳过,直接处理下一个块。图2所示为3DS文件结构。
图2 3DS文件结构
根据3DS文件的结构,采用面向对象技术,将3DS文件对三维模型的描述信息进行数据抽象,先定义一系列结构用于存放材质、位置矢量、关键帧等, 然后定义用于处理3DS文件中各种对象的C3DS类和处理对象的C3DS 序列。
C3DS类中主要包含以下成员变量:
float * x,* y,* z; ∥对象的几何位置坐标
float * nx,* ny, * nz; ∥对象的法向量
int * faces; ∥对象的面
tMaterial materials; ∥对象的材质
char* name; ∥对象的名称
此外,还需要定义读入3DS文件的CLoad3DS类。
4 加工算法实现
仿真模拟实际工件切削是五轴数控加工仿真系统的核心功能。为体现数控加工时的实际切削效果,在建立毛坯模型时在Z-Map模型的基础上将模型表面离散为三角形网格。具体可分为两步,首先将毛坯假定为长方体,将长方体在XOY平面投影的长方形按一定精度离散为M×N个均匀分布的正方形网格,各网格交点向Z轴作单向射线,长度根据需要加工的毛坯高度而定;然后将射线终止点按照一定规则连接为三角形网格面,即为毛坯的上表面。毛坯模型如图3所示。
图3 毛坯模型示意图
由于将毛坯上表面离散为三角形网格,因此毛坯被切削相当于三角形网格面部分顶点Z坐标发生变化。在切削过程中,毛坯模型受到影响的三角形网格面顶点在XOY平面都有对应的投影,因此只需遍历XOY平面,通过判断刀具在XOY平面的投影是否落在毛坯在XOY平面的投影之中,就可知晓毛坯是否被刀具切削。如图4所示,立铣加工中,设刀具在XOY平面的投影为P(x,y)。刀具为立铣刀,在XOY平面的投影为圆形,设其半径为r,点Q(xQ,yQ)为毛坯在XOY平面投影任意点。设立铣刀的刀头中心点为z,毛坯上表面Z轴坐标为zQ,若Q点在以P点为圆心、r为半径的圆内,同时毛坯上表面zQ坐标值大于刀头中心点z坐标值,则毛坯被切削。即如果满足下式,则毛坯被切削:
图4 XOY平面投影示意图
(1)
在算法实现上,将Z-Map模型离散后的线段表示为如下数据结构:
public class ZMapLine {
float startZ; ∥Z-Map模型直线段起点
float endZ;∥Z-Map模型直线段终点
}
public class ZMapLineList {
float x; ∥Z-Map模型投影点X轴坐标
float y; ∥Z-Map模型投影点Y轴坐标
List
int m_LineTotally; ∥在单个投影点上对应的直线段数量}
同理,五轴加工的切削过程可以看作是多个前一刀位与当前刀位的集合,前一刀位切削到而当前刀位没有切削到的区域就是已加工区域。如图5所示,阴影区域即为切削过程中已完成切削的部分。
图5 刀具切削投影示意图
最终得到三维切削效果,如图6所示。
图6 三维切削效果图
5 系统实现及效果验证
五轴数控加工仿真系统基于Window 7操作系统,利用Visual C++ 2010 的MFC模块,同时调用OpenGL图形库实现,系统流程如图7所示。
图7 五轴数控加工仿真系统流程
五轴数控加工仿真系统界面如图8所示。
图8 五轴数控加工仿真系统界面
在界面中按照前述方法导入机床模型数据和工件毛坯数据,根据输入的数控加工程序进行加工,系统仿真结果如图9所示。
图9 系统仿真效果图
6 结论
在分析虚拟仿真技术现状的基础上,建立了STL与3DS数据模型,搭建了虚拟加工环境,提出了加工仿真算法,进而设计了五轴数控加工仿真系统,并通过仿真试验进行了验证。这一系统仿真效果良好,具有一定的实用与推广价值。
[1] 王子才.仿真科学的发展及形成[J].系统仿真学报,2005,17(6): 1279-1281.
[2] 朱秀梅.基于Vericut平台的数控机床仿真系统研究[D].济南: 山东大学,2009.
[3] 李云靖.三维数控铣削加工仿真系统的研究[D].长春: 吉林大学,2005.
[4] 苗运歌.基于OpenGL的数控铣削曲面加工几何仿真技术研究[D].沈阳: 沈阳航空工业学院,2008.
[5] 朱国涛.三轴数控铣削加工的仿真建模与软件实现[D].哈尔滨: 国防科学技术大学,2006.
[6] 黄雄.三轴数控铣削加工仿真系统的研究与实现[D].武汉: 华中科技大学,2007.
[7] 计开顺.五轴侧铣加工刀轴矢量的优化研究与应用[J].装备机械,2016(4): 39-42.
[8] 陈晓兵,廖文和.利用特征刀位点的三角网格表面NURBS刀轨生成[J].计算机辅助设计与图形学学报,2010,22(9): 1587-1592.
[9] 吴福忠.点云曲面等残留高度刀具路径规划[J].计算机集成制造系统,2012,18(5): 328-334.
[10] 邓志华,王霄,刘会霞.基于测量数据直接生成 NC 加工轨迹的方法研究[J].机床与液压,2006 (9): 72-74.