基于痕迹对STEP文件进行特征识别的研究
2011-02-20李梅竹
李梅竹, 陈 荣
(陕西广播电视大学工程管理系, 陕西 西安 710119)
0 引 言
从STEP AP-203文件中提取出的几何信息不等同于零件的加工特征,并不能直接用于工艺设计,因为这种数据表示方法缺少制造意义上的高层几何实体.STEP-NC是面对特征的,因此要建立零件的STEP-NC信息模型就必须进行特征识别,特征识别对下游的工艺规划等制造活动具有十分重要的意义.
1 特证识别技术
特征识别总体上分为两大类:基于边界匹配和基于体分解的特征识别方法[1].
(1)基于边界匹配的特征识别方法:这种方法是最早出现的特征识别方法,通过识别零件的边界来匹配预定义的特征.其基本步骤如下: ①搜索零件的边界表示,并将其与预定义的每一类特征的边界模式进行匹配;②确定已识别的特征参数,构造完整的特征几何模型;③对合并成组合特征的基本特征进行组合.但是该方法无法有效识别相交特征,同时需要进行大量的匹配,识别效率不高.
(2)基于体分解的特征的识别方法:体分解技术可以避免预先定义的特征类型库的限制,其进行特征识别的基本步骤是: ①对零件进行凸分解使其成为凸体的集合; ②对分解出的凸体进行重新组合,产生对应于特征的体元; ③对特征体元进行分类,确定出特征类型,建立特征的体表示. 该方法的缺点是生成的特征解释太多,需要大量的运算,效率偏低.
本文采用基于边界匹配的特征识别方法中基于痕迹的特征识别方法[2],利用该方法对STEP文件进行特征识别.特征痕迹是指一个特征实例被添加到零件模型后所保留的信息,包括几何的、非几何的如尺寸、公差等.即使特征相交,特征完整的边界模式已经不复存在,但只要它的确是零件的一个特征,则在CAD模型中肯定留有痕迹.基于痕迹的识别步骤是: ①从零件的模型库中提取所有的特征痕迹; ②通过几何推理的方法来验证相对应的特征的可能性; ③构造出完整的特征.
2 制造特征的分类与定义
STEP-NC的制造特征有3种:区域特征、二轴半制造特征和过渡特征[3].其中,区域特征用以表征自由曲面的概念;过渡特征用于表示两特征之间的过渡部分如倒角、圆角等;实际的工业产品中,主要是二轴半制造特征,它是在数控机床上能够用二轴联动、第三轴定期进给所能加工的特征的总称.
二轴半制造特征又分为加工特征、复制特征和组合特征[4].后两者分别表征某一特征的重复出现和多个特征的组合,本文不再详述.加工特征参照AP-224定义,具体包括平面(Planar face)、型腔(Pocket)、槽(Slot)、台阶(Step)、孔(Hole)、一般特征(Generic feature)等.本文重点讨论二轴半制造特征中的加工特征,主要是槽特征、孔特征和型腔特征.
在STEP-NC中,一个孔特征通过bottom condition occurrence、hole depth occurrence和diameter occurrence 3个参数项确定[5].孔特征的加工是由钻刀垂直扫描而成,大部分钻刀都有一圆锥端面即加工出锥孔,但本文为了简化认为加工采用平底钻刀时加工出的孔为通孔或盲孔,因此孔的bottom condition occurrence参数为flat或through.既然一个孔特征是由平底钻刀扫描形成的,则它是一个圆柱体,它的尺寸参数由如图1(a)中的直径和高度组成,即孔特征的diameter occurrence和hole depth occurrence.
图1 特征的定义
与孔不同,槽和型腔是通过铣刀加工而成.在STEP-NC中,槽是由course of travel start、course of travel end、swept shape occurrence、course of travel occurrence 4个参数确定,槽的加工是圆柱形铣刀的线性扫描而成,因此槽特征是一个伸长的平行六面体,圆形端面.槽的尺寸参数如图1(b)所示.
在STEP-NC中,型腔是由bottom condition occurrence、pocket depth occurrence和boundary occurrence 3个参数确定.本文的型腔是由平底铣刀经一系列的加工而成,所以型腔的bottom condition occurrence参数为planar或through.型腔特征是通过一个任意形状的平面剖面和一扫描向量描述出,扫描向量垂直于平面剖面,它的长度为型腔的高度,其参数如图1(c)所示.
3 特征识别过程
在本文中,输入的是零件实体模型的STEP文件,该STEP文件中只包含了零件的点-线-面模型,但并不存在毛坯的实体模型.而特征识别要基于一个毛坯才能识别出零件的加工特征,因此为了能得到零件的加工特征必须在特征识别前根据已有的信息进行毛坯模型的构建.但在毛坯设计的初始阶段零件的“真实”毛坯并不存在,因此,需要用一个预设的“假想”毛坯进行初步的识别,这里的“假想”毛坯通常是零件包围盒或凸壳[6],通过初步的识别得到零件的加工特征的面表示.
本文提出构建毛坯实体模型的方法是从STEP文件中搜索CLOSED_SHELL实体的各组成面,除去CYLINDRICAL_SURFACE的面外,其余各面的法向量.当发现两个以上的面具有相同的法向量时,取其放置点最高和最低的两个平面,余者去掉.对得到的这些面进行面面求交,当发现其中几个面已能生成一个包围壳,则取其中能生成最大包围壳的一组面,由这些面组成零件的包围盒即为特征识别前的完整毛坯模型.
在加工过程中要去除的材料总和称为切削体,它是毛坯体减去零件体得到的体.切削体上的面分为加工产生的零件面和要去除的毛坯面.切削体的边界描述中零件面产生纯几何的痕迹,痕迹通过特征识别过程来生成特征,特征识别过程遵循生成-测试-修复3个阶段.
遍历STEP文件中提取出的几何信息,寻找各特征的痕迹.例如找到一痕迹H,在特征识别过程开始前检测痕迹H是否满足该特征对痕迹的要求规则.当痕迹满足要求时,就进行特征识别过程.
(1)生成阶段根据痕迹H生成最大的延拓体,本文称为体V*.
(2)测试阶段检测体V*中是否存在开放区域.沿着刀具轴看过来可见的毛坯面组成开放区域,如果不存在开放区域就放弃该痕迹.之后,检测体V*中是否存在除痕迹外其它的零件面,本文称其为侵入面.如果满足这两个条件,那么这个特征就被实例化,否则识别规则尝试着进入修复阶段.
(3)修复阶段根据痕迹的边界满足的条件来修复体V*,得到一个不与零件干涉的最大体,在本文中称为去除体.该去除体是体V*的子集,得到去除体后进行特征的实例化最终得到特征体.修复也不是总能成功的,因此一些痕迹修复失败后就被放弃了.
4 以槽特征为例讲述具体识别方法
槽痕迹是一对相对的平行平面即槽的壁面,利用这一特点遍历在STEP文件中提取出的实体几何和拓扑信息,选取除毛坯面外其余面的法向量,当两面的法向量相反那么这两个面就可作为一个槽的痕迹.当一个平面存在多个与其法向量相反的平面时,首先选择相距最远的那个面和这个面来作为一个槽的痕迹.如果经后面的检测这对面不符合条件,则再选相距次远的两对面作为槽痕迹,依次类推.图2表示了槽识别中一步步的过程[7].图2(d)阴影部分表示生成图2(h)中槽的痕迹.在特征识别过程之前,要检测两相对平行面中的一个面投影到另一面上时,两面是否重叠.判断两面是否重叠的方法是根据STEP几何信息中两痕迹面的顶点坐标,当其中一个面的一个或几个顶点落在另一面的所有顶点围成的有界区域内,那么可判断出两痕迹面重叠.只有通过了这一检测才能进入生成-测试-修复3个阶段的特征识别过程.
(1)第一阶段:生成阶段. 已得到了槽的痕迹,并且槽的痕迹经过了两痕迹面重叠检测,那么生成阶段的第一个任务即找出槽底面.寻找槽底面的方法为:首先创建一个平面,其面与槽痕迹的壁面垂直.利用几何信息判断两面垂直的方法为该面的法向量与槽痕迹的壁面法向量的点乘为零.这一平面沿其法向量方向拉伸生成的拉伸体与切削体求交得到的体,本文称为体V,槽底面必存在于体V中,选择体V中垂直于槽壁面的零件平面,把它们作为槽底面的候选面,这样的候选面可能不止一个,图2(e)中有4个底面候选面:f1,f2,f3,f4.槽底面候选面必须满足两个有效条件,一是当槽壁面的一个面投影到另一个面上时,必须在槽底面之上的区域内重叠;二是在刀具进给方向上底面和壁面必须相交.图2(e)中的这4个面针对这两点都是有效的.
图2 槽特征的识别过程
对于每个有效的底面候选面,体V*是以底面候选面为边界的平面半空间与体V的相交体.根据底面候选面各面的放置点,启发式的首先选择放置点最高的那个底面候选面,在图2(e)中为面f1,因为放置点最高的底面候选面生成的去除体V*中含有额外的零件面的概率更小些,因此生成一个有效的槽特征的可能性更大.底面候选面f1生成的去除体V*如图2(f)所示.
(2)第二阶段:测试阶段及槽的实例化. 生成体V*后进入测试阶段,在测试阶段中首先沿刀具轴定位方向上寻找开放区域.体V*的面分为零件面和毛坯面,毛坯模型中描述过的面即为毛坯面,体V*的面中除毛坯面外的其余面为零件面.给出有效的槽底面候选面后,刀具轴向定位方向设为与底面法向量相反的方向,计算方法是刀具轴向定位方向向量与槽的底面法向量的点乘为零.在体V*中,沿着刀具轴向定位方向看过去,寻找开放区域即寻找体V*顶面中是否只存在毛坯面,如果找不到开放区域那就否定这个底面候选面.
找到开放区域之后测试阶段还要检测体V*中的面除槽壁面和槽底面之外是否存在侵入面.如果体V*中的面存在侵入面,那么必须对它进行修复,修复过程在下一阶段中具体阐述.图2(g)中的体V*,该体的面中除了壁面和底面外还包含一圆柱形的零件面,所以必须对它进行修复.如果体V*中的面除槽壁和槽底之外无任何的零件面,则体V*作为一个通槽特征.
图3 通槽的计算
对于符合测试阶段条件的体V*,需将体V*映射为特征体.当体V*作为一个槽特征被去除时,必须实例一个参数化的圆形端面槽S,它包含了体V*.给出一个槽的两壁面和底面,可以建立槽的一个局部坐标系.选择X轴垂直于槽壁面,Y轴垂直于槽底面,Z轴垂直于X、Y轴所在的平面,Z轴与刀具扫描和进给方向一致.根据体V*痕迹面的X轴方向顶点的坐标值边界给出参数化槽S的宽度,槽S的宽度对应于铣刀的直径,Y轴边界给出了槽的高度,可以自由选取比槽S的高度长的刀具.槽的宽度和高度在STEP-NC文件中描述为槽的swept shape occurrence.槽S的长度决定了刀具的扫描长度,槽长度的计算如图3所示.槽的长度在STEP-NC文件中描述为槽的course of travel occurrence,放置圆形槽的端面,它的中心位于体V*的Z轴边界上,最大的超出长度为每一端面的刀具半径,如图3中的第二个例子的左端.值得注意的是,这微小的超出是可接受的,因为槽被实例化为一个通槽,在槽的末端刀具运动到了空中而不与零件接触.槽加工时刀具的起止点在STEP-NC文件中描述为槽的course of travel start、course of travel end.
(3)第三阶段:修复阶段.如果体V*的边界中存在侵入面,那么就不能简单的实例一个参数化的槽S,因为零件面与槽S干涉,必须对它进行修复.
修复阶段首先从槽实例化设置的底面、壁面的局部坐标系中进行计算,[R1,R2]为两槽壁在Z轴方向上的边界,同时计算每一个侵入面的Z轴方向上的边界[r1,r2],检测[r1,r2]与[R1,R2]是否相交,如果存在相交,去除体就不能被完整的加工出.图4(a)中的侵入面,它的边界范围[r1,r2]与两槽壁的边界范围[R1,R2]相交,因此它不能被实例成一个有效的槽特征.
如果[r1,r2]与[R1,R2]不相交,那么可尝试着去实例一个盲槽.首先,计算出延拓范围ER1=R1-C,ER2=R2+C,这里C为刀具半径.如果侵入面的区域[r1,r2]落在[ER1,ER2]之外,则槽可被加工出.如果r2<=ER1,如图4(b)所示,则可以沿着Z轴延拓槽,直到刀具中心到达r2+C处,刀具与侵入面不干涉相交,所以不影响零件的加工.事实上,当刀具运动到r2+C处时,刀具所去除的体可能超过了槽特征体的范围,因此刀具加工这个槽特征时并没有运动到r2+C处,假设刀具运动到A处,那么从A到r2+C区域内的加工可作为其它特征加工时刀具的运动范围.如果r1>=ER2,则情况与此相同.根据这种推理,在图2(h)中侵入面落在边界ER2之外,因此盲槽被实例化,图2(h)中的阴影所示部分就是实例后的槽特征.
图4 盲槽的计算 图5 无效的槽特征
如果r2落在[ER1,R1]之内,就要检测侵入面与定位中心在R1上的半径为C的圆柱形半空间是否相交来判断特征是否有效,如果零件面与半空间为内部相交,如图5(b)所示,那么这个槽是无效的.否则如图5(a)所示,只要刀具停止在R1点处槽就可以被加工出.当r1落在[R2,ER2]之内时,与上述情况相同.
综上所述,槽特征的识别方法把槽特征的有关参数都准确的识别出,同样的方法可完成孔和型腔特征的识别.
5 特征识别实例
本文利用Pro/E软件的中性文件转换接口,产生设计需要零件的AP-203文件.但系统输入的AP-203是文件形式,为了更好的表示出特征识别的实例,将Pro/E中零件三维模型显示如图6所示.
有了零件的实体模型后,为了能得到零件的加工特征,需要用一个预设的“假想”毛坯进行初步的特征识别.采用本文提出的从STEP文件中构建毛坯方法构建毛坯,即从STEP文件中搜索CLOSED_SHELL实体的各组成面,除去CYLINDRICAL_SURFACE的面外其余各面的法向量.当发现两个以上的面具有相同的法向量时,取其放置点最高和最低的两个平面,余者去掉.对得到的这些面进行面面求交,当发现其中几个面已能生成一个包围壳,则取其中能生成最大包围壳的一组面,由这些面组成零件的包围盒即为特征识别前的完整毛坯实体模型.这里的毛坯是“假想”毛坯,它与零件的“真实”毛坯存在差异,生成毛坯的STEP文件如图7所示,为了更直观的表示毛坯的形状,显示毛坯的三维模型.
图6 Pro/E中三维模型图 图7 “假想”毛坯
图8 特征识别的结果
遍历STEP文件中提取出的几何信息,寻找各特征的痕迹.采用之前提出的槽、孔及型腔在STEP文件中痕迹的寻找方法在这里找到一对相对的且重叠的平行平面作为槽的痕迹,一个完整的圆柱面作为孔的痕迹,一组非平行的平面和部分的圆柱面作为型腔的痕迹.当痕迹满足要求时,就进行特征识别过程.
生成阶段根据痕迹生成最大的去除体V*;测试阶段检测去除体V*是否存在开放区域,之后还要检测去除体中是否存在侵入面,如果满足上述两条件,这个特征就可实例化,否则识别规则进入修复阶段;修复阶段根据痕迹的边界条件来修复体V*,得到一个不与零件干涉的最大去除体,该去除体是体V*的子集并与零件不干涉相交,得到去除体后同样进行实例化最终得到特征体.修复也不是总能成功的,因此一些痕迹在修复失败后就被放弃了.经过特征识别的几何推理过程最终得到提取出的特征如图8所示.
6 结束语
本文采用基于痕迹的几何推理方法并结合STEP文件信息模型的特点来对STEP文件进行特征识别,首先从STEP文件中提取出零件的几何和拓扑信息中寻找各特征的痕迹,根据特征痕迹,特征识别过程分为生成-测试-修复3个阶段,最终得到一个实例化的特征.该种方法能够很好地解决相交特征的识别问题,成功的识别出典型的二轴半制造特征:槽、孔和型腔.为后续加工特征的宏观工艺规划以及按照ISO10303 Part21规范生成AP-238文件提供了依据.
参考文献
[1] 周 炜.基于图的边界模型的加工特征识别技术[D].南京:南京航空航天大学硕士学位论文,2006:4-7.
[2] 高曙明.自动特征识别技术综述[J].计算机学报,1998,21(3):281-288.
[3] 张承瑞,刘日良.STEP-NC 2.5D铣削工步的运动特征及其数据模型[J].机械科学与技术,2005,24(1):90-93.
[4] 刘日良,张承瑞,张元才,等.面向STEP-NC控制器的数控加工工艺规划模型[J].中国机械工程,2004,(4):325-329.
[5] International Standards Orgazation.ISO14649:Industrial automation systems and intergration-physical device control-data model for computerized numerical controllers:part10 general process data[S].2002:9-49.
[6] 张凤军.具有健壮性的加工特征识别系统研究及其应用[D].杭州:浙江大学博士后出站报告,2002:49-53.
[7] J.H.Han.3D Geometric Reasoning Algorithm for Feature Recognition[D].PhD Thesis of University of Southern California,1996:12-22.