MENU
知識がなくても始められる、AIと共にある豊かな毎日。
3Dプリンター

KAMP(Adaptive Meshing & Purging)実践 — 印刷時間を短縮する Klipper 拡張

ゲンキ

KAMP(Adaptive Meshing & Purging)実践 — 印刷時間を短縮する Klipper 拡張

「ベッドメッシュを取るのに毎回 5 分かかる」「印刷開始前のパージラインが端から端まで走って時間を食う」「印刷物が 10cm 角なのにフルベッドの 256 点をプローブする意味がわからない」。これらは Klipper を運用する誰もが感じる時間ロスで、解決策が KAMP Klipper(Klipper Adaptive Meshing & Purging)拡張だ。kyleisah が GitHub で公開しているこのコミュニティ拡張は、印刷領域を G-code から読み取って必要な範囲だけプローブし、印刷物のすぐ近くにパージラインを敷き、第二段加熱を印刷開始位置近くで行う。Klipper 0.13.0 が公式 adaptive bed mesh を導入した 2025 年以降、KAMP の役割は「公式機能を一括管理する標準プリセット」へと進化した。本記事では KAMP Klipper 拡張の構成要素、インストール手順、典型的な落とし穴を 2026 年 5 月時点の情報で整理する。

なぜ「全面プローブ」と「全面パージ」が時間を食うのか

Klipper の標準的なベッドメッシュは、長方形のベッド全体を均等な格子点で測定する設計になっている。256mm 角のベッドで 9×9 格子なら 81 点、密にすると 25×25 で 625 点。BLTouch のような接触式プローブは 1 点に 2〜3 秒、Beacon のような誘導式でも合計で数分かかる。これが毎回の印刷の頭にかかるオーバーヘッドの正体だ。

問題は、実際の印刷物がベッド全面を使うことが稀であることだ。10cm 角のオブジェクトを刷るのに 256mm 全域をプローブする情報量の意味は薄い。真に必要なのは「印刷領域の歪み」だけで、それ以外の格子点は時間の無駄になる。Klipper 0.13.0 が公式 adaptive bed mesh を導入したのも、この長年の不合理に対処するためだ。

加えて言えば、フルベッドメッシュの「密度」も妥協を生む。9×9 で 81 点なら、ベッド 256mm 角のときの格子間隔は 32mm。10cm 角の印刷物の中には 3〜4 点しか入らない。一方で印刷領域に絞って 9×9 を取れば格子間隔は 12mm 強になり、同じ点数で 3 倍以上の密度を確保できる。プローブ時間が同じなら情報量を増やせるし、情報量が同じならプローブ時間を 1/3 に縮められる、という二重の利点が KAMP の Adaptive Meshing にはある。

パージラインも同じ構造の問題を抱えている。多くの Klipper コミュニティテンプレートは、ベッド左端の Y 軸沿いに 250mm のパージラインを引く設計になっている。印刷物が右奥にある場合、パージライン直後にフィラメントが冷える前に対角線移動が始まり、糸引きや射出開始時のアンダーエクストルージョンを誘発する。第二段加熱(chamber preheat)も、印刷開始位置から離れたホーム位置で行うと、ヘッドの実温度が安定しないまま印刷が始まる。

これらは個別には小さなロスだが、毎回の印刷で数十秒〜数分積み上がる。1日に 5 回の印刷を回す運用なら、年間で数十時間の作業時間に相当する。プリントファームレベルでは無視できないコストになり、Voron や自作機を継続運用するメイカー層が KAMP を「必須拡張」として位置付けるのはこの累積効果に起因する。Bambu Lab P1S や X1C のような完成品メーカー機は、内部の独自実装で似た最適化を行っているため、Klipper 派 vs Bambu 派の最適化の方向性は実は近い。

KAMP Klipper の4つの構成要素

KAMP Klipper はこれらの非効率を一括解決する4つの機能で構成されている。それぞれが独立して効果を発揮するため、自分の運用で必要な機能だけ選んで導入することも可能だ。例えば「ベッドプローブを持っていない機械なら Adaptive Meshing は不要だが、Line Purge と Smart Park は使いたい」というケースで、KAMP の設定ファイルは機能ごとに分割されているため柔軟に有効化できる。

