跳转到内容

OpenSCAD

维基百科,自由的百科全书
OpenSCAD
OpenSCAD 2015.03
OpenSCAD 2015.03
開發者Marius Kintel, Claire Wolf[1]
首次发布2010年2月19日,​15年前​(2010-02-19
当前版本2021.01[2]在维基数据编辑
源代码库 編輯維基數據鏈接
编程语言C++QtCGALOpenCSGOpenGL[3]
操作系统Linux, macOS, Windows, FreeBSD, NetBSD, OpenBSD
平台IA-32, x64, arm64
文件大小15–27 MB(依作業系統有所不同)[4]
语言12种语言
类型電腦輔助設計
许可协议GPL-2.0或更新版本
网站www.openscad.org

OpenSCAD是一款電腦輔助設計(CAD)的自由軟體,用於建立實體3D物件。它僅支援腳本的建模器,使用自己的描述語言;3D 預覽可以互動方式操作,但無法在 3D 中互動式修改。相反地,OpenSCAD 腳本會指定幾何基本圖元(如球體、方塊、圓柱體等),並定義如何修改與組合它們(例如透過交集差集、包絡組合或閔可夫斯基和等)來渲染 3D 模型 。因此,該程式執行的是构造实体几何(CSG)。此軟體可在 WindowsLinuxmacOS 等作業系統上使用。

概覽

[编辑]

腳本語言

[编辑]

OpenSCAD 採用專屬腳本語言來產生 3D 圖形。此腳本語言支援函數式程式設計、參數化模組化與重複利用,以及數學運算。變數具有作用域限制,但在每個作用域(scope)之內都是不可變的。

預覽功能

[编辑]

為了快速預覽使用Z緩衝的模型,OpenSCAD 採用了 OpenCSGOpenGL 技術。

與其他 3D 建模軟體類似,使用者可以透過滑鼠在視窗中互動式調整 3D 模型的位置。此外,還能在腳本中定義預設的「鏡頭」視角位置。

零件顏色(包含透明度)可在 3D 視圖中進行設定[註 1]

預覽相對快速,並允許在修改腳本時進行互動式修改。

模型渲染器會考慮光照,但光源不可修改。

使用

[编辑]

OpenSCAD 讓設計師能夠創建精確的 3D 模型與參數化設計,只需調整參數即可輕鬆修改設計[5]

OpenSCAD 文件採用純 ASCII 文本格式人類可讀腳本,在語法上可能更適合與 git版本控制系統整合。

因此,OpenSCAD 是一款面向程式設計師的實體建模工具[6],並被推薦作為入門級的 CAD 工具,用於設計科研教育用途的科學儀器等開放硬體[7]

它常被用於設計3D列印零件,這些零件可輸出為多種 3D 檔案格式。其基於腳本的參數化特性使其能整合至線上模型客製化服務,例如Thingiverse3D列印市集上的「Customizer」工具。

使用 OpenSCAD 建立的 Strandbeest 模型動畫

對於簡單模型,可實現每秒數動畫效果。動畫可影響任何參數,包括攝影機位置或零件尺寸、位置、形狀及存在狀態。動畫可錄製為一組影像,用以建立動態 GIF

目前實驗性地支援與 Calculix 耦合進行有限元素法分析(FEM)[8]FreeCAD 也能導入 OpenSCAD 檔案,搭配 Calculix 或其他支援的 FEM 求解器進行分析[9]。FreeCAD 特別設有與 OpenSCAD 互通的專用工作台[10]

檔案格式

[编辑]

匯入

[编辑]
  • 可導入 DXFSVGPNG 格式的 2D 圖檔,再擠壓成型為單體零件。
  • 能導入 STL、OFF、AMF 與 3MF 格式的 3D 零件,進行比例縮放及加減法運算處理。

匯出

[编辑]

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 物件的開源腳本語言。

註解

[编辑]
  1. ^ 透明度是按建造順序評估的,因此只有已建造的部件才是透明的。

參考資料

[编辑]
  1. ^ Claire Wolf. [2022-09-16]. (原始内容存档于2022-09-20). 
  2. ^ OpenSCAD - News. 
  3. ^ Building OpenSCAD. GitHub. 21 November 2021 [1 March 2014]. (原始内容存档于20 August 2017). 
  4. ^ OpenSCAD - Downloads. [2017-02-09]. (原始内容存档于2021-03-31). 
  5. ^ Evans, Brian, Practical 3D Printers: The Science and Art of 3D Printing, Apress: 113, 2012, ISBN 9781430243922 .
  6. ^ Pettis, Bre; France, Anna Kaziunas; Shergill, Jay, Getting Started with MakerBot, O'Reilly Media, Inc.: 131, 2012, ISBN 9781449338657 .
  7. ^ 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 .
  8. ^ Example. GitHub. 21 November 2021. 
  9. ^ FEM CalculiX - FreeCAD Documentation. 
  10. ^ OpenSCAD Workbench - FreeCAD Documentation. [2021-06-28]. (原始内容存档于2021-05-25). 
  11. ^ OpenSCAD User Manual/Export - Wikibooks, open books for an open world. 
  12. ^ GitHub上的manifold頁面

外部連結

[编辑]