[更新] OpenSourceは自己責任で使いこなす

オープンな世界は自由なのだが、使いこなしは使うユーザーに掛かっている。進化しつつあるパッケージがオープンソースになっているからといって、結局持て余すようなものに手を出して収拾がつかなくなったりしてる事象を吠えている人がいたりもする。

組み込みの里では、最近では使っている3Dプリンターのファームウェアのカスタマイズなど見える範囲で必要に迫られてやっているのだが、3Dデータのように公開されているものについても、よく活用させていただいているので、私自身も新たにカスタマイズしたり、起こしたのものについては上げるようにしている。

3Dプリンターと向き合いだして三年以上になるのだが、プリンター本体の精度も機構もパーツも次々と進化していくのをトラックしてきて、ようやく使いこなせているかと思いきや、最近では、購入当時のフィラメント長者(使わないのにまとめて買いこんだ)として選択していたものが思いのほか品質が良かったことが再認識されるに至り。最近購入しているフィラメントの性質などからフィラメント表面の状態などから「からまりやすい」という事態が生じていた。

imageフィラメントを送り出すスプールの取り付け方法の工夫で、どうやらスプール幅のセンター位置に合わせて取り出すということが一つの解決策のようで、新たに購入したプリンターにも、そうしたガイドをつけて解決をみていた。

 

 

 

image古い進化をしつづけてきたプリンターについてはスプール受けとして単純な構造のものをつけていたのだが、このフィラメントの表面の癖・抵抗といったことからフィラメントの送り出し方向とRobo3Dプリンターのスリットが合わず抵抗を助長しているという認識が失敗の履歴から見えてきた。すでにセンタリングガイドをつけてはいるものの、フィラメントが角に引っかかるという点では、配置方向が間違っている点を直さないと解決しないわけだ。

 

 

 

そして、その解決にはスプPreviousールの取り付け方向を正面に向けたオープンリールのような形にすることであり、そうしたスプールは一時取り付けて気に入っていたのだった。

うまく使えていたスプールを使わなくなった理由は、強度だった。かなり大きな構造だったので当時のプリンターではABSでは出力できずにPLAで作らざる得なかったし、また設計データをSTLレベルで強化しようというアイデアにまでは至らずに丈夫そうな簡易な構造のものに移ってきたからでもあった。この構造だとちょうどセンターに取り出し口がスリットとしてできているのでセンタリングも不要なのだった。

今は、MESHMIXERのimage活用でSTLの直接編集にも習熟してきたこともあり肉厚を高めるための方法や、ほかの改良点なども含めて再度挑戦する価値のあるものとして肉厚と高さをそれぞれ大きくしたものを作り昨日の夜から印刷している。今晩には終了する予定だ。使っているほかのボルトやベアリングなどの機構部品も残っているのでそのまま使えるはずだった。

 

 

今回は前回の記録が残っていなかったので、再度THINGIVERSEのサイトから作者のデータをダウンロードして必要な改造を施して作成を開始した。印刷も終盤にはいり、どうも出来上がりの結果と適用するはずのボルト径とがあっていないように見えて、中断して確認をしたが確かにM8のボルトで設計されているはずのものがM10のサイズになっている。サイトの説明ではM8になっているのだが、経緯については記憶がなく、今回は確認ミスとしてアダプターを作成してしのごうとしている。なにしろ一晩以上出力した結果を無駄にはできないのだ。

2016-08-23 (20)こんなアダプターを作ったりしてのを見てもらうのは恥ずかしいが、対応策としての事例として紹介しよう。

 

 

 

 

 

imageなんとかうまく下駄が出来たようです。
ベースはPLAでしたが、下駄はABSで作りました。

丸一日出力にかかりましたが、物理的なボリュームでRobo3Dでないと出来ないかと心配もしましたが、Replicator2互換機でもなんとかだせました。

今後の使い分けは、大きなボリュームのものを荒くだしても良いものにはRobo3Dで0.3mm厚みの層構成で出力対応で、Replicator2互換機では0.2ないし0.1mm厚みでの出力対応で行うということになりそうです。

3Dプリントでは、強度を考えて分割設計する

image里で作って使っているフックだが、積層方向と強度の観点から部品は二つに分けている。

 

 

 

 

 

 

2016-08-23 (18) 2016-08-23 (19)取り付けの螺子穴とフックの嵌合穴とを作りこんでいる。とはいえ、この辺りは3Dソフトでの論理演算で作れるから実際は簡単だ。

 

 

 

 

力がかかる方向に積層が出来ないようにしている。

