作业帮 > 综合 > 作业

本人利用VB来启动ANSYS分析的课题.现在ANSYS分析过程(APDL)已有了(.txt文件)怎样通过VB传递给ANS

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 17:34:34
本人利用VB来启动ANSYS分析的课题.现在ANSYS分析过程(APDL)已有了(.txt文件)怎样通过VB传递给ANSYS?
已经可以利用VB打开ANSYS了
Private Sub Command1_Click()
Dim x
x = Shell("C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ansys110.exe - g - i F:\My work\J55-L.txt - o F:\My work\JB2.log")
End Sub
但是不会继续算下去,ANSYS的output窗口显示:
RUN SETUP PROCEDUER FROM FILE=C:\Program Files\ANSYS Inc\v110\ANSYS\apdl\start110.ans
/INPUT FILE=C:\Program Files\ANSYS Inc\v110\ANSYS\apdl\start110.ans LINE=0
是不是需要将现有的APDL文件(.txt)转换成.ans文件啊?怎么办?
我是想用VB软件打开APDL文档(txt文件),然后在界面上修改APDL文件里的参数,之后将APDL文件导入ANSYS软件且让其自动运算.不知怎么实现啊?
用txt文件就行了,我成功的用vb调用过ansys.
会不会是你的命令行里面没有设置工作目录,这种情况下计算结果好像是保存在安装目录的,又或者你的命令流里面就只包含了前处理的信息,没涉及到计算...
要不这样试试:先手动计算一次(设置好工作目录),把log文件修改一下作为输入文件,然后在Launcher里面点击Tools->Display Command Line,把这个作为shell的参数.
再分享一下经验,有两个api:OpenProcess、WaitForSingleObject,两个函数组合起来使用,使你的程序在ansys进程计算结束前一直处于阻塞状态
再问: 你好,你能把你的原代码给我看下吗?我毕业论文要用,比较急了。 我的txt文件就是手动运行一次之后的log文件改过来的。/PREP7开头,solve结尾,复制黏贴到ansys里可以计算。还有我的Display Command Line是:"D:\Program Files\ANSYS Inc\v110\ANSYS\bin\Intel\ansys110.exe" -g -p ANE3FL -dir "D:\My Work\" -j "NO1" -s read -l en-us -t -d win32 ,把这个全部复制到shell之下替换我原来的内容吗?? 怎样使ansys读入txt?
再答: 得先在Launcher中把Simulation Environment设置为ANSYS Batch,然后在分别设置好Working Directory、Job Name等等,这是我的代码: S = Chr(34) & "D:\Ansys Inc\v100\ANSYS\bin\intel\ansys100.exe" & Chr(34) & _ " -p ANE3FLDS -dir " & _ Chr(34) & WorkPath & Chr(34) & _ " -j " & _ Chr(34) & "TxIn" & Chr(34) & _ " -s read -l en-us -b -i " & _ Chr(34) & WorkPath & "TxIn.txt" & Chr(34) & _ " -o " & _ Chr(34) & WorkPath & "TxIn.out" & Chr(34) iDnum = Shell(S) If iDnum 0 Then iDnum = OpenProcess(SYNCHRONIZE, 0&, iDnum) Call WaitForSingleObject(iDnum, INFINITE) End If
再问: 我按照你说的设置好以后,用Private Sub Command3_Click()将代码复制进去运行,出现“子程序或函数未定义”的错误提示,是不是你的代码里有点小问题啊?我把TxIn都改成我的文件名JXBV了。我的QQ是:1120979055,方便的话我加上你请教下,调通了我再给你追加50分~~呵呵
再答: 我以为你对API有点认识...像下面这样做应该就可以了: 1.首先如下定义: Const SYNCHRONIZE = &H100000 Const INFINITE = &HFFFF dim iDnum as long 2.然后新建一个模块,添加如下代码: Public Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Public Declare Function WaitForSingleObject Lib _ "kernel32" (ByVal hHandle As Long, _ ByVal dwMilliseconds As Long) As Long 3.字符变量S中的"D:\Ansys Inc\v100\ANSYS\bin\intel\ansys100.exe"要改成你的ansys100.exe的路径,WorkPath是一个用来存储工作目录的字符变量,