一种三维几何模型包面网格生成系统转让专利

申请号 : CN202310076547.9

文献号 : CN115797600B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 段忠祥

申请人 : 安世亚太科技股份有限公司

摘要 :

本发明涉及一种三维几何模型包面网格生成系统,包括:背景网格生成模块,用于计算几何模型的初始划分包围盒,对所述初始划分包围盒进行等间距空间划分得到几何模型的背景网格单元集合;背景网格分割模块,用于根据背景网格单元集合中网格体单元与几何模型的相交关系对背景网格单元集合中的网格体单元进行分割,得到第三网格单元集合;边界面查找模块,用于查找并标记第三网格单元集合中的边界面单元;间隙填补模块,用于查找并标记第三网格单元集合中的间隙面单元;包面网格生成模块,用于基于第三网格单元集合中的边界面单元和间隙面单元在第三网格单元集合搜索得到预设种子点所在封闭体的包面网格。本发明提高了CAE仿真模拟分析的可实施性。

权利要求 :

1.一种三维几何模型包面网格生成系统,其特征在于,包括以下模块:背景网格生成模块,用于计算几何模型的初始划分包围盒,对所述初始划分包围盒进行等间距空间划分,得到几何模型的背景网格单元集合;

背景网格分割模块,用于根据背景网格单元集合中网格体单元与几何模型的相交关系对背景网格单元集合中的网格体单元进行分割,得到第三网格单元集合;

边界面查找模块,用于查找并标记第三网格单元集合中的边界面单元;

间隙填补模块,用于查找并标记第三网格单元集合中的间隙面单元;

包面网格生成模块,用于基于第三网格单元集合中的边界面单元和间隙面单元,在第三网格单元集合搜索得到预设种子点所在封闭体的包面网格;

所述背景网格分割模块包括:

顶点迁移模块,用于若背景网格单元集合中的顶点与最近的几何模型表面的距离小于第一阈值,则将该顶点移动至最近的几何模型表面;

第一分割模块,用于对于背景网格单元集合中的每个网格体单元,若该网格体单元的边与几何模型的表面相交,则根据交点对该网格体单元进行分割;得到第一网格单元集合;

第二分割模块,用于对于几何模型的每条曲线的每个端点,若该端点位于第一网格单元集合中的一个网格体单元内,则根据该端点对该网格体单元进行分割;得到第二网格单元集合;

第三分割模块,用于对于几何模型的每条曲线,在第二网格单元集合中查找与该曲线相交且交点位于网格体表面的网格体单元,则根据交点对该网格体单元进行分割;得到第三网格单元集合。

2.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述背景网格生成模块用于采用以下方式计算几何模型的初始划分包围盒,包括:获取几何模型的原始包围盒,根据公式 计算原始包围盒的中心点pc;

其中, 表示原始包围盒的最小坐标点, 表示原始包围盒的最大坐标点;

根据公式 和 计算新的最小坐标点pmin和最大

坐标点pmax,新的最小坐标点pmin和最大坐标点pmax所表示的正方体为所述几何模型的初始划分包围盒,a表示扩张因子,Lg表示原始包围盒的最长边的长度, 。

3.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述背景网格生成模块用于采用以下方式对所述初始划分包围盒进行等间距空间划分,得到几何模型的背景网格单元集合:根据公式 计算每个方向上的划分数量nL,其中, 为上限取整符号,s表示预设的背景网格尺寸,L表示初始包围盒的边长;

按照 的尺度等间隔划分初始划分包围盒,将初始划分包围盒划分为 个六面体单元,得到几何模型的背景网格单元集合。

4.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述第一分割模块根据交点采用以下方式对该网格体单元进行分割:S221、从交点中任选一个交点作为当前交点;

S222、以当前交点所在的网格体单元为当前网格体单元,将当前网格体单元中每个非交点所在面的顶点和当前交点连接构成当前网格体单元的一个子网格体单元,将当前网格体单元划分为多个子网格体单元;

S223、若存在未遍历的交点,则以下一个交点为当前交点,返回步骤S222;否则,分割结束。

5.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述第二分割模块采用以下方式根据端点对该网格体单元进行分割:将该网格体单元的每个面的顶点与该端点连接构成该网格体单元的一个子网格体单元,将该网格体单元划分为多个子网格体单元。

