Abaqus二次开发一键输出模态动画(GIF格式)
2017-04-21 by:CAE仿真在线 来源:互联网
Abaqus输出动画是后处理工作中的一部分,但是Abaqus输出的常见的动画格式只有AVI。如果需要插入到PPT中,需要第三方软件转换成GIF格式,如此一来,导出模态动画需要步骤如下:
-
Abaqus界面设置,包括调整模型视角,viewport窗口调整,动画参数设置等。
-
激活动画,输出AVI格式。
-
通过第三方软件转成GIF,插入PPT中。
-
继续输出下一阶模态动画。
如果遇到有多个工况,模态阶数数量又多,那这些看似简单无脑的操作,变得相当的繁琐无趣。
这里介绍一种一键生成GIF模态动画的方法,主要省去了转换格式(AVI->GIF)的时间。甚至可以实现点击按钮,即可自动生成多介模态动画,并自动命名。
这个方法的思路是:用Python语言编写一段输出动画的宏,宏里面调用第三方软件(ImageMagick)把Abaqus输出的AVI转换成GIF,并实现自动命名,然后把.py宏包装植入到Plug-ins菜单中,这样既可通过自定义工具条添加按钮来调用宏。
=====正文=====
首先,需要下载安装格式转换软件,这里推荐使用ImageMagick,具体安装方法自行百度。安装顺利的话会有如下文件,其中mogrify.exe是我们的宏所需要调用的程序。
下面附上完整代码:
from abaqus import *
from abaqusConstants import *
from viewerModules import *
import animation
import subprocess, os
convertToGIF = ' '.join(('"E:\ConverToGif\\mogrify.exe"',
'-format gif',
'"%1"',))
def Single_Mode():
vp = session.viewports[session.currentViewportName]
odb = vp.displayedObject
display = vp.odbDisplay
frame_index = display.fieldFrame[1]
i=frame_index
for step in odb.steps.values():
if step.domain == MODAL:
frames = tuple(step.frames)[0:]
t=frames[i]
session.animationController.setValues(animationType=SCALE_FACTOR, viewports= (session.currentViewportName,),)
session.animationController.play(duration=UNLIMITED)
file_name = 'Mode_%i_%.0fHz.avi'%(t.mode,t.frequency)
session.writeImageAnimation(fileName=file_name, format=AVI,
canvasObjects=(vp, ))
session.animationController.setValues(animationType=NONE)
p = subprocess.Popen(convertToGIF.replace('%1',file_name), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
if not p.wait() :
print 'Animation mode %i successfully saved.'%i
else:
print 'Error during animation mode %i.'%i
print p.communicate()
os.remove(file_name)
实用效果如下:
注:文章来源 http://www.jishulink.com/content/post/310604
相关标签搜索:Abaqus二次开发一键输出模态动画(GIF格式) abaqus分析培训 abaqus技术教程 abaqus岩土分析 钢筋混凝土仿真 abaqus分析理论 abaqus软件下载 abaqus umat用户子程序编程 Abaqus代做 Abaqus基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训