利用VB 的shell命令,調(diào)用ansys.exe文件。 由于shell是異步調(diào)用,VB主程序不會(huì)等到ANSYS運(yùn)行結(jié)束再執(zhí)行下一個(gè)命令。關(guān)鍵就是要讓主程序等待ansys結(jié)束以后,在執(zhí)行其他程序。
引用三個(gè)API 過程
‘ 打開一個(gè)過程,返回句柄
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
‘ 等待過程
Private Declare Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
‘ 關(guān)閉過程句柄
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
具體的代碼如下:
100 pid = Shell(ANSYSEXEPATH & " -b -i C:ANSYSCAUansysinputlog.txt -o ANSYSDEBUG.txt", 0)
hProcess = OpenProcess(&H1F0FFF, 0, pid)
If hProcess <> 0 Then
WaitForSingleObject hProcess, INFINITE
Call CloseHandle(hProcess)
Else
GoTo 100
End If
怎么判斷ansys 計(jì)算結(jié)束了呢?
網(wǎng)上很多人采用ansys自帶的ERROR文件來判斷,但我覺得,由于error文件的存儲(chǔ)路徑隨著不同的初始路徑而變化,在代碼的實(shí)現(xiàn)上,無法用一個(gè)絕對(duì)路徑來表示,對(duì)軟件的封裝不合適,所以:
我在log輸入文件的最后一行建立了一個(gè)文件(err.txt),如果該文件存在,說明ansys已經(jīng)運(yùn)行到最后,表示運(yùn)行成功;如果沒有生成,則說明,ansys在中途有退出,出現(xiàn)了錯(cuò)誤。這個(gè)文件存儲(chǔ)路徑可以用絕對(duì)路徑來表示,這樣就不會(huì)出現(xiàn)引用問題了
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書 AutoCAD2004
- 2021-08-30從零開始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF
- 2021-08-29機(jī)械制圖與AutoCAD [李志明 主編] 2014年P(guān)DF下載