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页面

      外部链接[编辑]