6.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述间隙填补模块采用以下方式查找第三网格单元集合中的间隙面单元:对于第三网格单元集合中的每个网格体单元,依次判断该网格体单元的每个网格面是否在几何间隙内部,若某个网格面在几何间隙内部,则该网格面为间隙面单元。

7.根据权利要求6所述的三维几何模型包面网格生成系统,其特征在于,所述间隙填补模块采用以下方式判断网格面是否在几何间隙内部:计算网格面的中心点到几何模型每个表面的距离,以距离最小的表面为最接近表面,中心点到最接近表面的距离为第一距离,若第一距离小于第二阈值,则:从最接近表面上与所述中心点最近的点到所述中心点方向的射线若与几何模型表面相交,则计算所述中心点到最近交点的距离作为第二距离,若第一距离与第二距离的和小于第二阈值,则所述网格面在几何间隙内部。

8.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述包面网格生成模块采用以下方式搜索得到预设种子点所在封闭体的包面网格:S41、以预设种子点所在的网格体单元为当前体单元;

S42、对于当前体单元,若不存在未经搜索的网格面,则停止对当前体单元的搜索;否则,遍历当前体单元未经搜索的每个网格面,标记当前网格面为已搜索网格面,若当前网格面为边界面单元或间隙面单元,则将当前网格面加入包面网格单元集合;否则,将与当前体单元通过当前网格面邻接的体单元加入当前体单元的待搜索网格单元集合;将当前体单元的待搜索网格单元集合中的每个体单元作为当前体单元,返回步骤S42;

S43、包面网格单元集合中的网格面构成预设种子点所在封闭体的包面网格。

9.根据权利要求1所述的三维几何模型包面网格生成系统,其特征在于,所述边界面查找模块采用以下方式查找第三网格单元集合中的边界面单元:对于第三网格单元集合中的每个网格体单元,依次判断该网格体单元的每个网格面的顶点是否均位于几何模型的表面,若是,则该网格面为边界面单元。

说明书 :

一种三维几何模型包面网格生成系统

技术领域

[0001] 本发明涉及网格生成技术领域,尤其涉及一种三维几何模型包面网格生成系统。

背景技术

[0002] 在CAE仿真模拟分析领域,常用的数值模拟方法,如有限元、有限体积法等,都需要先执行网格划分,将模型区域划分成简单子区域的集合,才能在模型区域内构建数值模拟平衡方程执行数值模拟分析。如采用规则网格划分方法,将模型空间等间距的划分为多个空间区域。这些简单子区域的集合,为网格单元集合,如四面体、六面体等网格单元的集合,也称之为网格。
[0003] 通常将存在交叉、缝隙、几何洞等几何与拓扑错误的CAD三维几何模型称为“脏”几何模型。对于存在交叉、缝隙,几何洞等拓扑错误的“脏”几何模型,一般都需要先进行几何修复,消除这些拓扑错误,才能采用一般的网格划分方法实现生成网格。如果“脏”几何模型存在大量难以修复的几何与拓扑问题,其清理与修复工作需要耗费大量的人工时间,不利于方便快捷的基于网格进行CAE仿真模拟分析。

发明内容

