说明:本篇帖子是博主学习Abaqus GUI开发的笔记,基于贾利勇主编的《ABAQUS GUI程序开发指南 Python语言 第一版》这本书,仅供学习参考使用。
内核指令是Abaqus GUI开发过程中的核心文件, Abaqus/CAE将用户在图形界面程序中进行的各种操作转化为内核指令,通过执行这些指令完成一系列繁杂的前后处理操作。用户可以通过编写 Python 内核脚本指令,越过Abaqus/CAE直接完成前后处理工作。
Abaqus/CAE内核脚本指令采用Python语言编写,在继承Python语言自身 类 模型的基础上,针对Abaqus的自身特点,Abaqus/CAE 对Python语言进行了扩展,增加了500多个新的类模型。新增的类模型总体上分为三大类,分别为Session类,Mdb类以及Odb类,分别对应视图、模型数据库和计算结果数据库三类对象。Abaqus异常丰富的内核函数库是本书无法完全覆盖的,本章仅简单介绍一些常用的Abaqus内核指令,有关内核函数更加详尽的内容请参照《AbaqusScripting Reference Manual》。
方式一:将内核指令输入到Abaqus GUI命令行交互窗口。注意点击 >>> 之后进入编程模式。

方式二:将指令写成文本,保存为后缀.py的脚本。在Run Script中运行即可。
方式三:在Abaqus PDE开发环境下输入指令。就是个自带的Python编译器。
内核脚本并不需要完全自己写。

每次使用Abaqus,目录下均会自动保存一个与模型名称同名的.jnl文件。后缀为.rpy 与.jnl的文件中均记录了整个建模过程中所用得到的指令,用户可以用文本编辑软件将上述两类文件打开,并根据自己的需求对某些指令进行修改。采用这种方式可以节省大量脚本编辑时间,提高用户脚本编写效率。通过修改.rpy文件来写自己的脚本,可在【体验版_Abaqus自定义插件制作】去感受一下,很有意思,建议去试一试。
基于这样的特点,有一款工具,专门用来读取rpy文件,相关介绍在这:
Abaqus Python脚本神器-PythonReader https://www.bilibili.com/read/cv8574531/
https://www.bilibili.com/read/cv8574531/
链接: 百度网盘 请输入提取码 提取码: 9k84
语法: highlight(...)
括号里为对象类别及索引号。
例如:
highlight(mdb.models['Model-1'].parts['Part-1'].edges[0])

在上面的基础上对实体划分网格,并选择其中10个单元创建一个单元集合,单元集合命名为“ele_set”,单元集合全部高亮。set即为集。

- p = mdb.models['Model-1'].parts['Part-1']
- highlight(p.sets['ele_set'])
与高亮显示基本差不多。
语法: unhighlight(...)


Abaqus/CAE支持非常多的几何格式,基本主流三维软件都比较兼容,更是可以直接可以搞Catia、SolidWorks的文件。如下图所示:

以CATIA为例,在书的配套资料3.4中,有这么几个文件:

现将其part1和part2装配到assembly文件中,写脚本如下:
- #-*-coding:UTF-8-*-
- from abaqus import*
- from abaqusConstants import*
- from caeModules import*
-
- mdb.Model(name='Model-1', modelType=STANDARD_EXPLICIT)
-
- a = mdb.models['Model-1'].rootAssembly
- session.viewports['Viewport: 1'].setValues(displayedObject=a)
-
- catia = mdb.openCatia(fileName='https://www.gofarlic.com/TEMP/importassembly.CATProduct',topology=SOLID, useServer=True)
-
- mdb.models['Model-1'].PartFromGeometryFile(name='importassembly-1',
- geometryFile=catia,combine=False,
- #stitchAfterCombine = True,
- stitchTolerance=1.0,
- dimensionality=THREE_D, type=DEFORMABLE_BODY,scale=1.0)
-
- mdb.models['Model-1'].PartFromGeometryFile(name='importassembly-2',
- geometryFile=catia, bodyNum=2, combine=False,
- #stitchAfterCombine = True,
- stitchTolerance=1.0,
- dimensionality=THREE_D, type=DEFORMABLE_BODY,scale=1.0)
-
- p = mdb.models['Model-1'].parts['importassembly-2']
-
- session.viewports['Viewport: 1'].setValues(displayedObject=p)
-
python运行

导入igs文件:
- #-*-coding:UTF-8-*-
- from abaqus import*
- from abaqusConstants import*
- from caeModules import*
-
- mdb.openIges('https://www.gofarlic.com/TEMP/part.igs',msbo=False,scaleFromFile=OFF,trimCurve=DEFAULT)
- mdb.models['Model-1'].PartFromGeometryFile(combine=False,
- convertToAnalytical=1,dimensionality=THREE_D,geometryFile=mdb.acis,name='part-1',
- #stitchAftercombine=False,
- stitchEdges=1,stitchTolerance=1.0,type=DEFORMABLE_BODY)
python运行

几何导入指令中的参数定义:
陶小桃Blog 本公众号以记录小陶的日常碎片为主