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 full-size slide

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

    View full-size slide

  3. https://ninirb.github.io

    View full-size slide

  4. 100回
    ありがとう!

    View full-size slide

  5. 3D プリント

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  12. $ ruby foo.rb > foo.scad

    View full-size slide

  13. $ 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  18. STL より
    広がっている

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  21. 欠け
    飛び出し
    糸引き

    View full-size slide

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

    View full-size slide

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

    View full-size slide