目录
HyperMesh
3Studio 可以连接你电脑上已安装的 Altair HyperMesh(有限元前处理软件),让 Agent 直接替你做网格划分、几何清理、材料与载荷设置、导出求解器文件,而不用你自己在 HyperMesh 里手动点。
⚠️ 仅支持 Windows。 桥接程序的整体工作方式和通用 Python 环境设置见《概览与通用设置》——本页只写 HyperMesh 特有的部分。
⚠️ 预览功能。 主要建模流程(几何清理、网格划分、材料与载荷、求解器文件导出)已在真机上验证过,可以正常使用;但这个集成仍处于预览阶段,有两处需要你提前知道:每次打开 HyperMesh 都要手动加载一次监听脚本(见下方「使用前提」第 2 点);部分能力目前只能经 Tcl 命令完成,没有专用的封装——例如件间连接与几何清理的容差,需要 Agent 直接写命令来控制。(中面抽取的分组容差与去特征化参数,以及约束、集中力、面压、重力、集中质量这五种载荷,已有专用封装:载荷封装会在写入后自动读回核对,不一致会直接报错而不是悄悄写错;中面抽取会用安全默认值,你也可以让它改。)后续版本里这些可能调整。
使用前提
使用前需要确认两件事。其中只有第 2 件(启动监听脚本)是 HyperMesh 特有的手动步骤:
1. 电脑上要有一个 Python(3.9–3.13 版本)。 HyperMesh 桥接的其余 Python 依赖由 3Studio 自动搭建:首次检测到 HyperMesh 后,3Studio 会自动创建一个隔离 Python 环境并装好所需依赖(跟你系统上的 Python 互不影响),无需手动安装任何包(应用启动时自动进行;如果是运行中途才配置好 HyperMesh 路径,重启 3Studio 或点击卡片上的"重建隔离环境"按钮即可触发)。你只需要保证电脑上装有 Python 3.9–3.13——可以在设置页顶部的「Python 环境」卡片指定,或者让 3Studio 自动查找(详见《概览与通用设置》)。
2. 在 HyperMesh 里启动监听脚本。 3Studio 与 HyperMesh 之间靠一个 Tcl 监听脚本通信,每次打开 HyperMesh 后需要手动加载一次:在 HyperMesh 菜单栏选择 File → Run → Tcl/Tk Script,选中 3Studio 安装目录下 resources\hypermesh-bridge\hm_listener.tcl 这个文件运行(找不到的话直接询问 Agent,它会告诉你完整路径)。运行后无任何弹窗即为正常,此后 Agent 就能连上这个 HyperMesh 窗口。每次重新打开 HyperMesh 都要重新运行一次。
配置 HyperMesh
打开设置 → 工具标签页,找到 HyperMesh 卡片(默认折叠,点击标题展开):
-
HyperMesh 可执行路径:点"检测",3Studio 会扫描常见安装位置(C 盘 / D 盘下的
Program Files\Altair),但检测本身只是探测,不会自动保存路径;装在别处检测不到、或想手动确认时,点"选择 HyperMesh 可执行文件…"手动选中 HyperMesh 的启动程序(hmopengl.exe)——3Studio 会校验选中路径确实是合法的 HyperMesh 可执行文件,无效路径会显示原因。 -
状态标签:卡片顶部的标签常见有:未检测到(灰)、失效(红,曾经指定的路径现在校验不通过,可点"清除")、检测异常(金,检测机制本身出错)、准备中…(金)、出错(红)、桥未运行(金,环境已就绪但桥接进程还没启动)、就绪(绿,一切正常)。
-
Python 解释器(手动指定):一般不需要动——3Studio 会自动选用兼容的 Python(3.9–3.13)搭建隔离环境。只有想强制换用某个特定解释器时才手动指定;指定 3.9–3.13 窗口之外的版本会被直接拒绝并提示原因。
-
隔离环境位置与重建:HyperMesh 的 Python 依赖默认安装在一个独立的虚拟环境里,卡片上有"环境位置"一行显示当前位置,可以点"更改位置…"换到别的磁盘。展开后的卡片上还有一个"重建隔离环境"按钮,点一下就会用当前的基座 Python 重新搭建这个隔离环境(比如切换了基座 Python 之后想让 HyperMesh 立即用上,就点它)。
-
测试连接:点击后显示三行状态——
Status(桥接进程状态)、Sidecar(HyperMesh 侧后台服务状态)、Channel(与 HyperMesh 窗口的通道状态)。Channel有三种取值:connected表示一切正常;busy表示 HyperMesh 正在执行一条耗时命令(不是断线,等它跑完即可);unreachable表示监听脚本没在运行——回到上面第 2 步重新运行hm_listener.tcl。(这张卡片只显示这三行。)想知道当前有几个无界面的hmbatch.exe批处理进程在跑、占着几份 Altair 许可,直接问 Agent——它能查到这个数字(跑完会自动归零);你也可以在 Windows 任务管理器里直接数hmbatch.exe的进程数。
让 Agent 使用 HyperMesh
推荐搭配「结构专家」Agent:新建 Agent 时选择「结构专家」模板(需要构建中包含 HyperMesh 模块),它内置了 HyperMesh 建模技能、Nastran 求解技能,以及 Creo 几何技能(打开装配 / 改参数 / 再生 / 导出 STEP)——命令用法、单位制纪律、常见错误的恢复策略都已配好,从 Creo 几何到建模、求解可以交给同一个 Agent 连着做,比通用 Agent 少走弯路。下文能力均以结构专家为准。
配置好之后,直接用自然语言给 Agent 派活即可,例如"把这个几何导入 HyperMesh 并划分 5mm 网格""检查当前网格质量""导出 OptiStruct 求解文件"。Agent 具备的能力:
⚠️ Agent 执行的脚本没有沙箱。 它以你的账户权限在你这台电脑上运行——能读写你能读写的任何文件,也能启动别的程序,和你自己在 HyperMesh 的 Tcl 控制台里敲命令是同一个权限。3Studio 只在批处理通道上拦下一条已知会让程序崩溃的命令,除此之外不做任何过滤——而且那一条也是防手滑,不是安全隔离。所以:只让 Agent 跑你自己看得懂、或者来源可信的脚本。
- 执行建模操作:几何导入与清理、网格划分、创建材料 / 属性 / 载荷 / 约束、导出求解器文件(如 OptiStruct、Nastran 格式)等——HyperMesh 里能通过命令完成的操作 Agent 基本都能做。
- 导出求解文件并回读:Agent 导出 OptiStruct / Nastran 求解文件时,3Studio 会先清掉旧文件、再导出、再把导出的文件解析回来核对每个载荷集是否真的写进了文件。核对不过时,3Studio 会把这次导出标为未通过并点名没导出去的载荷集,或点名数值全为零的载荷卡,Agent 据此处理。
- 每次改模型后自动汇报变化:Agent 在你打开的 HyperMesh 窗口里执行修改命令时,3Studio 会自动在命令前后统计各类实体数量并把差值交给 Agent。命令返回成功但没有任何实体计数变化(HyperMesh 里不少命令参数错了也不报错)时,3Studio 会在结果里标出来并提示 Agent 复核。
- 查看模型概况:随时询问"现在模型里有什么",Agent 会读取当前模型的实体统计(节点数、单元数、部件等)汇报给你。
- 检查连接状态:Agent 开工前会自行探测连接是否正常,异常时会提示你如何处理(比如需要重新运行监听脚本)。
- 查找命令用法:不确定某个 Tcl 命令怎么写、参数是什么,甚至这个命令是否真的存在时,Agent 会先在本机 HyperMesh 安装里查找匹配的命令,返回参数签名,以及这条命令在 Altair 官方脚本库里被实际调用过多少次——调用次数为 0 说明命令虽然存在,但没有已知的正确用法,Agent 会提醒你更谨慎地对待。这份索引在你配置好 HyperMesh 后于本机自动生成,不随应用分发,因此始终和你安装的版本一致。
长任务:后台执行,不卡对话
大模型网格划分、大几何导入这类操作可能要跑几分钟到几十分钟。你打开的这个 HyperMesh 窗口一次只能执行一条命令,期间无法响应其他请求——3Studio 对此做了专门处理:
- 重活走独立批处理进程:导入 CAD 几何、自动划分网格这类会弹出 HyperMesh 面板的操作,Agent 不会在你打开的这个 HyperMesh 窗口里跑——它会另起一个无界面的批处理进程(任务管理器里能看到
hmbatch.exe)来做,跑完自动退出。好处是不会卡住你正在用的窗口;代价是这个进程运行期间会额外占用一个 Altair 许可,跑大模型时请留意许可池是否够用。 - 许可怎么占:Agent 在你打开的这个 HyperMesh 窗口里执行命令时,用的就是你已经占着的那份 Altair 许可,不额外消耗;只有上面说的批处理进程才会另外占一份——每起一个占一份,进程退出才释放。3Studio 不设并发上限:它不知道你的许可池有多大,也不替你决定这个上限。要控制占用,就明确告诉 Agent 一次只跑一个,或者让它取消正在跑的任务(见下一条)。
- 跑错了可以让 Agent 取消:Agent 能中止一个正在跑的批处理进程,中止后该任务标记为已取消、占用的许可立即释放。但正在你打开的这个 HyperMesh 窗口里执行的命令中止不了——那种情况通常是 HyperMesh 弹了一个对话框在等你操作,去把它关掉即可,见下方"疑似卡住"的说明。
- 耗时命令自动转后台:Agent 预期某条命令耗时较长时,会把它转入后台执行并立刻拿到一个任务编号,之后定期查询进度,完成后自动读取结果继续往下做。你和 Agent 的对话不会被卡住。
- 超时不会丢结果:即使查询等待超时,命令的执行结果也会被后台完整保留,Agent 随后取回。不过后台只保留最近若干条已完成的结果,隔太久没取、又有大量新任务跑过,旧结果会被挤掉——真发生时 Agent 会明确告诉你结果已过期,而不是装作没这回事。
- 忙碌时不硬闯:如果 HyperMesh 正被一个后台任务占用,Agent 新发的命令会得到"忙碌"提示而不是排队堆积;Agent 会等当前任务结束后再继续。这期间你在"测试连接"里看到的
Channel状态就是busy。
长任务执行期间尽量不要在 HyperMesh 窗口里手动操作——HyperMesh 同一时间只能做一件事,手动操作和 Agent 的命令会互相阻塞。
反过来,如果 Agent 报告某个操作疑似卡住(长时间没有进展),多半是 HyperMesh 弹出了一个需要你操作的面板(对话框),挡住了后续命令——去 HyperMesh 窗口把它关掉即可恢复;实在不行就重启 HyperMesh。