HyperStudy注册python函数的流程非常简单:
1.定义一个有返回值的函数,因为其返回值是作为响应的或用于计算的,所以必须要有返回值;
2.编写HyperStudy preferences文件.mvw,在其内注册1中定义的函数;
3.在HyperStudy中使用2中的mvw文件。
01 复杂响应的python函数
定义一个复杂相应函数,存为.py文件。本文以源点平均动刚度为例,定义DynamicStiffnessForHS.py文件其内容如下:
- from numpy import trapz
- def dynamic_k_avg(x, y):
- pi = 3.141592653
- f = x[-1] ** 3 - x[0] ** 3
- area = trapz(y, x, dx=0.001)
- # print(area)
- return area, 4 * pi * pi * f / (3 * area)
- def dk(x, y):
- return dynamic_k_avg(x, y)[1]
复制代码02 HyperStudy preferences文件.mvw
文件内容如下:
- *Id("HyperStudy v21.0")
- *BeginDefaults()
- *BeginPlotDefaults()
- *RegisterPythonFunction("dk","K:\my-simulation\Abaqus\Abaqus_MainGui_customize\abaqus_plugins\dynamic_stiffness\DynamicStiffnessForHS.py",2)
- *EndPlotDefaults()
- *EndDefaults()
复制代码可以看出*RegisterPythonFunction就是注册python函数的关键指令,关于该指令说明如下:
03 使用preferences文件.mvw
1.启动HyperStudy
2.file菜单,点击Use Preferences File
3.选择编写好的.mvw文件
04 函数的使用
需要注意的是HyperStudy向Python传递数组类型的参数时,是使用{}的而不是[],如下的在HyperStudy中的计算结果与直接使用python时一致的。