Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

911 views

Published on

- Why 程式建模? (滑鼠)
- OpenSCAD 動手做
- 程式之美、數學之美
- 作品與教學討論

Published in: Technology
  • Be the first to comment

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

  1. 1. Justin Lin caterpillar@openhome.cc https://openhome.cc 3D 之邏輯與美感交會 - OpenSCAD
  2. 2. 接下來… • Why 程式建模? (滑鼠) • OpenSCAD 動手做 • 程式之美、數學之美 • 作品與教學討論
  3. 3. Why 程式建模?
  4. 4. 定位 重複數學 步驟 修改
  5. 5. https://www.thingiverse.com/thing:1241377 https://www.thingiverse.com/thing:1580580
  6. 6. https://www.thingiverse.com/thing:1763139 https://www.thingiverse.com/thing:1946289 https://www.thingiverse.com/thing:2040515 https://www.thingiverse.com/thing:2136955
  7. 7. https://www.thingiverse.com/thing:2002493 https://www.thingiverse.com/thing:1434203
  8. 8. Thingiverse Customizer https://www.thingiverse.com/thing:1504859
  9. 9. 成功之母雞 https://www.thingiverse.com/thing:1356050
  10. 10. OpenSCAD動手做
  11. 11. OpenSCAD 資源 • http://www.openscad.org/ • https://www.thingiverse.com/JustinSDK/ • https://openhome.cc/Gossip/OpenSCAD/ • https://github.com/JustinSDK/lib-openscad 官網 我的創作 我的文件 我的程式庫
  12. 12. text("Hello, World"); 存檔
  13. 13. linear_extrude(5) text("Hello, World");
  14. 14. Challenge • 中文行不行? • 使用別的文字編輯器? 可以看我的原始碼 我的文件中有談到 https://www.thingiverse.com/thing:2194546
  15. 15. height = 5; characters = "Hello, World"; font_size = 10; linear_extrude(height) text( characters, size = font_size, valign = "center", halign = "center" );
  16. 16. linear_extrude(height / 2) square( [font_size * len(characters), font_size * 2], center = true );
  17. 17. 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 ); } 減集
  18. 18. translate([font_size * len(characters) / 2, 0, 0]) linear_extrude(height / 2) difference() { circle(font_size); circle(font_size - thickness); }
  19. 19. 改成自己想要字吧!
  20. 20. 程式建模便於參數化 先 render 模型 就可以匯出 STL
  21. 21. http://www.openscad.org/cheatsheet/
  22. 22. 程式之美
  23. 23. 來整理程式碼
  24. 24. 建一個模組 包住程式碼 呼叫模組
  25. 25. 使用變數
  26. 26. 使用參數 指定參數
  27. 27. 抽取模組 使用模組
  28. 28. 想馬上來點不同的?
  29. 29. 程式建模便於組織模組
  30. 30. 數學之美
  31. 31. 給我一顆心 ♫~♬
  32. 32. 分解愛心 正方形 圓形 Divide and Conquer
  33. 33. 看來正方形必須下移
  34. 34. 轉個 45 度
  35. 35. 這邊要對齊
  36. 36. 三角函式拿出來用啦!
  37. 37. 另一半嘞? 對齊了
  38. 38. Challenge • 老在挖空模型? https://openhome.cc/Gossip/OpenSCAD/Children.html
  39. 39. 作品與教學討論
  40. 40. https://www.thingiverse.com/thing:1504859
  41. 41. 3DP 友好設計
  42. 42. https://www.thingiverse.com/thing:1264478
  43. 43. 圓 360 度 一個字幾度? 圓周長? 字大小 S,可以 排幾個?
  44. 44. 拉高、加底盤、加空心圓柱…
  45. 45. https://www.thingiverse.com/thing:1427568
  46. 46. 每片都一樣
  47. 47. 加個長方形 取交集就是了
  48. 48. https://www.thingiverse.com/thing:1589493
  49. 49. surface("One_Piece.png"); 跟一個拉高的長方形取交集,可 以得到一個薄的模型
  50. 50. circle(100, $fn = 12); 12 個三角形組成
  51. 51. 一個長方體
  52. 52. 與許多可組成圓的三角形取交集
  53. 53. 得到這些東西
  54. 54. 再拼成一個圓
  55. 55. Challenge • 程式 – 可用 Scratch 培養程式設計基礎(國小?) – 玩過 Python 會有幫助(國小?) https://www.blockscad3d.com/editor/
  56. 56. • 英文 – 顯而易見,語法上使用英文 – 也許考慮術語對照表(國小?) – 中文資料目前不多! (國小?) • 數學 – 座標觀念(直角座標、極座標)(國小?) – 不免遇到三角函數(國小?)
  57. 57. https://www.thingiverse.com/thing:2146759
  58. 58. 提供資源 動手實作 給予信心 鼓勵挑戰
  59. 59. 去犯錯學習 去探險 去作亂 http://www.slideshare.net/JustinSDK/ss-54463912 http://www.ntsec.gov.tw/FileAtt.ashx?id=2560
  60. 60. https://www.youtube.com/watch?v=sNHLQxQ3jm8
  61. 61. Justin Lin caterpillar@openhome.cc https://openhome.cc Thanks

×