利用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在中途有退出,出现了错误。这个文件存储路径可以用绝对路径来表示,这样就不会出现引用问题了
相关文章
- 2021-09-08BIM技术丛书Revit软件应用系列Autodesk Revit族详解 [
- 2021-09-08全国专业技术人员计算机应用能力考试用书 AutoCAD2004
- 2021-08-30从零开始AutoCAD 2014中文版机械制图基础培训教程 [李
- 2021-08-30从零开始AutoCAD 2014中文版建筑制图基础培训教程 [朱
- 2021-08-30电气CAD实例教程AutoCAD 2010中文版 [左昉 等编著] 20
- 2021-08-30电影风暴2:Maya影像实拍与三维合成攻略PDF下载
- 2021-08-30高等院校艺术设计案例教程中文版AutoCAD 建筑设计案例
- 2021-08-29环境艺术制图AutoCAD [徐幼光 编著] 2013年PDF下载
- 2021-08-29机械AutoCAD 项目教程 第3版 [缪希伟 主编] 2012年PDF
- 2021-08-29机械制图与AutoCAD [李志明 主编] 2014年PDF下载