找回密码
 注册
Simdroid-非首页
查看: 255|回复: 9

[二次开发] 求教:VC++调用ANSYS的问题

[复制链接]
发表于 2009-6-3 23:00:42 | 显示全部楼层 |阅读模式 来自 吉林长春
小弟是新手,想用VC++做前台,输入参数后生成APDL执行文件,后台调用ANSYS运行,前面的部分都已经差不多了,就是点击按钮调用ANSYS的时候 怎么都不能运行,按钮下的代码如下:
    #include <vcl.h>
#include <windows.h>
#include <stdio.h>
#include <process.h>
STARTUPINFO si;
   PROCESS_INFORMATION pi;
   memset(&si,0,sizeof(si));
   si.cb=sizeof(si);
   si.dwFlags=STARTF_USESTDHANDLES;
   si.wShowWindow=SW_SHOW;
   ::CreateProcess(NULL,"D:\\Program Files\\ANSYS Inc\\v110\\ANSYS\\bin\\intel\\ansys110.exe-b-p ane3fl -i E:\\wajuejisheji\\File.txt-o E:\\dd.out ",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
   if(CreateProcess(NULL,"D:\\Program Files\\ANSYS Inc\\v110\\ANSYS\\bin\\intel\\ansys110.exe-b-p ane3fl -i E:\\wajuejisheji\\File.txt-o E:\\dd.out ",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
   CloseHandle(pi.hThread);
   CloseHandle(pi.hProcess);
不知道哪儿有错,期待大虾出现,感激涕流!!!!
发表于 2009-6-4 09:59:36 | 显示全部楼层 来自 上海浦东新区
Simdroid开发平台
只会用VB 调用,
我一般 都是做个EXCEL,表格输入数据,然后里面弄个按钮,通过vb调用ANSYS
回复 不支持

使用道具 举报

发表于 2009-6-4 13:28:04 | 显示全部楼层 来自 陕西西安
我觉得你先应该确定一下是不是VC++程序的问题   带上-g的参数试试 看看ansys能不能启动起来
还有比如license有没有打开

命令中 \bin\\intel\\ansys110.exe-b-p ane3fl
应该是\bin\\intel\\ansys110.exe -b -p ane3fl   空格不可少等
再检查一下吧
回复 不支持

使用道具 举报

发表于 2010-1-5 10:56:43 | 显示全部楼层 来自 江苏苏州
楼主你好,我也是做你的这方面工作的,没有头绪,可不可以把你的程序代码发给我参考一下,不胜感激,我的QQ邮箱290767333@qq.com
回复 不支持

使用道具 举报

发表于 2010-1-5 11:05:39 | 显示全部楼层 来自 湖北武汉
4# liusheng
还是比较鼓励自己动手
具体遇到问题再向做这方面的高手请教
回复 不支持

使用道具 举报

发表于 2010-3-12 17:03:30 | 显示全部楼层 来自 北京海淀
我也在做这方面的工作 希望共同学习 请高手指点
回复 不支持

使用道具 举报

发表于 2010-3-13 11:06:47 | 显示全部楼层 来自 北京海淀
呵呵,花了点时间做一个所谓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

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-3-13 20:35:21 | 显示全部楼层 来自 北京海淀
不太会 呵呵
回复 不支持

使用道具 举报

发表于 2010-3-13 21:49:04 | 显示全部楼层 来自 北京海淀
做个EXCEL,表格输入数据,然后里面弄个按钮,通过vb调用ANSYS
回复 不支持

使用道具 举报

发表于 2011-3-25 21:28:25 | 显示全部楼层 来自 河北秦皇岛
看了,还有有点不太明白 ,在努力学习VC
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-20 12:53 , Processed in 0.058256 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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