3D 之邏輯與美感交會 - OpenSCAD

Post on 15-Apr-2017

366 views 3 download

Transcript of 3D 之邏輯與美感交會 - OpenSCAD

Justin Lin

caterpillar@openhome.cc

https://openhome.cc

3D 之邏輯與美感交會 - OpenSCAD

接下來…

• Why 程式建模? (滑鼠)

• OpenSCAD 動手做

• 程式之美、數學之美

• 作品與教學討論

Why 程式建模?

定位

重複 數學

步驟

修改

https://www.thingiverse.com/thing:1241377

https://www.thingiverse.com/thing:1580580

Thingiverse Customizer

https://www.thingiverse.com/thing:1504859

成功之母雞

https://www.thingiverse.com/thing:1356050

OpenSCAD動手做

text("Hello, World");

存檔

linear_extrude(5)

text("Hello, World");

Challenge

• 中文行不行?

• 使用別的文字編輯器? 可以看我的原始碼

我的文件中有談到

https://www.thingiverse.com/thing:2194546

height = 5;

characters = "Hello, World";

font_size = 10;

linear_extrude(height)

text(

characters,

size = font_size,

valign = "center",

halign = "center"

);

linear_extrude(height / 2)

square(

[font_size * len(characters), font_size * 2],

center = true

);

thickness = 2;

linear_extrude(height) difference() {

square(

[font_size * len(characters), font_size * 2],

center = true

);

square(

[font_size * len(characters) - thickness, font_size * 2

- thickness],

center = true

);

}

減集

translate([font_size * len(characters) / 2, 0, 0])

linear_extrude(height / 2)

difference() {

circle(font_size);

circle(font_size - thickness);

}

改成自己想要字吧!

程式建模便於參數化

先 render 模型

就可以匯出 STL

程式之美

來整理程式碼

建一個模組

包住程式碼

呼叫模組

使用變數

使用參數

指定參數

抽取模組

使用模組

想馬上來點不同的?

程式建模便於組織模組

數學之美

給我一顆心 ♫~♬

分解愛心

正方形

圓形

Divide and Conquer

看來正方形必須下移

轉個 45 度

這邊要對齊

三角函式拿出來用啦!

另一半嘞?

對齊了

Challenge

• 老在挖空模型?

https://openhome.cc/Gossip/OpenSCAD/Children.html

作品與教學討論

3DP 友好設計

360 度

一個字幾度?

圓周長?

字大小 S,可以排幾個?

拉高、加底盤、加空心圓柱…

每片都一樣

加個長方形 取交集就是了

surface("One_Piece.png");

跟一個拉高的長方形取交集,可以得到一個薄的模型

circle(100, $fn = 12);

12 個三角形組成

一個長方體

與許多可組成圓的三角形取交集

得到這些東西

再拼成一個圓

Challenge

• 程式

–可用 Scratch 培養程式設計基礎(國小?)

–玩過 Python 會有幫助(國小?)

https://www.blockscad3d.com/editor/

• 英文

–顯而易見,語法上使用英文

–也許考慮術語對照表(國小?)

–中文資料目前不多! (國小?)

• 數學

–座標觀念(直角座標、極座標)(國小?)

–不免遇到三角函數(國小?)

提供資源

動手實作

給予信心

鼓勵挑戰

Justin Lin

caterpillar@openhome.cc

https://openhome.cc

Thanks