HyperMesh网格划分:几何清理、延伸面与Abaqus质量巡检
2026/9/18 20:05:25 网站建设 项目流程

简介:这份PDF面向有限元前处理初学者与有一定基础的CAE工程师,聚焦Hypermesh网格划分中的常见疑难与实操技巧,适合在建模、改网格、查质量时随查随用。全文以问答形式梳理了十余类问题,包括几何面上提取线并project到目标面、网格节点移动、不同comp网格的自由边与重节点合并、六面体8节点转20节点的order change、通过节点创建单元、灰线变红线的surface成因、QI质量导引的含义,以及对称网格copy与reflect后check edges节点equilance等;还涉及节点编号分离、bellcurve渐变网格、solidmap中vertices增减、3D单元节点位置手动调整等细节。资源共1个PDF文件,压缩包约16KB,体积轻便,可直接在线阅读或打印摘录。目前已有2089人浏览学习。读者可据此建立一套排查网格连续性、单元阶次与质量评价的思路,减少重复试错。

1. 从 CAD 到网格:HyperMesh 网格划分前必须做的三项判断

把 STEP 导进 HyperMesh,选中一张面,点 automesh,回车,屏幕上立刻冒出一片红黄相间的坏单元,接着就是一小时的手动微调。等我回头看模型,发现几何本身有三条自由边、一张重复面、两处被圆角断开的焊点。HyperMesh 网格划分真正的分水岭不在 automesh 面板里,而在动手之前:几何能不能被离散、离出来的单元能不能让求解器收敛,这两件事在清理那一刻就已经定了。

这篇内容面向做过一两轮仿真、但总被网格质量反复卡住的人,讲的是从几何导入到 Abaqus 求解这条链路上,哪些参数必须提前定、哪些操作可以脚本化、哪些地方肉眼看着没问题但检查器一定报错。要提前判的三件事是:几何拓扑是否闭合、结构的受力特征用壳还是实体表达、目标单元尺寸与最小特征尺寸的比值有没有跌破工艺下限。任何一项不成立,后面画的网格都是返工。

下面按几何清理、二维壳网格、三维实体网格、质量巡检与求解器对接的顺序展开,每个环节给出可抄的参数、命令和检查阈值。

2. 几何清理与 hypermesh 延伸面处理:网格划分的第一道关

导入几何之后先别画网格。HyperMesh 里打开 topology 显示,模型上会浮出四种颜色的边,这四种颜色基本决定了后面网格能不能做干净。跳过这一步直接 automesh,常见后果是边上节点对不上、壳单元之间传不了力、实体网格在 T 形连接处憋出尖角。几何清理的顺序是「看 — 改 — 缝」,看拓扑、改面和边、缝点。

2.1 用 topology 与 edge 面板识别自由边、T 形边和重复面

在模型树里打开边显示,HyperMesh 会按共享关系给每条边着色,含义和后续影响如下。

颜色含义对网格的影响处理动作
自由边两侧单元不连续,载荷传不过去equivalence 缝合,或补面
绿共享边正常连接无需处理
T 形连接节点被压到边上才连上,实体网格易出错toggle edge 删多余边后再缝
重复面单元重叠,接触面定义混乱delete 掉多余面

识别动作本身可以用一行命令刷新。

# 把所有几何面选进标记 1,然后按当前全局容差重建边显示 *createmark surfaces 1 "all" *findedges surfaces 1 0

*createmark负责圈选对象,*findedges按共享关系重算边,末尾的 0 表示沿用当前全局容差,不额外指定。全局容差在 Preferences 里改:钣金件一般 0.05 mm 到 0.1 mm,砂型铸件可以放到 0.5 mm。容差给太大,两条本该分开的边会被强行合上;给太小,本该合并的短边留着,网格上就会长出一批长宽比 20 以上的窄条单元,后面怎么平滑都救不回来。

重复面的识别要单独走一遍。同一位置叠了两张面,网格划出来就是两层单元贴在一起,求解器要么报重复单元,要么在接触定义里选出两套面互相打架。实际操作是在面选择器里逐个点开可疑区域,比较面的边界节点坐标,坐标完全重合的直接删。

2.2 hypermesh 延伸面(extend surface)与中面抽取的取舍

几何清理里最耗时间的是面与面之间的缺口。删掉小圆角、小凸台之后,原本相接的两张面之间会留出一段缝隙,直接划网格会在缝隙处断开,壳单元在这里就传不了弯矩。extend surface 面板的作用就是把一张面沿自身走向或切线方向往外长,长到和相邻面相交,再在交线处裁剪。

