iomega 发表于 2008-6-18 13:29:36

【原创】用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

a502 发表于 2008-6-19 14:56:58

好东西,顶下!

wuwei205 发表于 2008-7-3 12:38:15

好,学习一下!

lihuafeng 发表于 2008-7-10 21:22:03

好东西!!谢谢开发者和版主!

万三平 发表于 2008-7-28 10:57:02

好东西

能留个qq吗,大家交流一下

unknow 发表于 2008-8-26 12:16:02

很好很强大!!!!
像牛人致敬!!!

赵师平 发表于 2008-9-22 11:14:01

太厉害了!

tx47 发表于 2008-10-2 12:17:41

正在学习中:loveliness: :loveliness:

daven 发表于 2008-11-11 20:37:34

厉害,学习学习了。俺还是新手

yr1234 发表于 2008-11-18 16:42:06

恩,谢谢楼主

鼻涕佛 发表于 2009-1-11 09:09:57

如何在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 编辑 ]

ecjtuljsh 发表于 2009-2-22 20:16:10

谢谢
正在找这个东西

2208001017 发表于 2009-3-22 09:10:06

谢谢,楼主真是好人啊

gladiator24 发表于 2009-6-29 16:43:24

谢谢分享!

忠诚憨厚 发表于 2009-7-12 11:38:10

谢谢楼主辛苦了~~~~~ :)

忠诚憨厚 发表于 2009-7-12 11:38:21

谢谢楼主辛苦了~~~~~ :)

柠檬李 发表于 2009-7-12 21:35:13

楼主太牛了,正需要这方面的资料,谢谢楼主了

cygj 发表于 2009-8-5 09:47:43

好资料啊,正准备ANSYS的二次开发呢。

zhouqingcam 发表于 2009-8-5 14:15:55

牛人狂赞!!

xbzhang 发表于 2009-9-27 12:49:24

很好,很强大。
页: [1] 2 3 4 5 6
查看完整版本: 【原创】用Visual C调用ansys后台运行求解并实时显示计算进度和结果(附源程序)