Autor Tópico: Auto tool zero - configurar  (Lida 13626 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Genesio

  • Novato
  • *
  • Posts: 8
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Salvador
  • Nome:: Genesio Lomes Spinola
  • Profissão: Adm., Luthier, músico
Re:Auto tool zero - configurar
« Resposta #15 Online: 06 de Setembro de 2017, 14:18 »
Desculpe Lolobel - qual seu nome?

Voce pode atribuir a função ao botão da tela do Mach3, exatamente como mostra o filme.

Vai em "Operador" > "Editar Script de Botão", clica sobre o botão "Auto Tool Zero" (na tela principal do Mach3) - cole sua macro nesta janela e salve...


Boa tarde Sr. F.Gilli.
Já testei esse script colocando no botão "Tool Change"do Mach3 e funcionou tudo ok. Saberia me dizer se existe script para "zerar" os eixos x e y também. Penso em fazer isso para sempre encontrar um mesmo ponto inicial, no caso de falta de energia etc Minha CNC não tem "limit swichts". Desde já agradeço a sua atenção!
Genésio

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re:Auto tool zero - configurar
« Resposta #16 Online: 06 de Setembro de 2017, 14:46 »
Sem Sensores de origem nada feito

Offline Genesio

  • Novato
  • *
  • Posts: 8
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Salvador
  • Nome:: Genesio Lomes Spinola
  • Profissão: Adm., Luthier, músico
Re:Auto tool zero - configurar
« Resposta #17 Online: 06 de Setembro de 2017, 16:54 »
Sem Sensores de origem nada feito


Olá Gilli,


E esse script abaixo que encontrei poderia zerar os 3 eixos? Fiquei com dúvidas com o entrar com os valores nele.
Grato!
Genésio



' Auto Z and Corner Finding Touch Plate Script version 1.2 - CNC Router Parts 2017
Public TouchPlateHeight, ProbeFeedRate, XProbeDistance, YProbeDistance, ZProbeDistance, TouchPlateWidth, XProbeDirection, YProbeDirection, ZTravelHeight, ZLiftHeight, ToolDiameter As Double
Public ProbeX, ProbeY, PauseProbe, Abort, isImperial, isImperialUOM As Boolean


Sub Main


NoPrompt = False ' False = Use UI to Prompt User for corner finding options
PauseProbe = True ' True = Prompt user to rotate tool before X and Y axis probing
WCSOrigin = 0 ' Default Corner 0=Left/Front 1=Left/Rear 2=Right/Front 3=Right/Rear
ProbeX = False ' By default, do not probe/zero X (change this to True to change the default)
ProbeY = False ' By default, do not probe/zero Y (change this to True to change the default)


ProbeFeedrate = 10 'IPM, Anything from 5-12 IPM will likely work well


TouchPlateHeight = 1  'CRP Touchplate is 1" nominal, can adjust this number to calibrate (usually not required)
TouchPlateWidth = 2.205 'Width of Touchplate is 2.205" (56mm) wide
XProbeDistance = 2 'How long to probe X Axis (inches)
YProbeDistance = 2 'How long to probe Y Axis (inches)
ZProbeDistance = 2 'How long to probe Z Axis (inches)
ZTravelHeight = TouchPlateHeight +.125 'How high to lift tool while probing X and Y (inches)
ZLiftHeight = TouchPlateHeight + .5 'How high to lift tool after script is complete (inches)
ToolDiameter = GetOEMDro(105)
isImperial = GetOEMLED(801)
isImperialUOM = isImperial
Abort = True
If (GetOEMLED(800)) Then
Message ("Error: Emergency Mode is Active ")
Exit Function
End If
If isImperial = False Then   
ProbeFeedrate = ProbeFeedrate * 25.4
XProbeDistance = XProbeDistance * 25.4
YProbeDistance = YProbeDistance * 25.4
ZProbeDistance = ZProbeDistance * 25.4
ZTravelHeight = ZTravelHeight * 25.4
ZLiftHeight = ZLiftHeight * 25.4
TouchPlateWidth = TouchPlateWidth * 25.4
TouchPlateHeight = TouchPlateHeight * 25.4
End If
If NoPrompt = False Then
Begin Dialog DlgCheckAxis 15,32,215,90,"Select Axes to Auto Zero",.DlgCheckAxis
OKButton 140,8,40,14
CancelButton 140,30,40,14
GroupBox 10,3,45,50,"",.GroupAxesChk
CheckBox 12,10,30,8,"Z Axis",.ChkBoxZAxis
CheckBox 12,26,30,8,"X Axis",.ChkBoxXAxis
CheckBox 125,50,80,8,"Pause Between Axes",.ChkBoxPauseProbe
CheckBox 12,42,30,8,"Y Axis",.ChkBoxYAxis
GroupBox 62,3,55,68,"",.GroupAxesChk
OptionGroup .grp1
OptionButton 65,10,50,8,"Left/Front",.ComboLeftFront
OptionButton 65,26,50,8,"Left/Rear",.ComboLeftRear
OptionButton 65,42,50,8,"Right/Front",.ComboRightFront
OptionButton 65,58,50,8,"Right/Rear",.ComboRightRear
Text 16,75,100,100,"Tool Diameter: ",.TextToolDiaLabel
TextBox 69,75,30,10,.TextToolDiameter
OptionGroup .grp2
OptionButton 104,75,35,10,"inches",.UnitImperial
OptionButton 139,75,35,10,"mm",.UnitMetric
End Dialog
Dim Dlg1 As DlgCheckAxis
Dlg1.TextToolDiamet er = ""+ToolDiameter
Dlg1.grp1 = WCSOrigin 'default is left/front
Dlg1.grp2 = 0 'default is inches (Imperial)
If isImperial = False Then
Dlg1.grp2 = 1
End If
Dlg1.ChkBoxXAxis = ProbeX
Dlg1.ChkBoxYAxis = ProbeY
Dlg1.ChkBoxPausePro be = PauseProbe
Button = Dialog ( Dlg1 )
ProbeX = Dlg1.ChkBoxXAxis
ProbeY = Dlg1.ChkBoxYAxis
Else
Select Case WCSOrigin
Case 0
XProbeDirection = 1
YProbeDirection = 1
Case 1
XProbeDirection = 1
YProbeDirection = -1
Case 2
XProbeDirection = -1
YProbeDirection = -1
Case 3
XProbeDirection = -1
YProbeDirection = 1
End Select
Abort = false
End If


If ( ProbeX Or ProbeY ) Then
If Not NoPrompt Then
If IsNumeric(Dlg1.TextToolDiamet er) Then
ToolDiameter = CDbl(Dlg1.TextToolDiamet er)
If (isImperial And Dlg1.grp2 = 1) Then
ToolDiameter = ToolDiameter/25.4
End If
If (Not isImperial And Dlg1.grp2 = 0) Then
ToolDiameter = ToolDiameter*25.4
End If
Else
Code "(Invalid Tool Diameter)"
Abort = true
End If
End If
ToolDiameterImperia l = ToolDiameter
If Not isImperial Then
ToolDiameterImperia l = ToolDiameter/25.4
End If
If (Not Abort And ToolDiameterImperia l <= 0) Then
Code "(Tool Diameter is too small)"
Abort = true
End If
If (Not Abort And ToolDiameterImperia l > 2) Then
Code "(Tool Diameter is too large)"
Abort = true
End If
If (Not Abort And Not NoPrompt) Then
SetOEMDro(105,ToolDiameter)
End If
End If
If Not Abort Then
Message ("Auto Tool Sequence Activating...")
AutoZeroMachine
End If
End Sub


Sub AutoZeroMachine()
If GetOEMLED(825) <> 0 Then 'Check to see if the touch plate is already activated
Code "(Touch plate is already activated, check connection and try again)"
Else
FeedCurrent = GetOemDRO(818) 'Get the current settings
XCurrent = GetDro(0)
YCurrent = GetDro(1)
ZCurrent = GetDro(2)
ToolRad = ToolDiameter/2
Code "G4 P1" 'Pause 1sec
Code "F" &ProbeFeedRate
'Always probe z
ZNew = ZCurrent - ZProbeDistance
Code "G31 Z" &ZNew
While IsMoving()
Wend
SetDro(2,TouchPlateHeight)
Code "G0 Z" &ZTravelHeight  'rapid move back off plate enough to travel
If ProbeX Then
If PauseProbe Then
MsgBox "Align Tool Flutes for X-Axis Travel and Press OK"
End If 
XNew = XCurrent + (XProbeDistance * XProbeDirection) 'probe vector
Code "G31 X" &XNew
While IsMoving() 'wait for the move to finish
Wend
SetDro(0,(TouchPlateWidth-ToolRad)*XProbeDirection)
If XProbeDirection = 1 Then
Code "G0 X" &(TouchPlateWidth/2)-ToolRad 'Center the tool on touch plate
Else
Code "G0 X" &((TouchPlateWidth/2)-ToolRad)*-1 'Center the tool on touch plate
End If
End If
  If ProbeY Then
If PauseProbe Then
MsgBox "Align Tool Flutes for Y-Axis Travel and Press OK"
End If 
YNew = YCurrent + (YProbeDistance * YProbeDirection) 'probe vector
Code "G31 Y" &YNew
While IsMoving() 'wait for the move to finish
Wend
SetDro(1,(TouchPlateWidth-ToolRad)*YProbeDirection)
If YProbeDirection = 1 Then
Code "G0 Y" &(TouchPlateWidth/2)-ToolRad 'Center the tool on touch plate
Else
Code "G0 Y" &((TouchPlateWidth/2)-ToolRad)*-1 'Center the tool on touch plate
End If 
End If
Code "G0 Z" &ZLiftHeight
Code "F" &FeedCurrent 'restore starting feed rate
Message ("Auto Tool Sequence Complete.")


End If
End Sub


Function DlgCheckAxis( ControlID$, Action%, SuppValue%)
DlgValue "ChkBoxZAxis", 1
DlgEnable "ChkBoxZAxis",0
If DlgValue("ChkBoxPauseProbe") = 1  Then
PauseProbe = True
Else
PauseProbe = False


End If
If DlgValue("ChkBoxYAxis") = 1 Or DlgValue("ChkBoxXAxis") = 1 Then
DlgEnable "ComboLeftFront",1
DlgEnable "ComboLeftRear",1
DlgEnable "ComboRightFront",1
DlgEnable "ComboRightRear",1
DlgEnable "ChkBoxPauseProbe",1
DlgEnable "TextToolDiameter",1
DlgEnable "TextToolDiaLabel",1
DlgEnable "UnitImperial",1
DlgEnable "UnitMetric",1
Else
DlgEnable "ComboLeftFront",0
DlgEnable "ComboLeftRear",0
DlgEnable "ComboRightFront",0
DlgEnable "ComboRightRear",0
DlgEnable "ChkBoxPauseProbe",0
DlgEnable "TextToolDiameter",0
DlgEnable "TextToolDiaLabel",0
DlgEnable "UnitImperial",0
DlgEnable "UnitMetric",0
End If


If DlgValue("ChkBoxXAxis") = 1  Then
ProbeX = True
Else
ProbeX = False
End If
If DlgValue("ChkBoxYAxis") = 1  Then
ProbeY = True
Else
ProbeY = False
End If
If Action = 3 And ControlID$ = "TextToolDiameter" And Not IsNumeric(DlgText("TextToolDiameter")) Then
DlgText "TextToolDiameter",""+ToolDiameter
End If
If Action = 2 Then
If ControlID$ = "UnitMetric" And isImperialUOM Then
ToolDiameter = CDbl(DlgText("TextToolDiameter"))*25.4
DlgText "TextToolDiameter",""+ToolDiameter
isImperialUOM = false
End If
If ControlID$ = "UnitImperial" And Not isImperialUOM Then
ToolDiameter = CDbl(DlgText("TextToolDiameter"))/25.4
DlgText "TextToolDiameter",""+ToolDiameter
isImperialUOM = true
End If
If ControlID$ = "Ok" Then
Abort = False
If DlgValue ("ComboLeftFront") = 1 Then
XProbeDirection = 1
YProbeDirection = 1
ElseIf DlgValue ("ComboLeftRear") = 1 Then
XProbeDirection = 1
YProbeDirection = -1
ElseIf DlgValue ("ComboRightRear") = 1 Then
XProbeDirection = -1
YProbeDirection = -1
ElseIf DlgValue ("ComboRightFront") = 1 Then
XProbeDirection = -1
YProbeDirection = 1
End If
End If
End If
End Function


Offline Genesio

  • Novato
  • *
  • Posts: 8
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Salvador
  • Nome:: Genesio Lomes Spinola
  • Profissão: Adm., Luthier, músico
Re:Auto tool zero - configurar
« Resposta #18 Online: 06 de Setembro de 2017, 17:06 »
Gilli,
Se puder dê uma olhada nesse vídeo por favor.

Obrigado!
Genésio

 

/** * */