使用 Lua 編寫參數化 2D 和 3D 模型。
LuaCAD 將 Lua 5.4 嵌入 Rust 引擎中,該引擎直接透過 Manifold 評估 CSG 操作,或生成 OpenSCAD 程式碼進行外部渲染。
或從原始碼建置,這需要 Rust:
兩個 crate 都會自行包含其 C/C++ 依賴項,因此無需安裝系統函式庫 — 但建置它們必須有 C++ 編譯器和 CMake。
luacad 會建置 Manifold 和 Clipper2;luacad-studio 額外建置 OpenCSG,這需要 OpenGL 開發標頭檔(在 Debian/Ubuntu 上:libgl1-mesa-dev, libx11-dev, libxcb1-dev, libxkbcommon-dev, libxrandr-dev, libwayland-dev)。
convert 和 watch 會根據輸出副檔名推斷格式;--format <fmt> 會覆寫它,而 --via-openscad 會將匯出交給已安裝的 OpenSCAD 二進位檔,而不是使用 Manifold 建置網格。
LuaCAD 完全支援 Belfry OpenSCAD Library v2,該函式庫已在 LuaCAD 中重新實作,因此無需安裝 OpenSCAD 或 BOSL2 即可進行渲染、預覽和匯出為網格:
匯出為 .scad 仍然會寫入 BOSL2 呼叫本身,這使得匯出的檔案與產生它的腳本一樣短。
text() 會將系統字型輪廓化為草圖,而 text3d() 會一步將其拉伸,因此文字會成為實際的幾何圖形,而不是 SCAD 輸出:
import() 會讀取 LuaCAD 寫入的每種網格格式,並傳回一個可以像任何基本圖形一樣轉換和組合的實體;SVG 和 DXF 會傳回一個 2D 草圖,準備好進行拉伸。
您的腳本傳回的每個值都會成為其自身的 3MF 物件,因此切片軟體會將它們載入為可單獨移動的部分。使用 :name(…) 為它們加上標籤,以控制它們在物件列表中的顯示方式。
其他格式無法表達獨立物件,因此它們會將所有內容展平成單一網格。