河南省科技攻关项目
《三维实体模型复杂孔洞自动修补关键技术》

项目主要研究内容
在注塑模具设计过程中,分型设计是第一步,其结果对模具结构有重要影响。分型的工作之一就是补孔,在模具分型之前必须完成产品模型上所有孔洞的修补。孔洞是产品三维模型中常见结构,主要为了满足产品的工艺需求,含孔洞的三维实体模型特点是孔洞数量多,结构形状差异大。对于简单孔,现有的CAD软件已经能够自动修补,但大量复杂孔洞的修补工作仍然依赖于人工。据实践经验,复杂孔洞修补花费时间约占分型的80%左右,是影响模具设计效率的关键因素。因此,解决复杂孔洞的自动修补问题是提高分型效率的有效途径。
1. 项目主要完成研究内容
(1)在空间多边形封闭性判断过程中,扩展了曲线边属性,为孔洞修补奠定了基础数据
在计算多边形的封闭性过程中,需要用到边的端点。考虑到孔洞修补需要用到边的其他信息,构建了边的属性集,包括边的ID、端点坐标等6个属性,其中第6个属性为边的矢量。由于边共有4种类型,包括直线边、圆弧边、二次曲线边和样条曲线边,为了统一第6个属性,对直线边,定义为起点指向终点的方向矢量;将圆弧边、二次曲线边和样条曲线边统一为曲线边,矢量为曲线所在平面的法向矢量。
(2)通过对空间环的平面子环分解,实现了可分解为平面子环实体孔洞的自动修补
针对一类边界可分解为平面环的空间实体复杂孔洞,提出了将孔洞边界空间多边形分解为多个平面子环的自动修补方法。若空间环中没有空间曲线,则表明该环可以分解。针对初始平面构建和判断边是否在平面的两个关键问题,对不同类型边给出了判别准则。通过离散方法解决了样条边特征缺失无法计算法向矢量的问题。在计算样条边的过程中,发现有一类退化为样条的直线边,将其类型修改为直线边做统一化处理。提出了对边倒序的方法实现了双向搜索,以保证空间环分解为最大平面子环。基于NX开发了修补工具,通过实例验证,该方法针对任意复杂的此类孔洞,均能准确的完成子环分解及自动修补。
(3)通过空间环同侧面区域的自动识别,解决了开口型孔洞参考面区域的自动选择问题
针对开口型孔洞需要手工选择参考面的问题,通过研究边和两个邻接面的位置关系,发现边的两个邻接面的方位矢量叉积矢量和边的方向矢量存在角度关系。提出了一种“三矢量混合积”算法判别面位于边的哪一侧,利用构建的基准平面与邻接面求交线的方法,解决了由于曲面上取点不当导致邻接面方位矢量计算歧义的问题。通过实例验证,该算法针对不同的空间多边形,均能快速、准确的计算其同侧的邻接面区域,解决了孔洞参考面自动计算的问题。
(4)基于对孔洞边界环的定义,完成了拉伸型孔洞的自动修补
通过对拉伸型孔洞边界环的识别,对边界分别定义为截面线、拉伸方向边以及裁剪边,其中,截面线、拉伸方向边定义了拉伸参数,而裁剪边则是完成对孔洞外的曲面区域进行裁剪。
(5)编程实现了原型系统的所有功能
设计了三种复杂孔洞自动修补的UI界面,通过NX Open API接口及C++编程技术,分别实现了边的属性构建、空间多边形合法性判断、边与平面关系判定、平面子环分解、多边形同侧邻接面区域计算、曲线拉伸方向及拉伸距离计算等,开发了自动修补工具的原型系统,实现了可分解为平面环、开口型、拉伸型复杂孔洞的自动修补。
2.研究取得的突破性进展
(1)提出了空间环的双向搜索方法,实现了最大平面子环的分解
由于空间环任意边都有左右两个邻接边,在空间环的每次分解中,从该边出发,若向右搜索,只能搜索到所有位于同一平面的右连续侧边,无法得知左侧边与平面的关系;若向左搜索,情形一样。为了保证搜索到与该边位于同一平面的所有连续边,提出了基于逆序的双向搜索算法。比如先向左侧搜索,搜索完毕后,对空间环剩余边逆序,逆序后的空间环第一条边即为起始边的右侧邻边,依次搜索即可完成右侧邻边的判断。通过对边的逆序,完成了空间环的双向搜索,实现了空间多边形最大子环的分解。
(2) 提出了“三矢量混合积”算法,解决了开口型孔洞同侧面区域求解问题
提出了由3矢量快速确定面所属边的哪一侧的算法,针对曲面上取点困难和存在二义性的问题,利用基准平面和邻接面求交,并且选择了在离边最近的交线上去特征点,解决了方向计算的歧义问题。该算法意义明确、条件简单、准确高效,可用于各种复杂环的邻接区域计算场景。
1)三矢量混合积计算条件简单:邻接面所属哪一侧仅需当前边及其邻接面信息,不依赖多边形其他边及其邻接面信息;依据边的方向矢量及两个邻接面的方位矢量即可求解结果。
2)提出了一种在曲面上取点的简化方法:通过边的中点和方向矢量建立基准平面,取基准平面与邻接面交线的中点。
3)对于基准平面与邻接面存在多个交线的情况下,通过查找与边中点匹配的交线,消除了因在邻接面上取点不当造成的方位计算歧义。