VibInfo 发表于 2005-10-20 08:30

将ANSYS作为子程序调用

<DIV >将ANSYS作为子程序调用 <BR>对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。具体调用方法如下: <BR>1.在VC中调用ANSYS <BR>::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL); <BR><BR>2.在FORTRAN中调用ANSYS <BR>LOGICAL(4) result <BR>RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p <BR>ansys_product_feature -i input_file -o output_file') <BR><BR>3.说明 <BR>1和2中,input_file为用APDL语言编写的ANSYS输入文件。 <BR>ansys_product_feature为你的ANSYS产品特征代码。 <BR>需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS <BR>已经执行完毕。 <BR><BR>在ANSYS中当然也可以以VC或FORTRAN作为子程序调用。可以参看有关ANSYS二次开发方面的资料。 <BR>这个方法应该是与系统无关的。 <BR><BR>在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。 <BR>在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。 <BR>如果谁能找着这样的函数,请告诉我,谢谢! <BR><BR>判断方法很简单,只需判断错误文件file.err是否可写就可以了。 <BR>因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。 <BR><BR>2) <BR><BR>VC中调用Ansys的方法如下,具体过程就不写了。 <BR>: 1 利用Ansys建立一个通用有限元模型,并进行计算求解。注意:根据模型中所有可变 <BR>的参数定义相应的参数,利用参数化建模。将生成的log 文件拷贝成另一文件,即宏命 <BR>令文件。当然可以直接用APDL编写此文件。 <BR>:2 VC编写界面: <BR>(1) 要实现前处理参数输入功能; <BR>(2) 根据用户输入的参数修改刚才得到的ansys宏命令文件中,参数对于的参数值 <BR>; <BR>(3) 将生成的宏命令文件文件提交给Ansys程序进行批处理操作; <BR>在VC++ 中可利用CreateProcess函数创建一个进程,去执行其他程序,并 <BR>且可以设置改进程的优先级。 <BR>Ansys提供了一种批处理方式的格式:"Ansys. bat-I InputName- O OutNam <BR>e. 其中InputName和OutName分别为输入输出文件名。 <BR>(4)程序需要判断Ansys的批处理操作何时结束。 <BR>在Window NT 操作系统中当一个进程运行完毕后,窗口的标题会有 ”已完成 <BR>“这几个字。如当Ansys批处理完成后,窗口标题会显示 "Ansys已完成”。可以利用这 <BR>一个特点来判断进程是否运行完毕。 <BR>: 3 利用结果文件(out文件,或者由你在宏命令中指定输出的文件)进行后处理</DIV>
页: [1]
查看完整版本: 将ANSYS作为子程序调用