Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)

2017-04-21  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

Abaqus輸出動(dòng)畫是后處理工作中的一部分,但是Abaqus輸出的常見的動(dòng)畫格式只有AVI。如果需要插入到PPT中,需要第三方軟件轉(zhuǎn)換成GIF格式,如此一來,導(dǎo)出模態(tài)動(dòng)畫需要步驟如下:

Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)abaqus有限元技術(shù)圖片1

  1. Abaqus界面設(shè)置,包括調(diào)整模型視角,viewport窗口調(diào)整,動(dòng)畫參數(shù)設(shè)置等。

  2. 激活動(dòng)畫,輸出AVI格式。

  3. 通過第三方軟件轉(zhuǎn)成GIF,插入PPT中。

  4. 繼續(xù)輸出下一階模態(tài)動(dòng)畫。

如果遇到有多個(gè)工況,模態(tài)階數(shù)數(shù)量又多,那這些看似簡單無腦的操作,變得相當(dāng)?shù)姆爆崯o趣。

這里介紹一種一鍵生成GIF模態(tài)動(dòng)畫的方法,主要省去了轉(zhuǎn)換格式(AVI->GIF)的時(shí)間。甚至可以實(shí)現(xiàn)點(diǎn)擊按鈕,即可自動(dòng)生成多介模態(tài)動(dòng)畫,并自動(dòng)命名。

Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)abaqus有限元技術(shù)圖片2

這個(gè)方法的思路是:用Python語言編寫一段輸出動(dòng)畫的宏,宏里面調(diào)用第三方軟件(ImageMagick)把Abaqus輸出的AVI轉(zhuǎn)換成GIF,并實(shí)現(xiàn)自動(dòng)命名,然后把.py宏包裝植入到Plug-ins菜單中,這樣既可通過自定義工具條添加按鈕來調(diào)用宏。

Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)abaqus有限元技術(shù)圖片3

=====正文=====

首先,需要下載安裝格式轉(zhuǎn)換軟件,這里推薦使用ImageMagick,具體安裝方法自行百度。安裝順利的話會(huì)有如下文件,其中mogrify.exe是我們的宏所需要調(diào)用的程序。

Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)abaqus有限元分析案例圖片4

下面附上完整代碼:

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)

實(shí)用效果如下:

Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)abaqus有限元分析案例圖片5

Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式)abaqus有限元分析案例圖片6


注:文章來源 http://www.jishulink.com/content/post/310604



開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:Abaqus二次開發(fā)一鍵輸出模態(tài)動(dòng)畫(GIF格式) abaqus分析培訓(xùn) abaqus技術(shù)教程 abaqus巖土分析 鋼筋混凝土仿真 abaqus分析理論 abaqus軟件下載 abaqus umat用戶子程序編程 Abaqus代做 Abaqus基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com