基于OCC实现T样条模型的数控加工方法及系统转让专利

申请号 : CN201610221895.0

文献号 : CN105867310B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王伟李睿赵罡

申请人 : 北京航空航天大学

摘要 :

本发明提供一种基于OCC实现T样条模型的数控加工方法及系统,该方法包括:获取T样条数据文件,根据T样条数据文件生成T样条模型;接收用户输入的加工参数,根据加工参数,通过等残高刀轨生成方法生成加工刀轨;根据加工参数,通过切割仿真算法确定加工刀轨的加工误差和干涉信息;若加工误差小于预设值且不存在干涉信息,则根据加工参数和加工刀轨生成加工代码;根据加工代码进行T样条模型的数控加工。通过基于OCC搭建支持T样条模型加工与仿真的CAM软件,可以直接调用OCC的建模、显示、数据交换等功能,提供加工仿真功能,实现加工误差和干涉情况分析,为判断刀轨是否合格提供依据,提高生成T样条模型的数控加工方案的效率。

权利要求 :

1.一种基于OCC实现T样条模型的数控加工方法,其特征在于,包括:获取T样条数据文件,根据所述T样条数据文件生成对应的T样条模型;

接收用户输入的加工参数,根据所述加工参数,通过等残高刀轨生成方法生成加工刀轨;

根据所述加工参数,通过切割仿真算法确定所述加工刀轨的加工误差和干涉信息;

若所述加工误差小于预设值且不存在所述干涉信息,则根据所述加工参数和所述加工刀轨生成加工代码;

根据所述加工代码进行所述T样条模型的数控加工;

所述根据所述加工参数,通过等残高刀轨生成方法生成加工刀轨,包括:选取所述T样条模型的第一边界作为初始刀轨;

根据所述初始刀轨和所述加工参数确定所述初始刀轨的下一条刀轨的多个刀触点,通过调用所述OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对所述初始刀轨的下一条刀轨的多个刀触点进行NURBS曲线插值得到所述初始刀轨的下一条刀轨;

依次对每一条刀轨,根据该刀轨和所述加工参数确定所述刀轨的下一条刀轨的多个刀触点,通过调用所述OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对所述刀轨的下一条刀轨的多个刀触点进行NURBS曲线插值得到所述刀轨的下一条刀轨,直至所述刀轨的下一条刀轨的多个刀触点全部落在所述T样条模型的第二边界上,所述第二边界与所述第一边界不相交;

通过曲线段依次首尾连接相邻两条刀轨生成等残高加工刀轨,所述曲线段由两条三次埃尔米特曲线连接构成,所述曲线段与所述相邻两条刀轨的连接处以及所述曲线段中两条三次埃尔米特曲线的连接处均一阶连续。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述加工误差不小于预设值和/或存在所述干涉信息,则调整所述加工刀轨,直至所述加工误差小于预设值且不存在所述干涉信息。

3.根据权利要求1或2所述的方法,其特征在于,所述根据所述T样条数据文件生成对应的T样条模型,包括:根据所述T样条数据文件确定计算T样条所需的控制顶点、所述控制顶点的权重以及所述控制顶点对应的节点矢量分布信息;

根据T样条公式 确定所述T样条在参数域中的第一离散点映射

到笛卡尔空间中对应的第二离散点的位置;其中,所述第一离散点为将参数域区间等分得到的(n+1)×(n+1)个离散点,n为大于零的正整数,所述参数域区间为0≤u≤1且0≤v≤1,A为在笛卡尔空间中对当前所要确定的第二离散点有影响的控制顶点的集合,Pi为控制顶点i在笛卡尔空间中的位置,Wi为控制顶点i的权重,Bi(u,v)=Ni(u)·Ni(v),Ni(u)和Ni(v)分别为参数u和v的伯恩斯坦基,所述Ni(u)和Ni(v)根据控制顶点i对应的节点矢量分布信息确定;

根据所述控制顶点和所述第二离散点,通过调用所述OCC的显示模块生成所述T样条模型。

4.根据权利要求3所述的方法,其特征在于,所述加工参数包括刀具的直径、刀具的长度、残高误差和弦高误差;

所述根据所述加工参数,通过切割仿真算法确定所述加工刀轨的加工误差和干涉信息,包括:对于所述加工刀轨上的每一个刀触点,根据

确定当刀具落在所述刀触点时,所述第

二离散点与所述刀具的垂直距离h,其中, 对应所述第二离散点的坐标,为所述第二离散点处T样条曲面的法矢,R2为与所述刀具的轴线共面且圆心与所述刀具的轴线距离为R1的圆的半径, D为所述刀具的直径;

根据 计算所述第二离散点与所述刀具的轴线距离s,根据 计

算所述第二离散点在所述刀具的轴线上的投影点与所述刀具的刀心点之间的距离l,其中,为所述刀具的轴线矢量,对应所述刀具的刀心点坐标;

根据所述加工刀轨上的刀触点对应的h确定所述加工刀轨的加工误差;

根据所述刀触点对应的h和所述弦高误差确定所述刀触点的干涉信息;

根据所述s、l、所述刀具的直径和所述刀具的长度确定所述刀具的干涉信息。

5.一种基于OCC实现T样条模型的数控加工系统,其特征在于,包括:模型生成单元,用于获取T样条数据文件,根据所述T样条数据文件生成对应的T样条模型;

接收单元,用于接收用户输入的加工参数;

加工刀轨生成单元,用于根据所述加工参数,通过等残高刀轨生成方法生成加工刀轨;

