OpenSCAD
OpenSCAD 2015.03 | |
| 開發者 | Marius Kintel, Claire Wolf[1] |
|---|---|
| 首次发布 | 2010年2月19日 |
| 当前版本 | 2021.01[2] |
| 源代码库 | |
| 编程语言 | C++、Qt、CGAL、OpenCSG及OpenGL[3] |
| 操作系统 | Linux, macOS, Windows, FreeBSD, NetBSD, OpenBSD |
| 平台 | IA-32, x64, arm64 |
| 文件大小 | 15–27 MB(依作業系統有所不同)[4] |
| 语言 | 12种语言 |
| 类型 | 電腦輔助設計 |
| 许可协议 | GPL-2.0或更新版本 |
| 网站 | www |
OpenSCAD是一款電腦輔助設計(CAD)的自由軟體,用於建立實體3D物件。它僅支援腳本的建模器,使用自己的描述語言;3D 預覽可以互動方式操作,但無法在 3D 中互動式修改。相反地,OpenSCAD 腳本會指定幾何基本圖元(如球體、方塊、圓柱體等),並定義如何修改與組合它們(例如透過交集、差集、包絡組合或閔可夫斯基和等)來渲染 3D 模型 。因此,該程式執行的是构造实体几何(CSG)。此軟體可在 Windows、Linux 與 macOS 等作業系統上使用。
概覽
[编辑]腳本語言
[编辑]OpenSCAD 採用專屬腳本語言來產生 3D 圖形。此腳本語言支援函數式程式設計、參數化模組化與重複利用,以及數學運算。變數具有作用域限制,但在每個作用域(scope)之內都是不可變的。
預覽功能
[编辑]為了快速預覽使用Z緩衝的模型,OpenSCAD 採用了 OpenCSG 和 OpenGL 技術。
與其他 3D 建模軟體類似,使用者可以透過滑鼠在視窗中互動式調整 3D 模型的位置。此外,還能在腳本中定義預設的「鏡頭」視角位置。
零件顏色(包含透明度)可在 3D 視圖中進行設定[註 1]。
預覽相對快速,並允許在修改腳本時進行互動式修改。
模型渲染器會考慮光照,但光源不可修改。
使用
[编辑]OpenSCAD 讓設計師能夠創建精確的 3D 模型與參數化設計,只需調整參數即可輕鬆修改設計[5]。
OpenSCAD 文件採用純 ASCII 文本格式的人類可讀腳本,在語法上可能更適合與 git 等版本控制系統整合。
因此,OpenSCAD 是一款面向程式設計師的實體建模工具[6],並被推薦作為入門級的 CAD 工具,用於設計科研教育用途的科學儀器等開放硬體[7]。
它常被用於設計3D列印零件,這些零件可輸出為多種 3D 檔案格式。其基於腳本的參數化特性使其能整合至線上模型客製化服務,例如Thingiverse等3D列印市集上的「Customizer」工具。

對於簡單模型,可實現每秒數幀的動畫效果。動畫可影響任何參數,包括攝影機位置或零件尺寸、位置、形狀及存在狀態。動畫可錄製為一組影像,用以建立動態 GIF。
目前實驗性地支援與 Calculix 耦合進行有限元素法分析(FEM)[8]。FreeCAD 也能導入 OpenSCAD 檔案,搭配 Calculix 或其他支援的 FEM 求解器進行分析[9]。FreeCAD 特別設有與 OpenSCAD 互通的專用工作台[10]。
檔案格式
[编辑]匯入
[编辑]匯出
[编辑]OpenSCAD 的視圖與模型可輸出為多種格式,包括:
- 檢視畫面可匯出為 PNG 格式。
- 2D 模型可匯出為 SVG、DXF 與 PDF 格式。
- 3D 零件可匯出為基本體積的 3MF、AMF、OFF 及 STL 格式[11],輸出模型不包含色彩、材質或零件定義資訊。
設計
[编辑]OpenSCAD 是以C++開發的 CSG 引擎封裝程式,具備圖形化使用者介面與整合式編輯器。截至 2024 年,正式釋出版本採用計算幾何演算法函式庫(CGAL)作為基礎 CSG 引擎,開發快照版本則額外支援 Manifold作為替代方案[12]。
其腳本語法反映了函數式程式設計的哲學。類似於 Haskell,在作用域內每個「變數」都被視為常數,具有不可變性且最多只能有一個值。
平台實作
[编辑]- 官方獨立版本以C++編寫,適用於 Windows、MacOS 和 Linux等作業系統
- FreeCAD:具有 OpenSCAD 命令列介面,可替代零件求解器(part solver)或零件工作台(part workbench)使用
- 瀏覽器實作版本亦可使用,例如 cadhub.xyz 和 jscad.app。
另見
[编辑]PLaSM:另一種用於創建 3D 物件的開源腳本語言。
註解
[编辑]- ^ 透明度是按建造順序評估的,因此只有已建造的部件才是透明的。
參考資料
[编辑]- ^ Claire Wolf. [2022-09-16]. (原始内容存档于2022-09-20).
- ^ OpenSCAD - News.
- ^ Building OpenSCAD. GitHub. 21 November 2021 [1 March 2014]. (原始内容存档于20 August 2017).
- ^ OpenSCAD - Downloads. [2017-02-09]. (原始内容存档于2021-03-31).
- ^ Evans, Brian, Practical 3D Printers: The Science and Art of 3D Printing, Apress: 113, 2012, ISBN 9781430243922.
- ^ Pettis, Bre; France, Anna Kaziunas; Shergill, Jay, Getting Started with MakerBot, O'Reilly Media, Inc.: 131, 2012, ISBN 9781449338657.
- ^ Pearce, Joshua M., Chapter 6: „Digital Designs and Scientific Hardware“, Open-Source Lab: How to Build Your Own Hardware and Reduce Research Costs, Elsevier: 165–254, 2014, ISBN 9780124104624.
- ^ Example. GitHub. 21 November 2021.
- ^ FEM CalculiX - FreeCAD Documentation.
- ^ OpenSCAD Workbench - FreeCAD Documentation. [2021-06-28]. (原始内容存档于2021-05-25).
- ^ OpenSCAD User Manual/Export - Wikibooks, open books for an open world.
- ^ GitHub上的manifold頁面