Python是面向对象的编程语言,对象模型是面向对象程序设计中的一个重要概念。Abaqus Python API 采用面向对象的树状层级结构(Object Hierarchy)。整个 API 围绕三大核心根对象(Root Objects)展开:负责界面显示的 session、负责前处理与求解配置的 mdb(Model Database),以及负责求解结果后处理的 odb(Output Database)。

如上图所示,蓝色方块 (Container ):字典型容器。用来存放多个同类命名对象(例如一个 mdb 下可以有多个 models,一个 Model 下可以有多个 parts)。橙色方块 (Singular Object):单例对象。在父级节点下是唯一的(例如每个 Model 下有且仅有一个装配体 rootAssembly)。
1. session 对象树
session 是 Abaqus Python API 中负责控制 GUI 运行状态、图形显示、视图交互与临时分析数据的根对象。在编写 Abaqus 自动化脚本(尤其是自动化报告生成和后处理定制)时,session 是最常被调用的对象。后续与后处理部分一道说明。

2. 前处理核心:mdb (Model Database)
mdb 是所有前处理模型数据的入口。第一层包含两个核心容器:models(模型库)与 jobs(作业库)。
正如Abaqus/CAE 界面左侧“模型树(Model Tree)”里看到的所有内容,在Abaqus Python API中都是mdb对象树上的一个节点,为第二层。每个分析模型(Model 对象)内部,包含了前处理所需的所有子容器与对象,如parts、materials、sections、steps、loads、boundaryConditions以及rootAssembly。

第三层为Part 与 Assembly 内部的拓扑与网格层,包括几何拓扑对象、网格拓扑对象以及区域定义。
Abaqus 中,容器本质上是一种类似于 Python 字典(Dictionary)的对象。可以使用字符串键名或属性点号来访问。任何一个实体(哪怕是一个节点或一条边),在 mdb 树中都有唯一确定的访问路径。如上节所示代码,
myModel = mdb.Model(name=model_name)myPart = myModel.Part(name='Beam_Part', dimensionality=THREE_D, type=DEFORMABLE_BODY)
3. 后处理核心:odb (Output Database)
求解完成后生成的 .odb 文件,其对象模型独立于 mdb。后处理既可以在 GUI 环境通过 session.odbs 访问,也可以通过独立 Python 脚本利用 odbAccess 模块直接读取。

提取应力、位移等结果时,访问路径遵循严格的递进关系,Odb -> Step -> Frame -> FieldOutput ->FieldValue。
1)steps:包含按分析步分类的分析过程(如 'Step-1');
2)frames:分析步内的增量步/时间帧列表,step.frames[-1] 即为当前步的最后一帧;
3)fieldOutputs:每帧中的场输出变量(如 'S' 表示应力,'U' 表示位移,'RF' 表示反力);
4)values:特定节点或单元积分点上的具体数值对象(FieldValue),包含 .data(张量/矢量值)、.mises(Mises 等效应力)等属性。
odb = openOdb('Job-1.odb', readOnly=True)stress = odb.steps['Step-1'].frames[-1].fieldOutputs['S']