一种基于OpenGL的圆柱形工件螺旋加工截面廓形计算方法与流程

文档序号:14292474阅读:244来源:国知局

本发明涉及计算机辅助设计与制造和计算机图形学领域,具体为一种基于opengl的圆柱形工件螺旋加工截面廓形计算方法。



背景技术:

螺旋槽结构是机械系统中一种非常重要的结构形式,譬如斜齿轮的齿槽、各种铣刀的容屑槽、螺旋拉刀的容屑槽和压缩机转子的齿型等。这些螺旋结构具有固定的螺距和半径,它们通过回转刀具(砂轮)沿着指定的螺旋运动轨迹实现加工。螺旋槽结构的精确制造对其自身的工作性能有着决定性的影响。这些螺旋结构的加工工问题分为正向问题和逆向问题两类。正向问题是已知刀具廓形和安装位置,求解加工出的工件截面廓形;逆向问题是已知目标工件截面廓形,求解合适的砂轮廓形和安装位置。其中正向问题也是逆向问题求解的一个重要基础。对于正向问题,目前的主要解法有基于包络原理的解析方法,基于接触点共法线准则的解析法,以及将刀具离散为一系列薄片与工件截面求交点的离散方法几种。其中,解析法可以获取精确的廓型解,但是方程求解复杂,涉及到超越方程的求解,刀具廓形存在奇异点时甚至会出现不收敛的情形,无法得到可行解的情形;离散法在提高精算精度的前提下,可以支持工程使用,但是方程求解计算量也非常巨大。这些方法每处理一个新的计算案例时,所有的计算方程都需要进行改动,必要的求解调节控制参数也需要人为设定,实现过程复杂。



技术实现要素:

针对现有技术中存在的问题,本发明提供一种基于opengl的圆柱形工件螺旋加工截面廓形计算方法,能够良好的运行于多种操作系统,易于软件化的跨平台,虽然属于离散法系列,但是其计算精度可以设定调节,满足工程应用。

本发明是通过以下技术方案来实现:

一种基于opengl的圆柱形工件螺旋加工截面廓形计算方法,包括,

步骤1,在模型空间建立圆柱形工件的模型坐标系,形成刀具扫掠体与工件轴截面的三维几何体,并进行工件设计参数的初始设置;

步骤2,基于计算机图形学渲染机制,将模型空间中刀具扫掠体与工件轴截面的三维几何体按照视景体和视口的方式进行组织,实现垂直于工件轴截面的正交渲染;基于计算机渲染中的z-buff,通过opengl的深度测试和模板测试设置条件组合,对刀具扫掠体与工件轴截面的交点进行标识;

步骤3,通过标识建立opengl中视景体像素点索引与模型空间之间点的映射关系,将刀具扫掠体与工件轴截面的交点进行提取,并转换到模型空间,进行无效点的剔除,得到最终的轴截面加工廓形。

优选的,步骤1具体包括如下步骤,

步骤1.1,在模型空间中,按照刀具相对于工件的螺旋运动,构建n个密化的刀具空间离散几何体,以此近似等效刀具的空间扫掠体;其中,起始位置和终止位置的刀具几何体sc,1和sc,n完全位于工件轴截面sw的两侧;

步骤1.2,在模型空间中建立工件轴截面,并选择工件轴截面的局部矩形区域k;所述的局部矩形区域k包含完整的轴截面加工廓形,由其模型坐标系中的左下角坐标[xs,ys]和右上角的坐标[xe,ye]确定。

进一步的,步骤2具体包括如下步骤,

步骤2.1,设定局部矩形区域k在x轴和y轴方向渲染的像素点个数nx和ny,并建立计算使用的二维整数数组buf1[nx][ny]和buf2[nx][ny];

步骤2.2,配置好opengl的基本环境;

步骤2.3,设置渲染视角与工件的回转轴线z轴平行,

步骤2.4,设置渲染视景体为正交视图,指定视景体的底面对应局部矩形区域k,深度方向[znear,zfar]包含完整的刀具空间离散扫掠体和工件轴截面;

步骤2.5,进行第一阶段渲染,沿工件轴向,显示工件轴截面与刀具扫掠体大于工件轴截面的视体部分;

步骤2.6,进行第二阶段渲染,沿工件轴向,显示工件轴截面与刀具扫掠体小于工件轴截面的视体部分;

步骤2.7,将第一阶段渲染和第二阶段渲染的计算结果通过opengl的深度测试和模板测试存储在数组buf1和buf2中,对刀具扫掠体与工件轴截面的交点进行标识。

