一种基于边界信息的曲面延拓方法
2018-08-21刘辉强安鲁陵
刘辉强,安鲁陵
(南京航空航天大学 机电学院,江苏 南京 210016)
0 引言
在航空零件如复合材料曲面构件和钣金曲面零件的制造过程中,模具是一种必不可少的工艺装备。它主要利用自身的外形,通过一定的方法使得一些具有流动性或塑性变形的坯料成形,得到要求的形状和尺寸。与零件相接触的模具型面需要在零件曲面的基础上向外延拓,以布置与成形工艺相关的结构,如图1所示。延拓曲面为零件曲面的自然延伸,要求与零件曲面光滑过渡。
图1 模具延拓曲面示意图
图2 分段延拓的缺陷
零件曲面多是经过多种操作得到的组合曲面,而模具型面是由工装设计人员对零件曲面进行延拓、裁剪、拼接后得到。在进行曲面延拓的过程中,经常会出现零件曲面无法直接延拓、分段延拓时多张延拓面之间有缝隙、过渡连接不光顺甚至自交等情况,如图2所示。通常工装设计人员就需要反复试凑,得到延拓曲面,整个过程十分繁琐,处理起来耗时耗力。为解决这个难题,许多研究人员做了大量的工作[1-4]。文献[1-2]是对三角网格曲面进行延拓,文献[3]是通过程序自动调用CATIA软件的曲面延拓命令对零件曲面进行分段延拓,代替了人工操作,但仍无法避免分段延拓时多张延拓面之间出现缝隙,过渡连接不光顺甚至自交的情况;文献[4]是通过对零件曲面进行重构以达到延拓的目的,但是由于零件曲面被更改可能导致零件外形不准确,零件曲面内部信息也参与重构导致曲面延拓速度慢。
对模具型面的构造来说,零件曲面的内部信息和曲面边界处的延拓并没有必然的联系,所以本文提出一种基于曲面边界信息的曲面延拓方法。首先基于曲面边界面片得到一系列待延拓点,再利用其切矢量和法矢量等信息获得对应的延拓点,利用待延拓点、延拓点和曲面边界生成延拓面片网格。通过对网格进行曲面填充,得到一张张延拓曲面片,再将其与原曲面相结合,得到延拓曲面。延拓过程中,零件曲面没有被更改,只有位于边界上的曲面片参与了曲面延拓,所以模具型面外形准确,曲面延拓过程较快。按此方法基于CATIA V5R18二次开发出了航空模具曲面延拓工具,可提高航空模具设计效率。
1 曲面延拓的理论基础
1.1 曲面拓扑结构
曲面的拓扑结构表达了曲面的边界及其相互连接的信息。以图3为例,阐述拓扑结构中的简单概念及曲面相关方向的规则。
图3 拓扑概念示意图
F:face,是一个2D的拓扑实体,零件曲面由许多不同的face组成;
E1,E2,E3,E4:edge,是face F的边界;
V1,V2:vertex,是对应edge的边界;
S:Surface,一张无限大的曲面,经过一个封闭的边界限制可以得到面F;
C:Curve,一条无限长的曲线,经过位于其上的2个点V1和V2的限制可以得到E1。
CATIA V5R18采用的ACIS内核对于曲面方向和曲面边界loop方向之间的关系也有着明确的规定。仍以图3为例,曲面F的边界loop,即E1,E2,E3和E4组成的环方向和曲面F方向满足右手定则。
1.2 曲面延拓方向及延拓点的计算
曲面延拓就是将零件曲面沿着某一个特定的方向等距偏移得到新的曲面的过程。不同于造型中的曲面延拓,在航空模具设计的过程中,曲面延拓得到的工艺补充面和零件曲面之间只需满足光滑过渡的要求即可,并没有形状上的要求。工装设计的要求:延拓面和原始曲面满足G1切向连续。对于两个拼接曲面S1,S2,应具有共有的交线曲线C。曲线曲面理论基础表明,如果对于曲线C上的任意一点V,曲面S1和S2在V点的切平面都相同,那么S1和S2沿曲线C保持G1切向连续。
(1)
假设延拓距离表示为d,延拓点EQ坐标计算公式如式(2):
(2)
2 曲面延拓算法描述
本文基于曲面边界拓扑信息的曲面延拓方法,核心思想是先基于曲面边界面片得到一系列待延拓点,再利用其切矢量和法矢量等信息获得对应的延拓点。利用待延拓点、延拓点和曲面边界生成延拓面片网格,通过对网格进行曲面填充,得到一张张延拓曲面片,再将其与原曲面相结合,得到延拓曲面,算法流程如图4所示。
算法描述如下:
输入:零件曲面S。
输出:模具型面。
步骤1:对输入的零件曲面S进行曲面孔洞的修复,孔洞修补算法已有成熟算法,不在此赘述。
步骤2:使用GetAllCells函数得到完成孔洞修补后曲面的所有edge,遍历所有edge,通过判断每一个edge是否仅仅是1个face的边界来判断该edge是否位于曲面的边界上。将所有位于曲面边界上的edge存入边界edge数组edgesOfBoundary,将所有边界edge对应的边界face面片存入边界face面片数组facesOfBoundary。再用CATIA的GetAllCells函数分别获取到的edge,face拓扑信息。CATIA软件会将edge和face进行关联,并提供了edge对象的GetFace函数,以便快速地判断出该edge对象是否仅是1个face的边界。
图4 曲面延拓算法流程图
步骤3:获取零件曲面的边界轮廓。通过步骤2得到的边界edge数组edgesOfBoundary创建曲面的边界轮廓L。
步骤4:循环边界face数组facesOfBoundary,对当前face对象使用CATIA的CATCellTessellator接口进行三角网格划分,该接口的参数sag决定了曲面延拓时被延拓点的个数、曲面延拓的光顺性和延拓的速度。使用CATCellTessellator进行三角网格划分得到的三角网格顶点可以由CATTessPointIter接口调用。
步骤5:使用CATTessPointIter接口遍历当前face的所有三角网格顶点,通过测量每个三角网格顶点到边界的距离判断该点是否位于边界L上,将位于边界L上的点保存至链表pointsOfBoundarys。
步骤7:连接待延拓点Q和延拓点EQ得到直线temLine。将延拓点EQ转存至temEQ,直线temLine转存至temLineUp。若点Q是链表pointsOfBoundarys的第一个,转步骤6,否则转步骤8。
步骤8:将当前延拓点EQ和上一个延拓点temEQ连接起来得到直线temLineConn,然后将当前延拓点对连接得到的直线temLine,上一个延拓点对连接得到的直线temLineUp,两个相邻延拓点之间的直线temLineConn以及边界组成的封闭区域进行填充得到一个填充面temFill,将填充面temFill存入数组temFillOfBoundarys。判断链表pointsOfBoundarys是否遍历完成,是则转步骤9,否则转步骤6。图5为步骤8中一个填充面的生成过程。
图5 填充面生成实例
步骤9:将当前face所得到的temFillOfBoundarys数组里面的所有填充面通过结合得到结合面temJoin,存入数组temJoinLoop。判断边界face数组facesOfBoundary是否循环完成,是则转入步骤10,否则转入步骤4。
步骤10:将边界face数组facesOfBoundary中的每一个face得到的接合面数组temJoinLoop中的所有接合面和修补孔洞后的零件曲面进行曲面结合,即可得到模具型面。
3 曲面延拓工具的开发
基于上述的延拓方法利用CATIA二次开发工具,开发出了航空模具曲面延拓工具,实现了航空模具设计过程中曲面延拓功能。
该工具利用CAA工具提供的接口函数对CATIA进行了二次开发,该工具的运行环境就是CATIA的操作环境。用户使用时首先对曲面利用曲面修复工具进行简单的修复,然后将修复后的曲面作为曲面延拓的输入进行延拓即可得到延拓后的模具型面。
图6(a)为一个带有翻边的零件型面延拓实例,外围阴影区域即为延拓曲面,图6(b)是对延拓后得到的模具型面进行斑马线分析,从图中可以看出斑马线在零件曲面和延拓曲面的连接处是连续的,满足了G1相切连续的要求,甚至斑马线在连接处不仅是连续的,既没有产生尖锐的拐角,也没有出现错位的情况。这张曲面的延拓面已经达到了G2曲率连续了,这也验证了本文的延拓方法是可行有效的。
图6 某零件型面延拓结果
4 结语
航空模具设计过程中,曲面延拓是十分重要的一步。基于边界拓扑信息的曲面延拓技术从曲面的拓扑层出发,获取边界上的信息,然后进行曲面延拓。由于曲面延拓算法不使用曲面内部的信息,仅使用位于边界上的face进行延拓,所以延拓的效率较高,适应性较强。应用结果表明,这一曲面延拓方法是实用可靠的。