延伸方式有三种,选择依据差别不小:

  • along surface:沿曲面自身的走向延长,适合曲率平缓、走向明确的面,延伸后形状自然。
  • linear:沿末端边界的直线方向拉伸,适合平面和近似平面的区域,结果可预测。
  • point:延伸到指定点,一般用于把一个面拉到某个基准位置再统一裁剪。

真正要盯的是延伸距离和裁剪开关。距离给小了接不上,给大了会伸过相邻面、和无关实体交叉,凭空多出一圈新的干扰边,反而比不延伸更麻烦。我的习惯是先量出缝隙的实际宽度,延伸距离按这个宽度的 1.2 倍给,打开 trim to surface,让系统在交线处自动切掉多余部分。延伸完必须重新看一遍 topology,确认新增的边都是绿色共享边。

中面抽取是另一条路。当壁厚与整体尺寸之比小于 1:10 时,壳单元比实体单元更划算,抽中面能把单元数量压下来一到两个数量级。但抽完中面,原来面与面之间的连接关系全部丢失,必须用 extend surface 把相邻中面接起来再 equivalence 缝合。

提示:抽中面之前先把厚度方向上的圆角做对称处理,否则中面会整体偏移,抽出来的面根本没法用。

2.3 几何清理的容差设定与 equivalence 实操

容差不是随手填的数字,它和结构的最小特征尺寸挂钩。按下面的区间取,同时保证容差小于最小圆角半径的五分之一。

模型尺度建议 equivalence 容差说明
毫米级小件0.01–0.05 mm特征密集,容差必须小
常规钣金冲压件0.05–0.2 mm兼顾短边清理与边界保真
大尺寸铸件、焊接总成0.2–1.0 mm缝隙本身较宽,容差可放宽

缝合动作本身很短。

# 以 0.1 的容差把当前显示内容里的所有点按距离合并 *createmark points 1 "displayed" *equivalence points 1 0.1 0 0 0 0 0 0

*createmark points 1 "displayed"只圈显示出来的点,所以先隐藏不关心的组件,避免误缝。*equivalence后面的一串 0 是各项附加开关,默认不启用,只需要在前两位给出容差和是否同时重建边。缝完之后再跑一次*findedges,红色边的数量应该明显下降;如果没降,多半是容差小于实际缝隙宽度,或者缝隙里夹着必须保留的圆角。

3. 二维壳网格划分:automesh 参数与质量闭环

壳网格是 HyperMesh 用得最多的一环,也是最容易「划完就走」的一环。automesh 面板上真正影响结果的只有四五个参数,剩下的都是质量闭环的活。

3.1 automesh 面板的单元尺寸、网格形态与算法选择

下面几个参数决定了单元分布,改之前最好想清楚每一处受力位置。

参数常见取值怎么定
element size1–10 mm取最小特征尺寸的 1/3 到 1/5;应力集中区单独加密
mesh stylesize and bias / fixed points要控制边上节点数,用 fixed points
biasing0.1–1.0沿边渐变,相邻单元尺寸比不要超过 2:1
algorithm1 / 2 / 31 偏四边形规整,2 兼顾四边形与过渡,3 允许更多三角形
后处理开关smoothing / quality optimize至少开 smoothing,quality optimize 视质量阈值决定

先看单元尺寸。取 4 mm 不意味着全模型都该 4 mm,圆角处、焊缝附近、接触面这些位置要单独加种子点。单元尺寸与最小特征尺寸的比值低于 1 的时候,网格会在细特征上「长不出来」,出现局部拥挤和畸形单元,这时候要么加密,要么先把特征简化掉。

再看算法。算法 1 尽量生成规则四边形,适合外形接近矩形的冲压件;算法 2 在有曲率和过渡的区域表现更稳;算法 3 允许更多三角形,只在完全没法规则划分的地方用。四边形单元在弯曲工况下比三角形准得多,三角形比例能压到 5% 以下就不要往上抬。

批量执行时用命令比点面板快。

# 对 shell_comp 组件下的面按 4 mm 划分,算法 2,开启平滑,四边形优先 *createmark surfaces 1 "by collector" "shell_comp" *automesh surfaces 1 2 4 0.0 0.0 1 1 0 1 0 0 0

