胎死腹中对孕妇的影响:关于ansys与VC++/Fortran程序的接口资料

来源:百度文库 编辑:中财网 时间:2024/04/30 00:47:16

 

将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

2.在FORTRAN中调用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')

字串6

3.说明
1和2中,input_file为用APDL语言编写的ANSYS输入文件。
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS
已经执行完毕。

字串7

在ANSYS中当然也可以以VC或FORTRAN作为子程序调用。可以参看有关ANSYS二次开发方面的资料。
这个方法应该是与系统无关的。

字串3

在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!

字串3

判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。
好贴,请教如何在VB中调用ansys?
这是我早期的帖子,请参考:
http://www.fea-league.com/dispbbs.asp?boardID=21&RootID=2923&ID=2923
在第二页中已经对VC调用ANSYS的方法进行了更新,如下所示:
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...");
}

字串2

希望在传帖子的时候把有关内容全部看清楚,否则很容易以讹传讹,切记!
能不能也给我发个ansys二次开发的示例
caxcae 大侠你好,能不能也给我发两个示例:一个是vc调用ansys的,
另外一个是ansys调用vc和fortran的, 字串2

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...");
} 字串6

请问 在那里查ansys_product_feature
其次, vc中的类的成员变量是否能和apdl语言中的变量进行数据交换阿?
拜托了 前辈 字串2

怎么还不知道?那个特征表找着没有?
以第一行为例: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进行

字串9

新的计算,计算结束之后,再由后处理处理结果,并将结果数据输出到一个文件中,然后用VC读入此文件中的数据,进行下一步处理.

字串5

.ext是什么文件啊?
数据文件,图形文件怎么得到啊?
ext是指文件扩展名。
数据文件(假设输出的数据文件名为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"); 字串6

图形文件(假设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");
请问坛主,在ANSYS中划分了网格的三维图形能在VC中调用吗?
如果能调用,得到的图形的控制点是由节点控制还是有关键点控制的?
每个点的坐标是A(X,Y,Z)的形式还是A(X,Y,Z,W)矢量的形式?
你的意思是不是要在VC中调用在ANSYS中生成的有限元网格信息啊?
如果是这样,调用的应该是由节点控制的有限元信息。
每个点的坐标是A(X,Y,Z)形式。

字串4

    如果要进行应力场分析,分析后根据节点的应力大小、应力的梯度等一些原则,需要重新改变模型的几何形状,

字串8

    而这个三维实体的形状中有一部分是曲面,想通过像在vc中用三角面片建立曲面那样通过控制一些点重构模型,可以吗?

字串8

可否提供一种方法? 字串4

    这好象很难实现。这里所说的基于ANSYS进行参数化建模要求能在ANSYS中进行实体建模。你可以看看你的模型曲面部分用ANSYS能不能生成(如控制关键点,生成样条线,再把样条线扫描成曲面)。 字串7

    另外一个方法就是基于Ideas进行优化分析。还有利用matlab+Ideas进行优化分析的。

字串6

    我的实体模型已经在ansys中建好了,包括曲面部分,现在要通过有限元模拟的结果只改变取曲面部分的形状,想通过像在vc中用三角面片建立曲面那样通过控制一些点比较细致的重构模型?既然已经在ANSYS中建好模型了(请用APDL语言建),那么在ANSYS里就可以直接通过控制特征点来控制曲面部分的形状。

字串4

    至于在VC中重构模型,我也不清楚。问题在于,在VC中建的几何模型怎么输入到ANSYS中?
再问坛主,怎样控制特征点来控制曲面部分的形状?

字串6

    可以使关键点或者节点沿着坐标的方向移动从而改变其形状? 字串4

    将关键点的坐标定义为参数,如果进行优化计算,就是优化的设计变量。通过控制关键点的坐标来控制曲面形状。 字串4

    通过改变节点的坐标可以改变几何形状吗?

字串3

    那么网格的质量会发生变化吗? 字串7

    节点不好控制。因为结构形状需要重构,需要用新的网格,节点信息是变化的。

字串8

    如果嫌控制点少,可以多用些关键点。

字串9

    坛主,建立好模型以后再多加关键点和建模时多用几个关键点效果能一样吗?

字串8

    因为建模时多用关键点很麻烦,而且不一定能建成.

字串5

    怎么 将关键点的坐标定义为参数 ?

字串5

    我用上面讲的方法将Nastran作为一个子程序也是可行的。 字串6

    请教!!我做了一个优化程序,每运行完一次程序,我需要 修改输入文件,那么如何动态改变输入文件。不用手工改!

字串5

    在ANSYS中可以利用它的APDL语言实现这种优化功能。Patran中相应的PCL(Patran command language)同样可以 实现。基本思想一样,在Fortran或C中,将相关变量参数写到一个数据文件中,再利用与上面类似的调用方法执行patran的PCL文件, 由此PCL文件读入上面生成的数据文件中的参数实现参数化建模、有限元处理并生成Nastran的计算输入文件,再调用nastran进行有限元计算,然后由patran的PCL调用结果进行后处理,将结果数据输出到数据文件,最后由Fortran或C读入实现参数传递。