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

问题描述

在 ABAQUS 中,我想使用蟒蛇脚本。

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

我的条件是,我想为节点集“N100”上的所有步骤提取“现场输出”结果(负载 ['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 文档中给出的脚本无需使用任何许可证即可工作。

任何人都可以指导我吗?

标签: pythonabaqus

解决方案


以下为所有模拟帧提取所有节点的“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 变量。一个简单的打印语句来理解 f1 和 f2 的结构真的可以帮助你。


推荐阅读