首页 > 其他分享 >HyperWorks使用六面体和三棱柱单元进行实体网格剖分

HyperWorks使用六面体和三棱柱单元进行实体网格剖分

时间:2024-11-12 11:18:47浏览次数:1  
标签:棱柱 子块 剖分 模型 实体 网格 六面体 切割

本节将演示如何使用 solid map 功能对一个复杂的几何实体进行网格剖分。剖分的思路是:首先对该实体进行适当的切割,以使其各个部分均处于 mappable 的状态;然后分别对各个子块进行 solid map 剖分。事实上,针对同一个几何实体,可能有多种分块方案。究竟哪种方案能获得更高质量的网格,是需要我们通过大量的练习,积累经验得到的。因此针对同一模型,建议用户尝试多种切分方案,并比较其结果的异同之处,从而更好的掌握 solid map 技术。

 

Step01:读入模型

(1) 读入模型 Exercise_4a.prt。

该模型为一 Pro/E 格式的三维数模。

 

Step02:模型简化

在模型中,一些无关紧要的较小圆倒角特征往往会给我们的网格剖分工作带来困难。多数情况下,这些圆倒角特征是在零件在制造过程中,受到加工工艺的限制添加的,在 FEA 分析中我们可以对此类特征进行适当简化。

(1) 使用 Defeature(模型简化)功能,去除所有的圆倒角特征。

 

 

图 4-12 使用模型简化功能去除几何特征

在这个模型中,将圆倒角曲率半径搜索容差控制在 0.5 到 5.5 或者更大,可以有效地帮助我们找到所有的圆倒角特征。需要注意的是,通过搜索功能找到了所有的圆倒角特征,将它们移除后将出现较为尖锐的几何特征。进而在后续的分析中,引起一定的应力集中。因此,在进行结果后处理和分析评价时,需要考虑由此引入的误差。

 

Step03:初次切分。

在进行实体切割时,并没有明确的流程可以告诉我们从哪里开始。因此,第一次切割也往往是最困难的一次切割。但是通常来讲,我们总是希望通过尽量少的切割次数,来达到令所有子块都处于 Mappable 的状态。那些仅仅切割一次就可以从原有实体上分离下来,并具备 Mappable 状态的子块,会成为我们的首选。在这个模型中,关注其底部的几何特征,可以发现,从那里开始是很自然的想法。

 

(1) 将模型显示切换到 mappable 方式。

图 4-13 设置模型视图模式

 

(2) 在 solid edit 面板中,选择 trim with plane/surf 子菜单。

(3) 如图所示,使用三点定义平面方式,对该几何体进行切割。

 

图 4-14 定义平面切割几何

 

(4) 切割结束之后,该子块将处于 Mappable 状态,如下图所示:

 

图 4-15 几何切割后的拓扑状态

 

(5) 在模型底部的对称位置,重复该操作。

 

Step04:进一步的切割

通过第一次的切割,我们已经将模型底部的两个子块切割了下来。在下一步的工作中,将集中精力处理模型中部的部分。如图所示,该部分仍然处于 non-mappable 状态。隐藏底部切割下来的子块,仅显示中间部分。

(1) Mask 底部两个子块。

 

  

图 4-16 隐藏部分几何

(2) 在 trim with plane/surf 子面板中,选择实体开槽的底面部分,以其为切割工具。

(3) 切割该实体。

(4) 重复该过程,选择呢模型另一侧开槽的地面部分为切割工具进行切割。切割完毕后的实体应该如下图所示。

(5) Mask 两个新切割完毕,且处于 Mappable shape 状态的子块。

 图 4-17 第 4 步切割后的几何拓扑状态

 

Step05:最终切割

完成了前两步的切割后,该模型中仍然有部分区域处于 non-mappable 的状态。此时,需要仔细模型,以确定是何类原因导致该模型的子块仍然无法直接进行实体网格剖分。通过 solid map 的基本原理我们知道,一个子块如果处于 mappable 状态,那么它必须有一个或若干个已经合并的源面,有且仅可以有一个目标面以及一个完整的扫略路径。观察模型可知,该子块仍然处于 non-mappable 状态的主要原因是无法确定扫略的目标面。因此,我们需要对其再进行两次切割,将 V 字型的延伸部分自该子块上切割下来,使每一子块

均仅具有一个扫略目标面,从而完成最终的实体网格剖分。 

图 4-18 模型在上述操作后仍处于 non-mappable 状态的部分

 

(1) 选择 trim with lines 子菜单。

(2) 在 with sweep lines 中,选择仍然处于 non-mappable 状态的几何体。

(3) 在 sweep lines 中,选择如上图所示,红色区域的外缘作为切割工具。

(4) 在切割方向定义中,设置 sweep to 为 by a vector >> z-axis, 选择 sweep all 选项,然后点击 trim 完成切割。

(5) 在模型另外一侧的对应位置,使用类似的方式,完成切割。

(6) 两次切割结束后,该模型应如下图所示,所有子块均处于 Mappable 状态。

(7) 点击 Save,保存模型。 

图 4-19 完成切割后的模型拓扑状态

 

Step06:实体网格剖分。

