OpenSCAD用户手册

维基教科书,自由的教学读本
跳转至: 导航搜索


Template:Book Search

OpenSCAD-logo.png

简介[编辑]

OpenSCAD 是一款用于构建三维立体模型的软件。
他是一款 自由软件 可用于多种操作系统,包括 GNU/Linux, MS Windows and Apple OS X.

不同于其他多数用于构建三维立体模型的自由软件(比如大家熟知的Blender),OpenSCAD的主要用途并不是用于外观艺术渲染,而是更多致力于CAD方面的功能。所以如果你在寻找一款用于构建类似机械零件模型的应用软件,他可能正好是你想要找的,而如果你更感兴趣的是制作电脑动画或模拟生命体模型的话,他可能不够胜任。

OpenSCAD并不是交互式模型设计工具,这一点跟多数CAD工具也不相同。他更像是个二维/三维编译器读取描述对象的程序文件从中生成出模型。这样使设计者能够全面控制模型处理过程,能够容易的改变其中的步骤,或者通过定义配置参数来进行设计。

OpenSCAD主要有两种操作模式,预览和渲染。预览通过利用了三维图形技术计算机图形处理单元速度相对较快,但只作为一个模型的近似结果用于生产artifacts;预览使用的是OpenCSGOpenGL,渲染生成精确的几何模型并完全棋盘化栅格化,其并非近似,从而过程较为漫长,较大的设计通常需要以分钟记甚至小时记的时间;渲染使用的是CGAL几何引擎。

OpenSCAD提供了两种类型的3D建模,构造立体几何Constructive Solid Geometry (CSG)或通过二维图元生成三维空间。

AutoCAD的DXF文件被用作为二维轮廓数据交换格式的。除了使用二维路径建立模型还可以从DXF文件的读取设计参数。除了可以读取DXF文件,OpenSCAD还可以读取或者创建STL和OFF文件格式的三维模型。

OpenSCAD可以从http://openscad.org/下载。您可以在[1]获取更多额外的信息。

