OpenSCAD用戶手冊

維基教科書,自由的教學讀本
跳至導覽 跳至搜尋



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. 二維基礎圖形 - 方形, 圓形, 多邊形 以及 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.

Template:Subjects/0 Template:Subjects/0

Template:Subjects/0