进一步的,步骤2.3中,通过opengl中的函数gllookat(),实现渲染视角与工件的回转轴线z轴平行设置。

再进一步的,步骤2.4中,通过opengl中的函数glortho(xs,xe,ys,ye,znear,zfa)实现渲染视景体的正交视图设置。

再进一步的,步骤2.5和步骤2.6通过将对应的渲染步骤以opengl的程序语言进行程序块封装,分别在opengl中进行存储、调用和执行。

再进一步的,步骤3具体包括如下步骤,

步骤3.1,识别buf1和buf2中数值同时大于1的元素,得到其对应的索引(i,j),然后按照下式通过索引(i,j)计算出模型空间中工件轴截面上的离散点(xi,yj);

步骤3.2,按照下式剔除步骤3.1中得到的离散点中所有位于工件外径rw上及之外的点,仅保留工件轴截面内的廓形点,工件轴截面的廓形点计算完成,得到圆柱形工件的螺旋加工廓形;

进一步的,步骤3.1通过将对应的离散点识别步骤以编程语言进行程序块封装,在模型空间建立软件中进行存储、调用和执行。

优选的,通过cad软件形成模型空间,并在模型空间建立圆柱形工件的模型坐标系。

与现有技术相比,本发明具有以下有益的技术效果:

本发明通过opengl在图像空间求解圆柱形工件螺旋槽特征加工的轴截面切削廓形,基于计算机图形学渲染机制,将模型空间中刀具扫掠体与工件轴截面的三维几何体按照视景体和视口的方式进行组织,由此实现垂直于工件轴截面的正交渲染。然后,基于计算机渲染中z-buff这一概念,借助opengl的深度测试和模板测试设置条件组合,对刀具扫掠体与工件轴截面的交点进行标识。随后,通过视景体像素点索引与模型空间之间点的映射关系,将刀具扫掠体与工件轴截面的交点进行提取,并转换到模型空间,进行无效点的剔除,得到最终的轴截面加工廓形。该方法不受制于解析法中的奇异性问题约束,具有良好的普适性。同时,该方法将大量的计算转换为计算机中像素的渲染计算,通过gpu硬件潜在的完成计算,无需针对每一问题的特定计算,编程简单并且计算效率高。

附图说明

图1为本发明基于opengl的螺旋槽加工轴截面廓形计算原理示意图。

图2为图1中的工件轴截面局部矩形区域k的示意图。

图3为图1中的图像空间像素点示意图。

图4为本发明实例所述的给定参数下场景渲染结果示意图。

图5a为本发明实例所述按照渲染计算程序块渲染第一次得到的渲染图。

图5b为本发明实例所述按照渲染计算程序块渲染第二次得到的渲染图。

图6为本发明实例所述的最终得到的工件轴截面廓形计算结果。

具体实施方式

下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。

本发明所述的方法将能够形成一个通用的算法框架,并将各种算法通过函数的形式直接封装起来,仅需要输入刀具的cad模型或截面表达式,设定加工运动即可,即可自动完成螺旋特征的轴截面廓形。该方法具有良好的普适性,适于软件化实现,可以支持同类任意问题,无需针对每一问题进行解析计算的编程求解等。同时,该方法能够将大量的显式运算借助opengl函数通过计算机硬件(gpu或者早期cpu模拟gpu)完成计算,无需人工编程等,降低了出错概率,并且计算效率极高。

从离散求解角度进一步展开分析,工件截面加工廓形的求解等价于求取刀具运动扫掠体与工件截面的交线。由计算机图形渲染原理角度分析可知,交线为一系列具有相同深度点值点的集合。因此,可以将传统的空间几何建模问题求解转换到另一个全新的视角,即从图像空间角度来进行计算,这就是转入了gpgpu的范畴。opengl作为一种强有力的跨平台的计算机图形学标准,能够支持多种操作系统,非常方便使用。因此,借助opengl在图像空间对螺旋加工特征的截面廓形进行建模与分析,是一种新且有效的手段。并且,能够以几何模型的方式代替刀具形状表达式,对于该类问题的求解具有更好的普适性。

本发明针对回转类工件如齿轮、铣刀、转子加工中刀具给定前提下工件轴截面廓形的计算,要求工件毛坯为圆柱体,刀具绕工件回转轴线按照给固定半径固定导程的螺旋轨迹执行切削运动。

以下部分,首先简单介绍计算原理,然后给出计算所需的数学模型,最后给出完整的计算流程和对应的程序段,保证按照该流程可以完整实现工件螺旋特征加工轴截面的廓形。

计算原理:

从计算机图形学中的图形渲染角度分析:首先,如图1所示,将工件放置于一个视景体空间内,令视口与工具回转轴线平行。这时,视景体底面每一像素点对应一个z-buff的值,在z深度方向具有系统默认的232的分辨精度。值得注意,每一个像素点也对应着视景体空间(即模型空间)内的一条射线,当给定深度值z时,即对应着视景体空间内的唯一点。从渲染角度看待可知,视景体空间中刀具空间扫掠体与工件轴截面相交的点应该具有相同的z深度值。假设视景体中工件轴截面处对应的z深度值为0,因此刀具扫掠体渲染后视景体底面z-buff中深度值为0的表面上对应的z深度等于0的点即为与工件轴截面相交的点。对于该条件,可以在opengl中借助深度测试和模板测试的不同作用条件组合,以离散点的方式得到确定。

计算模型:

输入:刀具几何体sc;刀具相对于工件的螺旋运动——线性速度v和角速度ω;工件的截面sw(半径为rw的圆);工件的轴截面z坐标;空间轴截面显示区域k,左下角坐标[xs,ys]和右上角坐标[xe,ye];视景体z向范围[znear,zfar]。

输出:轴截面廓形离散点

计算步骤:

part-1:模型空间的数据准备

步骤1:按照刀具相对于工件的螺旋运动(v和w),构建n个密化的刀具空间离散几何体,以此近似等效刀具的空间扫掠体,如附图1所示。要求起始位置和终止位置的刀具几何体sc,1和sc,n完全位于工件轴截面sw的两侧;

步骤2:选择工件轴截面的局部矩形区域k,要求包含完整的轴截面加工廓形。该区域由左下角坐标[xs,ys]和右上角的坐标[xe,ye]确定;

part-2:在图像空间计算

步骤3:设定局部矩形区域k在x轴和y轴方向渲染的像素点个数nx和ny,并建立计算使用的二维整数数组buf1[nx][ny]和buf2[nx][ny];

步骤4:配置好opengl的基本环境,此步骤的操作内容为标准操作;

步骤5:设置渲染视角与工件的回转轴线z轴平行,通过函数gllookat()实现;

步骤6:设置渲染视景体为正交视图(不能使用透视视图),指定视景体的底面正好对应k区域,深度方向[znear,zfar]包含完整的刀具空间离散扫掠体和工件轴截面,通过函数glortho(xs,xe,ys,ye,znear,zfa)实现;

步骤7:按照下述程序块进行第一阶段渲染:

步骤8:按照下属程序块进行第二阶段渲染:

至此,隐性的计算完成,计算结果存储在数组buf1和buf2中。

part-3:返回模型空间提取工件轴截面廓形

步骤10:识别buf1和buf2中数值同时大于1的元素,得到其对应的索引(i,j),然后按照下式通过索引(i,j)计算出模型空间中工件轴截面上的离散点。

需要注意式中y坐标的计算,这时由于视口内像素坐标系是以屏幕左上角为原点,水平向右为x轴正方向,竖直向下为y轴正方向。

该步骤的具体实现程序块如下(根据编程语言调整命令格式):

步骤11:按照下式剔除上一步骤得到的离散点中所有位于工件外径rw上及之外的点,仅保留工件轴截面内的廓形点,

至此,工件轴截面的廓形点计算完成,其邻接的拓扑关系可以通过数字图像处理的轮廓搜索等多种算法得到,不属于本发明范畴。

具体的,以一个砂轮加工螺旋槽为例进行计算说明。以visualstudio2008为平台,借助c++语言和opengl环境搭建计算平台。

数据准备:

构建砂轮cad模型,然后导出stl密化面片模型文件,在该平台上可以通过opengl实现渲染;指定工件圆柱体的外径rw和空间深度zw;设定砂轮扫掠体的空间运动起始、终止位置和密化数量;指定工件轴截面区域k。设定完毕后,场景可以渲染如图4所示。

程序计算:按照渲染计算程序块执行第一次,得到渲染图5a所示的场景:沿工件轴向,显示工件轴截面与刀具扫掠体大于工件轴截面的视体部分;然后执行程序块第二次,得到渲染图5b所示的场景:沿工件轴向,显示工件轴截面与刀具扫掠体小于于工件轴截面的视体部分。至此,渲染的数据已经通过opengl的深度测试和模板测试存储在buf1和buf2中。

结果提取:按照廓形提取算法,识别出所有的有效点,然后将其转换回模型坐标系。随后,按照半静约束关系剔除工件截面半径及其之外的点,最终结果如图6所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1