误差与干涉判定单元,用于根据所述加工参数,通过切割仿真算法确定所述加工刀轨的加工误差和干涉信息;

加工代码生成单元,用于若所述加工误差小于预设值且不存在所述干涉信息,则根据所述加工参数和所述加工刀轨生成加工代码;

数控加工单元,用于根据所述加工代码进行所述T样条模型的数控加工;

所述加工刀轨生成单元包括:

初始刀轨确定模块,用于选取所述T样条模型的第一边界作为初始刀轨;

刀触点确定模块,用于根据所述初始刀轨和所述加工参数确定所述初始刀轨的下一条刀轨的多个刀触点;

NURBS曲线插值模块,用于通过调用所述OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对所述初始刀轨的下一条刀轨的多个刀触点进行NURBS曲线插值得到所述初始刀轨的下一条刀轨;

所述刀触点确定模块还用于,依次对每一条刀轨,根据该刀轨和所述加工参数确定所述刀轨的下一条刀轨的多个刀触点,直至所述刀轨的下一条刀轨的多个刀触点全部落在所述T样条模型的第二边界上,所述第二边界与所述第一边界不相交;

所述NURBS曲线插值模块还用于,通过调用所述OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对所述刀轨的下一条刀轨的多个刀触点进行NURBS曲线插值得到所述刀轨的下一条刀轨;

连接模块,用于通过曲线段依次首尾连接相邻两条刀轨生成等残高加工刀轨,所述曲线段由两条三次埃尔米特曲线连接构成,所述曲线段与所述相邻两条刀轨的连接处以及所述曲线段中两条三次埃尔米特曲线的连接处均一阶连续。

6.根据权利要求5所述的系统,其特征在于,所述系统还包括:加工刀轨调整单元,用于:若所述加工误差不小于预设值和/或存在所述干涉信息,则调整所述加工刀轨,直至所述加工误差小于预设值且不存在所述干涉信息。

7.根据权利要求5或6所述的系统,其特征在于,所述模型生成单元包括:确定模块,用于根据所述T样条数据文件确定计算T样条所需的控制顶点、所述控制顶点的权重以及所述控制顶点对应的节点矢量分布信息;

映射模块,用于根据T样条公式 确定所述T样条在参数域中的

第一离散点映射到笛卡尔空间中对应的第二离散点的位置;其中,所述第一离散点为将参数域区间等分得到的(n+1)×(n+1)个离散点,n为大于零的正整数,所述参数域区间为0≤u≤1且0≤v≤1,A为在笛卡尔空间中对当前所要确定的第二离散点有影响的控制顶点的集合,Pi为控制顶点i在笛卡尔空间中的位置,Wi为控制顶点i的权重,Bi(u,v)=Ni(u)·Ni(v),Ni(u)和Ni(v)分别为参数u和v的伯恩斯坦基,所述Ni(u)和Ni(v)根据控制顶点i对应的节点矢量分布信息确定;

显示模块,用于根据所述控制顶点和所述第二离散点,通过调用所述OCC的显示模块生成所述T样条模型。

8.根据权利要求7所述的系统,其特征在于,所述加工参数包括刀具的直径、刀具的长度、残高误差和弦高误差;

所述误差与干涉判定单元包括:

第一确定模块 ,用于 :对于所 述加工刀轨上的每一个刀触点 ,根据确定当刀具落在所述刀触点时,所述第

二离散点与所述刀具的垂直距离h,其中, 对应所述第二离散点的坐标,为所述第二离散点处T样条曲面的法矢,R2为与所述刀具的轴线共面且圆心与所述刀具的轴线距离为R1的圆的半径, D为所述刀具的直径;

第二确定模块,用于:根据 计算所述第二离散点与所述刀具的轴线距离s,根据 计算所述第二离散点在所述刀具的轴线上的投影点与所述刀具的刀心点之间的距离l,其中,为所述刀具的轴线矢量,对应所述刀具的刀心点坐标;

误差判定模块,用于根据所述加工刀轨上的刀触点对应的h确定所述加工刀轨的加工误差;

干涉判定模块,用于:根据所述刀触点对应的h和所述弦高误差确定所述刀触点的干涉信息;

所述干涉判定模块还用于:根据所述s、l、所述刀具的直径和所述刀具的长度确定所述刀具的干涉信息。

说明书 :

基于OCC实现T样条模型的数控加工方法及系统

技术领域

[0001] 本发明涉及数控加工技术,尤其涉及一种基于OCC(Open CASCADE)实现T样条模型的数控加工方法。

背景技术

[0002] T样条技术是近几年涌现的一种新的造型方法,能够单张曲面表示复杂拓扑模型,且避免冗余的控制顶点。其在造型方面较传统曲面具有无与伦比的优势,并且大量应用于非参数化设计、电影与动画、等几何分析等领域。目前,T-Splines公司推出了基于T样条造型的计算机辅助设计(Computer-Aided Design,简称CAD)内核,被Rhino3d与Solidworks以插件形式支持,以及被Fusion360采用,可用于实现T样条模型的建模。
[0003] 现有技术中,尚无支持T样条的计算机辅助制造(Computer-Aided Manufacturing,简称CAM)软件。目前仅有浙大傅建中团队发表过相关研究成果。傅建中团队是采用开放图形库(Open Graphics Library,简称OpenGL)作为显示模块,OpenNURBS(一个开源的读、写3DM文件的开发工具包)作为几何内核,并结合T样条数据结构与算法,以及改进的空间填充曲线加工算法,开发出一套CAM原型系统实现五轴数控加工。
[0004] 该CAM原型系统只能实现基于球头刀的T样条模型五轴数控加工,缺少仿真功能。生成刀轨后,既无法显示加工误差,也无法判断干涉情况,技术人员不能判断刀轨是否合格,只能将T样条模型转为细分模型后,借助Vericut(美国CGTECH公司开发的数控加工仿真系统)等仿真软件进行仿真分析,十分不便。因此,现有的T样条模型的数控加工有待改善。

