将ansys作为子程序调用

将ANSYS作为子程序调用,对于优化或参数化设计,可以在VC或FORTRAN中将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...");
}


怎么还不知道?那个特征表找着没有?


[声明] :本站为开放平台,文章版权归原作者所有,内容为作者个人观点,本站只提供参考并不构成任何投资及应用建议。本站拥有对此声明的最终解释权。

  • 发表于 2017-06-25 11:49
  • 阅读 ( 6084 )
  • 分类:软件应用

0 条评论

请先 登录 后评论
不写代码的码农
CSUA

研究生

16 篇文章

作家榜 »

  1. 刘记 33 文章
  2. CSUA 16 文章
  3. Abrtr 3 文章
  4. xiaoyu 2 文章
  5. 王玥琪 1 文章
  6. 杨紫 1 文章
  7. 李宇 1 文章
  8. 佳良 0 文章