自动化学报  2019, Vol. 45 Issue (8): 1511-1526   PDF    
基于T-Spline的全自动几何拓扑修复方法
池宝涛1,2, 张见明1,2, 鞠传明1,2     
1. 湖南大学机械与运载工程学院 长沙 410082;
2. 湖南大学汽车车身先进设计制造国家重点实验室 长沙 410082
摘要: 从高质量曲面网格生成的需求出发,提出了一种基于T-Spline的全自动几何拓扑修复方法.本文方法创新性主要可归纳为:1)对原有计算机辅助设计(Computer aided design,CAD)几何模型不进行任何修改保留其本真,自动识别CAD几何模型中常见不必要的几何特征,成功解决了CAD几何模型中存在的几何瑕疵,如短边、窄面、退化边、退化面、非连续光滑边界及尖锐特征等,利用新生成的"虚边"、"虚面"处理几何瑕疵,同时通过虚拓扑重构CAD几何模型的B-Rep;2)开发了一套CAD/CAE集成系统,统一了几何模型与计算分析模型,实现计算机辅助工程(Computer aided engineering,CAE)与CAD两者的无缝集成,所有拓扑修复操作及后续CAE分析计算均在同一环境下进行,避免了几何模型在CAE与CAD系统间进行转换时造成的数据丢失.该方法能够对复杂实体实现全自动几何拓扑修复及网格生成,实验表明,在保证不失真的前提下,修复后的几何模型能够生成质量良好的网格且能降低网格的生成规模,验证了本文方法的实用性和有效性,以满足工程实际分析的需要.
关键词: T-Spline     全自动拓扑修复     虚拓扑     曲线曲面拟合     网格生成    
An Automatic Topology Recovery Method Using T-Spline
CHI Bao-Tao1,2, ZHANG Jian-Ming1,2, JU Chuan-Ming1,2     
1. College of Mechanical and Vehicle Engineering, Hunan University, Changsha 410082;
2. State Key Laboratory of Advanced Design and Manufacturing for Vehicle Body, Hunan University, Changsha 410082
Manuscript received : October 11, 2017, accepted: January 29, 2018.
Author brief: CHI Bao-Tao  Ph. D. candidate at the State Key Laboratory of Advanced Design and Manufacturing for Vehicle Body, College of Mechanical and Vehicle Engineering, Hunan University. His research interest covers computer graphics, CAD/CAE integration, automatic topology recovery method, and mesh generation;
JU Chuan-Ming  Ph. D. candidate at the State Key Laboratory of Advanced Design and Manufacturing for Vehicle Body, College of Mechanical and Vehicle Engineering, Hunan University. His research interest covers CAD/ CAE integration and mesh generation.
Corresponding author. ZHANG Jian-Ming  Professor at the State Key Laboratory of Advanced Design and Manufacturing for Vehicle Body, College of Mechanical and Vehicle Engineering, Hunan University. He received his Ph. D. degree from Tsinghua University in 2002. His research interest covers CAE technology, complete solid stress analysis, computer graphics, software development and numerical methods such as FEM, BEM, meshless method, FMM, MGA. Corresponding author of this paper.
Recommended by Associate Editor LI Cheng-Dong
Abstract: An automatic topology recovery method using T-Spline is presented to reconstruct surfaces by virtual operations for handling unwanted geometric features and facilitating mesh generation without modifying the original input computer aided design (CAD) model. Innovations of the method primarily are in two aspects. Firstly, it presents an automatic topology recovery method using T-Spline to identificate and handle unwanted geometric features in solid modeling automatically, such as short edges, small faces, degenerated edges, degenerated faces, fragmentary boundary edges, sharp features, etc. And a valid B-Rep of CAD model is reconstructed using virtual topology. Secondly, in order to make a truly seamless interaction between CAD and computer aided engineering (CAE), a system for CAE analysis is developed to improve the efficiency and accuracy of the simulation. All operations and CAE analysis can be set up directly on the CAD model, thus automatic simulation is possible and geometric simplification is avoided. In CAE analysis, on account of the requirement for automatic simulation of entire process, the method based on T-spline can relieve the burden of mesh generation and promote CAE analysis to some extent.
Key words: T-Spline     automatic topology recovery     virtual topology     curve and surface fitting     mesh generation    

自由曲线曲面造型技术[1]是计算机辅助几何设计(Computer aided geometric design, CAGD)的核心基础.非均匀有理B样条(Non-uniform rational B-Splines, NURBS)[2]以其优良特性广泛应用于自由曲线曲面造型, 而成为计算机辅助设计和制造(Computer aided design and manufacturing, CAD/CAM)的一个标准.目前, 通用的商业计算机辅助工程(Computer aided engineering, CAE)软件计算仿真流程可分为前处理、中间求解计算、后处理三大模块.其中数值模拟的前处理模块主要用于导入专业计算机辅助设计(Computer aided design, CAD)软件构建的几何模型的标准数据文件或对已有的CAE几何模型进行简单操作或修改、网格生成、施加边界条件及定义物理属性和求解参数等.复杂问题数值模拟难以实现自动化的主要性能瓶颈在于前处理涉及大量的人工交互, 且其效率高低严重依赖于用户经验和知识水平.根据美国Sandia国家实验室Michael Hardwick和Robert Clay提供的数据, 如图 1所示, 在数值模拟过程中, 前处理模块的用时占据了整个数值模拟过程用时的绝大部分, 其中对于CAD模型的处理用时占$60\; \%$(图 1中步骤1~3), 网格生成用时占$20\; \%$ (图 1中步骤4和步骤5), 而真正用于数值计算的时间仅占整个数值模拟过程的$4\; \%$左右(图 1中步骤8), 因此, 实现前处理的自动化是提高全自动CAE分析效率和精度的关键.然而, 由于高质量的网格生成及高效可靠的CAE分析对几何模型通常有特殊的要求, 而初始输入的几何模型由于其来源的多样化, 在进行CAD几何模型设计时没有考虑或很难预见到这些特殊的要求, 因此在导入到CAE系统后的几何模型通常会引入几何"噪声".

图 1 美国 Sandia 国家实验室数值模拟过程用时数据统计 Fig. 1 Statistics related to numerical computation from Sandia National Laboratories of USA

CAD模型的几何"噪声"种类难以尽数, 且其来源及其产生原因多种多样, 主要可归纳为两类:一是CAD模型在几何造型设计制造时存在缺陷.在传统的几何造型设计及产品研发过程中, 几何形状设计与物理分析方法完全分属不同的工程领域, 设计者主要关注CAD模型的构建, 而忽视不理想的几何特征对后续物理分析的影响.二是不同系统之间的数据传递造成的CAD模型几何数据及拓扑信息缺失.在常见的传统商业软件中, CAD系统与CAE系统两者相互独立, 两者之间无法进行交互.在进行产品设计或性能分析时, 需要将CAD模型导入到CAE系统中, 在此数据传递过程中会造成原始几何数据及拓扑信息的丢失.另外, 在传统的工程分析计算中, CAE分析模型的模型描述往往对原始CAD几何模型进行修改或简化, 无法体现几何设计模型中包含的复杂且精确的几何信息, CAE分析模型与CAD几何模型不统一, 且两者之间存在巨大差异, 导致CAE分析自动化程度低.

