找回密码
 注册
Simdroid-非首页
查看: 70|回复: 4

[二次开发] 请高手帮忙显示两个分析步结束后的应力差--急急急--谢谢

[复制链接]
发表于 2013-3-4 11:42:19 | 显示全部楼层 |阅读模式 来自 陕西西安
悬赏1仿真币未解决
我想把ODB文件里的两个分析步结束后的应力值相减,然后再显示出来,代码如下,但是运行提示第22行有误,改行为:
newField.addData(position=INTEGRATION_POINT,data=deltaDisp)
其实我需要的事MISES应力差。
我刚学二次开发,不知道该怎么修改,请高手帮忙解答,谢谢

#!/user/bin/python
# -* - coding:UTF-8 -*-
# 本实例将计算两个场变量,并将计算结果添加到输出数据库中。
file_path='D://ABAQUS/dalunwen/Job-pdie14_Thermal_2.odb'
from odbAccess import *
#odb = openOdb(path='fieldOperation.odb')
odb = openOdb(path=file_path)
# 从输出数据库中提取场变量计算结果。
field1 = odb.steps['Step-pressure0_9'].frames[1].fieldOutputs['S']
field2 = odb.steps['Step-T180'].frames[1].fieldOutputs['S']
# 对提取的计算结果求差运算S
deltaDisp = field2 - field1
# 保存为新的场变量,并创建对应的分析步和帧。
newStep = odb.Step(name='user7', description='user defined results',
    domain= TIME, timePeriod=0)
newFrame = newStep.Frame(incrementNumber=0, frameValue=0.0)
newField = newFrame.FieldOutput(name='S', description='display_desc', type=TENSOR_3D_PLANAR,
componentLabels=("S11","S22","S33","S12"),validInvariants=(MISES,))
newField.addData(position=INTEGRATION_POINT,data=deltaDisp)
newStep.setDefaultDeformedField(newField)
print 'The data has been created'
odb.save()
odb.close()


 楼主| 发表于 2013-3-4 11:43:14 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
不好意思,初次发这个“悬赏”的帖子,忘了修改悬赏额了,抱歉
回复

使用道具 举报

发表于 2013-3-4 13:49:00 | 显示全部楼层 来自 江苏镇江
顶起  我也在自学
回复

使用道具 举报

发表于 2013-3-7 21:36:04 | 显示全部楼层 来自 江苏镇江
怎么没人回答啊  好难哦对我来讲
回复

使用道具 举报

发表于 2013-3-8 08:52:02 | 显示全部楼层 来自 德国
from odbAccess import *
# 本实例将计算两个场变量,并将计算结果添加到输出数据库中。
#file_path='D://ABAQUS/dalunwen/Job-pdie14_Thermal_2.odb'
file_path='Job-1.odb'
odb = openOdb(path=file_path, readOnly=False)
# 从输出数据库中提取场变量计算结果。
field1 = odb.steps['Step-1'].frames[1].fieldOutputs['S']
field2 = odb.steps['Step-2'].frames[1].fieldOutputs['S']
# 对提取的计算结果求差运算S
df = field2 - field1
# 保存为新的场变量,并创建对应的分析步和帧。
newStep_name = 'user' + str(len(odb.steps))
newStep = odb.Step(name=newStep_name, description='user defined results', domain= TIME, timePeriod=0)
newFrame = newStep.Frame(incrementNumber=0, frameValue=0.0)
newField = newFrame.FieldOutput(field=df, name='S')
print 'The data has been created'
odb.save()
odb.close()
odb = openOdb(path=file_path, readOnly=False)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-18 06:32 , Processed in 0.028462 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表