首先需要明确,调用的是ANSYS其实存在两种运行方式,一种是平常我们所用的人机交互界面,另一种是命令台界面。以multiphysics为例,它有ANSYS mechanicals 的经典界面即图形化的人机交互界面,也有MAPDL界面,即命令台方式界面,只能输入命令。
如果你想在PYTHON中自动调用ANSYS 的multiphysics模块,然后自动运行你的APDL脚本,那么你需要启动的是MAPDL,而不是经典界面,这个程序的路径在哪儿呢?与经典界面在同一个路径下。如果你想调用其他如dyna,模态分析等模块,则你需要启动的是ansys170.exe,然后在后面附加上参数,指定模块。
启动命令台模块的ANSYS时,后面需要附加一些参数,这些参数可以自在ANSYS的帮助文档下查看具体含义:
了解了这个基本情况之后,你就可以在windows shell 下运行MAPDL模块了,那么如何在PYTHON下调用呢?
这需要用到python的subprocess模块的call函数:
其具体的参数可以查看官方的帮助文档
但是我们的需求很简单,所以只需要用到几个重要的参数就可以了
args:包含需要启动的应用程序,附加的参数,输出的文件等等,用list表示
cwd:表示工作目录,相当于你在windows命令台下的工作目录
shell:True,表示用系统的命令台启动,False表示不用,最好用默认False , 更加安全
例如我调用从PYTHON下调用ANSYS multiphysics可以采用一下命令:
import
subprocess
cmd = [
"E:\Program Files\ANSYS Inc
\\
v170\ANSYS
\\
bin\winx64\MAPDL.exe"
,
'-b'
,
'-i'
,
'2D_TOPO_OPTI.txt'
,
'-o'
,
'2D_TOPO_OPTI.out'
]
subprocess.call(cmd,
cwd
=
'H:\MaterThesis\ANSYS_SD\APDL_script\ANSYS_APDL'
)