難しい3D造形(STL)を簡素化して利用作成する

2016-08-233Dプリンターの良いところは、難しい造形も3D設計して印刷すれば出来上がることであるのだが、安価なFDMタイプのプリンターでは変形や積層はがれなどいろいろな課題がある。

さて、表題の材料は、左の三次元データである。よく調整のとれたプリンターで支持材を指定すればできるかもしれないのだが、このままでは完成には、おぼつかない。

 

そこで、凡そ三つのパーツに分解して、はめ合わせて接着するほうが各部品の仕上がりならびに積層方向に基づく強度も高まるはずだ。

そこで使える道具はAutodesk社のMESHMIXERだ。面カットとシェル分解で切り分けていく。オブジェクトブラウザーで対応のパーツのみにしていくのが進め方だ。最終的に結合して以下の三つのパーツになった。

2016-08-23 (2) 2016-08-23 (3) 2016-08-23 (4)

imageそして出来上がったのがこちらだ、勘合部分は、ちょうどよかった。ABS接着剤で接着した。

3Dプリンター中華互換機と最近の売れ筋モデルとの違い

組み込みの里に追加導入した3DプリンターはMakerbot社のreplicator2x互換ということになる。最近は、このクラスが増えていて、売れ筋はFlashForge社のCreator Proということになるらしい。
いずれも、Dual nozzleのブロックが搭載されている点、出力ステージが上下してエクストルーダー自体はX-Yに移動する形式で筐体構造も同じなのだが、フルクローンか進化型なのかで異なっているようにみえる。

imageExtruderブロックはリニアレールの上のキャリッジに装着されていて、温度センサー・クーリングファン・ヒーターなどが搭載されているので可撓性の高いしなやかなワイヤーが本体に引き出されて接続されるという構成である。

今回、Exruderの分解清掃を実施しようとしたときに安易に考えて、ヒーターの電流が大きいものについては、MOLEXの3191を使い、XHコネクターを使ってロック式のプラグイン構成にしようと考えたのだがカットしたセンサーのワイヤーは固いもので可撓性があるものの、半田付けが難しくXHコネクターのはんだ付けは断念して接続用の基板を製作してターミナルを搭載して締め付ける形にしたのだった。
makerbot-replicator-2x-extruder-assembly-3興味があったので他のプリンターについて調べてみたところ、オリジナルのMakerbot社のreplicator2xについては、長いワイヤーのままの搭載で保守に際しては、これらの線を処理しながら行うという点で現在のものと同一らしいということが分かった。

 

 

 

 

FlashForge2保守に関して、進化していたのは、FlashForge社のCreator Proだった。ブロックだけ容易に取り外しが可能なように中継ターミナルの基板が同様な構成で作られていた。やはりセンサーのワイヤーのはんだ付け性が悪いのかターミナルで取り付けるようになっていた。

私のインプリは中途半端で、センサー側からの信号は圧着してXHを適用したのが違いだが、本来は、本体からのワイヤリングも直して、このような形にすべきだろう。

 

 

 

[実物検証更新] 3Dプリントでの嵌合処理

最近一般化してきた3Dプリンターは、主にホビーで使われているフィラメントを溶融して絞りだしつつ積層していく方式のものだが、期待する外形サイズと実際のそれには、プリンタの設定、スライサーの癖、フィラメントの状態など多様なパラメータがあってある程度の誤差の範囲である意味あきらめるか、自身で経験を積んで設計値と実際の出力結果の傾向を学習して対応することになる。のし

とはいえ、プロ用途ではないものの物理的になにか既存のものと嵌合させたり、3Dプリント出力物でケースを作ったりする場合には蓋と本体の嵌合という問題が出てくる。

3Dプリンター自体はNC加工と同じでステッピングモータを何回転したら1mm進むのかという設定がギア比などから導かれるしGコードのコマンドでもM92などがそれに相当してプリンタ固有値を与えて調整するということになる。それ以外にもフィラメントの送り量についても同様なことが発生して太いマジックで書いたものと同じではみ出るし、それを計算して少し内側に描画というか出力を行うのはスライサーの仕事だ。

ともあれ、自身の使えるプリンター環境で設計値と出力値を比較して学習するためのテストピースを作ってみて確認してみる。

スクリーンショット (58)左の3Dデータがそのテストピースでサイコロの目のような穴と、サイズを少しずつ振った長さの異なるでっぱりを持つ凸側の二つで嵌合させた時に何ミリの隙間が出来るかで5段階の幅が判断できるようにして、それぞれ5mm角の穴に対応するものをセンタに一番小さいものを5mm出るようにして、順次1mmずつ短くして少しずつ太くしているということだ。

 

