「三才者,天地人。三光者,日月星。」——《三字經》
宇宙萬物能井然有序,是因為天地人各有其位,日月星各司其職。:如果所有物件全混在一塊、沒有順序的結構,電腦可能無法理解我們的理解,也就讀不懂它們之間的關係。
(話說人間隨處一片天的那位缺很久了...)
昨天把尺規校正為公尺,想想工廠內設備的「長幼順序」該怎麼呈現呢? Blender 的 outline 清單收納整齊。設備跟整個空間是一層一層的樹狀結構:
Enterprise(企業)
└── Site(廠區)
└── Area(廠房/作業區)
└── WorkCell(工作站單元)
└── Equipment(機台設備)
└── Sub-assembly(活動機構模組)
└── Sensor / Actuator(感測器 / 作動機構,如氣缸、伺服馬達)
要將這套規則套到 3D 與 OpenUSD 裡:
Collection(集合):在傳統繪圖裡它像分類資料夾;數位孿生裡,用來劃定「系統邊界」與「命名空間」,會直接對應到 OpenUSD 的 Scope。
Parenting(父子關係):子物件會繼承父物件的空間位移與旋轉。如果產線整條往前推,上面的機台和感測器自然得跟著走,這就是機械動態(Kinematics)的核心。
語意化命名規則:名字就是它的身分證字號。一個合規的命名,必須能讓自動化腳本一眼看出它是哪一區、哪台設備、什麼零件。
銜接 OpenUSD 的 Prim Path:OpenUSD 裡的所有節點都叫 Prim,定址方式就像檔案路徑:/World/Line01/Conveyor01/Drive_Motor。在 Blender 裡把階層配對,未來的 USD 路徑才會乾淨漂亮。
試著透過空物件(Empty),把整個空間與輸送帶的關係配對起來。
在專案的 docs/ 資料夾下建立一份 naming_convention.md,把代號規則紀錄一下:
命名格式:{前綴}_{站點或設備編號}_{零件名稱}
常用前綴定義:
GRP_:邏輯群組 / Collection(Scope)
DEV_:完整機台設備(Equipment Xform)
SUB_:子機構 / 活動總成(Sub-assembly)
PRT_:實體外觀零件(Part Mesh)
SNS_:感測與監控標記點(Sensor Prim)
打開 Blender 檔案,保持畫面乾淨,用空物件把階層搭起來:
建立頂層集合:在 Outliner 右鍵新增 Collection,取名為 GRP_MiniFactory。
建立產線節點:在 3D 視圖按 Shift + A $\to$ Empty $\to$ Plain Axes,將它命名為 DEV_Line01。
建立輸送帶節點:再新增一個 Empty,取名為 DEV_Conveyor01。在 Outliner 裡按住 Shift 將它拖曳到 DEV_Line01 上面放開,讓它成為子節點(或是先選子物件、再選父物件,按下 Ctrl + P $\to$ Keep Transform)。