RecurDynV9R5版本的二次开发模块ProcessNet开始支持Python语言,提供多种Python库,使用者可以利用这一简单、易上手的语言为重复性任务开发自动化脚本实现自动建模。在此以复摆为例,说明基于Python的RecurDyn二次开发具体方法以及相关要点:
1 安装Python运行环境
RecurDyn仅支持Python3.5及以上版本,如果当前电脑没有安装对应的版本,请前往Python官网下载并安装;
注:如果安装机器无法访问因特网请提前下载好Python安装包及其对应的附加包pywin32;
安装好Python后需要安装Python的附加包pywin32,以python-3.10.5-amd64.exe为例;
1)打开CMD命令窗口,输入cd /d [Python Installed Dir],然后回车完成目录的切换;
2)因特网可访问时:输入命令python -m pip install pywin32, 然后回车开始安装附加包pywin32;
3)因特网不可用时:输入命令python -m pip install[pywin32 Package Path], 然后回车开始安装附加包pywin32;
为RecurDyn指定Python路径,从RecurDyn的Home>Setting>ProcessNet打开ProcessNet的设置窗口并设置Python的路径。
2 创建并运行ProcessNet Python脚本
注:Python脚本只针对第一个RecurDyn实例有效。
1)从RecurDyn的安装目录下的Bin/Python目录中拷贝ProcessNetTemplate.py到你的项目目录中,根据需要在这个文件中编写代码并保存;
2)从RecurDyn的Customize>ProcessNet (Python)>Run打开Python脚本的运行窗口,选择上一步的py文件,然后点击Run运行脚本;
3)也可以不从RecurDyn中而在Python的IDE中或用命令行直接运行这个脚本文件。
3 ProcessNet Python开发实例
本实例在Visual Studio Code中编码完成,VisualStudio Code中有接口的智能提示功能,方便快速脚本编写。
#==============================================================================
# ProcessNet Python Example
# The input parameters of the model
pt1 = [0, 300, 0]
pt2 = [-500, -200, 0]
pt3 = [-800, -900, 0]
radius = 50
# Create the bodies
body1 = model.CreateBodyCylinderWithPointPointRadius("Body1",pt1, pt2, radius)
body2 =model.CreateBodyCylinderWithPointPointRadius("Body2", pt2, pt3,radius)
body1.Graphic.Color = 0xFFFF00;
body2.Graphic.Color = 0x00FF00;
# Create the Joints
frame1 =model_document.CreateReferenceFrame()
frame1.SetOrigin(pt1[0], pt1[1],pt1[2])
revjoint1 =model.CreateJointRevolute("RevJoint1", model.Ground, body1, frame1)
frame1.SetOrigin(pt2[0], pt2[1],pt2[2])
revjoint2 =model.CreateJointRevolute("RevJoint2", body1, body2, frame1)
#==============================================================================