Skip to main content

ログ取得ツール (移転先予定地)

3Dプリンタの世界

最近は暇さえあればずっと3Dプリンタで遊んでいて、Webサイトの訪問頻度もthingiverseが上位に来ています。

3Dプリンタで遊ぶ場合に必要な知識を少し書いておこうと思います。参考にする人いるのかな??

まず、3Dプリンタにはいろいろな手法があるそうですが、現在出回っている廉価なものはRepRap系のプリンタで、積層型(?)と呼ばれるタイプのものです。プラッチックのフィラメント、ABSとPLAの2種類がありますが、これらを熱で溶かして前後左右上下に動くヘッドから出してくっつけていくタイプのものです。上下に動くと言っても、プリント中は下に動かすことはなくて、下から順番に積み上げていく。基本的には1色しか使えない。複数の色を使えるものもあるそうですが…。機種としてはReplicatorとかda VinciとかM3Dとかがあります。積層型が廉価なのは特許が切れたからというのもあるらしい。

特許は切れるから価値があるんだろうね。

素材のABSとPLAではそれぞれ特長がありますが、PLAのほうが素直に作れるという話なので私はPLAのフィラメントしか持ってません。ブツができる板のことをベッドと呼ぶらしいですが、このベッドに3Mのマスキングテープを貼って、その上にプリントしていく。このマスキングテープがなかなか秀逸で、100円ショップのマスキングテープやもともとの台に直接とか試しましたがやはり前評判通りの3Mのやつが最強だった。ちゃんとプリント側も台側もくっつくし、なおかつはがしやすいし、何度でも使える。

ABSはベッドを温めていないと反ってしまうという話ですが、まあPLAでも反りますよ。これでもマシなのかな。私は温めていませんし。interlockのパズルを出した時は、無理やりくっつけたら反っているために2度と離せなくなってしまいました。まさにinterlock。

モデリングには123D DesignかOpenSCADを使う。GUIで作っていくのが123D Designで、コードで書いていくのがOpenSCAD。だいたいパラメータがあってシンプルな道具はOpenSCADで書くのがいいと思う。あなたがプログラマであるならなおさら。OpenSCADは使いやすいですよ。言語はちょっとクセがあるけど、外側をつなげて作ってから削っていけば割と思い通りに形を作れる。いっぽうで123D Designはスケッチで平面に書いてExtrudeで3Dにして移動して回してくっつけて引いてfilletで丸めて…という感じにスムーズに作業できるのがいい。

OpenSCADは以前はモデルの図形に使う文字に日本語のフォントを使えなかったらしいけど、私が使い始めたときには普通に使える状態だった。123D Designは日本語フォントで文字を描くことはできない。他のソフトで.svgかなんかに書きだしておいて、.svgを123D Designでスケッチとして取り込めばいいんだけど、かなり面倒な作業になる。

これらのモデリングソフトを作って.stlファイルというのを作る。.stlファイルは色のない3Dの図形を記述できる言語。ポリゴンになってるのかな。よく分からないけど、この.stlファイルまでは配布できる形式。thingiverseでも配布形式はたいてい.scad(OpenSCADのファイル)か.stlだ。parametricと書いてあると.scadで配布してるなというのが分かる。中身を見ると前半にパラメータが変数に入っていて、これを自分用に書き換えることができるのね。

私はしばらくはドアとかフスマの枠につける部屋干し用のハンガー掛けのモデルをせっせと作っていろんな場所につけていったんですが、家族はあんまり使ってくれませんでした。自分がハンガーをひっかけるときはよく使ってますけどね。落ちにくくなって便利なんだけどな。うちの枠は7mmとか9mmしか奥行きがないから、うまく引っかからないんだよね。それが長年の悩みだったんで、3Dプリンタがそれを解消してくれたんだよ。あとは定番のスマートフォンスタンドとかを何種類かやったなぁ。いい練習になりました。

この種の実在のものと合わせる場合はノギスで測定しておくと良いです。私も安いノギスを買いました。これが便利。ノギスは定規やメジャーじゃ測定できないところの測定ができるからね。精度も高いし。

で、.stlができたら、次はスライサと呼ばれる種類のソフトが出てくる。スライサは私はSlic3rを使うことが多い。Slic3rはたまにサポート材がうまく入らないことがあって、その場合はCuraを使う。これらのスライサで.stlから.gcodeというファイルを作る。.gcodeはヘッドの移動や溶かしたフィラメントの吐き出しとかを記述しているコマンド。

Slic3rが出す.gcodeは速い。まあパラメータの調節がうまくいってるだけなのかもしれないけど。Curaが出す.gcodeは遅いし、最初の予定時間はかなり遅い方に常に外れるのがムカつく。しかもちょっと無謀に思える軌道を描くことがある。それでもなぜかできちゃうんだけどね。

この.gcodeができたらあとはドライバ的なソフトに食わせればいい。私が持っている3Dプリンタは3Dプリンタの中では非常に安い部類のThe Micro 3D(M3D)というもの。これをMacで使えるMicroPrintというOSSがgithubにあって、MicroPrintに.gcodeファイルを食わせればあとは待つだけだ。Slic3rが吐く.gcodeをMicroPrintに食わせると進捗がうまく表示されないので、コメントを追加する自作のスクリプトを使う。スクリプトはこちらに→ gist

プリントの操作はこんな感じ↓

