
今回は中々難しい1層目の印刷について初心に戻って考えてみたいと思います。
1層目の印刷を考えた時に、まず前提として確認しておかなければならない事は2点でしょうか?
① 「フィラメントボリューム」 の制御値と実際
② 「印刷高さ」 の制御値と実際
まずは
①、フィラメントの押し出し量は適正か? 確認して見たいと思います。
フィラメントの押し出し長さを計ります。今回はエクストルーダーの出口を起点としてフィラメントの先端を合わせました(写真左)。そこから30cmの押し出しを行い計測します。
結果、27.5cm程しか押し出されませんでした。(写真中央)
フィラメントの押し出しはアンダー気味の方がぱっと見の印刷品質が良い傾向になるそうなので、その様なセッティングになっているのかも知れません。
ELEGOO の NEPTUNE X はデフォルト設定で1mm当たりのパルス数が 90パルスとなっているのですが、97パルスに増やして 1mmあたり 7パルス分追加で押し出すようにしました。パルス数の調整後は30cmの押し出しの指令に対して30cm正確に押し出されるようになりました。(写真右)
E軸のパルス数の設定方法ですが、少し端折って書き留めます。
パソコンとプリンターをUSBで繋いだらソフトは何でも良いのでハイパーターミナル的なソフトを起動して通信を確立します。
そしてコマンド M503 を送信すると、プリンター内の設定値の情報の一覧が送られてきます。写真はその時の画面を映しています。
青で囲った欄に Steps per unit; の項目があります。ここはステップモータのステップ数の設定項目になっています。
内部的にはE軸のコントロールがT0番とT1番の2軸が用意されていますが、使用しているのは0番になります。今回はこれを書き換えます。
M92 T0 E97
コマンドを送信します。するとプリンターから OK の一言返答がありますので、これで設定値の変更は完了です。
正確に設定されているかもう一度 M503 でデータの一覧を要求します。
M503
書き変わったのが確認できましたね。
このままだと保存が出来ていないので保存もコマンドで。
M500
これで保存が出来ます。
確認はいったん電源を落として、再度 M503 で設定値を確認します。
Marlin ファームウェアのコマンド一覧は
こちら のMarlinのHPにあります。
印刷でも設定の変更でも3Dプリンターはこのコマンドで全ての動作が定義されているので仕組み的に簡単といえば簡単です。
因みに、ファームウェアの動作を変えたいとか、コマンドでは設定出来ない項目とかはファームウェアを編集する必要があります。ファームウェアの製作に関しては
こちらのページ に簡単にまとめてありますので参照ください。
次に
②、印刷高さ は適正か? 確認して見たいと思います。
これは結構難しく、必要な確認事項が、
・ビルドプレート表面の水平(湾曲は無いか?)
・XY軸の直進性
・ノズルとビルドプレートとの距離
と項目が多くなります。これも当たり前と思っている所からの確認です。
先ず、
・ビルドプレート表面の水平(湾曲)ですが、ビルドプレートの裏面になるヒートプレートがアルミの薄い板で出来ているので湾曲が大きく、あまりプリンターのベースプレートには向いていません。
ガラスプレートの平面精度はとても高いのですが、湾曲に対する剛性はあまり高くあありません。この二つを留めてしまうと折角綺麗に平面が出ているガラスが湾曲してしまいます。
と言う訳で、このように少し浮かせてアルミプレートの湾曲の影響を受けない様にします。
熱の伝達が心配になりますが、実際に使用して見ると影響は少ない様です。
実際には、基本的に四隅に薄いワッシャーを設置して浮かせます。これだと中心がたわんで低くなるので、低い所を探してワッシャーや紙で微調整します。10μmレベルの視点で見るとガラスはグニャグニャで剛性が有りません。アルミも熱に対してグニャグニャです。
↑過去に使用していた300×300のプリンターですが、ガラス製のビルドプレートが肉眼で確認できる程湾曲しています。ガラスは思っている以上に柔らかいので、ベースプレートとの縁切りがポイントになります。
プレート裏面の高さ調整ネジは4隅に付いているのが普通となって居ますが、四角い板を4カ所で修正すると湾曲が発生してしまうので、少し加工を施して3カ所での固定に変更。この方が湾曲させずに水平の調整が出来る様になります。ガラスの固定も出来るだけソフトにします。
これで概ね水平で湾曲の無いビルドプレートが用意出来ます。
どのプリンターでもビルドプレートのタワミはかなり大きいのでこの2つの対策の効果は大きいです。
次は
・XY軸の直進性 の確認です。これも格安系プリンターの常なのですが、アルミフレームがXY軸のレールを兼ねる構造になっていますが、ボルトで連結されているのでその応力を受けて湾曲してしまっている場合がほとんどです。 ベッドスリンガータイプのプリンターでは特にY軸の湾曲が大きい機種が多いと思います。
これはボルトを問題の無い範囲で緩めて応力を解除する事で湾曲を修正する事が出来ます。本当に少しの締め込みでアルミフレームは湾曲します。結構盲点です。
本当の意味での確認までは出来ないですが、出来る事をやる感じです。(組み立て時に強めに締め付けた場合には湾曲が残っちゃうかな?)
ここまでで平面なビルドプレートと、真っ直ぐなXY軸の準備が出来たので、次は
・ノズルとビルドプレートとの距離 を調整します。
ノズルとビルドプレートとの間にOA紙を挟み込んでクリアランスの調整をします。適正では無い場合は裏面の調整ノブを回転させて軽くノズルとOA紙が擦れるように調整します。
OA紙の厚みが0.1mmと言われているので大体0.1mmに調整する事になるのですが、本来はビルドプレートとノズルのクリアランスの 0mm、原点を合わせる意味の作業です。なのでこの作業ではOA紙分の 0.1mmの下駄を履く事に成ります。
Z軸の座標をオフセットさせる z offset の項目があるので、OA紙の分の -0.1mmを入力して原点を修正。
TestPrint ↓
一見上手く行っているのですが、、、
イカそうめん状態です。。本来であればシート状になって居なければ成りません。
どうやら1層目の印刷を 0.25mmに設定している所、ノズル先端の原点がOA紙の厚みの 0.1mm分下駄を履いて 0.35mmの隙間に印刷をしてしまっているようです。結果吐出量不足となっているようです。
簡単な解決方法はビルドベッド裏の調整ノブを全箇所均一に1/3回転程回転させて、ビルドプレートをノズルに近付ける事で症状が改善出来ます。(←今まではそれで何となしに使用していました。)
印刷物の厚みは実測で 0.314mm程度でした。
試しに z offset を +0.2mmにも-0.2mmして印刷しましたが状況は変わりません。どうやらこの offset の項目は MBLやABLを使用した時にだけしか反映されない値の様です?。(後日きちんと動作することを確認しました。+はクリアランスが広がる。ーは狭まる方向。記事を作成した時だけ調子が悪かった?様です。)
さらに
M206を試すも上手く反映されず、
M408も試してみましたが Error が返って来るのでFarmwear内で座標のオフセットが制限されているようです。
(座標のオフセットを無効にするとファームウェアの動作が軽くなる利点があります。この機能はConfiguration_adv.h 内の #define NO_WORKSPACE_OFFSETS で定義されていました)
仕方が無いので SlicerSoft が作る G-Code 内で
G92 を使用して座標を上書きしてオフセットを得る方法を試します。
(実際の作業は後述します。)
それではZ軸をOA紙1枚分の0.1mmを座標を修正してTestPrint ↓
印刷厚さ0.25mm設定のところ印刷物の厚みが0.249mm、ほぼ理論通りの厚み(ノズルクリアランス)に成りました。
印刷の質感もイイ感じに成りました。
という事でOA紙を使用した原点出しの後にZ軸オフセットの修正を掛けないとノズルとビルドプレートとの距離が想定の通りには成ない。と言う事がわかりました。
・正確な吐出量
・正確なガラスベッド平面。
・XY軸の正確な直進性の確保。
・ビルドプレートの3点支持による湾曲の防止。
・OA紙によるクリアランス調整(水平出し)
・Z軸座標の修正
デフォルトの状態に上記の要素をプラスして、総合テストとして0.25mmの Sheetを印刷してみます。
TestPrint ↓
60mm/Sec で印刷してみました。
ピカピカガラスのビルドプレートにオートレベリング無しの条件。
今となってはオールドスタイルですが、定着はどうなるでしょう?
綺麗なフィルムが刷り上がりました。格安プリンターも整備次第。良い感じです。
上の大きな1枚のTestPrintでは厚みの確認が出来なかったので、チェッカーフラッグ状にして各パーツの厚みを確認しました。
まだ奥の方のテーブルが下方に湾曲している様ですが、ここまで精度が出ているとオートレベリングの必要性をあまり感じないで印刷が出来ます。
本来的にこの印刷ベッドの調整方法が印刷物にとってBESTです。最近の流行はフィジカルの正確さよりもセンサーによる補正がメインになってしまっていますが、調整された凸凹が印刷物にどのように影響するのか?といった記事は見かけません。
こちらに 少し纏めてあるので興味があれば一読ください。
センサーが付いているのに定着が悪い場合もあります。過去にセンサーの精度を調べたことがありり、
こちらに記事にしていますが、経験的に20μmのクリアランスの違いで剥がれが大きく変わるイメージですが、センサー自体の精度が条件により20μm弱とぎりぎりの精度しかありません。特にCR-TOUCHは発売時のネット上の記事で60μmほどの誤差があると報じられていました。多分CR-TOUCHを使っている方は補正による1層目の印刷が上手く行かない事が多いと思います。それに付随してmarlinのバグもあります。計測した数値の適用が90度回転して適用されてしまうと言うバグの含まれるバージョンも存在します。ここも注意が必要になります。
(私はmarlinのバグの多さに呆れて自分でファームウェアを作成する遊びを引退しました)
実際の補正ですが、16枚折りにしたOA紙の厚みが 1.43mmでした。1.43/16 =0.0894mmなので、少し丸めて 0.09mmとしました。
Z軸の座標を上書きする具体的な方法ですが、今回は SlicerSoft が印刷開始前に行う暖機や捨て印刷を定義する、 カスタムGコード →Gコードの最初 の欄に一行追加します。
G92 Z50.09
今回は 印刷前の暖気時の50mmの高さで停止した状態の時に、50.09mmで座標数値の上書きをしました。
G92 のG-Code の説明は
MarlinのHP に有りますのでそちらをご覧下さい。
(Z_OFFSETの機能がきちんと動作する場合はこの方法は不要です。)
オールドプリンターは特に基本を磨くことで1層目の定着が良くなります。
ですがベッドスリンガータイプのプリンターではベッドを正確に水平にマウントしつつ前後に移動する事が難しいようです。言い換えるとY軸のうねりからベッドとノズルの位置を正確に保持するのが難しい(特に安価機)。
なのでベッドの小さい物や、特にハイパフォーマンスな補正装置の付いた機種を選択するのが良い様です。
他にもSlicerの設定で1層目の加速度の値を50~100程度まで落とすと印刷の角になる部位の剥がれが発生しにくくなるようです。
こんな感じかな。
私は12月に BambuLab の A1mini を買い増ししました。理由はベッドが小さいからです。3Dプリンターにとって小ささと軽さが一番の正義になります。軸の精度は確保しやすく、可動部の慣性重量も小さくなるので、特に難しい技術を投入しなくても印刷にとって良い事しかありません。
PlusaはMK4でロードセルを導入したのかな? Bambuは吐出圧力センサーを兼ねた渦電流センサー。
センサーの仕組みはマイクロスイッチから始まり →BLタッチセンサーとその派生品 →コイルセンサによる近接スイッチ →TMC2209での接触検出 →現行の高精度な仕掛け色々(←いまここ)
今まで精度とコストの兼ね合いでいろいろな検出方法が採用されてきましたが、今も尚、マダマダ進化の途中です。