一旦获取了所有子块均处于 Mappable 状态的几何模型,后续的工作将变得十分简单。逐一选择各个子块,对其进行实体网格剖分,生成六面体/三棱柱混合网格。几何上的连续性,将被精确的映射到三维网格的连续性上。

(1) 在 solid map 面板下,选择 multi solids 子菜单。

(2) 按照图 4-20 设置网格剖分参数。

 

图 4-20 实体网格剖分设置

 

multi-solids 功能提供了针对多个几何子块一次性实体网格剖分的功能。选择各个子块并点击 mesh 后,HyperMesh 会显示出各个子块的剖分次序,以及每一个子块的扫略方向,并提供用户查看和编辑功能。 

图 4-21 初始网格预览

 

此外,该面板还提供了针对各个子块,进行扫略源面二维网格剖分,以二维网格作为引导,完成三维网格剖分的功能。与 automesh 面板下的二维网格控制功能类似,该面板也提供了对该源面的二维网格进行单元尺寸、单元数量等参数控制,以帮助用户生成更高质量的引导网格。

 

图 4-22 网格调整

标签:棱柱,子块,剖分,模型,实体,网格,六面体,切割
From: https://www.cnblogs.com/icae/p/18541497

相关文章

  • 长链剖分
    长链剖分长链剖分在维护有关深度的信息时具有显著优势。定义长链剖分中长儿子为子树内深度最大的儿子,不难使用类似重链剖分的方式求出长儿子:voiddfs1(intu,intf){fa[u]=f,len[u]=1;for(intv:G.e[u]){if(v==f)continue;......
  • HyperWorks的实体几何创建与六面体网格剖分
    创建和编辑实体几何在HyperMesh有限元前处理环境中,有许多操作是针对“实体几何”的,例如创建六面体网格。在创建实体网格的工作中,我们既可以使用闭合曲面创建实体网格,也可以使用完整的实体几何创建实体网格。与闭合曲面相比,使用实体几何作为操作对象更具优势:创建网格时仅需选择......
  • 树链剖分
    轻重链剖分性质重链重链内编号连续,可以用线段树维护一些值路径对于树上任意两点\(x,y\),它们的路径经过的重链不超过\(logn\)条树剖正是运用这种方式,把1个修改/询问变成\(logn\)个修改/询问,然后高效求解注意:树剖的作用是将树上问题拆成\(logn\)个序列问题,并不是所有树剖都一......
  • CF1249F Maximum Weight Subset 题解 / 长链剖分复习
    CF1249FMaximumWeightSubset题解题目大意给定一个\(n\)个节点的树,每个节点有点权\(a_i\)。从中选出若干节点,要求这些点两两之间距离大于给定常数\(k\),使得点权和最大。Solve给出一种线性做法。前置知识:长链剖分优化DP。考虑一个DP:设\(f(u,d)\)表示在\(u\)的子......
  • 树链剖分
    树链剖分重链剖分【问题引入】问题描述给定一颗有$n$个节点、带边权的树,现在有对树进行$m$个操作,操作有$2$类:将节点$a$到节点$b$路径上所有边权的值都改为$c$;询问节点$a$到节点$b$路径上的最大边权值。请你写一个程序依次完成这$m$个操作。有三个操作......
  • 长链剖分 入门
    长链剖分额,其实和树剖差不多,对于每个节点\(u\)维护\(mxd_u\)为子树内节点深度最大值。那么令\(Son(u)\)里取到\(mxd_v\)最大的儿子\(v\)为长儿子,类似重链剖分处理即可。同样令连接不同长链的两个点之间的边为虚边。有如下性质:从根到节点\(u\),所经过虚边个数不超......
  • 【算法】树链剖分
    1.算法简介树链剖分为将树分割成若干条链,维护树上信息的思想。通常将其分为链后能用数据结构维护。树链剖分分为重链剖分,长链剖分,实链剖分。通常重链剖分最常用,本文主要介绍重链剖分。重链剖分可将树划分为一个个长度不超过\(O(\logn)\)的链,并且保证每条链内的\(dfs\)序......
  • 树链剖分笔记
    题单传送门2024.10.12P3038GrassPlantingG:DevC++栈空间开小了;调了三天啊三天线段树区间修改写成区间单点修改了;树剖往上跳写成了dep[u]<dep[v]而不是dep[top[u]]<dep[top[v]]2024.10.15P3128MaxFlowP:奇怪的TLE树剖DFS没把子树大小加到根上,重链剖分写成了后......
  • 树链剖分|树上启发式合并
    树链剖分分为重链剖分和长链剖分以及其他奇怪的剖分。以重剖为主。重链剖分将树上问题重链剖分为序列问题(经常是DFS序)然后用数据结构(经常是线段树)维护。剖分部分定义:重儿子:对于一个点,其儿子中,子树最大的那个;重边:父亲到重儿子的连边;轻儿子:除了重儿子以外的儿子;轻边:父亲......
  • 树链剖分
    考一遍,学一遍,忘一遍这里是重链剖分。两个dfs,第一个找重儿子,第二个找重链顶和dfn(注意要优先对重儿子dfs来保证同一条重链上的dfs序连续)查询和维护时一个一个跳重链顶端,时间复杂度O(nlogn)。常和线段树配套使用。模板#include<bits/stdc++.h>#definelllonglong#defineli......