是否可以使用脚本从Abaqus CAE中的材料库导入材料?

时间:2017-07-11 20:22:16

标签: python plugins scripting abaqus finite-element-analysis

我正在研究Abaqus 6.14插件,这对我的工程师论文有帮助,我用Python编写。根据{{​​3}},可以通过调用以下方式从输出数据库(* .odb文件)导入材料:

from abaqus import mdb
mdb.models[name].materialsFromOdb(filename)

然而,由于Abaqus允许用户从相对轻量级的材料库(* .lib文件)导出/导入材料并在模型之间共享它,我想从这些材料导入材料而不是通常笨重的*。 odb文件。

当然这可以手动轻松完成,虽然我想用我的插件减少重复工作的数量,因为我需要在非常类似的模型上运行几十个模拟但是使用不同的材料和一些其他参数。我知道我也可以在模板* .cae文件中提供必要的材料,虽然如果我不得不手动将新材料导入到几十个模型或者我不得不更新现有材料的属性,这可能会非常不方便

我在寻找的是一种解决方法,允许使用Python脚本将材料从材料库导入Abaqus mdb模型,但是如果只存在这样的解决方法,则避免实现自定义* .lib文件解析器。

1 个答案:

答案 0 :(得分:3)

您需要知道的第一件事是Abaqus材料库只是一个腌制文件。使用它不需要特殊的解析器。您可以使用标准Python库picklecPickle。当然,您需要弄清楚内部对象的确切结构。这并不难,因为你会发现它只是简单元组的列表。

但是,如果您有现有的材料库,并且想要在Abaqus CAE数据库中导入材料,则可以使用现有方法来执行此操作。

Abaqus中有一种方法,它使用材料数据库中的材料字符串并从中创建材质对象。我忘记了确切的名称,但是如果你手动导入一个材料并查看abaqus.rpy文件,你会在里面看到它。

这里有一个棘手的问题是,要使用此方法,您需要从材质库中获取材质字符串。这可以通过阅读材料数据库文件来完成。如前所述,这是泡菜形式。

如您所知,Abaqus已经有一种从材料库中读取数据并将其导入CAE模型的方法。他们有一个你可以使用的Python模块,但它只能在GUI进程中使用,而不能在内核进程中使用。如果你想花一些时间,你可以找出那个模块。在Abaqus安装文件夹中,您会找到一些.pyc个文件。如果使用Python反编译器,则可以获取这些模块的源代码。寻找那些以mat开头的人。