基于B-rep模型和笛卡尔网格切片的网格生成方法与流程

文档序号:32818606发布日期:2023-01-04 04:30阅读:179来源:国知局
基于B-rep模型和笛卡尔网格切片的网格生成方法与流程
基于b-rep模型和笛卡尔网格切片的网格生成方法
技术领域
1.本发明涉及cae仿真分析技术领域,特别涉及基于b-rep模型和笛卡尔网格切片的网格生成方法。


背景技术:

2.在cae(computer aided engineering,计算机辅助工程)仿真中,需要将连续几何离散成有限的单元进行仿真计算,而离散后的几何表达称为网格。在目前的网格生成流程中,传统的网格在几何表面上布点,然后连接生成三角面片网格,对于几何复杂的仿真案例,三角面片网格生成极为复杂,且生成时间较长。为了简化网格生成问题,笛卡尔cut-cell(切割单元)网格作为一种更简单的网格结构逐步在流体、电磁仿真中得到了研究应用与开发。cut-cell网格需要笛卡尔网格和物体几何模型同时构建,笛卡尔网格是由六面体网格单元组成且网格沿笛卡尔坐标轴连续排布的网格类型。物体几何模型通常包括b-rep (boundary representation,边界表示)模型和stl模型(以三角形集合来表示物体外轮廓形状的几何模型)。b-rep模型是一种3d几何模型表达方式,其通过nurb(non-uniform rational b-splines,非均匀有理b样条)曲面来表达几何边界,拥有极高的几何精度,stl模型是物体表面的三角面片离散化后的几何模型。
3.起初,学术界中cut-cell网格生成方法更多是近似求解物体表面轮廓,在2010年,有学者将cut-cell网格生成问题转换成一个marching cube(等值面提取)算法问题,即仅判断每个笛卡尔网格节点在物体内部或者外部,分别给予-1和1的赋值,然后截取等值面为0的表面近似为物体表面,这个方法虽然直接避开了几何求交过程,但是采用等值面去近似拟合复杂的几何面,会丢失大量的几何信息,并且完全无法应用于复杂几何模型,仅能在学术界针对简单模型使用。部分学者同样没有直接求出cut-cell网格的几何边界,而是求出物体几何与笛卡尔网格相交部分的体积占比,转而去适配改进下游的仿真求解器。显然,上述两种方法主要针对没有几何求交能力的学者使用,由于完全丢失了几何边界信息,无法在工业界得到使用。
4.随后,研究者逐渐开发出精确求解物体原始边界的算法,研究者提出将代表物体的stl三角面片模型和代表笛卡尔网格每个正四边形进行大量的布尔运算,然后将每组布尔运算结果相互组合,形成cut-cell网格,虽然这种计算方法比较准确,但也存在几个主要缺点:(1)计算时间较长;计算时长与代表物体几何的三角面片个数和笛卡尔网格数目的乘积,一旦模型过于复杂,则会导致计算时长过长,无法被工业界所接受。
5.(2)同一条相交边会被四次布尔运算分别算出,即分别由四个相共边的笛卡尔四边形与同一个三角形求交生成,由于计算机存在浮点数误差,会导致两次求解结果会有细微差距,从而导致最终生成的cut-cell网格无法构建密封的拓扑连接关系,对于部分下游仿真求解器无法使用。
6.(3)stl模型是一种简略版本的三角面片网格,复杂几何stl模型生成过程本身比
较困难。
7.因此,如何提供一种计算简单、误差小的网格生成方法,是本领域技术人员亟待解决的问题。


技术实现要素:

