本节将演示如何使用 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 网格调整

HyperWorks使用六面体和三棱柱单元进行实体网格剖分的更多相关文章

  1. ABP理论学习之工作单元(Unit of Work)

    返回总目录 本篇目录 公共连接和事务管理方法 ABP中的连接和事务管理 仓储类 应用服务 工作单元 工作单元详解 关闭工作单元 非事务的工作单元 工作单元方法调用其它 工作单元作用域 自动保存 IRe ...

  2. Module-Zero之组织单元(OU)管理【新增】

    返回<Module Zero学习目录> 概览介绍 OrganizationUnit实体 OrganizationUnit管理者 公共用例 设置 概览介绍 组织单元(Organization ...

  3. 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)

    返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...

  4. DDD中实体与值对象是干什么的

    实体值对象的含义 我们前面已经讲过领域的概念, 今天来讲讲实体, 实体是我们进行设计领域模型时的基础单元, 与之有关的是值对象, 接下来先梳理一下实体以及值对象的含义,然后讲讲他们俩的关系, 希望通过 ...

  5. Fluent动网格【12】:扩散光顺

    扩散光顺是Fluent提供的另外一种常用的网格光顺方法.其基本原理是通过求解扩散方程得到网格节点的运动位移. 扩散光顺基本计算 扩散光顺通过求解 以下扩散方程来设置网格的节点位置. \[ \nabla ...

  6. abaqus学习笔记-abaqus与umat调用基本原理

    参考: 1.http://ivt-abaqusdoc.ivt.ntnu.no:2080/v6.14/books/sub/default.htm 2.ABAQUS 用户材料子程序开发及应用-杨曼娟 3. ...

  7. Fluent经典问题答疑

    原文链接1 原文链接28 什么叫边界条件?有何物理意义?它与初始条件有什么关系? 边界条件与初始条件是控制方程有确定解的前提. 边界条件是在求解区域的边界上所求解的变量或其导数随时间和地点的变化规律. ...

  8. Delaunay Triangulation in OpenCascade

    Delaunay Triangulation in OpenCascade eryar@163.com 摘要:本文简要介绍了Delaunay三角剖分的基础理论,并使用OpenCascade的三角剖分算 ...

  9. iOS仿京东分类菜单实例实现

    在APP开发过程中此功能还是比较常见的模块,左边为菜单展示,右边为菜单下数据的展示,选择不同的菜单右边的数据源进行更新,此实例主要运用到UITableView,UICollectionView,OC谓 ...

  10. 【转】 UITableView 的indexPath

    原文:http://blog.csdn.net/mengtnt/article/details/6733691 前面说过了viewController的一些基本注意事项.这里针对不同的viewCont ...

随机推荐

  1. emlog 制作一个小插件(截取正文生成 xx 字摘要)的过程

    blockquote { background: rgba(255, 255, 0, 1); color: rgba(255, 0, 0, 1) !important } 如果熟悉其他 PHP 平台的 ...

  2. 深入理解泛型-重写泛型类方法遇到的问题(涉及JVM反编译字节码)

    下面的代码DateInterval类想重写父类Pair<LocalDate>中的setSecond方法,保证设置的第二个日期要在第一个日期之后,不能出现second早于first的情况.这 ...

  3. dotnet 命令启动报错

    Windows 7 或 Windows Server 2008 R2 上安装 .NET Core SDK 2.x 后 dotnet 命令启动报错 可以通过下载以下系统补丁解决 感谢下载 Windows ...

  4. ASP.NET Web.config Transformations

    ... 参考文档 Web Deployment Content Map for Visual Studio and ASP.NET 微软ASP.NET站点部署指南(3):使用Web.Config文件的 ...

  5. eolinker响应预处理:返回结果内循环读取同类数据,设置为变量

    特别注意:需要使用全局变量或者预处理前务必阅读本链接https://www.cnblogs.com/becks/p/13713278.html 场景描述: 删除(清空)购物车接口,需要传入获取的每一项 ...

  6. 智能简历解析器实战教程:基于Spacy+Flask构建自动化人才筛选系统

    一.项目背景与技术选型 在人力资源领域,每天需要处理数百份简历的HR团队面临巨大挑战:人工筛选效率低下.关键信息遗漏风险高.跨文档对比分析困难.本教程将构建一个端到端的智能简历解析系统,通过NLP技术 ...

  7. 获取img标签文件大小

    创建一个请求,然后查看返回的content-length img.src.length * 0.75 canvas转base64后

  8. CF1627B题解

    Not Sitting 题面翻译 Rahul 和 Tina 在玩一个游戏.游戏在一个 n×mn\times mn×m 的网格图上进行,记第 rrr 行第 ccc 列上的格子为 (r,c)(r,c)(r ...

  9. EFCore Study(3)——“一”对多关系的设定和插入、查找级联操作

    一.建立文章.评论类 /// <summary> /// 文章 /// </summary> public class Artitle { public int Id { ge ...

  10. .Net Core环境绑定及配置launchSettings.json

    1.Asp.net Core的默认环境配置在项目Properties-->launchSettings.json下 { "$schema": "http://jso ...