OpenSCAD

維基百科,自由的百科全書
跳至導覽 跳至搜尋
OpenSCAD
File:Openscad.svg
OpenSCAD 2015.03
OpenSCAD 2015.03
開發者Marius Kintel, Claire Wolf[1]
首次發布2010年2月19日,​16年前​(2010-02-19
當前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    源代碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    編程語言C++QtCGALOpenCSGOpenGL[2]
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      操作系統Linux, macOS, Windows, FreeBSD, NetBSD, OpenBSD
      平台IA-32, x64, arm64
      文件大小15–27 MB(依作業系統有所不同)[3]
      語言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 模型與參數化設計,只需調整參數即可輕鬆修改設計[4]

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

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

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

      File:Strandbeest 3d - crank offset corrected.gif
      使用 OpenSCAD 建立的 Strandbeest 模型動畫

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

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

      檔案格式[編輯]

      匯入[編輯]

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

      匯出[編輯]

      OpenSCAD 的視圖與模型可輸出為多種格式,包括:

      • 檢視畫面可匯出為 PNG 格式。
      • 2D 模型可匯出為 SVG、DXF 與 PDF 格式。
      • 3D 零件可匯出為基本體積的 3MF、AMF、OFF 及 STL 格式[10],輸出模型不包含色彩、材質或零件定義資訊。

      設計[編輯]

      OpenSCAD 是以C++開發的 CSG 引擎封裝程式,具備圖形化使用者介面整合式編輯器。截至 2024 年,正式釋出版本採用計算幾何演算法函式庫(CGAL)作為基礎 CSG 引擎,開發快照版本則額外支援 Manifold作為替代方案[11]

      其腳本語法反映了函數式程式設計的哲學。類似於 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. ^ Building OpenSCAD. GitHub. 21 November 2021 [1 March 2014]. (原始內容存檔於20 August 2017). 
      3. ^ OpenSCAD - Downloads. [2017-02-09]. (原始內容存檔於2021-03-31). 
      4. ^ Evans, Brian, Practical 3D Printers: The Science and Art of 3D Printing, Apress: 113, 2012, ISBN 9781430243922 .
      5. ^ Pettis, Bre; France, Anna Kaziunas; Shergill, Jay, Getting Started with MakerBot, O'Reilly Media, Inc.: 131, 2012, ISBN 9781449338657 .
      6. ^ 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 .
      7. ^ Example. GitHub. 21 November 2021. 
      8. ^ FEM CalculiX - FreeCAD Documentation. 
      9. ^ OpenSCAD Workbench - FreeCAD Documentation. [2021-06-28]. (原始內容存檔於2021-05-25). 
      10. ^ OpenSCAD User Manual/Export - Wikibooks, open books for an open world. 
      11. ^ GitHub上的manifold頁面

      外部連結[編輯]