Skip to content

Instantly share code, notes, and snippets.

@nyarurato
Last active June 23, 2022 13:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save nyarurato/2583ca40adc943cacf3e729279da09ce to your computer and use it in GitHub Desktop.
Save nyarurato/2583ca40adc943cacf3e729279da09ce to your computer and use it in GitHub Desktop.
CNCjsで4方向のワーク原点に対応したXYZプローブ(穴で計測)
; Based https://github.com/cncjs/CNCjs-Macros/blob/master/3_Axis_Probe_with_Hole
; エンドミルを穴に入れて、エンドミルの先はプレート表面より下にします
; 制御基板のプランナーキューが空になるまで待ちます
%wait
; 以下はユーザーが定義する変数です
%Z_PROBE_THICKNESS = 5.06 ;プレートのZ方向の厚さ
%PROBE_DISTANCE = 20 ;プローブを当てにいくときの最大移動量
%PROBE_FEEDRATE_A = 70 ;プローブ時の送り速度 1回目
%PROBE_FEEDRATE_B = 30 ;プローブ時の送り速度 2回目
%PROBE_MAJOR_RETRACT = 3 ;反対側をプローブする前に接触面から離す距離
%Z_PROBE = 15 ; 穴から上げるときに工具を退避させる高さ
%Z_PROBE_KEEPOUT_X = -20 ;穴の中心位置からのZを計測する点のX方向距離(特にここ変更!!)
%Z_PROBE_KEEPOUT_Y = -20 ;穴の中心位置からのZを計測する点のY方向距離(特にここ変更!!)
%Z_FINAL = 15 ;一番最後に工具を退避する高さ
%UNITS=modal.units
%DISTANCE=modal.distance
G91 ; 相対座標系
G21 ;mm単位
; 最大プローブ移動量で穴の右側(X正方向)に向かってプローブします
G38.2 X[PROBE_DISTANCE] F[PROBE_FEEDRATE_A]
G0 X-2 ; 2mmリトラクト
G38.2 X5 F[PROBE_FEEDRATE_B] ;ゆっくりプロービング
%X_RIGHT = posx
G0 X-[PROBE_MAJOR_RETRACT] ;リトラクト
; 最大プローブ移動量で穴の右側(X負方向)に向かってプローブします
G38.2 X-[PROBE_DISTANCE] F[PROBE_FEEDRATE_A]
G0 X2 ; 2mmリトラクト
G38.2 X-5 F[PROBE_FEEDRATE_B] ;ゆっくりプロービング
%X_LEFT = posx
%X_CHORD = X_RIGHT - X_LEFT
G0 X[X_CHORD/2]
%X_CENTER = posx ;穴の中心のX座標を取得
; プランナーキューが空であることを確認するための1秒の停止
G4 P1
G10L20X0
; 最大プローブ移動量で穴の上側(Y正方向)に向かってプローブします
G38.2 Y[PROBE_DISTANCE] F[PROBE_FEEDRATE_A]
G0 Y-2 ; 2mmリトラクト
G38.2 Y5 F[PROBE_FEEDRATE_B] ;ゆっくりプロービング
%Y_TOP = posy
G0 Y-[PROBE_MAJOR_RETRACT] ;リトラクト
; 最大プローブ移動量で穴の下側(Y負方向)に向かってプローブします
G38.2 Y-[PROBE_DISTANCE] F[PROBE_FEEDRATE_A]
G0 Y2 ; 2mmリトラクト
G38.2 Y-5 F[PROBE_FEEDRATE_B] ;ゆっくりプロービング
%Y_BTM = posy
%Y_CHORD = Y_TOP - Y_BTM
%HOLE_RADIUS = Y_CHORD/2
G0 Y[HOLE_RADIUS]
%Y_CENTER = posy ;穴の中心のY座標を取得
; プランナーキューが空であることを確認するための1秒の停止
G4 P1
G10L20Y0
; Zの計測位置へ移動
G0 Z[Z_PROBE]
X[Z_PROBE_KEEPOUT_X] Y[Z_PROBE_KEEPOUT_Y]
; Zプロービング
G38.2 Z-[Z_PROBE] F[PROBE_FEEDRATE_A]
G0 Z2 ; 2mmリトラクト
G38.2 Z-5 F[PROBE_FEEDRATE_B] ;ゆっくりプロービング
G10L20Z[Z_PROBE_THICKNESS]
G0 Z[Z_FINAL] ;Zを上げる
G90 ;絶対座標に戻す
G0 X0 Y0
; プランナーキューが空であることを確認するための1秒の停止
G4 P1
[UNITS] [DISTANCE] ;元の単位と移動座標系へ変更
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment