首页/文章/ 详情

ABAQUS结果后处理的Python脚本解读

15小时前浏览24
与之前文章一样,分享一个ABAQUS帮助文档案例,简单的介绍如何利用脚本进行结果后处理。同时对脚本各个命令做详细的的解读,原文可以参考帮助文档中的Scripting下面的Reading from an output database查看。
"""
odbExample.py
Script to open an output database, superimpose variables
from the last frame of different steps, and display a contour
plot of the result.
"""


from abaqus import *
from abaqusConstants import *
import visualization

myViewport = session.Viewport(name='Superposition example',
    origin=(1010), width=150, height=100)
myOdb = visualization.openOdb(path='viewer_tutorial.odb')
myViewport.setValues(displayedObject=myOdb)
firstStep = myOdb.steps['Step-1']
secondStep = myOdb.steps['Step-2']

frame1 = firstStep.frames[-1]
frame2 = secondStep.frames[-1]

displacement1 = frame1.fieldOutputs['U']
displacement2 = frame2.fieldOutputs['U']

stress1 = frame1.fieldOutputs['S']
stress2 = frame2.fieldOutputs['S']

deltaDisplacement = displacement2 - displacement1
deltaStress = stress2 - stress1

myViewport.odbDisplay.setDeformedVariable(deltaDisplacement)

myViewport.odbDisplay.setPrimaryVariable(field=deltaStress,
    outputPosition=INTEGRATION_POINT,
    refinement=(INVARIANT, 'Mises'))

myViewport.odbDisplay.display.setValues(plotState=(
                                          CONTOURS_ON_DEF,))

下面是针对代码行的逐一解读

以下语句导入Abaqus核心模块和预定义常量,并启用可视化功能:

from abaqus import*
from abaqusConstants import*
import visualization

创建名为"Superposition example"的新窗口对象:

myViewport = session.Viewport(name='Superposition example')

定义结果文件路径,并在窗口中打开输出的odb文件:

odbPath = 'viewer_tutorial.odb'
myOdb = session.openOdb(path=odbPath)
myViewport.setValues(displayedObject=myOdb)  # 在视口显示默认绘图

获取结果文件中两个分析步的最后一个帧数据:

firstStep = myOdb.steps['Step-1']
secondStep = myOdb.steps['Step-2']
frame1 = firstStep.frames[-1]  # 使用-1获取最后帧
frame2 = secondStep.frames[-1]

提取位移场和应力场数据:

displacement1 = frame1.fieldOutputs['U']
displacement2 = frame2.fieldOutputs['U']
stress1 = frame1.fieldOutputs['S']
stress2 = frame2.fieldOutputs['S']

计算两个步骤的增量值:

deltaDisplacement = displacement2 - displacement1
deltaStress = stress2 - stress1

配置变形显示和应力可视化:

# 设置变形变量
myViewport.odbDisplay.setDeformedVariable(deltaDisplacement)

# 设置主变量为Mises应力
myViewport.odbDisplay.setPrimaryVariable(
    field=deltaStress,
    outputPosition=INTEGRATION_POINT,
    refinement=(INVARIANT, 'Mises')
)
# 启用变形体等值线显示
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,))

特别说明:

  • Python索引规则:0表示第一个元素,-1表示最后一个元素
  • outputPosition=INTEGRATION_POINT 表示取积分点处的结果
  • refinement=(INVARIANT,'Mises') 指定显示Mises应力不变量


来源:CAE仿真空间
AbaqusDeformSTEPSpythonOrigin
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-03-09
最近编辑:15小时前
CAE仿真空间
硕士 |欢迎关注“CAE仿真空间”公众号
获赞 101粉丝 789文章 74课程 3
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