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で遊びます。

2015サッカーシーズン終了

川崎のシーズンはずっと前に終わってましたけど、Jリーグの日程が終了しました。ポストシーズンがあった今季。J2-J3の入れ替え戦をやるのはまあいいとして、J2のプレーオフ、J1のCSにけっこうな違和感があったのは事実。

J1のCSは決勝の広島とガンバのレギュラーシーズンの勝ち点差は11。J2のプレーオフ決勝の福岡とセレッソの勝ち点差は実に15もありました。これって普通に考えれば絶望的な差ですよね。ここまで差がついているのに、同一に近い条件で争うというのは…J2のほうはなぜかセレッソのホームで一発勝負。J1のほうは普通のH&A。まあ結果は勝点で上位にいたチームが勝ったので妥当と言えば妥当だが、劇的な展開でもあった。なんで大差で引き離したはずの相手にドキドキしなきゃならなかったのかな。

あと天皇杯も残ってますけど、川崎は敗退しちゃってるし、興味はわかないですね。天皇杯もグループリーグでやればいいのにな。

それよりも今日見たら等々力の工事がだいぶ進んでいました。プールと野球場はすでにサクの向こうでかなり壊されてて、入り口の謎の池(かつて噴水だったもの)にも工事の囲いができていました。プール脇のライトがなぜか点灯するようになっていた…電球交換or修理したのかな? 野球場は全体的に建て替えられてプールの跡地に作るという話だけど、計画を見ると旧野球場跡地の端っこのあたり(トイレがあるあたりかな?)にじゃぶじゃぶ池ができるみたいで、これは期待できる。

このへんでじゃぶじゃぶ池と言えば多摩川河川敷の第三京浜の近くか、中原平和公園くらいしかなかった。河川敷のじゃぶじゃぶ池はけっこう楽しめるスポットではある。等々力の謎の池は(子供たちはしばしば葉っぱを浮かべて遊んでいたけど)あまり楽しめるスポットではなかった。改修後もスケボー用のスペースは確保されるんだろうか?

簡易Webサーバをインターネットに立てることを考えると…

ちょっと思ったんだけど、docker使ってbusyboxのhttpdを立てるのが割と簡単で安全なんじゃないかと思って。

httpd.confをこんな感じにして、

I:index.html
/:username:password

.html:text/html; charset=UTF-8
.txt:text/plain; charset=UTF-8

そんで、こんな感じで上げる。

  • docker run -d -t -i -v /path/to/dir:/www:ro -v /path/to/httpd.conf:/httpd.conf -p 80:80 busybox httpd -p 80 -h /www -c /httpd.conf -f -vv

どうかなぁ。ログはdocker logsである程度は出る。時刻もdocker logs -tで出る。性能はあんまりアレだろうな、たぶん。もうちょっとやるなら、capability落としたりしたほうがいいかもな。そこまでやることもないか。

El Capitan…私には過ぎた玩具だったか…?

おおEl Capitanよ、愛用している安い3Dプリンタの純正ドライバ的ソフト(のβ版)が動かなくなってるじゃないですかーやだー!

CuraかSlic3rでgcodeにしてOSSのα版のサードパーティ製ドライバ的ソフトなら動く。Slic3rはそれなりに優秀で、純正で8時間くらいかけて25%も進まなかった(そして失敗した)「おうち」のモデルが一晩でほぼ完成してくれた。まあこちらも最後のほうはフィラメントのリールが落ちてしまって失敗はしたが「おうち」の形にすることはできた。純正なんて最初からいらんかったんやー。

実際ドライバっていってもRepRap系の3DプリンタてゆうのはUSBシリアルのデバイスで、そこにボーレートを合わせてgcodeというヘッドを制御する言語みたいなテキストを送り続けるだけだから、いわゆる本来のドライバ部分自体は大したことはないんだけどね。フィラメントのload/exitのあたりとslice(stl→gcodeの変換。サポート材のレイアウトもここで決める)とかをまとめたUIがあって欲しいもので。

川崎3-0京都 (天皇杯)

会社を抜けだしたサラリーマンが等々力に集まる。私も当然のように早退しました。しないわけがない。季節はもう10月もなかば。割と寒かった。

