Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
SOFTWARES => Controle => Mach 2/3 => Tópico iniciado por: Edu Lopes em 10 de Setembro de 2020, 20:43
-
Oi pessoal.. eu, timidamente, de volta.. rsssss..
Fiquei fora muito tempo devido a problemas pessoais mas estou finalmente voltando e estou com um probleminha..
Baixei um script aqui mesmo no Guia CNC para zeramento automático de ferramentas.
Funciona direitinho, zera certinho, porém, faz o zero na parte de cima da placa de toque.
Lidei bastante mas não consegui configurar ele para compensar a medida da placa.
A minha placa mede 25mm... A sonda desce, apoia na placa, sobe novamente depois volta a descer até tocar na placa.
Aí ela sobe novamente e para.
Se clico em Go To Zero, ela desce exatamente para a parte superior da placa de toque e zera o eixo.
Fica, portanto, 25mm acima do material a ser usinado...
Podem ver o que está acontecendo com este script?...
Obrigado!..
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
PlateThickness = 9.40 'Espessura do bloco de contato em mm
Code "(Calibração do Eixo Z em andamento - AGUARDE !!!)" 'puts this message in the status bar
If GetOemLed(825)=false Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P2" ' two second delay
Code "G31 Z-30.0 F300" 'Eixo Z abaixa no max 30mm com FeedRate de 300 IPM
While IsMoving() 'espera eixos se moverem
Wend
'MsgBox (GetOemLed(825))
If GetOemLed(825)=true Then 'verifica se o movimento parou devido ao toque ou curso máximo
'Code "G4 P1" ' one second delay
Code "(Toque detectado - Fazendo recuo para ajuste fino)"
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P1" ' two second delay
Code "G1 Z0.5 F300"
While IsMoving ()'espera eixos se moverem
Wend
Code"(Fazendo Calibração com aproximação lenta)"
Code "G31 Z-1.0 F5" 'Eixo Z abaixa no max 1mm com FeedRate de 5 IPM para calibração fina
ZProbePos = GetVar(2002) 'pega o valor do ponto exato onde o bloco foi tocado
While IsMoving ()
Wend
Call SetDro (25, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G1 Z" & PlateThickness + 5 &" F1000" 'retract Z 5mm acima do Bloco de contato
Code "(Z axis está zerado)" 'puts this message in the status bar
Code "F" &CurrentFeed 'Returns to prior feed rate
Else
Code "(Probe não fez contato com o bloco. Calibração Abortada)" 'this goes in the status bar if aplicable
MsgBox ("Calibração não realizada - verificar ligação da probe e percurso máximo de calibração de 30mm")
End If
Else
Code "(O Bloco de contato está aterado, verifique a fiação e tente de novo)" 'this goes in the status bar if aplicable
MsgBox (GetOemLed(825))
Exit Sub
End If
-
Grande Edu,
Bom saber que tá ativo e produtivo.
A parte de zeramento é nestas linhas do seu script:
ZProbePos = GetVar (2002) 'pega o valor do ponto exato onde o bloco foi tocado
While IsMoving ()
Wend
Chame SetDro (25, PlateThickness) 'defina o DRO do eixo Z para o que for definido como espessura da placa.
Não tem o valor especificado aí.
Nos meus probes ainda uso o G92+"valor (espessura) do bloco".
Abraços
-
Oi Alebe, que bom reencontrá-lo..
Este Script não é meu não.. rsssss..
Catei ele aqui mesmo, numa postagem do Guia CNC... tentei encontrar o local mas não encontrei de onde foi que copiei este código..
Vou colar o código abaixo... o que postei anteriormente ficou com caracteres miudinhos demais.. acho que nem postar eu sei mais.. rssssss
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
PlateThickness = 9.40 'Espessura do bloco de contato em mm
Code "(Calibração do Eixo Z em andamento - AGUARDE !!!)" 'puts this message in the status bar
If GetOemLed(825)=false Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P2" ' two second delay
Code "G31 Z-30.0 F300" 'Eixo Z abaixa no max 30mm com FeedRate de 300 IPM
While IsMoving() 'espera eixos se moverem
Wend
'MsgBox (GetOemLed(825))
If GetOemLed(825)=true Then 'verifica se o movimento parou devido ao toque ou curso máximo
'Code "G4 P1" ' one second delay
Code "(Toque detectado - Fazendo recuo para ajuste fino)"
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P1" ' two second delay
Code "G1 Z0.5 F300"
While IsMoving ()'espera eixos se moverem
Wend
Code"(Fazendo Calibração com aproximação lenta)"
Code "G31 Z-1.0 F5" 'Eixo Z abaixa no max 1mm com FeedRate de 5 IPM para calibração fina
ZProbePos = GetVar(2002) 'pega o valor do ponto exato onde o bloco foi tocado
While IsMoving ()
Wend
Call SetDro (25, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G1 Z" & PlateThickness + 5 &" F1000" 'retract Z 5mm acima do Bloco de contato
Code "(Z axis está zerado)" 'puts this message in the status bar
Code "F" &CurrentFeed 'Returns to prior feed rate
Else
Code "(Probe não fez contato com o bloco. Calibração Abortada)" 'this goes in the status bar if aplicable
MsgBox ("Calibração não realizada - verificar ligação da probe e percurso máximo de calibração de 30mm")
End If
Else
Code "(O Bloco de contato está aterrado, verifique a fiação e tente de novo)" 'this goes in the status bar if aplicable
MsgBox (GetOemLed(825))
Exit Sub
End If
Minha placa de toque mede 25mm...
Tem como voce inserir o valor no local correto?...
Eu tentei mas não consegui achar onde exatamente devo digitar o valor, para que a máquina obedeça o comando corretamente..
Este código faz tudo certinho.. só não compensa a medida da placa de toque..
Apesar de que qualquer código que funcione para mim estaria ótimo.. Nem precisa ser este, especificamente..
Eu tinha um funcional mas acabei perdendo junto com um hd bichado que tinha aqui..
Agora reinstalei tudo mas não consigo colocar este código para funcionar..
Se puder ajudar, agradeço muito!..
-
Oi Edu,
Sei que não é "seu", mas como vc editou virou seu... ;D ;D ;D
E justamente ao editar é que houve o problema.
Não devemos mexer na linha 25 -> Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Essa linha chama o valor da linha 2 -> PlateThickness = 9.40 'Espessura do bloco de contato em mm"
E é esse valor que devemos modificar.
Basta trocar o 9.40 para 25.
Tenta assim:
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
PlateThickness = 25.0 'Espessura do bloco de contato em mm
Code "(Calibração do Eixo Z em andamento - AGUARDE !!!)" 'puts this message in the status bar
If GetOemLed(825)=false Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P2" ' two second delay
Code "G31 Z-30.0 F300" 'Eixo Z abaixa no max 30mm com FeedRate de 300 IPM
While IsMoving() 'espera eixos se moverem
Wend
'MsgBox (GetOemLed(825))
If GetOemLed(825)=true Then 'verifica se o movimento parou devido ao toque ou curso máximo
'Code "G4 P1" ' one second delay
Code "(Toque detectado - Fazendo recuo para ajuste fino)"
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P1" ' two second delay
Code "G1 Z0.5 F300"
While IsMoving ()'espera eixos se moverem
Wend
Code"(Fazendo Calibração com aproximação lenta)"
Code "G31 Z-1.0 F5" 'Eixo Z abaixa no max 1mm com FeedRate de 5 IPM para calibração fina
ZProbePos = GetVar(2002) 'pega o valor do ponto exato onde o bloco foi tocado
While IsMoving ()
Wend
Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G1 Z" & PlateThickness + 5 &" F1000" 'retract Z 5mm acima do Bloco de contato
Code "(Z axis está zerado)" 'puts this message in the status bar
Code "F" &CurrentFeed 'Returns to prior feed rate
Else
Code "(Probe não fez contato com o bloco. Calibração Abortada)" 'this goes in the status bar if aplicable
MsgBox ("Calibração não realizada - verificar ligação da probe e percurso máximo de calibração de 30mm")
End If
Else
Code "(O Bloco de contato está aterado, verifique a fiação e tente de novo)" 'this goes in the status bar if aplicable
MsgBox (GetOemLed(825))
Exit Sub
End If
-
Obaaaaaaaa!... agora tenho um Script que eu posso chamar de meu!... ebaaa ;D
Obrigado Alexandre.. Vou testar amanhã mesmo...
Se tivesse visto tua postagem durante o dia, testava hoje mesmo..
Obrigado... eu fiquei perdido com aquele código e sai alterando na orelhada e ficava cada vez pior.. rsssssss
Obrigado!..
Vou testar amanhã mesmo e te falo o resultado!..
Valeu.. boa noite pra ti!..
:)