CAD模型几何拓扑修复[3]主要是指在保证原有CAD模型不失真的前提下, 对CAD模型中存在的几何瑕疵(如短边、窄面、退化边、退化面、非连续光滑边界及尖锐特征等)进行处理, 将存在的"错误"的"脏"几何转换为可满足CAE分析的"干净"几何.目前, 基于不同的应用需求, 国内外学者对于CAD模型修复方法的研究主要分为两类:一类基于连续曲面; 另一类基于离散曲面.现在主流的CAD软件通常基于连续曲面造型, 主要依赖NURBS的建模功能实现复杂模型的建模, 几何精度高, 但受拓扑限制且存储数据量大.文献[4]提出了一种基于连续曲面的方法,利用少许连续曲面片进行拟合处理曲面间的非连续缺陷.该方法具有局限性, 且在修复过程中存在不成功情况.文献[5]提出了一种基于连续曲面的方法, 采用"实操作"消除细小几何特征, 操作复杂, 拟合数据量大, 且在力学性能分析中, 局部细小特征恰恰为应力集中的地方, 是研究的关键对象.文献[6]提出了一种基于连续曲面的方法利用"实操作"修复实体模型, 对CAD模型中的几何瑕疵进行增删操作, 利用"实操作"后的连续曲面替代原实体模型中的曲面, 该方法存在以下缺陷: 1)完成修复的主要步骤需要大量的人工交互, 对于复杂实体模型的几何修复效率低且错误率高; 2)修复后的模型与输入原模型几何数据及拓扑信息存在巨大差异, 改变了原始CAD模型的真实信息.基于离散曲面进行拓扑修复方法主要通过大量的三角形面片进行曲面表征, 相关几何计算是线性的、效率高, 但存储数据量大、几何精度差, 无法满足高精度的数值模拟要求.文献[7]对离散模型的修复方法研究的最新进展进行了系统的归纳和总结, 并概括总结了典型的离散模型错误, 包括法向不一致、孤立点和边、非二边流形、退化单元、孔洞、细缝和单元重叠、相交、拓扑噪音、数据噪音、锐利几何特征丢失等.该方法分类复杂, 且多数错误为在离散模型中存在, 或在将连续参数曲面模型转化为离散模型的过程中引入的错误, 而在基于参数曲面设计的CAD模型中并不存在.文献[8]提出了一种采用离散曲面的方法, 利用大量的三角形面片进行模型处理, 该方法难以满足高精度的数值模拟要求且存储数据量大.此外, 离散曲面表征仅涉及离散面片间等低层拓扑, 无法直接用于需高层拓扑支持的操作, 如若需要, 需重构连续曲面模型中的边界表征数据(Boundary representation, B-Rep).参数曲面造型在数值模拟中应用最为广泛, 如在等几何分析及计算流体力学等领域, 模型的几何精度对保证数值模拟精度非常关键, 因此高精度的数值模拟通常要求采用参数曲面造型方法, 甚至要求采用高阶参数曲面.本文从高精度数值模拟的角度出发, 采用第一类基于连续曲面方法进行全自动几何拓扑修复.

基于本文提出的一种基于T-Spline的全自动几何拓扑修复方法, 开发了一套CAD/CAE集成系统, 统一了几何模型与计算分析模型, 实现了CAE与CAD两者的无缝集成, 所有拓扑修复操作及后续CAE分析计算均在同一环境下进行, 避免了几何模型在CAE与CAD系统间转换时造成的数据丢失.基于边界面法[9]的完整实体CAE分析软件[10]是将边界积分方程与计算机图形学相结合, 直接利用CAD实体模型中的边界表征数据实现复杂结构CAE分析自动化, 将几何实体模型的曲面片作为物理量插值的基本单位, 并且用于CAE分析的网格单元可从原始输入CAD模型中计算用于物理量插值和数值积分所需的精确几何信息, 如切向量、法向量、雅克比等, 从而避免了几何误差的引入并保证了计算结果的高精度.与主流商业CAE软件不同的是, 该软件是直接基于UG平台, 利用面向对象的程序设计语言Visual C++二次开发的, 设计了用于读取原始输入CAD模型B-Rep数据的统一几何数据接口模块, 降低了进程间频繁交互的通讯频度.该系统采用本文方法设计了全自动几何拓扑修复模块, 且全自动几何拓扑修复与后续CAE分析在同一环境下进行, 避免了不同系统之间的数据传递造成的CAD模型几何数据及拓扑信息缺失, 统一了几何模型与分析模型, 实现CAE与CAD两者的无缝集成.完整实体CAE分析软件前处理模块框架如图 2所示.

图 2 完整实体CAE分析软件前处理模块框架 Fig. 2 Preprocessing module of center for complete solid analysis software for engineering structures

完整实体CAE分析软件的总体设计原则为:

1) 软件既融于UG又独立于UG.为了提高软件的独立性与可移植性, 本软件的实现仅在几何造型方面依赖于UG而其他子模块又尽可能地独立于UG, 如用户界面模块、数据管理模块、计算仿真模块、后处理显示模块等.这种设计可使软件仅需对几何接口模块做部分修改就能移植到其他CAD软件中.

2) 减少与CAD软件接口函数的交互.由于CAD软件一般都提供二次开发的接口函数, 因而可以直接获取到CAD模型的几何数据, 然而这些接口函数在调用时相当于一个黑匣子, 频繁的交互会增加进程间的通讯频度, 使得数据管理难度增加, 影响计算效率.因此可以通过读取原始CAD模型的B-Rep数据来构建用于CAE分析的B-Rep数据, 并且对参数曲线与参数曲面进行自定义解析, 从而实现与CAD系统的解耦.

3) 采用微软基础库(Microsoft foundation classes, MFC)设计软件的用户交互界面, 避免使用CAD软件提供的用户界面设计工具.因为CAD软件提供的用户界面设计工具提供的界面设计功能没有MFC的丰富全面且不利于软件移植到其他CAD软件中.

4) 软件中的各个模块应尽量相对独立, 且每个模块要能在不修改源代码的情况下实现扩展.为各模块和子模块设计C++类并进行独立封装, 使用继承机制与合成机制实现各模块类的功能扩展.如果一个类需要调用另一个类可以通过设计第三方类进行类与类之间的数据传递.完整实体CAE分析软件整体框架如图 3所示.

图 3 完整实体CAE分析软件整体框架 Fig. 3 The software framework of center for complete solid analysis software for engineering structures

本文提出了一种基于T-Spline的全自动几何拓扑修复方法, 与传统基于连续曲面的拓扑修复方法相比, 基于T-Spline比基于NURBS进行拓扑修复最大优点在于允许T型节点的存在, 在保证同等几何精度的前提下, 减少不必要曲面数据存储, 而且不受拓扑限制.与传统基于离散曲面的拓扑修复方法相比, 基于T-Spline拓扑修复的模型表征几何精度高, 可满足高精度的数值模拟, 且存储数据量大幅降低.本文方法可对具有几何"噪声"和细小特征的复杂结构进行全自动拓扑修复操作, 成功解决了CAD几何模型中存在的短边、窄面、退化边、退化面、非连续光滑边界及尖锐特征等常见的不必要几何特征, 利用新生成的"虚边"、"虚面"处理几何"噪声", 同时重构CAD几何模型的B-Rep, 在一定程度上可以明显改善网格生成的质量, 降低网格的生成规模, 进而有利于减小计算规模, 缩短计算时间, 提高CAE分析计算的精确性和可靠性.分析软件界面如图 4所示.

图 4 完整实体CAE分析软件界面 Fig. 4 The software interface of center for complete solid analysis software for engineering structures
1 NURBS和T-Spline

