3D 之邏輯與美感交會 - OpenSCAD
-
Upload
justin-lin -
Category
Technology
-
view
366 -
download
3
Transcript of 3D 之邏輯與美感交會 - OpenSCAD
Justin Lin
https://openhome.cc
3D 之邏輯與美感交會 - OpenSCAD
接下來…
• Why 程式建模? (滑鼠)
• OpenSCAD 動手做
• 程式之美、數學之美
• 作品與教學討論
Why 程式建模?
定位
重複 數學
步驟
修改
https://www.thingiverse.com/thing:1241377
https://www.thingiverse.com/thing:1580580
https://www.thingiverse.com/thing:1763139 https://www.thingiverse.com/thing:1946289
https://www.thingiverse.com/thing:2040515 https://www.thingiverse.com/thing:2136955
https://www.thingiverse.com/thing:2002493
https://www.thingiverse.com/thing:1434203
Thingiverse Customizer
https://www.thingiverse.com/thing:1504859
成功之母雞
https://www.thingiverse.com/thing:1356050
OpenSCAD動手做
OpenSCAD 資源
• http://www.openscad.org/
• https://www.thingiverse.com/JustinSDK/
• https://openhome.cc/Gossip/OpenSCAD/
• https://github.com/JustinSDK/lib-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
http://www.openscad.org/cheatsheet/
程式之美
來整理程式碼
建一個模組
包住程式碼
呼叫模組
使用變數
使用參數
指定參數
抽取模組
使用模組
想馬上來點不同的?
程式建模便於組織模組
數學之美
給我一顆心 ♫~♬
分解愛心
正方形
圓形
Divide and Conquer
看來正方形必須下移
轉個 45 度
這邊要對齊
三角函式拿出來用啦!
另一半嘞?
對齊了
Challenge
• 老在挖空模型?
https://openhome.cc/Gossip/OpenSCAD/Children.html
作品與教學討論
https://www.thingiverse.com/thing:1504859
3DP 友好設計
https://www.thingiverse.com/thing:1264478
圓
360 度
一個字幾度?
圓周長?
字大小 S,可以排幾個?
拉高、加底盤、加空心圓柱…
https://www.thingiverse.com/thing:1427568
每片都一樣
加個長方形 取交集就是了
https://www.thingiverse.com/thing:1589493
surface("One_Piece.png");
跟一個拉高的長方形取交集,可以得到一個薄的模型
circle(100, $fn = 12);
12 個三角形組成
一個長方體
與許多可組成圓的三角形取交集
得到這些東西
再拼成一個圓
Challenge
• 程式
–可用 Scratch 培養程式設計基礎(國小?)
–玩過 Python 會有幫助(國小?)
https://www.blockscad3d.com/editor/
• 英文
–顯而易見,語法上使用英文
–也許考慮術語對照表(國小?)
–中文資料目前不多! (國小?)
• 數學
–座標觀念(直角座標、極座標)(國小?)
–不免遇到三角函數(國小?)
https://www.thingiverse.com/thing:2146759
提供資源
動手實作
給予信心
鼓勵挑戰
去犯錯學習
去探險
去作亂
http://www.slideshare.net/JustinSDK/ss-54463912 http://www.ntsec.gov.tw/FileAtt.ashx?id=2560
https://www.youtube.com/watch?v=sNHLQxQ3jm8
Justin Lin
https://openhome.cc
Thanks