在机械零件设计中, 圆角过渡特征被广泛采用, 其主要目的一是为了减小应力集中, 改善零部件的受力情况, 二是提高产品的美观性和可操作性. 自上世纪80年代以来, 特征识别技术在学术界得到了广泛而深入的研究[1-3], 该技术主要涉及如下三个方面应用:
1) 分析模型的预处理. 分析模型(或有限元模型)算法不能处理带有圆角特征的实体边界模型, 在算法实施之前需要对模型进行圆角特征的识别与抑制.
2) 制造特征识别. 对加工区域的圆角特征进行区别, 用于设计加工工艺和刀具选择.
3) 设计特征重构. 圆角特征是重要的设计特征之一, 根据现有的实体边界模型, 推测圆角特征的构造历史, 恢复模型的设计意图, 按照特征构造顺序重构出零件模型.
因此基于设计意图推理的圆角过渡特征的识别是设计特征重构技术中一个非常重要的环节. 目前学术界关于圆角过渡特征识别的方法已经开展了大量的研究[4-7], 但是过渡特征设计意图推理的研究却鲜有涉及. 文献[4-6]对圆角过渡特征的定义未考虑到模型设计意图, 例如圆角过渡半径值和过渡特征操作的顺序, 只是根据过渡面之间的邻接关系对过渡面进行简单的划分, 在过渡特征识别的过程中没有提取出CAD模型的设计意图, 这给过渡特征的重构带来了很大的麻烦. 文献[7]在有些情况下, 存在圆角过渡面划分不合理的情况.
本文提出了一种基于设计意图推理的圆角过渡特征识别方法, 以STEP格式的实体边界模型作为数据输入, 首先识别出模型中的过渡面; 基于模型的设计意图给出过渡特征的定义, 设计识别算法识别出过渡特征; 根据过渡面的弹出边和交界边判断过渡特征的先后顺序, 建立以圆角过渡特征为顶点的有向无环图, 对该图进行拓扑排序, 得到过渡特征的线性序列.
1 圆角过渡特征 1.1 圆角过渡特征概念虽然特征造型技术研究已有三十多年历史, 但是特征仍然没有一个统一的定义. Shah[8]认为特征必须满足四个基本条件: 零件的物理组成部分, 可以映射到某一个具体的形状, 具有工程意义和可以预知的属性. 一般来讲, 特征指的是具有一定工程意义的几何外形. 以产品信息为标准, 可以将特征分为形状特征、精度特征、材料特征等六大类. 形状特征又可以细分为主特征和辅助特征.
圆角过渡特征是通过特定方式形成的一组几何过渡面的工程描述, 由过渡参数、过渡类型和过渡几何形状组成; 是辅助特征的一种, 依附在一个或者多个主特征之上.
在机械零件中, 常用光滑的曲面来代替零件中的尖边、尖点来增加零件的强度和美观性, 这些光滑曲面构成了圆角过渡特征. 选择相应的边并设置相应的圆角过渡半径就可完成圆角过渡特征的创建. 圆角过渡面是由一个假想滚动球紧贴所选取尖边的两邻接面滚动形成的光滑曲面, 如图1(a)中面F1所示. 在所选择的边线上多个点处设置不同的圆角过渡半径值, 可以控制滚动球的半径变化, 形成变半径圆角过渡面, 如图1(a)中面F2所示. 当三个或者三个以上的圆角过渡面相交的时候, 在相交处形成新的圆角过渡面, 该圆角过渡面的几何类型常见的有球面、圆环面、b样条面, 如图1(b)、1(c)、1(d)所示. 本文将研究的圆角过渡面类型限定为滚动球技术产生的过渡面.
1.2 圆角过渡特征几何描述一般一个圆角过渡特征形状由如下几何实体组成:
1) 过渡面和过渡特征: 过渡特征操作形成的光滑曲面称为过渡面, 如图2中的面F1、F3、F4、F6. 圆角过渡半径值相同的过渡面通过尖边或交界边相互连接形成的区域称为过渡特征, 该区域对应于单次过渡特征操作产生的圆角过渡区域. 如图2中过渡面F1、F3、F4、F6组成的区域.
2) 弹出边: 在假想滚动球滚动过程中, 滚动球与原尖边邻接面的接触点移动形成的光滑边. 如图2所示, 边E1、E2是过渡面F3的弹出边.
3) 交界边: 过渡面上除去弹出边剩余的光滑边. 如图2所示, 边E3是过渡面F3的交界边.
4) 支持面: 过渡面通过弹出边邻接的面, 在图2中, 面F2和面F5是过渡面F1的支持面.
5) 边的凸凹性: 两个邻接面外侧所形成的夹角称为二面角. 如图3(a)所示, 阴影侧为材料侧, 角β是两个邻接面的二面角. 若二面角大于180度则称此边为凸边; 若二面角小于180度则称此边为凹边; 若等于180度则称此边为切边或者光滑边. 边的凸凹性如图3(b)所示.
1.3 圆角过渡特征设计规律
在零件设计过程中, 由于各商业CAD软件以及设计者个体的差异, 同一个零件模型的建模顺序和造型方法不尽相同, 但在建模策略上存在共性, 有一定规律可循. 圆角过渡特征的设计遵循如下基本原则:
1) 先创建机械零件的主特征, 后创建圆角特征;
2) 一般先设计大圆角后设计小圆角, 不同半径值的圆角过渡面在不同的过渡特征操作中完成;
3) 相互连接且圆角过渡半径相同的边线, 在单次过渡特征操作中全部被选中.
2 圆角过渡特征识别 2.1 圆角过渡面识别圆角过渡面有特定的拓扑和几何性质, 根据这些性质可以将圆角过渡面和非圆角过渡面区分开来. 依次遍历模型中的每个面, 对每个面进行测试, 凡是符合以下五个条件的测试面均认为是一个过渡面:
1) 测试面是光滑曲面.
2) 测试面上的光滑边的数量不小于1.
3) 若该测试面为柱面, 则不存在某个柱面与该测试面同时通过两条或者两条以上的光滑边相邻接.
4) 若该测试面通过光滑边邻接的平面数量大于2, 则任意两个平面不平行.
5) 测试面的最大曲率半径小于给定的阈值.
圆角过渡面的交界边、弹出边在圆角过渡特征的识别和顺序推理中起到了非常重要的作用. 在识别出过渡面之后, 需要对过渡面的弹出边和交界边进行识别. 首先对该过渡面上的所有边进行凸凹性计算, 筛选出光滑边, 然后根据光滑边上点的曲率特性对光滑边进行测试, 识别出弹出边和交界边. 边的凸凹性计算在文献[9]中已有大量的叙述, 本文不再赘述. 下面就弹出边和交界边的识别进行详细的叙述.
圆角过渡面是由滚动球滚动产生的, 球心在运动中形成的轨迹称为脊线, 如图4所示. 边E是过渡面Fa边界上的光滑边, 过渡面Fa和面Fb通过边E相邻接, 点P为边E上的一点, a1和a2是过渡面Fa在点P处的两个主曲率, a2为最大主曲率, a1为最小主曲率. 最大主曲率a2的值等于该处滚动球的半径的倒数, 主曲率a1和a2的方向相互垂直. 当点P取测试边E上不同的点时, 对于常半径圆角过渡面, 最大主曲率a2的值相同; 对于变半径圆角过渡面, 最大主曲率a2的值不同.
下面给出判断弹出边和交界边的启发式规则:
规则1. 若主曲率a1与a2的值相等, 易知该过渡面为球面, 则边E是过渡面Fa的一条交界边.
规则2. 主曲率a1与a2的值不相等, 若主曲率a1的方向更接近边E在点P处的切线方向, 则边E是过渡面Fa的弹出边; 否则边E是过渡面Fa的交界边.
圆角过渡面的识别算法如下.
输入: 实体边界模型面的集合FL
输出: 实体边界模型过渡面集合BFace
Step1. 变量i的初始值设为1, 判断i是否大于集合FL中面的总数. 若大于则算法结束; 否则从集合FL中取出第i个面作为测试面Fi.
Step2. 判断测试面Fi是否为光滑曲面, 若不是, 则i=i+1, 转Step1.
Step3. 计算测试面Fi上边的凸凹性, 并记录光滑边, 若光滑边的数目为0, 则i=i+1, 转Step1.
Step4. 若测试面Fi的几何类型为圆柱面, 判断测试面Fi是否与某个柱面同时通过两条或者两条以上的光滑边相邻接, 若是, 则i=i+1, 转Step1.
Step5. 依次通过测试面Fi的光滑边查找邻接面, 判断邻接面中平面的数量是否大于2且存在某两平面平行, 若是, 则i=i+1, 转Step1.
Step6. 若测试面Fi的几何类型为圆柱面、圆环面或球面, 则查询该面的圆角过渡半径r, 若r大于给定的阈值, 则i=i+1, 转Step1; 否则认为测试面Fi为圆角过渡面, 将过渡面Fi添加到过渡面集合BFace中, 取测试面Fi上光滑边的中点, 计算中点处最大、最小主曲率, 识别该过渡面的交界边、弹出边, 记录该过渡面的交界边、弹出边、支持面、圆角过渡半径, i=i+1, 转Step1.
Step7. 若测试面Fi的几何类型为b样条面, 则根据测试面Fi上光滑边中点的主曲率识别出测试面Fi上所有的交界边、弹出边. 在弹出边上等距的取m个点, 分别求各点处的最大主曲率ki(i=1, 2, 3…m), 其中最小值记为kj. 若1/kj小于给定的阈值且k1=k2=k3…=kn, 则认为该过渡面为常半径圆角过渡面, 将过渡面Fi添加进过渡面集合BFace中, 并记录该过渡面的弹出边、交界边、支持面、圆角过渡半径, i=i+1, 转Step1; 若1/kj小于给定的阈值但不满足k1=k2=k3…=km, 则认为该圆角过渡面为变半径过渡面, 将过渡面Fi添加进过渡面集合BFace中, 并记录该过渡面的弹出边、交界边、支持面, 并将圆角过渡半径记录为-1, 表示该圆角过渡面为变半径过渡面, i=i+1, 转Step1; 若1/kj大于给定的阈值, 则认为该测试面不是圆角过渡面, i=i+1, 转Step1.
2.2 圆角过渡特征设计意图捕捉 2.2.1 圆角过渡特征顺序的推理一系列的过渡特征操作产生的过渡面相互交织形成网状和链状区域, 在圆角过渡半径不变的情况下, 圆角过渡区域的几何形状取决于过渡特征的操作顺序. 如图5(a)、5(b)所示, 图中所标数字i代表该边被第i次过渡特征操作选中. 由模型a到模型c和由模型b到模型d, 相应边的圆角过渡半径值一样, 过渡特征操作顺序不同, 最终产生的过渡效果不同. 在特征重构的阶段, 过渡特征的重构顺序直接关系到模型是否能够重构为原来的状态, 因此在识别出圆角过渡特征之后, 需要对圆角过渡特征先后顺序进行推理.
根据圆角过渡特征的设计规律, 笔者将单次过渡特征操作形成的过渡面归类为一个圆角过渡特征, 圆角过渡特征的识别将在2.3节详细叙述, 本节着重介绍圆角过渡特征之间顺序的推理与表示.
不相邻的圆角过渡特征之间不存在先后问题, 相邻的圆角过渡特征根据相邻情况分为两种. 为了方便说明, 用“x→y”表示实体x先于实体y产生, Bi表示模型中的圆角过渡特征.
第一种情况: 两个相邻圆角过渡面分别属于两个圆角过渡特征, 其公共边是一个面的弹出边、另一个面的交界边, 则认为交界边所属的圆角过渡特征较早产生. 例如: 过渡面Fi、Fj分别是过渡特征Bi、Bj中的过渡面, 过渡面Fi和Fj通过边E相邻, 边E分别是Fi的弹出边和Fj的交界边, 因此, 面Fj是Fi的支持面, 由圆角过渡面生成的机理可知, 过渡面Fi是由滚动球在过渡面Fj上滚动形成的, 所以过渡面Fj→Fi, 故过渡特征Bj→Bi. 故图5(c)中: B1→B3、B1→B2. 在图5(d)中: B1→B3、B2→B3、B3→B4.
另一种情况是: 两个相邻圆角过渡面分别属于两个圆角过渡特征, 其公共边均是两邻接面的弹出边. 如图6(a)所示, 过渡特征B1与B2相交于边E1, 边E1均是两邻接面的弹出边, 在这种情况下, 由于过渡特征相交, 顺序靠后的圆角过渡特征会在相交处形成额外的交界边, 如图6(a)中的交界边E2, 该交界边提供了判断过渡特征先后顺序的线索. 故图6(a)中, B1→B2, 同理图6(b)中, B2→B1.
2.2.2 圆角过渡特征之间关系的表示
一个大的工程一般可以分成不同的子工程, 子工程之间存在着一定的约束关系, 例如子工程M必须在子工程N完成后才能开始, 子工程M是以子工程N的结束作为先决条件的, 但是有的子工程之间没有这种约束关系, 可以在任何时间节点开始. 整个工程中各个子工程之间的先后关系可以用有向图来描述, 有向图的顶点代表子工程, 有向图的有向弧代表子工程的先后顺序, 弧尾所指的子工程先于弧头所指的子工程. 单个机械零件上往往有很多圆角过渡特征, 可以用有向图G=<V, E>来描述过渡特征之间的相互关系, 其中顶点V是过渡特征的集合, V={v1, v2, …, vm}, E是过渡特征之间有向弧的集合, E={e1, e2, …, em-1}, 表示过渡特征之间的先后顺序. 圆角过渡特征有向图是一个有向无环图(Directed Acyclic Graph, 简称DAG).
由某个集合上的一个偏序得到该集合上的一个全序, 称为拓扑排序[10]. DAG描述了该机械零件上圆角过渡特征之间的一个偏序关系, 对图G进行拓扑排序, 可以将图G中的所有顶点排成一个线性序列.
对图5(c)、5(d)中的两个模型中的圆角过渡特征构建有向图如图7(a)、7(b), 对有向图进行拓扑排序, 可以得到图5(c)中圆角过渡特征的先后顺序为: B1→B2→B3, 图5(d)中圆角过渡特征的先后顺序为: B1→B2→B3→B4.
2.3 圆角过渡特征识别
过渡特征识别本质上是对圆角过渡面集合进行划分, 考虑到圆角过渡特征的设计规律, 为了尽可能的恢复圆角过渡特征的设计意图, 本文以单次过渡特征操作形成的连续过渡区域作为划分标准, 将圆角过渡半径相同的过渡面通过尖边或交界边相互连接形成的区域定义为一个过渡特征.
圆角过渡特征识别算法借助辅助工具队列Quence实现, 算法如下.
输入: 过渡面集合BFace
输出: 过渡特征集合BFeature
Step1. 初始化工具队列Quence并置空.
Step2. 建立一个新的过渡特征B, 取过渡面集合BFace中未作访问标记的过渡面Fi, 将过渡面Fi加入过渡特征B中, 将Fi加入队列Quence尾部, Fi作已访问标记.
Step3. 判断队列Quence是否为空, 如果为空则转Step5; 否则队列Quence队头元素出队列, 记为Si.
Step4. 查找过渡面Si的所有邻接过渡面, 并判断其邻接过渡面是否符合以下条件: a) 未作访问标记; b) 邻接面的圆角过渡半径和Si相同; c) 过渡面Si与其邻接过渡面的公共边为尖边或者均为这两个面的交界边. 记所有符合条件的邻接过渡面为Sw, 若Sw为空, 则转Step3; 否则将Sw加入过渡特征B中, 将Sw加入队列Quence的尾部, 过渡面Sw作已访问标记, 转Step3.
Step5. 将过渡特征B添加到集合BFeature中. 查找过渡面集合BFace中是否存在未被访问的过渡面, 如果存在未被访问的过渡面, 则转Step2, 识别下一个圆角过渡特征; 否则算法结束.
该算法首先选择过渡面集合BFace中一个未被访问的过渡面作为种子面Si, 建立一个过渡特征B, 将种子面Si添加到过渡特征B中, 种子面Si作已访问标记; 然后搜索与种子面Si通过尖边或者交界边邻接且过渡半径相同的所有未作访问标记的圆角过渡面, 记为Sw, 将Sw添加到过渡特征B中并作已访问标记, 以Sw中的面作为新的种子面; 重复上述搜索过程, 直到没有符合条件的邻接过渡面. 至此, 一个过渡特征识别完毕. 断过渡面集合BFace中是否存在未被访问的边过渡面, 若存在则进行下一个过渡特征的识别, 否则, 算法结束.
3 圆角过渡特征识别实例本文提出的基于设计意图推理的圆角过渡特征识别算法, 已经在Visual Studio C++ 2008与JhSolid平台上通过编程实现, JhSolid是一个以OpenGL为显示引擎的三维造型软件.
下面给出具体的圆角特征识别步骤.
1) 输入“STEP”格式的几何中性文件, 提取STEP中性文件中的几何信息和拓扑信息, 构造实体边界模型并进行三维模型重建.
2) 识别过渡面和过渡特征, 对识别出的过渡特征使用不同的颜色进行渲染.
3) 对过渡特征之间的先后顺序进行推理, 建立以过渡特征为顶点的有向无环图, 对有向图拓扑排序得到过渡特征的一个线性序列, 并构造过渡特征树.
3Dsource零件库是国内最大的零件库, 从3Dsource零件库中随机选取大量零件对本文的算法进行实例测试, 测试结果验证了该算法的有效性. 选取如表1所示的几个典型零件模型作为实例进行说明, 最终识别出的圆角过渡特征和推理出的圆角过渡特征顺序分别以渲染和过渡特征树的形式进行输出. 如表1所示, 实例模型的圆角过渡面全部被正确识别, 模型表面相互交织成网状和链状的圆角过渡区域可以合理的划分为不同的圆角过渡特征. 同属一个圆角过渡特征的过渡面圆角过渡半径相同, 每个圆角过渡特征均可由单次过渡特征操作选取单条边或者多条连续的边生成, 符合圆角特征的设计规律和设计者的设计习惯. 最终输出的过渡特征树与表1“说明”项中的圆角过渡特征顺序一致, 与圆角过渡特征的设计意图相吻合. 识别实例表明, 本文提出的基于设计意图推理的圆角过渡特征识别算法可以有效的识别圆角过渡特征和提取模型中圆角过渡特征的设计意图.
4 结论
本文提出了一种基于设计意图推理的圆角过渡特征识别方法, 其创新点在于能够有效捕捉圆角特征的设计意图, 识别出的圆角过渡特征更符合设计规律, 设计意图的成功捕捉为设计特征的重构打下了良好的基础. 文中通过实例验证了本方法的可行性, 为后续的深入研究提供了理论依据. 本文在过渡面的划分上还有待进一步的研究, 比如考虑进一步减少过渡特征个数, 将位置对称但并不相邻接的具有相同圆角过渡半径的过渡面归类为一个圆角过渡特征等.
[1] |
Kim YS. CHAPTER 3-volumetric feature recognition using convex decomposition. Manufacturing Research and Technology, 1994, 20: 39-63. DOI:10.1016/B978-0-444-81600-9.50008-0 |
[2] |
Liu XS, Sajda P, Saha PK, et al. Complete volumetric decomposition of individual trabecular plates and rods and its morphological correlations with anisotropic elastic moduli in human trabecular bone. Journal of Bone and Mineral Research, 2008, 23(2): 223-235. |
[3] |
Joshi S, Chang TC. Graph-based heuristics for recognition of machined features from a 3D solid model. Computer-Aided Design, 1988, 20(2): 58-66. DOI:10.1016/0010-4485(88)90050-4 |
[4] |
Zhu H, Meng CH. B-Rep model simplification by automatic fillet/round suppressing for efficient automatic feature recognition. Computer-Aided Design, 2002, 34(2): 109-123. DOI:10.1016/S0010-4485(01)00056-2 |
[5] |
Cui XF, Gao SM, Zhou GP. An efficient algorithm for recognizing and suppressing blend features. Computer-Aided Design and Applications, 2004, 1(1-4): 421-428. DOI:10.1080/16864360.2004.10738284 |
[6] |
金永霞, 陈正鸣. 改进的圆角特征识别与抑制方法. 计算机应用, 2009, 29(8): 2038-2042. |
[7] |
Venkataraman S, Sohoni M, Elber G. Blend recognition algorithm and applications. Proceedings of the 6th ACM Symposium on Solid Modeling and Applications. Ann Arbor, MI, USA. 2001. 99–108.
|
[8] |
Shah JJ, Mäntylä M. Parametric and feature-based CAD/CAM: Concepts, techniques, and applications. London: John Wiley & Sons, 1995.
|
[9] |
戴百生. 基于STEP的制造特征识别与三维重建技术研究[硕士学位论文]. 哈尔滨: 东北农业大学, 2010.
|
[10] |
黄伟军, 蔡力钢, 胡于进, 等. 基于遗传算法与有向图拓扑排序的工艺路线优化. 计算机集成制造系统, 2009, 15(9): 1770-1778. |