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

70
Justin Lin [email protected] https://openhome.cc 3D 之邏輯與美感交會 - OpenSCAD

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

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

Justin Lin

[email protected]

https://openhome.cc

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

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

接下來…

• Why 程式建模? (滑鼠)

• OpenSCAD 動手做

• 程式之美、數學之美

• 作品與教學討論

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

Why 程式建模?

Page 4: 3D 之邏輯與美感交會 - OpenSCAD
Page 5: 3D 之邏輯與美感交會 - OpenSCAD

定位

重複 數學

步驟

修改

Page 6: 3D 之邏輯與美感交會 - OpenSCAD
Page 7: 3D 之邏輯與美感交會 - OpenSCAD

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

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

Page 10: 3D 之邏輯與美感交會 - OpenSCAD
Page 11: 3D 之邏輯與美感交會 - OpenSCAD

Thingiverse Customizer

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

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

成功之母雞

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

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

OpenSCAD動手做

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

text("Hello, World");

存檔

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

linear_extrude(5)

text("Hello, World");

Page 17: 3D 之邏輯與美感交會 - OpenSCAD
Page 18: 3D 之邏輯與美感交會 - OpenSCAD

Challenge

• 中文行不行?

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

我的文件中有談到

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

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

height = 5;

characters = "Hello, World";

font_size = 10;

linear_extrude(height)

text(

characters,

size = font_size,

valign = "center",

halign = "center"

);

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

linear_extrude(height / 2)

square(

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

center = true

);

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

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

);

}

減集

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

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

linear_extrude(height / 2)

difference() {

circle(font_size);

circle(font_size - thickness);

}

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

改成自己想要字吧!

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

程式建模便於參數化

先 render 模型

就可以匯出 STL

Page 25: 3D 之邏輯與美感交會 - OpenSCAD
Page 27: 3D 之邏輯與美感交會 - OpenSCAD

程式之美

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

來整理程式碼

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

建一個模組

包住程式碼

呼叫模組

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

使用變數

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

使用參數

指定參數

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

抽取模組

使用模組

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

想馬上來點不同的?

Page 34: 3D 之邏輯與美感交會 - OpenSCAD
Page 35: 3D 之邏輯與美感交會 - OpenSCAD

程式建模便於組織模組

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

數學之美

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

給我一顆心 ♫~♬

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

分解愛心

正方形

圓形

Divide and Conquer

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

看來正方形必須下移

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

轉個 45 度

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

這邊要對齊

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

三角函式拿出來用啦!

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

另一半嘞?

對齊了

Page 44: 3D 之邏輯與美感交會 - OpenSCAD
Page 45: 3D 之邏輯與美感交會 - OpenSCAD
Page 46: 3D 之邏輯與美感交會 - OpenSCAD

Challenge

• 老在挖空模型?

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

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

作品與教學討論

Page 48: 3D 之邏輯與美感交會 - OpenSCAD
Page 50: 3D 之邏輯與美感交會 - OpenSCAD

3DP 友好設計

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

360 度

一個字幾度?

圓周長?

字大小 S,可以排幾個?

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

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

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

每片都一樣

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

加個長方形 取交集就是了

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

surface("One_Piece.png");

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

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

circle(100, $fn = 12);

12 個三角形組成

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

一個長方體

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

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

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

得到這些東西

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

再拼成一個圓

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

Challenge

• 程式

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

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

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

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

• 英文

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

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

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

• 數學

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

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

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

提供資源

動手實作

給予信心

鼓勵挑戰