機能役割効果
Adaptive MeshingG-code 解析で印刷領域を取得し、その範囲のみメッシュ生成プローブ時間短縮、メッシュ密度の実質向上
Line Purge / VORON Purge印刷物の近くにパージラインを敷く糸引き低減、第一層の安定性向上
Smart Park第二段加熱を印刷開始位置近くで実施ヘッドの熱平衡が早く安定
Dockable Probe SupportKlicky や Euclid のようなドッカブルプローブと統合プローブ着脱を含めた自動化

KAMP Klipper はマクロ集として配布されており、Klipper 本体には変更を加えない。PRINT_START マクロから KAMP の関数を呼び出す形で統合されるため、プリンタ側の安定性に影響を与えにくい設計だ。Voron 系コミュニティでは、ほぼ全構成で KAMP を導入する流れが定着している。

なお、Klipper 0.13.0 が公式に組み込んだ adaptive bed mesh は、KAMP の Adaptive Meshing と機能的に重なる部分がある。両者を併存させると挙動が混乱するため、KAMP を導入する場合は Klipper 公式の adaptive 設定を抑制する printer.cfg の調整が必要になる。最新版の KAMP は Klipper 0.13.0 以降の公式機能と協調する設定例を README で示している。

インストール — 前提条件と Moonraker Update Manager

KAMP の導入で最初に確認すべきは、printer.cfg[exclude_object] セクションが定義されていることだ。これは「印刷物の物理位置を G-code から取り出す」前提機能で、Klipper 自体は対応しているが、ユーザが明示的に有効化する必要がある。最低限の設定は次の1行で済む。

[exclude_object]

スライサー側でも exclude_object 機能を有効にする必要がある。SuperSlicer・OrcaSlicer・PrusaSlicer は対応しており、出力 G-code に EXCLUDE_OBJECT_DEFINE ブロックが含まれることが KAMP の動作前提だ。Bambu Studio は独自実装のため、KAMP との直接連携は限定的になる。Cura もデフォルトでは exclude_object を生成しないため、設定で明示的に有効化するか、別の方法で領域情報を渡す必要がある。

KAMP 本体は Moonraker Update Manager 経由で入れるのが定石だ。moonraker.conf に次の設定を追記すると、Mainsail / Fluidd の更新画面から KAMP のバージョン管理ができるようになる。

[update_manager Klipper-Adaptive-Meshing-Purging]
type: git_repo
channel: stable
path: ~/Klipper-Adaptive-Meshing-Purging
origin: https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging.git
managed_services: klipper

リポジトリを ~/Klipper-Adaptive-Meshing-Purging にクローンし、Configuration/KAMP_Settings.cfgprinter_data/config/ 配下にシンボリックリンクするのが README が示す導入方法だ。printer.cfg の冒頭で [include KAMP_Settings.cfg] を書けば、KAMP の設定が読み込まれる。

Adaptive Meshing の設定 — 必要な範囲だけプローブする

KAMP の Adaptive Meshing は BED_MESH_CALIBRATE マクロを上書きし、G-code から印刷領域の範囲を読み取って MESH_MINMESH_MAX を動的に設定する。設定ファイル KAMP_Settings.cfg の主要パラメータは次の通り。

パラメータ役割推奨値
mesh_margin印刷領域の周囲に追加するメッシュ範囲0〜5mm(実印刷より少し広く)
fuzz_amountメッシュ点位置のランダムずらし量0〜1mm(同じ位置のプローブ摩耗回避)
probe_dock_enableドッカブルプローブ使用時に有効化通常はfalse
attach_macroプローブ装着マクロ名Klicky 等使用時のみ
detach_macroプローブ離脱マクロ名Klicky 等使用時のみ

mesh_margin の意味は重要で、印刷物の境界ぎりぎりだけでメッシュを取ると、第一層の塗布が境界を少し超えた領域でずれる可能性がある。3〜5mm 程度の余裕を持たせると、初層の貼り付き安定度が上がる。逆に大きすぎる margin は時短効果を相殺するため、印刷物のサイズと相談して決める運用になる。