image実物はこちら

 

 

 

 

imageこの例では、2mmくらい嵌合できない隙間があり、用意した突起のうち、三つがクリアできたということになる。

 

 

 

 

5mm角穴に対して、この例では突起の設計値は4.0mm 4.25mm 4.5mm 4.75mm 5mmだったので設計値でいうところの4.5から4.75mmの範囲で嵌合する適合点があるようだ。

実際にはこの差分は常に同じと考えて0.5mmくらい内側を小さくすれば出来そうだ。

次の範囲を絞ったピースでは4.5 4.55 4.6 4.65 4.7としたが、4.55の場合にかっちり噛む感覚で閉じたようだ。これは、この印刷環境の事例なので同様なことを使われるツールで作り再現確認していただいて学んでいただくのがよいだろう。

[続報] プリンタ毎に異なるのも当然ですが・・・

image黒いテストピースはRobo3Dで出した同一条件、青のテストピースはQIDI Avatar IVでの結果

Robo3D     4.7 0.35程度

QIDI AvatarIV  4.55 0.5程度

 

[更新2][新製品] ミニサイズのプリント基板対応バイス

組み込みの里でカスタマイズ作成している電子工作用のバイスがリニューアルされて、分解可能な形になりました。材質はABSです。100%充填率で作成していますので強度は確保されています。

幅75mmの基板まではスリットに合わせると固定出来ます。

水平保持した場合に下のスリットの場合で85mmの高さ、上のスリットの場合で97mmほどです。

image機体の色は、そのときの事情でフィラメントの在庫によります。これはパンダ色になっていますが、特定できません。

  1. 前の爪が長くなりましたのでバランスがとりにくい重い基板なども対応可能になりました。

 

image2. ロックスクリューのネジ側の強度を高めました。

 

 

 

 

 

 

image3. すべて分解できる構造になりました。

 

 

価格 3500円にて頒布いたします。送料別途かかりますが、PCN 秋葉原 by Assemblageさんにも置かせていただきますので現地でご確認ください。

[追記] まだバイスの口を開閉する回転ノブの軸との密着度が不十分で空回りしてしまうことがわかりました。分解可能をあきらめて接着するかどうかを、もう少し見極めます。現在のものは、接着しておきます。

[追記更新] 強度と分解の両立を図るための、技術を一つ見つけましたのでこの方法で出していきたいと思います。従来のモデルはクロス軸を構成していたのですが、このモデルでは角の丸い軸を使っています。強度確保の意味では、こちらが強いのですが、軸に対して力を伝えるということに関しては精度含めて難しいのが3Dプリンターの矛盾となります。

image左側の写真が、対策を講じた部品です。

 

3Dプリント安定化のベースが出来つつあります

3Dプリンターが到来して三年余り、今は二台目も登場してパラレル運転することもあり新旧両機種の癖の違いなども進化として理解している。旧型機種とはいえ、当該メーカーの更新や最新型のホットエンドへの改修も含めてそれなりに進化している。進化できないのはメカにともなう速度の問題と、構造に基づく振動などの課題だ。とはいえ先日作成したヒートカバーでABS出力も安心して出せるレベルになった。

新型プリンターはFlashforgeなどの相当品で、出力プレートが上下動するタイプでX-Y軸の水平面が保持される点なども含めて高速動作が出来るようになっている。構造からくるサイズ制限は、筺体に対して出力プレートの左右にエクストルーダーの余地がそれぞれ必要なことや、既にDualヘッドの時代になっているのでそれも要因の一つだ。出力サイズを確保して安定に出力するという目的に適うのはデルタ型かもしれない。Dualヘッドの並行性確保が難しいという噂などがあり、メカで水平が確保されるモデルとして現在の機種を選定したのだが、三つのモータを駆使して制御するデルタ型のほうが実は安定かつ力強く制御できるのかもしれない。

旧型プリンターはAutolevel機能を導入したので、この点については毎回の調整が不要になりとても便利だ。新型プリンターは構造的に本来は最初にマニュアル調整すればふとは不要のはずなのだが、ヒートプレートの過熱状態でのたわみの相違があるのか今のところ毎回微妙な調整を余儀なくされている。こちらも出来ればAutolevelの多点検知補正でアルゴリズムで解決できるように改造をしていきたいと思う。

ここまでは、現状認識までの話なのだが、実際問題として安定出力していく上でどちらにも重要な課題は、実はフィラメント供給の安定が鍵だといえる。

