热门问题
时间线
聊天
视角

OpenSCAD

参数式 CAD 软件 来自维基百科,自由的百科全书

OpenSCAD
Remove ads

OpenSCAD是一款电脑辅助设计(CAD)的自由软件,用于建立实体3D物件。它仅支援脚本的建模器,使用自己的描述语言;3D 预览可以互动方式操作,但无法在 3D 中互动式修改。相反地,OpenSCAD 脚本会指定几何基本图元(如球体、方块、圆柱体等),并定义如何修改与组合它们(例如透过交集差集、包络组合或闵可夫斯基和等)来渲染 3D 模型 。因此,该程式执行的是构造实体几何(CSG)。此软件可在 WindowsLinuxmacOS 等操作系统上使用。

事实速览 开发者, 首次发布 ...
Remove ads

概览

脚本语言

OpenSCAD 采用专属脚本语言来产生 3D 图形。此脚本语言支援函数式程式设计、参数化模组化与重复利用,以及数学运算。变数具有作用域限制,但在每个作用域(scope)之内都是不可变的。

预览功能

为了快速预览使用Z缓冲的模型,OpenSCAD 采用了 OpenCSGOpenGL 技术。

与其他 3D 建模软件类似,使用者可以透过鼠标在视窗中互动式调整 3D 模型的位置。此外,还能在脚本中定义预设的“镜头”视角位置。

零件颜色(包含透明度)可在 3D 视图中进行设定[注 1]

预览相对快速,并允许在修改脚本时进行互动式修改。

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

使用

OpenSCAD 让设计师能够创建精确的 3D 模型与参数化设计,只需调整参数即可轻松修改设计[5]

OpenSCAD 文件采用纯 ASCII 文本格式人类可读脚本,在语法上可能更适合与 git版本控制系统整合。

因此,OpenSCAD 是一款面向程序员的实体建模工具[6],并被推荐作为入门级的 CAD 工具,用于设计科研教育用途的科学仪器等开放硬件[7]

它常被用于设计3D打印零件,这些零件可输出为多种 3D 档案格式。其基于脚本的参数化特性使其能整合至线上模型客制化服务,例如Thingiverse3D打印市集上的“Customizer”工具。

Thumb
使用 OpenSCAD 建立的 Strandbeest 模型动画

对于简单模型,可实现每秒数动画效果。动画可影响任何参数,包括摄影机位置或零件尺寸、位置、形状及存在状态。动画可录制为一组影像,用以建立动态 GIF

目前实验性地支援与 Calculix 耦合进行有限元素法分析(FEM)[8]FreeCAD 也能导入 OpenSCAD 档案,搭配 Calculix 或其他支援的 FEM 求解器进行分析[9]。FreeCAD 特别设有与 OpenSCAD 互通的专用工作台[10]

Remove ads

档案格式

汇入

  • 可导入 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. 透明度是按建造顺序评估的,因此只有已建造的部件才是透明的。

参考资料

外部链接

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads