跳转到内容

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

外部链接

[编辑]