三维模型的边界面网格单元的处理方法和装置的制造方法

文档序号:8260303阅读:431来源:国知局
三维模型的边界面网格单元的处理方法和装置的制造方法
【技术领域】
[0001] 本发明涉及数据处理领域,具体而言,涉及一种三维模型的边界面网格单元的处 理方法和装置。
【背景技术】
[0002] ACIS是目前广泛使用的几何驱动引擎和图形系统开发平台,现有很多大型商业软 件,如AutoCAD、Solidwork、Rhio等均采用了ACIS作为图形开发的内核。由于现在CAD/CAE 集成一体化技术不断发展,在同一平台内部进行几何建模和仿真分析成为越来越多人研宄 的方向。ACIS本身具有三维网格单元划分功能,适用于边界元法、无网格法等分析计算的数 据源。但对于造型复杂,曲面特征较多的模块,ACIS的划分方法容易产生较多的尖锐单元、 密集边分布等质量较差情况,较大程度上会影响数值分析计算结果精度。
[0003] 近年来,随着计算机技术的飞速发展,CAD/CAE功能得到不断完善,但二者之间的 融合技术依然未有重大突破。一直以来,很多学者致力于研宄CAD/CAE-体化建模,在CAE 中集成部分CAD建模功能。但由于数值分析的前处理及计算效率问题,这种集成并没有真 正实现建模和分析的同步。传统的有限元法分析中,前处理占据整个有限元处理时间的 40%?45%,其中,网格剖分消耗了大部分时间。同时,准确数值计算通常通过牺牲计算时 间来获得好的结果,而高质量的网格单元能起到较大的帮助作用。因此,提高网格剖分效率 及质量以及加速数值计算是解决CAD和CAE融合难题的关键。
[0004] 针对不同的环境和要求,近年来出现了多种网格剖分算法。主流的算法包含有映 射法、拓扑分解法、波前法,栅格法等。但没有任何算法只通过一次剖分就可以能得到高质 量的网格单元。
[0005] 目前,优化网格质量的方法分为两种类型:1) 一类是通过插入、删除节点或局部 节点重置改变网格的拓扑结构;2)另一类是在不改变拓扑信息前提下,通过计算所有节点 最优位置,纠正形状不规整单元,使之达到理想的形状提升网格质量。实际应用中,使用较 多的是第一种类型算法。此类方法大都针对于局部规划、尺寸调整、单元面积优化等要求。 虽然此类优化算法但在处理大规模的数据时,能节约大量的计算时间,但算法本身可靠性 较差,优化结果波动较大。最早出现且使用最广泛的此类算法是Laplace算法,主要是将节 点调整到与之邻接的所有节点中间位置。后来出现了评价函数最优法等算法。上述方法执 行需要消耗大量时间,效率较低。
[0006] 针对现有技术中得到高质量的三维模型中网格的方法耗时长、效率低的问题,目 前尚未提出有效的解决方案。

【发明内容】

