このトピックにはいくつかの質問があるため、より一般的な解決策は有益であり、センサーの位置がわずかに異なる場合に他の人が何度も質問するのを防ぎます。この回答は、ノズルに関するあらゆる位置をカバーすることを目的としています。また、センサーの種類は関係ありません。ノズルへのオフセット(中心から中心)を決定できる限り、3DTouch、BLTouch、誘導性、容量性などが可能です。
今のところ、ノズルはベッドの全領域にしか到達できず、余分なスペースはないと想定されています。したがって、センサーがベッドを実行しない限り、ノズル制限が使用されます。そうでない場合、センサーはセンサー制限に対してノズルを制限します。これは最も安全な仮定であり、キャリッジがエンドマウントにぶつかるのを防ぎます。ただし、移動の余地がある場合は、制限にオフセットが追加される場合があります。
最初 、センサーのオフセットを決定します(例:測定または印刷可能なセンサーブラケットの情報から取得すると、インターネット上で多くの共有サイトが見つかりました。 Thingiverseは、そのようなブラケットの優れた情報源です。
ヒントMarlin 2.x
Marlinのバージョン(ブランチ)に注意してください!答えは1.1.xブランチの時点で書かれているため、次の場合に完全に有効です。最新の1.1.x(1.1.9)バージョン。 Marlinの2.0.xブランチでは、さまざまな定数名が使用されており、さまざまな戦略が使用されています(セットアップがより簡単です)。定数名は Configuration.h
にありませんが、答え(および理論)は引き続き役立ちます。一定のプローブオフセット値が Configuration_adv.hにあります:
-
MIN_PROBE_EDGE_LEFT
-
MIN_PROBE_EDGE_RIGHT
-
MIN_PROBE_EDGE_FRONT
-
MIN_PROBE_EDGE_BACK
Marlin 1.1.xでは境界が絶対位置に設定されているのに対し、Marlin2.0.xではベッドエッジからのオフセット値で記述されていることに注意してください。
センサーオフセット
センサーの位置は、次の定数を使用して設定されます。
#define X_PROBE_OFFSET_FROM_EXTRUDER [XXX] // Xオフセット:-左+右[ノズルの] #define Y_PROBE_OFFSET_FROM_EXTRUDER [YYY] / / Yオフセット:-front +ビハインド[ノズル]
ここで、 [XXX]
と [YYY]
は、の中心を指定するオフセット値です。ノズルに関するセンサー。両方が正の値の場合、センサーは右奥にあり、両方が負の場合、位置は左前にあります(Marlin構成ファイルの定義を使用してマシンの正面から見た場合)。可能な他の位置は、左後部と右前部(1つは正の値と1つは負の値)です。
マーリン2.xのヒント
注Marlin 2.xでは、これらの定数は配列定義に置き換えられます。
#define NOZZLE_TO_PROBE_OFFSET {XXX、YYY、ZZZ}
Where ZZZ
はZオフセットです。古い定数を使用する場合、コンパイル時のサニティチェックにより、これらの定数は使用されなくなったため削除する必要があるというアサーションがスローされます。
2番目 、センサー領域の制限を設定しましょう!
センサー領域の制限
次の画像では、ノズル、センサー、およびオフセットは次のように定義されています。
センサーには4つの可能な位置があります。これにより、センサー領域の制限(透明な赤い領域)について次の図が作成されます。
1。右奥のセンサー:
これは、センサーが後ろと右の境界に到達できることを意味するため、制限が設定されています作成者:
#define LEFT_PROBE_BED_POSITION(X_PROBE_OFFSET_FROM_EXTRUDER)#define RIGHT_PROBE_BED_POSITION(X_BED_SIZE)#define FRONT_PROBE_BED_POSITION(Y_PROBE_OFFSET_FROM_EXTRUDER)
#define BACK_PROBE_BED_POSITION(Y_BED_SIZE)
最小プローブオフセットが構成で #define MIN_PROBE_EDGE [value]
によって定義されている場合(センサーの幅/寸法を考慮して)、ベッド制限が変更され、次のようになります(t = MIN_PROBE_EDGE
):
次に、制限は次のように設定されます。
の#define LEFT_PROBE_BED_POSITION(X_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)の#define RIGHT_PROBE_BED_POSITION(X_BED_SIZE - MIN_PROBE_EDGE)の#define FRONT_PROBE_BED_POSITION(Y_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)の#define BACK_PROBE_BED_POSITION(Y_BED_SIZE - MIN_PROBE_EDGE)
は、次のセンサ位置の配置では、 MIN_PROBE_EDGE
のこのオフセットが考慮されます。
2。左奥のセンサー:
これは、センサーが後ろと左の境界に到達できることを意味します(がゼロの場合) MIN_PROBE_EDGE コード>)、制限をすることにより設定されるように
の#define LEFT_PROBE_BED_POSITION(MIN_PROBE_EDGE)の#define RIGHT_PROBE_BED_POSITION(X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)の#define FRONT_PROBE_BED_POSITION(Y_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)の#define BACK_PROBE_BED_POSITION(Y_BED_SIZE --MIN_PROBE_EDGE)
3。左前のセンサー:
これは、センサーが前と左の境界に到達できることを意味します(ゼロの場合) MIN_PROBE_EDGE コード>)、制限をすることにより設定されるように
の#define LEFT_PROBE_BED_POSITION(MIN_PROBE_EDGE)の#define RIGHT_PROBE_BED_POSITION(X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)の#define FRONT_PROBE_BED_POSITION(MIN_PROBE_EDGE)の#define BACK_PROBE_BED_POSITION(Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER --MIN_PROBE_EDGE)
4。右前のセンサー:
これは、センサーが前と右の境界に到達できることを意味します(がゼロの場合) MIN_PROBE_EDGE
)であるため、制限は次のように設定されます:
#define LEFT_PROBE_BED_POSITION(X_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)の#define RIGHT_PROBE_BED_POSITION(X_BED_SIZE - MIN_PROBE_EDGE)の#define FRONT_PROBE_BED_POSITION(MIN_PROBE_EDGE)の#define BACK_PROBE_BED_POSITION(Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)
これは、センサ領域を定義するための基礎に取り組んでいるはず制限。余分な移動スペースがあると、少し複雑になります。追加の移動スペースの非常に簡単な使用法は、構成ファイルにあります。例:
//ホーミング後の移動制限(mm)、エンドストップ位置に対応。#define X_MIN_POS [XX] #define Y_MIN_POS [YY]
where [XX]
と [YY]
は、エンドストップから原点までのオフセット値です(オレンジ色の矢印は X_MIN_POS
と Y_MIN_POS
を表します):
右後方プローブのオフセット定数になります:
#define LEFT_PROBE_BED_POSITION(X_PROBE_OFFSET_FROM_EXTRUDER + X_MIN_POS + MIN_PROBE_EDGE)#define RIGHT_PROBE_BED_POSITION(X_BED_SIZE FRONT_PROBE_BED_POSITION(Y_PROBE_OFFSET_FROM_EXTRUDER + Y_MIN_POS + MIN_PROBE_EDGE)#define BACK_PROBE_BED_POSITION(Y_BED_SIZE-MIN_PROBE_EDGE)
他のすべてのオプションでは、ホーミングオフセットの同様の追加が可能です。プリントヘッドが軸のもう一方の端でX軸またはY軸をさらに移動できる場合。
Marlin2.0.xの解決策の検討
As先ほど申し上げましたが、Marlin 2.0.x us絶対位置ではなく、ベッドエッジオフセット。前のグラフと同様に、ベッド制限図を描くことができます(以下の例では、右後方に取り付けられたプローブを想定しています!):
エッジからのオフセットを定義する必要があることに注意してください。これを適切に行うには、ノズルオフセットの定義にアクセスする必要があります。
#define NOZZLE_TO_PROBE_OFFSET {XXX 、YYY、ZZZ}
これは配列値を定義する部分であるため、最初に配列を作成する必要があります(これは、多くの人が限られたプログラミングスキルで理解できるはずの単純なソリューションであり、より洗練されたソリューションではXYZ構造体を使用してX、Y、またはZプロパティにアクセスします):
Marlin 2.0.xは、定義されたオフセットと、定義された MIN_PROBE_EDGE
に基づいて、プローブ領域を自動的に調整することに注意してください。ベッド。
参照:
#ifPROBE_SELECTED &&!IS_KINEMATIC #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_ED #endif