1. .slvs 格式

  2. 3D Printer 模擬

.slvs 格式

其實 .slvs 格式只是將 Solvespace 的暫存數據記錄下來,若有缺失就會使用預設數據,存檔時會刷新而非只修改部份。

參考的部份是空白文件的數據(包含預設平面、向量、原點等等),當有增加實體時就會追加內容。

特別注意的是這些代碼皆為 16 進位,True 的部份用 1 表示,False 則用 0 表示。

總共分為 5 個部份:

  1. 群組:群組,類似圖層的概念。

  2. 參數:之後會用到的幾何數據,會用編號歸納關係,基本上無法共用。

  3. 回應:圖形化界面的回應,包含滑鼠能點擊到的所有物件。

  4. 實體:點線的構成,包含實體建構時的參考副本,例如 point[0] 到 point[1] 的內容會被歸納到線條的從屬下。未閉合的端點會有重複的紀錄,不過實驗過刪除多餘的紀錄仍可正常開啟。不同實體有不同屬性可調整。

  5. 約束:用來約束實體,不同約束有不同屬性可調整。

參照下列格式:

辨識標頭(使用 ISO-8859-15):
±²³SolveSpaceREVa

參考群組(00000001):
Group.h.v=00000001
Group.type=5000
Group.name=#references
...
AddGroup

加入群組:
Group.h.v=00000002
Group.type=5001
Group.order=1
Group.name=sketch-in-plane
...
AddGroup

參考參數(00010010~00030023):
Param.h.v.=00010010
AddParam

加入參數:00030020
Param.h.v.=00040010
Param.val=40.00000000000000000000
AddParam

參考回應(00000001~00000003):
Request.h.v=00000001
Request.type=100
Request.group.v=00000001
Request.construction=0
AddRequest

加入回應:
Request.h.v=00000004
Request.type=101
Request.workplane.v=80020000
Request.group.v=00000002
Request.construction=0
AddRequest

參考實體(00010000~00030020):
Entity.h.v=00010000
Entity.type=10000
Entity.construction=0
Entity.point[0].v=00010001
Entity.normal.v=00010020
Entity.actVisible=1
AddEntity

加入實體:
Entity.h.v=00040000
Entity.type=2001
Entity.construction=0
Entity.workplane.v=80020000
Entity.actPoint.x=40.00000000000000000000
Entity.actPoint.y=30.00000000000000000000
Entity.actVisible=1
AddEntity

複製項(80020000~80020002):
Entity.h.v=80020000
Entity.type=10000
Entity.construction=0
Entity.point[0].v=80020002
Entity.normal.v=80020001
Entity.actVisible=1
AddEntity

加入約束:
Constraint.h.v=00000001
Constraint.type=30
Constraint.group.v=00000002
Constraint.workplane.v=80020000
Constraint.valA=50.00000000000000000000
Constraint.ptA.v=00040000
Constraint.ptB.v=80020002
Constraint.other=0
Constraint.other2=0
Constraint.reference=0
AddConstraint

研究花了一些時間,可能得後天才能加入匯出功能。

Pyslvs 的群組應該只會有一個,用點之間的線架構就好了。

應該只有 3D Mode 才有 STL 支援的功能。

剩下 3D Mode 將 2D 的功能加過去,另外新增線條鉛錘與水平的約束、應該就能結束了。


3D Printer 模擬

關於 3D Printer 模擬的部份,可能必須寫一個新的軟體來應對。

因為一些定義如果直接套用目前的範本,可能會無法模擬。

畫了個模型,之後套範本應該比較快。


Comments

comments powered by Disqus