- 积分
- 0
- 注册时间
- 2007-10-28
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2011-6-14 18:52:47
|
显示全部楼层
来自 大连理工大学
本帖最后由 cocoon 于 2011-6-14 18:58 编辑
楼主需要使用外部程序循环调用Ansys,修改自变量,提取Ansys分析结果,然后使用差分方法计算导数。
简要流程:
1.自变量保存在一个参数文件中,
2.启动Ansys,Ansys读取参数文件,分析后,将结果保存在结果文件中。
3.解析结果文件,
4.修改参数文件,
2,3,4 步循环,
你可以
1)使用VC等编写程序调用Ansys,然后从Ansys分析结果中提取函数值,然后从Ansys分析结果中提取函数值
2)使用VB, Matlab,iSight,SiPESC.OPT等编写脚本程序调用Ansys,然后从Ansys分析结果中提取函数值
第一类方法比较麻烦,第二类方法相对而言较简单一些,省去了编译的痛苦。
我这里有 SiPESC.OPT, 可以免费使用。SiPESC.OPT使用JavaScript脚本语言,提供了启动Ansys分析程序,文本文件解析等功能。
下面是使用启动Ansys分析程序脚本程序
- //
- // 启动Ansys
- //
- var programe = "D:/Ansys10/v100/Ansys/bin/intel/Ansys100.exe"
- var arguments =new Array( "-b", "-i" ,"F:/bridge_Ansys/xg_full.txt", "-o", "result.txt" );
- process = new Process;
- process.setWorkingDirectory("f:/bridge_Ansys/result");
- process.execute( programe );
复制代码 下面是使用启动Ansys编写参数文件的脚本程序
- // 生成一个名为parameterFile的FILE对象
- parameterFile = new FILE;
- // 设置文件名为 F:/bridge_Ansys/parameter.txt
- parameterFile.setFileName( "F:/bridge_Ansys/parameter.txt" );
- //以模式2打开文件,
- state = parameterFile.open(2);
- // 如果返回值为false,则输出警告信息。
- if( !state )
- {
- print("open result file failed.");
- }
- var R = 1;
- var H = 1;
- // 向文件中写入变量R 以及一个换行符\n
- parameterFile.write( R + "\n" );
- // 向文件中写入变量H 以及一个换行符\n
- parameterFile.write( H + "\n" );
- //将缓冲池中的数据写入文件中。
- parameterFile.flush();
- //关闭文件result
- parameterFile.close();
复制代码 下面是使用启动Ansys解析结果文件的脚本程序
- // 文件名
- var parameterFilePath = "F:/bridge_Ansys/result.txt";
- // 生成一个名为fooParser的FileParser对象
- var fooParser = new FileParser;
- // 指定文件名,并尝试打开文件。
- fooParser.open( parameterFilePath );
- // 第一行
- var line = fooParser.readLine();
- var V = parseFloat(line);
- // 第二行
- line = fooParser.readLine();
- var V = parseFloat(line);
- fooParser.close();
复制代码 可以参考
http://forum.simwe.com/thread-976523-1-1.html |
|