ずいぶん久しぶりの京都戦。かつては散々にカモった相手だが、天皇杯ではどうか。京都はJ2で苦しんでいるような感じ。なかなか上がってこない。今季もJ2残留の確保で精一杯というポジション。山瀬はサブにも入っていない。あの大黒がスーパーサブ的ポジションにいるっていうね。

川崎はフルメンバーで来た。先日のガンバ戦からは杉本健勇が田坂に戻って、GKは西部に。

立ち上がりの出来は良くなかった。川崎は京都のカウンターに何度も慌てさせられながらもエウシーニョと小林悠のサイドを使って攻めていく。徐々に流れを持ってきた矢先に田坂が大久保に凄いパスを通して1-0。これで楽になりました。あれを簡単に決めたところはさすが大久保といったところ。田坂のパスも良かった。大久保のトラップも完璧。

楽になったものの、やはりちょっと精彩を欠いていたように思えたまま後半に。後半は割と安定してきたが、大黒が出てきてちょっと嫌な雰囲気に。しかし小宮山がいい感じで決めて2-0、最後はロスタイムに中野の突破からオウンゴールっぽい杉本健勇のゴール3-0。触ってたか? 今日はこのシーン以外の杉本は役に立ってなかったように見えたが、どうかな。

天皇杯は次は4回戦ベスト16でACL組が出てくる。日程や相手は未定らしい。等々力だったら行けるけど。

Marshmallow…最高だった

Android 6が降ってきたのでMarshmallowにしてみた。マーシュマロウ…普通にマシュマロですが、マーシュマロウと読んでしまいますね。マーシュ・マーロウなんて、ハードボイルド探偵の名前っぽいですね。

誰か「あんたがマーシュ・マーロウか?」
おれ「マーロウなら?」

割とレスポンス感が向上してキビキビ感が増した気もする。まあこのへんは性能向上というよりはエフェクトのパラメータだけかもね。ロック画面の時計のフォントの印象はかなり変わった。

Mathdoku+のクリア画面が出なくなった。これは痛い。ゲーム自体はできるが、クリアしても何も出ないのね。もう2年くらいアップデートされてないアプリだから、対応してくれるってこともないんじゃないかなという気がする。悲しいものだ。このままサヨナラ可能性が…さて通勤時間どうやって過ごそうか。

あと証券会社のアプリが動かなくなって、昼休み中に株取引ができなくなった。これも割と痛いね。→いつの間にか動くようになってた

いまんとこ、このくらいかな。すんなりアップグレードできたほうだろうけど。

川崎5-3ガンバ (中野)

まあこの日は後半の中野のゴールだけでもお腹いっぱいになることができましたよね。あと4点あるなんて、もう食いきれませんよ。晴天の等々力は…暑かった。ゴール裏でチョコレートが溶けてしまうし三男は途中で暑さに疲れた帰りたいを連発した挙句、寝てしまいましたが。終盤に起きてきてボケっとしてました。

その中野のゴール(3-1)。あまり良くない流れの時間帯だったと思うが、直前にPKくさいのを流されて、似たような位置でボールを持ち、突っかける。シュートのタイミングが良かったです。うまいこと相手のタイミングを外してワンテンポ早く打つ。これで等々力は興奮のるつぼに。場内は雰囲気が一変してサッカーも良い流れに。

しかしここからの時間が長い。セットプレーから失点(3-2)、さらに出てきた倉田に同点ゴールを食らう始末(3-3)。まあチャンスを逃しているとこうなるよな、というね。ここまでが想定範囲というのが川崎の悪いところ。

その後、この日散々に破り続けた左サイドの突破からPKを貰って(4-3)、最後は小宮山→エウシーニョがトドメ(5-3)というところまでセットだからね。爽快感で言えば中野のゴールで終わりにしとくべきだったという説もあるが。

まあそんなこんなで、スーパーパトリックも久々に見れたし、いい1日でした。

El Capitan、これ最高じゃないですか!!

El Capitanって言いたいだけで自宅のMBPにインストールしてみました。インストーラ自体はYosemiteのときよりはノートラブルでしたね。そう、インストーラが完了するまではね。

