跳轉至

# 床網

網床 外掛可用於補償熱床表面的不規則性，以保證在列印過程中獲得更好的第一層。 需要注意的是，基於軟體的校正還不能達到完美的程度，它只能儘可能達到床的形狀。網床 也無法補償機械和電氣導致的問題。 如果機器沒裝好結構歪了或探針不準確，則 網床 模組將無法從探測過程中獲得令人滿意的結果。

在進行網格校準之前，需要先校準探針的 Z 偏移。如果使用限位開關進行Z軸定位，也需要對其進行校準。請參閱探針校準和手動調平中的 Z_ENDSTOP_CALIBRATE 獲取更多資訊。

## 基本配置

### 矩形床

此示例假定印表機具有 250 mm x 220 mm 矩形床和一個 x 偏移為 24 mm和 y 偏移為 5 mm的探針。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 35, 6
    mesh_max: 240, 198
    probe_count: 5, 3

- `speed: 120` 預設值：50 探針在兩個點之間移動的速度。
- `horizontal_move_z: 5` 預設值：5 探針前往下一個點之前Z需要抬升的高度。
- `mesh_min: 35,6` （必須存在）第一個探測的座標，距離原點最近。該座標就是探針所在的位置。
- `mesh_max: 240,198` 必須配置 距離原點最遠的探測座標。 這不一定是最後一個探測點，因為探測會以鋸齒形的方式運動。 與 `mesh_min` 一樣，這個座標相對於探針。
- `probe_count: 5, 3` 預設值：3, 3 每個軸上要探測的點數，指定為 X, Y 整數值。 在本示例中，將沿 X 軸探測 5 個點，沿 Y 軸探測 3 個點，總共探測 15 個點。 請注意，如果您想要一個方形網格，例如 3x3，可以將指定其為一個整數值，比如 `probe_count: 3`。 請注意，網格需要沿每個軸的最小 probe_count 為3。

下圖演示瞭如何使用 `mesh_min`、`mesh_max` 和 `probe_count` 選項來產生探測點。 箭頭表示探測過程的運動方向，從「mesh_min」開始。 圖中所示，當探針位於「mesh_min」時，噴嘴將位於 (11, 1)，當探針位於「mesh_max」時，噴嘴將位於 (206, 193)。

### 圓形床

本示例假設印表機配備的圓床半徑為 100 mm。 我們將使用與矩形網床示例相同的探針偏移來演示，X 偏移為 24 mm，Y 偏移為 5 mm。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_radius: 75
    mesh_origin: 0, 0
    round_probe_count: 5

- `mesh_radius: 75` 必須配置 探測網格範圍的半徑（以毫米為單位），相對於 `mesh_origin`。 請注意，探針的偏移會限制網格半徑的大小。 在此示例中，大於 76 mm的半徑會將列印頭移動到印表機的範圍之外。
- `mesh_origin: 0, 0` 預設值：0, 0 探測網格的中心點。 該座標相對於探針的位置。 雖然預設值為 0,0，但如果希望探測床的邊角可以修改該值。 請參閱下圖。
- `round_probe_count: 5` 預設值： 5 這是一個整數值，用於限制沿 X 軸和 Y 軸的最大探測點數。 「最大」是指沿網格原點探測的點數。 該值必須是奇數，因為需要探測網格的中心。

下圖展示瞭如何產生探測點。 如您所見，將 `mesh_origin` 設定為 (-10, 0) 允許我們指定更大的網格半徑 85mm。

## 高級配置

下面詳細解釋了更高級的配置選項。 每個示例都將建立在上面顯示的基本矩形床配置之上。 每個高級選項都以相同的方式應用於圓床。

### 網格插值

雖然可以使用簡單的雙線性插值直接對探測網格的數據進行採樣以確定探測點之間的 Z 值，但使用更高級的插值演算法來插入額外的點以增加網格密度通常很有用。 這些演算法向網格新增曲率，試圖模擬床的材料屬性。 網床提供了拉格朗日和雙三次插值來實現這一點。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 35, 6
    mesh_max: 240, 198
    probe_count: 5, 3
    mesh_pps: 2, 3
    algorithm: bicubic
    bicubic_tension: 0.2

