iCAx开思网

标题: ansys与VC++/Fortran程序的接口资料的疑问 [打印本页]

作者: wings_ch    时间: 2006-5-17 17:42
标题: ansys与VC++/Fortran程序的接口资料的疑问
ansys与VC++/Fortran程序的接口资料中提到:

ANSYS调用FORTRAN(UPF)   
基于ANSYS57和Visual Fortran 6.1先详细讲一下ANSYS调用FORTRAN的步骤:
1. 首先,安装ANSYS时选择custom安装;
2. 建立一个新的用户目录, 如upf,把custom\user\intel目录下的anscust.bat,makefile和user01.f (当然也可以用你自己的fortran文件啦)这三个文件拷贝到upf下;
3. 打开makefile文件,在第一行指定ANSYS的安装路径,如:
ANSYS57_DIR=d:\ANSYS57 保存退出;
对于ANSYS7.0:
ANSYS70_DIR=d:\ansys7\v70\ANSYS
4. 复制 dfport.lib,dformd.lib, dfconcol.lib(这三个文件在fortran安装目录下的df98\lib目录中可以找到,注意不要用ANSYS自己所带的,因为ANSYS自己所带的版本可能不够高,而导致连接失败)和ansysex.def(在custom\user\intel中)到upf目录中,以避免连接时找不到这几个文件;
5. 准备工作已经完成,运行“anscust.bat”进行编译连接。要确信你的Visual Fortran 与ANSYS版本的兼容性,如果编译连接不成功,出现诸如“Fatal error link 1120: 8 unresolved externals”的错误,则表示你的Fortran版本需要升级。
如用Vfor6.1 编译连接ansys7.0,就会出现这样的错误信息。解决的方法是安装Vfor6.6B。
对于你自己写的FORTRAN程序,先用FORTRAN编译一遍,保证没有错误。编译连接成功之后,在upf目录下会生成ansys.exe;
6. 现在你就可以运行这个新的ANSYS了。有两个方法:
第一个方法,就象“二次开发培训练习题”中所说:
在dos命令行,先敲入 ansys -p ansysul,指定ansys产品特征代码运行ansys, 然后OK, 接着 /show,win32和/menu,on启动ANSYS;
第二个方法,干脆用新生成的ansys.exe 代替ANSYS安装目录(如d:\ansys57\bin\intel)中的原ansys.exe,建议将原ansys.exe改名或备份,然后就象你平常启动ANSYS那样(如用Ansys Interactive 方式)启动ANSYS。
7. 启动并进入ANSYS交互界面之后,在命令输入行输入命令usr1(或者用/ucdm定义为你指定的名称, 如 /ucmd, aaa,1)就实现了ANSYS对Fortran程序user01.f的调用。


----------------------
我在二次开发中遇到的问题
1.上面帖子提到的dfconcol.lib文件应该为dfconsol.lib
2.除了ansysex.def外,还要将ansysmall.def和ansylarge.def这两个文件拷到upf目录中
3.进入ansys.exe之后,先用usrcal,all允许自定义命令应用于各个阶段,再用/ucmd, stat可以列出自定义命令USR1-USR10,但是输入USR1-USR10中任何一个系统都说这个命令不认识,这是为什么???快急死了!

请赐教,谢谢!
作者: wings_ch    时间: 2006-5-18 17:43
是不是我用的是Silverfrost FIN95才不行,用IVF就可以了么?

又或者我要在fortran中调用ansys,ansys的产品特征代码怎么找啊?

着急啊!
作者: wings_ch    时间: 2006-5-24 23:39
Nobody care?
作者: gonglifei    时间: 2006-5-28 20:48
楼主,你好!
谢谢你的提醒!
可是我在编译的时候,它都生成不了ansys.exe执行文件
我也是按照上面所说的做的,这是为什么啊?
执行anscust.bat文件后,只是生成一个f_comp.err文件。
作者: wings_ch    时间: 2006-6-6 15:24
好久没来,太忙了
我已给你回消息,其实我也不太清楚
照着上面的步骤也只是得出一个ansys.exe执行文件
但是进去后系统都说这个命令不认识




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3