APP下载

基于STEP-NC的NURBS曲面刀具轨迹规划*

2013-06-28梁文潮

机械研究与应用 2013年3期
关键词:控制顶点字符曲面

梁文潮,张 平,贺 明

(广东工业大学 机电工程学院,广州 广东 510006)

1 引言

现代制造技术正逐步向智能化、网络化、集成化、全球化方向发展,传统的数控技术越来越不能适应这种发展趋势的要求,必须进行改革创新来迎合这种发展趋势。传统数控编程接口(G、M代码)存在的缺点:信息量少、现场编程修改困难、信息只能单向传递等。新一代数控编程接口STEP-NC旨在解决传统G、M代码存在的问题而适时出现的,它提供了统一的数据接口标准,涵盖了产品设计与制造的所有信息,实现了信息的双向传输,有效减少设计与制造的时间并提高产品的生产率。对STEP-NC的研究已经成为全球制造技术的共同课题,我国能否从制造大国转变成为制造强国主要是看数控技术的发展。

随着航空航天、汽车、造船及模具等现代工业的飞速发展,复杂形状的零件越来越多,精度要求也越高。如飞机外形、叶轮以及绝大多数机械零件中二次曲面类似的形状。这些复杂自由曲线曲面可由NURBS统一的数学形式精确地表示,而且NURBS曲面是STEP标准中自由曲线曲面的唯一表示形式。

2 STEP-NC文件信息提取

在全球化制造的时代背景下,以STEP-NC标准对数据进行存储、传递和转换能够促使全球制造技术更快地向智能化、网络化、集成化方向发展。

2.1 STEP-NC数据模型

STEP-NC的一个简化数据模型如图1所示。

图1 STEP-NC的一个简化数据模型

一个工件由多个加工特征所定义,工件的加工计划由一系列的加工步骤组成,每个加工步骤所采用的加工操作是由工件上的加工特征决定采用哪种加工刀具、哪种工艺方法、哪种加工策略以及哪种刀具路径生成方法。如对于平面需要采用铣平面操作,孔的加工对应于钻孔操作等。值得注意的是,STEP-NC数据模型可以从工件属性、加工特征属性以及刀具路径属性中分别提取工件几何特征量、加工几何特征量以及刀具几何特征量,提取出来的信息反馈到加工规划部门,对预先定义的参数化路径、切削方式等进行修改,迅速实现加工方法和加工轨迹的优化。

STEP-NC是采用基于特征的方式描述加工对象,能够理解加工对象的要求,而不是传统G、M代码只知道干什么而不知道怎么做,能够在更高的信息层次对加工过程作出合理的规划与控制。STEP-NC加工程序文件与传统的G、M代码文件相比,对加工过程和对象的描述由轨迹层上升到特征层,对加工执行的描述由轨迹描述上升到以工步为加工最小单位的任务描述,对加工技术的描述由加工参数层上升到加工策略层[1]。

2.2 STEP-NC文件格式

STEP-NC的文件格式如图2所示,主要包括头文件和数据段两部分。头文件包括三个组成部分:文件描述、文件名称以及文件模式。数据段部分以PROJECT语句开始,包含了加工计划、加工步骤、加工操作等几何信息和工艺信息。数据段主要是由实例组成,一个实例以“#+实体标识数字+=+实体名+属性”的形式表示。实体名就是当前实体的关键字,其中属性里面嵌套了其他的实例信息。

图2 STEP-NC文件格式

2.3 信息提取过程的实现

信息提取的过程包括几何信息和拓扑信息的提取。其中几何信息的描述都是以参数曲线和参数曲面为基础,把解释曲线与曲面表示成参数形式,即用NURBS曲线和曲面描述,包括点、线、面、位置、方向等信息。拓扑信息模型从低层到高层主要包括顶点、边、环、面、壳等,上层元素的约束直接作用于下层元素,并且各元素本身又包含了一定程度的拓扑关系,保证了各拓扑实体之间有效的拓扑关系。

每个拓扑实体的定义都不一样,要解释出STEP文件中的拓扑结构关系,首先必须了解每个拓扑实体的定义,根据实体定义建立该实体的结构体,然后按照拓扑实体的约束关系,从高层实体到低层实体,即从壳→面→环→边→点的顺序进行提取。拓扑实体关系的实例如图3所示。

图3 拓扑关系图

拓扑信息提取的具体过程为:①通过定位到壳(OPEN_SHELL或CLOSE_SHELL),提取SHELL属性列表里的各参数,其中第二个参数保存了构成壳实体的各个高级面(ADVANCED_FACE);②定位到每一个高级面,提取该高级面实体属性列表的各参数,其中第二个参数是组成高级面的面边界(FACE_OUTER_BOUND),第三个参数是几何定义曲面,最后一个参数是布尔值方向标识;③定位到面边界属性,属性列表中第二个参数是边环(LOOP),第三个参数是布尔值方向标识;④定位到环,环属性列表中第二个参数是边(EDGE);⑤定位到边,边属性中第二、三个参数分别是边的起点和终点,第四个参数是几何定义曲面,最后一个参数是布尔值方向标识;⑥最后定位到点属性,包括三个坐标点信息。

