【原创】用Visual C调用ansys后台运行求解并实时显示计算进度和结果(附源程序)
本帖最后由 iomega 于 2011-4-8 12:04 编辑以下是偶在ANSYS--前后处理里发的贴,是受到下帖的启发:
利用C++Builder作前台结合ANSYS批处理方式二次开发
************************************************************************************
呵呵,花了点时间做一个所谓ANSYS二次开发的例子,也就是前台用VC在后台调用ANSYS求解并实时显示计算进度和结果。随贴附上源程序和计算的例子,希望大家一起讨论。
思路:
(1)首先在VC里根据文本框等控件生成参数文件,和ANSYS主计算程序合并生成ANSYS_RUN.mac,在ANSYS_RUN.mac最后加上用来生成flag.txt文件(内容为0)的APDL代码.随后在VC里用WinEXEC运行ANSYS batch mode 去调用ANSYS_RUN.mac,并且把屏幕输出到output.txt。同时,建立flag.txt文件(内容为1).
(2)在VC里开一个线程, 循环读flag.txt,看其是否为1(运行)或0(结束)。如果是1,则读output.txt内容,显示在主程序状态文本框里。(当然也可以读err文件来判断)。
(3)ANSYS_RUN.mac 里有生成plots并保存为jpg文件的APDL代码。当ANSYS运行结束后,在主程序里可以browse结果图像文件。
ANSYS主计算程序: VM28.mac. 这是ANSYS的一个例子程序,但是做了一些改动,计算在Time_Start 到Time_End之间,步长为Time_interval的温度分布。
VM28:Transient Heat Transfer in an Infinite Slab。
在VC程序里,
ANSYS EXE File是ANSYS的执行文件的路径名。
MAC Batch File 是ANSYS主计算程序的路径名。
Working Folder是工作路径,用来存放结果文件和中间过程文件。
Note: how to export image in batch mode:
因为在batch mode, 没有graphic window,所以一般的图形输出命令无效。但是可以使用/show,jpeg命令。另外,可以用以下命令
!Turn off the automatic increasement of jobnamennn.jpg, so the output file will be jobname.jpg.
/DEV,PSFN,NINC
以上是在VC调用ANSYS的例子,在ANSYS里调用C, Fortran, Matlab的例子可在这里找到:
http://www.simwe.com/forum/viewthread.php?tid=699880&highlight=%2Biomega 好东西,顶下! 好,学习一下! 好东西!!谢谢开发者和版主!
好东西
能留个qq吗,大家交流一下 很好很强大!!!!像牛人致敬!!! 太厉害了! 正在学习中:loveliness: :loveliness: 厉害,学习学习了。俺还是新手 恩,谢谢楼主
如何在batch mode下生成动画?
如何在batch mode 下生成动画?将下列命令 流存成mac文件,在batch mode模式下用matlab调用
但是提示
WARNING
NO segments are defined.Use /seg MuLT to create multiple segments
参王新敏《ansys工程结构数值分析》p.133,原书中少了一条命令
!
!
finish
/clear
/prep7
/view,1,1,1,1
cyl4,,,1,,1.1,220,2
/pnum,area,1
/number,1
/triad,off
/plopts,info,off
aplot
/seg,dele
/seg,multi,name1,1
*do,i,1,24
/ang,1,15,ys,1
/replot
*enddo
/seg,off
/anfile,save,name1,avi
anim,1
!
!
[ 本帖最后由 鼻涕佛 于 2009-1-11 09:21 编辑 ] 谢谢
正在找这个东西 谢谢,楼主真是好人啊 谢谢分享! 谢谢楼主辛苦了~~~~~ :) 谢谢楼主辛苦了~~~~~ :) 楼主太牛了,正需要这方面的资料,谢谢楼主了 好资料啊,正准备ANSYS的二次开发呢。 牛人狂赞!! 很好,很强大。