使用 Python 自定义 Abaqus 2022 环境
目录
我经常处理复杂形状的 CAD 数据,并且经常发现默认的几何细化设置太低 - 遗憾的是 session.default* 对象中不存在这种设置,因此我们需要应用一些创造性的方法。
通过更改 Abaqus/CAE 中 特定零件的参数并查看 Abaqus 记录文件 (RPY),可以找到更改几何细化级别所需的片段的标识。
我想制作一个脚本来更改当前打开的模型中所有零件的细化级别。然后,所需的代码可以作为内核脚本、内核插件进行访问,或者集成到环境中,以便在调用特定函数时运行。
内核脚本
内核脚本对于开发脚本或运行需要有限可访问性的项目特定代码非常有用。循环模型中各部分所需的代码块相当简单,并且需要从 Abaqus 和 abaqusConstants 强制导入。
几何细化.py:
Code 如下:
from abaqus import *
from abaqusConstant import *
def main():
# Traverse all parts in the current model
vpName = session.currentViewportName
model = mdb.models[session.sessionState[vpName]['modelName']]
for key in model.parts.keys:
model.parts[key].setValues(geometryRefinement=EXTRA_FINE)
model.rootAssembly.regenerate()
# Will also work aS Run Script
if __name__==__main__:
main()
该脚本可以通过 Abaqus 中的“File->Run Script..”来运行。
注册内核脚本
每次需要这样的脚本时都浏览脚本是很乏味的。我们可以通过在启动时注册脚本,再用几行将其变成 Abaqus/CAE 中的可访问插件。
GeometryRefinement_Register.py:
启动时,Abaqus 2022 会扫描”C:\SIMULIA\CAE\plugins\2022”中的插件。在此位置创建一个名为“Geometry Refinement”的文件夹,并添加 GeometryRefinement.py 和 GeometryRefinement_plugin.py 以使它们在 Abaqus/CAE 中可用。
环境文件
内核脚本和注册插件都需要交互才能启动。如果您不定期处理复杂的 CAD 数据,则可以将此功能实现为环境文件中的回调函数。
环境文件中最常见的函数之一是“onCaeStartup()”,它也使我们能够设置一些其他默认值。大多数默认设置可以自然地使用“文件->保存显示选项...”来保存。
回调函数可以在调用 Abaqus 中的特定命令之前或之后运行。这意味着可以在特定事件中自动运行一些代码!
首先,我们需要找到我们的环境文件:“\SIMULIA\EstProducts\2022\win_b64\SMA\site\custom_v6.env”
我选择在每次创建实例或加载 .cae 文件时运行优化过程。通过查看回复文件 (.rpy),我们找到函数名称“Instance()”和“openMdb()”——我们可以使用 methodCallback.addCallback 将代码片段附加到这些函数。
自定义_v6.env:
结束语
我们已经了解了运行简单函数的三种不同技术。根据预期用途,其中之一可能是更好的选择。例如,如果您正在处理复杂的 CAD 几何体,那么无意中运行此代码片段实际上可能会花费您几分钟的时间,或者在导入大型装配体时导致计算机崩溃。