该实例显示了一个以4条曲线为边界的不封闭的曲面。STEP文件中关于NURBS曲面的数据模型如图4所示。

图4 NURBS曲面数据模型

几何信息提取的过程就是对该曲面数据模型的参数进行一一查找匹配。首先在STEP文件中定位到实体b_spline_surface_with_knots,然后按照NURBS曲面数据模型的定义把里面记录的曲面几何信息顺序提取出来。其中控制顶点是以实例的形式记录下来的,需要进一步查找匹配到相应的实例中提取控制顶点的3个坐标信息。

信息提取的难点在于:①文件的存储格式。数据是以什么样的形式存储在文件中;②在上千行的字符数据中如何确定要提取的数据在文件中的位置;③定位后如何对数据进行处理,并以什么样的方式保存。

信息提取的过程就是解决以上问题的过程。其中定位数据在文件中的位置需要用到匹配算法。

2.4 字符串匹配算法

一般模式匹配算法有BF(brute-force)算法和KMP算法[2]。BF算法是一种简单直观的模式匹配算法,其基本思想是:从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续字符;否则,从主串S的第二个字符开始和模式T的第一个字符进行比较。重复上述过程,若T中的字符全部比较完毕,则说明匹配成功,返回主串S在本趟比较中的起始位置;否则匹配失败。其算法流程图如图5所示。

图5 BF匹配算法流程图

BF匹配算法比较简单易懂,但是其时间复杂度在匹配成功最坏的情况下为O(nxm),其中n为主串的长度,m为子串的长度,因此BF匹配算法一般用于主串长度不大的情况。对于包含成千上万个实例的STEP文件其字符数量大得惊人,如果采用BF匹配算法效率太低了,因此采用KMP匹配算法。

2.5 KMP匹配算法

在BF算法中,如果某趟匹配不成功,主串的比较位置需要回溯到开始比较位置的后一个字符处,以开始下一轮比较。所以BF算法是一种带回溯的匹配算法,使得匹配效率低。KMP算法是BF算法的改良,主要思想是避免不必要的回溯,提高了匹配的效率。相比BF算法,KMP算法的时间复杂度是O(n+m),大大降低了匹配的耗用时间。

KMP算法能避免不回溯主要是设置了next[j]这个函数,令k=next[j]为某趟不成功匹配中因子串第j个字符与主串中相应字符不匹配时,下一趟匹配子串的起始位置,即k决定子串向右滑动的距离。KMP算法的关键是求解next[j]函数。

KMP算法操作步骤如下:

Step1:分别给主串和子串的比较位置I,j赋初值0。

Step2:重复下列步骤,直到S中所剩字符个数小于T的长度或T中所有字符均比较完。①如果S[i]=t[j],i和j分别加1;否则;②j=next[j];③如果j=-1,则将i和j分别加1。

Step3:如果T中所有字符均比较完,则返回匹配的起始下标;否则,匹配失败。

KMP匹配算法流程图如图6所示。通过KMP匹配算法把STEP文件中关于NURBS曲面的几何信息一一提取出来,把每一个实体映射到C++类的一个过程,实体中的属性列表相应映射到类的属性中。NURBS曲面几何信息包括控制顶点、权因子、节点矢量等信息。在VC++6.0中创建NURBS类,类里面包含表示曲面几何信息的控制顶点(ctrlPoint)、权因子(ω)、节点矢量(knotsu、knotsv)。其中关于ctrl-Point还需要建立存储该控制顶点的结构体(ctrlPoint3D)类型。另外STEP文件表示的NURBS曲面实体中还包含了曲线次数(u方向上的曲线次数orderu、v方向上的曲线次数orderv)、控制顶点的行数(m_row)、列数(m_col)。

图6 KMP匹配算法流程图

映射到C++后的NURBS类和ctrlPoint3D结构体分别为:

Class NURBS

{

ctrlPoint3D* ctrlPoint;

float* w;

float* knotsu,knotsv;

int orderu,orderv;

int m_row,m_col;

}

Class ctrlPoint3D

{

float x;

float y;

float z;

}

这些数据的提取只是作为后续数控机床加工的前提,不同的数控机床采用不同的数控系统,参数设置方式也不一样。从提取STEP-NC文件中的几何拓扑信息到数控机床加工的过程中还缺少了制造工艺等信息。从STEP-NC文件中依次提取待加工零件的毛坯(BLOCK)、材料(MATERIAL)数据,接着提取定位基准(AXIS2_PLACEMENT_3D)、夹紧方案(SETUP),然后搜索刀具的选择(CUTTING_TOOL),下一步是所采用的加工策略(MILLING_TECHNOLOGY)。这些制造工艺信息提取出来之后存放到工艺信息类里,如图7所示。数控系统会根据这些数据自行的选择刀具、加工方法、策略加工出所需的零件。这对实现未来STEP-NC数控系统的智能化有着重要的意义。