样条理论和方法的建立为自由曲线曲面造型研究提供了重要的理论依据和技术工具. NURBS以其优异特性而广泛应用于CAD造型和CAE分析中, 如非负性、单位分解性、凸包性、紧支性、灵活的连续性以及保型的p细分(升阶)或h细分(插入节点)等.但是NURBS曲面受到张量积的拓扑限制, 使得NURBS曲面在造型中控制点冗余.此外, 在创建复杂几何模型时, 裁剪曲面往往是造型中一个很重要的操作, 在裁剪区域曲面交界处不可避免会产生缝隙, 从而破坏几何模型曲面与曲面直接的连续性.为了克服NURBS的固有缺陷, 文献[11]提出一种新的样条T-Spline, 即T-Spline控制网格中允许T型控制点存在的样条曲线曲面. T-Spline是在NURBS的基础上推广和发展的, 它突破了传统的B样条曲面控制网格必须满足的拓扑限制的局限, 可以有效消除冗余的控制点, 而且在曲面拼接、曲面加细、曲面简化等方面具有独到之处.在一维空间, T-Spline曲线与NURBS曲线基本是一致的.在二维和三维空间, T-Spline的控制网格中允许存在T型控制点, 且在保证几何造型准确度的前提下, 可有效减少不必要的控制点, 减少曲面解析存储的数据量.二者的区别如图 5所示.

图 5 NURBS与T-Spline区别 Fig. 5 The difierence between NURBS and T-Spline

一条$ p $次NURBS或T-Spline曲线定义为

$ \begin{align} C(u)=\frac{\sum\limits_{i=0}^{n}{{{N}_{i, p}}(u){{\omega }_{i}}{{P}_{i}}}}{\sum\limits_{i=0}^{n}{{{N}_{i, p}}(u){{\omega }_{i}}}}, ~~~0\le u\le 1 \end{align} $ (1)

其中, $P_i$是控制点, ${{\omega }_{i}}$是权因子, ${{N}_{i, p}}(u)$是定义在非均匀节点矢量${\pmb U}$上的$ p $次样条基函数.

$ \begin{align*}{\pmb U}=\{\underbrace{0, \cdots, 0, }_{p+1}{{u}_{p+1}}, \cdots, {{u}_{m-p-1}}, \underbrace{1, \cdots, 1}_{p+1}\}\end{align*} $

基于De Boor-Cox递归公式, 第$i$$p$次样条基函数${{N}_{i, p}}(u)$定义如下:

$ \begin{align*}{N_{i, 0}}(u) = &\ \begin{cases} 1, &\mbox{若}~{u_i} \le u \le {u_{i + 1}}\\ 0, &\mbox{其他} \end{cases} \\ {{N}_{i, p}}(u)=&\ \frac{u-{{u}_{i}}}{{{u}_{i+p}}-{{u}_{i}}} {{N}_{i, p-1}}(u)\, +\\&\ \frac{{{u}_{i+p+1}}-u}{{{u}_{i+p+1}}-{{u}_{i+1}}} {{N}_{i+1, p-1}} (u)\end{align*} $

一张在$ u $方向$ p $次、$ v $方向$ q $次的NURBS或T-Spline曲面定义为

$ \begin{align} S(u, v)=\frac{\sum\limits_{i=0}^{n}{\sum\limits_{j=0}^{m} {{{N}_{i, p}}(u){{N}_{j, q}}(v)}}{{\omega }_{i, j}}{{P}_{i, j}}}{\sum\limits_{i=0}^{n}{\sum\limits_{j=0}^{m}{{{N}_{i, p}} (u){{N}_{j, q}}(v)}}{{\omega }_{i, j}}}, \notag\\ 0\le u, v\le \text{1} \end{align} $ (2)

其中, ${{P}_{i, j}}$是控制点, ${{\omega }_{i, j}}$是权因子, ${{N}_{i, p}}(u)$${{N}_{j, q}}(v)$分别是定义在非均匀节点矢量${\pmb U}$${\pmb V}$上的非有理样条基函数${{N}_{i, p}}(u)$${{N}_{j, q}}(v)$, 定义同上.

2 非理想几何特征分类、识别及拓扑修复

全自动几何拓扑修复是CAE分析前处理过程中一个非常复杂的关键问题.本文将几何模型的B-Rep中存在的短边、窄面、退化边、退化面、非连续光滑边界及细小曲面、尖锐特征等常见几何噪声统称为非理想几何特征.图 6图 7显示了钢架焊缝和汽车桥壳模型的几何噪声.在实体建模中, 复杂工程模型的设计往往需要大量的布尔操作以及几何造型的系统误差, 由此在模型结构中存在大量的裁剪曲面, 且曲面之间在边界交界处不满足C$^{2}$连续.由于在CAD几何模型中存在大量的短边、窄面、退化边、退化面、非连续光滑边界及尖锐特征等几何特征, 这些不理想的几何特征成为网格全自动化生成及CAE全自动分析计算发展过程中的重要瓶颈和亟待解决的重要问题之一.本文提出的基于T-Spline全自动几何拓扑修复方法主要用于处理非连续光滑边界和一般非理想几何特征, 也可适用于退化边、短边、退化面或窄面的处理.对于退化边、短边、退化面或窄面的处理, 可采用T-Spline对相应边或面进行拟合重构操作, 但是鉴于退化边、短边、退化面和窄面的特殊性(长度比或面积比与邻边或邻面相差悬殊的孤立单边或孤立单面), 从保证CAD模型不失真的前提和简化计算的角度出发, 采用特征简化的方法更有优势且效率更高.

图 6 钢架焊缝模型中常见的几何噪声 Fig. 6 Geometric noises of weld in the steel frame
图 7 汽车桥壳模型中常见的几何噪声 Fig. 7 Geometric noises in the automobile axle housing

从高质量网格生成的角度来审视CAD模型几何拓扑修复问题, 本文归纳了4类影响最终网格单元质量的曲面特征, 分类如下:

1) 退化边或短边.本文定义的退化边和短边为与邻近连接边长度比相差悬殊的孤立单边, 如图 8 (a), 模型中含有退化边, 且退化边的长度远小于网格生成时指定的最小长度${l_{\min}}$, 在退化边或短边附近生成的网格会局部加密或生成质量较差的狭长网格单元.为了保证几何拓扑的连续性, 通过将其合并到与之相邻的曲线, 或为了减少计算量, 将其视为一个虚点可避免这一问题, 如图 9所示.

图 8 CAD模型中常见的非理想几何特征 Fig. 8 Nonideal geometric features in CAD model
图 9 退化边、退化面的处理 Fig. 9 Topology recovery for degenerated edges and degenerated faces

2) 退化面或窄面.本文定义的退化面和窄面为与其邻近连接面面积比相差悬殊的孤立单面, 如图 8 (b), 模型中含有退化面, 且该曲面的面积小于网格生成时指定的最小单元面积${S_{\min}}$, 在退化面或窄面附近生成的网格会局部加密, 甚至生成网格失败.为了保证几何拓扑的连续性, 通过将其合并到与之相邻的曲面, 或为了减少计算量, 将其视为一条虚边可避免这一问题, 如图 9所示.

