VB调用ANSYS

[复制链接]
查看11 | 回复1 | 2011-8-1 11:41:21 | 显示全部楼层 |阅读模式
Open "E:\EP\01.txt" For Output As #1
Print #1, "FINISH"
'清除内存
Print #1, "/CLEAR"
'调用IGS文件
Print #1, "/input,start110,ans,'C:\Program Files\Ansys Inc\v110\ANSYS\apdl\',,,,,,,,,,,,,,,,1"
Print #1, "/AUX15 "
Print #1, "IOPTN , IGES, NODEFEAT"
Print #1, "IOPTN , MERGE, YES"
Print #1, "IOPTN , SOLID, YES"
Print #1, "IOPTN , SMALL, YES"
Print #1, "IOPTN , GTOLER, DEFA"
Print #1, "IGESIN,'liti','igs','E:\EP\'"
Print #1, "VPLOT"
Print #1, "/PREP7"
'进入前处理模块
Print #1, "ET,1,SOLID187"
'定义单元类型
Print #1, "MP,EX,1,"; Text1.Text
'定义弹性模量
Print #1, "MP,PRXY,1,"; Text3.Text
'定义泊松比
Print #1, "MP,DENS,1,"; Text2.Text
'定义密度
Print #1, "SMRTSIZE,1"
'设定智能划分等级1
Print #1, "ALLSEL"
'选择全部图元
Print #1, "MSHKEY,0"
'设定自由网格划分方式
Print #1, "MSHAPE,1,3D"
'设定为四面体网格
Print #1, "VMESH,ALL"
'对体进行网格划分
Print #1, "FINISH"
Print #1, "/SOLU"
'进入求解模块
Print #1, "FLST , 2, 1, 5, ORDE, 1"
Print #1, "FITEM , 2, 9"
Print #1, "DA,P51X,ALL,"
Print #1, "ACEL,,-9.8"
'施加Y方向的重力加速度
Print #1, "FLST , 2, 1, 5, ORDE, 1"
Print #1, "FITEM , 2, 8"
Print #1, "SFA , P51X, 1, PRES,"; Text4.Text
'施加载荷
Print #1, "ALLSEL,ALL"
'选择所有图元
Print #1, "SOLVE"
'开始求解
Print #1, "FINISH"
'求解模块结束
Print #1, "/POST1"
'进入通用后处理器
Print #1, "PLNSOL,U,X"
'显示X方向位移云图
Print #1, "/SHOW,JPEG,,0"
'将X方向位移云图命名为file000,以JPEG格式保存
Print #1, "JPEG,QUAL,75,"
Print #1, "JPEG,ORIENT,HORIZ"
Print #1, "JPEG,COLOR,2"
Print #1, "JPEG,TMOD,1"
Print #1, "/IMAGE,SAVE,'E:\EP\file000.JPG'"
Print #1, "/SHOW,CLOSE"
Close #1
Dim X As Double
X = Shell("C:\Program Files\Ansys Inc\v110\ANSYS\bin\intel\ANSYS110.exe -b -p ane3fl -i E:\EP\01.txt -o E:\EP\01.out", 1)

Timer1.Enabled = True
IGS文件已在文件夹里~单独用ANSYS可以运行~没有问题~可是用VB调用~返回值总是说“ANSYS 软件后台运算出错!”希望大家可以帮忙看看程序~谢谢大家了
If Dir(App.Path & " \file.err")"" Then
'判断file.err文件是否存在
MsgBox (" ANSYS 软件后台运算完毕! ")
'若file.err文件已生成,表明ANSYS运算已结束,弹出提示框
Else: MsgBox (" ANSYS 软件后台运算出错! ")
'关闭Timer1
Timer1.Enabled = False
End If
这是时间处理器的编程~

回复

使用道具 举报

千问 | 2011-8-1 11:41:21 | 显示全部楼层
你需要等待exe运行结束之后,再进行文件的检测。否则,程序运行结束之前,timer就会弹框。代码改为:do while Dir(App.Path & " \file.err") = ""doevents
'程序运行中,卡在此处。loopMsgBox (" ANSYS 软件后台运算完毕! ")
Timer1.Enabled = FalseEnd If...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行