
發(fā)布
注冊
/
登錄ansys if語句的案例
新年第一更:CAE Converter大改進(jìn)!Simright 2018.2.23更新
CAE Converter (在線CAD模型轉(zhuǎn)換軟件)
1.改進(jìn): 支持Ansys中*SET語句。
2.改進(jìn): 改進(jìn)Abaqus模型轉(zhuǎn)換速度。
3.修復(fù): 解決轉(zhuǎn)換大模型內(nèi)存不足的問題。
4.修復(fù):Abaqus模型包含未定義的ELSET造成的錯誤。
5.修復(fù):Nastran自由格式中續(xù)行以逗號開頭造成的問題。
6.修復(fù):Ansys中引用*DIM定義的Table造成的錯誤。
⊙還有更多新功能等您來體驗,歡迎大家留言給我們提出寶貴建議
⊙歡迎加入Simright QQ群:576512506
⊙點擊閱讀原文可享受Simright的全新體驗。
近期熱門:
年前最后一更:多項改進(jìn)及修復(fù)!Simright 2018.2.9更新
模型樹支持多選part功能!Simright 2018.2.2更新
中國CAE走出國門,邁向世界_全球知名門戶engineering.com對Simright采訪報道
3分鐘用仿真為機(jī)械鍵盤降低成本 無需安裝軟件
重磅!Simright與Onshape合作提供基于Web的CAD/CAE集成解決方案
Simright
CAE云仿真在線平臺,無需安裝軟件,可在線進(jìn)行CAE格式轉(zhuǎn)換,模型預(yù)覽,仿真計算及拓?fù)鋬?yōu)化等功能。
展開 基于VB的ANSYS二次開發(fā)之孔板靜力、溫度場分析實例 ¥29.9
用戶開發(fā)界面
用戶界面的設(shè)計既要考慮到操作者友好的操作,也要保證為 ANSYS 提供有效的計算參數(shù)。在本例中,為了實現(xiàn)孔板的參數(shù)化分析, 選用孔板的有限元分析參數(shù)作為輸入的內(nèi)容,同時操作者還必須按工程要求輸入相應(yīng)的材料參數(shù)信息。
VB與ANSYS之間的數(shù)據(jù)交互
1、利用ANSYS生成命令流的方法
利用VB 生成命令流的方法利用VB 對ANSYS進(jìn)行二次開發(fā),其基本原理就是利用VB 語言提供的OPEN 函數(shù)打開和建立一個ANSYS 的命令流文件,在流文件中寫入相應(yīng)的APDL 語句;然后,利用VB 程序來調(diào)用ANSYS 時將命令流文件讀入,運行出用戶需要的結(jié)果。生成命令流的程序代碼可以用下面的VB 程序來實現(xiàn)。
Open "VB_ANSYS.inp" For Output As #1............. .............(1)
Print #1, "/CLEAR"..........................................(2)
程序中第一條語句的作用是新建一個名稱為"VB_ANSYS.inp"宏文件;第二條語句的作用是在上述建立的宏文件中寫入APDL 命令流語句/ CLEAR (當(dāng)ANSYS 讀入該語句時,清空以前的數(shù)據(jù),開始一個新的分析)。
2、VB對ANSYS的調(diào)用
在宏文件生成后,需要在VB 中調(diào)用ANSYS 進(jìn)行處理。目前,雖然調(diào)用方法有很多種,但是常采用shell 函數(shù)的方法。
展開 VB調(diào)用ANSYS軟件
*主要思想:
VB為ANSYS應(yīng)用的自動化提供了可視化操作平臺,可用于參數(shù)化編程等應(yīng)用。
其基本原理是,VB通過其內(nèi)部函數(shù)shell()函數(shù)實現(xiàn)對Windows應(yīng)用程序的調(diào)用。利用VB向打開的ANSYS程序?qū)懭階PDL文件,實現(xiàn)對ANSYS的控制。
對ANSYS調(diào)用的具體代碼及注釋:
Option Explicit
‘變量強(qiáng)制定義控制語句
Private Sub Command1_Click()
‘進(jìn)入Command1_Click()事件過程
Dim aa
‘定義一變量,用來存放shell()函數(shù)的返回值,shell帶括號時必須有‘變量存放其返回值,不帶參數(shù)是不需要
aa=
Shell("C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ANSYS.exe -b -p ane3fl -i shi.txt -o sh.log", 1)
‘shell函數(shù)調(diào)用ANSYS的語句,最關(guān)鍵語句,詳解見下文
Timer1.Enabled = True
‘使用Timer控件,實現(xiàn)對調(diào)用結(jié)果的檢測
End Sub
Private Sub Timer1_Timer()
If Dir(App.Path & "\file.err") <> "" Then
‘App.Path為當(dāng)前目錄路徑,語句功能:如果有file.err文件產(chǎn)生,
‘則說明VB的shell函數(shù)對ANSYS的調(diào)用成功。
MsgBox ("ANSYS運行完畢!")
展開 ANSYS 查詢函數(shù)(Inquiry Function)(很有用)
ANSYS 查詢函數(shù)(Inquiry Function)
資料來源:www.iccae.com
在ANSYS操作過程或條件語句中,常常需要知道有關(guān)模型的許多參數(shù)值,如選擇集中的單元數(shù)、節(jié)點數(shù),最大節(jié)點號等。此時,一般可通過*GET命令來獲得這些參數(shù)。現(xiàn)在,對于此類問題,我們有了一個更為方便的選擇,那就是查詢函數(shù) — Inquiry Function。
Inquiry Function類似于ANSYS的 *GET 命令,它訪問ANSYS數(shù)據(jù)庫并返回要查詢的數(shù)值,方便后續(xù)使用。ANSYS每執(zhí)行一次查詢函數(shù),便查詢一次數(shù)據(jù)庫,并用查詢值替代該查詢函數(shù)。
假如你想獲得當(dāng)前所選擇的單元數(shù),并把它作為*DO循環(huán)的上界。傳統(tǒng)的方法是使用*GET命令來獲得所選擇的單元數(shù)并把它賦給一個變量,則此變量可以作為*DO循環(huán)的上界來確定循環(huán)的次數(shù)
*get, ELMAX,elem,,count
*do, I, 1, ELMAX
…
…
*enddo
現(xiàn)在你可以使用查詢函數(shù)來完成這件事,把查詢函數(shù)直接放在*DO循環(huán)內(nèi),它就可以提供所選擇的單元數(shù)
*do, I, ELMIQR(0,13)
…
…
*enddo
這里的ELMIQR并不是一個數(shù)組,而是一個查詢函數(shù),它返回的是現(xiàn)在所選擇的單元數(shù)。括弧內(nèi)的數(shù)是用來確定查詢函數(shù)的返回值的。第一個數(shù)是用來標(biāo)識你所想查詢的特定實體(如單元、節(jié)點、線、面號等等),括弧內(nèi)的第二個數(shù)是用來確定查詢函數(shù)返回值的類型的(如選擇狀態(tài)、實體數(shù)量等)。
同本例一樣,通常查詢函數(shù)有兩個變量,但也有一些查詢函數(shù)只有一個變量,而有的卻有三個變量。
展開 
利用VB生成APDL文件和Python文件的方法
2 方法
2.1 VB與APDL
事先編寫好的文件為ansys.txt,其格式如圖3所示,這些APDL命令不能直接嵌入VB進(jìn)行使用,而是需要進(jìn)行一定的轉(zhuǎn)換,轉(zhuǎn)換完成后可以嵌入VB程序里面,再由VB程序生成批處理文件,用于ANSYS執(zhí)行有限元分析過程。
圖3 APDL文件格式
在VB里面的語句格式如圖4所示。
圖4 VB里面的APDL語句
對比圖3和圖4,可知兩者相差的語句部分為PrintLines(input,),因此只需在APDL語句補(bǔ)上該部分即可,為此編寫一些語句實現(xiàn)這個添加功能。語句如圖5所示,通過VB打開并讀取ansys.txt文件,再通過固定的輸出格式輸出添加語句后的文件,最終得到如圖6所示的VB_ansys.txt文件。
圖5 語句添加代碼
圖6 添加后的輸出文件
VB_ansys.txt文件中的語句即可直接嵌入到VB里面。
2.2 VB與Python
雖然Python腳本文件格式與APDL文件格式不一樣,但是將Python腳本文件處理成VB可以直接用來嵌入的語言格式的方法完全一樣。如圖7和圖8所示,分別是處理前和處理后的文件格式。
圖7 Python文件
圖8添加后的輸出文件
展開 基于MATLAB 與ANSYS 的結(jié)構(gòu)優(yōu)化設(shè)計
打開并寫入數(shù)據(jù)到數(shù)據(jù)文件
* cfopen,atm, txt
* vwrite,obj
( format)
* cfclose
2. 2 MATLAB 調(diào)用ANSYS
ANSYS 程序提供了batch ( 批處理) 運行方式,可以在不打開ANSYS 程序界面的情況下后臺運行計算,并輸出結(jié)果,這使得在其他程序中調(diào)用ANSYS 成為可能。MATLAB 調(diào)用ANSYS 的語句如下:
system( 'D: \Ansys \v100 \ANSYS \ bin \ intel \ ansys100- b - p ansys - product - feature - i input file - o out file. bat')
其中各參數(shù)說明如下:
- b batch 為運行模式;
- p 為產(chǎn)品代碼( 可以在ANSYS 的幫助文件里找到) ;
- i 為輸入文件( ANSYS 分析文件) ;
- o 為輸出文件。
此外,在調(diào)用ANSYS 時還可以輸入以下控制參數(shù):
- j 為工程名稱;
- m 為內(nèi)存大小;
- db 為數(shù)據(jù)庫打下。
3 結(jié)構(gòu)優(yōu)化算例
以一3 層4 跨平面鋼框架結(jié)構(gòu)為例,如圖2。
為了減少設(shè)計變量個數(shù),各層梁的尺寸( bb × bh)均相同,梁寬bb 的變化范圍為0. 1 ~ 0. 3 m,梁高的變化范圍為0. 2 ~ 0. 4 m,各層柱均為方柱( cb ×cb) ,柱寬的變化范圍為0. 2 ~ 0. 5 m。初始截面尺寸為bb = 0. 2 m、bh = 0. 3 m、cb = 0. 3 m。頂層承受200 kN 的均布荷載,其余各層均承受100 kN的均布荷載。材料彈性模量為210 GPa,拉壓許用應(yīng)力均為235 MPa。用混合遺傳算法優(yōu)化該結(jié)構(gòu),使其所用鋼材的體積最小。
展開 將ANSYS作為子程序調(diào)用
對于優(yōu)化或參數(shù)化設(shè)計,可以在VC或FORTRAN中將ANSYS作為子程序調(diào)用。具體調(diào)用方法如下:
1.在VC中調(diào)用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調(diào)用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產(chǎn)品特征代碼。
需要注意的是,在VC中調(diào)用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經(jīng)執(zhí)行完畢。
在FORTRAN中不需要判斷,F(xiàn)ORTRAN會等ANSYS執(zhí)行完畢才繼續(xù)執(zhí)行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數(shù),只好加一條循環(huán)判斷語句。
如果誰能找著這樣的函數(shù),請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當(dāng)ANSYS在運行時,file.err是不可寫的,只有當(dāng)它運行完畢,此文件才可寫。
數(shù)據(jù)文件(假設(shè)輸出的數(shù)據(jù)文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標(biāo)函數(shù)
out1(2)=1-eymax !
展開 ansys之——將ANSYS作為子程序調(diào)用
將ANSYS作為子程序調(diào)用
對于優(yōu)化或參數(shù)化設(shè)計,可以在VC或FORTRAN中將ANSYS作為子程序調(diào)用。具體調(diào)用方法如下:
1.在VC中調(diào)用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調(diào)用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產(chǎn)品特征代碼。
需要注意的是,在VC中調(diào)用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經(jīng)執(zhí)行完畢。
在FORTRAN中不需要判斷,F(xiàn)ORTRAN會等ANSYS執(zhí)行完畢才繼續(xù)執(zhí)行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數(shù),只好加一條循環(huán)判斷語句。
如果誰能找著這樣的函數(shù),請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當(dāng)ANSYS在運行時,file.err是不可寫的,只有當(dāng)它運行完畢,此文件才可寫。
數(shù)據(jù)文件(假設(shè)輸出的數(shù)據(jù)文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標(biāo)函數(shù)
out1(2)=1-eymax !
展開 ANSYS后處理操作技巧與各類問題良心大總結(jié)。
所存文件即在進(jìn)入Ansys時設(shè)的工作目錄下。在Ansys圖形輸出窗口中,顯示各種有用圖形,需要儲存并輸出時,均可以該方式存為.bmp文件,以備用。
不知道大家對這個網(wǎng)格顯示滿不滿意,單元的顯示用藍(lán)色,背景白色!其實是很簡單的:
/color,wbak,whit
/color,elem,whit
/color,outl,blue
看一看/color命令,你可是設(shè)置自己想要得效果
23.ASBW, NA, SEPO, KEEP
Subtracts the intersection of the working plane from areas (divides areas).
SEPO — The resulting areas will have separate, but coincident line(s).
創(chuàng)建接觸時可考慮使用
24.如何在程序“外部”修改Ansys建模語句中的參數(shù)
如果對已做好的模型再增加僅僅幾條語句來修改某些參數(shù),例如用UIMP,1,****修改材料1的參數(shù),可否在程序外部實現(xiàn)?!
打開 log 文件或在 File 菜單下執(zhí)行 write DB log file,將建模過程寫成命令流。然后在該文件中進(jìn)行修改就是了。不過需要你對 ANSYS 的命令有一些了解才行。學(xué)吧!
得到*lgt文件,改為*log文件即可修改操作
25.ANSYS在模擬錨桿支護(hù)巖體問題中,是不是要涉及到接觸問題,目標(biāo)面和接觸面又是怎么確定的呢?請問:錨桿預(yù)應(yīng)力如何施加?
如果你想研究錨桿的具體受力情況的話,那就要考慮接觸,如果你只是泛泛的研究整個結(jié)構(gòu)的力學(xué)行為的話就沒必要考慮接觸??紤]接觸的話ansys有自帶施加接觸工具欄,
26.隧道開挖模擬方法
小弟正在做一個大跨度隧道的施工模擬。
展開 ANSYS接觸和出圖技巧
所存文件即在進(jìn)入Ansys時設(shè)的工作目錄下。在Ansys圖形輸出窗口中,顯示各種有用圖形,需要儲存并輸出時,均可以該方式存為.bmp文件,以備用。
不知道大家對這個網(wǎng)格顯示滿不滿意,單元的顯示用藍(lán)色,背景白色!其實是很簡單的:
/color,wbak,whit
/color,elem,whit
/color,outl,blue
看一看/color命令,你可是設(shè)置自己想要得效果
23.ASBW, NA, SEPO, KEEP
Subtracts the intersection of the working plane from areas (divides areas).
SEPO - The resulting areas will have separate, but coincident line(s).
創(chuàng)建接觸時可考慮使用
24.如何在程序"外部"修改Ansys建模語句中的參數(shù)
如果對已做好的模型再增加僅僅幾條語句來修改某些參數(shù),例如用UIMP,1,****修改材料1的參數(shù),可否在程序外部實現(xiàn)?!
打開 log 文件或在 File 菜單下執(zhí)行 write DB log file,將建模過程寫成命令流。然后在該文件中進(jìn)行修改就是了。不過需要你對 ANSYS 的命令有一些了解才行。學(xué)吧!
得到*lgt文件,改為*log文件即可修改操作
25.ANSYS在模擬錨桿支護(hù)巖體問題中,是不是要涉及到接觸問題,目標(biāo)面和接觸面又是怎么確定的呢?請問:錨桿預(yù)應(yīng)力如何施加?
如果你想研究錨桿的具體受力情況的話,那就要考慮接觸,如果你只是泛泛的研究整個結(jié)構(gòu)的力學(xué)行為的話就沒必要考慮接觸??紤]接觸的話ansys有自帶施加接觸工具欄,
***錨桿預(yù)應(yīng)力可以用初始變形添加***
26.隧道開挖模擬方法
小弟正在做一個大跨度隧道的施工模擬。現(xiàn)在主要采取兩種方法:
一、直接施加重力場進(jìn)行計算。
展開 ansys與其他軟件接口資料匯總!!
.");
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out");
//不用::WinExec,就用不著等待語句,可以實現(xiàn)用FORTRAN調(diào)用一樣的效果。
printf("Solution finished...");
}

ANSYS基于VC++6.0的二次開發(fā)ANSYS基于VC++6.0的二次開發(fā)與 相互作用分析在ANSYS中的實
在VC中,我沒有找到與FORTRAN類似的函數(shù),只好加一條循環(huán)判斷語句。
如果誰能找著這樣的函數(shù),請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當(dāng)ANSYS在運行時,file.err是不可寫的,只有當(dāng)它運行完畢,此文件才可寫。