3) 非连续光滑边界.如图 8 (c), 曲面1和曲面2的边界交接处之间存在非连续的细小短边(高亮显示), 网格生成首先需要对几何模型进行边界离散, 在进行边离散的同时需要考虑边的曲率、长度等因素, 由于这些细小短边的存在会导致边离散效果不理想, 其间会产生狭长单元, 生成网格质量不理想或者甚至生成网格失败.通过对这些细小短边重新参数化, 并按照弦长比进行二叉树细分, 在这些细小短边上进行型值点采样, 从而达到自适应合理布置样点的目的.利用T-Spline曲线重新拟合这些细小短边, 生成一条新的虚边替代原有的非连续光滑边界, 如图 10所示.

图 10 非连续光滑边界的处理 Fig. 10 Topology recovery for fragmentary smooth boundary edges

4) 一般非理想几何特征.如图 8 (d), 在几何模型的B-Rep中存在细小曲面、尖锐特征、细缝等曲面特征, 这些几何特征的局部尺寸小于网格生成时指定的最小特征尺寸, 在这些几何特征附近网格会局部加密, 导致生成网格数量的量级增加.通过基于T-Spline曲面的全自动几何拓扑修复方法可避免这一问题.由于一般非理想几何特征的拓扑修复较为复杂, 对这一部分算法我们着重进行描述.

3 基于T-Spline全自动几何拓扑修复

本文基于T-Spline全自动几何拓扑修复算法, 实现对复杂CAD几何模型中非理想几何特征的自动识别、曲面探测及T-Spline曲面重构的全自动几何拓扑修复, 主要算法流程如下:

为了快速高效全自动进行几何拓扑修复, 首先对目标特征进行自动识别, 并将自动探测的一般非理想几何特征进行Delaunay三角化和曲面重新参数化, 从而为后序曲面拟合操作提供统一的参数空间.然后在重新参数化的T-Spline曲面参数空间通过四叉树生成T-网格, 并构建T-网格-散点-原几何曲面的映射机制.在T-Spline曲面拟合操作过程中, 所有的几何数据(如坐标、切向量等)都是直接基于原几何曲面进行计算, 避免几何误差对拟合结果产生不良影响.

3.1 一般非理想几何特征的自动识别

对于一般非理想几何特征的识别, 首先对需要进行拓扑修复的CAD模型特征进行分块, 每个块由它包含的曲面片和域边界组成.域边界是首尾相连的域顶点序列和边组成的环, 域边界可表示任意复杂的块的拓扑, 一个块可以由多个环构成.本文采用基于面的边界扩展生长法[12]将需要重整的曲面片连接成块状(如图 11所示).在自动识别过程中, 将极小面片、狭长面片等小特征曲面作为"种子面片", 块的生长过程就是从边界的起始边出发, 以当前面片与相邻面片在公共边界处的光滑度和面片几何中心处的法矢夹角为判断准则并分别给定一合适阈值(如图 12所示).若满足准则, 则该边为其相邻域面的共边界, 则将相邻面片加入块中, 并对原有块的拓扑结构进行编辑(如域顶点的编辑、域边的合并等), 更新域顶点和域边的邻面和连接边信息并修改上一步的原始边界; 若不满足准则, 则遍历下一条边, 直到所有边界搜寻结束.最终连接成块的曲面集拥有一个外边界, 允许存在多个内边界, 而且边界可以是任意形状.该算法对任意拓扑的几何模型均可实施, 适应性好, 且具有良好的鲁棒性, 如图 13所示.

图 11 基于面的边界扩展生长法示意图 Fig. 11 The seeded region growing algorithm images
图 12 基于相邻面片间公共边界处的光滑度和几何中心处的法矢夹角判断准则示意图 Fig. 12 The judgment criteria for seeded region growing algorithm images
图 13 一般非理想几何特征的自动识别 Fig. 13 Automatic identiflcation for nonideal geometric features

1) 域顶点的编辑

对域顶点的编辑操作包括删除、合并等.删除算法指当域顶点只有两个相邻边时, 可以删除该域顶点, 将两个邻边合并成一个域边; 当该域顶点有三条及三条以上的相邻边时, 则该域顶点至少为三个域面的公共点, 则不对这类域顶点进行删除操作.合并算法指域顶点可以与其共域边的其他域顶点进行合并, 合并的结果是删除当前域顶点和共域边.

2) 域边的合并和优化

在块边界交接处有时会存在非连续的细小短边, 且相邻边连接光滑, 则将块边界上的这些细小短边重新拟合生成一条新边, 并更新块边界的拓扑信息, 如前述对非连续光滑边界的处理.

3.2 一般非理想几何特征的Delaunay三角化

本文在传统Delaunay三角剖分的基础上改进了一种高效增量插点算法和三角形单元的快速定位搜索算法. Delaunay三角化[13]方法具有良好的数学理论支撑, 且具有算法效率高和生成网格质量好等优点, 在不同领域得到广泛的研究和应用.由于平面Delaunay三角化算法只适用于体网格的生成, 不能直接应用于三维曲面面网格生成, 本文采用Delaunay三角化算法在曲面的参数空间生成三角形网格, 然后引入黎曼度量将参数三角网映射到三维空间得到三维曲面面网格.在Delaunay三角化方法中, 点的插入占用了绝大部分的运行时间, 因此, 插点算法的优劣会对Delaunay网格生成效率产生直接影响. Delaunay三角剖分的重要特性及三角化过程如图 14图 15所示.

图 14 Delaunay三角剖分的重要特性 Fig. 14 The most important characteristic of Delaunay triangulation
图 15 Delaunay三角化过程 Fig. 15 The process of Delaunay triangulation

本文改进的高效B-W增量插点算法步骤如下:

1) 建立初始网格.构建一个包含所有样本点的矩形, 并将矩形初始划分为两个三角形.

2) 插入新点, 定位基单元.逐个插入新点, 插入新点后使用点的快速定位算法(后面详述)确定该点所在的三角形作为基单元.

3) 生成空腔.由空外接圆特性, 利用基单元搜索找出所有包含P点的全部三角形, 将当前这些三角形删除, 形成多边形空腔.

4) 生成新单元.形成有效的空腔后, 将插入点依次与多边形空腔边界连接, 形成新单元, 建立点-边-单元之间的拓扑关系, 将新生成的单元加入三角网.

5) 重复上述步骤, 直到所有的节点全部插入为止.

3.2.1 基单元的快速定位

快速定位出任意给定点位于哪一个三角形的算法是Delaunay三角化的关键.由于这一过程频繁地在网格生成中执行, 因此当三角形数目很大时, 点的搜索算法将直接影响程序的执行效率.

本文中的K-d树采用二叉树的数据结构[14], 对目标点或基单元进行快速搜索, 如图 16所示.在二叉树中, 树节点及其邻近节点区域搜索的时间复杂度为${\rm O}\left({\log n} \right)$.以参数空间的离散三角网作为背景网格, 借助三角形重心数目作为细分规则生成二叉树, 建立网格-散点-参数三角网的映射机制, 提高目标点或基单元的搜索效率.

图 16 基于三角形重心构建的K-d树 Fig. 16 Construct the K-d tree based on triangle center
3.2.2 临近单元的快速搜索

基单元确定后, 需对所有被插入点打破空外接圆特性的三角形进行快速搜索.本文改进了一种根据点边关系的快速方向定位算法, 该方法可以迅速地定位当前插入点位于三角网中的哪一个三角形内部, 并在一定程度上提高程序的执行效率, 如图 17所示.主要算法步骤如下:

图 17 临近单元的搜索路径 Fig. 17 The search path for flnding the target triangle

1) 在给定点附近快速找到一个三角形, 作为初始三角形, 即基单元;

2) 从基单元开始, 根据三角形的面积坐标进行快速搜索, 并对包含给定点的所有临近三角形进行快速定位, 直至搜索到目标三角形.

3.2.3 改进目标单元快速定位搜索算法效率

为说明本文改进高效增量插点算法和三角形单元的快速定位搜索算法效率明显优于传统搜索算法, 本文通过如图 18所示几何模型进行验证.首先在几何模型的参数空间生成Delaunay三角网, 并基于参数空间的三角形重心构建K-d树.然后, 在其参数空间进行随机布点, 通过调用C++系统库函数中的随机函数rand(), 将随机函数的最大值rand$_{\max}(\, )$设定为${{10}^{6}}$, 并将产生的随机点规则化到限定的坐标范围内, 调用UG二次开发函数UF MODL ask point containment(), 将不在面上的点(圆孔内部的点)进行剔除, 据统计共产生了628 611个面上的点.表 1给出了分别采用传统方法和本文改进算法的搜索时间对比数据.

图 18 验证改进目标单元快速搜索算法效率算例 Fig. 18 An example to verify the e–ciency of target cell searching algorithm
表 1 本文改进快速搜索方法与传统搜索方法数据对比 Table 1 Comparison between traditional method and our method
3.3 Delaunay三角化网格曲面的重新参数化

为了快速高效地重建T-Spline曲面, 对Delaunay三角化网格曲面进行参数化处理, 即对自动探测到要处理的非理想几何特征重新参数化得到一个统一的参数空间, 且最大程度地保持曲面几何度量(如长度、面积、角度)在映射过程中不发生畸变, 如图 19所示.

图 19 Delaunay三角网格曲面的重新参数化 Fig. 19 Reparameterization of Delaunay triangulation

本文在最小二乘法保形映射(Least squares conformal maps, LSCM)[15]方法理论基础上, 通过利用Delaunay三角化网格曲面的每个三角面片的线性函数去逼近Cauchy-Riemann方程, 通过建立二次逼近误差函数求得在最小二乘意义下的整体的线性拟共形映射, 求得三角网格上各个顶点对应的参数值, 达到非理想几何特征曲面数据的参数化, 为实现T-Spline曲面重建做准备. LSCM方法是一种保形的参数化方法, 既可以实现保角映射又可以实现保面积映射, 如图 20所示.

图 20 三角网格的映射示意图 Fig. 20 Reparameterization map for a triangle

本文对Delaunay三角化网格曲面${{S}_{T}}=[V, E$, $T]$的每个三角面片建立局部坐标系, 其顶点的局部坐标为${{Z}_{i}}=({{x}_{i}}, {{y}_{i}})$, $i=1, 2, 3$.已知该三角网格有$N$个顶点、$n$个三角面片.设$S$是其对应参数曲面的方程, 则${{P}_{i}}=S({{u}_{i}}, {{v}_{i}})$, 则$S$的逆映射: $U:(x, $ $y$, $z)\to(u, v, 0)$.

在每个三角面片上满足柯西-黎曼方程, 即

$ \begin{align} \frac{\partial U}{\partial x}+{\rm i}\frac{\partial U}{\partial y}=0\text{ } \end{align} $ (3)

定义目标保角能量函数为

$ \begin{align} {\zeta _T}(t) = {\int {\left| {\frac{{\partial U(t)}}{{\partial x}} + {\rm i}\frac{{\partial U(t)}}{{\partial y}}} \right|} ^2}{\rm{d}}t{\rm{ }} \end{align} $ (4)

将所有三角形面片上的能量相加, 所得的最终能量方程为

$ \begin{align} &{{\zeta }_{T}}=\sum{{{\zeta }_{T}}(t), }~~~t\in T\notag\\ &\zeta (U = {({U_1}, {U_2}, \cdots , {U_N})^{\rm{T}}}) = \sum {{\zeta _T}(t), } ~~~t \in T\notag\\ &{\zeta _T}(t) = \frac{1}{{{M_i}}}{\left| {{{\left[ \begin{array}{l} {Q_{i, 1}}\\ {Q_{i, 2}}\\ {Q_{i, 3}} \end{array} \right]}^{\rm{T}}}\left[ \begin{array}{l} {U_{i, 1}}\\ {U_{i, 2}}\\ {U_{i, 3}} \end{array} \right]} \right|^2}\end{align} $ (5)

其中, $i$表示第$i$个三角形, $1, 2, 3$表示该三角形的局部标号; $Q$表示${{\bf R}^3}$空间三角形面片顶点局部坐标关系式, $U$表示${{\bf R}^2}$空间三角形面片顶点局部坐标关系式; ${M_i}$是投影在$Z=0$上的${Z_1}, {Z_2}, {Z_3}$组成对应三角形面积的2倍.

以三角形①为例, ${Q_{1, 1}}, {Q_{1, 2}}, {Q_{1, 3}}$表示${{\bf R}^3}$空间三角形①顶点$({x_j}, {y_j})$局部坐标关系式(复数形式), ${u_{1, 1}}, {u_{1, 2}}, {u_{1, 3}}$表示${{\bf R}^2}$空间三角形②顶点$({u_j}, {v_j})$局部坐标关系式(复数形式).

$ \begin{align*} &\begin{cases} {Q_{1, 1}} = ({x_3} - {x_2}) + {\rm i}({y_3} - {y_2})\\ {Q_{1, 2}} = ({x_1} - {x_3}) + {\rm i}({y_1} - {y_3})\\ {Q_{1, 3}} = ({x_2} - {x_1}) + {\rm i}({y_2} - {y_1}) \end{cases} \end{align*} $
$ \begin{align*}& \begin{cases} {u_{1, 1}} = {u_1} + {v_1}{\rm i}\\ {u_{1, 2}} = {u_2} + {v_2}{\rm i}\\ {u_{1, 3}} = {u_3} + {v_3}{\rm i} \end{cases} \end{align*} $

在参数空间至少选取两个基准点作为已知点, 即可求解上述Cauchy-Riemann方程.为最大程度实现高质量的网格曲面重新参数化且保持几何度量在映射过程中不发生畸变, 本文选取两个点作为已知点, 令${u_1} = {x_1}$, ${v_1} = {y_1};$ ${u_2}={x_2}$, ${v_2}={y_2};$则在参数空间还有$N-2$个顶点的参数值待求, 令$Q=$ $({Q_N})$ $= ({Q_{N - 2}}, {Q_2})$$n \times N$矩阵, $n$表示三角形个数, $N$表示所有三角形顶点个数.

$ \begin{align*} {q_{i, j}} = \begin{cases} \dfrac{{{Q_{i, j}}}}{{\sqrt {{M_i}} }}\\ 0 \end{cases} \end{align*} $

其中, ${q_{i, j}}$表示第$i$个三角形第$j$个顶点关系式值.

$ \zeta (U) = {\left\| {QU} \right\|^2} = \left\| {{Q_{N - 2}}{U_{N - 2}} + {Q_2}{U_2}} \right\| $

$ \zeta (x) = \left\| {Ax - b} \right\| $

为了使目标函数最小, 则

$ \begin{align} \frac{{\partial \zeta }}{{\partial x}} = 2({A^{\rm{T}}}Ax - {A^{\rm{T}}}b) = 0{\rm{ }} \end{align} $ (6)

