Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby で作る Ruby (物理)

Ruby で作る Ruby (物理)

西日暮里.rb 100回記念 オンラインLT会

https://nishinipporirb.doorkeeper.jp/events/149198

Fumiaki MATSUSHIMA

February 27, 2023
Tweet

More Decks by Fumiaki MATSUSHIMA

Other Decks in Programming

Transcript

  1. @mtsmfm
    Ruby でつくる Ruby
    (物理)

    View Slide

  2. 松島 史秋
    Backend Dev at Autify
    GitHub, Twitter: @mtsmfm

    View Slide

  3. https://ninirb.github.io

    View Slide

  4. 100回
    ありがとう!

    View Slide

  5. View Slide

  6. View Slide

  7. 3D プリント

    View Slide

  8. データが現実になるのは面白い!

    View Slide

  9. 3D プリンタの種類
    - 熱溶解積層 (FDM) 方式
    - 溶かしたプラスチックを下から積み重ねる
    - ソフトクリームづくりみたいな
    - 光造形方式
    - 液体に紫外線を当てて固める
    - 家庭用はだいたいどっちか
    - 今回は FDM

    View Slide

  10. View Slide

  11. フィラメント
    (プラスチック)
    エクストルーダー
    (溶けたプラスチックが
    出るところ)
    ベッド
    (溶けたプラスチックを重
    ねて固めるところ)
    完成品

    View Slide

  12. View Slide

  13. View Slide

  14. 1. RubyScad
    2. OpenSCAD
    3. STL
    4. G-Code
    5. プリント

    View Slide

  15. 今回の元コード
    include RubyScad
    cylinder(h: 10, r1: 0, r2: 10)
    translate(z: 10) do
    cylinder(h: 3, r1: 10, r2: 9)
    end

    View Slide

  16. 今回の元コード
    include RubyScad
    cylinder(h: 10, r1: 0, r2: 10)
    translate(z: 10) do
    cylinder(h: 3, r1: 10, r2: 9)
    end

    View Slide

  17. $ ruby foo.rb > foo.scad

    View Slide

  18. $ ruby foo.rb > foo.scad
    cylinder(h = 10, r1 = 0, r2 = 10);
    translate(v = [0, 0, 10]) {
    cylinder(h = 3, r1 = 10, r2 = 9);
    }

    View Slide

  19. $ openscad foo.scad -o foo.stl

    View Slide

  20. https://marketplace.visualstudio.com/items?itemName=mtsmfm.vscode-stl-viewer

    View Slide

  21. 1. RubyScad
    2. OpenSCAD
    3. STL
    4. G-Code
    5. プリント

    View Slide

  22. G-Code とは
    - 工作機械の制御に使う
    - スライサーソフトによって STL から自動生成する
    - 例:
    G0 X270 Y5 Z50 F3600; (270,5,50)の座標に動かす
    M190 S60; ベッドを60度に
    M109 S200; エクストルーダーを200度に

    View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. STL より
    広がっている

    View Slide

  27. 下から上に
    印刷するため
    潰されて広がる

    View Slide

  28. エレファントフット問題
    - 最下層だけ広がってしまう
    - スライサーで最下層を本来よりも狭めに印刷す
    るオプションがあったりする

    View Slide

  29. 欠け
    飛び出し
    糸引き

    View Slide

  30. 一発できれいに出力するのは難しい
    - ソフトクリームを見本と完璧に同じに作
    るようなもの
    - 変数がとても多い
    - 気温、湿度、フィラメント、形状、プリ
    ンタの状態 etc

    View Slide

  31. データが現実になるのは面白い!

    View Slide

  32. View Slide

  33. View Slide

  34. View Slide