通过数控加工程序代码快速生成三维曲面模型的方法

文档序号:6283650阅读:268来源:国知局
专利名称:通过数控加工程序代码快速生成三维曲面模型的方法
技术领域
本发明涉及通过数控加工程序代码快速生成三维曲面模型的方法。
背景技术
数控机床是一种装有程序控制系统的自动化机床。该控制系统能够逻辑地处理具 有控制编码或其他符号指令规定的程序,并将其译码,从而使机床动作并加工零件。操作人 员通过数控装置可在加工零件前预览模型,该模型表面是根据加工时刀具形状、走刀方向、 工件形状等切削条件计算出曲面关键点,并以这些理论上精确的点经过计算生成的。目前 在数控机床系统中由离散的数据点生成三维曲面的方法有1. NURBS曲面拟合的方法,通 过曲面上离散的点,反求NURBS的控制点和节点法向量;2.利用三角剖分的方法,得到最优 三角网,由三角网格生成曲面。第一种方法精度高,曲面光滑度好,但是反求和曲面拼接过 程复杂,需要大量计算,不适快速图形显示;第二种方法生成的近似曲面光滑度比前者差, 算法复杂度高,对于快速显示处理速度不理想。

发明内容
本发明所要解决的技术问题是提供一种通过数控加工程序代码的分析和处理生
成三维曲面模型的方法,以克服现有由离散的数据点生成曲面的方法的不足,快速生成三
维曲面模型,使数控加工操作人员在程序运行之前能够便捷地预览加工效果,方便对数控
加工代码检查修改和对机床的调整。 本发明的问题是以下技术方案实现的 通过数控加工程序代码快速生成三维曲面模型的方法,其步骤如下 a.读取数控加工代码,取出刀轨移动坐标点,将坐标点的X、 Y、 Z值保存到一个一
维数组M[N]中,数组的长度N为数控加工代码中坐标点的数量; b.计算出数组M中X、Y坐标的最大值和最小值,得到X和Y坐标的尺寸范围Xrang 和Yrang ;设定一个曲面显示精度常数C,根据X、Y坐标的尺寸范围和曲面显示精度,创建生 成一个二维数组float P[Lx] [Ly],这个二维数组中的数组元素总数量L = Lx礼y,其中Lx 与Ly为该数组的尺寸,Lx = Xrang/C ;Ly = Yrang/C,均取为整数;用数组M中的Z坐标的 最大值来填充整个数组P作为初值,此坐标值相当于被加工物体的表面高度值;由此便获 得了一个由二维数组P定义的XY平面上的网格; c.从数组M中依次取出两个相邻的坐标点A和B,根据步骤b所得到的网格所定 义的区块范围对线段AB进行划分以获得若干插值点,将线段AB的端点和各插值点的Z坐 标分别填充到数组P中与各点X、 Y坐标相对应的数组元素中;反复执行以上过程,对数组 P中所有元素进行填充,在填充的过程中对于已经填充过的数组元素,如果通过插值点所计 算出的Z坐标数值比当前数组元素的值要小,则用所计算出的数值替换这个数组元素;如 果所计算出的数值大于或等于当前的数组元素,则不进行替换;没有被填充的数组元素保 留为初始值,即刀轨加工过程中的最大值;这样数组P中每个数组元素对应一个Z坐标,由此获得由二维数组P定义的一组空间点阵列所描述的曲面模型; d.将步骤c生成的点阵列中每相邻的三个数据点构成一个三角面,按照法向量的 定义计算所有三角面的法向量; e.初始化所有三角形顶点法向量,取以该点为顶点的所有三角形的面法向量,累 加至该点法向量中,最后将所有顶点法向量归一化,只保留向量的方向信息,忽略长度信 息; f.将步骤d得到的三角面数据和步骤e得到的各顶点法向量的数据输入OpenGL 或Direct3D三维图形函数库中进行渲染,实现三维图形的显示。 上述通过数控加工程序代码快速生成三维曲面模型的方法,所述一维数组M[N], 其中每个元素包含X、 Y、 Z三个坐标值,为复合类型元素。 上述通过数控加工程序代码快速生成三维曲面模型的方法,所述曲面显示精度常 数C,是由用来进行零件加工的刀具直径和形状所决定的,可以由系统的使用者根据所使用 刀具的实际情况和对显示效果的要求来设定或修改。 上述通过数控加工程序代码快速生成三维曲面模型的方法,所述插值点是通过先 求出线段AB在XY平面上的投影直线与由数组P所定义的二维网格的各个交点的X、 Y坐 标,再根据交点的X、 Y坐标得到的。 本发明与现有技术相比所具有的优点为,l.处理速度快,使用线性插值的方法,既 满足了视觉上的要求,又使处理速度加快;2.显示效果好,使用OpenGL或Direct3D实现3D 效果,可以模拟各种材质,采用纹理映射使物体真实感很强,采用显示列表技术,加快显示 速度,用户移动观察角度时非常流畅;3.用途广泛,可以应用在数控机床图形编程系统中, 也可以集成在数控系统中对数控加工代码进行检测等。