新型プリンターでも発生した、フィード不良による停止は、実はフィラメントガイドが課題だったし、同様に旧型でも同様なことが懸念されたし思い返される事態が記憶にあったのでフィラメントガイドの再設計を行った。Flashforgeでも共通の課題だったフィラメントスプールからの引き出し位置をスプール幅の中央位置に合わせることでフィラメントがスプール内部で噛むことが回避されるようになった。片寄せをしていた場合には噛みこみが発生していた。

Robo3Dではフィラメントを上部に置いてはいたものの、噛みこみについての理解は十分でなかったし、中央位置へのガイドとともにスプールが安定に回るようにという意味も含めてひっかけではなくてベアリングを追加してスプールがスムーズに回るようにした。従来は、テンションがさらにかかる要因になっていた。また取り付け位置も高さを稼いでフィラメントガイドに追加したガイドホールの角度もスムーズになるようにした。

3Dプリンターでフィラメント供給が止まる要因には様々なものがあるが、色々つぶしていった結果、残ったのはここになる。もうホットエンド供給内部でフィラメントが詰まることはなくなった。冷却が十分に必要ということの認識と対策が出来たことに基づく。ホットエンドをヒートアップして、フィラメントさえ送りこめるようにしてあげれば内部を掃除する必要はなくなったと感じている。

まだまだほかの事由も起こってくるのかもしれないが、三年余りの運用を通じて学んできた経験からの対策は、複雑な3Dプリンターのシステム理解についてゴールに近づいているかもしれない。

[注意] STLファイルの加工について続報 Meshmixer

既存のSTLファイルを加工して利用する場合についてデータ出力で問題となる場合がわかった。

imageこの写真の例では、左端のデザインをベースにして一部の脚のみを分割して伸ばしたいというものだったのだが、真ん中の事例は、そのままやったことが明確なままに部材も分断されて出てきた。

右側の事例は、そのことが判明したので対策をしたものです。Meshmixerで面カットなどで分断した場合で別の部品や拡張した形で接続しようとする場合に起こりました。

Gcodeベースで確認すると違いは次の通り。

スクリーンショット (55)結合しただけの状態で出したSTLファイルは実際には内部は結合していませんでした。Mattercontrolでgcode生成した場合の第一層の写真です。

 

 

スクリーンショット (53)結合した後にMake solid(固体化)というアクションをとることで作ったSTLファイルでは綺麗に内部が固体化されたのが確認されました。

 

 

必要な手続きをMeshmixerで再確認すると

スクリーンショット (44)これが内部で固体化されていないSTLファイルを読み込んだ状態でObject Browserを開きました。

スクリーンショット (45)

 

Edit->Separate Shellを実行すると内部に三つのパートがあったことがわかり分解されました。
Object Browserで三つのパートを再選択して、Combine(結合)します。

 

 

スクリーンショット (46)Object Browserでも一つになりましたが、これではもとに戻っただけですね。

スクリーンショット (49)

 

 

Edit-> Make solidを選択するとメニューが出てきますので、固体化する際の精度などを選択できます、ここではsolid accuracyを最大の512にしました。そしてacceptを実行すると

 

 

スクリーンショット (50)Object Browserにもう一つのデータとして名前に(solid)が付加されたものが作られました。

 

 

 

スクリーンショット (51)固体化していないオブジェクトを一旦Object Browserでゴミ箱に入れて

 

 

 

スクリーンショット (52)このオブジェクトに対して、Edit->Separate shellを実施すると出来ないよとアラートが出ますので、これで固体化が完了しました。

 

 

スクリーンショット (54)Object Browserで、固体化したオブジェクトを選択した状態でFileメニューからExportを選んで、STL形式で出力することで完了となります。

 

 

 

 

 

[懸案事項] MatterControl と QIDITECH関連

ヒートベッドの温度設定ならびにフィラメント温度設定などが正しくx3gファイルに設定されないと思われる事象の発生

  1. PVAフィラメントの入荷で、サポート材料をPVAにしようと、まずは温度設定を振って試験データ採取をしようとしているのですが、個々に設定を変えたはずのx3gファイルを読み込ませても機体が抱えている設定が変更されないようにみえる。
    1. Sailfish firmware側の設定でGcode温度設定に対してOverrideするという設定があり、これがONになっている場合には機体が抱えている設定が反映されるので、SDカードにゆだねる場合には、設定をOffにする [解決1]image
  2. PLA利用での出力の際には、最初のフィラメント垂れが発生するように見えて、これを回避するにはloopを形成してそこに逃がす必要がありそうなのだが、loop指定もうまく反映されないように見える。mattercontrol側の課題か確認要
  3. PVAフィラメントのヒートベッド設定は高温設定が不要とのことで、ABS材料とPVAフィラメントの組み合わせはダメらしいという情報もある。PLA+PVAでないと使えない可能性あり
  4. フィラメント詰まりが起きた、どうもDualExtruderのブロックに取り付けているヒートシンクが正しく熱接触していなかったようだ。ばらしてみるとサーマルコンパウンドやグリスもなかった。ヒートシンクがついているのに片手落ちだ。
    1. image
  5. PVAのフィラメントはノズルが詰まりやすいようだ、何か対策が必要な気がする。

