【Python API】使用 VS Code 自動化控制 Sim4Life 3D 視窗中的 CAD 模型

【Python API】使用 VS Code 自動化控制 Sim4Life 3D 視窗中的 CAD 模型

在由多個物件構成的複雜模擬場景中,建模往往不只是單一幾何的建立,而是牽涉到各個元件在不同組合狀態下的相對位置、姿態與動態變化。尤其當模型數量增加、互動關係變得更加緊密時,逐一手動調整每個物體的位置與方向,不僅耗時,還容易因為人為操作造成誤差,進而影響模擬結果的準確性與可重現性。因此,若能透過自動化方式統一控制多個物件的移動、旋轉與位置紀錄,不僅能大幅提升建模效率,也能讓整體流程更加穩定且具可追溯性。這正是將 Sim4Life Python API 與開發工具整合應用於模擬平台時,所能發揮的重要價值。   

 

本文將以多體隨機運動為演示案例,說明如何透過 VS Code 的自動化指令執行功能,一次性控制 Sim4Life 3D 視窗中的多個 CAD 模型,並同步記錄各種組合狀態下的位移與位置資訊。在開始實作之前,建議先參閱 "運用 VS Code 編輯器遠端開發與除錯 Sim4Life Python 腳本: 連線設定與環境配置教學"  一文,完成相關的前置設定,以確保後續流程能順利進行。

本實作以多體隨機運動為基礎,透過常態分布產生三維隨機位移,並加入避免球體重疊的條件限制,以模擬球體在空間中的動態行為。   

 

1. 建立模型(Demo_create_models.py) 

  

(1) 導入 python 模組、設定球體參數、移動範圍與建立紀錄球體中心位置的變數

 

(2) 定義用於檢查球體是否重疊以及生成球體的函式

 

(3) 建立球體

 

(4) 點選 VS Code 視窗右上方 … 符號,按下 S4L: Run Python Script 執行腳本

 

(5) 在 Sim4Life 視窗檢視生成的球體模型,確認腳本正常運行

2. 移動模型(Demo_move_models.py) 

 

(1) 讀取各球體球心座標

 

(2) 以設定的步長大小為移動的單位,執行多球體的隨機運動,並同時檢查每次移動時兩球體間是否發生碰撞

 

(3) 點選 VS Code 視窗右上方 … 符號,按下 S4L: Run Python Script 執行腳本,從 Sim4Life 的 Console 視窗查看執行腳本後,各球體的位移大小

3. 設定可自動化重複執行腳本的指令

 

(1) 在 VS Code Extension 欄位搜尋並安裝擴充套件: multi-command

 

(2) 在 settings.json 新增自訂的指令 

 

方法一: 手動新增要自動執行的指令集

 

i. 在 VS Code 介面上方搜尋欄輸入 > Preferences: Open User Settings (JSON),點選後開啟設定檔 settings.json

 

ii. 在 settings.json 設定檔中加入 multiCommand 指令,定義此多重指令集的名稱為 "multiCommand.runS4LLoop" 、設定每個指令的執行間隔以及在 sequence 鍵值中輸入需執行的指令 "extension.startRunPythonScript"

 

"multiCommand.commands": [     

    {         

        "command": "multiCommand.runS4LLoop",         

        "sequence": [             

            { "command": "extension.startRunPythonScript" },            

            { "command": "extension.startRunPythonScript " },             

            { "command": "extension.startRunPythonScript " },                                   ……          

        ]    

    }

]

 

方法二: 自動化設定

 

 i. 編寫可在 settings.json 設定檔中自動新增 multiCommand.commands 指令的腳本 update_vscode_multicommand.py,內容包含

 

  • 設定 extension.startRunPythonScript 的執行次數  
  • 尋找 VS Code settings.json 檔案路徑 
  • 讀取 settings.json 檔案

 

  • 生成 multiCommand 設定  
  • 插入或更新 multiCommand.commands 
  • 寫入 settings.json

 

ii. 在 VS Code 視窗右上方按下 Run Python File 指令,執行 update_vscode_multicommand.py 腳本

 

(3) 綁定快捷鍵 

 

i. 搜尋 Preferences: Open Keyboard Shortcuts (JSON),開啟 keybindings.json 檔案

 

ii. 加入 multiCommand 指令的快捷鍵設定

 

{     

    "key": "ctrl+r", 

    "command": "multiCommand.runS4LLoop"

 }

 

4. 按下快捷鍵執行 multiCommand 指令,在 Sim4Life 3D 視窗中顯示多球體的隨機運動

CONTACT US
如果您對我們的產品服務有興趣,歡迎直接與我們聯繫 !
產品介紹 最新消息 聯絡我們

依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。
按一下「全部接受」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。您可以在下方管理 Cookie 設定。 按一下「同意」即代表您同意採用目前的設定,更多資訊請瀏覽 隱私權聲明

此網站使用了Cookies

依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。按一下「同意」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。

按一下「僅必需的」,代表您只允許我們置放必要的 Cookie。網站運行離不開這些 Cookie 且您不能在系統中將其關閉。通常僅根據您所做出的操作(即服務請求)來設置這些 Cookie,如設置隱私偏好、登錄或填充表格。您可以將您的瀏覽器設置為阻止或向您提示這些 Cookie,但可能會導致某些網站功能無法工作。

關於Cookie 谷歌隱私權政策