第一个参数是标记编号,第二个是算法,第三个是单元尺寸,后面依次是偏置系数和各开关位。0.0的偏置表示沿边不做渐变;如果要做渐变,把偏置改成 0.3 到 0.5 之间,让靠近焊缝的一侧更密。这些开关位在不同版本上顺序略有出入,第一次用的时候对照本机*automesh的帮助确认一遍,之后就能固定下来。

3.2 网格质量检查与失败单元重划

划完立刻跑质量检查,不要等导出了再看。常用的几个指标的合理区间如下。

指标理想值可接受下限超标后果
aspect ratio< 3< 5单元刚度失真,弯曲偏刚
jacobian> 0.7> 0.5出现负体积、求解直接中断
skew< 40°< 60°剪切自锁,结果偏硬
warpage< 5°< 15°壳单元面外弯曲不准
min angle四边形 > 45°> 30°应力集中假象
max angle四边形 < 135°< 150°单元退化
taper< 0.4< 0.6四边形退化成三角形

检查用 quality index 面板设置阈值,点 highlight 之后超标单元会被单独标出来。脚本方式更省事。

# 对当前显示单元做一次质量检查,结果按 quality criteria 着色 *createmark elems 1 "displayed" *checkelements 1

*checkelements读取的是 Preferences 里那套 quality criteria,所以阈值要提前配好再跑。检查完的重划手法就四种:split 把一个坏单元劈成两个、combine 把两个合成一个、replace 用相邻的规整单元替换、smooth 挪节点位置。长宽比超标优先 smooth,雅可比接近 0 优先 split,尖角优先 replace。重划之后一定要再跑一遍检查,别凭眼睛判断。

注意:连续做三次 smooth 之后如果还有超标单元,说明这个区域的几何本身有问题,回去改几何比继续调单元划算。

3.3 用 tcl 批处理多个模型的网格划分

同一批零件几十个 hm 文件,逐个手点不现实。HyperMesh 支持在批处理模式下跑 tcl,把导入、划分、导出串起来。

# mesh_all.tcl:遍历当前目录下的 hm 文件,划分后另存 foreach f [glob -nocomplain *.hm] { *openfile "$f" 0 *createmark surfaces 1 "all" *automesh surfaces 1 2 4 0.0 0.0 1 1 0 1 0 0 0 *checkelements 1 *savefile "[file rootname $f]_meshed.hm" }

glob -nocomplain在没有匹配文件时不报错,避免脚本空跑中断。*openfile第二个参数 0 表示不弹额外对话框,适合无人值守。每个文件划分完立刻存成带后缀的新文件,原始几何保持不动,后面查问题还能回溯。命令行执行:

hmbatch -tcl mesh_all.tcl

批处理跑完最好抽查两三个模型的坏单元数量,确认质量一致性,因为批处理环境下的 quality criteria 和交互界面可能不是同一套配置。

4. 三维实体网格划分:四面体、六面体与过渡单元的选型落地

到了实体网格,选型带来的差别比参数调节大得多,先想清楚用什么单元,再谈怎么划。

4.1 四面体和六面体到底差在哪,什么时候必须上六面体

同样尺寸下,二阶四面体单元数量大约是一阶六面体的六倍,自由度更多,求解规模更大。但四面体对几何几乎没有要求,任何形状都能铺满。

维度二阶四面体 C3D10一阶六面体 C3D8
同尺寸单元数约 6 倍基准
前处理难度高,需要可映射拓扑
弯曲精度二阶尚可需减缩积分配合
剪切锁定一阶 C3D4 严重全积分 C3D8 明显
接触分析需用 C3D10M常规

选型逻辑是:几何复杂、以传热或低阶应力为主、时间紧,用二阶四面体;结构以弯曲为主、要算疲劳或大变形、模型能切成规则块,上六面体。铸件、焊接总成、橡胶件这类自由形状结构,硬上六面体会把前处理时间翻好几倍,收益不成比例。

提示:接触分析里别用未修正的 C3D10,接触面上的压力会异常,换成 C3D10M。

4.2 用 solid map 生成六面体的完整操作链

六面体生成的核心思路是「先切块,再画源面,最后映射」。切块这一步最费功夫,也最影响成败。