まずMicroPrintのToolでExtrudeを選んで、フィラメントをノズルに食わせる。このフェーズで数分かかるかな。M3Dには内部ポートと言ってベッドの下に純正フィラメントを格納することもできるが、なかなかフィラメントの入れ替えがうまく動かず(待つ必要があることや自動で吸い込まれたり吐き出されることを知らなかったため)乱暴に扱って数回で壊れてしまった。その数回も、詰まりとか引っかかりのためにほとんど失敗した。そのため現在は外部ポートしか使っていない。Extrudeが完了したかどうかは目で見て判断する。ノズルから出てくるものが入れたフィラメントと同じ色になったら止める。勝手に吸い込まれるので、なんとなく触っていると入っていくのが分かる。排出も勝手に吐き出されるので、軽く引っ張って取り出せるところまで放っておくほうが良い。

外部ポートを使う場合には補助的にこれに近い形のモノを(これも3Dプリンタで出せる)作って、フィラメントを置いている。この状態にするまではいろいろ試行錯誤して、そのため失敗も多かった。現状になってからは失敗プリントは割と減った。ただ大きめのモノはプリンタの性能のためか、かなりの確率で失敗する。まあ子供が机から落としたりしたからね…Calibrationしてなんとかなった。

フィラメントは純正のものをいくつか買ったけど、今は別で買った、暗いところで光るやつを使うことが多い。昼間は白くて、暗くすると蛍光グリーンで発光する。これは子供にも好評で、よく布団の中に持って行って光らせて遊んでいる。自分でもこのフィラメントで作った「r型ペントミノ」をキーホルダーにしている。オジサン世代には見れば意味が分かる、特徴的な形。

そしてMicroPrintか。こいつに.gcodeファイルを読み込ませて、Printボタンを押す。だいたい温度はデフォルトの215℃よりも少し高めにして235℃にすることが多い。経験則。

失敗プリントはいくつかパターンがあって、こんな感じ↓

  • 上に行くにしたがってヘッドがずれちゃう…大きめのモデルだと頻繁に起きる
  • 最初のレイヤでフィラメントが出てこない…skirtを2周させたらほぼ解決
  • ヘッドが台を削ってしまう…Calibrationして直す
  • 土台への接続が弱くて途中で倒れちゃう…下のほうが複数の部品に分かれているとヘッドの移動時に接触して倒してしまう
  • そもそもSlic3rがサポート材を出力してなくてプリント不可能…まあ、Slic3rの画面を目で見て確認するしかない。どうしてもダメならCuraを使う

大きめ、あるいは複雑な形状のプリントは諦めてる。10cm x 10cm作れるなんて幻だったんだ。

skirtとかbrimとかは、だいたい私はskirtを2周でbrimやraftはナシ。サポート材の不足はバグだと思うんだけど、ホントに目で見ていくしかなくて、必要なものが出てくるまでパラメータをいじる。infillやtop/bottomは一時期HoneycombやHilbert Curveを好んでいたけど、rectilinearが無難ということに落ち着いた。結局これが速いし。

最初の頃は自分でモデルの中を空洞にする必要があるのかと思ってモデルの中をくりぬいていたけど、空洞部分を外から触れるようにしたいわけではないのであれば、スライサが勝手に空洞を作ってうまいことやってくれるということをすぐに知った。infillのパラメータで中身の詰め方を制御し、壁の厚さもshellのパラメータで制御できる。

PCとプリンタの接続はUSBですが、これがPCから見るとシリアルポートに見えます。まあ.gcodeファイルというのは大きなものでも数MB程度で、これを延々数時間かけて3Dプリンタに送る。ここは不思議なところですね。2D→3Dになってデータ量が減ってるんですから。2Dの紙に出すプリンタの場合はけっこうデータ量も必要で、USBならまあ問題ないとしても、それでもカラーでレーザープリンタに出すとけっこう重かったりする。でも3Dプリンタっていうのはプリンタ側の動作は遅いし1色しかないしで、データの転送レートが高い必要は全くない。PC側の負荷もプリント中はほとんどゼロです。ちょっともったいない。

M3Dはプリンタ側にメモリを持っていないので、スプールに放り込んで終わり、というような使い方はできない。世の中の3Dプリンタにはそういうものがあるそうですが。で、いずれ計画したいなと思っているのが、Raspberry Piかなんかにスプールを作って放り込めるようにしたいな、なんていうね。M3Dは割と売れてるし、世間には似たようなことを考えてる人がいるんじゃないかと思っている。もしそうなら、ソフトは書かないで拾ってくるだけで済むかもしれない。まだ私はRaspberry Pi持ってないからアレなんだけど。

できる物体は割と凸凹がある。モデルを作るときに角をfilletで丸めておかないとトンガリが強すぎる感じになってバリも気になる感じになる。filletは必須です。OpenSCADだとfilletできない(?)んだよな。私は塗装はしないです。表面が気になった時にヤスリも買ってみたけど、PLAはうまく削れないということが分かった。ABSは分からない。

接着剤は今のところうまくつく奴は分かっていない。ネットで見る限り瞬間接着剤かアクリサンデー(?)でくっつくみたいだけど、試してないですね。普通のプラッチック用のセメダインとかはほとんど全くつきませんでした。

M3Dの限界を感じて次買うならReplicatorのどれかかな。でもまだしばらくはM3Dで遊びます。