晚上好,
我已经完成了获取模型和生成结果的脚本。我试图用相同的脚本编写一种方法来读取压力的值,但是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)
答案 0 :(得分:2)
您现在正在尝试获取程序集级节点集。但是,您正在定义部件内的节点集。在Odb中,您需要通过实例访问此节点集。
从零件名称中找出实例名称。最有可能的是它只是'PART-1-1'。执行此操作后,请获取以下区域:
regionTen = odb.rootAssembly.instances['instanceName'].nodeSets['Set-1']
您可以在Abaqus中看到这些设置类型之间的区别。实例级节点集具有前缀 - “InstanceName。”。注意实例名称后面的一个点。
答案 1 :(得分:1)
您可以使用以下方式访问程序集中定义的节点集:
odb.rootAssembly.nodeSets.keys()
是的,他们似乎都是大写的。