操作顺序:

  1. 用 solid edit 的 trim with plane 和 trim with surface,把实体切成若干个可以用一条路径扫出来的块。
  2. 在每个块的源面上先用 automesh 划好二维网格,源面网格质量直接决定体网格质量。
  3. 打开 solid map 面板,选 one volume 或 line drag,指定源面、目标面和路径。
  4. 给出沿路径的层数,层数与路径长度的比值尽量接近源面单元尺寸。
  5. 生成后立刻检查雅可比和翘曲,源面改一处,体网格要整块重生成。

脚本方式大致长这样。

# 对 solid_geom 的实体沿路径映射,源面网格密度 4 层 *createmark solids 1 "by collector" "solid_geom" *createmark surfaces 2 "by collector" "source_face" *createmark surfaces 3 "by collector" "target_face" *solidmap_onevolume 1 2 3 4 0 0 1

参数依次是实体标记、源面标记、目标面标记、沿路径层数,后面的 0 是偏置和附加开关。层数给少,单元在厚度方向拉长,长宽比直接超标;层数给多,单元数量白涨。经验值是按厚度方向上至少铺三层,关心弯曲的位置铺到四到五层。

4.3 四面体区域、金字塔过渡与混合网格的质量控制

当几何既有规则块又有自由形状区域,最省事的做法是分区处理:规则块生成六面体,剩下的区域用四面体填充,两者交界面上补一层金字塔单元。

金字塔生成用 solid map 面板的 hexa 过渡选项,或者直接用 tetra mesh 里的金字塔填充。要盯的是金字塔底面的四边形质量,因为金字塔的底面承接的是六面体的面,如果底面本身翘曲大,金字塔会直接变成负体积。做法是先检查交界面上的四边形雅可比,低于 0.5 的先用 2.3 节那套手法修掉,再生成金字塔。

混合网格导进求解器之后,交界面上容易出现应力不连续,这是单元阶次和形函数不同带来的,不是错误,但解读结果时要绕开交界面取样。

5. 网格质量巡检与 Abaqus 导出:HyperMesh 到求解器的对接清单

网格在 HyperMesh 里看着合规,导进 Abaqus 报错的情况很常见,差别主要出在两边的检查项和阈值不完全对齐。

5.1 HyperMesh quality index 与 Abaqus 检查项的对应关系

HyperMesh 指标Abaqus 对应提示建议阈值
jacobianzero or negative jacobian> 0.5
aspect ratioexcessively distorted< 5
min angledistorted element四面体 > 20°,四边形 > 30°
warpagewarped element< 15°
skewdistorted element< 60°
taperdistorted element< 0.6

HyperMesh 的 quality criteria 比 Abaqus 的检查更严,按上面的阈值收紧配置,一般能避免导出后被拦下来。反过来,把 HyperMesh 阈值放得比 Abaqus 松,就会出现「这边全绿、那边报错」的情况。

5.2 导出 inp 的单元类型选择与 datacheck 验证

导出面板里选 Abaqus 模板,Standard 和 Explicit 对应不同的单元类型默认值,别混用。壳单元一般 S4R,实体用 C3D8R 或 C3D10M,接触面用基于面的集合导出。导出的集合命名保持和 Abaqus 输入文件一致,避免后面靠手工映射。

abaqus job=model_check datacheck cpus=4 interactive

datacheck只做输入文件检查,不进入求解,几秒钟就能跑完,能在正式计算前把负体积、重复节点、集合引用错误全部挑出来。cpus=4对 datacheck 阶段没有实际加速意义,写上是保持和正式提交一致,省得改来改去。检查通过之后再把datacheck换成完整分析。

5.3 一个可复用的质量巡检 tcl 脚本

正式提交之前跑一遍巡检,把每个组件的单元数和超标数量打出来,比逐个点开面板看快得多。

# quality_report.tcl:逐组件统计单元总数与雅可比低于阈值的数量 proc qualityReport { jacMin } { foreach c [hm_getcollectornames elems] { *createmark elems 1 "by collector" $c set total [hm_marklength elems 1] *checkelements_jacobian 1 $jacMin set bad [hm_marklength elems 2] puts [format "%-20s total=%-8d bad=%-6d" $c $total $bad] } } qualityReport 0.6

hm_getcollectornames elems取出模型里所有单元组件的名字,逐个圈选。*checkelements_jacobian按给定下限筛出超标单元,结果落到下一个自由标记里,hm_marklength用来数数量。输出格式对齐是为了方便直接粘进表格比对。把这个脚本挂在批处理流程末尾,每次划完网格自动出一份报告,哪一批零件的哪个组件超标,一眼就能定位。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询