[0007] 本发明的主要目的在于提供一种三维模型的边界面网格单元的处理方法和装置, 以解决得到高质量的三维模型中网格的方法耗时长、效率低的问题。
[0008] 为了实现上述目的,根据本发明实施例的一个方面,提供了一种三维模型的边界 面网格单元的处理方法。
[0009] 根据本发明的方法包括:查找边界网格单元数据中的密集边,并基于密集边确定 第一密集面;对第一密集面的网格数据进行密集边处理,得到第二密集面;判断第二密集 面上的为尖锐单元的第一单元是否具有与其邻接的为尖锐单元的第二单元,其中,尖锐单 元为至少有一个内角的角度小于预设角度值的三角形单元;若第二密集面上的为尖锐单元 的第一单元不具有与其邻接的为尖锐单元的第二单元,按照第一单元的类型对第一单元进 行位姿调整操作,得到第三密集面;若第二密集面上的为尖锐单元的第一单元具有与其邻 接的为尖锐单元的第二单元,对第一单元和第二单元的区域进行重构操作,得到第三密集 面。
[0010] 进一步地,查找边界网格单元数据中的密集边,并基于密集边确定第一密集面包 括:计算网格单元数据的面信息中每条边任意两个节点间的平均距离;按照从大到小的顺 序对平均距离进行排序,得到距离序列;依序计算距离序列中两两平均距离之间的比值,若 比值大于第一预设阈值,则检测出距离序列中两两平均距离中排序在后的边为密集边;若 面信息所指示的面为平面,且平面的非密集边长度与密集边长度之比小于第二预设阈值, 则确定平面为第一密集面。
[0011] 进一步地,对第一密集面的网格数据进行密集边处理,得到第二密集面包括:对第 一密集面的密集边进行稀疏处理得到处理后的第四密集面,其中,对第一密集面的密集边 进行稀疏处理包括:获取第一密集面的密集边的映射点数量0和第一密集面的密集边的节 点数量k;删除密集边中下标非为1 ?n-l+l的节点,得到第四密集面,1 = 0,1,2…,n=k/o; 获取第四密集面的密集边点集合《 = 1>1,y2,…,yp},依次从密集边点集合中取yi、 ui+1以及第一密集面的密集边的密集边的映射点集合供中的节点Gi(i= 1,2,3…),构 造第三单元,得到第二密集面,其中,i〈P。
[0012] 进一步地,对第一单元和第二单元的区域进行重构操作,得到第三密集面包括:获 取与第二单元邻接的第四单元;若第i四单元为尖锐单元,则将第四单元记录为第一单元, 直至第四单元不为尖锐单元;获取第一单元、第二单元和第四单元构成的图形的最外层节 点的节点数据;调用多边形网格剖析算法对节点数据所包围的多边形区域进行网格重构处 理,得到第三密集面。
[0013] 进一步地,按照第一单元的类型对第一单元进行位姿调整操作,得到第三密集面 包括:判断第一单元中内角角度小于预设角度值的内角个数;若内角个数为1,则判断出 第一单元为狭长三角形单元,判断狭长三角形单元的三个顶点是否均在第二密集面的边界 上,其中,三个顶点包括第一节点、第二节点和第三节点,其中,第一节点的角度小于预设角 度值。若狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点和第三节点 均具有四个邻接单元,比较第二节点和第三节点对应狭长三角形单元的第一角度和第二角 度;若第一角度大于第二角度,则获取四个邻接单元的五个节点,删除五个节点中的第三节 点,按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一 节点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个 节点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。若 狭长三角形单元的三个顶点未均在第二密集面的边界上,且第二节点或第三节点具有四个 邻接单元,获取四个邻接单元的五个节点,删除五个节点中具有四个邻接单元的第三节点, 按照逆序生成第五单元和第六单元,得到第三密集面,其中,第五单元的顶点包括第一节 点、第二节点和五个节点中的第四节点,第六单元的顶点包括第二节点、第四节点和五个节 点中的第五节点,五个节点包括第一节点、第二节点、第三节点、第四节点和第五节点。若 狭长三角形单元的三个顶点均在第二密集面的边界上,则获取第二节点与第三节点的共同 的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第五单元和第六单元,得到 第三密集面,其中,共面邻接单元的顶点包括:第二节点、第三节点和第四节点,第五单元为 共面邻接单元,第六单元的顶点包括:第一节点、第二节点和第四节点。若内角个数为2,则 判断出第一单元为扁平三角形单元,获取扁平三角形单元的第一节点、第二节点和第三节 点,其中,第一节点和第二节点的角度小于预设角度值。判断第一节点和第二节点是否均在 第二密集面的边界上;若第一节点和第二节点不同时在第二密集面的边界上,则获取第一 节点与第三节点的共同的共面邻接单元,获取共面邻接单元的第四节点,按照逆序生成第 五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点 和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四 节点。若第一节点和第二节点同时在第二密集面的边界上,则计算第三节点的共面邻接单 元的数量。若共面邻接单元的数量为1,则获取共面邻接单元的第四节点,按照逆序生成第 五单元和第六单元,得到第三密集面,其中,共面邻接单元的顶点包括:第一节点、第三节点 和第四节点,第五单元为共面邻接单元,第六单元的顶点包括:第二节点、第三节点和第四 节点。若共面邻接单元的数量为3,则获取三个共面邻接单元的四个节点,将三个共面邻接 单元的并集作为第五单元,得到第三密集面,其中,三个共面邻接单元的四个节点包括:第 一节点、第二节点、第三节点和第四节点,第五单元的顶点包括第一节点、第二节点和第四 节点。若共面邻接单元的数量为4,则获取四个共面邻接单元的四个节点,其中,四个节点 包括:四个共面邻接单元的并集组成的图形的四个顶点,四个顶点包括:第一节点、第二节 点、第四节点和第五节点。比较第四节点的第一角度与第五节点的第二角度;从第一角度与 第二角度之间大的角度对应的节点引出对角线,重新划分四个共面邻接单元的并集组成的 图形,得到第五单元和第六单元,得到第三密集面。
[0014]为了实现上述目的,根据本发明实施例的另一方面,提供了一种三维模型的边界 面网格单元的处理装置。
[0015] 根据本发明的装置包括:查找模块,用于查找边界网格单元数据中的密集边,并基 于密集边确定第一密集面;密集边处理模块,用于对第一密集面的网格数据进行密集边处 理,得到第二密集面;第一判断模块,用于判断第二密集面上的为尖锐单元的第一单元是否 具有与其邻接的为尖锐单元的第二单元,其中,尖锐单元为至少有一个内角的角度小于预 设角度值的三角形单元;位姿调整模块,用于若第二密集面上的为尖锐单元的第一单元不 具有与其邻接的为尖锐单元的第二单元,按照第一单元的类型对第一单元进行位姿调整操 作,得到第三密集面;重构处理模块,用于若第二密集面上的为尖锐单元的第一单元具有与 其邻接的为尖锐单元的第二单元,对第一单元和第二单元的区域进行重构操作,得到第三 密集面。
[0016] 进一步地,查找模块包括:第一计算模块,用于计算网格单元数据的面信息中每条 边任意两个节点间的平均距离;排序模块,用于按照从大到小的顺序对平均距离进行排序, 得到距离序列;第一检测模
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1