- `mesh_pps: 2,3` 預設值：2,2 `mesh_pps` 選項是每段的網格點數的簡寫。 此選項指定沿 x 軸和 y 軸為每個線段插值的點數。 「段」被視為每個探測點之間的間隔。 與 `probe_count` 一樣，`mesh_pps` 可以是 X, Y 整數對，也可以是同時應用於兩個軸的單個整數。 在此示例中，沿 X 軸有 4 個線段，沿 Y 軸有 2 個線段。 這計算為沿 X 的 8 個插值點，沿 Y 的 6 個插值點，從而產生 13x8 網格。 請注意，如果 mesh_pps 設定為 0，則禁用網格插值，並且將直接對探測網格進行採樣。
- `algorithm: lagrange` 預設值：lagrange 用於插入網格的演算法。 可能是 `lagrange` or `bicubic`。 拉格朗日插值最多為 6 個探測點，因為大量樣本容易發生振盪。 雙三次插值要求沿每個軸至少有 4 個探測點，如果指定的點少於 4 個，則強制拉格朗日採樣。 如果 `mesh_pps` 設定為 0，則該值將被忽略，因為沒有進行網格插值。
- `bicubic_tension: 0.2` 預設值：0.2 雙三次插值的張力值。如果`algorithm` 選項設定為雙三次，則可以指定張力值。 張力越高，內插的斜率越大。 調整時要小心，因為較高的值也會產生更多的過沖，這將導致插值高於或低於探測點。

下圖顯示瞭如何使用上述選項產生網格插值。

### 移動拆分

床網的工作原理是攔截 G 程式碼移動命令並對其 Z 座標進行變換。長的移動必須被分割成較小的移動以正確地遵循床的形狀。下面的選項可以控制分割的行為。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 35, 6
    mesh_max: 240, 198
    probe_count: 5, 3
    move_check_distance: 5
    split_delta_z: .025

- `move_check_distance: 5` 預設值：5 在執行拆分之前檢查 Z 中需要變化的最小距離。 在此示例中，演算法將遍歷超過 5 毫米的移動。 每 5mm 將查詢一次網格的Z ，並將其與前一次移動的 Z 值進行比較。 如果三角洲滿足 `split_delta_z` 設定的閾值，則移動將被拆分並繼續遍歷。 重複此過程，直到到達移動結束處，在此將應用最終調整。 比 `move_check_distance` 短的移動將正確的 Z 調整直接應用於移動，無需遍歷或拆分。
- `split_delta_z: .025` 預設值：.025 如上所述，這是觸發移動拆分所需的最小偏差。 在上面的示例中，任何偏差為 +/- .025 mm的 Z 值都將觸發拆分。

一般來說，這些選項的預設值就足夠了，但事實上，`move_check_distance` 的預設值 5mm 可能會有點過度矯正。 所以，高階可能希望嘗試使用這個選項來獲得擠出最佳的第一層。

### 網格淡出

啟用「網格淡出」后，Z 軸的調整將在配置中定義的距離範圍內逐步消失。 這是通過對層高進行小幅調整來實現的，根據床的形狀增加或減少。 網格淡出完成後，不再使用 Z 調整，使列印的表面是平坦的而不是床彎曲的形狀。 網格淡出也可能會產生一些不良表現，如果網格淡出過快，可能會導致列印件上出現可見的瑕疵（偽影）。 此外，如果您的床明顯變形，網格淡出會縮小或拉伸列印件的 Z 高度。 因此，預設情況下禁用網格淡出。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 35, 6
    mesh_max: 240, 198
    probe_count: 5, 3
    fade_start: 1
    fade_end: 10
    fade_target: 0

- `fade_start: 1` 預設值：1 開始網格淡出的值，在設定的fade_start值之後逐步停止調整Z的高度。 建議在列印幾層之後再開始淡出層高。
- `fade_end: 10` 預設值：0 網格淡出完成的 Z 高度。 如果此值低於`fade_start`，則禁用網格淡出。 該值可以根據列印表面的彎曲程度進行調整。 明顯彎曲的表面應該在將網格淡出的距離長。 接近平坦的表面可能能夠降低該值以更快地逐步淘汰。 如果對 `fade_start` 使用預設值 1，則 10mm 是一個合理的值。
- `fade_target: 0` 預設值：熱床網格的平均Z值 `fade_target` 是在網格淡出完成後應用於整個床的額外 Z 偏移。一 般來說，這個值是 0，但有些情況下它需要改動。 例如，您在熱床的歸位位置與床的平均探測高度有偏差，它比床的平均探測高度低 0.2 mm。 如果 `fade_target` 為 0，淡出會將整個床的列印平均縮小 0.2 mm。 通過將 `fade_target` 設定為 0.2，歸位的位置將擴大 0.2 毫米，但床的其餘部分將具有準確的尺寸。 一般來說，最好不要修改 `fade_target` 而修正機器本身導致的誤差，以便使用網格的平均高度，但是如果想要在床的特定部分列印，可能需要手動調整網格淡出。

### 相對參考索引

大部分探針檢測到的值容易產生誤差，即：由溫度或探測介質干擾產生的探測誤差。 這加大探針Z偏移的看計算難度，尤其是在不同的熱床溫度下。 因此，一些印表機使用限位開關來歸位 Z 軸，並使用探針來校準網格。 這些印表機可以從配置中的相對參考索引（relative_reference_index）中尋找幫助。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 35, 6
    mesh_max: 240, 198
    probe_count: 5, 3
    relative_reference_index: 7

- `relative_reference_index: 7` 預設值：無（禁用）產生探測點時，為每個點分配一個索引。您可以使用網床輸出或在 klippy.log 中查詢此索引（有關詳細資訊，請參閱下面的網床 G程式碼部分）。如果您為 `relative_reference_index` 選項分配了索引，則在該座標處探測的值將替換探針的 Z偏移值。 這將把這個座標作為「零高度」的參考。

使用相對參考指數時，應選擇距離床身 Z 限位器校準點最近的指數。 請注意，在網床輸出或在日誌中查詢索引時，您應該使用「探針」標題下列出的座標來查詢正確的索引。

### 故障區域

由於特定位置的「故障」，熱床的某些區域在探測時可能會報告不準確的結果。 最好的例子是帶有用彈簧鋼板的磁鐵熱床。 這些磁鐵處和周圍的磁場可能干擾探針觸發的高度，從而導致網格無法準確表示這些位置的表面。 注意：不要與探頭位置偏差導致探測結果不準確的結果混淆。

可以配置 `faulty_region` 選項來避免這種影響。 如果產生的點位於故障區域內，熱床網格將嘗試在該區域的邊界處探測最多 4 個點。 這些探測的平均值將插入網床中作為產生的 (X, Y) 座標處的 Z 值。

    [bed_mesh]
    speed: 120
    horizontal_move_z: 5
    mesh_min: 35, 6
    mesh_max: 240, 198
    probe_count: 5, 3
    faulty_region_1_min: 130.0, 0.0
    faulty_region_1_max: 145.0, 40.0
    faulty_region_2_min: 225.0, 0.0
    faulty_region_2_max: 250.0, 25.0
    faulty_region_3_min: 165.0, 95.0
    faulty_region_3_max: 205.0, 110.0
    faulty_region_4_min: 30.0, 170.0
    faulty_region_4_max: 45.0, 210.0

- `faulty_region_{1...99}_min` `faulty_region_{1...99}_max` 預設值：None （無）(disabled（禁用）) 故障區域的定義方式類似床網本身，必須為每個區域指定最小和最大（X, Y）座標。一個故障區域可以延伸到網格之外，但是產生的替代探測點總是在網格的邊界內。兩個區域不可以重疊。

下面的圖片說明了當一個產生的探測點位於一個故障區域內時，如何產生替代探測點。所顯示的區域與上述樣本配置中的區域一致。替代點和它們的座標以綠色標識。

## 床網 G程式碼

### 校準

`BED_MESH_CALIBRATE PROFILE=<名稱> METHOD=[manual | automatic] [<probe_parameter>=<值>] [<mesh_parameter>=<值>]` 預設配置：default 預設方法：如果檢測到探針則自動，否則手動