发明内容

[0005] 本发明实施例提供一种基于OCC实现T样条模型的数控加工方法及系统,能够直接提供加工仿真功能,实现加工误差和干涉情况分析,为技术人员判断刀轨是否合格提供依据,大大提高了生成T样条模型的数控加工方案的效率。
[0006] 本发明实施例提供的基于OCC实现T样条模型的数控加工方法,包括:获取T样条数据文件,根据T样条数据文件生成对应的T样条模型;接收用户输入的加工参数,根据加工参数,通过等残高刀轨生成方法生成加工刀轨;根据加工参数,通过切割仿真算法确定加工刀轨的加工误差和干涉信息;若加工刀轨的加工误差小于预设值且不存在干涉信息,则根据加工参数和加工刀轨生成加工代码;根据生成的加工代码进行T样条模型的数控加工。
[0007] 本发明实施提供的基于OCC实现T样条模型的数控加工系统,包括:模型生成单元,用于获取T样条数据文件,根据T样条数据文件生成对应的T样条模型;接收单元,用于接收用户输入的加工参数;加工刀轨生成单元,用于根据用户输入的加工参数,通过等残高刀轨生成方法生成加工刀轨;误差与干涉判定单元,用于根据用户输入的加工参数,通过切割仿真算法确定加工刀轨的加工误差和干涉信息;加工代码生成单元,用于若加工刀轨的加工误差小于预设值且不存在干涉信息,则根据加工参数和加工刀轨生成加工代码;数控加工单元,用于根据生成的加工代码进行T样条模型的数控加工。
[0008] 基于上述,本发明实施例提供的基于OCC实现T样条模型的数控加工方法及系统,通过基于OCC搭建支持T样条模型加工与仿真的CAM软件,通过采用工程中实用的等残高加工方法生成加工刀轨,并通过一种切割仿真算法对加工刀轨的加工误差和干涉信息进行分析。采用OCC这款开源CAD内核,其建模、显示、数据交换等功能可以直接调用,能够直接提供加工仿真功能,实现加工误差和干涉情况分析,为技术人员判断刀轨是否合格提供依据,大大提高了生成T样条模型的数控加工方案的效率。

附图说明

[0009] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010] 图1为本发明实施例提供的基于OCC实现T样条模型的数控加工方法流程图;
[0011] 图2为本发明实施例提供的曲面残高计算模型;
[0012] 图3为通过图2所示的刀具切割T样条曲面上草的数学模型图;
[0013] 图4是本发明实例提供的确定刀轨上刀触点位置的示意图;
[0014] 图5为本发明实例提供的用两条三次Hermite曲线连接相邻刀轨的示意图;
[0015] 图6为本发明实施例提供的基于OCC实现T样条模型的数控加工系统示意图;
[0016] 图7为本发明实施例提供的另一基于OCC实现T样条模型的数控加工系统示意图。

具体实施方式

