如何在Abaqus的python中调用Matlab程序
1. 确定版本信息
- Abaqus2018
- 操作系统Win10 64位
- Python版本2.7(路径
C:\SIMULIA\CAE\2018\win_b64\tools\SMApy\python2.7
)
2. 备份python
- 将上述的“python2.7”文件夹复制出来,避免因操作错误而导致的重新安装Abaqus
- 然后打开python2.7文件夹,把里面的python.exe和pythonw.exe复制出来,分别命名为python27.exe和pythonw27.exe;该操作便于后续确定环境配置是否正确。
3. 设置环境变量
确保使用的是abaqus中的python版本,更改环境变量
C:\SIMULIA\CAE\2018\win_b64\tools\SMApy\python2.7
C:\SIMULIA\CAE\2018\win_b64\tools\SMApy\python2.7\Scripts
- 按win+R 出现 运行 窗口,输入cmd,打开cmd窗口
- 然后输入
python27
回车,将弹出如下界面,则设置没有问题。
4. 安装程序
为了在python中可以调用matlab的程序,配置过程如下:
- matlab中python的路径
C:\Program Files\MATLAB\R2016b\extern\engines\python
- 以管理员程序运行命令行工具,在cmd窗口下,进入到上述路径。
cd "C:\Program Files\MATLAB\R2016b\extern\engines\python"
- 然后输入
python setup.py install
5. 调试运行
调试运行在Abaqus的python命令行工具中进行。
- 在Abaqus中配置工作路径
import sys
sys.path.append(r'H:\Abaqus\GUI\abaqus_plugins\Lib')
- 定义Matlab函数
function [ out ] = countNumbers( a,b )
out = a+b;
end
- 在Python中调用该函数
import sys
sys.path.append(r'H:\Abaqus\GUI\abaqus_plugins\Lib')
import matlab.engine
eng = matlab.engine.start_matlab()
sum = eng.countNumbers(matlab.double([5]),matlab.double([4]))
print(sum)
注意:matlab对数类型要求较为严格,在输入参数时,应当采用上述方式:matlab.double([5]),期中括号内的变量为列表
参考资料
【1】abaqus安装python第三方程序包/模块示意
【2】Install Matlab Engine API for Python
【3】在python中调用matlab函数
【4】从 Python 中调用用户脚本和函数
【5】Python调用Matlab