晚上好,

我已经完成了获取模型并生成结果的脚本。我试图在同一脚本中编写一种读取压力值的方法,但是python说:

" File "C:/Users/TFG", line 250, in <module>     RegionTen=odb.rootAssembly.noseSets['Set-1']  KeyError: Set-1 "


我知道Set-1不会退出,但这不是事实。我希望有人能帮助我。

我创建Set-1:



mdb.models['Model-1'].parts['Part-1'].Set(faces= mdb.models['Model-1'].parts['Part-1'].faces.getSequenceFromMask(('[#1 ]', ), ), name='Set-1')




我的阅读压力的代码是:



odb = openOdb( path='C:\Temp\Job-1.odb')

RegionTen = odb.rootAssembly.nodeSets['Set-1']
tamFrames = len(odb.steps['Step-1'].frames)
lastFrames = odb.steps['Step-1'].frames[tamFrames-1]

stress33 = lastFrame.fieldOutputs['S'].getSubset(position=ELEMENT_NODAL,      region=RegionTen)
stress13 = lastFrame.fieldOutputs['CTSHR13'].getSubset(position=ELEMENT_NODAL,  region=RegionTen)
stress23 = lastFrame.fieldOutputs['CTSHR23'].getSubset(position=ELEMENT_NODAL, region=RegionTen)

print(stress11, stress22, stress12)

最佳答案

您现在正在尝试获取程序集级节点集。但是,您正在定义零件内部的节点集。在Odb内部,您需要通过实例访问此节点集。

从零件名称中找出实例名称。很有可能只是“ PART-1-1”。完成此操作后,获得如下所示的区域:

regionTen = odb.rootAssembly.instances['instanceName'].nodeSets['Set-1']


您可以在Abaqus中看到这些集合类型之间的区别。实例级节点集的前缀为“ InstanceName”。注意实例名称后面有一个点。

10-06 12:29