3Dプリンターのベッドレベリングの話
Anycubicの i3 MEGA-S に 3D-TOUCH を付けたので幾らでも BED LEVELING が出来るようになりました。そこで HEAT BED をリジットに固定してABLで補正値を求める事にしましたが意外と補正値が大きく成ってしまいます。
ベッドレベリングを行い補正値が求まると、1層目の定着が良く成って印刷の失敗が少なくなるのは皆さん承知の事と思いますが、 補正された凸凹の分は印刷物に対してどのような影響を与えるか考えた事はあるでしょうか?
例えばこのような四角形を印刷するときに、曲がったベッドに補正して印刷する場合は、
このように印刷されるのしょうか?
それとも
このようになるのでしょうか?
答えは後者ですが、凸凹はどのように計算されて補正されるのか?
それは、DEFAULT_LEVELING_FADE_HEIGHT で定義されていて、設定された高さまでに補正値が収束するようになっています。
#define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) Default fade height.
なので、印刷物は設計通りの形状を保てる訳ではないので、補正は極力小さい値にした方が良いのです。
そう考えると初心者のころ何も分からずに、上手く印刷できるまで調整ネジでヒートベッドの高さ調整をしていた印刷方法が一番正確な印刷になりますね。
という事でこの曲がったヒートベッドを修正値が小さくなる様にもう少し何とかしたいと思います。
↑ リジットにした状態で計測
右手前が大きく下がっていますので、何とかしたいですね。
↑ 右手前に 0.2mmのシム(厚紙)を1枚挟みました。もう少し何とか出来そうです。
↑ シム2枚での測定。 やっぱり右半分が下がり気味。
↑ シム3枚。 左手前にも少し影響が出て全体的に変なゆがみが出てしまいました。
↑ シムを2枚に戻して右側のZ軸のネジを45度程緩めて、Z軸を少し下げました。グラフのぱっと見では差はいまいち分かりませんがイイ感じだと思います。
↑ 9×9 の 81点でメッシュを作成しました。
左側からセンターまでは平坦で右半分は特に手前に向けて下がり傾向。仕方ないですがこれで運用をしたいと思います。
気が付いた方もいるかと思いますが、BEDの測定の絶対値が期待する精度以上に振れています。 これはマイクロスイッチを利用したZ軸のHOMINGの精度が良くないんでしょう。 なので印刷ベッドとノズルの距離は永遠のテーマ的になってしまうのでしょうね。(意図せず次回への伏線です)
これで終わりと思いきや、(Z軸測定のブレを除いて)これで運用を開始すると時間と共にヒートベッドの位置が変化して高さや傾きが変わったりしそうですよね?
そういう場合に対しては、UBL の傾き補正が使えます。
通常レベリングと言われているのが今回行った各測定点に対するZ軸方向の計測で得たMESHでの補正のALB(BILINEAR)で、そのMESHをAUTO_BED_LEVELING_3POINT 又は AUTO_BED_LEVELING_LINEAR を使用してMESHの傾き補正を行えるよう2種類の補正を統合したのがUBLになります。
AUTO_BED_LEVELING_3POINT 三角形の3点をプローブします。平面は、平坦であるが傾斜したベッドを補償するのに適した変換行列を提供します。
AUTO_BED_LEVELING_LINEAR グリッド内のベッドをプローブします。変換行列は、平坦であるが傾斜したベッドを補正するために最小二乗法によって生成されます。
AUTO_BED_LEVELING_BILINEAR オプションのCatmull-Romサブディビジョンを使用して、グリッド内のベッドをプローブします。メッシュデータは、双一次内挿法を使用してベッド全体のZ高さを調整するために使用されます。デルタ、大きな、または不均一なベッドに適しています。
AUTO_BED_LEVELING_UBL(推奨) 3点、線形、双線形、およびメッシュレベリングの機能を組み合わせます。バイリニアレベリングと同様に、UBLによって生成されたメッシュデータは、バイリニア補間を使用してベッド全体のZ高さを調整するために使用されます。現在、LCDコントローラーが必要です。
ABL の測定点を25点程度に減らして印刷ごとにレベルングするやり方が大半のようですが(リミットスイッチを使っている限りではその方が理にかなっている。)、本来はMESH測定は厳密に細かく行なって保存を行い、印刷前に3poimtやliner測定でMESHの傾き(ベッドの傾き)を簡便に修正するのがセオリーなんだと思います。
ベッドレベリングって意外に奥深いですよね。
UBL はまたいつか。。。