Created
February 27, 2021 11:27
-
-
Save nyarurato/4293c7fcf52265533e10f629a6f4eaa4 to your computer and use it in GitHub Desktop.
CNCjsで4方向のワーク原点に対応したXYZプローブ(端面で計測)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Based on https://github.com/cncjs/CNCjs-Macros/blob/master/C3D_3axis_probe | |
; エンドミルを穴に入れて、エンドミルの先はプレート表面より下にします | |
; 制御基板のプランナーキューが空になるまで待ちます | |
%wait | |
; 以下はユーザーが定義する変数です | |
%ENDMILL_DIAMETER = 3.175 ;エンドミルの直径 | |
%PROBE_BLOCK_Z = 5.06 ;Z方向のプレートの厚さ | |
%PROBE_BLOCK_Y = 9.982 ;Y方向のプレートの厚さ | |
%PROBE_BLOCK_X = 9.983 ;X方向のプレートの厚さ | |
%PROBE_FEEDRATE_A = 70 ;プローブ時の送り速度 1回目 | |
%PROBE_FEEDRATE_B = 30 ;プローブ時の送り速度 2回目 | |
%Z_ESCAPE_DISTANCE = 15 ;Zの退避時の距離 | |
%Z_PROBE_KEEPOUT_X = -20 ;穴の位置からのZを計測する点のX方向距離 (特にここ変更!!) | |
%Z_PROBE_KEEPOUT_Y = -20 ;穴の位置からのZを計測する点のY方向距離 (特にここ変更!!) | |
%XY_START_POS_DISTANCE = 20 ;穴位置からXYプローブ開始位置への移動距離(絶対値) | |
%XY_PROBE_Z_DISTANCE_FROM_SURF = -5 ;XYプローブ時のZ表面からの高さ | |
G21 ; mm単位 | |
G91 ; 相対座標系 | |
%X_WORK_CENTER_DIRECTON = Math.abs(Z_PROBE_KEEPOUT_X)/Z_PROBE_KEEPOUT_X ; 穴から見てプレートの中心X方向 | |
%Y_WORK_CENTER_DIRECTON = Math.abs(Z_PROBE_KEEPOUT_Y)/Z_PROBE_KEEPOUT_Y ; 穴から見てプレートの中心Y方向 | |
G0 Z[Z_ESCAPE_DISTANCE] ;穴から工具を出す | |
X[Z_PROBE_KEEPOUT_X] Y[Z_PROBE_KEEPOUT_Y] ;Zプロービングの位置へ移動 | |
G38.2 Z[-Z_ESCAPE_DISTANCE] F[PROBE_FEEDRATE_A] ;Zプローブ | |
G0 Z2 ;Z2mm上げ | |
G38.2 Z[-Z_ESCAPE_DISTANCE] F[PROBE_FEEDRATE_B] ;Zプローブ | |
G4 P0.1; | |
G10 L20 Z[PROBE_BLOCK_Z] ;Zの厚さをセット | |
G4 P0.1; | |
G0 Z3 ;Z3mm上げ | |
G0 X[-Z_PROBE_KEEPOUT_X - XY_START_POS_DISTANCE * X_WORK_CENTER_DIRECTON] ;X方向の端面側へ移動 | |
G0 Z[XY_PROBE_Z_DISTANCE_FROM_SURF - 3] ;Z下げる | |
G38.2 X[Z_PROBE_KEEPOUT_X] F[PROBE_FEEDRATE_A] ;X方向端面プロービング | |
G0 X[-2 * X_WORK_CENTER_DIRECTON] ;工具逃し | |
G38.2 X[Z_PROBE_KEEPOUT_X] F[PROBE_FEEDRATE_B] ;X方向端面プロービング | |
G4 P0.1 | |
G10 L20 X[(-ENDMILL_DIAMETER/2 -PROBE_BLOCK_X) * X_WORK_CENTER_DIRECTON] ;Xの厚さと工具径を考慮した座標をセット | |
G4 P0.1 | |
G0 X[-Z_PROBE_KEEPOUT_X/2] ;工具逃し | |
G0 Y[-Z_PROBE_KEEPOUT_Y - XY_START_POS_DISTANCE * Y_WORK_CENTER_DIRECTON ] ;Y方向の端面側へ移動 | |
G90 G0 X[Z_PROBE_KEEPOUT_X] ;工具が端面に当たる位置へX移動 | |
G91 ;incremental | |
G38.2 Y[Z_PROBE_KEEPOUT_Y] F[PROBE_FEEDRATE_A] ;Y方向端面プロービング | |
G0 Y[-2 * Y_WORK_CENTER_DIRECTON] ;工具逃し | |
G38.2 Y[Z_PROBE_KEEPOUT_Y] F[PROBE_FEEDRATE_B] ;Y方向端面プロービング | |
G4 P0.1 | |
G10 L20 Y[(-ENDMILL_DIAMETER/2 -PROBE_BLOCK_Y) * Y_WORK_CENTER_DIRECTON] ;Yの厚さと工具径を考慮した座標をセット | |
G4 P0.1 | |
G0 Y[10 * Y_WORK_CENTER_DIRECTON * -1] ;工具逃し | |
G0 Z10 ;Z工具退避 | |
G90 | |
G0 X0Y0 ;Go to X0Y0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment