仿真干货丨ANSYS的接口调用(附Matlab和C++代码) |
您所在的位置:网站首页 › matlab做电磁仿真 › 仿真干货丨ANSYS的接口调用(附Matlab和C++代码) |
处理好接口的路径后,还需要把接口的"test1.mac"替换成需要调用的APDL文件或者宏文件,后缀可以是txt,其他保留不动即可。 另外需要注意的是,假如按上述操作还是调用失败,原因主要有两个:(1)APDL文件本身就有问题,可以直接把其复 制到ANSYS进行测试;(2)版本问题,ANSYS高版本的调用接口有所不同,需要做一定的改变。 如果需要在Linux下调用ANSYS可以用以下接口(笔者没有用过,有需要的可以自行测试): system('/opt/ansys_inc/v811/ansys/bin/ansys811 -p AA_R -b -i test1.mac -o file.out'); 04 C++如何调用ANSYS?利用C++去调用ANSYS的需要应该是比较少的,笔者是为了后续需要ANSYS大量重复计算而用的,利用C++的多线程可以并发调用ANSYS进行计算,从而节省计算时间。C++调用ANSYS主要是用Window自带的api进行调用,主要有WinExec(),ShellExecute()和CreateProcess()三种方式。其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂: (1)WinExec 有两个参数,前一个指定路径,后一个指定显示方式。 (2)ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。 (3)CreateProcess 一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信息,控制新的进程的细节属性,若要达到这些目的,就需要使用CreateProcess函数了。 笔者只使用了WinExec()和CreateProcess()这两种,具体调用如下: string path="C:\\ANSYS10.0\\Ansys Inc\\v100\\ANSYS\\bin\\Intel\\ansys100.exe -p ANE3FL -dir C:\\test -j file -s read -l en-us -b -i C:\\test\\b.txt -o C:\\test\\file.out";WinExec(path.c_str(),SW_HIDE); STARTUPINFO si;PROCESS_INFORMATION pi;LPTSTR szCmdline1=_tcsdup(TEXT("c:\\ANSYS10.0\\Ansys Inc\\v100\\ANSYS\\bin\\Intel\\ansys100.exe"));LPTSTR szCmdline2=_tcsdup(TEXT("-p ANE3FL -dir C:\\test -j file -s read -l en-us -b -i C:\\test\\b.txt -o C:\\test\\file.out"));ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);ZeroMemory( &pi, sizeof(pi) );CreateProcess( szCmdline1, // No module name (use command line) szCmdline2, // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE 0, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &si, // Pointer to STARTUPINFO structure &pi); // Pointer to PROCESS_INFORMATION structure其中接口部分修改如下: (1)按照上述操作来到ANSYS Product Launchar界面 (2)按自己的需要配置好方框的内容,并按以下操作: (3)复 制红色方框的内容到接口处替换即可 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |