我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Ansys教程

Visual Basic 調用ANSYS做后臺計算的事項

時間:2010-11-14 12:54:01 來源:未知

利用VB 的shell命令,調用ansys.exe文件。 由于shell是異步調用,VB主程序不會等到ANSYS運行結束再執行下一個命令。關鍵就是要讓主程序等待ansys結束以后,在執行其他程序。

引用三個API 過程

‘ 打開一個過程,返回句柄

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

 

‘ 關閉過程句柄

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 計算結束了呢?

    網上很多人采用ansys自帶的ERROR文件來判斷,但我覺得,由于error文件的存儲路徑隨著不同的初始路徑而變化,在代碼的實現上,無法用一個絕對路徑來表示,對軟件的封裝不合適,所以:

我在log輸入文件的最后一行建立了一個文件(err.txt),如果該文件存在,說明ansys已經運行到最后,表示運行成功;如果沒有生成,則說明,ansys在中途有退出,出現了錯誤。這個文件存儲路徑可以用絕對路徑來表示,這樣就不會出現引用問題了