Abaqus二次开发:一键输出模态动画(GIF格式)教程

=====前言=====

Abaqus输出动画是后处理工作中的一部分,但是Abaqus输出的常见的动画格式只有AVI。如果需要插入到PPT中,需要第三方软件转换成GIF格式,如此一来,导出模态动画需要步骤如下:

屏幕快照 2017-02-09 下午8.13.07.png

  1. Abaqus界面设置,包括调整模型视角,viewport窗口调整,动画参数设置等。
  2. 激活动画,输出AVI格式。
  3. 通过第三方软件转成GIF,插入PPT中。
  4. 继续输出下一阶模态动画。

如果遇到有多个工况,模态阶数数量又多,那这些看似简单无脑的操作,变得相当的繁琐无趣。

这里介绍一种一键生成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)


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空