如何使用ABAQUS python脚本(不消耗许可证)提取特定节点/节点集上所有步骤的载荷和位移数据?

时间:2019-11-11 04:46:29

标签: python abaqus

在ABAQUS中,我要提取特定节点/节点集上所有步骤的载荷['RF']和位移['U']值(“字段输出”)(我们称该节点集为“ N100”) )使用python脚本。

我已经通过使用带有会话对象(从ABAQUS CAE会话期间生成的.rpy文件生成)的脚本来做到这一点。我用于执行的命令是“ ABAQUS CAE NOGUI = SCRIPT.py”。它使用ABAQUS CAE时会消耗许可证。

我的条件是,我要提取节点集'N100'上所有步骤的'field output'结果(载荷['RF']和位移['U']) >不消耗许可证。即使用'odbAccess'库。

我在ABAQUS文档中找到了一些与此相关的描述 (http://dsk.ippt.pan.pl/docs/abaqus/v6.13/books/cmd/default.htm?startat=pt05ch09s05.html)。 但是,我找不到适合自己需求的解决方案。ABAQUS文档中提供的脚本仅在最后一步 中提取负载和位移结果, >对于ODB文件中的所有节点。我想提取所有步骤时间(而不仅仅是最后一步)特定节点/节点集上的结果。 (lastFrame = odb.steps ['Step-1']。frames [-1])

ABAQUS文档中提供的脚本有效,无需使用任何许可证。

有人可以指导我吗?

1 个答案:

答案 0 :(得分:0)

以下为所有模拟帧提取所有节点的“ RF”和“ U”。

    part_instance = odb.rootAssembly.instances['PART-1-1']
    for key in keys:
    step = odb.steps[key]
    frameRepository = step.frames
    if len(frameRepository):
        for frame in frameRepository:
            print 'Id = %d, Time = %f\n'%(frame.frameId,frame.frameValue)
            fo = frame.fieldOutputs
            f1 = fo['U']
            f2 = fo['RF2']

现在,您只需要过滤感兴趣的特定节点的f1和f2变量即可。一个简单的print语句来了解f1和f2的结构确实可以为您提供帮助。