実測としては、Voron Trident(300mm 角ベッド)で 100mm 角の印刷物の場合、フルベッドの 25×25 メッシュが約 4 分かかるところ、KAMP で印刷領域に絞ると 7×7 で 30 秒程度に短縮する例が頻繁に共有されている。これは時間短縮として大きく、印刷を頻繁に始める運用ほど効果が積み上がる。

Line Purge と VORON Purge — 印刷物の近くにパージする

KAMP のもう一つの目玉が Line Purge / VORON Purge だ。スライサーの PRINT_START マクロから LINE_PURGE または VORON_PURGE を呼ぶと、印刷物の近傍にパージラインが描かれる。位置は G-code の印刷領域から自動算出されるため、ユーザが座標を指定する必要はない。

LINE_PURGE と VORON_PURGE の違いは見た目で、LINE_PURGE は単純な直線、VORON_PURGE は Voron ロゴを描く装飾的なバージョンになる。機能的には同じで、好みで選べばよい。Voron コミュニティでは VORON_PURGE が事実上の標準として流通している。

スライサー側のスタート G-code に次のように差し込むのが基本構成だ。

PRINT_START EXTRUDER=[first_layer_temperature] BED=[first_layer_bed_temperature]

PRINT_START マクロ内で LINE_PURGE を呼び出す形にしておけば、ユーザがスライサーごとに異なる注入を意識する必要がなくなる。OrcaSlicer・SuperSlicer・PrusaSlicer の各設定でも同じ呼び出し方が使える。

Smart Park と第二段加熱の最適化

Smart Park は印刷ヘッドを「印刷開始位置の近く」に移動してから最終加熱を行う機能だ。従来の Klipper テンプレートは、ホーム位置(X=0, Y=0 等)でヘッドを温め切ってから移動する設計が多かったが、これだとヘッドが長距離を移動する間に温度がわずかに変動する。Smart Park は印刷物の中心付近にヘッドを移動し、設定された smart_park_height(典型値 10〜20mm)で温度を安定させる。

KAMP_Settings.cfg の主要パラメータは smart_park_height で、ヘッドが印刷物上空に来た際の Z 高さを指定する。ベッドにヘッドが触れない高さで、かつ加熱対流が印刷物表面に届く範囲という条件で 10mm 前後が定番だ。チャンバーヒーター付きエンクロージャの場合、ヘッドの実温度がチャンバー温度の影響で変動するため、Smart Park の効果がより顕著になる。

トラブルシューティング — exclude_object 関連の典型エラー

KAMP の動作で最初に遭遇するのが「exclude_object が認識されない」エラーだ。原因はほぼ以下の3パターンに収まる。

第一に、[exclude_object] がコメントアウトされたまま、または printer.cfg に追加されていない。1 行追加するだけで済むが、追加忘れが頻出する。

第二に、スライサー側で exclude_object 出力が無効化されている。OrcaSlicer なら「Printer settings → Advanced → exclude_object」を有効化、SuperSlicer/PrusaSlicer なら「Print Settings → Output options」で設定する。Bambu Studio は独自パスで対応している部分があるが、完全互換ではないため別途調整が必要になる。

第三に、KAMP 自体のバージョンと Klipper 本体のバージョン不整合。Klipper 0.13.0 で adaptive bed mesh が公式機能として組み込まれた影響で、古い KAMP はエラーを吐くケースがある。Moonraker Update Manager で最新化すれば解消する。Klipper 公式機能と KAMP の機能が重複する部分があるため、printer.cfg での [bed_mesh] セクション設定と KAMP の Adaptive Meshing マクロが互いに干渉しないよう注意が必要だ。

Adaptive Meshing の効果検証 — 数値で見るベネフィット

KAMP の Adaptive Meshing がどの程度の時短になるかは、印刷物のサイズ・ベッドサイズ・プローブ種別によって変動する。コミュニティで頻繁に共有されている目安として、Voron Trident の 300mm 角ベッドで以下のような結果が観察される。

印刷物サイズフルベッド 25×25KAMP(mesh_margin=5mm)短縮率
50mm 角約 4 分約 25 秒約 90%
100mm 角約 4 分約 35 秒約 85%
200mm 角約 4 分約 1 分 30 秒約 60%
300mm 角(フル)約 4 分約 4 分ほぼ同じ