[0004] 鉴于上述的分析,本发明实施例旨在提供一种三维几何模型包面网格生成系统,用以解决现有“脏”几何模型的难以直接生成网格的问题。
[0005] 一方面,本发明实施例提供了一种三维几何模型包面网格生成系统,包括以下模块:
[0006] 背景网格生成模块,用于计算几何模型的初始划分包围盒,对所述初始划分包围盒进行等间距空间划分,得到几何模型的背景网格单元集合;
[0007] 背景网格分割模块,用于根据背景网格单元集合中网格体单元与几何模型的相交关系对背景网格单元集合中的网格体单元进行分割,得到第三网格单元集合;
[0008] 边界面查找模块,用于查找并标记第三网格单元集合中的边界面单元;
[0009] 间隙填补模块,用于查找并标记第三网格单元集合中的间隙面单元;
[0010] 包面网格生成模块,用于基于第三网格单元集合中的边界面单元和间隙面单元,在第三网格单元集合搜索得到预设种子点所在封闭体的包面网格。
[0011] 基于上述技术方案的进一步改进,所述背景网格生成模块用于采用以下方式计算几何模型的初始划分包围盒,包括:
[0012] 获取几何模型的原始包围盒,根据公式 计算原始包围盒的中心点pc;其中, 表示原始包围盒的最小坐标点, 表示原始包围盒的最大坐标点;
[0013] 根据公式 和 计算新的最小坐标点pmin和最大坐标点pmax,新的最小坐标点pmin和最大坐标点pmax所表示的正方体为所述几何模型的初始划分包围盒,a表示扩张因子,Lg表示原始包围盒的最长边的长度, 。
[0014] 进一步地,所述背景网格生成模块用于采用以下方式对所述初始划分包围盒进行等间距空间划分,得到几何模型的背景网格单元集合:
[0015] 根据公式 计算每个方向上的划分数量nL,其中, 为上限取整符号,s表示预设的背景网格尺寸,L表示初始包围盒的边长;
[0016] 按照 的尺度等间隔划分初始划分包围盒,将初始划分包围盒划分为 个六面体单元,得到几何模型的背景网格单元集合。
[0017] 进一步地,所述背景网格分割模块包括:
[0018] 顶点迁移模块,用于若背景网格单元集合中的顶点与最近的几何模型表面的距离小于第一阈值,则将该顶点移动至最近的几何模型表面;
[0019] 第一分割模块,用于对于背景网格单元集合中的每个网格体单元,若该网格体单元的边与几何模型的表面相交,则根据交点对该网格体单元进行分割;得到第一网格单元集合;
[0020] 第二分割模块,用于对于几何模型的每条曲线的每个端点,若该端点位于第一网格单元集合中的一个网格体单元内,则根据该端点对该网格体单元进行分割;得到第二网格单元集合;
[0021] 第三分割模块,用于对于几何模型的每条曲线,在第二网格单元集合中查找与该曲线相交且交点位于网格体表面的网格体单元,则根据交点对该网格体单元进行分割;得到第三网格单元集合。
[0022] 进一步地,所述第一分割模块根据交点采用以下方式对该网格体单元进行分割:
[0023] S221、从交点中任选一个交点作为当前交点;
[0024] S222、以当前交点所在的网格体单元为当前网格体单元,将当前网格体单元中每个非交点所在面的顶点和当前交点连接构成当前网格体单元的一个子网格体单元,将当前网格体单元划分为多个子网格体单元;
[0025] S223、若存在未遍历的交点,则以下一个交点为当前交点,返回步骤S222;否则,分割结束。
[0026] 进一步地,所述第二分割单元采用以下方式根据端点对该网格体单元进行分割:
[0027] 将该网格体单元的每个面的顶点与该端点连接构成该网格体单元的一个子网格体单元,将该网格体单元划分为多个子网格体单元。
[0028] 进一步地,所述间隙填补模块采用以下方式查找第三网格单元集合中的间隙面单元:
[0029] 对于第三网格单元集合中的每个网格体单元,依次判断该网格体单元的每个网格面是否在几何间隙内部,若某个网格面在几何间隙内部,则该网格面为间隙面单元。
[0030] 进一步地,所述间隙填补模块采用以下方式判断网格面是否在几何间隙内部:
[0031] 计算网格面的中心点到几何模型每个表面的距离,以距离最小的表面为最接近表面,中心点到最接近表面的距离为第一距离,若第一距离小于第二阈值,则:
[0032] 从最接近表面上与所述中心点最近的点到所述中心点方向的射线若与几何模型表面相交,则计算所述中心点到最近交点的距离作为第二距离,若第一距离与第二距离的和小于第二阈值,则所述网格面在几何间隙内部。
[0033] 进一步地,所述包面网格生成模块采用以下方式搜索得到预设种子点所在封闭体的包面网格:
[0034] S41、以预设种子点所在的网格体单元为当前体单元;
[0035] S42、对于当前体单元,若不存在未经搜索的网格面,则停止对当前体单元的搜索;否则,遍历当前体单元未经搜索的每个网格面,标记当前网格面为已搜索网格面,若当前网格面为边界面单元或间隙面单元,则将当前网格面加入包面网格单元集合;否则,将与当前体单元通过当前网格面邻接的体单元加入当前体单元的待搜索网格单元集合;将当前体单元的待搜索网格单元集合中的每个体单元作为当前体单元,返回步骤S42;
[0036] S43、包面网格单元集合中的网格面构成预设种子点所在封闭体的包面网格。
[0037] 进一步地,所述边界面查找模块采用以下方式查找第三网格单元集合中的边界面单元:
[0038] 对于第三网格单元集合中的每个网格体单元,依次判断该网格体单元的每个网格面的顶点是否均位于几何模型的表面,若是,则该网格面为边界面单元。
[0039] 与现有技术相比,本发明通过生成几何模型的初始划分包围盒,对初始划分包围盒进行空间划分,根据划分后的网格体单元与几何模型的相交关系进一步对网格体单元进行分割,使几何模型边界处的网格进一步细分得到第三网格单元集合,从而便于后续找到更贴近几何模型的包面网格,通过查找第三网格单元集合中的间隙面单元把“脏”几何模型的漏洞进行填补,从而实现准确查找封闭体的包面网格,生成合法水密网格。相比于常规的网格生成算法,不需要执行对“脏”几何模型执行繁琐的几何修复,即可直接生成包面网格,用于后续体网格剖分以及数值模拟计算。避免了繁琐的几何修复工作,提高了CAE仿真模拟分析的可实施性。
[0040] 本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

