Autor Tópico: rotina para centralização de furos  (Lida 2199 vezes)

Description:

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

Offline luiscastanharo

  • Novato
  • *
  • Posts: 30
  • Sexo: Masculino
  • Forum GUIA CNC - A Maior comunidade CNC do Brasil
  • Cidade - UF: assis
  • Nome:: luis
  • Profissão: projetista
rotina para centralização de furos
« Online: 28 de Maio de 2016, 19:36 »
Oi galera! Procurei e não consegui encontrar nada do tipo, quero criar uma rotina que utilize um apalpador para centralizar um furo, alguém já usou algo assim?

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:rotina para centralização de furos
« Resposta #1 Online: 28 de Maio de 2016, 19:41 »
Se você possuir um apalpador tridimensional, digo que funciona - escreví diversas macros para centralização e alinhamento de arestas e furos...

Offline luiscastanharo

  • Novato
  • *
  • Posts: 30
  • Sexo: Masculino
  • Forum GUIA CNC - A Maior comunidade CNC do Brasil
  • Cidade - UF: assis
  • Nome:: luis
  • Profissão: projetista
Re:rotina para centralização de furos
« Resposta #2 Online: 28 de Maio de 2016, 19:47 »
Sim eu tenho, estou por enquanto meio na mão sem ser automático

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:rotina para centralização de furos
« Resposta #3 Online: 29 de Maio de 2016, 10:07 »
Luis,

Abaixo uma rotina para centralização de furo feita pelo interno...

Código: [Selecionar]
Sub MainRoutine

Dim Posn as Double
Dim Start as Double
Dim Metric as Boolean
Dim Dist As Double ' distancia preparada para fazer probe
Dim OffDist As Double ' distancia para liberar o toque
' Probe Rad does not matter
Dim XLeft, XRight, XCentre, YTop, YBottom, YCentre As Double
Dim Tol As Double

If GetOEMLed (16)  Then
   Message "Não pode fazer o Toque quando em Coordenadas Maquina"
    Exit Sub
End If

Code "G90G80G69G50"

Metric = GetOEMLED(802)
If Metric Then
   Dist = 100
    OffDist = 1
    Tol = 0.1
Else
    Dist = 4 'polegada
    OffDist = 0.04
    Tol = 0.01
End If

Start = GetOEMDRO (800)

Posn = Start - Dist  ' X inicial

Message "Toque para Esquerda em X"
Code "G31 X" & nFmt (Posn, 4) ' probe esquerdo
While ISMoving ()
    Sleep 20
Wend

XLeft = GetVar (2000)
If GetOEMDRO (800) <= Posn  + Tol Then
    Message "*** Não encontrou o Furo. Z muito Alto?"
    Exit Sub
End If

Code "G01 X" & nFmt (GetOEMDRO (800) + OffDist, 4)
While IsMoving ()
    Sleep 20
Wend ' Sai do ponto de toque


Posn = Start + Dist ' para mover à direita

Message "Toque para Direira em X"
Code "G31 X" & nFmt (Posn, 4) ' probe direita
While ISMoving ()
    Sleep 20
Wend

 XRight= GetVar (2000)

If GetOEMDRO (800) >= Posn - Tol Then
    Message "*** Não encontrou o Furo. Z muito Alto?"
    Exit Sub
End If

XCentre = (XRight + XLeft) /2.0  ' primeira aproximação no centro
Message "Indo para o Centro em X"
Code "G01 X" & nFmt (XCentre, 4)
While ISMoving ()
    Sleep 20
Wend

Start = GetOEMDRO (801)

Posn = Start - Dist  ' Y inicial

Message "Toque para Y menos"
Code "G31 Y" & nFmt (Posn, 4) ' Toque em Y menos
While ISMoving ()
    Sleep 20
Wend

YBottom = GetVar (2001)
If GetOEMDRO (801) <= Posn  + Tol Then
    Message "*** Não encontrou o Furo. Z muito Alto?"
    Exit Sub
End If

Code "G01 Y" & nFmt (GetOEMDRO (801) + OffDist, 4)
While IsMoving ()
    Sleep 20
Wend ' sai do ponto de toque

Posn = Start + Dist ' toque em Y mais

Message "Toque em Y Mais"
Code "G31 Y" & nFmt (Posn, 4) ' toque em Ymais
While ISMoving ()
    Sleep 20
Wend

YTop= GetVar (2001)
If GetOEMDRO (801) >= Posn - Tol Then
    Message "*** Não encontrou Furo. Z muito Alto?"
    Exit Sub
End If

YCentre =(YBottom + YTop) / 2.0  ' estimativa
Message "Indo para o Centro em Y"
Code "G01 Y" & nFmt (YCentre, 4)
While IsMoving ()
    Sleep 20
Wend

' faz a rotina em X de novo para maior acurácia

Start = GetOEMDRO (800)

Posn = Start - Dist  ' X inicial

Message "Refining X left"
Code "G31 X" & nFmt (Posn, 4) ' toque p/ esquerda
While ISMoving ()
    Sleep 20
Wend
XLeft = GetVar (2000)
If GetOEMDRO (800) <= Posn + Tol Then
    Message "*** Não encontrou o Furo. Z muito Alto?"
    Exit Sub
End If

Code "G01 X" & nFmt (GetOEMDRO (800) + OffDist, 4)
While IsMoving ()
    Sleep 20
Wend ' sai do ponto de toque


Posn = Start + Dist ' move p/ direita

Message "Refinando X p/ Direita"
Code "G31 X" & nFmt (Posn, 4) ' toque p/ direita
While ISMoving ()
    Sleep 20
Wend
 XRight= GetVar (2000)
