#はじめに
中華ルーラ(3軸フライス)をポチッたところ、コントローラはMach3限定でした。
原点出しをするための方法を探したところ、
https://sites.google.com/site/likipong/pcbmilling/kontakutopurobu-ji-nengno-zhui-jia
を見つけて設定したのですが、マクロ実行時に一旦ゼロリセットされるとか、XY軸には使いにくかったので、改造しました。
#マクロ
Move = 10.00 ' Total lenght of Probe to move before Stop or no Contact Made.
Width = 20.00 ' Plate Width X(30.00) Y(40.00) Z(20.00)
Axis = "Z" ' "X" "Y" "Z"
Sn = "-" ' "" or "-"
Offset = 2.00 '
If Axis = "X" Then
noBtn = 1008 'ofs zero X(1008) Y(1009) Z(1010)
noDro = 0 'set ofs X(0) Y(1) Z(2)
noPos = 2000 'pos X(2000) Y(2001) Z(2002)
Width = Width + GetOemDRO(822) / 2
End If
If Axis = "Y" Then
noBtn = 1009 'ofs zero X(1008) Y(1009) Z(1010)
noDro = 1 'set ofs X(0) Y(1) Z(2)
noPos = 2001 'pos X(2000) Y(2001) Z(2002)
Width = Width + GetOemDRO(822) / 2
End If
If Axis = "Z" Then
noBtn = 1010 'ofs zero X(1008) Y(1009) Z(1010)
noDro = 2 'set ofs X(0) Y(1) Z(2)
noPos = 2002 'pos X(2000) Y(2001) Z(2002)
End If
CurrentFeed = GetOemDRO(818)
DoSpinStop()
StopMove = 0
If GetOemLed (825)=0 Then
MoveTo = GetDro(noDro)
If Sn = "-" Then
MoveTo = MoveTo - Move
Else
MoveTo = MoveTo + Move
End If
Code "G4 P2.5"
Code "G31 " & Axis & MoveTo & "F25"
While IsMoving()
Sleep(200)
Wend
Probepos = GetVar(noPos)
If Probepos = MoveTo Then
responce = MsgBox ("**ERROR** ", 0, "Probe **ERROR**" )
Code "G0 " & Axis & "0"
StopMove = 1
End If
If StopMove = 0 Then
DoOEMButton (noBtn)
Code "G4 P1"
If Sn = "-" Then
Call SetDro (noDro, Width)
Else
Call SetDro (noDro, -Width)
End If
Code "G4 P1"
Code "F25"
If Sn = "-" Then
Code "G91G1 " & Axis & Offset
Else
Code "G91G1 " & Axis & "-" & Offset
End If
Code "G90"
Code "(" & Axis & " zeroed)"
End If
Code "F" & CurrentFeed
Else
responce = MsgBox ("**ERROR** ", 0, "Check Ground Probe" )
End If
Exit Sub
#設定方法
Proguram Run ページで Operator - Edit Button Script メニューを選択すると設定できるボタンが点滅します。Auto Tool Zeroを選択すると VB Script Editorが開きますので、ここに上記コードをコピペします。保存して終了すると設定されます。
念のため一旦Mach3を終了しておくと、確実に保存されます。
設定の変更は、最初の5行を変更してください。
Move = 10.00
1回の最大移動量(mm)です。この移動量を超えても検出しない場合エラーとなり停止します。
Width = 20.00
検出用の金属プレートの厚さ(mm)です。検出後この厚さ分オフセットが足されます。
X軸Y軸の場合は、Width = Width + GetOemDRO(822) / 2 を追加してありますので。Mach3のTool Dia の値の半分をさらに足しています。工具の中心座標に補正できます。
上図の例では、4mm工具を使うので、工具の半分の2mmが自動的に足されます。
Axis = "Z"
Sn = "-"
検出軸と移動方向です。
Axis = "Z" Sn = "-" だと、Z軸を―方向(下方向)に動きます。
Axis = "X" Sn = "" だと、X軸を+方向(右方向)に動きます。
Axis = "Y" Sn = "-" だと、Y軸を-方向(手前方向)に動きます。
私は、X,Y軸はOffsetsページの4つのSelectボタンに設定しています。
Offset = 2.00 '
検出した後にどれだけ元に戻すかを設定します。