$ \begin{align*} &{A^{\rm{T}}}Ax={A^{\rm{T}}}b\\ &{A_{2n \times 2(N - 2)}} = \left[ \begin{array}{l} {\left( {{Q^{\rm r}}} \right)_{n \times (N - 2)}}{\rm{ }}{\left( { - {Q^{\rm i}}} \right)_{n \times (N - 2)}}\\ {\left( {{Q^{\rm i}}} \right)_{n \times (N - 2)}}{\rm{ }}{\left( {{Q^{\rm r}}} \right)_{n \times (N - 2)}} \end{array} \right]\\[2mm] &{b_{2n \times 1}} = \left[ \begin{array}{l} {\left( {{Q^{\rm r}}} \right)_{n \times 2}}{\rm{ }}{\left( { - {Q^{\rm i}}} \right)_{n \times 2}}\\ {\left( {{Q^{\rm i}}} \right)_{n \times 2}}{\rm{ }}{\left( {{Q^{\rm r}}} \right)_{n \times 2}} \end{array} \right]\left[ \begin{array}{l} {\left( {{U^{\rm r}}} \right)_{2 \times 1}}\\ {\left( {{U^{\rm i}}} \right)_{2 \times 1}} \end{array} \right]\end{align*} $

其中, 上标r代表复数的实部, i代表复数的虚部.

对各个矩阵组装完成后对$x$进行求解, 即可得到参数空间各个顶点对应的参数坐标$({u_j}, {v_j})$.

3.4 自适应T-Spline曲面重建算法

本文将T-Spline和移动最小二乘法(Moving least square, MLS)或径向基函数(Radial basis function, RBF)相结合, 提出了一种新的自适应T-Spline曲面重建算法, 实现对复杂CAD几何模型中一般非理想几何特征的全自动几何拓扑修复.与NURBS曲面相比, T-Spline曲面允许T型节点出现, 本身具备局部自适应剖分能力, 重建曲面能满足任意规定的精度, 具有自适应性, 并且无需专门的曲面简化的过程, 能处理任意拓扑网格, 重建过程易操作, 重建曲面品质高.由于双三次T-Spline曲面在工程实际中广泛应用, 本文采用双三次T-Spline曲面.

一般来说, 自适应T-Spline曲面重建流程如图 21所示.首先由Delaunay三角网格曲面的重新参数化将采样点映射到参数空间, 然后利用四叉树或二叉树细分的方法在曲面参数空间自动生成有效的T-网格, 最后求解相应控制点, 同时在误差较大区域进行局部修正, 使拟合误差满足要求.重建实例及拟合曲面误差评价数据如图 22表 2所示.

图 21 自适应T-Spline曲面重建流程 Fig. 21 The flowchart of automatic T-Spline surface reconstruction algorithm
图 22 自适应T-Spline曲面重建实例 Fig. 22 An example of automatic T-Spline surface reconstruction algorithm
表 2 自适应T-Spline拟合曲面误差及网格质量评价 Table 2 Relevant experimental data of T-Spline fltting for automatic surface reconstruction
3.4.1 T-网格的构造

在进行T-Spline曲面重建[16]时, 核心问题在于如何构造合理高效的T-网格.一个完整的T-网格包括相应的控制顶点、T-网格子面、网格边和相应的边权值.本文在二维参数空间上利用四叉树细分构造T-网格, 细分准则根据点的密集程度和曲面曲率大小决定相应细分次数来决定. T-Spline网格边及对应的节点间距满足以下规则:

规则1.在T-网格的任意一个子面中, 相对的边的节点间距之和必须相等.

规则2.在T-网格中, 位于一个子面一条边上的T-交点, 如果可以与对边的T-交点相连而不违背规则1, 那么该边就包含于T-网格中.

自适应T-网格的构造过程如下:

1) 定义最大细分次数以控制细分四边块数量;

2) 定义叶子采样点数目阈值或曲面曲率细分终止条件;

3) 重复上述步骤, 直到满足细分终止条件为止;

4) 在T-网格最外层添加重节点和相应虚边, 在重节点处添加相应边界条件(包括切矢和扭矢边界条件), 虚边赋予一非负值(一般置0)即可;

5) T-网格创建后, T-网格边赋予边权值(节点间距), 并对T-网格中各个顶点创建相应节点矢量, 确定相应基函数.

3.4.2 T-Spline曲面拟合算法

$P = \left\{ {{p_0}, {p_1}, {p_2}, \cdots, {p_n}} \right\}$为T-网格中待求的控制顶点集, ${B_i}\left({u, v} \right)$是由T-网格的节点矢量确定的相应基函数.

定义T-Spline曲面为

$ \begin{align} {\rm{S(}}u, v{\rm{) = }}\frac{{\sum\limits_{i = 0}^n {{\omega _i}{B_i}\left( {u, v} \right)} {P_i}}} {{\sum\limits_{i = 0}^n {{\omega _i}{B_i}\left( {u, v} \right)} }}, ~~~ 0 \le u, ~v \le {\rm{1}} \end{align} $ (7)

目标函数

$ \begin{align} E\left( P \right) = {E_{\rm fit}} + \sigma {E_{\rm fair}}{\rm{ }} \end{align} $ (8)

拟合项

$ \begin{align} {E_{\rm fit}}\left( P \right) = \sum\limits_{i = 0}^n {{{\left( {S\left( {{u_i}, {v_i}} \right) - {p_i}} \right)}^2}} {\rm{ }} \end{align} $ (9)

光顺项

$ \begin{align} {E_{\rm fair}}\left( P \right) =\, & \sum\limits_{i = 0}^n {\left( {S_{uu}^2\left( {{u_i}, {v_i}} \right) + 2S_{uv}^2\left( {{u_i}, {v_i}} \right) + }\right.} \nonumber\\ &\left. {S_{vv}^2\left( {{u_i}, {v_i}} \right)} \right){\rm{ }} \end{align} $ (10)

重建曲面的目标就是在使$E$最小化时, 令待求控制点${P_i}$的坐标$({{x_i}, {y_i}, {z_i}})$$X$、原始曲面样点${S_k}$的坐标$({{x_k}, {y_k}, {z_k}})$$b$, 则上式等价于求解线性方程组$AX = b$. $AX = b$两边同乘${A^{\rm{T}}}$后, 等价于求解方程组${A^{\rm{T}}}AX = {A^{\rm{T}}}b$, 矩阵$A$ $=$ $({{a_{ki}}})$ $=$ $({{B_i}({{u_k}, {v_k}})})$.

$ \begin{align*} ( {{A^{\rm{T}}}A +\! \sigma ( {A_{uu}^{\rm{T}}{A_{uu}} +\! 2A_{uv}^{\rm{T}}{A_{uv}} +\! A_{vv}^{\rm{T}}{A_{vv}}} )} )X \!=\! {A^{\rm{T}}}b\end{align*} $

$T = {A^{\rm{T}}}A + \sigma ( {A_{uu}^{\rm{T}}{A_{uu}} + 2A_{uv}^{\rm{T}}{A_{uv}} + A_{vv}^{\rm{T}}{A_{vv}}} )$,

$ \begin{align*}&{T_{n \times n}}{X_{n \times 3}} = A_{n \times n}^{\rm{T}}{b_{n \times 3}}\end{align*} $

