声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2436|回复: 8

[综合讨论] 请教VB和ANSYS

[复制链接]
发表于 2008-5-28 22:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本人是ANSYS初学者,正在做VB调用ANSYS的设计,我找了一个用记事本写的弹簧建模的语句如下:

fini
/cle
/filname,ring,1
/prep7
*AFUN,DEG
TOT=12      !一个螺距上沿圆周分割的点数
N_num=5    !螺距数
p_dis=0.8  !螺距
N=TOT*n_num !整个弹簧的点数
cic=360

et,1,45    !弹簧采用的单元
et,2,200    !给面划网格的MESH200单元
keyopt,2,1,6

DIV=cic/TOT !两点将的圆心角
DIS=p_dis/TOT !螺距
rid=1      !弹簧主半径
rid2=0.1    !弹簧截面半径
csys,1

*DO,I,1,N+1
k,I,rid,(I-1)*DIV,(I-1)*DIS
*ENDDO

flst,3,N+1,3
*do,i,1,N+1
fitem,3,i
*enddo
bsplin,,p51x

csys,0
wprot,,90
wpoff,rid
pcirc,rid2,,0,360

asel,all
lsla,s
lesi,all,,,4
type,2
mshkey,0
amesh,all
eplot


type,1
extopt,esize,300
vdrag,1,,,,,,1
eplot



在很多相关的帖子里看到VB调用ANSYS的关键语句是:
Private Sub Command1_Click()
Dim x
x = Shell("D:\ANSYS\v81\ANSYS\bin\intel\ansys81.exe - g - i E:\test\&ex1.txt& - o E:\test\&ex1.out&")
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
If Dir("E:\test\file.err") <> "" Then
MsgBox ("Finish")
Timer1.Enabled = False
End If
End Sub


疑问是:接下来该怎么做?在ANSYS中怎样打开刚才写的语句;输入和输出文件&ex1.txt&、&ex1.out&是怎样生成的?里面包括什么内容;file.err又是怎么生成的.

希望大家多多指教,谢谢.
回复
分享到:

使用道具 举报

发表于 2008-6-6 10:30 | 显示全部楼层
&ex1.txt&、&ex1.out&
&ex1.txt&是输入文件是你自己用APDL语言编写的,或者是根据第一次GUI生成的*.log文件改写的
这要根据你对APDL的熟悉程度,如果初学的话,建议后种方法
&ex1.out&是输出文件是在调用ANSYS之后的计算结果,里面包含了所有的计算过程和结果
Timer1的作用是判断ANSYS是否计算结束
也可以不用的
根据你自己程序的需要来决定
在ANSYS中怎样打开刚才写的语句
答:file>read input from ...
选择文件路径就行了
我也是做vb+ansys 的
不过已经作的查不多了
我得qq:812391310
有问题联系我
相互学习
发表于 2008-6-6 10:34 | 显示全部楼层
file.err又是怎么生成的.
是你调用之后自动生成的
就和直接用ANSYS计算后生成的filename.err是一样的道理
生成位置在你的vb 程序的绝对路径里
&/App.path/&
发表于 2009-8-25 21:48 | 显示全部楼层

文件路径和文件名的原因

我个人觉得是文件路径的问题:
               首先,输入输出文件应该在你所编写VB程序的路径下:App.Path     ;
               其次,输入文件的名称也很将就,必须为start100.ans。
       我运行成功了,代码如下:
        AnsysPath = "H:\Program Files\Ansys Inc\v100\ANSYS\bin\intel\ANSYS.exe"
        InOutPath = App.Path         '输入、输出文件的放置位置  注意:输入文件必须放在默认的根目录下,而且名字必须为“start100.ans”
        Dim X
                 X = Shell(AnsysPath & " - b - i " & InOutPath & "\start100.ans" & " - o " & InOutPath & "\re.out", 1)
        Timer1.Enabled = True


      说明:(1)AnsysPath                                 为ansys软件路径(根据自己实际情况进行修改)
                 (2)InOutPath & "\start100.ans"      为输入文件路径
                 (3)InOutPath & "\re.out",               为输入文件路径

        我按照上述方法成功了,也许还有其他诀窍,相互讨论,请各位高手批评指教。 :)
发表于 2009-8-25 21:56 | 显示全部楼层

请教”vb 调用 ansys 过程的小错误“

虽然调用成功了, 但在遇到APDL程序中如下的循环语句时就会出错:
    *DO,I,1,N+1
        k,I,rid,(I-1)*DIV,(I-1)*DIS
    *ENDDO

错误提示是:

        there are too many levels of * do

但语法明显没有错的啊? 哪位高手给予解释和解答?

谢谢!
发表于 2009-8-27 11:21 | 显示全部楼层
最用过VC++干过这种工作
发表于 2009-11-6 21:35 | 显示全部楼层
将apdl程序中第一句finish取消即可!
发表于 2009-11-10 15:19 | 显示全部楼层
单纯的做这个工作意义不大
发表于 2009-11-11 23:25 | 显示全部楼层
我为ansys 初学者,不知用次软件的菜单操作热场或电场的每步截图在哪找的到?谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 07:11 , Processed in 0.063746 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表