基于Python的RecurDyn二次開發(fā)

RecurDynV9R5版本的二次開發(fā)模塊ProcessNet開始支持Python語言,提供多種Python庫,使用者可以利用這一簡單、易上手的語言為重復(fù)性任務(wù)開發(fā)自動化腳本實現(xiàn)自動建模。在此以復(fù)擺為例,說明基于Python的RecurDyn二次開發(fā)具體方法以及相關(guān)要點:

基于Python的RecurDyn二次開發(fā)的圖1

1 安裝Python運行環(huán)境

RecurDyn僅支持Python 3.5及以上版本,如果當(dāng)前電腦沒有安裝對應(yīng)的版本,請前往Python官網(wǎng)下載并安裝;

注:如果安裝機器無法訪問因特網(wǎng)請?zhí)崆跋螺d好Python安裝包及其對應(yīng)的附加包pywin32;

安裝好Python后需要安裝Python的附加包pywin32,以python-3.10.5-amd64.exe為例;

1)打開CMD命令窗口,輸入cd /d [Python Installed Dir],然后回車完成目錄的切換;

2)因特網(wǎng)可訪問時:輸入命令python -m pip install pywin32, 然后回車開始安裝附加包pywin32;

基于Python的RecurDyn二次開發(fā)的圖2

3)因特網(wǎng)不可用時:輸入命令python -m pip install [pywin32 Package Path], 然后回車開始安裝附加包pywin32;

基于Python的RecurDyn二次開發(fā)的圖3

為RecurDyn指定Python路徑,從RecurDyn的Home>Setting>ProcessNet打開ProcessNet的設(shè)置窗口并設(shè)置Python的路徑。

基于Python的RecurDyn二次開發(fā)的圖4

基于Python的RecurDyn二次開發(fā)的圖5

2 創(chuàng)建并運行ProcessNet Python腳本

注:Python腳本只針對第一個RecurDyn實例有效。

1)從RecurDyn的安裝目錄下的Bin/Python目錄中拷貝ProcessNetTemplate.py到你的項目目錄中,根據(jù)需要在這個文件中編寫代碼并保存;

2)從RecurDyn的Customize>ProcessNet (Python)>Run打開Python腳本的運行窗口,選擇上一步的py文件,然后點擊Run運行腳本;

基于Python的RecurDyn二次開發(fā)的圖6

3)也可以不從RecurDyn中而在Python的IDE中或用命令行直接運行這個腳本文件。

3 ProcessNet Python開發(fā)實例

本實例在Visual Studio Code中編碼完成,Visual Studio Code中有接口的智能提示功能,方便快速腳本編寫。

基于Python的RecurDyn二次開發(fā)的圖7


#==============================================================================

# 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)

#==============================================================================


文章來源:recurdyn

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

3
3
7