[0041] 附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件;
[0042] 图1为本发明实施例三维几何模型包面网格生成系统的框图;
[0043] 图2为本发明实施例等间距空间划分示意图;
[0044] 图3为本发明实施例根据网格体单元边上的交点对六面体网格体单元进行分割的示意图;
[0045] 图4为本发明实施例根据网格体单元边上的交点对五面体网格体单元进行分割的示意图;
[0046] 图5为本发明实施例根据网格体单元边上的交点对四面体网格体单元进行分割的示意图;
[0047] 图6为本发明实施例根据端点对网格体单元进行分割的示意图;
[0048] 图7为本发明实施例根据网格体单元表面上的交点对五面体网格体单元进行分割的示意图;
[0049] 图8为本发明实施例根据网格体单元表面上的交点对六面体网格体单元进行分割的示意图;
[0050] 图9为本发明实施例的几何间隙示意图;
[0051] 图10为本发明实施例的包面网格示意图。

具体实施方式

[0052] 下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
[0053] 本发明的一个具体实施例,公开了一种三维几何模型包面网格生成系统,如图1所示,包括以下模块:
[0054] 背景网格生成模块,用于计算几何模型的初始划分包围盒,对所述初始划分包围盒进行等间距空间划分,得到几何模型的背景网格单元集合;
[0055] 背景网格分割模块,用于根据背景网格单元集合中网格体单元与几何模型的相交关系对背景网格单元集合中的网格体单元进行分割,得到第三网格单元集合;
[0056] 边界面查找模块,用于查找并标记第三网格单元集合中的边界面单元;
[0057] 间隙填补模块,用于查找并标记第三网格单元集合中的间隙面单元;
[0058] 包面网格生成模块,用于基于第三网格单元集合中的边界面单元和间隙面单元,在第三网格单元集合搜索得到预设种子点所在封闭体的包面网格。
[0059] 本发明通过生成几何模型的初始划分包围盒,对初始划分包围盒进行空间划分,根据划分后的网格体单元与几何模型的相交关系进一步对网格体单元进行分割,使几何模型边界处的网格进一步细分得到第三网格单元集合,从而便于后续找到更贴近几何模型的包面网格,通过查找第三网格单元集合中的间隙面单元把“脏”几何模型的漏洞进行填补,从而实现准确查找封闭体的包面网格,生成合法水密网格。相比于常规的网格生成算法,不需要执行对“脏”几何模型执行繁琐的几何修复,即可直接生成包面网格,用于后续体网格剖分以及数值模拟计算。避免了繁琐的几何修复工作,提高了CAE仿真模拟分析的可实施性。
[0060] 实施时,首先生成三维几何模型的初始划分包围盒,用于网格分割。
[0061] 需要说明的是,三维几何模型通常是由多个曲面构成的,每个曲面由多条曲线构成。三维几何模型的曲面即其表面。在获取一个三维几何模型时,会获取几何模型的曲面信息,包括曲面的数量、曲面的表达方式(比如Nurbs曲面等)、特征边信息(特征边数量,每个曲面的特征边都是哪些,特征边即构成曲面边界的曲线)、特征边的端点等,以及几何模型的原始包围盒信息。
[0062] 也可以通过几何引擎计算几何模型的原始包围盒信息。
[0063] 具体的,背景网格生成模块采用以下方式计算几何模型的初始划分包围盒:
[0064] 获取几何模型的原始包围盒,根据公式 计算原始包围盒的中心点pc;其中, 表示原始包围盒的最小坐标点, 表示原始包围盒的最大坐标点。
[0065] 原始包围盒通常为一个长方体,一般由长方体中顶点中的最小坐标点和最大坐标点表示,即,原始包围盒可以表示为 ,首先根据公式 计算原始包围盒的中心点pc。
[0066] 为了更方便的进行后续网格划分,初始划分包围盒可以比原始包围盒稍大。
[0067] 具体的,根据公式 和计算新的最小坐标点pmin和最大坐标点pmax,新的最小坐标点pmin和最大坐标点pmax所表示的长方体为所述几何模型的初始划分包围盒,a表示扩张因子。例如,扩张因子a可取1.2。
[0068] 实施时,为了使划分网格单元形状更好,也可根据如下公式计算新的最小坐标点pmin和最大坐标点pmax:
[0069]
[0070]
[0071] 其中,Lg表示原始包围盒的最长边的长度, 。由最小坐标点pmin和最大坐标点pmax表示的立方体为初始划分包围盒。
[0072] 实施时,得到初始划分包围盒后,可以通过对初始划分包围盒进行等分的方式生成背景网格单元集合,如图2所示。背景网格生成模块采用以下方式对所述初始划分包围盒进行等间距空间划分,得到几何模型的背景网格单元集合:
[0073] 根据公式 计算每个方向上的划分数量nL,其中, 为上限取整符号,s表示预设的背景网格尺寸,L表示初始包围盒的边长;
[0074] 按照 的尺度等间隔划分初始划分包围盒,将初始划分包围盒划分为个六面体单元,得到几何模型的背景网格单元集合。
[0075] 实施时,预设的背景网格尺寸可以为用户输入或其他方式传入的参数,初始包围盒的边长即初始包围盒的棱长。
[0076] 通过等分方式可方便简单地将初始包围盒进行划分,生成背景网格单元集合。
[0077] 得到背景网格单元集合后,根据背景网格单元集合中网格体单元与几何模型的相交关系对背景网格单元集合中的网格体单元进行分割。具体的,背景网格分割模块包括顶点迁移模块、第一分割模块、第二分割模块和第三分割模块,具体的:
[0078] 顶点迁移模块,用于若背景网格单元集合中的顶点与最近的几何模型表面的距离小于第一阈值,则将该顶点移动至最近的几何模型表面。
[0079] 首先,遍历背景网格单元集合中的所有顶点,计算顶点到几何模型每个表面的距离,取距离最小的表面为最近的几何模型表面,若顶点与最近的几何模型表面的距离小于第一阈值,则将该顶点移动到最近的几何模型表面上。
[0080] 实施时,第一阈值可根据分割精度要求设置。
[0081] 实施时,顶点移动到最近的几何模型表面上,即将该顶点的坐标修改为最近的几何模型表面上与该顶点最近的点的坐标。
[0082] 第一分割模块,用于对于背景网格单元集合中的每个网格体单元,若该网格体单元的边与几何模型的表面相交,则根据交点对该网格体单元进行分割;得到第一网格单元集合。
[0083] 对于背景网格单元集合中的每个网格体单元(六面体单元),判断当前网格体单元的边与几何模型的表面是否相交,若是,则计算交点。具体的判断线段与曲面是否相交、计算线段与相交曲面的交点均为现有技术,此处不再赘述。
[0084] 根据交点对该网格体单元进行分割。具体的,根据交点采用以下方式对该网格体单元进行分割:
[0085] S221、从交点中任选一个交点作为当前交点;
[0086] S222、以当前交点所在的网格体单元为当前网格体单元,将当前网格体单元中每个非交点所在面的顶点和当前交点连接组构成当前网格体单元的一个子网格体单元,将当前网格体单元划分为多个子网格体单元;
[0087] S223、若存在未遍历的交点,以下一个交点为当前交点,返回步骤S222;否则,分割结束。
[0088] 实施时,如图3所示,首先从交点中任选一个交点作为当前交点,根据当前交点对网格体单元(六面体)进行分割,由非当前交点所在表面的顶点与当前交点连接构成当前网格体单元的子网格体单元,对当前网格体单元(六面体)进行分割,将该网格体单元(六面体)分割为4个金字塔(五面体),即4个金字塔网格体单元。
[0089] 若还有一个交点,则以下一个交点为当前交点,再根据当前交点对网格体单元进行分割,由于前一个交点已将六面体网格分割成了4个金字塔网格,则当前交点在分割后得到的金字塔的边上,如图4所示,将当前交点所在的金字塔网格体单元作为当前网格体单元,由非当前交点所在表面的顶点与当前交点b连接构成当前网格体单元的子网格体单元对该金字塔进行分割,将金字塔分为两个四面体和一个金字塔。
[0090] 以此类推。
[0091] 若当前网格体单元为四面体,如图5所示,则可将该四面体分割为两个四面体。
[0092] 对一个边与几何模型的表面有交点的六面体网格体单元按照上述方式分割后,再对下一个边与几何模型的表面有交点的六面体网格体单元进行分割。以此类推,直至对所有边与几何模型的表面有交点的六面体网格都分割完毕,得到第一网格单元集合。第一网格单元集合中包括六面体和金字塔,也可能存在四面体。
[0093] 第二分割模块,用于对于几何模型的每条曲线的每个端点,若该端点位于第一网格单元集合中的一个网格体单元内,则根据该端点对该网格体单元进行分割;得到第二网格单元集合。
[0094] 具体的,第二分割单元采用以下方式根据端点对该网格体单元进行分割:
[0095] 将该网格体单元的每个面的顶点与该端点连接构成该网格体单元的一个子网格体单元,从而将该网格体单元划分为多个子网格体单元。
[0096] 如图6所示,几何模型的曲线的端点落在一个六面体网格体单元内,则由网格体单元每个表面的顶点与端点构成当前六面体网格体单元的一个子网格体单元,将六面体分割为6个金字塔。
[0097] 若端点落在金字塔网格体单元中或四面体网格体单元中,同样的,由网格体单元每个表面的顶点与端点连接构成当前网格体单元的一个子网格体单元,对金字塔网格体单元或四面体网格体单元进行分割。
[0098] 对几何模型的每条曲线的所有端点一一进行判断,根据每一个落在网格体单元中的端点对网格体单元进行分割后,得到第二网格单元集合。
[0099] 第二网格单元集合中包括六面体和金字塔,也可能存在四面体。
[0100] 第三分割模块,用于对于几何模型的每条曲线,在第二网格单元集合中查找与该曲线相交且交点位于网格体表面的网格体单元,则根据交点对该网格体单元进行分割;得到第三网格单元集合。
[0101] 需要说明的是,第二网格单元集合中的网格体单元,其表面为三角形或者四边形。计算曲线与三角形或四边形是否相交,计算曲线与三角形或四边形的交点可参考现有技术,本发明不在此处赘述。
[0102] 如图7所示,几何模型的曲线与金字塔网格体单元相交且交点位于金字塔的面上,由非交点所在表面的顶点与交点连接构成当前网格体单元的子网格体单元,对金字塔进行分割,分割为1个金字塔和两个四面体。
[0103] 如图8所示,几何模型的曲线与六面体网格体单元相交且交点位于六面体的面上,由非交点所在表面的顶点与交点连接构成六面体网格体单元的子网格体单元,对六面体进行分割,分割为5个金字塔。
[0104] 对几何模型的每条曲线一一进行判断,若曲线与网格体单元相交且交点位于网格体表面上则进行分割,最后得到第三网格单元集合。
[0105] 得到第三网格单元集合后,网格分割结束。第三网格单元集合中包括六面体和金字塔,也可能存在四面体。
[0106] 得到第三网格单元集合后,在第三网格单元集合中查找边界面单元和间隙面单元。
[0107] 若网格体单元的某个面位于几何模型表面,则该网格面为边界面单元,具体的,边界面查找模块可采用以下方式查找第三网格单元集合中的边界面单元:
[0108] 对于第三网格单元集合中的每个网格体单元,依次判断该网格体单元的每个网格面的顶点是否均位于几何模型的表面,若是,则该网格面为边界面单元。
[0109] 网格体单元的每个面即为网格面。
[0110] 由于“脏”几何模型经常存在缝隙、几何洞等拓扑错误,在包面网格生成时需要标记这些几何间隙特征内的网格单元。如图9所示,几何间隙是通过一定路径从一个几何包围空间能进入另一个空间的通道、缝隙或者空洞。
[0111] 位于“脏”几何模型的几何间隙内部的网格面为间隙面单元,具体的,间隙填补模块可采用以下方式查找第三网格单元集合中的间隙面单元:
[0112] 对于第三网格单元集合中的每个网格体单元,依次判断该网格体单元的每个网格面是否在几何间隙内部,若某个网格面在几何间隙内部,则该网格面为间隙面单元。
[0113] 实施时,采用以下方式判断网格面是否在几何间隙内部:
[0114] 计算网格面的中心点到几何模型每个表面的距离,以距离最小的表面为最接近表面,中心点到最接近表面的距离为第一距离,若第一距离小于第二阈值,则:
[0115] 从最接近表面上与所述中心点最近的点到所述中心点方向的射线若与几何模型表面相交,则计算所述中心点到最近交点的距离作为第二距离,若第一距离与第二距离的和小于第二阈值,则所述网格面在几何间隙内部。
[0116] 即,判断网格面中心点到其两侧的几何模型表面的距离的和是否小于第二阈值,若是,则认为该网格面位于几何间隙内部,将其标记为间隙面网格。
[0117] 实施时,第二阈值可根据几何间隙的判断精度确定。
[0118] 标记完所有边界面单元和间隙面单元后,即可确定边界面单元和间隙单元包围的封闭体。
[0119] 所有边界面单元和间隙单元包围可能会包围出多个封闭体,实施时,可根据用户设置的种子点,查找用户感兴趣的封闭体,即种子点所在的封闭体。
[0120] 具体的,包面网格生成模块采用以下方式搜索得到预设种子点所在封闭体的包面网格:
[0121] S41、以预设种子点所在的网格体单元为当前体单元;
[0122] 实施时,预设的种子点应位于几何模型的初始划分包围盒空间内。根据种子点的坐标,第三网格几何中每个网格体单元的顶点坐标判断种子点是都位于该网格体单元内,从而找到预设种子点所在的网格体单元,将其作为当前体单元。
[0123] S42、对于当前体单元,若不存在未经搜索的网格面,则停止对当前体单元的搜索;否则,遍历当前体单元未经搜索的每个网格面,标记当前网格面为已搜索网格面,若当前网格面为边界面单元或间隙面单元,则将当前网格面加入包面网格单元集合;否则,将与当前体单元通过当前网格面邻接的体单元加入当前体单元的待搜索网格单元集合;将当前体单元的待搜索网格单元集合中的每个体单元作为当前体单元,返回步骤S42;
[0124] 初始时,包面网格单元集合为空。
[0125] 以种子点所在的网格体单元为最初的当前体单元,对体单元的每个网格面进行遍历,每搜索一个网格面将其标记为已搜索面,若当前网格面为边界面单元或者间隙面单元,则将当前网格面加入包面网格单元集合,并且不再向当前网格面的相邻体单元那个方向搜索,否则,将与当前体单元通过当前网格面邻接的体单元加入当前体单元的待搜索网格单元集合;向当前体单元的待搜索网格单元集合中的每个体单元方向进行搜索,即,当前体单元的待搜索网格单元集合中的每个体单元为当前体单元,继续搜索。
[0126] 例如当前体单元为六面体,其中1个面为边界面单元,其余5个面不是边界面单元也不是间隙面单元,将通过这5个面与当前体单元邻接的每个体单元加入当前体单元的待搜索网格单元集合,将前体单元的待搜索网格单元集合中的每个体单元作为当前体单元,继续搜索,即通过当前体单元向5个方向扩散。如果当前体单元的所有面都已搜索过,则不再对当前体单元进行搜索。
[0127] S43、包面网格单元集合中的网格面构成预设种子点所在封闭体的包面网格。
[0128] 搜索结束后,包面网格单元集合中的网格面连接形成的表面网格即为预设的种子点所在封闭体的包面网格。如图10所示。
[0129] 如果想要查找其他封闭体的包面网格,可以在感兴趣的区域继续设置种子点,采用上述S41 S43步骤,搜索感兴趣的区域的包面网格。~
[0130] 相比于常规的网格生成算法,本发明实施例公开的三维几何模型包面网格生成系统,不需要执行对“脏”几何模型执行繁琐的几何修复,即可直接生成包面网格,用于后续体网格剖分以及数值模拟计算。避免了繁琐的几何修复工作,提高了CAE仿真模拟分析的可实施性。
[0131] 本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0132] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。