
發布
注冊
/
登錄ansys調用的案例
ansys之——將ANSYS作為子程序調用
將ANSYS作為子程序調用
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。
在FORTRAN中不需要判斷,FORTRAN會等ANSYS執行完畢才繼續執行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數,只好加一條循環判斷語句。
如果誰能找著這樣的函數,請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當ANSYS在運行時,file.err是不可寫的,只有當它運行完畢,此文件才可寫。
數據文件(假設輸出的數據文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標函數
out1(2)=1-eymax !
展開 VB調用ANSYS軟件
*主要思想:
VB為ANSYS應用的自動化提供了可視化操作平臺,可用于參數化編程等應用。
其基本原理是,VB通過其內部函數shell()函數實現對Windows應用程序的調用。利用VB向打開的ANSYS程序寫入APDL文件,實現對ANSYS的控制。
對ANSYS調用的具體代碼及注釋:
Option Explicit
‘變量強制定義控制語句
Private Sub Command1_Click()
‘進入Command1_Click()事件過程
Dim aa
‘定義一變量,用來存放shell()函數的返回值,shell帶括號時必須有‘變量存放其返回值,不帶參數是不需要
aa=
Shell("C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ANSYS.exe -b -p ane3fl -i shi.txt -o sh.log", 1)
‘shell函數調用ANSYS的語句,最關鍵語句,詳解見下文
Timer1.Enabled = True
‘使用Timer控件,實現對調用結果的檢測
End Sub
Private Sub Timer1_Timer()
If Dir(App.Path & "\file.err") <> "" Then
‘App.Path為當前目錄路徑,語句功能:如果有file.err文件產生,
‘則說明VB的shell函數對ANSYS的調用成功。
MsgBox ("ANSYS運行完畢!")
展開 將ANSYS作為子程序調用
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。
在FORTRAN中不需要判斷,FORTRAN會等ANSYS執行完畢才繼續執行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數,只好加一條循環判斷語句。
如果誰能找著這樣的函數,請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當ANSYS在運行時,file.err是不可寫的,只有當它運行完畢,此文件才可寫。
數據文件(假設輸出的數據文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標函數
out1(2)=1-eymax !
展開 MatlabGUI界面調用Ansys計算并輸出計算結果
.*'},'File Selector'); strh = [Pnameh,Fnameh];
pathname = Pnameh;
set(handles.text1,'String',strh);
[temp1,temp2] = xlsread(strh);
set(handles.uitable1,'Data',temp1);
% Update handles structure
guidata(hObject, handles);
為了讀取圖示方框中的數據,并用到ANSYS的APDL文件中,需要字符串的讀取和合并,首先需要使用str2num函數把字符串轉換成數值,如果沒有輸入值時,使用缺省值。
將兩個txt合并成test3.mac作為APDL語言開始的參數定義,生成test3.mac之后再使用system函數調用ANSYS的求解器,并讀取test3.mac進行計算
在計算之前,是不能生成圖片的,這時需要設置只有點擊“開始重構”按鈕之后,其他按鈕才可用。
點擊按鈕開始計算之后,會分別輸出兩個名為residualstress.jpg和deformation.jpg的圖片,對應的語句為
/image,save,'E:\GUIRStest\residualstress',jpg
設置當點擊“生成殘余應力云圖”和“生成角變形云圖”時,會讀取圖片的路徑并使用imshow生成圖片。
至此,一個簡易的MatlabGUI界面調用ANSYS計算并輸出圖片就完成了。
展開 
用VC調用ANSYS8.0以上的版本
ANSYS80的調用和ansys57類似:
//VC調用ANSYS的示例程序。
//Test.cpp
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("Solving...");
result=system("執安裝文件路徑名+文件名 -b -p ansysul -i test.txt -o test.out");
printf("Solution finished...");
}
產品特征代碼在ANSYS幫助電子文檔(help>ansys documentation)里可以找到,路徑如下:
ansys8.0 documentation>ansys,Inc. Licensing Guide>License files>Product Variable Table
以該表的第一行為例,如果你的ANSYS是multiphysics版本,那么對應的產品特征代碼為ane3fl,則:
result=system("安裝文件路徑名+文件名 -b -p ane3fll -i test.txt -o test.out");
這里一定要注意VC執行文件路徑寫法:
第一種:
"C:\\Program Files\\Ansys Inc\\v80\\ANSYS\\BIN\\INTEL\\ANSYS80.exe"
"C:\\ANSYS80.exe"
但是這樣還不可以
我把原文件考到C:\目錄下,然后C:\\ANSYS80.exe。
展開 Matlab調用ANSYS進行參數優化
使用Maltab中的system函數,實現Matlab與Ansys的交互,即可實現相同模型計算數千遍并輸出數據。
MATLAB調用ANSYS進行有限元分析步驟如下:
MATLAB生成數據,并以科學計數法的形式寫出到一個txt文件input.txt中;
編寫ansys的APDL程序,在MATLAB環境下使用函數"system"調用APDL程序,ANSYS以batch方式運行進行分析求解,并輸出想要分析的結果,寫出到一個txt文件output.txt
MATLAB調用output.txt,進行數據分析。
展開 用Visual C調用ansys后臺運行求解并實時顯示計算進度和結果(附源程序)
思路:
(1)首先在VC里根據文本框等控件生成參數文件,和ANSYS主計算程序合并生成ANSYS_RUN.mac,在ANSYS_RUN.mac最后加上用來生成flag.txt文件(內容為0)的APDL代碼. 隨后在VC里用WinEXEC運行ANSYS batch mode 去調用ANSYS_RUN.mac,并且把屏幕輸出到output.txt。同時,建立flag.txt文件(內容為1).
(2)在VC里開一個線程, 循環讀flag.txt,看其是否為1(運行)或0(結束)。如果是1,則讀output.txt內容,顯示在主程序狀態文本框里。(當然也可以讀err文件來判斷)。
(3)ANSYS_RUN.mac 里有生成plots并保存為jpg文件的APDL代碼。當ANSYS運行結束后,在主程序里可以browse結果圖像文件。
ANSYS主計算程序: VM28.mac. 這是ANSYS的一個例子程序,但是做了一些改動,計算在Time_Start 到Time_End之間,步長為Time_interval的溫度分布。
VM28:Transient Heat Transfer in an Infinite Slab。
在VC程序里,
ANSYS EXE File是ANSYS的執行文件的路徑名。
MAC Batch File 是ANSYS主計算程序的路徑名。
Working Folder是工作路徑,用來存放結果文件和中間過程文件。
Note: how to export image in batch mode:
因為在batch mode, 沒有graphic window,所以一般的圖形輸出命令無效。但是可以使用/show,jpeg命令。另外,可以用以下命令
!
展開 分享 fortran調用ansys做桁架結構優化例子
調用ANSYS做結構分析
result=SYSTEMQQ('C:\Ansys81\v81\ANSYS\bin\intel\ANSYS81 -b -p &
& ane3fl -i E:\ANSYSOBJECT\truss.txt -o E:\ANSYSOBJECT\trussanswer.txt')
fileid=10
open(fileid,file=filename1) !從ansys寫出的文件中讀入數據(應力和求得的重量)
read(fileid,*) sig1,sig2,W
close(fileid)
ww(k)=w
u1(i)=sig1/xu
u2(i)=sig2/xu
if ( u1(i)>=u2(i) ) then !判斷最大應力
umax=u1(i)
else
umax=u2(i)
end if
!射線步
x1(i+1)=umax*x1(i)
x2(i+1)=umax*x2(i)
u1(i+1)=u1(i)/umax !求出新的應力比
u2(i+1)=u2(i)/umax
!調整步
x1(i+2)=u1(i+1)*x1(i+1)
x2(i+2)=u2(i+1)*x2(i+1)
xx1=x1(i+2)/(500.0*1.414)
xx2=x2(i+2)/(500.0*1.414)
fileid=20
open(fileid,file=filename2) !
展開 基于VB的ANSYS二次開發之孔板靜力、溫度場分析實例 ¥29.9
其基本調用方法如下:
X = Shell("D:\ANSYS Inc\v160\ansys\bin\winx64\ANSYS160.exe -b -p ansys -i VB_ANSYS.inp -o file.out")
Timer1.Enabled = True
其中“D:\ANSYS Inc\v160\ansys\bin\winx64 ”為ANSYS 軟件的運行路徑;“ansys160.exe”中的160 表示ANSYS 的版本代號;“-b -p ”為特殊字符,表示對ANSYS 進行后臺調用,即在整個調用ANSYS 時,不出現它的運行界面,只小窗體顯示其在運行計算中;“ane3fl”為產品特征代碼,不同的ANSYS 版本也不相同,“-i VB_ANSYS.inp”表示要輸入的命令流文件及存放位置;“-o file.out”表示輸出的結果文件的文件名及存放位置。
3、時間函數
為了使研究者能夠清晰地知道優化分析完成的時間,通常需要設定一個時間控件設計器,來輔助完成上述功能。基本表現為:Timer 控件開始的Enable 屬性設置為False,Interval 屬性設為3000。調用ANSYS 完畢后(即ANSYS 運算結束后),Timer 控件被激活,彈出“ANSYS 運算完畢!”的對話框。則整個調用運行代碼如下:
Private Sub Timer1_Timer()
If Dir(App.Path & "\file.err") <> "" Then
其中App.Path為當前目錄路徑,語句功能:如果有file.err文件產生,則說明VB的shell函數對ANSYS的調用成功。
MsgBox ("ANSYS運行完畢!")
展開 ANSYS基于VC++6.0的二次開發ANSYS基于VC++6.0的二次開發與 相互作用分析在ANSYS中的實
(2) 程序實現
基于上面分析,本程序是通過接口程序調用ANSYS,讀入編寫的后處理命令流,讀取ANSYS計算的結果數據庫,生成各變量的結果文件,然后用本程序的后處理模塊進行讀數繪圖處理,進而生成結果圖形。這一過程采用VC編程實現的,VC編程的算法流程圖如圖3-2的后處理模塊。(
ansys與VC++/Fortran程序的接口資料將ANSYS作為子程序調用
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。
在ANSYS中當然也可以以VC或FORTRAN作為子程序調用。可以參看有關ANSYS二次開發方面的資料。
這個方法應該是與系統無關的。
在FORTRAN中不需要判斷,FORTRAN會等ANSYS執行完畢才繼續執行下一條語句。
展開 雙梁橋式起重機箱形偏軌主梁CAE設計方法
3 VB調用ANSYS軟件技術的實現
文中采用ANSYS的參數化設計語言APDL來實現ANSYS的二次開發。APDL是一種解釋性語言, 可以用來自動完成一些通用性強的任務[6]。VB調用ANSYS步驟中最重要的一步就是建立APDL文本文件,文件中用命令流進行導入有限元模型并求解,然后顯示變形并將結果輸出為圖形文件。所用到的命令流指令主要如下。
/CLEAR,該命令用于清空數據庫文件,方便開始后續的新工作。
/Filename, 用于命名工作文件。
/INPUT,指令后面寫入有限元文件的名稱和文件位置 ,該指令中,INPUT用于導入雙梁箱形偏軌主梁的有限元模型,文中模型名稱命名為Analysis1.ans, 該模型的文件位置一般設置為電腦桌面,方便存儲和查找。
/SOLU,SOLU的作用為訪問求解器。
/SOLVE,此處作用為開始對雙梁箱形偏軌主梁進行求解運算。
/POST,求解結束后,需要對求解結果進行查看,POST指令用于訪問后處理器。
/VIEW,1,1,1,1,VIEW命令的作用是查看模型求解結果時設置觀察視角。
/REPLOT,該指令表示刷新當前界面,當添加了新指令后,為保證ANSYS軟件的確完成了后臺處理,往往通過刷新來重新顯示操作界面。
PLNSOL,S,EQV,0,1.0,PLNSOL指令用于以等值線和云圖的形式來顯示各節點處的計算結果,此處“S,EQV”表示所使用的應力為Von Mises應力,即米塞斯應力。
/show, jpeg, ,0,show命令表示在操作界面顯示求解結果圖。
建立完APDL文本文件,然后利用Shell函數調用ANSYS求解。Shell函數是VB常用的調用外部程序的一種窗口函數。調用ANSYS的主要代碼如下。
展開 
Ansys Workbench中調用Mechanical python腳本的方法及注意事項 ¥19
通過在 Ansys Workbench 腳本中插入 SendCommand 調用,可驅動數據集成應用程序。但數據集成應用程序不一定會將操作記錄到 Ansys Workbench 日志中。大多數支持腳本編程的數據集成應用程序都有獨立的日志,用于記錄原生命令。
3 Ansys Workbench與Mechanical通信
ANSYS Mechanical也支持Python腳本進行二次開發,部分腳本也可以通過錄制的方式進行記錄(Automation->Scripting)。但該腳本只能在Mechanical界面環境下執行,也沒有對應的批處理運行命令(如有歡迎留言),無法在Ansys Workbench項目層面實現聯合自動化。
在Ansys Workbench中可以通過SendCommand方法運行ANSYS Mechanical中的python腳本。該方法主要包括Language及Command兩個參數。
展開 專業系統 | 海洋風機基礎平臺結構分析軟件
導管架模態結果
模態分析:在模態分析設置基礎上直接調用ANSYS完成模態分析整個流程。
疲勞分析設置:可添加波浪序列、風機循環載荷、材料S-N曲線、應力集中系數等參數設置。
疲勞分析:在疲勞分析設置基礎上直接調用ANSYS完成疲勞分析整個流程。
地震譜設置:導入時間序列或者頻域譜值,輸入譜類型可涵蓋位移譜、速度譜、加速度譜和力譜,振型組合方法包括SRSS、CQC和ROSE,可設置阻尼比、alpha阻尼和 beta阻尼。
地震譜分析:在地震譜設置基礎上直接調用ANSYS完成地震譜分析整個流程。
系統優勢
強大的功能
涵蓋靜力學分析、模態分析、疲勞分析和地震譜分析。
多種平臺結構、涵蓋單樁、水下多樁、水上三樁、高樁承臺和導管架。
多種載荷加載,包括活載荷、風載荷、水流載荷、波浪載荷和風機載荷。
直接調用ANSYS求解器,內置各種分析的先進算法。
結果后處理
靜力學分析結果包括各方向的位移分布和應力分布。
模態分析提供各階模態的各方向示意圖。
靜力校核涵蓋水平位移、沉降和應力評估,其中應力分桿件和樁,分別適用規范的對應部分。
疲勞分析輸出不同位置的疲勞損傷。
地震譜分析結果包括譜響應應力、位移響應、速度響應和加速度響應。
報告模板可直接生成包含最新結果的報告。
展開 基于MATLAB 與ANSYS 的結構優化設計
2.1 MATLAB 與ANSYS 數據傳遞
若要實現MATLAB 對ANSYS 的調用,首先要能實現MATLAB 與ANSYS 的數據傳遞,而二者都有很強的文件操作功能,這使數據傳遞的實現成為可能。MATLAB 在調用ANSYS 時的數據流向如圖1。
MATLAB 打開并讀、寫數據文件的基本步驟如下:
fid = fopen( 'mta. txt', 'w + ')
fprintf( fid, format,dv ) /obj = fscanf ( fid, format)
fclose( fid)
其中, 'w + '表示以讀寫方式打開文件; dv 為設計變量; obj 為目標函數; format 表示以某種格式讀寫數據,與C 語言相同。
ANSYS 打開并讀、寫數據文件的基本步驟如下:
讀取數據
* dim,dv,arrary,n
* vread,dv( 1) ,mta, txt,, ijk,n
( format)
其中,n 為設計變量個數; format 為以某種格式讀取數據,與FORTRAN 語言相同。
打開并寫入數據到數據文件
* cfopen,atm, txt
* vwrite,obj
( format)
* cfclose
2. 2 MATLAB 調用ANSYS
ANSYS 程序提供了batch ( 批處理) 運行方式,可以在不打開ANSYS 程序界面的情況下后臺運行計算,并輸出結果,這使得在其他程序中調用ANSYS 成為可能。
展開 ansys與其他軟件接口資料匯總!!
連桿的有限元模型圖
步驟二:在ADAMS中生成ANSYS所需的載荷文件
在ADAMS中建立活塞、曲柄的模型,讀入模態中性文件flex.mnf,指定好柔性體(連桿)與活塞,曲柄的連結方式,即可進行運動學仿真分析,在分析完成后輸出ANSYS所需要的載荷文件flex.lod。分析得到的結果動畫如下:
步驟3:在ANSYS中進行強度分析
在ANSYS中恢復連桿的數據庫文件,選擇所有節點,輸入載荷文件flex.lod中相應時刻的載荷,可得到連桿中相應時刻的應力應變分布。
連桿中的Mises等效應力圖
關于ansys與VC++/Fortran程序的接口資料!將ANSYS作為子程序調用
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。
在ANSYS中當然也可以以VC或FORTRAN作為子程序調用。
展開