ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HyperMesh网格划分流程:几何清理、2D/3D网格与Abaqus导入

HyperMesh网格划分流程:几何清理、2D/3D网格与Abaqus导入 简介《hypermesh网格划分总结经验.pdf》是一份面向有限元前处理初学者与结构仿真工程师的实操型经验汇编聚焦 Hypermesh 网格划分中常见却容易卡壳的问题帮助读者从零散操作过渡到系统性理解。内容覆盖几何面线提取与投影、网格节点在指定线面间的移动、跨 comp 网格的自由边与重节点合并、六面体单元 8 节点转 20 节点的 order change 处理以及 QI 质量导引的概念与网格质量评价思路还整理了对称网格 copy 与 reflect、节点号码分离、bellcurve 与 bias intensity 实现网格密度渐变、solidmap 中添加 vertices 等技巧并以问答形式还原排错场景。资源包共 1 个文件为 pdf 文档大小约 16KB轻量便于随时查阅。目前已有 2089 人学习下载适合需要积累网格划分手感、快速定位常见报错与处理办法的仿真从业者参考。1. 从一份经验总结说起HyperMesh 网格划分真正卡住人的是哪几步常看到这样的场景CAD 模型导进 HyperMeshF12 一键 automesh屏幕上花花绿绿看着挺像回事导出 INP 提交计算求解器第一行就报负雅可比或者单元畸变过大。回头翻那份被同事传来传去的《hypermesh网格划分总结经验.pdf》会发现它讲的从来不是按钮在哪而是操作顺序——几何没清干净就别急着划 2D2D 的自由边和重复节点没收拾好就别生成 3D3D 没过质量检查就别往 Abaqus 里倒。顺序错一步后面所有返工都是成倍的。这套流程适合的人其实很集中刚接手前处理的结构工程师、从 Abaqus/CAE 或 ANSYS 转过来的人、以及被要求「网格再细一点」却不知道细到哪一步为止的仿真工程师。下面按几何清理、2D 网格、3D 实体网格、质量排查与导入 Abaqus 的顺序把每一步的参数、命令和验收标准摊开讲。2. 几何清理与中面处理网格划分前必须做完的 4 件事2.1 导入格式选择与第一轮拓扑检查从 SolidWorks 出来优先给 Parasolidx_t从 Creo 出来优先给 STEP这是踩坑次数最多的经验。STEP 通用性最好但曲面被切开的方式不受控圆角和过渡面容易碎成几十个小面IGES 更容易丢面。导入时把单位确认一遍HyperMesh 默认按导入文件的单位走mm 和 m 差三个数量级容差参数跟着一起错。进来第一件事不是划网格是看边。打开 Geometry 的 edges 面板或者用 F5 把几何 mask 到只剩面逐块看边的颜色归属通常红色代表只被一张面拥有的自由边绿色是两张面共享的压缩边其余颜色对应 T 型连接或未被压缩的边。把视角转到剖切面再扫一遍藏在实体内部的自由边只有切开才看得见。# geometry_clean.cmf —— 把这几步录成命令文件换模型时直接回放 *createmark surfs 1 all ;# 全选曲面后续操作统一作用在这个 mark 上 *findedges 1 30 ;# 按 30 度抽特征边圆角多的模型把角度调大 *createmark surfs 2 displayed *equivalence 0.02 1 0 0 ;# 容差 0.02mm 合并自由边端点命令文件的语法在版本之间有差异回放前先在 Command File 窗口里跑一遍确认参数位置尤其是最后那串容差和开关位。第一条*createmark只是建一个集合标记真正决定成败的是*findedges的角度阈值给小了会把本该平滑过渡的曲面切成碎边给大了又会漏掉真实的折角一般先从 30 度试圆角特征密集的钣金件用 45 到 60 度更省事。2.2 自由边、重复面与微小特征的处理顺序清理顺序有讲究颠倒过来会让容差互相打架。我一般的做法是先删重复面再合并自由边端点然后修补边走向最后才处理微小特征。理由很直接——重复面还在的时候equivalence 会把本该分属两张不同面的节点错误地拉在一起等你想拆都拆不开。容差取模型最小特征尺寸的 1%~5%常规机械件落在 0.01~0.1mm 区间。薄壁件、钣金件要收紧到 0.005~0.02mm因为壁厚本身就只有 1mm 左右容差放大到 0.1mm 会把不该缝合的窄缝直接糊掉。小于网格尺寸三分之一的圆角和倒角多数情况下直接 defeature 抹平留着只会逼着周围生成一堆畸形单元。缺陷类型检查入口处理手段容差经验值重复面edges 面板 duplicate 检查删除重复面保留一张无需容差自由边未闭合edges 面板红色边equivalence 合并端点0.01~0.1mmT 型连接edges 面板非红非绿边toggle edge / replace point与上同微小面 / 窄条面按面积排序浏览defeature 或合并到邻面面积 0.5mm²圆角、倒角按曲率识别删除后用直线代替半径 网格尺寸/32.3 中面抽取与 hypermesh 延伸面的实际用法薄壁件、注塑件先抽中面再划壳单元比直接上实体四面体省一个量级的自由度也能避开薄壁处四面体退化成扁平单元的老问题。中面面板里有三种取法按面偏移、按实体取中间面、按厚度带扫描厚薄不均的件用第三种最稳因为它会随壁厚变化自动调整位置。抽出来的中面十有八九短一截顶不到相邻面的相交位置这时候就用延伸面extend surface。步骤是先把几何容差调到与模型尺度匹配的量级选中需要延伸的边界沿指定方向延伸一段长度长度给到缺口尺寸的 1.2~1.3 倍确保它确定能穿过对方再用 trim 一次性裁掉多余部分。延伸方向选错是常见失误曲面有曲率的时候沿切向延伸会歪改成沿直线方向延伸再修形更可控。左右两侧的对称件做完一侧直接镜像别两边各抽一次否则中间接缝处的节点永远对不上。2.4 几何清理做完了没一份可对照的验收清单判断几何能不能进下一步看这几条就够了全部曲面自由边数量为零或者剩下的自由边都在非结构区域没有面积小于最小网格尺寸平方的碎面对称件的镜像面两侧拓扑完全一致中面之间的缝隙宽度都大于两倍网格尺寸模型最大尺寸与最小特征尺寸的比值在可接受范围内超过三个数量级就得考虑分块处理。有个省事的反向验证所有面全选网格尺寸取目标值的两倍试划一遍看有没有哪个面划不出网格、或者出现孤立的网格岛。划不出来的地方就是几何还有问题的地方比逐个面翻快得多。3. 2D 网格划分automesh 参数、质量指标阈值与局部加密3.1 F12 automesh 面板里真正需要改的参数automesh 面板参数一大堆绝大多数保持默认就够用真正要动的是这六个单元尺寸、网格类型、边缘偏置、边偏差、固定点、以及是否保持相邻面连接。单元尺寸按最小特征尺寸的三分之一到五分之一取这是为了在圆角和小台阶上至少落两到三排单元。网格类型选 mixed 还是 quads only取决于后面要不要用这张面网格 map 成六面体要 map 就必须纯四边形。参数面板位置建议值说明element sizeelem size最小特征尺寸的 1/3~1/5太小会让单元数失控mesh typemesh typemap 用 quads only纯四面体方案可选 mixedbiasing边偏置过渡比不超过 1:3相邻单元尺寸比edge deviation曲面逼近0.1×单元尺寸控制曲面弦差fixed points硬点只在必要时加加多了局部会挤出畸形单元keep connectivity连接开关打开保证相邻面共享节点*createmark surfs 1 all *automesh surfs 1 2 1 0 ;# 面标记 / 尺寸来源 / 单元类型 / 交互开关尾部这几个参数在不同版本里顺序和取值不完全一致回放命令前先在面板里对照一遍。第一个参数是作用对象集合第二个决定尺寸是从当前值取还是从已有网格推算第三个是单元形状类型最后一个开关决定是否弹出交互面板让你逐面调整密度——批量处理时关掉它效率差好几倍。3.2 网格质量指标与 Check ElementsF10的读法F10 打开 check elements面板列出十来个指标不需要每个都盯着。结构分析里真正致命的是雅可比、翘曲和长宽比这三项雅可比太低意味着单元在积分点上接近退化静力分析会直接报负雅可比翘曲过大在壳单元里会引入虚假弯矩长宽比过大让刚度矩阵条件数变差隐式求解容易不收敛。角度指标属于次要约束但只要出现接近零度的尖角单元通常旁边就是几何有问题。指标2D 壳单元建议上限触发后果aspect ratio≤ 5关键区 ≤ 3刚度矩阵条件数恶化jacobian≥ 0.6关键区 ≥ 0.7低于 0.3 直接报负雅可比warpage≤ 15°壳单元引入虚假弯曲skew≤ 45°应力场局部失真min angle≥ 30°尖角处应力集中假象max angle≤ 135°同上注意默认的质量阈值偏宽松直接用它检查会放过一批临界单元。做疲劳或接触分析时把 jacobian 提到 0.7、aspect 收到 3宁可在网格上多花两小时也别在收敛性上耗两天。3.3 局部加密、过渡比与 map 到实体的衔接局部加密最忌讳突变。相邻单元的尺寸比控制在 1:2 到 1:3 之间用 bias 做渐变而不是在一张面上直接换小尺寸重划突变的界面会成为应力假象的高发区。已经在关键区划好的网格用 element edit 或 detach 冻结起来重新划周围的时候就不会被覆盖。批量统计质量比在面板里逐页翻靠谱得多。把 F10 的结果导出成 CSV用脚本按阈值筛一遍几秒钟就能定位到最差的那些单元import csv # HyperMesh 导出的质量报告elem_id, aspect, jacobian, warpage, skew LIMITS {aspect: 5.0, warpage: 15.0, skew: 45.0} BAD 0 with open(quality_report.csv, newline, encodingutf-8) as f: for row in csv.DictReader(f): hit [k for k, v in LIMITS.items() if k in row and float(row[k]) v] # 雅可比越大越好判断方向与其他指标相反单独处理 if jacobian in row and float(row[jacobian]) 0.6: hit.append(jacobian) if hit: BAD 1 print(felem {row[elem_id]:8} - {,.join(hit)}) print(f超阈值单元数{BAD})脚本的关键在雅可比那一行的反向判断其他指标都是越小越好只有雅可比是越大越好混在同一个比较里会漏报。阈值字典按项目要求改做非线性接触时把 aspect 收到 3.0、jacobian 提到 0.7。输出的单元 ID 直接拿去 F10 里定位选中后看它落在哪个圆角或哪条缝上多数时候根源还是几何。4. 3D 实体网格四面体、六面体与 Abaqus 网格划分的对接4.1 tetramesh 与四面体网格的适用边界四面体网格适合几何复杂、改型频繁、又不想在分块上耗时间的场景比如铸造件、拓扑优化后的模型、从别处导入的坏几何。代价是单元数同样的尺寸下四面体单元数量大约是六面体的五到六倍一阶四面体本身又偏刚通常要上二阶的 C3D10 才够精度计算量再翻几倍。生成四面体的正确姿势是先划表面 2D 网格再 tetramesh而不是直接对实体一键生成。表面网格是内部生长的种子表面质量没控住内部单元一定是乱的。增长率控制在 1.2~1.5超过 1.5 会在远离表面的位置突然变大中间出现一层尺寸断层应力梯度传不过去。提示四面体生成失败报「无法封闭体积」时九成是表面网格不封闭或存在内部空腔。用 2D 的自由边检查扫一遍表面自由边为零再重新生成。4.2 六面体分块solid map、drag、spin 怎么选六面体网格的收益在接触分析和显式动力学里最明显但前提是几何得配合分块。策略上先找可映射的几何特征等截面拉伸段用 drag回转体用 spin规则长方体用 solid map 的 one volume剩下的过渡区域再单独处理。方法适用几何生成路径常见失败原因drag等截面拉伸/扫掠体源面向目标面平移起止面拓扑不一致spin回转体、法兰母线绕轴旋转旋转轴附近单元塌陷line drag沿曲线扫掠沿引导线放样引导线曲率突变solid map两条边之间的规则块源面映射到目标面侧面不是单一面one volume已有 2D 网格的封闭体直接映射端面网格不一致分块时宁可多切一刀让每个块都接近规则六面体也别指望一个块吃掉整个复杂区域。切分产生的临时面在生成完六面体后删掉注意删之前确认节点已经合并否则两侧网格会脱离。4.3 导出 Abaqus单元类型映射与 inp 自检HyperMesh 里的单元形状跟 Abaqus 的单元类型不是一对一。导出前在单元类型映射里确认清楚尤其是减缩积分和完全积分的区别选错了计算结果会差出可观的量。HyperMesh 单元Abaqus 类型适用场合quadS4R常规壳结构抗剪切自锁triaS3过渡区刚度偏大慎用hex8C3D8R / C3D8I大变形用 R弯曲为主用 Itet4C3D4仅用于填充刚度偏刚tet10C3D10 / C3D10M接触分析用 M 版本导出后别直接提交先跑一次数据检查这一步能在几秒内把单元定义、节点重复、集合引用的问题全部暴露出来# 只做模型数据检查不进入求解几秒钟出结果 abaqus jobmesh_check inputpart.inp datacheck interactive # 检查结果看这两个文件 ls part_check.dat part_check.log.dat里会列出警告数量和具体的单元编号.log里能看到有没有致命错误。数据检查通过不代表质量合格它只验证模型语法和自由度单元畸变照样能在正式计算时炸掉。再补一个脚本把导出文件里的单元类型统计一遍防止映射漏配# inp_audit.py —— 统计 inp 中各类型的单元数量确认导出与预期一致 import collections, re, sys path sys.argv[1] if len(sys.argv) 1 else part.inp counter collections.Counter() cur None with open(path, encodingutf-8, errorsignore) as f: for line in f: if line.lower().startswith(*element): m re.search(rtype\s*\s*([A-Za-z0-9_]), line, re.I) cur m.group(1).upper() if m else None if cur: counter[cur] 0 # 先建键便于统计数量为 0 的类型 continue if line.startswith(*): cur None # 遇到其他关键字就退出单元块 continue if cur and line.strip(): counter[cur] 1 for k, v in counter.most_common(): print(f{k:10} {v})脚本按关键字块来解析遇到*Element, typeXXX就记下当前类型遇到其他星号关键字就退出这样不会把节点坐标行误统计成单元。出现数量为 0 的键说明模型里定义了该关键字但没有实际单元通常是某些部件被隐藏后一起导出了正式提交前删掉能省不少排查时间。5. 排错与提速质量检查红一片时先动哪一刀5.1 用 Quality Index 一次锁定问题单元F10 的参数页签给的是一个全局分布真正高效的是切到 quality index 页签。它把各项指标合成一个 0 到 1 的加权评分并允许你给不同区域设不同权重——关注区域收紧、非结构区域放宽。设完权重后点 compute红色单元直接高亮点一下就能跳到对应位置。比逐项指标翻页快得多的地方在于它对同一批单元只给一个结论不会出现雅可比合格但翘曲超标、你在两个页签之间来回跳的情况。权重设置有讲究接触面、应力集中区、焊缝附近给满权重远离关注的区域可以把 aspect 的权重压到 0.3 以下否则整片自由网格都会被标红真正的坏单元反而淹没在里面。定完权重把配置存下来同类零件直接套用。5.2 反复踩的坑与对应的处理动作现象根因处理动作提交即报负雅可比局部单元退化或翘曲超限F10 按 jacobian 排序定位后重划该面局部加密后出现畸形单元相邻单元尺寸比过大用 bias 渐变控制尺寸比在 1:3 内中面件导入后厚度不对中面抽取偏移量未随壁厚更新重抽中面用厚度带扫掠方式六面体映射失败侧面不是单一面或端面拓扑不一致追加切分让两个端面拓扑对齐单元数量突然翻倍误用了 mixed 或四面体默认尺寸过小检查 elem size 与网格类型设置相邻面网格不连续keep connectivity 被关闭打开开关重划或手动 equivalence还有一个容易忽略的点改完网格只验证质量指标忘了验证节点连续性。相邻面的重复节点在求解器里看着像是连上了实际是两套独立自由度位移云图会出现明显的错位。导出前跑一次 duplicate 节点检查容差取单元尺寸的千分之一把重复节点合并掉再导出。对称模型只划一半中间用对称约束而不是镜像一整份网格单元数直接省一半边界条件还能更干净。这一刀往往比任何局部加密都值。本文还有配套的精品资源点击获取
返回列表