下面结合附图和实施方式对本发明作进一步的详细说明
图1为本发明的实现原理流程图; 图2为本发明中按照网格区域对直线段进行插值的示意图;
图3为本发明中将网格划分为若干三角形的示意图。
具体实施例方式
如图l所示是本发明的实现原理流程图,发明中生成三维曲面模型的具体方法 为 步骤1解析数控加工代码,取出刀轨移动坐标点。将坐标点(X, Y, Z)保存到一个 一维数组M[N]中,其中每个数组元素包含X、Y、Z三个坐标值,为复合类型元素,数组的长度 N为数控加工代码中坐标点的数量。 步骤2设定一个曲面显示精度常数C,计算出数组M中X、 Y坐标的最大值和最小 值,得到X和Y坐标的尺寸范围Xrang和Yrang,根据X、Y坐标的尺寸范围和曲面显示精度, 创建一个二维数组float P[Lx] [Ly]。 其中曲面显示精度常数C是一个数控系统的全局参数,是由用来进行零件加工 的刀具直径和形状所决定的,可以由系统的使用者根据所使用刀具的实际情况和对显示效
4果的要求来设定或修改;Lx与Ly为该数组的尺寸,Lx = Xrang/C,Ly = Yrang/C,均取为整 数;这个二维数组中的数组元素的总数量L = Lx*Ly。 再利用步骤1读取到数组M中的Z坐标的最大值来填充整个数组P作为初值,此 坐标值相当于被加工物体的表面高度值。由此便获得了一个由二维数组P定义的XY平面 上的网格。 步骤3根据网格对数控加工代码中的数据进行插值并填充二维网络,获得曲面数 据。如图2所示,从数组M中依次取出两个相邻的坐标点A和B,进行线性插值。首先求出 线段AB在XY平面上的投影直线与由数组P所定义的二维网格的各个交点的X、 Y坐标,再 根据交点的X、Y坐标得到线段AB上的各插值点。将线段AB的端点和各插值点的Z坐标分 别填充到数组P中与各点X、 Y坐标相对应的数组元素中。 反复执行以上过程,对数组P中所有元素进行填充。在填充的过程中对于已经填 充过的数组元素,如果通过插值点所计算出的Z坐标数值比当前数组元素的值要小,则用 所计算出的数值替换这个数组元素;如果所计算出的数值大于或等于当前的数组元素,则 不进行替换。没有被填充的数组元素保留为初始值,即刀轨加工过程中的最大值,这样数组 P中每个数组元素对应一个Z坐标,由此获得由二维数组P定义的一组空间点阵列所描述的 曲面模型。 步骤4计算网格中所有三角面的法向量。如图3所示,设Vl(xl,yl,zl),V2(x2,y2, z2),V3(x3,y3,z3)为三角形的三个顶点,由VI, V2, V3三点形成三个向量向量V1V2,向量 V1V3和向量V2V3,则V1V2 (x2-xl, y2-yl, z2-zl) , V1V3 (x3-xl, y3-yl, z3-zl) , V2V3 (x3-x2, y3-y2, z3_z2)。设三角面的法向量坐标是(x, y, z),根据法向量定义有 '(x2一xl)氺x十(y2一yl)氺y十(z2一zl)氺z二0^ (x3—xl)伞x+(y3—yl)氺y+(z3—zl)氺z二0
、(x3-x2)*x+(y3-y2)*y+(z3-z2) *z=0
根据步骤3得到的曲面数据,取其中任一三角面的三个顶点坐标,便可用以上方 程组解出平面法向量的坐标X,y,Z,得到三角面的法向量0:^x, y, z)。
步骤5计算网格各顶点的法向量。顶点法向量是与之相邻的所有三角面的法向量 的平均值,其计算方法如下初始化所有三角形顶点法向量为^^=(0, 0, O),取以该点为顶点的所有三角形
:,累加至该点法向量中
设《、Cr2……G"为以K点为顶点的三角形的法向量,则
的法向:


V, = u, + u, +……+ u
L 1 2 w
最后所有顶点法向量归一化,保留向量的方向信息,艮卩 义=久/ l久l
其中l、l为向量义的模。
步骤6最后将步骤4得到的三角面数据和步骤5得到的各顶点法向量的数据输入
OpenGL或Direct3D三维图形函数库中进行渲染,实现三维图形的显示。
5
本发明的方法可以通过数控系统或个人电脑上的软件实现,作为一个独立的模块 应用在数控图形编程系统中,可以对生成的加工代码进行实时的显示,方便对加工代码检 查修改和对机床的调整。
权利要求
通过数控加工程序代码快速生成三维曲面模型的方法,其特征在于,它采用如下步骤进行a.读取数控加工代码,取出刀轨移动坐标点,将坐标点的X、Y、Z值保存到一个一维数组M[N]中,数组的长度N为数控加工代码中坐标点的数量;b.计算出数组M中X、Y坐标的最大值和最小值,得到X和Y坐标的尺寸范围Xrang和Yrang;设定一个曲面显示精度常数C,根据X、Y坐标的尺寸范围和曲面显示精度,创建生成一个二维数组float P[Lx][Ly],这个二维数组中的数组元素总数量L=Lx*Ly,其中Lx与Ly为该数组的尺寸,Lx=Xrang/C;Ly=Yrang/C,均取为整数;用数组M中的Z坐标的最大值来填充整个数组P作为初值,此坐标值相当于被加工物体的表面高度值;由此便获得了一个由二维数组P定义的XY平面上的网格;c.从数组M中依次取出两个相邻的坐标点A和B,根据步骤b所得到的网格所定义的区块范围对线段AB进行划分以获得若干插值点,将线段AB的端点和各插值点的Z坐标分别填充到数组P中与各点X、Y坐标相对应的数组元素中;反复执行以上过程,对数组P中所有元素进行填充,在填充的过程中对于已经填充过的数组元素,如果通过插值点所计算出的Z坐标数值比当前数组元素的值要小,则用所计算出的数值替换这个数组元素;如果所计算出的数值大于或等于当前的数组元素,则不进行替换;没有被填充的数组元素保留为初始值,即刀轨加工过程中的最大值;这样数组P中每个数组元素对应一个Z坐标,由此获得由二维数组P定义的一组空间点阵列所描述的曲面模型;d.将步骤c生成的点阵列中每相邻的三个数据点构成一个三角面,按照法向量的定义计算所有三角面的法向量;e.初始化所有三角形顶点法向量,取以该点为顶点的所有三角形的面法向量,累加至该点法向量中,最后将所有顶点法向量归一化,只保留向量的方向信息,忽略长度信息;f.将步骤d得到的三角面数据和步骤e得到的各顶点法向量的数据输入OpenGL或Direct3D三维图形函数库中进行渲染,实现三维图形的显示。
2. 根据权利要求1所述的通过数控加工程序代码快速生成三维曲面模型的方法,其特 征在于,所述一维数组M[N],其中每个元素包含X、 Y、 Z三个坐标值,为复合类型元素。
3. 根据权利要求1所述的通过数控加工程序代码快速生成三维曲面模型的方法,其特 征在于,所述曲面显示精度常数C,是由用来进行零件加工的刀具直径和形状所决定的,可 以由系统的使用者根据所使用刀具的实际情况和对显示效果的要求来设定或修改。
4. 根据权利要求1所述的通过数控加工程序代码快速生成三维曲面模型的方法,其特 征在于,所述插值点是通过先求出线段AB在XY平面上的投影直线与由数组P所定义的二 维网格的各个交点的X、 Y坐标,再根据交点的X、 Y坐标得到的。
全文摘要
通过数控加工程序代码快速生成三维曲面模型的方法,属机床数控技术领域。其技术方案是利用数控加工程序代码中的数据,将其中的直线段进行线性插值,填充一个二维网格,将每个网格划分为两个三角形,并对每个三角形的顶点求平均法向量,再利用OpenGL或Direct3D渲染成最终三维模型。本发明的优点是处理速度快,显示效果好。本发明可以应用在数控机床图形编程系统中,也可以集成在数控系统中对数控加工代码进行检测等。
文档编号G05B19/4097GK101751005SQ200810204178
公开日2010年6月23日 申请日期2008年12月8日 优先权日2008年12月8日
发明者张楠, 蒋知峰 申请人:上海开通数控有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1