これらは絶対値ではなくコミュニティ事例として共有されている目安で、実際の数値は各プリンタのプローブ速度・メッシュ密度設定で変わる。それでも「印刷物が小さいほど効果が大きい」という傾向は普遍で、毎日の印刷運用に組み込む価値は高い。

逆に「印刷物がベッドのほとんどを占める」状況では KAMP の Adaptive Meshing は効果が薄い。ただしその場合でも Line Purge と Smart Park の効果は残るため、KAMP の導入自体は無駄にならない。

BTT EBB36/EBB42 との組み合わせ — CAN Bus ツールヘッド

KAMP の効果を最大化する物理構成として、BTT EBB36 / EBB42 GEN 2 のような CAN Bus ツールヘッドボードがある。これらはホットエンド側に小型基板を置き、TMC2209 エクストルーダードライバを基板上に統合する。USB と CAN の両通信に対応し、最新 GEN 2 はチャンバー温度 75°C までサポートし、ドラッグチェーン定格ケーブルが付属する。流通価格は EBB36 / EBB42 ともに $35〜$50 のレンジで、米国系流通サイトで広く扱われている。

CAN Bus ツールヘッドの利点は配線数の劇的な減少だ。従来の構成ではホットエンド側へヒータ電源・サーミスタ・ファン・X エンドストップ・フィラメントセンサ・エクストルーダーモーターと 10 本以上のケーブルが集まっていたものが、CAN バス 2 本+電源 2 本の計 4 本に統合される。ドラッグチェーンの可動部の故障率が下がり、メンテナンス性も向上する。

加えて、CAN Bus 経由の通信は Klipper の MCU 設定で [mcu can] という独立したマイコンとして扱われるため、Klipper のホスト/MCU 二層アーキテクチャがそのまま 3 層に拡張される形になる。ホスト(Pi)が中央集権的にコマンドを発行し、メインボード(SKR Mini E3 V3.0 や Manta M8P)と EBB ツールヘッドの両方に時刻指定でステップを流す構造だ。これにより、ツールヘッド側で完結する処理(ホットエンドファン制御、フィラメントセンサ監視、ADXL345 データ取得)の独立性が増し、メインボードのリソース負荷も下がる。

KAMP の Adaptive Meshing でプローブ動作を高速化できる前提として、プローブ自体が高品質で再現性が高い必要がある。Voron 系では Beacon や Eddy Current(LDC1612 系)プローブを EBB ツールヘッドと組み合わせる構成が多く、Klipper 0.13.0 で公式サポートされた ldc1612 とも相性が良い。プローブ点が高密度でも数秒で測れる設計に進んでいる。

KAMP との組み合わせでは、Smart Park の第二段加熱中にツールヘッド側 ADXL345(EBB42 上の SPI ピン)で振動を測りつつ、その後の印刷で Line Purge → 印刷開始というフローが綺麗に流れる。Voron Trident や 2.4 R2 で BTT EBB42 + KAMP の組み合わせが事実上のスタンダードになっているのはこの相性の良さに起因する。

Dockable Probe Support — Klicky や Euclid との統合

KAMP の地味だが重要な機能が Dockable Probe Support だ。Klicky や Euclid のように「使うときだけツールヘッドに取り付ける」着脱式プローブを使う構成では、メッシュ取得の前後でプローブの装着・離脱マクロを呼ぶ必要がある。KAMP の probe_dock_enable: True を有効にし、attach_macrodetach_macro に各自のマクロ名を指定すれば、Adaptive Meshing マクロが内部で自動的に着脱を呼んでくれる。

Klicky プローブは Voron コミュニティで広く採用されている磁石式ドッキングプローブで、印刷中はサイドのドックに掛けておき、メッシュ取得時のみツールヘッドに磁力で装着する仕組みだ。Euclid も類似の発想で、これらを使うと「常設プローブによるホットエンド周辺の干渉を排除しつつ、必要時だけ高精度プローブを使う」運用ができる。KAMP はこのワークフローを前提に設計されているため、Klicky 系を使うなら KAMP は導入必須レベルの拡張になる。