もろもろ確認の一日になりそうです。予定では、細密出力のトライをしたいのですが、先は長そうだ。

[作業メモ] STLファイルの加工について Meshmixer

3Dプリンターを使い始めると、パソコン創成期のように自分で改造していくということが頻繁に発生するようになる。完成品というには、似つかわしくない進化する道具といえるだろう。カスタマイズが共通だったりする場合も、オプションが異なる場合なども含めて共有されるカスタマイズパーツのSTLファイルはthingiverseなどのコミュニティに提供される共有フォーマットとしては有用なのだが、加工をベースにした場合には123Designなどで開いても加工できないケースが多い。

今回は、Robo3Dプリンターに保温カバーを取り付けるという長年の懸案事項に踏み込んだ為にスマート液晶コントローラの取り付けパーツを変更することが必要になった。

2016-07-20 (1)左側の3Dデータが、従来使ってきたものだが、今回取り付け位置を右にずらす必要から、右側のように3Dデータを変更してパーツを作成する必要がある。

踏み込んで使えるように、今回はMeshMixerというAutodesk社のツールを用いて、こなしつつ学ぶことにした。

 

行うべき手順は、取り付け部分のパーツをカットして、スライドしてということなのだが、実際には、それだけでは済まなかった。

Plane Cutという機能で切断面を当該部分の根元に当てようとすると、角度の調整が難しいのである程度あわせて切断面を前後に移動させながら角度を追い込んで適当な位置を求めた。
2016-07-20 (2)写真の下のほうでカバーの一部が、この切断面で切れてしまうことが分かったので、あらかじめ、このケーブルカバーを根元で切断して保存しておき、あとで結合することにした。

 

 

2016-07-20 (3)切り出されたオブジェクトはObject Browserに追加された。この部分を非表示にしておいて、本体の部分のカットに取り掛かる。

 

 

2016-07-20 (4)ある程度のところで妥協すると断面は、すこしスカートが残ってしまうことになった。このままスライドしてもつながらないので、それは断面をextrudeして伸ばして面に接地されるようにしなればならないが、適当な厚みで重なっても問題はない。

 

2016-07-20 (5)切断するとこの動かすべきパーツがさらにObject Browserに追加された。

 

 

 

2016-07-20 (6)移動させてみると断面がおかしなことになっていることが判明したので、これを修正する。

 

2016-07-20 (7)

修正には、Analysis->Inspectorで断面をFlatFilでAuto Repair allを実施してまずはベースの修正を完了したので、このパーツを非表示にして移動した部品の断面を伸ばすことにとりかかる。

 

 

2016-07-20 (8) 2016-07-20 (9)案の定切った断面の前処理が必要なのでベースと同様にAnalysis->Inspectorで断面をFlatFilでAuto Repair allを実施し処理してみる。

 

 

これでこの断面を伸ばすことに取り掛かれる。

 

 

 

2016-07-20 (10) 2016-07-20 (11)selectの画面で、左クリックする少しずつ領域が選択されるので、繰り返し残りの領域を選択して全面あるいは少なくとも周囲を押さえることが必要だ。

 

 

まじめに全部選択してみた。

 

 

 

2016-07-20 (12)Edit->Extrudeでメニューがでるので、ここで長さを調整する。おそらく3mmもあればかぶるので適当なところでAcceptをする。

2016-07-20 (13)

 

非表示にしていたメイン部品を表示にすると重ね合わせが出るので少し長いが問題ないと判断するか調整をするか

 

 

2016-07-20 (14) 2016-07-20 (15)三つのパーツがそろったので、Object Browserですべて表示させて、シフトおしながら選択して、EditからCombineを選択して結合させる。

 

 

Object Browserでも一つになったことが分かるので、これで一応目的は達成した。最後に出来上がったファイルをSTLフォーマットでExportして完了だ。