假如不想(或不能)在电脑上安装新的OpenSCAD软件,在浏览器支持WebGL的情况下,也可以使用OpenJSCAD( http://OpenJSCAD.org/ ),一个运行在Web浏览器OpenSCAD接口。

本文的葡语翻译(未完成/开发中)可在GitHub库[2]中找到。


教材:

这里有25个基本的幻灯片通过GNUFDL协议免费提供,来指导学生使用OpenSCAD的流程。

Fablab Lannion(法国)编制了很棒的交互式教程(法语),可供参阅。

第一步

目录[编辑]

Template:Print version

  1. 开发阶段:50%(截至Oct 2012) 第一步
  2. 开发阶段:50%(截至Oct 2012) OpenSCAD用户界面
  3. 开发阶段:75%(截至Oct 2012) OpenSCAD语言
    1. 综述 - 初步了解 - 注释, 数值及数据类型, 变量
    2. 基本立体模型 - 立方体, 球体, 柱体 & 多面体
    3. 数学运算符
    4. 数学函数
      1. 三角函数 (cos sin tan acos asin atan atan2)
      2. 其他 (abs ceil concat cross exp floor ln len let log lookup max min norm pow rands round sign sqrt)
    5. 字符串函数 - str, chr
    6. 列表
    7. 变换 - 尺寸 & 方位. scale, resize, rotate, translate, mirror, multmatrix, offset, color, minkowski & hull
    8. 条件 and 迭代 - for, if & assign
    9. CSG 建模 - 基本模型的组合. union, difference, intersection & render
    10. 修饰字符 - 辅助调试, % # ! *
    11. 模型 - 编写自定义基本模型与变换
    12. 用户自定义功能
    13. 包含声明
    14. 其他语言特性 - 特殊的'$'变量, echo, render, surface, search , version() & version_num()
  4. 开发阶段:50%(截至Oct 2012) 使用二维子系统
    1. 二维基础图形 - square, circle, polygon & import_dxf
    2. 文本 - Generate text using installed or user supplied font files.
    3. 三维到二维变换 - projection
    4. 二维到三维变换 - linear_extrude & rotate_extrude
    5. DXF变换
    6. 其他二维数据格式
  5. 开发阶段:75%(截至Oct 2012) STL导入与导出
    1. STL导入
    2. STL导出
  6. 开发阶段:00%(截至Jun 2013) 带注释的项目示例
  7. 开发阶段:00%(截至Oct 2012) 在OpenSCAD上使用外部编辑器
  8. 开发阶段:50%(截至Oct 2012) 在命令行环境下使用OpenSCAD
  9. 开发阶段:50%(截至Oct 2012) 使用源文件编译OpenSCAD
    1. 在Linux/UNIX环境下构建
    2. 在Linux或者Mac OS X上为Windows交叉编译
    3. 在Windows环境下编译(过时的)
    4. 在Windows环境下编译(新)
    5. 在Mac OS X环境下编译
    6. 提交补丁
  10. 开发阶段:50%(截至May 2015)常见问题
  11. 开发阶段:25%(截至Oct 2012)
  12. 开发阶段:75%(截至Oct 2012)词汇表 - 缩写与语法参考

OpenSCAD语法参考[编辑]

Template:Print version

  1. OpenSCAD 语言
    1. General - 先行阅读 - comments, values and data types, variables, vectors, getting input
  2. 3D 模型 -
    1. 3D 基础模型 - cube, sphere, cylinder, polyhedron
    2. 3D 到 2D 投射
  3. 2D 模型 -
    1. 2D 基础模型 - square, circle, polygon
    2. 文本 - Generate text using installed or user supplied font files.
    3. 2D 到 3D 拉伸 - linear_extrude, rotate_extrude
  4. 变换
    1. color
    2. rotate, translate, mirror, multmatrix
    3. scale, resize
    4. offset, minkowski, hull
    5. Combining transformations
  5. 逻辑组合
    1. union, difference, intersection, render
  6. 其他函数与运算
    1. 条件与迭代 - for, intersection_for, if, conditional ? :, assign
    2. 数学运算 - General, Vectors, Matrix multiplication
    3. Mathematical Functions
      1. 三角函数 (cos sin tan acos asin atan atan2)
      2. 其他 (abs ceil concat cross exp floor ln len let log lookup max min norm pow rands round sign sqrt)
    4. 字符串函数 - str, chr
    5. List Comprehensions
    6. 其他语言特性 - Special '$' variables, echo,render, surface, search , version(), version_num(), parent_module(n) and $parent_modules
  7. 用户定义函数及模块
  8. 调试辅助 -  % # ! * echo
  9. 扩展库及编码文件
    1. include - SCAD, CSG
    2. use - SCAD
    3. import - STL, OFF, DXF
      1. import_dxf - 过时的不推荐
      2. import_stl - 过时的不推荐
    4. surface - PNG

Work in progress[编辑]

This section contains documentation about ongoing work which is available as experimental features in snapshot versions of OpenSCAD or not yet integrated at all and pending in a branch or pull-request at the OpenSCAD github repository.

This template adds the current page (presumed to be the main page of a book) to a specified subject category, and tries to add it to the allbooks categories of that subject and all that subject's ancestors.

Usage[编辑]

There are two parameters, one required and non-blank, the other optional.

  • 1 — Required. Names the subject to add the book to.
  • diagnose — Optional. If blank, error conditions result only in addition of the book to hidden Category:Attention needed (allbooks). If non-blank, diagnostic messages are also generated, with suggested remedies and buttons for effecting them.

Only addition to the named subject, Category:{{{1}}}, is done within this template; population of allbooks categories is delegated to {{Subjects/0}}.

This template adds the current page (presumed to be the main page of a book) to a specified subject category, and tries to add it to the allbooks categories of that subject and all that subject's ancestors.

Usage[编辑]

There are two parameters, one required and non-blank, the other optional.

  • 1 — Required. Names the subject to add the book to.
  • diagnose — Optional. If blank, error conditions result only in addition of the book to hidden Category:Attention needed (allbooks). If non-blank, diagnostic messages are also generated, with suggested remedies and buttons for effecting them.

Only addition to the named subject, Category:{{{1}}}, is done within this template; population of allbooks categories is delegated to {{Subjects/0}}.

This template adds the current page (presumed to be the main page of a book) to a specified subject category, and tries to add it to the allbooks categories of that subject and all that subject's ancestors.

Usage[编辑]

There are two parameters, one required and non-blank, the other optional.

  • 1 — Required. Names the subject to add the book to.
  • diagnose — Optional. If blank, error conditions result only in addition of the book to hidden Category:Attention needed (allbooks). If non-blank, diagnostic messages are also generated, with suggested remedies and buttons for effecting them.

Only addition to the named subject, Category:{{{1}}}, is done within this template; population of allbooks categories is delegated to {{Subjects/0}}.