「Bed Meshって、ボタン押せば自動でベッド平らにしてくれるやつでしょ?」
そう思っていませんか?実は、Bed Meshはただの自動レベリング機能ではないんです。測定したデータを数学的に計算して、印刷中ずっとZ軸を動かし続けている、かなり賢い機能なんですよ。
ただ、多くの人が混同しがちですが、「Bed Leveling」はベッド面を物理的に平らにする作業で、「Bed Mesh」はその誤差をソフトウェア的に補正する仕組みです。Bed Levelingで機械的な傾きを整え、Bed Meshで微細な歪みを補う ― この二段構えが理想的な調整です。
この記事では、Bed Meshが主にどう動いているのか、設定の数字が何を意味するのか、そしてどうやって使いこなすのかを、できるだけわかりやすく解説していきます。
Bed Meshとは?
まずは基本から。Bed Meshが何をしているのか、その仕組みを理解しましょう。
補正の仕組み:歪み測定とZ軸のリアルタイム補正
Bed Meshの動きは、大きく2つのステップに分かれています。
ステップ1:歪み測定(マッピング)
手動レベリングだとベッドを完璧に平らにすることはできず、この小さな凹凸が原因でノズルとベッドの隙間(Zハイト)が場所によってバラバラになり、定着ムラが発生して剥がれにつながってしまいます。
BLTouchなどのセンサーでベッド上の何十カ所もの高さを測定し、「ここに凹みがある」「あそこは盛り上がっている」という地図(メッシュ)を作成します。
ステップ2:補正(Z軸の動的制御)
ここが重要なポイント。測定が終わったら、それで終わりではありません。
印刷中、ノズルがXY平面を動き回るとき、Klipperは常に「今いる場所でのZ補正量」を計算しています。そして、Z軸モーターにリアルタイムで指令を送って、ベッドの凹凸に合わせてノズルの高さを微調整し続けているんです。
つまり、Bed Meshは印刷中ずっと働き続けている機能なんですね。測定して終わりじゃないところが、ポイントです。
Bed Meshの限界:傾き vs 歪み
ただし、Bed Meshは万能ではありません。得意なことと苦手なことがあります。
Bed Meshが得意なこと
局所的な凹凸、つまり「ベッドの反り」や「うねり」の補正です。ベッドの中央が少し凹んでいるとか、端が盛り上がっているとか、そういった数mm以内の微細な歪みには、Bed Meshが活躍します。
Bed Meshが苦手なこと
ベッド全体が傾いているケースです。これは機械的な問題、つまりガントリー(横軸)が平行になっていない状態なので、Bed Meshでは対処しきれません。
この場合は、[z_tilt]や[quad_gantry_level]といった別の機能で、まず機械的に平行を出す必要があります。Bed Meshはその後の「仕上げ」として使うイメージです。
プローブの種類と精度の違い
使っているプローブによっても、測定の精度や特性が変わってきます。
- BLTouch(接触式):精度±0.01mm程度で、再現性が高いのが特徴。初心者にも扱いやすいです。
- 誘導式プローブ:金属ベッド専用。ただし温度によって測定値がドリフト(ずれる)ことがあるので注意。
- タッチプローブ(Klicky等):高精度ですが、アタッチメント機構の調整がしっかりできていることが前提です。
大まかに紹介すると3つくらいでしょうか。
ABLセンサーの種類と比較
| カテゴリ | センサー名 | 検出原理 | 検出対象 | 主なメリット |
| 接触式プローブ (最も一般的) | BLTouch (Antclabs) | ソレノイドによる物理接触 | すべての素材 | 極めて高い繰り返し精度、実績豊富。 |
| CR Touch (Creality) | BLTouchと同様(ソレノイド) | すべての素材 | 高い耐久性(金属プローブ)、Creality製品との互換性が高い。 | |
| 非接触式センサー | 誘導型近接 | 電磁場 | 金属のみ | 非接触で高速、摩耗がなく高耐久。 |
| 静電容量型 | 静電容量の変化 | すべての素材 | ガラスや特殊素材を直接検出でき汎用性が高い。 | |
| 先進的な方式 | ロードセル/歪みゲージ式 | ノズルがベッドに触れた際の圧力 | ノズル先端 | Zオフセット設定の精度が最も高い。 |
| 光学式 | レーザーやLED光による距離測定 | ベッド表面 | 高精度かつ高速な非接触測定。 |
温度の影響も忘れずに
ベッドは加熱すると膨張します。その膨張量は0.1〜0.3mm程度。つまり、冷えた状態で測定したメッシュデータを、熱い状態の印刷で使うと、ズレが生じてしまうんです。
だから、必ずベッドを目標温度まで加熱してから測定してください。これ、けっこう見落としがちなポイントです。
Klipper設定:[bed_mesh] パラメータの専門解説
それでは、printer.cfgに書く設定項目を、ひとつひとつ見ていきましょう。「この数字、何のためにあるの?」という疑問が、ここで解消されるはずです。
測定グリッドの設定(mesh_min/mesh_max, probe_count, mesh_pps)
① mesh_min / mesh_max:測定領域の定義
#例
mesh_min: 30, 30
mesh_max: 200, 200これは「ベッドのどの範囲を測定するか」を指定する設定です。
重要な注意点
ここで指定する座標は、ノズルの位置です。プローブの位置ではありません。
たとえばプローブがノズルよりも前方25mmにある場合(y_offset: 25.0)、ノズルをY=30に移動させるとプローブはY=55にいることになります。この点を考慮しないと、プローブがベッドから落ちてしまう事故が起きます。
推奨設定
ベッドの端から20〜30mmくらい余裕を持たせると安全です。測定エラーも防げます。
② probe_count:測定点の数と配置戦略
#例
probe_count: 5, 5 # 5×5 = 25点を測定ここが今回の記事の重要ポイントのひとつです。
測定点が多いと何が良いの?
点数が多ければ多いほど、ベッドの細かい凹凸まで正確に捉えることができます。たとえば7×7(49点)なら、5×5(25点)よりも詳細な地形図が作れるわけです。
ただし、測定時間は点数の二乗に比例します。つまり倍の点数にすると、測定時間は約4倍になります。
なぜ奇数がいいのか?
これには明確な理由があります。
奇数(5×5、7×7など)で設定すると、ベッドの中央を必ず測定点に含めることができるんです。
たとえば5×5なら、3番目の点がちょうど中央になります。偶数(4×4)だと、中央は測定点の隙間になってしまうんですね。
ベッドの中央は、多くの造形物のスタート地点です。ここを確実に測定できることで:
- 補間計算の基準点が安定する
- 初層の精度が向上する
- トラブル時に「中央の値」が明確にわかる
といったメリットがあります。
ベッドサイズ別の推奨値
| ベッドサイズ | 推奨probe_count | 測定時間(目安) | 備考 |
|---|---|---|---|
| 180mm以下(Ender 3等) | 5×5(25点) | 約2分 | 多くの場合これで十分 |
| 220〜250mm | 5×5 または 7×7 | 2〜4分 | 歪みが大きい場合は7×7 |
| 300mm以上(Voron等) | 7×7(49点) | 4〜6分 | 大型ベッドは測定点を増やす |
時間とのトレードオフ
毎回の印刷前に測定するなら、5×5が現実的です。週1回の定期測定なら、7×7で高精度を狙う運用もアリですね。
③ mesh_pps:補間密度の調整
mesh_pps: 2, 2 # 各セグメント間に2×2=4点の補間点を生成mesh_pps(Mesh Points Per Segmentの略)って何?
測定点の間(セグメント)に、仮想的な補間点を何個作るかを決める設定です。
たとえば2, 2なら、測定点AとBの間に2×2=4個の補間ポイントを事前に計算しておきます。これによって、印刷中のリアルタイム計算が軽くなるんです。
推奨設定
デフォルトの2, 2で十分です。高速なMCU(STM32F4以上)なら3, 3も可能ですが、体感できるほどの差はないので、こだわる必要はありません。
補間とアルゴリズム(algorithm, bicubic_tension)
測定したデータを、どうやって滑らかな補正に変換するか。その計算方法を決める設定です。
① algorithm:補間方式の選択
algorithm: bicubicbicubic(推奨)
3次多項式を使った補間方式です。測定点の間を滑らかな曲線でつなぐので、自然な補正ができます。急激な変化も吸収してくれるので、ほぼすべてのケースでベストチョイスです。
lagrange(非推奨)
高次多項式を使う方式ですが、測定点の間で振動(リンギング)が発生しやすい特性があります。特殊な用途以外では使わない方が無難です。
② bicubic_tension:曲面の張りの制御
bicubic_tension: 0.2これは曲面の「張り」を調整する数値です。
- 低い値(0.1):より滑らかになりますが、測定点の値から若干ズレる可能性があります。
- 高い値(0.5):測定点に忠実になりますが、測定誤差も忠実に再現してしまいます。
- 推奨値(0.2):バランスが良く、オーバーシュート(測定値を超える補正)が起きにくいです。
デフォルトの0.2で問題ないので、特別な理由がなければ変更しなくてOKです。
Z補正の適用範囲(fade_start, fade_end, fade_target)
これもけっこう大事な設定です。
① fade_start / fade_end:補正の減衰設定
fade_start: 1.0
fade_end: 10.0fadeって何のためある?
初層(最初の0.2〜0.3mm)では、ベッドへの密着が最優先なので、補正は必須です。でも、高さ方向にずっと補正し続けると、造形物の寸法精度が狂ってしまうんです。
fadeは「どの高さから補正を弱めていって、どこで完全に解除するか」を制御する機能です。
推奨設定の根拠
fade_start: 1.0(1mm):初層の定着をしっかり守る高さfade_end: 10.0(10mm):Z=10mm以降は補正ゼロ。真の寸法精度を確保
つまり、Z=1mm〜10mmの間で、徐々に補正量を減らしていくわけですね。
寸法精度を特に重視する場合
fade_end: 5.0(5mm)に設定すると、より早く補正から解放されます。機能パーツなど、精密な寸法が求められる造形物に向いています。
② fade_target:補正の目標値
fade_target: 0デフォルトの0(補正量の平均値)で大丈夫です。ここは上級者向けの設定なので、深掘りはしません。
Bed Meshの測定とデータ活用
設定ができたら、いよいよ実際に測定してみましょう。そして、そのデータをどう見るか、どう保存するかを解説します。
測定コマンドと確認方法
測定の実行
まずはホーミングしてから、測定コマンドを実行します。
G28 # ホーミング(必須)
BED_MESH_CALIBRATE # メッシュ測定開始測定が完了すると、Klipperは自動的にそのメッシュをアクティブ化します。つまり、すぐに使える状態になるんです。
データの確認
測定したデータを見てみましょう。
BED_MESH_OUTPUT # 測定データをコンソールに出力すると、こんな感じで表示されます。
Bed Mesh:
Min=-0.125 Max=0.142 Mean=0.018この数字の読み方
- Deviation(最大高低差):Max – Min = 0.267mm
これが、ベッド全体での高低差です。この数値で、ベッドの状態を判断します。
- 0.1mm以下:優秀です。素晴らしいベッド調整。
- 0.1〜0.3mm:許容範囲。Bed Meshで十分補正できます。
- 0.3mm以上:機械的な調整が必要。スプリングを回したり、ガントリーの平行出しをしましょう。
プロファイルの保存
測定したデータは、名前をつけて保存できます。
BED_MESH_PROFILE SAVE=default # "default"という名前で保存
SAVE_CONFIG # printer.cfgに永続化SAVE_CONFIGを実行すると、Klipperが自動で再起動して、設定ファイルにデータが書き込まれます。
メッシュ補間計算の原理
ここが、Bed Meshの一番賢いところです。少しだけ数学的な話になりますが、できるだけわかりやすく説明しますね。
補間(Interpolation)とは何か
測定点は離散的(飛び飛び)です。5×5なら25点しかありません。でも、ノズルは連続的にXY平面を動き回ります。
じゃあ、測定していない場所のZ補正量はどうやって求めるのか?それが「補間」という計算です。
視覚的に見てみよう
[実測値のみ] [bicubic補間後]
A-------B A---x---x---B
| | | x x x x x |
| | → | x x x x x |
| | | x x x x x |
C-------D C---x---x---D
※ xは補間により生成された仮想測定点測定点AとBの間に、たくさんの仮想的な点を計算で作り出しているわけです。
bicubicアルゴリズムの動作
印刷中、Klipperはこんな処理をしています。
- ノズルが座標(X, Y)に移動する指令を受け取る
- 周囲4×4=16点の測定値を参照する
- 3次多項式の連立方程式を解いて、その座標でのZ補正量を計算する
- Z軸モーターに補正指令を送る(印刷速度に同期)
これがリアルタイム(数ms以内)で行われているので、滑らかなZ追従が実現されるんです。すごいですよね。
mesh_ppsの役割(再掲)
少し前でも説明しましたが、mesh_pps: 2, 2の場合、測定点AとBの間に2×2=4点の補間ポイントを事前に計算してキャッシュしておきます。こうすることで、印刷中のリアルタイム計算の負荷を軽減しているんです。
導入と運用:安定性のための実践テクニック
理論はわかった。設定もした。じゃあ、日常的にどう使っていくか。実践的なTIPSをお伝えします。
Bed Meshの動作確認と視覚化
測定したデータは、Webインターフェースで視覚的に確認できます。
Mainsail/Fluiddでの確認方法
BLTouchで測定したデータは、MainsailのWebUIを使うと、ベッドの凹凸を色付きの地図(カラーマップ)で直感的に確認できます。まずは、この「ベッドメッシュの可視化」から始めましょう。
承知いたしました。Mainsail(Klipper WebUI)でのBed Meshの確認と保存手順を、ステップごとに箇条書きでリスト化します。
- Mainsailにアクセス
- ブラウザでMainsailのWebUIを開き、画面左メニューの「機能(Features)」→「Bed Mesh」へ移動します。
- 新しいメッシュを作成
- 「Generate Mesh(メッシュ生成)」ボタンを押して測定を開始します。
- 測定完了後、ベッドの歪みを視覚化した**カラーマップ(ヒートマップ)**が表示されます。
- ベッドメッシュの見方
- マップの色と数値でベッドの高さ(基準面からの差)を判断します。
- 緑〜黄色: ほぼ基準面(フラット)
- 赤い部分: 基準より高い(盛り上がっている)
- 青い部分: 基準より低い(凹んでいる)
- 数値はmm単位で、例えば「+0.30$」は基準より0.3mm高いことを意味します。
- マップの色と数値でベッドの高さ(基準面からの差)を判断します。
- 補正範囲をチェック
- 表示された最大値と最小値の差(最大高低差)を確認します。
- ±0.5mm 程度以内: 実用的に問題なし。Bed Meshで十分補正可能です。
- ±1.0mm 以上: 歪みが大きすぎるため、物理的なベッド調整も検討が必要です。
- 表示された最大値と最小値の差(最大高低差)を確認します。
- プロファイルを保存
- 作成したメッシュデータに問題がなければ、「Save Mesh」をクリックしてプロファイルを保存します。
- printer.cfg に保存されるので、再起動後もそのメッシュを使えます。
BLTouchを取り付けたら、まずはメッシュを生成してみるのがおすすめです。「自分のベッドがどれくらい歪んでいるのか」が見えると、補正範囲のイメージがグッと掴みやすくなりますよ。
ヒートマップの活用
特定の場所だけ極端に低かったり高かったりする場合は、その箇所のベッドネジを調整するか、ベッドの取り付け面を確認してみてください。
安定した運用マクロ
スライサーの開始G-codeに、以下を追加しておきましょう。
Mainsailの「Bed Mesh」タブでメッシュを生成した後、「Save Mesh」をクリックするとデータが保存されます。用途に応じて名前を付けておくと便利です。
保存名の例: default(標準ベッド用)、pla_bed(PLA用のガラスベッド)など。
BED_MESH_PROFILE LOAD=default #標準ベッド用BED_MESH_PROFILE LOAD=pla_bed #PLA用のガラスベッド重要な注意事項
G28(ホーミング)を実行すると、アクティブなメッシュがクリアされます。だから、G28の直後にBED_MESH_PROFILE LOADを実行する必要があるんです。
毎回測定する場合は、BED_MESH_PROFILE LOADの代わりにBED_MESH_CALIBRATEを使います。
Klipper マクロ例(推奨)
# 保存済みメッシュを読み込むマクロ
[gcode_macro LOAD_MESH]
gcode:
BED_MESH_PROFILE LOAD=default
BED_MESH_PROFILE ACTIVATE=default
M117 ベッドメッシュをロードしました
# 新しく測定して保存するマクロ
[gcode_macro CALIBRATE_MESH]
gcode:
BED_MESH_CLEAR
BED_MESH_CALIBRATE
SAVE_CONFIG
M117 新しいベッドメッシュを保存しましたMainsailやFluiddのボタンから実行できるので、とても楽になります。
メッシュが適用されない場合のチェックリスト
「Bed Mesh測定したのに、初層がまだら模様になる…」
そんなときは、以下をチェックしてみてください。
チェック項目
1. G-code順序の確認
G28の後にBED_MESH_PROFILE LOADが実行されているか?- 途中で再度
G28を実行していないか?(メッシュがクリアされます)
2. プロファイルの保存確認
BED_MESH_PROFILE LOAD=default # エラーが出る場合は未保存SAVE_CONFIGを実行したか確認しましょう。
3. プローブオフセットの検証
[probe]
x_offset: 0
y_offset: 25.0
z_offset: 2.5 # ← この値が正確か確認PROBE_CALIBRATEで再調整してみてください。
4. fade設定の確認
fade_endが小さすぎる(例:2mm)と、効果を体感しにくいです。テスト時はfade_end: 0(無効化)で確認するのもアリです。
5. 温度条件の一致
測定時と印刷時のベッド温度を同じにしてください。これ、意外と見落としがちです。
メッシュの再測定タイミング
「一度測定したら、ずっと使えるの?」
いいえ、再測定が必要なケースがあります。
必ず再測定が必要なケース
- ベッド面を交換した(ガラス→PEIシートなど)
- ベッド調整ネジ(スプリング)を回した
- プローブのZ offsetを変更した
- プリンターを移動・輸送した
これらの場合は、必ず測定し直してください。
推奨される定期測定
- 週1回程度(ベッドの経年変化を追跡)
- 印刷失敗が増えた時(メッシュの劣化を疑う)
再測定が不要なケース
- 同じフィラメント材質での連続印刷
- 環境温度の変化(±5℃程度)
まとめ
お疲れさまでした!長い記事でしたが、最後まで読んでいただきありがとうございます。
この記事で学んだこと
- Bed Meshは「測定」→「補間計算」→「リアルタイムZ補正」の3段階で動作している
probe_countは奇数(5×5 or 7×7)で設定して、ベッド中央を必ず測定するbicubic補間により、測定点間も滑らかに補正されるfade設定で初層定着と寸法精度を両立できる- 測定温度と印刷温度を一致させることが精度の鍵
次のステップ
- 自分のプリンターで
BED_MESH_CALIBRATEを実行してみる - Webインターフェースでヒートマップを確認する
- Deviationが0.3mm以上なら、機械的調整を優先する
- 最適な
probe_countとfade_endを実験で見つける
この知識を活用して、より高精度な造形に挑戦してみてください。
Klipperの真の力は、原理を理解してパラメータをチューニングすることで初めて発揮されます。「なんとなく」から「わかって使う」へ。その一歩を、この記事が後押しできたら嬉しいです。
それでは、良い3Dプリントライフを!
