Website Design Copyright 2026 © 耀登科技股份有限公司
All Rights Reserved. 網頁設計 by 覺醒設計
在由多個物件構成的複雜模擬場景中,建模往往不只是單一幾何的建立,而是牽涉到各個元件在不同組合狀態下的相對位置、姿態與動態變化。尤其當模型數量增加、互動關係變得更加緊密時,逐一手動調整每個物體的位置與方向,不僅耗時,還容易因為人為操作造成誤差,進而影響模擬結果的準確性與可重現性。因此,若能透過自動化方式統一控制多個物件的移動、旋轉與位置紀錄,不僅能大幅提升建模效率,也能讓整體流程更加穩定且具可追溯性。這正是將 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,內容包含
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 視窗中顯示多球體的隨機運動
依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。
按一下「全部接受」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。您可以在下方管理 Cookie 設定。 按一下「同意」即代表您同意採用目前的設定,更多資訊請瀏覽 隱私權聲明。