If GetOEMDRO (800) >= Posn  - Tol Then
    Message "*** Não encontrou o Furo. Z muito alto?"
    Exit Sub
End If

Message "Encontrando o Centro"

XCentre = (XRight + XLeft) /2.0  ' aproximação do centro
Code "G01 X" & nFmt (XCentre, 4)
While ISMoving ()
    Sleep 20
Wend

         SetOEMDRO 800, GetOEMDRO (800) - XCentre
         SetOEMDRO 801, GetOEMDRO (801) - YCentre
         SetUserDRO 1064, XCentre
         SetUserDRO 1065, YCentre   
Message ""

Code "G91 G0 Z15"
Code "G28.1 X-65.03 Y-87.42"
End Sub ' MainRoutine

MainRoutine

Crie um botão na tela do Mach3 e copie este código para ele.

Posicione o probe dentro do furo e execute - a rotina termina com o centro da maquina no centro do furo.

Offline luiscastanharo

  • Novato
  • *
  • Posts: 30
  • Sexo: Masculino
  • Forum GUIA CNC - A Maior comunidade CNC do Brasil
  • Cidade - UF: assis
  • Nome:: luis
  • Profissão: projetista
Re:rotina para centralização de furos
« Resposta #4 Online: 29 de Maio de 2016, 13:07 »
Muito obrigado vai ajudar muito!!!

Offline marco laguna

  • Novato
  • *
  • Posts: 4
  • Sexo: Masculino
  • Forum GUIA CNC - A Maior comunidade CNC do Brasil
  • Cidade - UF: alto alegre SP
  • Nome:: Marco Aurélio
  • Profissão: projetista
Re:rotina para centralização de furos
« Resposta #5 Online: 24 de Agosto de 2016, 18:57 »
Coloquei essa rotina, após centralizar ela procura uma coordenada, depois referência a máquina. Após feito o auto zero z funciona de forma incorreta, após encostar na placa de set invés de subir desce 2mm... alguém tem a solução?

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:rotina para centralização de furos
« Resposta #6 Online: 25 de Agosto de 2016, 09:07 »
Veja se os movimentos estão corretos - quando desce o Z, os valores no digital devem ser negativos (à partir de zero) ou diminuírem...

Se quando você baixa o Z pelo teclado o digital aumenta o valor, precisa inverter na janela Homing/Offsets

Offline marco laguna

  • Novato
  • *
  • Posts: 4
  • Sexo: Masculino
  • Forum GUIA CNC - A Maior comunidade CNC do Brasil
  • Cidade - UF: alto alegre SP
  • Nome:: Marco Aurélio
  • Profissão: projetista
Re:rotina para centralização de furos
« Resposta #7 Online: 25 de Agosto de 2016, 20:22 »
Quando reinicia o mach3, funciona certo, apenas acontece o erro após fazer a rotina de centralização, acho que deve ficar alguma função modal ativada quando centraliza, e influência na rotina do set de altura.

Offline luiscastanharo

  • Novato
  • *
  • Posts: 30
  • Sexo: Masculino
  • Forum GUIA CNC - A Maior comunidade CNC do Brasil
  • Cidade - UF: assis
  • Nome:: luis
  • Profissão: projetista
Re:rotina para centralização de furos
« Resposta #8 Online: 15 de Setembro de 2016, 11:58 »
Na minha fez isso tbm, nas últimas linhas Ta escrio Code  g28 x... y... apaga essa linha ai a máquina só vai subir pra sair do furo e vai parar.

Offline [email protected]

  • Novato
  • *
  • Posts: 72
  • Sexo: Masculino
  • GUIA CNC
  • Nome:: Marcos Barros
  • Profissão: tecnólogo em Mecatronjca industrial
Re:rotina para centralização de furos
« Resposta #9 Online: 16 de Junho de 2017, 11:36 »
F.Gilii


Boa tarde, você poderia me dar uma previa de como criar um botão para usar essa macro ? Eu já uso o probe para o Z e não queria altera essa macro (botão)...

E no seu comentaria você fala de criar um botão para executar essa macro, já procurei e ainda estou procurando na internet, mas não estou encontrando nada relacionado.


Muito obrigado pelo seu tempo...

Abraços...

Offline caveira

  • Novato
  • *
  • Posts: 98
  • Sexo: Masculino
  • Eng. Mecânico e Piloto 2T
    • Serviços publicados
  • Cidade - UF: Videira - SC
  • Nome:: André
  • Profissão: eng. mecanico
Re:rotina para centralização de furos
« Resposta #10 Online: 16 de Junho de 2017, 12:55 »
fiz uma programação em código G mesmo.
segue o programa.

roda bem no LinuxCNC


Código: [Selecionar]
%

#1 = 90 ; raio do furos
#2 = 300 ; velocidade do apalpador
#3 = 1000 ; velocidade do movimento

G54
G91 G38.3 X#1 F#2 ; apalpa
#1001 = #5061 ; variável x1
G90 G1 X0 F#3 ; retorna no centro do furo
G91 G38.3 x[0-#1] F#2 ; apalpa
#1002 = #5061 ; variavel x2
G90 G1 X0 F#3 ; retorna no centro do furo

G91 G38.3 Y#1 F#2 ; apalpa
#1003 = #5062 ; variável y1
G90 G1 Y0 F#3 ; retorna no centro do furo
G91 G38.3 y[0-#1] F#2 ; apalpa
#1004 = #5062 ; variavel y2

 
#1005 = [[#1001 + #1002]/2] ; centro do furo 1  no eixo X [x1+x2/2]
#1006 = [[#1003 + #1004]/2] ; centro do furo eixo Y

g90 G1 x#1005 y#1006 F#3

%

 

/** * */