啟動床網校準的探測程式。

網格將被儲存到由 `PROFILE` 參數指定的配置中，如果沒有指定，則使用 `default`。如果選擇了 `METHOD=manual` ，那麼將進行手動探測。在自動和手動探測之間切換時，產生的網格點會自動調整。

可以通過指定網格參數來修改探測區域。以下參數可用：

- 矩形列印床（笛卡爾 Cartesian）：
  - `MESH_MIN`
  - `MESH_MAX`
  - `PROBE_COUNT`
- 圓形列印床（三角洲 delta）：
  - `MESH_RADIUS`
  - `MESH_ORIGIN`
  - `ROUND_PROBE_COUNT`
- 全部列印床：
  - `RELATIVE_REFERNCE_INDEX`
  - `ALGORITHM`

有關在網格中使用的配置參數詳見配置文件。

### 配置

`BED_MESH_PROFILE SAVE=<名稱> LOAD=<名稱> REMOVE=<名稱>`

在執行 BED_MESH_CALIBRATE 后，可以將目前網格狀態儲存到一個命名的配置中。這樣不需要重新探測列印床就可以載入一個網格。在使用`BED_MESH_PROFILE SAVE=<名稱>`儲存了一個配置檔案后，可以執行`SAVE_CONFIG` G程式碼將配置寫入 printer.cfg。

可以通過執行 `BED_MESH_PROFILE LOAD=<名稱>` 來載入配置。

請注意，每次執行 BED_MESH_CALIBRATE 后，目前狀態會被儲存到 default 配置。如果這個配置在配置檔案中存在，它會在 Klipper 啟動時自動載入。如果不希望這種行為，可以通過以下命令刪除 default 配置：

`BED_MESH_PROFILE REMOVE=default`

任何其他儲存的配置也可以用相同的方式刪除，用你想刪除的配置名稱替換default。

### 輸出

`BED_MESH_OUTPUT PGP=[0 | 1]`

將目前網格狀態輸出到終端。請注意，輸出的是網格本身

PGP 參數是「列印產生的點」的簡寫。如果設定了`PGP=1`，產生的探測點將輸出到終端：

    // bed_mesh: generated points
    // Index | Tool Adjusted | Probe
    // 0 | (11.0, 1.0) | (35.0, 6.0)
    // 1 | (62.2, 1.0) | (86.2, 6.0)
    // 2 | (113.5, 1.0) | (137.5, 6.0)
    // 3 | (164.8, 1.0) | (188.8, 6.0)
    // 4 | (216.0, 1.0) | (240.0, 6.0)
    // 5 | (216.0, 97.0) | (240.0, 102.0)
    // 6 | (164.8, 97.0) | (188.8, 102.0)
    // 7 | (113.5, 97.0) | (137.5, 102.0)
    // 8 | (62.2, 97.0) | (86.2, 102.0)
    // 9 | (11.0, 97.0) | (35.0, 102.0)
    // 10 | (11.0, 193.0) | (35.0, 198.0)
    // 11 | (62.2, 193.0) | (86.2, 198.0)
    // 12 | (113.5, 193.0) | (137.5, 198.0)
    // 13 | (164.8, 193.0) | (188.8, 198.0)
    // 14 | (216.0, 193.0) | (240.0, 198.0)

"Tool Adjusted"（工具調整）點指每個點的噴嘴位置，"Probe"（探針）點指探頭位置。請注意，手動探測時"Probe"（探針）點時將同時指工具和噴嘴位置。

### 清除網格狀態

`BED_MESH_CLEAR`

此 gcode 可用於清除內部網格狀態。

### 應用X/Y偏移量

`BED_MESH_OFFSET [X=<value>] [Y=<value>]`

這對有多個獨立擠出頭的印表機很有用，因為偏移量是必要的，以便在更換工具后產生正確的Z調整。應指定它們相對於主擠出頭的偏移量。也就是說，如果第二個擠出頭安裝在第一個擠出頭的右邊，應指定一個正的X偏移量，如果第二個擠出頭安裝在第一個擠出頭的 "後面"，應指定一個正的Y偏移量。

Back to top