[0017] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0018] 本发明的下述实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
[0019] 本发明实施例提供的T样条模型的数控加工方法,通过基于OCC搭建支持T样条模型加工与仿真的CAM软件来实现。下面将对OOC平台和基于OCC搭建的支持T样条模型加工与仿真的CAM软件进行简单介绍。
[0020] Open CASCADE(简称OCC)平台是由法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,是目前世界上最重要的几何造型基础软件平台之一。开源OCC对象库是一个面向对象C++类库,用于快速开发设计领域的专业应用程序。OCC主要用于开发二维和三维几何建模应用程序,包括通用的或专业的CAD系统、制造或分析领域的应用程序、仿真应用程序或图形演示工具。OCC通过有机组织的C++库文件提供了六个模块。可视化模块作为OCC的核心部分,是可视化技术的具体体现。由于OCC技术是一个开源的软件开发平台,因此在数值建模软件如CAD\CAE\CAM的开发上得到了广泛的应用。OCC提供二维和三维几何体的生成、显示和分析。
[0021] 本发明实施例中基于OCC搭建的支持T样条模型加工与仿真的CAM软件包括:1)基本文件功能单元,可用于实现打开T样条文件、保存T样条文件、导出窗口截图、清空窗口、退出程序功能;2)基本视图功能单元,可用于实现图形适应窗口、XY平面视角、初始化视图功能;3)辅助功能单元,可用于实现显示T-mesh预图像(T样条控制顶点形成的网格称为T-mesh)、显示T样条曲面、提示刀轨路径长度信息、导出刀轨文件功能;4)数控加工功能单元,可用于实现生成等残高刀轨、生成改进的空间填充曲线(Improved Space Filling Curves,简称ISFC)刀轨、显示T样条设计模型、显示曲面法矢、在T-mesh预图像中显示刀轨、在笛卡尔空间显示刀轨、显示整条刀轨上刀具姿态功能;5)仿真功能单元,可用于实现仿真计算、显示加工误差、判断刀轨干涉信息功能。
[0022] 图1为本发明实施例提供的基于OCC实现T样条模型的数控加工方法流程图,该方法包括以下步骤:
[0023] S11,获取T样条数据文件,根据T样条数据文件生成对应的T样条模型;
[0024] S12,接收用户输入的加工参数,根据加工参数,通过等残高刀轨生成方法生成加工刀轨;
[0025] S13,根据加工参数,通过切割仿真算法确定加工刀轨的加工误差和干涉信息;
[0026] S14,根据加工刀轨的加工误差和干涉信息判断加工刀轨的加工误差是否小于预设值且不存在干涉信息;若是,则执行S16;若否,则先执行S15,再执行S16;
[0027] S15,调整加工刀轨,直至加工刀轨的加工误差小于预设值且不存在干涉信息;
[0028] S16,根据加工参数和加工刀轨生成加工代码;
[0029] S17,根据加工代码进行T样条模型的数控加工。
[0030] 下面以T样条模型的五轴数控加工为例进行示例性说明。显然,这些实施例是用来说明,而并非用来限制本发明。
[0031] 五轴加工(5Axis Machining)是数控机床加工的一种模式。根据国际标准化组织(International Standards Organization,简称ISO)的规定,在描述数控机床的运动时,采用右手直角坐标系,其中平行于主轴的坐标轴定义为z轴,绕x、y、z轴的旋转坐标分别为A、B、C。各坐标轴的运动可由工作台,也可以由刀具的运动来实现,但方向均以刀具相对于工件的运动方向来定义。通常五轴联动是指x、y、z、A、B、C中任意5个坐标的线性插补运动。换言之,五轴就是指x、y、z三个移动轴加任意两个旋转轴。相对于常见的三轴(x、y、z三个自由度)加工而言,五轴加工是指加工几何形状比较复杂的零件时,需要加工刀具能够在五个自由度上进行定位和连接。
[0032] 示例性的,在S11中,具体可以读取Rhino3d的T样条文件,并将T样条信息存储到本发明的数据结构中。值得一提的是,在本发明中,用于保存T样条信息的数据结构如下:
[0033]
[0034] 其中,CNode类x、y、z、w分别存储T样条的单个控制顶点在笛卡尔空间中的位置与权重信息,vectU[5]、vectV[5]分别存储控制顶点对应的参数域节点矢量分布信息。而CTspline类可以存储计算T样条所需的所有控制顶点及其对应的权重和节点矢量分布信息。其中,在本实施例中,参数域是由双参数u,v构成的二维空间。T样条中的每个控制顶点,在参数域上的u方向与v方向分别对应节点矢量区间,两个节点矢量区间构成的矩形区域为该控制顶点的影响区域。
[0035] 进一步的,根据T样条公式 确定T样条在参数域中的第一离散点映射到笛卡尔空间中对应的第二离散点的位置。
[0036] 其中,第一离散点为将参数域区间(0≤u≤1且0≤v≤1)等分得到的(n+1)×(n+1)个离散点,n为大于零的正整数,即T样条公式中的参数u和参数v分别对应n+1个取值。相应的,根据T样条公式可以确定出(n+1)×(n+1)个第二离散点的位置。A为在笛卡尔空间中对当前所要确定的第二离散点有影响的控制顶点的集合。Pi为控制顶点i在笛卡尔空间中的位置,Wi为控制顶点i的权重,Bi(u,v)=Ni(u)·Ni(v),Ni(u)和Ni(v)分别为参数u和v的伯恩斯坦基,Ni(u)和Ni(v)根据控制顶点i对应的节点矢量分布信息确定。
[0037] 根据求得的一系列第二离散点,以及T样条数据结构中保存的控制顶点,通过调用OCC的显示模块可以生成相应的T样条模型。
[0038] 具体的,每四个相邻的第二离散点可以构成两个三角面片,用OCC的StlMesh_Mesh类将所有的第二离散点按离散的三角面片存储。然后调用OCC的BRep_Builder类,将所有的三角面片、控制顶点、T-mesh(T样条控制顶点形成的网格称为T-mesh)赋予OCC的TopoDS_Shape类。最后调用OCC的显示模块AIS_InteractiveContext类进行显示,即绘制出T样条模型,且绘制出的T样条模型的控制顶点、T-mesh也可以显示。
[0039] 示例性的,在S12中,输入的加工参数有刀具尺寸(包括刀具直径、刃切半径、刀具长度等),允许的残高误差和弦高误差以及主轴转速与进给速度。其中,刀具尺寸和允许的残高误差和弦高误差可以用于等残高加工刀轨的生成过程以及对生成的等残高加工刀轨的加工误差和干涉信息进行判断;主轴转速与进给速度这两个参数,在根据加工刀轨导出加工代码的同时,生成相应的数控加工代码,用于后置处理。
[0040] 为使本实施例中的等残高加工刀轨的生成过程更容易被理解,下面将通过曲面残高计算模型进行示例性说明。
[0041] 图2为本发明实施例提供的曲面残高计算模型。首先请参照图2中(a)所示,假设曲面S上长有平行于曲面法矢,且长度等于允许的残高误差的草G,则草面GS形成等残高面。环形刀具C落在曲面S上,会在等残高面上切出一圈草环R。
[0042] 将2中(a)所示模型参数化如图2中(b)所示,请参照图2中(b),其中CL代表刀心点,GG’代表草,T为刀具的轴线矢量(以下简称刀轴矢量),HH’为从刀具轴线到刀具轮廓过草尖G’且垂直于刀轴矢量T的线段,λ表示沿刀轴矢量T方向上HH’到刀心点的距离。
[0043] 图3为通过图2所示的刀具切割曲面上草的数学模型图,请参考图3所示。通过图2所示的刀具切割曲面上的草,则刀具的有效切割部分可以看作一个半径为R2的圆绕刀具轴线扫略出的圆环体,其中该半径为R2的圆与刀具轴线共面且圆心距离刀具轴线R1,其中D为刀具直径。草可以视为从曲面上的点出发,沿曲面法矢方向延伸出去的线段,且长度为h。
[0044] 对于曲面上的草,当λ在[-R2,0]区间内,如果|HH’|=|HG’|,则草落在草环R上,此时达到最大残高;如果|HH’|>|HG’|,则草被刀具切割,此时未达到最大残高;其他情况草未被刀具切割。基于上述模型原理,根据相关技术,若刀具位置已知,草环上的草在曲面上的位置可以通过二分法进行迭代求解,同理,若草的位置已知,对于满足草在草环上的刀具位置同样可以通过二分法迭代求解。
[0045] 下面,将基于上述的曲面残高计算模型对上述的等残高加工刀轨的生成过程进行示例性说明。
[0046] 图4是本发明实例提供的确定等残高刀轨上刀触点位置的示意图。请参照图4中(a)所示,假设刀具沿着当前刀轨运动到刀触点A位置,会在等残高面上切出一圈草环R,其中f为刀具进给方向,n为曲面法矢,-b为垂直于f与n的方向。当刀具沿当前刀轨Ci运动,刀具会将草面切出一条槽,并在等残高面上留下两条包络线,其中位于当前刀轨右边的那条包络线为等残高线P。而草环R上仅有垂直于刀具进给方向上的草,称为目标草GO,目标草GO的草尖在等残高线上。
[0047] 已知目标草位于曲面上从刀触点A出发,-b方向上的某处。于是,目标草在曲面上的位置可结合图2所示的刀具切割曲面上草的数学模型图,用二分法迭代求解。首先确定迭代上下限。显然草位于刀触点A位置,草被切割,于是设此时草距离刀触点A的距离为迭代下限Δ下限。再预设一个数值Δ,将草从刀触点A出发,沿-b方向移动Δ距离,判断此时刀具对草的切割状态。若草未被刀具切割,那么设此时草距离刀触点A的距离为迭代上限Δ上限;若其他切割情况,则继续将草沿-b方向移动Δ距离,直到草未被刀具切割为止,并且设此时草距离刀触点A的距离为迭代上限Δ上限。确定迭代上下限后,然后进行二分迭代。取迭代上下限的中值Δ中值=(Δ上限+Δ下限)/2,将草移动到从刀触点A出发,沿-b方向,距离刀触点A为Δ中值的位置,并判断刀具对草的切割状态。若草被刀具切割,那么令Δ下限=Δ中值,否则令Δ上限=Δ中值。重复上述二分迭代步骤,直到Δ上限-Δ下限小于预设的较小的数值,迭代终止。那么此时草所在位置即为目标草位置。
[0048] 下一步由目标草求解其对应的下一条刀轨Ci+1上的目标刀触点B,具体请参照图4中(b)所示。对于所有满足刀具轮廓与目标草的草尖接触的刀具位置,会在目标草周围呈现出一个环的形状,称之为CC环。而整个CC环中,只有一个点为下一条刀轨Ci+1上的目标刀触点B。当刀具沿下一条刀轨Ci+1运动,刀具同样会在等残高面上留下两条包络线,并且其中位于下一条刀轨左边的那条包络线同样为等残高线P。因此,目标草在曲面上的位置位于目标刀触点B出发沿垂直于其进给方向f’的b’方向上。而等残高线P在曲面上的投影线PS(即目标草根部的点构成的曲线)与下一条刀轨Ci+1形状近似,因此近似认为目标刀触点B位于目标草在曲面上的位置出发,垂直于投影线此处切矢a方向上。并且投影线切矢a与目标刀触点B的进给方向f’近似,令切矢a在目标刀触点B位置的曲面密切面上的投影方向即为进给方向f’。
[0049] 已知目标刀触点B位于曲面上从目标草位置出发,垂直于投影线切矢a方向上的某处。于是,目标刀触点B的位置可结合图2所示的刀具切割曲面上草的数学模型图,用二分法迭代求解。整个迭代流程和求解目标草时类似,唯一区别只是把移动草的位置改为移动刀触点位置,此处不再赘述。于是我们可以通过当前刀轨Ci上的多个刀触点,求解出下一条刀轨Ci+1上的多个刀触点。
[0050] 示例性的,可以选取T样条模型的第一边界作为初始刀轨C0,然后根据图4所示的方法,根据初始刀轨和加工参数(如刀具尺寸和允许的残高误差)确定初始刀轨的下一条刀轨C1的多个刀触点。
[0051] 求得C1上一系列离散的刀触点后,通过调用OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对C1上的多个刀触点进行NURBS曲线插值,就可以得到初始刀轨的下一条刀轨C1。
[0052] 然后,再根据C1和加工参数确定C1的下一条刀轨C2的多个刀触点,并通过调用OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对C2上的多个刀触点进行NURBS曲线插值,得到C1的下一条刀轨C2。同理,重复上述步骤可以得到C2的下一条刀轨C3,以此类推,直至某条刀轨的下一条刀轨的多个刀触点全部落在T样条模型的第二边界上,可得到一系列等残高的刀轨。其中T样条模型的第二边界与T样条模型的第一边界不相交。
[0053] 接着用两条三次埃尔米特(Hermite)曲线构成的曲线段,依次首尾连接相邻两条刀轨生成等残高加工刀轨。值得一提的是,曲线段与相邻两条刀轨的连接处以及曲线段中两条三次Hermite曲线的连接处均一阶连续,光顺连接相邻刀轨,得到一条连续光顺的且中途无撤刀的等残高刀轨,如图5所示。
[0054] 其中图5为本发明实例提供的用两条三次Hermite曲线连接相邻刀轨的示意图。需要说明的是,刀具的刀轨,可以是刀具与曲面接触点——刀触点(cutter contact,简称CC)形成的刀轨,也有刀具的刀心点(cutter location,简称CL)形成的刀轨,还有刀尖点(cutter tip,简称CT)形成的刀轨,本实施例中的刀轨均指刀触点CC移动的路径。请参照图5所示,其中刀轨Ci的终点为CC0,刀轨Ci在终点CC0处的切矢为V0,刀轨Ci的下一条刀轨Ci+1的起点为CC2,刀轨Ci+1在起点CC2处的切矢为V2,曲线段在连接处CC1处的切矢为V1。
[0055] 示例性的,为了确定用于光顺连接相邻刀轨Ci和Ci+1的两条三次Hermite曲线构成的曲线段,可以设V1平行于CC0到CC2的连线方向,模长设为V0与V2模长的平均值;同时,将曲线段连接处CC1的位置设为从CC0与CC2连线的中点,沿V0方向偏移预设的距离。相应的,可以得到首末端点为CC0与CC1,且首末端点处切矢分别为V0与V1的第一条三次Hermite曲线,以及首末端点为CC1与CC2,且首末端点处切矢分别为V1与V2的第二条三次Hermite曲线,则两条三次Hermite曲线就唯一定义用于光顺连接相邻刀轨Ci和Ci+1的曲线段。
[0056] 可以理解的是,在实际加工应用中,机床只能控制刀具按照直线段或圆弧运动加工零件,因此需要对刀轨进行插补。这里用步长估计法对图5所示的刀轨进行直线插补,获得满足弦高误差要求的离散移动步长。具体的,可以根据公式 计算步长,其中,Δl为步长,r为曲线半径,ε为弦高误差。
[0057] 实际应用中,示例性的,可以调用OCC的Geom_Line类存储刀轨插补后的直线段,然后赋予TopoDS_Shape类用显示模块AIS_InteractiveContext类进行显示。
[0058] 示例性的,在本实施例中,将结合上述图3所示的刀具切割曲面上草的数学模型对S13中的切割仿真算法进行示例性说明。
[0059] 假设曲面上长满密集的草,刀具沿插补后的刀轨走过会对草进行切割,那么切割后的草长直接反映了加工误差。
[0060] 如上所述,通过图2所示的刀具切割曲面上的草,则刀具的有效切割部分可以看作一个半径为R2的圆绕刀具轴线扫略出的圆环体。圆环体在笛卡尔坐标系中数学表达式为其中,x,y,z对应曲面上的草的草尖的坐标,即
[0061] 草可以视为从曲面上的点出发,沿曲面法矢方向延伸出去的线段,且长度为h。草在笛卡尔坐标系中数学表达式为 对应第二离散点的坐标(曲面上的草的草根点),为第二离散点处曲面的法矢。
[0062] 于是刀具对草的切割可看作圆环体与直线段求交。换言之,对于加工刀轨上的每一个刀触点,根据 可以确定当刀具落在该刀触点时,对应的第二离散点(曲面上的草的草根点)与刀具的垂直距离h。
[0063] 显然,上式为关于h的四次齐次方程。解得h的最小实根,为刀具切割草后的草长。若无实根,说明刀具与草不相交。
[0064] 根据加工刀轨上的每一个刀触点对应的h就可以确定加工刀轨的加工误差。具体的,假设T样条曲面上的第二离散点上面植有草,那么曲面便形成一块草坪。刀具沿刀轨走过会对草坪进行切割。于是切割后草坪的形状反映了加工后曲面实际情况,对于切割后草的长度直接反映了加工精度。
[0065] 而草的长度就是该离散点的残留高度。于是将初始残留高度预设为大于残高误差的值。为提高计算精度,将刀轨上相邻两个刀触点连接形成的直线段插入m-1个刀触点,将直线段等分为m段。然后依次求解刀具沿着刀轨运动,在每一个刀触点上对曲面的第二离散点位置的切割情况,就能求解出实际加工的误差情况与干涉情况。即根据刀触点对应的h和弦高误差就可以确定刀触点的干涉信息。
[0066] 对于刀具落在每一个刀触点上,进行相同步骤。之前已经确定出曲面上(n+1)×(n+1)个第二离散点。现在从离刀触点最近的曲面上的离散点作为出发点,分别向左、向右依次沿该排第二离散点,运用圆环体与草对应的直线求交的模型同时计算切割后在第二离散点位置沿曲面法矢方向到刀具有效切割部分的距离,即残留高度。若计算结果小于原残留高度,说明刀具切割该位置,则将计算结果作为该点处新的残留高度。若计算结果无实根,或者结果大于原残留高度,则说明刀具不切割该位置,该点处残留高度保持不变。沿当前方向,从出发点开始计算到边界处的点,则该方向计算终止。然后再以出发点向上一排和向下一排的相同位置的点作为新出发点,同理计算每一排曲面离散点与刀具切割结果。直到整排都是不相交的情况,则不再进行下一排的计算。当迭代终止时,对于被切割的曲面离散点,若残留高度小于0且绝对值大于弦高误差,说明刀具在该刀触点位置存在干涉(注意只把刀具在当前刀触点位置切割的曲面离散点纳入考量)。所有被切割且残留高度小于0且绝对值大于弦高误差的曲面离散点,会形成一块区域,称为干涉区域。若干涉区域包括了刀触点位置,说明刀具在该刀触点位置为局部干涉;若干涉区域不包括刀触点,说明刀具在该刀触点位置为后干涉。在实际应用中,可以调用OCC的Geom_Point类存储干涉时刀触点位置信息。
[0067] 以上计算完刀具有效切割部分在单个刀触点位置对曲面的切割情况,下面将计算刀具在单个刀触点位置,刀杆对应曲面的干涉情况。将刀具落在刀触点上,刀杆圆柱体与曲面上所有曲面上的离散点依次用圆柱与直线求交的模型求解干涉情况。若存在曲面离散点出现干涉情况,则说明刀具在该刀触点位置全局干涉,用OCC的Geom_Point类存储干涉时刀触点位置信息。
[0068] 以上完成刀具在单个刀触点位置对曲面切割情况与干涉情况的计算。从刀轨第一个刀触点开始,沿着刀轨依次采取上述算法进行计算。计算完一整条刀轨对所有曲面上的离散点的切割情况,则得到最后曲面上残高分布情况,以及刀具干涉情况。
[0069] 对于所有曲面上的第二离散点,沿该点曲面法矢方向,平移最后计算出的残留高度值,则成为表示加工误差的残高分布曲面的离散点。
[0070] 在实际应用中,可选的,可以通过调用OCC的MeshVS_Mesh类将相邻三个残高分布曲面的离散点作为一个三角面片,得到表示残高分布的细分曲面。
[0071] 进一步的,还以通过调用OCC的MeshVS_NodalColorPrsBuilder类对细分曲面进行着色。示例性的,若残留高度大于允许的残高误差,残高分布曲面的离散点设置为红色,表示未切割;若残留高度小于0且绝对值大于允许的弦高误差,残高分布曲面的离散点设置为黄色,表示过切;若残留高度绝对值小于允许的弦高误差,残高分布曲面的离散点对应绿色。残留高度为允许的残高误差,残高分布曲面的离散点对应深蓝色,其他情况根据残留高度与允许的残高误差的比值对残高分布曲面的离散点逐渐变色。最后调用OCC的AIS_InteractiveContext的类显示对上述着色进行显示,其中颜色映射表调用OCC的V3d_ColorScale类实现。
[0072] 另外,对于所有曲面上的第二离散点,还可以根据该离散点与刀具的轴线距离s,以及该离散点在刀具的轴线上的投影点与刀具的刀心点之间的距离l确定刀具的全局干涉信息。
[0073] 具体的,可以根据 计算第二离散点与刀具的轴线距离s,根据计算第二离散点在刀具的轴线上的投影点与刀具的刀心点之间的距离l。其
中,为刀具的轴线矢量,对应刀具的刀心点坐标。当s小于刀具半径,l大于0且l+R2小于刀具长度时,对应曲面上的第二离散点在刀杆圆柱体内,说明刀具全局干涉。其他情况不存在全局干涉。
[0074] 在实际应用中,可以设置点的线宽大于刀轨线段,通过调用OCC的TopoDS_Shape类与AIS_InteractiveContext类分别显示出各刀触点的局部干涉、后干涉以及刀具的全局干涉信息。若不存在,则可以弹出弹窗提示无干涉。
[0075] 最后,如果根据加工刀轨的加工误差和干涉信息判断加工刀轨的加工误差是小于预设值且不存在干涉信息(包括各刀触点的局部干涉、后干涉以及刀具的全局干涉信息),则根据生成的加工刀轨导出用于控制T样条模型的数控加工的加工代码。反之,则还需要对加工刀轨进行调整,直至加工导轨的加工误差小于预设值且不存在干涉信息时,根据调整后的加工刀轨导出用于控制T样条模型的数控加工的加工代码。
[0076] 示例性的,导出加工刀轨到UG(Unigraphics NX)或者Catia中后置处理,生成加工代码,用于实现T样条模型的加工。
[0077] 示例性的,将加工刀轨按照UG的CLF格式,或者Catia的APTSOURCE格式导出,将T样条离散转化为STL格式的细分曲面,与APTSOURCE格式的刀轨共同导入到Catia中。然后,通过调用机床厂商提供的后置程序生成加工代码,并利用机床进行加工。
[0078] 本发明实施例提供的基于OCC实现T样条模型的数控加工方法,通过基于OCC搭建支持T样条模型加工与仿真的CAM软件,通过采用工程中实用的等残高加工方法生成加工刀轨,并通过一种切割仿真算法对加工刀轨的加工误差和干涉信息进行分析。采用OCC这款开源CAD内核,其建模、显示、数据交换等功能可以直接调用,能够直接提供加工仿真功能,实现加工误差和干涉情况分析,为技术人员判断刀轨是否合格提供依据,大大提高了生成T样条模型的数控加工方案的效率。
[0079] 基于与上述图1所述实施例提供的基于OCC实现T样条模型的数控加工方法相同的思想,本发明实施例还分别提供了基于OCC实现T样条模型的数控加工系统。其中系统部分与上述方法对应,对应内容技术效果相同,在此不再赘述。
[0080] 图6为本发明实施例提供的一基于OCC实现T样条模型的数控加工系统示意图,如图6所示,本实施例提供的系统包括模型生成单元61,接收单元62,加工刀轨生成单元63,误差与干涉判定单元64,加工代码生成单元65以及数控加工单元66。
[0081] 具体的,模型生成单元61用于获取T样条数据文件,并根据T样条数据文件生成对应的T样条模型;接收单元62用于接收用户输入的加工参数;加工刀轨生成单元63用户输入的加工参数,通过等残高刀轨生成方法生成加工刀轨;误差与干涉判定单元64用于根据用户输入的加工参数,通过切割仿真算法确定加工刀轨的加工误差和干涉信息;加工代码生成单元65用于:若加工刀轨的加工误差小于预设值且不存在干涉信息,则根据加工刀轨生成加工代码;数控加工单元66用于根据生成的加工代码进行T样条模型的数控加工。
[0082] 本实施例提供的基于OCC实现T样条模型的数控加工系统,可以用来实现上述方法实施例提供的技术方案,与上述方法实施例对应,对应的内容和技术效果相同,在此不再赘述。
[0083] 图7为本发明实施例提供的另一基于OCC实现T样条模型的数控加工系统示意图,如图7所示,本实施例在图6所示实施例的基础上,上述系统还可以包括加工刀轨调整单元67,用于:若加工刀轨的加工误差不小于预设值和/或存在干涉信息,则调整加工刀轨的,直至加工刀轨的加工误差小于预设值且不存在干涉信息。
[0084] 在实际应用中,上述模型生成单元61具体可以包括:确定模块611,映射模块612和显示模块613。
[0085] 其中,确定模块611可以用于根据T样条数据文件确定计算T样条所需的控制顶点、控制顶点的权重以及控制顶点对应的节点矢量分布信息。映射模块612可以用于根据T样条公式 确定T样条在参数域中的第一离散点映射到笛卡尔空间中对应的第二离散点的位置,其中,第一离散点为将参数域区间等分得到的(n+1)×(n+1)个离散点,n为大于零的正整数,参数域区间为0≤u≤1且0≤v≤1,A为在笛卡尔空间中对当前所要确定的第二离散点有影响的控制顶点的集合,Pi为控制顶点i在笛卡尔空间中的位置,Wi为控制顶点i的权重,Bi(u,v)=Ni(u)·Ni(v),Ni(u)和Ni(v)分别为参数u和v的伯恩斯坦基,Ni(u)和Ni(v)根据控制顶点i对应的节点矢量分布信息确定。显示模块613可以用于根据控制顶点和所有的第二离散点,通过调用OCC的显示模块生成T样条模型。
[0086] 在实际应用中,上述加工刀轨生成单元63具体可以包括:初始刀轨确定模块631,刀触点确定模块632,NURBS曲线插值模块633以及连接模块634。其中,初始刀轨确定模块631可以用于选取T样条模型的第一边界作为初始刀轨。刀触点确定模块632可以用于根据初始刀轨和用户输入的加工参数确定初始刀轨的下一条刀轨的多个刀触点。NURBS曲线插值模块633可以用于通过调用OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对初始刀轨的下一条刀轨的多个刀触点进行NURBS曲线插值得到初始刀轨的下一条刀轨。
[0087] 进一步的,刀触点确定模块632还可以用于:依次对每一条刀轨,根据该刀轨和用户输入的加工参数确定该刀轨的下一条刀轨的多个刀触点,直至该刀轨的下一条刀轨的多个刀触点全部落在T样条模型的第二边界上。需要说明的是,T样条模型的第二边界与第一边界不相交。
[0088] 进一步的,NURBS曲线插值模块633还可以用于,通过调用OCC的GeomAPI_Interpolate类和Geom_BsplineCurve类对上述每一条刀轨的下一条刀轨的多个刀触点进行NURBS曲线插值得到刀轨的下一条刀轨。
[0089] 具体的,连接模块634可以用于通过曲线段依次首尾连接相邻两条刀轨生成等残高加工刀轨。需要说明的是,用于连接相邻两条刀轨的曲线段由两条三次Hermite曲线连接构成,且曲线段与相邻两条刀轨的连接处以及曲线段中两条三次埃尔米特曲线的连接处均一阶连续。
[0090] 在实际应用中,误差与干涉判定单元64具体可以包括第一确定模块641,第二确定模块642,误差判定模块643和干涉判定模块644。
[0091] 具体的,第一确定模块641可以用于:对于加工刀轨上的每一个刀触点,根据确定当刀具落在该刀触点时,对应的第二离散点与刀具的垂直距离h,其中, 对应所述第二离散点的坐标,为所
述第二离散点处T样条曲面的法矢,R2为与所述刀具的轴线共面且圆心与所述刀具的轴线距离为R1的圆的半径, D为所述刀具的直径。第二确定模块642可以用于:根据计算各第二离散点与刀具的轴线距离s,根据 计算各第二离散点
在刀具的轴线上的投影点与刀具的刀心点之间的距离l,其中,为刀具的轴线矢量,对应刀具的刀心点坐标。误差判定模块643可以用于根据加工刀轨上的刀触点对应的h确定加工刀轨的加工误差。干涉判定模块644可以用于:根据各刀触点对应的h和弦高误差确定刀触点的干涉信息。同时,干涉判定模块644还可以用于:根据s、l、刀具的直径和刀具的长度确定刀具的干涉信息。其中,刀具的直径、刀具的长度、残高误差和弦高误差是通过接收单元
62接收用户输入的加工参数。
[0092] 本实施例提供的基于OCC实现T样条模型的数控加工系统,可以用来实现上述方法实施例提供的技术方案,与上述方法实施例对应,对应的内容和技术效果相同,在此不再赘述。
[0093] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0094] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。