根据实验经验, $\sigma$一般取值在0.01~0.1之间, 本文取值0.05.其中${A_{uu}}$, ${A_{uv}}$, ${A_{vv}}$的元素分别为基函数的二阶偏导$\frac{{{\partial ^2}{B_i}\left({{u_k}, {v_k}} \right)}}{{\partial {u^2}}}$, $\frac{{{\partial ^2}{B_i}\left({{u_k}, {v_k}} \right)}}{{\partial u}\partial{v}}$, $\frac{{{\partial ^2}{B_i}\left({{u_k}, {v_k}} \right)}}{{\partial {v^2}}}, $解此方程组可得到相应T-Spline曲面所有的控制顶点集$P$, 进而得到T-Spline曲面.

3.4.3 T-Spline局部节点插入算法

在重建曲面误差检测过程中, 对于某局部区域误差大于给定阈值的型值点, 需要将其对应的局部区域进行节点插入[17], 形成新的T网格.此过程利用T-Spline曲面拟合算法中求解得到的控制点, 重新计算局部节点插入后相应的控制点, 不再对曲面进行大规模反算, 大大减少计算量, 提高算法效率.算法的具体步骤如下:

1) 误差检测.对于一给定的容许误差$\varepsilon > 0$, 若原始曲面上一点与T- 样条曲面的距离$d\left({{p_i}, S} \right) > \varepsilon $, 则找出${p_i}$对应的T-样条曲面区域作为待优化区域.

2) 对步骤1)确定的T-网格区域插入新节点.

3) 找出插入T-网格节点后基函数改变的控制顶点区域, 利用节点插入公式重新计算插入节点后对应的相应控制点.

4) 重新分配拟合数据.将求解所得控制点P赋值到T-网格中.

5) 单步优化结束后, 需要再对误差进行评价, 直到拟合精度满足要求, 中止迭代优化.

T-Spline局部节点插入算法的一个实例及拟合曲面误差评价数据如图 23表 3所示.

图 23 T-Spline局部节点插入算法实例 Fig. 23 An example of T-Spline local reflnement algorithm
表 3 T-Spline局部节点插入算法拟合曲面误差及网格质量评价 Table 3 Relevant experimental data of T-Spline fltting by the local reflnement algorithm
3.4.4 任意自由边界或含空洞的一般非理想几何特征曲面拟合

对于任意自由边界或含空洞的一般非理想几何特征, 传统方法通常将任意自由边界曲面在重新参数化过程中通过固定边界为正方形或其他形状作为T-Spline拟合的参数空间, 如图 24所示, 但不可避免地会产生长度、面积、角度上的扭曲变形, 拟合曲面的几何度量在映射过程中发生畸变.与传统方法相比, 本文将T-Spline与散乱点拟合算法MLS或RBF相结合[18], 提出了一种新的自适应T-Spline曲面重建算法, 在使拟合T-Spline曲面最大程度地保持原始子曲面的几何度量的同时, 提高全自动几何拓扑修复效率, 实现对任意自由边界或含空洞的一般非理想几何特征的全自动曲面重构, 重建实例及拟合曲面误差评价数据如图 25表 4所示.

图 24 任意自由边界或含空洞的非理想几何特征 Fig. 24 Nonideal geometric features with complex boundary or holes
图 25 任意自由边界的非理想几何特征自动修复 Fig. 25 Topology recovery for nonideal geometric features with arbitrary boundary
表 4 任意自由边界非理想几何特征的拟合曲面误差及网格质量评价 Table 4 Relevant experimental data of T-Spline fltting for nonideal geometric features with arbitrary boundary

对于任意自由边界或含空洞的一般非理想几何特征, 本文仍采用自由边界的重新参数化, 最大程度地保持曲面的几何度量在映射过程中不发生畸变.在曲面采样时, 对于落在原始子曲面内的型值点, 为保证求解精度, 通过映射关系直接通过原始子曲面几何信息求得; 对于落在原始子曲面外和空洞内的型值点, 利用散乱点拟合算法计算相应的型值点, 再进行T-Spline曲面拟合即可.

3.4.5 拟合T-Spline曲面的误差及网格质量评价

对一般非理想几何特征进行T-Spline曲面拟合处理后, 需要对曲面拟合效果进行误差评价.若曲面拟合精度满足要求, 则中止迭代优化; 反之, 对于不满足拟合精度要求对应区域的控制网格则需要自适应剖分加密, 实现对局部细小特征逼近和表征.本文采用最大拟合误差和均方差拟合误差作为误差评价标准.另外, 网格的生成质量从侧面也可以反映拟合T-Spline曲面的好坏, 高质量曲面网格有利于提高CAE分析的计算精度, 本文采用网格质量因子对拟合T-Spline曲面的网格生成质量进行评价.

最大拟合误差和均方差拟合误差的计算如下:

$ \begin{align} &{E_{m}} = \max \left\{ {\left\| {{p_i} - {S_i}} \right\|} \right\} \end{align} $ (11)
$ \begin{align} &{\rm RMSE} = {\left( {\frac{{\sum\limits_{i = 1}^n {{{\left\| {{p_i} - {S_i}} \right\|}^2}} }}{n}} \right)^{\frac{1}{2}}} \end{align} $ (12)

其中, ${p_i}$为T-Spline曲面上的点, ${S_i}$为原始曲面上的点.

三角形的质量$\alpha $因子[19]定义如下:

$ \alpha = 2\sqrt 3 \times\frac{{{S_{\Delta ABC}}}}{{\left\| {\overline{AB}^2 + \overline{BC}^2 + \overline{CA}^2} \right\|}} $

其中, $\alpha$是三角形的面积与边长的平方和之比, $0$ $ < $ $\alpha$ $\le$ $1$, $\alpha$越大表示质量越好.

四边形的质量因子[20]定义如下:

令四个三角形${\Delta _{ABC}}, {\Delta _{ABD}}, {\Delta _{CDB}}, {\Delta _{CDA}}$的因子依次为${\alpha _1}, {\alpha _2}, {\alpha _3}, {\alpha _4}$, 假设${\alpha _1} \ge {\alpha _2} \ge {\alpha _3} \ge {\alpha _4}$, 则四边形$ABCD$的质量因子$\beta $定义为

$ \beta = \frac{{{\alpha _3}{\alpha _4}}}{{{\alpha _1}{\alpha _2}}} $

其中, $0 < \beta \le 1$, $\beta $越大表示四边形质量越好.

三角形及四边形网格的质量因子如图 26所示.

图 26 三角形及四边形网格的质量因子 Fig. 26 The quality factor of triangular and quadrilateral mesh generation
4 全自动几何拓扑修复及网格生成实例

本文利用一种基于T-Spline的全自动几何拓扑修复方法, 对具有几何噪声和细小特征的复杂结构(如汽车桥壳模型、钢架模型等)进行全自动几何拓扑修复, 成功处理了几何模型中存在的短边、窄面、退化边、退化面、非连续光滑边界及尖锐特征等常见的不必要几何特征, 拟合T-Spline曲面的精度满足要求, 网格生成的质量良好, 降低了网格的生成规模, 并成功运用到实际应用中解决工程问题.表 5~8以及图 27图 28是两个基于T-Spline的全自动几何拓扑修复及网格生成的实例, 从中可以看出, 本文算法的可行性及优越性,

