本节将演示如何使用 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. Docker 1.12 :认识 Swarm 模式下的节点崩溃处理

    Posted on 2016年7月25日 上周小编为大家推荐了<Docker 1.12:用 Swarm 模式创建 Swarm 集群>,本周我们将深入为大家解读 1.12 版本 Docker ...

  2. 从零开始:基于 PyTorch 的图像分类模型

    摘要:本文详细记录了使用 PyTorch 从零搭建一个图像分类模型的过程,涵盖卷积神经网络(CNN).数据预处理.模型设计.训练调试与优化.通过对 CIFAR-10 数据集的处理实践,结合经典文献和 ...

  3. CoreOS 手动升级篇

    说到升级...通常肯定会以下2个步骤: 检查是否有新版本. 下载和安装新版本. 在 CoreOS 中也一样,我们先来看下在 CoreOS 中对应的命令: # 检查是否有新版本 update_engin ...

  4. 征婚 SQL

    [男]程序员是这么征婚滴 SELECT * FROM 女人们  WHERE 未婚=true  AND Gay=false AND 处女=true AND 有魅力 =true AND 条件 IN (漂亮 ...

  5. 《机器人SLAM导航核心技术与实战》第1季:第0章_SLAM发展综述

    <机器人SLAM导航核心技术与实战>第1季:第0章_SLAM发展综述 视频讲解 [第1季]0.第0章_SLAM发展综述-视频讲解 [第1季]0.1.第0章_SLAM发展综述-梳理定位导航技 ...

  6. MySQL 中 AUTO_INCREMENT 列达到最大值时会发生什么?

    在MySQL中,AUTO_INCREMENT列用于自动生成唯一的数字值,通常用于主键.当AUTO_INCREMENT列达到最大值时,会发生以下几种情况,具体取决于列的数据类型以及MySQL的配置. 对 ...

  7. app自动化的三大等待

    app自动化的三大等待与web自动化的三大等待的代码脚本一样 一.硬性等待 硬性等待无论元素是否出现,都必须等待设置的时间再继续执行后面的代码. 使用简单,但是容易浪费时间.所以一般和隐式等待或显式等 ...

  8. Swiper.js滑动插件使用教程

    几乎每个前端开发都应该用过这个滑动组件库吧?这就是大名鼎鼎的swiper.js 一.Swiper及其功能 Swiper.js 是一个流行的开源的移动端触摸滑动库,用于创建响应式.可触摸滑动的轮播图.滑 ...

  9. 编译原理:python编译器--运行时机制

    python的运行时机制的核心 -- python对象机制的设计 理解字节码的执行过程 用 GDB 跟踪执行一个简单的示例程序,它只有一行:"a=1". 对应的字节码如下.其中,前 ...

  10. MongoDB索引优化的艺术:从基础原理到性能调优

    title: MongoDB索引优化的艺术:从基础原理到性能调优实战 date: 2025/05/21 18:08:22 updated: 2025/05/21 18:08:22 author: cm ...