私はじきに気づく。

あ、あ、、ああ、、、homebrewが壊れた…homebrewの使えないMacなんてゴミ同然じゃないか。/usr/localをchownして回ってもダメで、xcodeが変わった(消えた?)ので使えないままの状況。

ふむふむ、再インストールすれば良くなるかも? アンインストールして…入れたソフトが消えていく…まじで? caskは無事か。

ログインシェルにhomebrewのほうのzsh(/usr/local/bin/zsh)を使っていたので、ターミナルを閉じてたら軽く死んでたな。chshで/bin/zshに変更した。あぶないところだった。

挙句、xcode-select –installでxcodeのコマンドラインツールが入らない…しょうがないので無駄にGUIつきのxcode7を入れた。これでhomebrewを入れなおして、覚えているだけのソフトを入れなおしていく。とりあえずpyenvとgolangが入ってれば後はどうにかなるか。FreeBSDがdistfileをミラーするのをやめたみたいで、jhdのソースがなくて入らなくなった。得体の知れないミラーサイトに同じハッシュ値で同名のファイルがあったのでそれを使って、と…

とりあえず使いそうなアプリはポチポチ試したところ、そのまま使えている。homebrewとxcodeには気をつけろ、と。

そんな感じでぼくのEl Capitan生活が始まりました。おい本当にクリックするたびにもっと好きになるんだろうなコラ。

川崎6-1名古屋 (ひさびさの等々力は幸せにあふれていた)

なかなか等々力にもアウェイにも行けてなかったので、久々の等々力。いや等々力緑地はしょっちゅう行ってたけど、サッカー見るのは久々。やっぱいいよね等々力は。ビールもうまい。

久々に小林悠のプレーを見て幸せな気分です。ホント、小林悠という名前を見るだけで幸せが訪れる気がするんだよね。まあチーム状況を考えるとワンサイドゲームになるかも、なるといいな、というのがあって、前半はアウェイ側、後半はホーム側で見ました。その通りになりました。まあ年をとると見えなかったものが見えてきて、こういうこともできるようになるのかもしれない? とか。

前半の名古屋の守備はクロス対応はうまく行っていたと思う(決定的なのも1本あったが)のだが、その代わり人につかなければならなくなった場合に脆さが出た。3点はいずれも、2人重なったDFを一度にかわしてズドン。小林悠の1点目は特にしびれました。あの切り返し。見ている俺も驚いた。ズバッ! そのコンマ何秒かで名古屋DFはズタズタに。あれで勝負が決したと言っても良いだろう。

後半は名古屋が守備のやり方を変えたためか、なかば守りを捨てたためか、逆にクロスからの3得点。大久保がハットトリックで3季目の得点王に近づきました。1失点は余計ですがまあ、俺たちこういうのには慣れっこなんでー。

今日は鉄道関連のイベントがたくさんあって、トーマスに乗って登場した東急の偉い人からの花束贈呈、最後は選手がトーマスに乗ってバックからGゾーンまで移動、バンザイは敬礼と。

【悲報】のるレージ終了

衝撃が走った。

「100のるる」を「TOKYU POINT10ポイント」へ交換

いや、むしろ飛ぶ! 衝撃が飛んだ。飛んでった。あの伝説のサービス、のるレージが終了。しかしこの交換比率はどうなのか。東急内の勢力争いに負けたのか? のるレージはついにTOKYU pts.の敵対的買収に屈したのか??

まあ抽選は当たらないしポイントがたまってもらったトランプもどっか行っちゃったし、あたし今何ポイントあるのかなー、というのが気になって見たら、だいたい1500ポイントのるるくらいだった。TOKYU POINT 150ポイントか…TOKYU POINTはPASMOへのチャージ額から換算する方法を使ったおれの独自の計算によれば、1TOKYU ポイントが日本円で約1円という値がはじき出された。なるほど。150円を守るために新たなポイントカードを作るか否か、という問題なのね。

私はPASMO自体はヘビーユースしているものにオートチャージもできてないので、つい先日も駅の券売機で手動チャージしたくらいの原始人なのだが、これを機に東急と心中する覚悟で人生に臨むか、それとも…

悩ましいな。