關於 Solvespace 的 3D 格式

關於 Solvespace 的 3D 格式

這幾天研究了 fourbarlinkage 和 jasen_8link 的檔案。

使用純「拉伸」群組的檔案結構如下:

「組合圖」的檔案結構如下:

這兩個 project 的組立都是將零件匯入,並約束到「組合圖」的草圖中。

若是只改動連桿的長度,該零件 .slvs 格式的變動如下:

雖然其中包含一些 20 位小數造成的誤差,但是主要的內容都是紀錄運算結果。

也因為如此,就算其中有缺損,Solvespace 仍能依據主要實體重新算好結果,存檔時重新存入檔案中。

這些運算結果也包含拉伸出的表面,尤其是弧線的分段計算,每個 1/2 圓弧都會分為 4 等分計算,所以一個完整圓會有 8 段 Curve(平面的 4 等分座標都在一直線上),這些數據就是分段點的當前座標。

不過這些算好的數據並不是給當前檔案看的,而是拿來匯入用的,倘若缺少這些數據,使用它們的「組合圖」就會發生缺損,而且回溯結構時會變紅字。

而「組合圖」也會將子項目的數據複製一份存起來,給更大的「組合圖」使用。

然而,「組合圖」要讀取的這些數據不能有錯誤的答案(因為本身沒有該實體),否則該曲線關聯的 Surface 會消失變成破面。

Python-solvespace 的模組沒有加入 Surface 的相關功能,所以沒辦法求出結果。

目前的進度為可以透過 GUI 用迴圈導出 *.slvs 的零件檔案,但是因為上述問題,無法做成組合圖。

不知是否需要加入 Solvespace Surface 的相關功能還是找其他格式(如 OBJ file)解決。

已測試可以在 V-rep 中使用 blender 匯出的模型。


Comments

comments powered by Disqus