python进行abaqus后处理的二次开发,我想提取odb文件中的nodeSet,结果总提示Keyerror,请各位大神指教。
语句是从参考书上复制的,结果就是不对,是版本的问题吗?错误语句如下:nodeFace=odb.rootAssembly.instances['SHELL-1'].node...
语句是从参考书上复制的,结果就是不对,是版本的问题吗?错误语句如下:
nodeFace = odb.rootAssembly.instances['SHELL-1'].nodeSets['HOLE'] 展开
nodeFace = odb.rootAssembly.instances['SHELL-1'].nodeSets['HOLE'] 展开
1个回答
展开全部
你可以尝试一下dir
print dir(odb.rootAssembly.instances)
print odb.rootAssembly.instances.keys()
print dir(odb.rootAssembly.instances['SHELL-1'])
print odb.rootAssembly.instances['SHELL-1'].nodeSets.keys()
这样就知道缺少什么了。
很可能是shell-1不存在或者是hole不存在啊。书上的例子需要一个例子对应的计算数据。你没有这个数据文件。
print dir(odb.rootAssembly.instances)
print odb.rootAssembly.instances.keys()
print dir(odb.rootAssembly.instances['SHELL-1'])
print odb.rootAssembly.instances['SHELL-1'].nodeSets.keys()
这样就知道缺少什么了。
很可能是shell-1不存在或者是hole不存在啊。书上的例子需要一个例子对应的计算数据。你没有这个数据文件。
追问
谢谢!那为什么下面程序运行总是0,是不是abaqus语法改了?
center是已定义点集。displacement是定义位移输出
centerDisplacement = displacement.getSubset(region=center)
for v in centerDisplacement.values:
print 'X方向位移:', v.data[0]
追答
抱歉,我对abaqus不熟悉。不过我只是凭感觉给你出可能无用的提示。 如果输出结果为零不合理,那么应该是输入的数据有问题,或者是使用方法有问题。
你试着采用更大的数据量,也许是少了一些条件。我在他们网站上没有找到一个DEMO。如果你能够搜索到。找一个例子试试看。
这种专业软件通常都比较难学。资料少,教程少,文档不一致。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询