说明:本篇帖子是博主学习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》。
1.Abaqus/CAE中python的执行方式
方式一:将内核指令输入到Abaqus GUI命令行交互窗口。注意点击 >>> 之后进入编程模式。
方式二:将指令写成文本,保存为后缀.py的脚本。在Run Script中运行即可。
方式三:在Abaqus PDE开发环境下输入指令。就是个自带的Python编译器。
2. 内核脚本的快捷编辑方式
内核脚本并不需要完全自己写。
每次使用Abaqus,目录下均会自动保存一个与模型名称同名的.jnl文件。后缀为.rpy 与.jnl的文件中均记录了整个建模过程中所用得到的指令,用户可以用文本编辑软件将上述两类文件打开,并根据自己的需求对某些指令进行修改。采用这种方式可以节省大量脚本编辑时间,提高用户脚本编写效率。通过修改.rpy文件来写自己的脚本,可在【体验版_Abaqus自定义插件制作】去感受一下,很有意思,建议去试一试。
基于这样的特点,有一款工具,专门用来读取rpy文件,相关介绍在这:
Abaqus Python脚本神器-PythonReader https://www.bilibili.com/read/cv8574531/https://www.bilibili.com/read/cv8574531/
链接: 百度网盘 请输入提取码 提取码: 9k84
3. 高亮显示及取消高亮显示
3.1 highlight()高亮显示
语法: 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'])
3.2 unhighlight() 取消高亮显示
与高亮显示基本差不多。
语法: unhighlight(...)
3.3 highlight(...)和 unhighlight() 支持的对象
4. 几何模型导入
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='D:/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)
导入igs文件:
#-*-coding:UTF-8-*-
from abaqus import*
from abaqusConstants import*
from caeModules import*
mdb.openIges('D:/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)
几何导入指令中的参数定义:
- topology参数表示的是几何的拓扑类型,分为SOLID、SHELL、WIRE三种,分别对应实体、曲面、线框三类几何拓扑形状,默认值为SOLID;
- Dimensionality表示的是几何体的维度,有THREE_D、TWO_D_PLANAR以及AXISYMMETRIC三种类型,分别对应三维几何、二维平面几何以及轴对称几何;
- type表示的是导入后零件的属性,分为可变形体DEFORMABLE_BODY、离散刚体DISCRETE_RIGID_SURFACE、分析刚体ANALYTIC_RIGID_SURFACEI以及欧拉体EULERIAN四种类型。