Duet3にはあらかじめテーブルの傾き、歪み、たわみを記録しておいて、加工時に自動的に高さを調整して補正する機能があります。3Dプリンター用の機能ですが、座標を少しごまかしてあげると自作CNCのテーブル補正にも使うことができました。 ごまかさなくても使えるようになりました。
テーブルをプローブする方法の選定
私が試してうまくいった方法は2種類。アルミテーブルとエンドミルを使ったタッチプローブ式とIRProbeを使った赤外線プローブ式です。
アルミテーブルとエンドミル 7000円くらい | IRProbe 5000円くらい |
---|---|
アルミテーブルが必要(自分で穴あけなど) | 配線処理が必要 |
アルミテーブルがあれば電線だけで可能 | 固定部品が必要(3Dプリントデータ有) |
MDFなどのテーブルでも使用可能 | |
テーブル補正の実行
sys>config.gにM557で測定範囲と間隔を指定します。
Xー5~ー570、Y-5~-270の範囲を40mm間隔て測定する場合は下記のようになります。
M557 X-570:-5 Y-270:-5 S40
コンソール画面のCompensation&CalibrationからもM557の設定が可能です。
config.gのM557は起動時に読み込まれるので、コンソールからM557を指定しなおした場合はコンソールから設定した値が優先されます。
ホーミングを行って機械原点が記録されていないとテーブル補正コマンドが使えないので必ずホーミングを行っておきます。
プローブが反応する高さ近くまでZ軸を下げ、G30で一カ所プローブを行います。原点でもテーブルの中心でも構いません。
ダッシュボードのCompensation&CalibrationからRun Mesh Compensation(G29)を実行します。
マイナス方向の端から順番にテーブルがプローブされていきます。
テーブルプローブが完了したらconsole>Height Mapから視覚的に確認することができます。
このハイトマップが表示されている状態(ハイトマップが読み込まれている状態)で実行されるGコードには自動的にメッシュベッド補正がかかります。
取得したこのハイトマップはsysディレクトリにheightmap.csvという名前でCSVで保存されます。
Files>SystemからCSVの確認、編集もすることができます。具体的にどれくらいテーブルが歪んでいるのかはCSVの数字の方が見やすかったです。
次回以降、マシン起動時にこのメッシュ補正を有効化するにはsys>config.gファイルに
M375(SDカードからハイトマップを読み込む)を記述しておきます。
- G29ファイル sys/mesh.g を実行するか、そのファイルが見つからない場合は G29 S0 を実行します。
- G29 S0ベッドをプローブし、高さマップをファイルに保存する
- G29 S1ファイルから高さマップをロード
- G29 S2高さマップをクリア
- G29 S3 P”filename”高さマップを名前を付けてファイルに保存
- G30ベッドを 1 点でプローブします (Z プローブのトリガー高さの測定に使用できます)
- G31 Z プローブのトリガー高さ、しきい値、およびプリント ヘッド基準点からのオフセットを設定します。
- G32 sys/bed.g ファイルを実行します。bed.g にコマンドを入力して、メッシュ ベッド レベリングを実行できます (例: M401、G29 S0、M402)。
- M374高さマップをファイルに保存
- M375ファイルから高さマップをロード (G29 S1 と同じ)
- M376ベッド補正テーパー高さの設定
- M401 Z プローブをデプロイします (# は Z プローブ番号である sys/deployprobe#.g ファイル、またはファイルが見つからない場合は sys/deployprobe.g ファイルを実行します)。
- M402 Z プローブのリトラクト (sys/retractprobe#.g ファイルを実行します。# は Z プローブ番号です。ファイルが見つからない場合は sys/retractprobe.g を実行します)
- M557プローブグリッドを定義する
- M558 Z プローブのタイプ、ダイブ高さ、プローブ速度、プローブ ポイント間の移動速度、プローブの回復時間を設定します。
- M561クリアハイトマップ (G29 S2 と同じ)