如何使用Python脚本在abaqus中标识程序集中的节点集名称?

时间:2019-06-19 08:39:54

标签: python abaqus

我正在分析Abaqus中具有各种节点集的模型,我想从中提取不同的数据。

对于每种分析,我一直在手工介绍节点集名称,如果模型中有很多节点集,这可能会很繁琐。

我想知道是否有任何方法可以获取包含所有节点集名称的列表。有可能吗?

我期望的结果示例:

NSETS=['NSET-1',''NSET-2'...]

1 个答案:

答案 0 :(得分:0)

这取决于您是要与模型数据库进行交互还是与输出数据库进行交互以及集合所在的位置。一旦确定了要访问集合字典的位置,就可以使用keys方法来获取集合名称列表。例如,要在程序集中的实例中获取集合名称:

NSETS = mdb.models['Model-1'].rootAssembly.instances['PART-1-1'].sets.keys()

您可以使用相同的方法将设置名称获取到其他位置。在《 Abaqus脚本参考手册》中,有两个相关的部分显示了可以访问集合的位置。第一个是用于访问模型数据库中的集合:

  

Abaqus>脚本参考> Python命令>区域命令>设置对象

import part
mdb.models[name].parts[name].allInternalSets[name]
mdb.models[name].parts[name].allSets[name]
mdb.models[name].parts[name].sets[name]
import assembly
mdb.models[name].rootAssembly.allinstances.sets[name]
mdb.models[name].rootAssembly.allInternalSets[name]
mdb.models[name].rootAssembly.allSets[name]
mdb.models[name].rootAssembly.instances[name].sets[name]
mdb.models[name].rootAssembly.modelInstances[i].sets[name]
mdb.models[name].rootAssembly.sets[name]

对于从输出数据库访问集:

  

Abaqus>脚本参考> Python命令> Odb命令> OdbSet对象

import odbAccess session.odbs[name].parts[name].elementSets[name]
session.odbs[name].parts[name].nodeSets[name]
session.odbs[name].parts[name].surfaces[name]
session.odbs[name].rootAssembly.elementSets[name]
session.odbs[name].rootAssembly.instances[name].elementSets[name]
session.odbs[name].rootAssembly.instances[name].nodeSets[name]
session.odbs[name].rootAssembly.instances[name].surfaces[name]
session.odbs[name].rootAssembly.nodeSets[name]
session.odbs[name].rootAssembly.surfaces[name]
session.odbs[name].steps[name].frames[i].fieldOutputs[name].values[i].instance.elementSets[name]
session.odbs[name].steps[name].frames[i].fieldOutputs[name].values[i].instance.nodeSets[name]
session.odbs[name].steps[name].frames[i].fieldOutputs[name].values[i].instance.surfaces[name]