做Abaqus建模最头疼的不是不会操作,是反复做同一套流程。改个网格密度、换个材料参数,之前的步骤全得重来。我之前一个项目光建模就重复了7遍,每次2小时,14小时全浪费了。后来学会用Abaqus脚本,同样的活10分钟搞定。核心就两个文件:jnl和rpy。这俩文件Abaqus自动生成,但90%的人从来没打开看过。
Abaqus每次操作都会记录,存在两种文件里。
rpy文件(replay file)记的是你在GUI里点的每一步操作命令。建模、修改、保存,全在里面。打开.rpy文件,你能看到自己当时点了什么按钮、选了什么参数。
jnl文件(journal file)更实用。它存的是Python命令,能直接重建你的模型。说白了,jnl文件就是Abaqus自动帮你写的脚本。
但默认保存的坐标是变量名,不是具体数值。改了前面的参数,后面坐标全对不上。怎么办?在Script Window里输入这行:
session.journalOptions.setValues(replayGeometry=COORDINATE, recoverGeometry=COORDINATE)
这行代码的作用是让Abaqus保存模型时,把所有坐标写成固定数字。改完之后,脚本的可重复性直接拉满。2026版Abaqus生成的jnl文件语法比2024版规范了不少,冗余代码少了大概30%。
找到工作目录下的.jnl或.rpy文件,用记事本打开,后缀改成.py,就是一个能直接跑的Python脚本。就这么简单。
Abaqus建模的标准流程就8步,每一步都能写成脚本命令:
| 步骤 | 操作 | 脚本对应关键词 |
|---|---|---|
| 1 | Parts - 创建零件 | mdb.models['Model-1'].Part() |
| 2 | Materials - 定义材料 | mdb.models['Model-1'].Material() |
| 3 | Section - 创建截面 | HomogeneousSolidSection() |
| 4 | Section Assignments - 指定截面 | part.SectionAssignment() |
| 5 | Assembly - 装配零件 | rootAssembly.Instance() |
| 6 | Steps - 定义分析步 | StaticStep() |
| 7 | BCs + Loads - 边界条件和载荷 | region.Set()、ConcentratedForce() |
| 8 | Mesh - 划分网格 | seedPart()、generateMesh() |
| 9 | Jobs - 提交计算 | mdb.Job() |
这9步走完,一个完整模型就建好了。把命令写进.py文件,下次改参数直接跑脚本,30秒出结果。
我实测过一个案例:一个钢结构节点模型,手动建模花了3小时,写成脚本后换参数只要15秒。10组参数跑下来,总共不到5分钟。你说这效率差距从哪来的?就是从脚本来的。
运行脚本有2种方式,我都用过,说下真实体验:
方式1:GUI里直接跑
点File → Run Script,选你的.py文件。优点是能看到运行过程,报错了直接定位。缺点是每次都要开GUI,稍微慢一点。适合调试阶段用。
方式2:命令行运行
打开cmd,输入:
abaqus cae script=myscript.py
不用开GUI,后台直接跑,速度快30%左右。适合批量跑多个脚本。我现在提交计算任务全用命令行,一次能挂5个job。
2026版Abaqus还加了一个实用功能:脚本里可以加参数输入,运行时弹窗让你填数值,不用每次改代码。需要反复调参的人,这个功能能省不少事。
说个踩坑的事。脚本里的路径别用中文,别用空格。我之前有个脚本在别人电脑上跑不起来,排查了2小时才发现路径里有个中文文件夹。改成英文路径,3秒跑通。

还有,jnl文件生成的脚本别直接用,先检查坐标值。Abaqus有时候会把中间变量写进去,跑的时候直接报错。我的习惯是生成后手动跑一遍,确认没问题再批量用。
你现在手里有Abaqus项目在跑吗?先把那行journalOptions的代码试一下,改完坐标保存格式,后面写脚本会顺很多。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。