8.本技术实施例提供了基于b-rep几何模型和笛卡尔切片技术的网格生成方法,旨在解决现有技术生成网格的计算时间长、精度差的问题。
9.本技术提供了基于b-rep几何模型和笛卡尔切片技术的网格生成方法,包括:获取用户输入的目标几何和笛卡尔网格;根据目标几何得到目标几何的nurb曲面;计算笛卡尔网格的网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何上的切边,得到切边数据;通过半边数据结构和多边形布尔运算将切边数据构建成cut-cell网格。
10.一种实施方式中,目标几何的模型为b-rep模型,获取用户输入的目标几何和笛卡尔网格之后,包括:获取计算过程中的容差,容差为人工设置参数。
11.一种实施方式中,根据目标几何得到目标几何的nurb曲面,包括:根据目标几何,获取目标几何在b-rep模型中的nurb曲面。
12.一种实施方式中,计算笛卡尔网格射线与目标几何的nurb曲面的交点之前,包括:构建用于存储计算节点的节点容器。
13.一种实施方式中,计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何上的切边,包括:计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何内部的切边和外部的切边。
14.一种实施方式中,计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何内部的切边,包括:计算x,y,z任意方向的笛卡尔网格射线与目标几何的相交区间;沿着坐标轴的方向通过笛卡尔网格点的网格节点打断,得到碎片化的线段,即为笛卡尔网格在目标几何内部的切边。
15.一种实施方式中,计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何外部的切边,包括:沿x,y,z任意方向,将笛卡尔网格任意方向的网格平面作为三维切面,与目标几何的所有nurb曲面求交,求交生成多个首尾相连nurb曲线;将生成的nurb曲线根据交点和方向进行首尾相连,构成三维切面与目标几何的相交轮廓;逐一将相交轮廓与所有网格射线进行求交,生成的交点作为相交轮廓的断点,根据交点在相交轮廓的相对参数用直线逐一相连,得到笛卡尔网格在目标几何外部的所有切边。
16.一种实施方式中,计算笛卡尔网格射线与目标几何的nurb曲面的交点,还包括:
将生成的交点逐一插入到所述节点容器中进行整理和合并。
17.一种实施方式中,通过半边数据结构和多边形布尔运算将切边数据构建成cut-cell网格,包括:将所有目标几何内部的切边和外部的切边根据坐标关系分配到最近的笛卡尔网格面单元中,然后结合半边数据结构和多边形布尔运算算法组装切边数据,并生成最终的cut-cell网格。
18.一种实施方式中,生成最终的cut-cell网格之后,包括:cut-cell网格通过二进制文件传输至仿真求解器,仿真求解器进行仿真求解,并输出结果。
19.本技术提出的基于b-rep几何模型和笛卡尔切片技术的网格生成方法,其与现有技术相比,还可以带来如下显著进步:(1)算法充分利用笛卡尔网格特性,从而充分降低算法的时间复杂度,并提升算法计算稳定性;(2)因为射线与几何的求交运算的时间远小于多边形的布尔运算计算时长,因此计算时间更短;(3)所有切边数据仅有一次计算过程,规避了浮点数误差导致误差的可能;(4)利用节点容器来存储计算过程中的交点并自动合并,能够有效处理临界退化情况,有效消除几何容差、计算机浮点数误差带来的精度问题,因此得到cut-cell网格具有完整封闭的拓扑结构。
附图说明
20.为了更清楚的说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面的描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
21.图1为本技术实施例提供的基于b-rep模型和笛卡尔网格切片的网格生成方法流程图;图2为本技术实施例提供的背景笛卡尔网格示意图;图3为本技术实施例提供的目标几何及背景笛卡尔网格示意图;图4为本技术实施例提供的节点容器结构示意图;图5为本技术实施例提供的节点合并比较示意图;图6a为本技术实施例提供的内部切边过程中网格射线与物体相交示意图;图6b为本技术实施例提供的内部切边过程中网格射线与物体交点示意图;图6c为本技术实施例提供的内部切边过程中内部切边结果示意图;图7a为本技术实施例提供的初始外部切边示意图;图7b为本技术实施例提供的外部切边结果示意图;图8为本技术实施例提供的半边数据结构示意图;图9为本技术实施例提供的切面组装成封闭的循环结构环线示意图;图10为本技术实施例提供的最终cut-cell网格示意图。
具体实施方式
22.下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
23.参见图1实施例所示基于b-rep模型和笛卡尔网格切片的网格生成方法,该方法包括:s101、获取用户输入的目标几何和笛卡尔网格。
24.目标几何的模型为b-rep模型,b-rep模型所有曲面以nurb曲面函数表示,b-rep模型包含所有点、线、面、体之间的拓扑关系,以及物体是否封闭等额外信息。
25.笛卡尔网格为非标准笛卡尔网格,由三个维度上的网格非均匀排布的网格节点组合而成。
26.获取用户输入的目标几何和笛卡尔网格之后,包括:获取计算过程中的容差;容差是人工设置参数,决定b-rep模型计算过程必要的计算误差,通常根据几何模型来确定,从而可以减少计算过程中的误差,使得计算结果更精确。
27.s102、根据目标几何得到目标几何的nurb曲面。
28.利用b-rep模型,获取目标几何在b-rep模型中的nurb曲面,从而便于后续的目标几何的处理。
29.s103、计算笛卡尔网格的网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何上的切边,得到切边数据。
30.在一实施例中,计算笛卡尔网格的网格射线与目标几何的nurb曲面的交点之前,包括:构建用于存储计算节点的节点容器,节点容器存储所有计算过程中的点。
31.参见图2实施例所示的背景笛卡尔网格示意图和图3实施例所示的目标几何及背景笛卡尔网格示意图;在计算前构建用于存储计算节点node的节点容器nodecontainer,该节点容器可以存储所有计算过程中的点,并自动合并间距小于容差阈值的点。
32.其中,计算节点node的数据结构由坐标信息position、地址信息address和合并优先级mergelevel组成,坐标信息position表示该点的三维坐标数据r
ꢀ�
=(x,y,z),该数据通常在几何求交时获取;地址信息address为一个单元数目为3的double类型的数组,表示该节点位于背景笛卡尔网格的三维坐标地址,其中,address第i个坐标方向的整数数值表述该点位于i方向的网格平面区间;小数部分表示该点在上述区间的相对坐标值,假设已知笛卡尔网格的在第i个坐标方向的网格坐标数据mi,已知整数部分为i0,则小数部分的具体计算方式为:合并优先级mergelevel通过地址信息address中成员为整数的个数计算而来,当mergelevel=1时,该点位于笛卡尔网格平面内部;当mergelevel=2时,说明该点位于笛卡尔
网格轴线上;当mergelevel=3时,说明该点是笛卡尔网格的网格节点;当mergelevel=0时,说明该点位于笛卡尔网格内部。如此以来,地址信息address即可以通过整数部分说明节点与笛卡尔网格轴线的交互关系,也可以通过小数部分清晰的说明计算节点node的坐标位置。
33.节点容器nodecontainer是一个三维空间矩阵的存储结构,任何一个成功插入的节点都会存储在与其地址整数部分的坐标下地址空间下。然而,每当插入一个新的点之前,都会做一次容差判断,即遍历该点存储地址的所有相邻地址的节点,当满足公式:说明两个点在容差范围内,其中,tol是用户初始设定的计算容差。此时,两个点应该合并为一个点,并用合并优先级mergelevel大的点来取代小的点,即可保证计算过程中所有的点都在容差范围内,且笛卡尔网格上的点尽可能的多。
34.参见图4实施例所示的节点容器结构示意图和图5实施例所示的节点合并比较示意图;假设一个点a的地址信息为(1.1,3.8,2.3),那么该点插入节点容器时,首先会与节点容器中已存在的所有点进行比较,如果存在一个点b位于节点容器(1,3,2)中,与点a满足不等式(2),则说明a与b在容差范围内,两个点应该进行合并,如图5所示,圈内的亮点表示在容差范围内,可以进行合并。否则,点a会与地址(1,3,2)相邻26个地址一一比较,直到判断出容器内是否存在一点与点a在容差范围内。
35.通过上述节点的地址信息标记和节点容器的数据结构,可以保证快速高效合并容差范围的节点,同时保证笛卡尔网格上的点尽可能的多。
36.在一实施例中,构建用于存储计算节点的节点容器之前,还包括:对节点容器进行初始化。
37.节点容器nodecontainer的具体初始化步骤包括:(1)根据b-rep模型的几何信息,初步估算容纳物体表面的包围盒大小;(2)计算(1)中包围盒与笛卡尔网格的大小关系,从而确定节点容器的容器大小;(3)将(1)中包围盒内部的所有笛卡尔网格节点逐一插入节点容器,作为初始节点容器。
38.随后计算过程中生成的浮点数坐标都会以节点的形式插入到节点容器中。
39.通过对节点容器的初始化,可以存储后续计算过程中所有的点,并自动合并间距小于容差阈值的点,同时还能减少不必要的空间损失。
40.在一实施例中,计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何上的切边,包括:计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何内部的切边和外部的切边。
41.通过计算切边并利用切边重新组装环线,而不是直接通过布尔运算计算环线,可以有效防止逻辑上相同的几何数据计算多次而导致浮点数误差。
42.参见图6a-6c实施例所示的内部切边过程示意图;计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何
外部的切边,包括:计算x,y,z任意方向的笛卡尔网格射线与目标几何的相交区间,该过程称为scopeline,是直线与nurb曲面的求交点的过程;将scopeline沿着坐标轴的方向通过笛卡尔网格点的网格节点打断,得到碎片化的线段,即为笛卡尔网格在目标几何内部的切边。
43.每个nurb曲面通常由stl模型100到10000个三角面片来表示,若采用传统stl模型的算法需要包括对每个三角面片与网格射线进行求交,本技术在b-rep模型中获取目标几何的切边,可以简化计算过程,运算量也大大减少。
44.参见图7a-7b实施例所示的外部切边过程示意图;计算笛卡尔网格射线与目标几何的nurb曲面的交点,构建笛卡尔网格在目标几何外部的切边,包括:沿x,y,z任意方向,将笛卡尔网格任意方向的网格平面作为三维切面,如图7a所示,与目标几何的所有nurb曲面求交,求交生成多个首尾相连nurb曲线;将生成的nurb曲线根据交点和方向进行首尾相连,构成三维切面与目标几何的相交轮廓;逐一将相交轮廓与所有网格射线进行求交,生成的交点作为相交轮廓的断点,根据交点在相交轮廓的相对参数用直线逐一相连,如图7b所示,得到笛卡尔网格在目标几何外部的所有切边。
45.在获取相交轮廓时,不仅包含了切边几何数据,还包含了物体面片切边的拓扑连接关系,大大简化了后续组装切边的流程。
46.此外,上述计算过程生成的交点会逐一插入到节点容器中进行整理和合并,自动与容差范围内的点合并,从而有效避免计算机浮点数误差所带来的计算错误。
47.该过程充分利用笛卡尔网格特性,具体表现在:(1)不同笛卡尔网格射线的计算过程互相不干扰,可以通过多线程有效加速程序的执行;(2)由于笛卡尔网格射线与坐标轴平行,上述求交过程可以有效转换为一维几何求交问题,而不是三维空间的求交过程,大大加快了计算效率。
48.s104、通过半边数据结构和多边形布尔运算将切边数据构建成cut-cell网格。
49.将所有目标几何内部的切边和外部的切边根据坐标关系分配到最近的笛卡尔网格面单元中,然后结合半边数据结构和多边形布尔运算算法组装切边数据,并生成最终的cut-cell网格。
50.参见图8实施例所示的半边数据结构示意图和图9实施例所示的切面组装成封闭的循环结构环线示意图;通过半边数据结构和多边形布尔运算将切边数据构建成cut-cell网格的具体步骤包括:(1)将所有内部切边和外部切边根据坐标关系分配到最近的笛卡尔网格面单元中,其中,每一条内部切边由四个相邻笛卡尔网格面单元共同持有,因此可以分配到这些笛卡尔网格面单元中,当外部切边不与笛卡尔网格轴重合,则该外部切边只由一个笛卡尔网格面单元持有,若外部切边与笛卡尔网格轴重合,则外部切边与内部切边相同,由相邻的四
个笛卡尔网格面单元所持有,此时,在每个笛卡尔网格面单元内,都被分配了一定数量的切边,称为切割边线;(2)切割边线两两进行求交,如果存在交点,则切割边线从交点处分解成两段子切割边线,最终的拓扑图中,切割边线仅在端点出相连;(3)根据所有切割边线构建半边数据结构,通过循环遍历提取每条切割边线所在的最小环线;(4)对笛卡尔网格体单元上六个面的所有环线进行组装,即为该单元上的cut-cell单元,进一步的,cut-cell对于切面的顺序没有要求,只需要囊括所有的切面上的环线即可。
51.(5)将所有笛卡尔网格计算得到的cut-cell网格单元,得到最终的cut-cell网格,最终得到的cut-cell网格如图10所示。
52.本实施例具有如下优点:不同笛卡尔网格面上环线计算互相不干扰,因此可以采用多处理器多线程技术加速程序执行;切边分配到笛卡尔网格面单元后,节点容器中的节点坐标可以转换成二维空间下的相对坐标,且相对坐标数据刚好与节点容器中计算节点的相对地址的小数部分相同,减少了中间计算过程;由于切边通过分配到不同的笛卡尔网格面单元上,所以相邻环线所共有切边数据不存在浮点数误差导致的数据不一致问题。不同的笛卡尔网格面单元的环线也是稳定封闭的。
53.在一实施例中,生成最终的cut-cell网格之后,包括:cut-cell网格通过二进制文件传输至仿真求解器,仿真求解器进行仿真求解,并输出结果。
54.本技术的算法充分利用笛卡尔网格特性,从而充分降低算法的时间复杂度,并提升算法计算稳定性;射线与几何的求交运算的时间远小于多边形的布尔运算的求交时长,因此综合而言时间更短;所有切边数据仅有一次计算过程,规避了浮点数误差导致误差的可能;利用节点容器来存储计算过程中的交点并自动合并,能够有效处理临界退化情况,有效消除几何容差、计算机浮点数误差带来的精度问题,因此得到cut-cell网格具有完整封闭的拓扑结构。
55.以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1