西日暮里.rb 100回記念 オンラインLT会
https://nishinipporirb.doorkeeper.jp/events/149198
@mtsmfmRuby でつくる Ruby(物理)
View Slide
松島 史秋Backend Dev at AutifyGitHub, Twitter: @mtsmfm
https://ninirb.github.io
100回ありがとう!
3D プリント
データが現実になるのは面白い!
3D プリンタの種類- 熱溶解積層 (FDM) 方式- 溶かしたプラスチックを下から積み重ねる- ソフトクリームづくりみたいな- 光造形方式- 液体に紫外線を当てて固める- 家庭用はだいたいどっちか- 今回は FDM
フィラメント(プラスチック)エクストルーダー(溶けたプラスチックが出るところ)ベッド(溶けたプラスチックを重ねて固めるところ)完成品
1. RubyScad2. OpenSCAD3. STL4. G-Code5. プリント
今回の元コードinclude RubyScadcylinder(h: 10, r1: 0, r2: 10)translate(z: 10) docylinder(h: 3, r1: 10, r2: 9)end
$ ruby foo.rb > foo.scad
$ ruby foo.rb > foo.scadcylinder(h = 10, r1 = 0, r2 = 10);translate(v = [0, 0, 10]) {cylinder(h = 3, r1 = 10, r2 = 9);}
$ openscad foo.scad -o foo.stl
https://marketplace.visualstudio.com/items?itemName=mtsmfm.vscode-stl-viewer
G-Code とは- 工作機械の制御に使う- スライサーソフトによって STL から自動生成する- 例:G0 X270 Y5 Z50 F3600; (270,5,50)の座標に動かすM190 S60; ベッドを60度にM109 S200; エクストルーダーを200度に
STL より広がっている
下から上に印刷するため潰されて広がる
エレファントフット問題- 最下層だけ広がってしまう- スライサーで最下層を本来よりも狭めに印刷するオプションがあったりする
欠け飛び出し糸引き
一発できれいに出力するのは難しい- ソフトクリームを見本と完璧に同じに作るようなもの- 変数がとても多い- 気温、湿度、フィラメント、形状、プリンタの状態 etc