表 5 汽车桥壳模型拟合曲面误差及网格质量评价 Table 5 Relevant experimental data of T-Spline fltting for automobile axle housing model
表 6 汽车桥壳模型拓扑修复前后数据对比 Table 6 Relevant experimental data of automatic topology recovery for automobile axle housing model
表 7 钢架焊缝模型拟合曲面误差及网格质量评价 Table 7 Relevant experimental data of T-Spline fltting for steel frame model
表 8 钢架模型拓扑修复前后数据对比 Table 8 Relevant experimental data of automatic topology recovery method for steel frame model
图 27 汽车桥壳模型全自动几何拓扑修复 Fig. 27 The results of automobile axle housing model after automatic topology recovery
图 28 钢架焊缝模型全自动几何拓扑修复 Fig. 28 The results of steel frame model after automatic topology recovery
5 结论

从上述实例可知, 本文提出的基于T-Spline的全自动几何拓扑修复方法在实际应用中具有可行性, 相比其他几何拓扑修复方法[21-24], 本文提出的方法具有以下特点:

1) 本文基于T-Spline全自动几何拓扑修复算法, 实现对复杂CAD几何模型中非理想几何特征的自动识别、曲面探测及T-Spline曲面重构的全自动几何拓扑修复.对于几何模型中存在的短边、窄面、退化边、退化面、非连续光滑边界及尖锐特征等常见的不必要几何特征, 本文的全自动几何拓扑修复算法具有通用性和可行性.

2) 开发了一套新的CAD/CAE集成系统, 统一了几何模型与分析模型, 所有操作在同一环境下进行, 避免了不同系统之间转换造成的几何数据及拓扑信息丢失, 实现CAE与CAD两者的无缝集成.

3) 本文算法的所有操作均为虚操作, 不修改原始几何模型, 且拟合的T-Spline曲线、曲面具有自适应性且满足拟合精度要求.

4) 本文基于T-Spline全自动几何拓扑修复算法, 利用新生成的虚边、虚面处理几何噪声, 同时重构CAD几何模型的B-Rep, 在一定程度上可以明显改善网格生成的质量, 降低网格的生成规模, 进而有利于减小计算规模, 缩短计算时间, 提高基于边界面法CAE分析计算的精确性和可靠性.

参考文献
1
Lancaster P, Šalkauskas K. Curve and Surface Fitting:An Introduction. London: Academic Press, 1986.
2
Piegl L, Tiller W. The NURBS Book. 2nd edition. New York: Springer, 1997.
3
Butlin G, Stops C. CAD data repair. In:Proceedings of the 5th International Meshing Roundtable. Pittsburgh, PA, USA, 1996.7-12
4
Uva A E, Monno G, Hamann B. A new method for the repair of CAD data with discontinuities. In:Proceedings of the 1998 Italian-Spanish Seminar on Design and Feasibility of Industrial Products. Vico Equense, Italy, 1998.59-73
5
Keller J B. Removing small features from computational domains. Journal of Computational Physics, 1994, 113(1): 148-150. DOI:10.1006/jcph.1994.1124
6
Morvan S M, Fadel G M. IVECS:an interactive correction of STL files in a virtual environment. In:Proceedings of the 1996 Solid Freeform Fabrication Symposium. Austin, Texas, USA, 1996.
7
Attene M, Campen M, Kobbelt L. Polygon mesh repairing:an application perspective. ACM Computing Surveys (CSUR), 2013, 45(2): Article No. 15.
8
Patel P S, Marcum D L. Robust and efficient CAD topology generation using adaptive tolerances. International Journal for Numerical Methods in Engineering, 2008, 75(3): 355-378. DOI:10.1002/nme.2263
9
Zhang J M, Qin X Y, Han X, Li G Y. A boundary face method for potential problems in three dimensions. International Journal for Numerical Methods in Engineering, 2009, 80(3): 320-337. DOI:10.1002/nme.2633
10
Center for Complete Solid Analysis Software for Engineering Structures[Online], available:http://www.5acae.com, January 30, 2018
11
Sederberg T W, Zheng J M, Bakenov A, Nasri A. T-splines and T-NURCCs. ACM Transactions on Graphics (TOG), 2003, 22(3): 477-484. DOI:10.1145/882262.882295
12
Mehnert A, Jackway P. An improved seeded region growing algorithm. Pattern Recognition Letters, 1997, 18(10): 1065-1071. DOI:10.1016/S0167-8655(97)00131-1
13
Lee D T, Schachter B J. Two algorithms for constructing a Delaunay triangulation. International Journal of Computer and Information Sciences, 1980, 9(3): 219-242. DOI:10.1007/BF00977785
14
Bentley J L. Multidimensional binary search trees used for associative searching. Communications of the ACM, 1975, 18(9): 509-517. DOI:10.1145/361002.361007
15
Lévy B, Petitjean S, Ray N, Maillot J. Least squares conformal maps for automatic texture atlas generation. ACM Transactions on Graphics (TOG), 2002, 21(3): 362-371.
16
Li W C, Ray N, Lévy B. Automatic and interactive mesh to T-spline conversion. In:Proceedings of the 4th Eurographics Symposium on Geometry Processing-SGP. The Eurographics Association, 2006.
17
Sederberg T W, Cardon D L, Finnigan G T, North N S, Zheng J M, Lyche T. T-spline simplification and local refinement. ACM Transactions on Graphics (TOG), 2004, 23(3): 276-283. DOI:10.1145/1015706.1015715
18
Wang B Y. A local meshless method based on moving least squares and local radial basis functions. Engineering Analysis with Boundary Elements, 2015, 50: 395-401. DOI:10.1016/j.enganabound.2014.10.001
19
Lee C K, Lo S H. A new scheme for the generation of a graded quadrilateral mesh. Computers and Structures, 1994, 52(5): 847-857. DOI:10.1016/0045-7949(94)90070-1
20
Park C, Noh J S, Jang I S, Kang J M. A new automated scheme of quadrilateral mesh generation for randomly distributed line constraints. Computer-Aided Design, 2007, 39(4): 258-267. DOI:10.1016/j.cad.2006.12.002
21
Liu Fen, Zhou Hua-Min, Li De-Qun. Research on manual repair methods of STL file errors. Computer Engineering and Applications, 2006, 42(11): 91-93.
( 刘芬, 周华民, 李德群. STL错误的手工修复方法研究. 计算机工程与应用, 2006, 42(11): 91-93. DOI:10.3321/j.issn:1002-8331.2006.11.029)
22
Zhao Ji-Bin, Liu Wei-Jun, Wang Yue-Chao. Research on algorithm for diagnosis and modification of STL file errors. Computer Applications, 2003, 23(2): 32-33, 36.
( 赵吉宾, 刘伟军, 王越超. STL文件的错误检测与修复算法研究. 计算机应用, 2003, 23(2): 32-33, 36. DOI:10.3969/j.issn.1001-3695.2003.02.011)
23
Zhang Bi-Qiang, Xing Yuan, Ruan Xue-Yu. Fast generation of the topological information in STL for mesh simplification. Journal of Shanghai Jiaotong University, 2004, 38(1): 39-42.
( 张必强, 邢渊, 阮雪榆. 面向网格简化的STL拓扑信息快速重建算法. 上海交通大学学报, 2004, 38(1): 39-42. DOI:10.3321/j.issn:1006-2467.2004.01.010)
24
Cao Bing-Wan, Chen Jian-Jun, Zheng Yao, Huang Zheng-Ge, Zheng Jian-Jing. Automatic topology generation algorithm for hybrid surface models. Journal of Zhejiang University (Engineering Science), 2014, 48(5): 923-933.
( 曹秉万, 陈建军, 郑耀, 黄争舸, 郑建靖. 面向混合曲面模型的自动拓扑生成算法. 浙江大学学报(工学版), 2014, 48(5): 923-933.)