ドッカブルプローブを使わない、BLTouch や Beacon のような常設プローブの場合は probe_dock_enable: False のままで動く。KAMP は両方の構成を1つの設定ファイルでサポートするため、ハードウェア構成を変えても切り替えが容易だ。

運用面のコツ — マクロの順序と PRINT_START の組み立て

KAMP を導入したあと、PRINT_START マクロの構成が運用品質を決める。Voron コミュニティで広く参照されている標準的な順序は以下のような流れだ。

第一にホームを実行し、機械座標を確定させる。第二に Smart Park で印刷開始位置近くにヘッドを移動させながら、ベッドを目標温度まで加熱する。第三に KAMP の BED_MESH_CALIBRATE を呼び、印刷領域に絞ったメッシュを取得する。第四にホットエンドを目標温度まで上げ、Smart Park で再度位置調整。第五に LINE_PURGE または VORON_PURGE でパージラインを敷き、最後に G-code 本体に処理を渡す。

この順序の意図は、ベッドが温まりきらない状態でメッシュを取らないこと、ホットエンドが温まりきらない状態でパージしないこと、そしてヘッドの移動距離を最小化することだ。Smart Park が二度呼ばれている理由は、ベッド昇温フェーズと ホットエンド昇温フェーズで別個にヘッドを動かすほうが熱平衡が早いためになる。プリンタによってはベッド温度の影響でフレームが熱膨張するため、メッシュ取得は温度安定後に行うのが鉄則だ。

PRINT_START マクロの記述は、Voron コミュニティの GitHub テンプレート集(vorondesign/Voron-Documentation 等)に多数の実例があり、そのまま流用できるレベルで整理されている。Klipper 入門段階で自作するより、まず動く実例を入れて、自分の機械に合わせて調整するほうが効率的だ。

まとめ — KAMP Klipper を導入するなら今が最良のタイミング

KAMP Klipper は「Adaptive Meshing・Line Purge・Smart Park・Dockable Probe Support」の4機能で、Klipper 標準ワークフローの非効率を一括で解消する。Klipper 0.13.0 で adaptive bed mesh が公式機能として組み込まれた今、KAMP は「公式機能を最大限活用するためのプリセット集」として位置付けが進化した。Voron 系の自作機やメーカー機の Klipper 派生でも、ほぼ標準採用級の拡張になっている。導入のハードルは exclude_object 設定と Moonraker Update Manager 経由のクローンだけで、効果は印刷ごとに数十秒〜数分の時短として明確に体感できる。

明日(Day 5)は Klipper の Web UI 三大選択肢、Mainsail vs Fluidd vs KlipperScreen を扱う。Sonic Pad や BTT Pad 7 のような専用ハードウェアの位置付けも整理し、Klipper 運用の「目に見える部分」をどう構築するかを掘り下げる。Mainsail と Fluidd は機能的な差異よりも UI 設計思想の違いが選択基準になっており、Sonic Pad は Creality 純正という安心感の代わりに対応プリンタの幅が限られるという固有のトレードオフがある。これらを実装と運用の両面から整理する。

なお、Klipper 全体の前提知識は Day 1 の Klipper 入門 2026 を、Pressure Advance のチューニングは Day 3 の Pressure Advance 自動チューニング を併せて参照されたい。KAMP・Pressure Advance・Input Shaping は組み合わせて運用するもので、それぞれの効果が他の機能の効果を相互に底上げする。

KAMP の効能は数値以上に「印刷を始めるまでの心理的ハードル」を下げる側にある。フルベッドメッシュとフルパージで毎回 5 分待つ運用と、KAMP で印刷物のサイズに応じて 30 秒〜2 分で印刷が始まる運用とでは、メイカーが日常的に試作を回す気軽さが変わる。長期的にはこの心理的効果が、機械を使う頻度と上達速度に効いてくる。Klipper を選んだ意味の半分は、こういう細部のクオリティ・オブ・ライフ向上にある。

参照

ABOUT ME
swiftwand
swiftwand
AIを使って、毎日の生活をもっと快適にするアイデアや将来像を発信しています。 初心者にもわかりやすく、すぐに取り入れられる実践的な情報をお届けします。 Sharing ideas and visions for a better daily life with AI. Practical tips that anyone can start using right away.
記事URLをコピーしました