图7 STEP-NC工艺信息结构

Class CAPP

{

class Part;//零件

class Block;//毛坯

class Material;//材料

class Placement;//定位基准

class Setup;//装夹

class Tool;//刀具

class Technology;//策略

}

3 基于Open GL的算法验证系统

从STEP-NC文件中提取出来的几何数据应用到曲面重现环节OpenGL函数中的各参数。需要注意的一点是不同的系统记录控制顶点信息有不同的形式,提取出来的控制顶点信息一般是以科学记数法形式表示,因此还要对提取出来的几何信息,主要是控制顶点信息进行数据格式转换,以便OpenGL函数能够识别。

曲面重现是利用OpenGL技术对所提取出来的信息进行计算并且显示出来,通过该方法验证信息提取的正确性。绘制NURBS曲面之前,首先要设置好OpenGL各参数,如背景颜色、光照、材质等,然后创建NURBS对象,最后把前面提取的几何信息导入到gluNurbsSurface函数中完成曲面的重现。部分代码如下所示:

GLfloat mat_diffuse[4]={m_color.x,m_color.y,m_color.z,1.0f};

GLfloat mat_specular[4]={m_color.x,m_color.y,m_color.z,1.0f};

GLfloat mat_shininess[1]={20.0f};

glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse);

glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);

glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS,mat_shininess);

glColor3f(m_color.x,m_color.y,m_color.z);

glPushMatrix();

gluBeginSurface(m_surface);

gluNurbsSurface(m_surface,m_knotsU.m_num,m_knotsU.m_knots,m_knotsV.m_num,m_knotsV.m_knots,4*m_ctrlPoints.m_col,4,ctrlPoint,m_orderU,m_orderV,GL_MAP2_VERTEX_4);

gluEndSurface(m_surface);

glPopMatrix();

4 等参数线法刀具轨迹规划

一般曲面加工刀具轨迹规划算法主要有等截面线法、参数线法和等残留高度法等。其中等参数线法是最常用的一种刀具轨迹规划方法,其基本思想是在双参数自由曲面上,令其中一个参数保持不变,另一个参数变化而形成加工轨迹曲线。这种方法的特点是计算量小,计算速度快。

一张NURBS曲面[3]表示为:

式中:u,v为参变量;di,j(i=0,1,…,n,j=0,1,…,m)为控制顶点,ωi,j(i=0,1,…,n,j=0,1,…,m)是对应的权因子。Ni,k(u)(i=0,1,…,n),Nj,l(v)(j=0,1,…,m)分别为沿u向的k次和沿v向的l次的规范B样条基函数,分别由u向和v向的节点矢量U和V按de Boor-Cox递推公式决定:

等参数线法就是通过u(或v)不变,v(或u)以一定的行距变动获得刀具轨迹触点。其中行距的计算如下:

一般情况下,行距Δd是残留高度h、刀具有效切削半径Re以及曲面的局部曲率半径Rb的函数[4]。在h和Re一定的情况下,根据曲面的局部曲率形态来决定行距的计算公式:

式中:凸曲面时,sgn(O·N)=1;凹曲面时,sgn(O·N)=-1;平面时,sgn(O·N)=0。

5 实例验证

在VC++6.0中采用单文档+对话框的形式,其中对话框完成STEP文件的读取以及几何信息的提取过程,单文档完成曲面重现部分以及刀具轨迹规划部分,如图8~13所示。

图8 读取STEP文件

图9 B样条曲面信息提取

图10 曲面控制顶点坐标提取

图11 转换数据格式

图12 曲面重现

图13 刀具轨迹

6 结论

在VC++6.0设计了一个基于STEP-NC的NURBS曲面信息提取系统,通过KMP匹配算法对文件中的信息进行提取,将提取出来的几何信息导入到曲面重现系统中验证信息提取的正确性,并通过等参数线法生成刀具轨迹,最后通过实例进行验证。

[1] 周 刚.基于STEP-NC的数控系统体系结构及其关键技术研究[D].杭州:浙江大学,2008.

[2] 管致锦,徐 慧,陈德裕.数据结构[M].北京:清华大学出版社,2010.

[3] 廖效果,刘又午.数控技术[M].武汉:湖北科学技术出版社,2000.

[4] 陈良骥.五轴联动刀具路径生成及插补技术研究[M].北京:知识产权出版社,2008.

猜你喜欢

控制顶点字符曲面
优化端点条件的平面二次均匀B 样条插值曲线
字符代表几
一种USB接口字符液晶控制器设计
HBM电子称与西门子S7-200系列PLC自由口通讯
相交移动超曲面的亚纯映射的唯一性
圆环上的覆盖曲面不等式及其应用
消失的殖民村庄和神秘字符
基于曲面展开的自由曲面网格划分
有理二次Bézier形式共轭双曲线段的几何计算
确定有限多个曲面实交集的拓扑