ANSYS Workbench分区分块网格划分与节点运用实战
做结构仿真的人大多经历过这个场景几何模型从 CAD 里导进来一个零件就是一个体Body名字干干净净看着特别舒服。点一下 Generate Mesh网格哗啦一下出来了全是四面体单元数两百多万求解跑一晚上应力云图看着也还行。但等你想把网格调细一点看应力集中、或者换个载荷重算一遍的时候麻烦才真正开始——每次重划要等半小时节点数每次都不一样同一个位置的应力值飘个百分之十几你根本分不清那是网格噪声还是真实结果。我在 ANSYS Workbench 里折腾网格这些年越来越认同一句话网格质量的上限在几何分块Partition / Slice那一步就已经定死了后面调尺寸、调质量、调收敛都是在既定框架里做微调。而分区分块之后真正决定这套网格能不能用、好不好用的是节点Node这一层的细节——节点连不连得上、载荷加在哪个节点上、结果从哪些节点读出来。这篇文章就把 Workbench 里分区分块网格划分和节点的运用这两件事串起来讲既有方法选择的判断逻辑也有我在实际项目里踩过的坑和验证过的手法。适合刚接触 Workbench 网格模块、或者已经卡在六面体划不出来阶段的人。1. 全自动网格为什么常常不听话从一个体到一堆块的动机1.1 四面体填充的代价不只是单元数量四面体单元最大的优势是适应性强再复杂的几何都能给你填满不用你操心拓扑代价是同等精度下它需要的节点数明显更多。原因不复杂一阶四面体是常应变单元弯曲变形在单元内部被近似得非常粗糙只能靠加密来补偿。一个悬臂结构的弯曲问题六面体 40 万节点能算准的位移换成一阶四面体可能要 150 万节点才能达到相近的误差量级。更麻烦的是求解开销的增长。节点数翻倍内存占用和求解时间不是线性增长用直接解法时接近节点数的平方级迭代解法也在 1.5 次方量级上下。这意味着你从 40 万节点换到 150 万节点机器可能直接撑不住。所以用四面体省事这件事本质上是用后面的求解时间在还前面省下的建模时间账是要算的。1.2 扫掠成型的三个硬性条件要让 ANSYS Meshing 老老实实给你扫出六面体一个体需要同时满足三个条件缺一条都会失败或者退化存在一对拓扑一致的源面和目标面。两个面上的面数、边数、环的嵌套层次要对应得上一个面上有个圆孔、另一个面上没有就直接判死刑。从源面到目标面存在一条连续的侧壁路径。这条路径上不能有分叉也不能有内环走到一半凭空消失。侧壁上的母线不互相交叉。连接源面和目标面对应边的那些母线在空间上不能互相穿过。我在实际项目中遇到过的扫不出来九成以上不是软件的问题而是几何本身触犯了这三条里的一条。分区分块做的就是这件事用切割面把一个不满足条件的体拆成若干个满足条件的体。这话听着像废话但它是整个分块工作的全部意义所在——分块不是为了把模型切碎而是为了让每一块都满足扫掠条件。1.3 判断值不值得分块三条经验线分块不是免费的。每切一刀就多出至少一个面、若干条边网格在这些交界面上要额外处理切得密了网格尺寸会被交界面锁死几何一旦更新所有切割特征都要重建参数化研究里这一点尤其要命。我的判断标准大概是这样几条第一薄壁件和钣金件优先抽中面用壳单元这比分块切六面体划算得多壳单元在厚度方向本来就没必要分很多层。第二一次性的概念验证、只看趋势的分析四面体加局部加密足够了别浪费时间。第三拓扑频繁变化的参数化研究分块特征很容易失效还不如用 MultiZone 让它自己去适应。反过来如果你的模型要反复迭代很多轮、要严格控制单元规模、要读应力集中处的准确数值那么分块的投入基本上一定回本。我做过一个支撑座的疲劳分析四面体方案 180 万节点算 6 小时六面体分块方案 55 万节点算 40 分钟而且应力收敛曲线干净得多——这种场景花两天时间做分块是完全值得的。2. 切割工具的选择Slice、Partition、Imprint 与虚拟拓扑的边界2.1 Slice用一个平面或草图把体切成规整段Slice 是我用得最多的工具。在 DesignModeler 里它对应的是 Extrude / Revolve / Sweep / Plane 加 Slice 的组合操作本质是拿一个面去切体切完两个体共享一个新面。SpaceClaim 里对应的叫 Split Body操作更直观选目标体、选切割工具平面、另一个面、草图回车。Slice 的价值在于结果可预期。你用一个平面去切切出来的两个体一定是规则的两块交界面是一个平整的面扫掠路径清清楚楚。我一般习惯把切割平面画在几何的关键尺寸位置上比如轴肩、台阶根部、圆角结束的地方——切割位置和几何特征对齐网格质量最容易控制因为特征位置本来就是网格需要加密或过渡的地方。一个容易忽略的点切割平面最好垂直于你希望的扫掠方向。如果切斜了切出来的两个体虽然各自能扫但交界面上单元的投影会变成平行四边形长宽比立刻变差。斜切不是不能用但要清楚代价。2.2 Partition 与布尔切分面切面、体切体的差别DesignModeler 里的 Partition 支持多种切分方式面切面Faceted、体切体、边切边。它的定位和 Slice 不同——Partition 更多是用已有几何去分割已有几何切完是共拓扑的两块不是简单的一刀两断。体切体Body to Body在做组合结构时特别有用。比如一个支架由底板和两块立筋组成如果直接把它当成一个体去划网格立筋和底板的交界处必然是个难点但如果先用立筋的侧面去 Partition 底板把底板分成立筋下面和立筋周围两个区域每一块都是规则六面体形状问题就消失了。这里有个实操细节值得注意Partition 之后如果两块体在布尔意义上仍然属于同一个 Part它们之间的面会自动共享拓扑Share Topology Share节点在交界面上是连续的不需要额外的接触对。这个特性在后续理解节点连续性时非常关键。2.3 Imprint Faces只留印记不动体很多初学者不知道 Imprint Faces 这个工具我觉得它被低估了。它做的事是把切割工具的轮廓印在体的面上但不真的把体切开。结果是面上多了一条边或者一个面域体还是一个体。什么时候用它一个典型场景是你只想在某个面上做局部加密而不想改变体的拓扑。比如一块大平板你希望在中间某个圆形区域加密网格如果直接切一个圆柱出来体就多了一块扫掠条件可能就被破坏了用 Imprint Faces 在板上印出一个圆然后对这个圆形面域单独设 Face Sizing网格加密了体的完整性还保留着。代价是印记会让面上多出内部边Internal Edge网格划分器要处理这些边有时候会生成质量较差的过渡单元。我的经验是印记区域不要太多太密一次印一两个关键区域就好超过三四个印记网格质量的收益就开始变成负的。2.4 Virtual Topology先治几何再谈分块Virtual Topology虚拟拓扑是分块之前的前置处理很多人跳过这一步直接切结果越切越乱。它的作用是把几何里那些没用的小面、小边、短边合并掉让网格划分器看不见它们。典型场景是从 CAD 导入的模型里一个原本平滑的曲面被分割成几十个面片——这通常是建模历史留下的痕迹对网格划分毫无意义但每一个面片的边界都会被网格划分器当成硬边界硬生生把网格尺寸压小。这时候用 Virtual Topology 的 Merge Face / Merge Edge 把相邻面片合成一个虚拟面网格立刻变得规整。我的做法是导入几何后的第一件事就是检查有没有多余的边和面用虚拟拓扑清理干净清理完再开始分块。顺序反过来的话你可能基于一堆碎面做了分块等发现问题再回头清理前面的工作就白做了。工具是否改变体拓扑主要用途典型风险Slice是一分为二制造扫掠段切面倾斜导致长宽比恶化Partition是共拓扑分割用已有几何切分切割工具与被切体干涉Imprint Faces否只加印记局部加密、定义加载区印记过密产生劣质过渡单元Virtual Topology否合并特征清理 CAD 遗留碎面碎边合并过度丢失真实几何特征3. 分块方案怎么设计从受力路径倒推切割面3.1 沿主传力方向切让扫掠方向顺着应力流分块方案不是随便切的它应该由结构的主传力路径决定。原因很实在六面体网格在扫掠方向上的插值精度天然更好如果这个方向正好是应力梯度最大的方向你就能用更少的单元拿到更准的结果反过来如果扫掠方向和应力梯度方向垂直那六面体相对四面体的优势会被大幅抵消。举个具体的例子。一根受弯的悬臂梁最大弯曲应力的梯度方向是沿长度方向变化的所以我会让扫掠方向沿梁的轴线单元沿轴线方向可以适当拉长长宽比 3 到 5 完全能接受而在截面方向保持较密的网格。这样单元总数能省下三成弯曲应力的精度反而更高。再比如一个带法兰的圆筒受内压主应力是环向和轴向的扫掠方向沿轴向是最自然的切割平面垂直于轴线一段一段切过去。如果圆筒上有个接管接管和筒体的连接处是分块的重点要沿接管的轴线单独切出一块让接管的网格沿着自己的轴线扫然后在交界面上与筒体网格对接。3.2 过渡段的处理T 形、L 形、圆角区怎么切结构里最麻烦的从来不是规则段而是过渡段。L 形拐角、T 形接头、圆角根部这些地方几何突变扫掠条件基本不满足四面体也容易在这里出问题。我的处理思路是把过渡段单独切成一个块允许它用相对不规则的网格但把它和规则段之间的界面做成规整的对接面。具体做法在圆角结束的位置、拐角开始的位置各切一刀中间这个不规则块用 MultiZone 或者四面体两侧的规则段用 Sweep。这样不规则网格被限制在一个很小的区域里单元数量可控而且不会污染到主体网格。还有一个技巧如果过渡段的尺寸允许用倒角或者小圆角替代尖角切块会容易很多。尖角附近的网格畸变几乎无法完全避免而一个半径合适的圆角既符合工程实际真实零件很少有绝对尖角又给了网格划分器发挥空间。3.3 切割数量与求解开销的平衡有个反直觉的点切得越多不代表网格越好。每多一个切割面就多一个网格对接的界面界面上要么节点共享同一 Part要么生成接触对不同 Part。节点共享的界面网格过渡是隐式的质量还行一旦跨 Part界面上的网格匹配就成了额外负担。我的经验值是一个大件切 5 到 15 块是比较舒服的区间超过 20 块就要审视一下是不是切过头了。有些切割纯粹是为了看起来整齐对扫掠条件没有实质帮助这种刀就直接省掉。同时要留意切割面本身的尺寸。如果两个切割面离得很近比如间距只有整体尺寸的 2%中间那层网格要么被压得很薄要么直接被忽略两种情况都不好。遇到这种结构比如薄垫片、薄隔板要么把它单独作为一个体处理并单独分块要么在几何上简化掉。3.4 一个环形支撑座的完整分块示例拿一个实际做过的环形支撑座举例帮助理解上述原则怎么落地。这个零件大致是中心一个圆柱凸台外面一圈环形的支撑板支撑板上有四个对称的加强筋整体高度 80 mm外径 240 mm。分块顺序是这样的第一步用水平面在凸台根部切一刀把凸台和支撑板分开。切完之后凸台是一个规规矩矩的圆柱体沿轴线扫掠毫无压力。第二步用四个加强筋的侧面去 Partition 支撑板把支撑板分成四段扇形板加四块筋下区域。筋下区域是薄板沿厚度方向扫掠三四层就够扇形板沿径向扫掠。第三步对凸台根部的圆角过渡区单独设 Body Sizing控制在 3 mm 左右保证圆角处有三到四层单元。最后一步检查所有分割面凸台和支撑板的分割面是不是同一个 Part 内共享拓扑如果是节点连续不用管如果不是需要改成 Form New Part 或者加接触。整个过程用掉四刀切出九个块网格总数从四面体方案的 130 万降到六面体的 42 万最大等效应力从 218 MPa 收敛到 196 MPa这个差异是真实存在的四面体在这里低估了应力峰值。4. 分块之后的网格方法落地Sweep、MultiZone 与局部尺寸控制4.1 Sweep 的源面、目标面与路径判定体分好之后在 Mesh 分支下 Insert Method选择对应的体Method 选 Sweep。剩下的事情交给软件自动判定源面和目标面但强烈建议你手动确认一遍。自动判定的逻辑是基于面的形状和拓扑匹配度大多数情况没问题但遇到两个面形状相近的时候会判错症状是网格沿着错误的方向扫掠或者直接报cannot sweep。手动指定的做法是在 Method 的 Details 里把 Src/Trg Selection 从 Automatic 改成 Manual Source 或者 Manual Source and Target然后手动选面。选完之后看一眼预览——Workbench 会用一个箭头表示扫掠方向箭头对不对一眼就能看出来。还有两个参数值得关注Sweep Num Divs 可以直接指定扫掠方向的层数不设的话由单元尺寸决定Sweep Bias Type 可以设置层数的疏密分布比如靠近壁面密、中间疏。这两个参数在薄壁件的厚度方向特别好用直接给 3 层加个对称 Bias比调全局尺寸精确得多。4.2 MultiZone 自动分块的能力边界MultiZone 是软件帮你分块的方案它会自动把体切成若干个可映射的区域。对于形状不太规整但整体还比较块状的体它的效果相当不错我在处理铸件毛坯类模型时用得比较多。它的能力边界也很清楚。第一它依赖几何本身的可分块性如果体是一个弯管或者带螺旋特征的形状MultiZone 基本无能为力。第二切出来的块数你控制不了有时候会切出很多小碎块网格质量参差。第三它对付薄壁和窄槽特别容易失败。用 MultiZone 的时候我一般会打开 Mappable Sides 的 Manual 模式手动指定哪些面必须是映射面给它一点约束成功率会明显提高。另外 Method 里的 Mapped Mesh 选项可以强制要求纯六面体如果几何实在不行它会报错而不是退化成四面体——报错比悄悄退化更有价值至少你知道问题在哪。4.3 Body Sizing、Face Sizing、Edge Sizing 的叠加逻辑尺寸控制有全局和局部两层。全局的在 Mesh 分支的 Sizing 里设Element Size、Min Size 等局部的靠 Body Sizing、Face Sizing、Edge Sizing 来覆盖。一个经常被问到的问题是多个尺寸控制叠加在一起谁生效答案是取最小值。全局尺寸 10 mm某个面的 Face Sizing 设了 3 mm那个面上就是 3 mm如果这个面上还挂了 Edge Sizing 1 mm那边缘附近就是 1 mm并且会向面内做过渡。这个规则听起来简单但它是很多网格莫名其妙变密的根源。我遇到过一个模型单元数比预期多三倍最后查出来是某条早先加的 Edge Sizing 一直挂着没删把整条边的网格锁死在 0.5 mm。所以每次改完尺寸设置我都会打开 Mesh 分支下的 Statistics看一眼节点和单元数量级对不对这一步几乎不花时间能省掉很多返工。另外提醒一点Edge Sizing 的 Bias 功能在需要边界层效果又不想用 Inflation 的时候很好用但 Bias Factor 不要给太大超过 5 以后过渡单元的尺寸跳变会很剧烈反而容易出问题。4.4 Inflation 与边界层顺序错了全盘重来流体和传热分析里 Inflation 是必需品结构分析里遇到接触、疲劳、表面应力集中也常用。Inflation 本质上是沿指定面的法向按增长比生成层状单元。坑主要在顺序上。Inflation 必须加在 Method 之后、尺寸控制之前考虑——如果你先设了很小的 Face Sizing再叠加 Inflation软件会尝试同时满足两者结果就是第一层单元被压得很薄后面几层迅速膨胀长宽比爆炸。正确的做法是明确 Inflation 的第一层高度和增长比让 Face Sizing 的值不小于 Inflation 的总厚度两者协调而不是互相打架。Inflation 的层数也不是越多越好。结构件上一般三到五层就够层数多了只会堆节点数。第一层高度按你关心的应力梯度来定我通常让第一层单元的高度在特征尺寸的 1/20 到 1/10 之间。4.5 网格质量指标的判读与阈值打开 Mesh 分支下的 Mesh Metric可以看十几种质量指标。真正需要盯的就三个指标含义六面体建议值四面体建议值Skewness偏斜度 0.75最好 0.5 0.85最好 0.75Aspect Ratio长宽比 5连接件可放宽至 10 10Jacobian Ratio雅可比比 0.7 0.6偏斜度是最综合的指标我一般先按它排序把最差的几十个单元挑出来看位置。如果最差的单元集中在某个圆角或者尖角上而且数量很少通常不影响整体结果如果最差单元连成一片那说明这块的网格方案有问题要回去重新分块。还有一个容易被忽略的检查项Element Quality 为负或者接近零的单元也就是体积接近零的畸变单元。这类单元会让求解器直接报错或者产生完全错误的局部结果。划分完之后在 Mesh 分支下右键 Check Mesh 做一次代价很小。5. 节点在 Workbench 里的角色连续性、加载与后处理5.1 共享拓扑与节点连续性节点这件事的起点是拓扑共享。Workbench 里几何体的 Share Topology 属性有两个值Share 和 None。同一 Part 下的多个体如果 Share Topology 是 Share它们在相互接触的面上会自动共享节点如果是 None即使几何上严丝合缝贴在一起软件也认为它们不连续需要接触对来传力。这个设定的影响是连锁的。节点共享时界面上的位移是强连续的力通过共享节点直接传递界面不会出现过软的现象节点不共享用接触传力时界面刚度取决于接触算法的设置通常偏软界面附近的应力会有一定误差。所以我的做法是能共享拓扑就共享尤其是分块切出来的块一定要放在同一个 Part 里。跨 Part 的界面尽可能少只在确实需要模拟相对滑动、分离、或者不同材料的时候才用接触。判断有没有真的共享上有个简单办法划完网格看界面附近的节点分布如果两侧网格的节点在交界线上重合能看出是同一套节点就是共享上了如果两侧各有自己的节点串珠一样错开那就没共享。5.2 Node Merge、Node Move、Node Copy手工修补网格有时候节点不连续是历史遗留问题——比如网格是从别的软件导进来的或者模型是拼接出来的界面上差了几微米。这种情况可以用 Mesh Edit 工具集里的 Node Merge 来救。Node Merge 的逻辑是在指定容差范围内把相互靠近的节点合并成一个。容差是最关键的参数给太小合不上给太大可能把本来不该合并的节点也吃掉产生畸变单元。我的做法是从很小的容差开始试比如模型整体尺寸的百万分之一量级合不上就逐步放大一档同时每次合并后都重新看一遍网格质量。Node Move 用来微调个别节点的位置。场景很具体某个节点位置正好导致单元畸变或者你想让某个节点精确落在几何特征上以便读取结果。它是一次性的修补手段不适合大范围使用。Node Copy 用得少一些主要是在需要强行构造对称网格的时候。这三个工具的共同特点是它们是对网格的手工干预不会随几何更新自动重做。所以用完之后要在心里记一笔几何一变这些修补就全没了。5.3 节点级命名选择与远程点的建立命名选择Named Selection是节点运用里最实用的功能之一。它有两种创建方式基于几何创建或者基于网格创建。区别在于——基于几何创建的命名选择在网格重划后会自动跟随几何更新基于网格创建的作用域是具体的节点或单元网格一变就失效。这个区别直接决定了加载和结果提取的可靠性。如果模型会反复重划网格命名选择一定要优先基于几何建立只有在几何上无法表达的区域比如你想选一圈特定高度的节点才用网格方式。远程点Remote Point是另一回事。它创建一个虚拟的节点用来施加远程载荷、远程位移或者作为多点约束的从属点。远程点的作用域可以选几何面、边也可以选点。选几何的时候网格重划后它会自动重新映射到新的节点集合上选具体点的时候同样会失效。我在用远程点的时候有个习惯作用域尽量选面或者边不要选顶点。顶点在几何更新或者网格调整后位置可能变而面相对稳定得多。5.4 节点载荷、节点结果与探针取值逐节点施加载荷在 Workbench 里是个相对小众但很有用的操作。要选节点得先把作用域切换到网格节点也就是先创建一个基于网格的命名选择然后在载荷的 Details 里把它作为作用域。典型的应用场景是这样的你有一组实测的载荷数据分布在结构表面的若干个点上需要精确地加到对应的网格节点上。这时候的做法是导出网格节点坐标清单用脚本把实测点和最近的网格节点匹配起来生成命名选择再施加力。后处理这边探针Probe是最常用的节点级结果提取工具。在结果分支里插入 Probe作用域选到具体的节点可以直接读出该节点的位移、应力、温度等数值。做收敛性验证的时候我会在应力集中位置固定放一个节点探针每加密一次网格就记录一次值看它是不是在收敛——这比看云图颜色靠谱得多云图的色标范围每次都会自动调整肉眼是看不出收敛的。5.5 Match Control 与周期性模型的节点对齐做周期对称结构叶轮、扇区模型时两侧切割面上的网格需要严格对应否则周期边界条件没法用。这时候要用 Match Control指定两个面或者两组面软件会保证在两侧生成一一对应的网格节点可以做到完全镜像对齐。Match Control 的约束挺严的两个面的几何形状需要能通过旋转或者镜像重合容差范围内两侧的尺寸控制设置需要一致否则匹配会失败。实际操作里我会在建立 Match Control 之前先把两侧面的 Face Sizing 设成完全一样的参数然后再建成功率会高很多。匹配成功之后周期边界上的节点严格一一对应用命令流定义周期约束或者用 Cyclic 分析结果都可靠。匹配不上硬用周期边界会得到莫名其妙的结果而且很难排查。6. 排查实录分块做完了网格还是失败的四种典型症状6.1 扫掠方向被误判症状网格划出来了但是形状很怪单元沿一个明显不合理的方向拉长或者在某些区域突然扭曲。排查路径把 Mesh 分支展开找到对应的 Sweep 方法看 Src/Trg Selection 是不是 Automatic。如果是改成 Manual检查软件选的两个面是不是你想要的。我在一个阶梯轴上遇到过这个问题——软件把两个台阶面当成了源面和目标面扫掠方向变成径向网格整个歪掉。顺带提一句判断扫掠方向是否合理的直观方法看箭头方向是不是与体的长轴一致。绝大多数工程结构扫掠方向都应该沿最长的那一维。6.2 分块面之间有缝隙症状网格划出来了但界面处的应力云图上有明显的一条线或者求解时报节点不连续的警告或者界面两侧的位移对不上。排查路径回到几何检查分块出来的两个体是不是真的共享拓扑。在 Geometry 分支下选中两个体看它们是不是在同一个 Part 里Share Topology 是不是 Share。我遇到过一种情况几何看起来是贴合的实际上两块体之间差了 0.002 mm肉眼完全看不出来但网格划分器认为它们是两个独立的面。用几何检查工具量一下两体之间的最小距离或者直接用一个体去切另一个体保证共面都能解决。如果几何上已经共享、网格还是不连续那就检查一下是不是在 Mesh 分支下动了什么设置比如把某个体的 Share Topology 单独改成了 None。6.3 碎面与短边把网格尺寸压死症状单元数远超预期打开网格一看某个小区域密密麻麻全是单元而大部分区域很稀疏。排查路径打开 Mesh 分支下的 Sizing看有没有短边或者小面被附加了尺寸控制。更常见的是 CAD 导入时留下的碎面碎边它们没有明确的尺寸控制但网格划分器会默认沿着这些边生成网格边一短网格就密。解决方法就是前面说的 Virtual Topology把没意义的碎边合并掉。合并之后重新划一次单元数往往能降下来一大截。我印象最深的一次一个导入的支架模型合并了十几条碎边之后单元数从 240 万降到 68 万计算时间从 8 小时降到 50 分钟。6.4 接触对两侧节点不匹配症状接触分析的结果异常接触面附近的应力明显偏低或者偏高或者接触状态在迭代中反复跳动。排查路径先看接触对两侧的网格尺寸是否相当。如果一侧是 2 mm另一侧是 10 mm接触面上一侧有很多节点、另一侧很少接触压力的分布会很不均匀。理想情况下两侧网格尺寸尽量接近或者让密集一侧不超过稀疏一侧的两倍。Workbench 里有个工具可以辅助接触对的 Advanced 设置里有 Contact Side / Target Side 的调整选项还有 Adjust to Touch 的容差设置。但要注意的是Adjust to Touch 只调整几何的穿透间隙不解决网格尺寸匹配问题这两件事经常被混为一谈。7. 把分块和节点控制变成可复用流程7.1 命名选择前置先命名再分块这条经验是我吃了亏才总结出来的。最初做分块的时候我是先把几何切好、网格划完然后才想起来要建命名选择于是回头一个个面地去点。问题是——分块之后面的数量翻了好几倍哪个面是原始模型的哪个特征已经很难对应上了。后来改成在动刀之前先把原始几何上所有有意义的特征命名好——所有的加载面、约束面、关注点、接触面全部建好命名选择。然后再去分块。这样即使切了很多刀原来的命名选择依然有效而且在后续的参数化研究中命名选择会自动跟随几何更新。命名选择的命名规范也值得花点心思。我的习惯是用功能_位置的格式比如 LOAD_FLANGE_TOP、FIX_BOTTOM_FACE、CONTACT_BOSS_OUTER而不是面1、面2。模型一旦交给别人或者自己隔两周再打开这个命名规范能省掉大量回忆时间。7.2 参数化与脚本录制分块的过程可以录制成脚本这是把手工操作变成流程的最直接办法。在 DesignModeler 或者 SpaceClaim 里每一步操作都可以生成脚本Mechanical 里的网格设置、命名选择、结果提取也可以通过脚本录制下来。真正有价值的地方在于参数化研究里几何尺寸一变分块的切割位置也需要跟着变。如果切割面是用尺寸参数定位的比如在总长的 40% 处切一刀参数一改切割面自动跟着走整套流程就活了。如果切割面是随手点的位置几何一变就全乱。我给一个参数化模型定切割位置的时候尽量让每一个切割平面都对应一个明确的尺寸参数哪怕这个参数只是从主尺寸派生出来的。多花十分钟定义参数能省掉后面几十次重建的时间。7.3 几何变更后的网格重建与节点失效几何一改网格必然重建重建就意味着所有基于网格的命名选择、节点探针、手工合并的节点全部失效。这不是 bug是设计如此。应对办法有两条。第一尽量把关键的作用域建立在几何层而不是网格层。第二如果确实需要节点级的操作就把它放在流程的最后一步并且单独记录下来——我会在模型旁边放一个文本文件记着这个模型做了哪些手工节点操作、用了什么容差重建的时候照着做一遍。还有个小细节手动合并节点之后如果需要反复重建网格可以考虑把合并操作写成脚本这样至少执行过程是自动的。8. 几个只有踩过才记得住的操作细节8.1 单位与容差所有数值问题的起点Workbench 里几何单位、网格尺寸单位、节点合并容差单位如果不统一会出现非常隐蔽的错误。我遇到过的最典型的一次是几何以毫米建模节点合并容差按米的习惯填了 0.001结果相当于合并容差 1 mm把不该合并的节点全吃掉了网格看起来没问题求解结果偏差 30%。我的习惯是在项目开始时就明确单位制在 Workbench 的 Units 菜单里锁定然后所有的尺寸、容差、参数都用同一套单位思考。节点合并的容差建议从模型特征最小尺寸的千分之一这个量级开始试逐步放大。8.2 保存与导出把网格单独存一份网格划好之后我一般会把网格单独导出一份导出为 CDB 或者直接在 Workbench 里另存一个只有网格的状态原因是网格重建的代价很高——一个复杂模型的分块加网格可能要一两个小时如果因为后面的求解设置出了问题导致整个项目重建损失太大。导出的网格还能拿到其他后处理工具里做检查或者交给同事复用。这在团队协作里特别有价值一个人的分块方案和网格可以给整个组用。8.3 结果路径与截面从节点集合里读数据最后说一个后处理的技巧。当你需要沿某条路径看结果分布比如沿厚度方向的应力梯度、沿焊缝方向的应力分布做法是定义 Path指定起点和终点软件会沿着这条线取最近的节点结果。这里有一个坑如果路径穿过的区域网格很粗路径上的采样点落在单元内部结果是被插值出来的不一定反映真实分布。所以定义路径之前先确认路径区域的网格足够密尤其是你想看梯度变化的地方。我一般会先加一个对应的命名选择看看这条路径附近有多少节点节点太少就回头加密。同样的道理适用于截面结果和表面结果。截面上的应力云图看着漂亮但如果截面方向只有两三层单元那个分布基本没有参考价值。节点数量决定了你能看到的信息量的上限这一点在分块阶段就已经定下来了——这也是为什么我总说分块这件事值得在最开始就认真做。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →