2.1 几何建模实战:参数化几何与 CAD 导入 本节摘要:以全册贯穿案例 CPU 散热器为例,走通参数化几何的完整序列:参数表、基板、翅片、阵列、并集、圆角;再处理 CAD 导入的检查与修复。读完你能用 Nf 一个参数重建任意翅片数的散热器,并知道导入的 STEP 模型脏在哪里该怎么修。 你将做出的模型 散热器看似简单,却覆盖了原生几何建模的全部高频动作。规格先定下来:基板 60 mm × 60 mm × 3 mm;翅片 7 片,单片 2 mm 厚、20 mm 高、沿 x 向通长 60 mm,中心距 pitch 为 7.5 mm;翅片顶端倒 2 mm 圆角。把这几个数写成参数,后面的阵列、圆角全部引用它们——这样第 7 章做"翅片数从 5 到 11 扫描"时,只需要改一个数字。
本节摘要:以全册贯穿案例 CPU 散热器为例,走通参数化几何的完整序列:参数表、基板、翅片、阵列、并集、圆角;再处理 CAD 导入的检查与修复。读完你能用 N_f 一个参数重建任意翅片数的散热器,并知道导入的 STEP 模型脏在哪里该怎么修。
散热器看似简单,却覆盖了原生几何建模的全部高频动作。规格先定下来:基板 60 mm × 60 mm × 3 mm;翅片 7 片,单片 2 mm 厚、20 mm 高、沿 x 向通长 60 mm,中心距 pitch 为 7.5 mm;翅片顶端倒 2 mm 圆角。把这几个数写成参数,后面的阵列、圆角全部引用它们——这样第 7 章做"翅片数从 5 到 11 扫描"时,只需要改一个数字。
新建一个模型文件(文件→新建→空白模型,右击根节点→添加组件→三维),先在全局定义里录参数:
名称 表达式 值 描述 L_base 60[mm] 0.06 m 基板边长 t_base 3[mm] 0.003 m 基板厚度 N_f 7 7 翅片数量 t_fin 2[mm] 0.002 m 翅片厚度 pitch 7.5[mm] 0.0075 m 翅片中心距 h_fin 20[mm] 0.02 m 翅片高度 r_top 2[mm] 0.002 m 翅片顶端圆角
基板:右键"几何 1"→ 长方体,宽 L_base、深 L_base、高 t_base,位置默认原点,构建。
单片翅片:再添加一个长方体,宽 L_base、深 t_fin、高 h_fin,基座位置设为 x=0、y=(L_base−t_fin)/2(让第一片居中)、z=t_base——注意位置要引用参数而不是手敲数字,z 必须从基板顶面起算,否则翅片会陷进基板里。
阵列:右键"几何 1"→ 阵列,选择类型"线性",要阵列的对象选刚才的翅片(在设置窗口的对象列表里点选),方向 2(y 向)距离填 pitch,阵列数填 N_f,构建后 7 片翅片一字排开。这里有个参数化的小机关:几何总跨度是 t_fin + (N_f−1)*pitch = 47 mm,居中偏移量同样可以写成表达式 (L_base − t_fin − (N_f−1)*pitch)/2,填进阵列的基座位置 y 栏——将来 N_f 改成 11,散热器自动保持居中。
并集:右键"几何 1"→ 布尔和运算(并集),对象选基板与全部翅片。并集后翅片与基板融合为一个对象;注意"形成联合体"定稿方式会保留对象内部的边界(翅片与基板之间留有内部面),对同材料的传热问题这无关紧要,网格在内部面两侧自然连续。若你的模型要对不同部件分别赋材料又想共享网格,才需要考虑"形成复合对象"加一致对的装配方案,那是更进阶的话题。
圆角:右键"几何 1"→ 圆角,选每片翅片顶部的两条水平棱边(用图形窗口点选),半径填 r_top,构建。圆角不是装饰——第 3 章的算例里它轻微增大了散热面积,更重要的是让 CAD 出图与仿真几何一致。
点"全部构建",散热器成型。做个验收实验:把 N_f 改成 9,pitch 改成 6.5[mm],全部构建,模型无错重建——参数化建模的检验标准就是"改参数不报错、形状符合预期"。

实际工作中,几何更多来自 SolidWorks、Creo、NX 等工具导出的 STEP 文件。操作本身平淡:右键"几何 1"→ 导入,选文件,勾选"形成联合体"。真正的工作从导入后开始——先跑几何检查:右键"几何 1"→ 检查几何,勾选"自由边""短边""小面"三项。自由边意味着破面(面片没有闭合),短边和小面则是网格畸变的头号来源:一条 0.001 mm 的碎边会强迫网格在它周围生成一串微小单元,单元数暴涨、质量暴跌。
处理顺序按侵入性从小到大:其一,调整导入容差(默认 1e-6 m,放宽到 1e-4 m 能自动缝合大部分缝隙,代价是几何细节被抹平);其二,用"删除面"节点把不参与传热/受力的装饰特征(logo 凸台、小倒角)直接删掉;其三,虚拟操作里的"忽略边""合并面"不动真实几何、只在网格层面糊弄过去,是短边碎面的低成本解法。原则一句话:仿真几何不是设计几何,一切对物理场无贡献的特征都是网格的敌人。散热器这种模型用路线一五分钟搞定;拿到一个五百个面的电子产品外壳时,先删掉四百个面再划网,是老手的常规操作而不是偷懒。
留两个变式练习。其一,把散热器改成叉排短翅片:翅片通长方向截成两段并错位排布,只需要再添一个镜像节点。其二,给基板四角各打一个直径 3 mm 的安装孔:圆柱基元 + 差集(布尔运算里的"差"),孔轴线沿 z 贯穿基板。两个变式做完,基元、阵列、布尔三大件你就都摸过了。自测三问:阵列的基座位置为什么必须写成表达式?自由边说明什么?导入容差放宽的代价是什么?答不上来就回到对应段落重读,下一节的网格划分会把这套几何折腾出真正的考验。
补一个几何简化与仿真目的的匹配原则。COMSOL 新手常犯的错误是试图把 CAD 模型原封不动导入——每个倒角、螺丝孔、标签凸台都会增加几何复杂度并拖慢网格生成。正确的做法是问自己:这个特征对我要仿真的物理场有影响吗?如果做热分析,螺丝孔和标签可以删掉,但散热翅片的间距和厚度必须保留;如果做流体分析,内腔的每个弯角都可能影响流场,外表面装饰特征可以忽略。简化操作在 COMSOL 的 CAD 导入模块里有自动工具(删除细节、虚拟操作),但最可靠的方式是在 CAD 软件里就导出简化版本。简化的一个原则:当你在犹豫要不要删的时候,先删了跑一遍,再还原跑一遍,看关键指标差多少——差不到 1% 就不需要还原。这个"删了试试"的方法比理论判断更快,也更适合没有多年经验的用户。