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

【求助】怎么才能在ansys中调用外部应用程序啊?

[复制链接]
发表于 2002-12-12 11:40:10 | 显示全部楼层 |阅读模式 来自 上海
比如一个exe程序,ansys在apdl中可以象c或者fortran一样用shell或winexec一样调用么?  从fortran或c倒是可以调用ansys,不过在ansys里的apdl中调用外部应用程序应该更有意义,不知那位大侠知道怎么做么?谢谢!
发表于 2002-12-12 21:03:29 | 显示全部楼层 来自 美国

回复: 【求助】怎么才能在ansys中调用外部应用程序啊?

Simdroid开发平台
很有意思,能不能够说说你想用来做什么?
发表于 2002-12-20 17:37:18 | 显示全部楼层 来自 西安交通大学

回复: 【求助】怎么才能在ansys中调用外部应用程序啊?

VC怎么调用ansys?
发表于 2002-12-22 13:40:33 | 显示全部楼层 来自 江苏南京

回复: 【求助】怎么才能在ansys中调用外部应用程序啊?

我前不久看到一篇文章,我没有试过
现在转贴在下面(成功了告诉我,ludejun@yahoo.com)
有没有外部程序(诸如VB,FORTRAN)可以调用ANSYS进行计算,结果再被外部程序调用???
  看看有没有用
对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。具体调用方法如下

1.在VC中调用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_fil  
e -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
已经执行完毕。
  
在ANSYS中当然也可以以VC或FORTRAN作为子程序调用。可以参看有关ANSYS二次开发方面的

料。
这个方法应该是与系统无关的。
  
在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!
  
判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。
  
2)
  
VC中调用Ansys的方法如下,具体过程就不写了。
: 1 利用Ansys建立一个通用有限元模型,并进行计算求解。注意:根据模型中所有可变  
的参数定义相应的参数,利用参数化建模。将生成的log 文件拷贝成另一文件,即宏命
令文件。当然可以直接用APDL编写此文件。
:2 VC编写界面:
(1) 要实现前处理参数输入功能;
(2) 根据用户输入的参数修改刚才得到的ansys宏命令文件中,参数对于的参数值

(3) 将生成的宏命令文件文件提交给Ansys程序进行批处理操作;
在VC++ 中可利用CreateProcess函数创建一个进程,去执行其他程序,并
且可以设置改进程的优先级。
Ansys提供了一种批处理方式的格式:"Ansys. bat-I InputName- O OutNam
e. 其中InputName和OutName分别为输入输出文件名。
(4)程序需要判断Ansys的批处理操作何时结束。
在Window NT 操作系统中当一个进程运行完毕后,窗口的标题会有 ”已完成
“这几个字。如当Ansys批处理完成后,窗口标题会显示 "Ansys已完成”。可以利用这
一个特点来判断进程是否运行完毕。
: 3 利用结果文件(out文件,或者由你在宏命令中指定输出的文件)进行后处理
  
   
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...");  
}  
------------------------
向各位大哥学习  
  
发表于 2002-12-23 00:11:58 | 显示全部楼层 来自 台湾

回复: 【求助】怎么才能在ansys中调用外部应用程序啊?

使用指令 /sys
比如說
  
/sys,notepad   
  
這樣就會啟動windows中的記事本(nptepad)
发表于 2003-1-7 21:26:41 | 显示全部楼层 来自 北京化工大学

回复: 【求助】怎么才能在ansys中调用外部应用程序啊?

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

本版积分规则

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

GMT+8, 2024-4-26 15:08 , Processed in 0.043887 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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