声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1213|回复: 4

[综合讨论] VC++怎么调用ANSYS热物理分析结果

[复制链接]
发表于 2009-9-24 11:36 | 显示全部楼层 |阅读模式

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

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

x
我需要在VC++中调用ansys的分析结果(物理场、应力场),我听说是将结果数据输出到指定的接口文件中去,然后在VC开发的系统中打开包含结果信息的接口文件。VC能调用的ansys接口文件是什么格式的,我想问一下这个具体的操作是怎么样的,望高手帮下小弟,谢谢!
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-9-25 09:01 | 显示全部楼层
啊,怎么就是没人知道啊
发表于 2009-9-25 09:40 | 显示全部楼层
vc没法直接调用ansys结果文件的,只能把ansys结果输出到指定格式的文件,然后再用vc去读取。

评分

1

查看全部评分

发表于 2009-9-25 10:49 | 显示全部楼层
如何将ANSYS作为子程序调用


对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。具体调用方法如下:
1.在VC中调用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);2.在FORTRAN中调用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.说明
1和2中,input_file为用APDL语言编写的ANSYS输入文件。
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS
已经执行完毕。

在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!
判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。

数据文件(假设输出的数据文件名为opt.out):
*dim,out1,,2,1
out1(1)=dmax !目标函数
out1(2)=1-eymax !约束条件1
*cfopen,opt,out
*vwrite,out1(1),out1(2)
(2f10.6)
*cfclos
在VC中相应的显示数据文件命令为:
result=system("notepad opt.out");
图形文件(假设ANSYS工作文件名为test,输出jpg图形文件,具体信息请参考命令/show):
/SHOW,JPEG
JPEG,QUAL,75,
JPEG,ORIENT,HORIZ
JPEG,COLOR,2
JPEG,TMOD,1
/GFILE,600,
!*
plns,uy
/SHOW,TERM
在VC中相应的显示图形文件命令为:
result=system("mspaint test001.jpg");

**************************************************************************************
VC调用ANSYS的示例程序。
//Test.cpp
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("Solving...");
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out");
//不用::WinExec,就用不着等待语句,可以实现用FORTRAN调用一样的效果。
printf("Solution finished...");
}

怎么还不知道?那个特征表找着没有?ANSYS帮助->ANSYS,INC.Licensing Guide->License files->What are License files->Product feature Table
以第一行为例:ANSYS/MULTIPHYSICS ane3fl
ANSYS/MULTIPHYSICS是产品特征名称,ane3fl是与其对应的产品特征代码,把这个代码填到下面的语句中:
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ane3fl -i test.txt -o test.out");
VC中的变量与APDL语言中的变量可以进行数据交换,否则怎么实现参数化或优化设计?
不过不能直接互换.我采用的办法是,在VC中将变量结果写到一个文件中,然后再在ANSYS的APDL语言文件中读入这个文件的数据,
再由ANSYS进行新的计算,计算结束之后,再由后处理处理结果,并将结果数据输出到一个文件中,然后用VC读入此文件中的数据,
进行下一步处理

评分

1

查看全部评分

发表于 2009-9-25 17:29 | 显示全部楼层
你看ansys的输入文件格式就知道了啊,vc可以写一个模块读取这个格式,然后就是你自已想怎么处理怎么处理了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 23:15 , Processed in 0.086327 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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