Autor Tópico: Mach automatico  (Lida 7511 vezes)

Description:

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

Offline Biosp

  • Novato
  • *
  • Posts: 49
  • Sexo: Masculino
  • GUIA-CNC
Mach automatico
« Online: 24 de Março de 2010, 11:13 »
Quero repetir o mesmo desenho (relevo) em diversas posições. Para isso eu teria que zerar os eixos “X” e “Y” em determinados pontos e executar o desenho a partir dali.  Estou fazendo isso mas manualmente, eu gostaria de executar isso automaticamente.
Não consigo me lembrar quem me disse que no Mach 3 era possível fazer isso automático!
Caso não seja possível no Mach, alguém poderia me ajudar com o “G-CODE” ” que devo usar para zerar determinado eixo em determinada linha de comando durante  execução do programa?

Obrigado,

BioSP

PS.  Parabéns mestre Gilii pela representação do MACH.  “ Agora Vai”  ;)

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: Mach automatico
« Resposta #1 Online: 24 de Março de 2010, 11:39 »
Biosp,

A maioria dos programas de controle de máquinas pode usar determinados pontos chamados "pontos de fixação" e que são controlados por uma tabela criada pelo operador.

Cada ponto desta tabela é tratado como uma origem de desenho, e se usa o sistema de coordenadas absolutas em relação ao "ponto de Origem Máquina" = G53.
 Se me recordo, é possível usar até 254 pontos diferentes, começando por G55 (até G59) e depois G59.1 até G59.254.

Cada ponto de origem pode ser tratado como uma chamada dentro do programa de corte que é inserida logo no começo do arquivo de corte.

Para automatizar a coisa, é necessário conhecer as coordenadas dos pontos de fixação e o tipo de usinagem para poder apontar alguma solução, seja por macro, sensoriamento automático, seja por variáveis ou subrotinas em arquivo.

Offline Biosp

  • Novato
  • *
  • Posts: 49
  • Sexo: Masculino
  • GUIA-CNC
Re: Mach automatico
« Resposta #2 Online: 24 de Março de 2010, 13:15 »
Sem querer abusar do Mestre, .... Vc poderia me mostrar um exemplo pratico da utilização destas “subrotinas” para que eu tente fazer algum teste aqui ?
Em madeira de 100X100mm fiz um quadrado de 50x50mm conforme abaixo:
M3
G0X0.000Y0.000S1500 0
G0X25.000Y25.000Z25 .000
G1Z-2.000F780.0
G1X75.000Y25.000F25 20.0
Y75.000
X25.000
Y25.000
G0Z25.000
G0X0.000Y0.000
G0Z25.000
G0X0.000Y0.000
M30
Utilizando essa recorte acima, como eu poderia repetir  5 vezes  ao longo de uma chapa de 600X100. Utilizando uma subrotina ou algo assim ?

Obrigado.

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: Mach automatico
« Resposta #3 Online: 24 de Março de 2010, 16:32 »
Biosp,

O exemplo abaixo usa uma simples rotina de repetição (G52) - não é programação parametrizada nem usa o sistema de coordenadas de fixações.

M3 F500
G52 X0
M98 P01
G52 X 50
M98 P01
G52 X 100
M98 P01
G52 X 150
M98 P01
G52 X 200
M98 P01
G52 Z0
G00 Z25
M30

O1
G0X25.000Y25.000Z25 .000
G1Z-2.000F780.0
G1 X75.000 Y25.000 F2520
Y75.000
X25.000
Y25.000
G0Z25.000
M99

Note que seu programa está depois da chamada "O1" (Letra "O" e não zero )

Seu quadrado vai ser repetido a incrementos de 50mm a cada chamada M98

Mais tarde tento fazer um exemplo de programação parametrizada.

Offline Biosp

  • Novato
  • *
  • Posts: 49
  • Sexo: Masculino
  • GUIA-CNC
Re: Mach automatico
« Resposta #4 Online: 24 de Março de 2010, 21:26 »
Entendi o conceito e é exatamente o que eu procuro, porém não dei conta de executar essa sub rotina no Mach3 , ele não reconhece os “PO1”  ... Alias nem o código G52  eu localizei no  manual do G-CODE.
No Mach3 em “Configuraçõe/Tabela de Trabalho – G54 a G59/  ............. é possível marcar alguma posições do eixo que quero mudar e funciona ele vai lá e muda, porém eu tenho que escrever o programa todinho a partir dessa “bendita linha”  .... e o que eu queria era uma sub rotina para eu não ter que ficar repetindo todo o processo N Vezes  ..... igualzinho a que vc descreveu, mas que funcione no Mach 3.
Gilii obrigado por estar respondendo minhas duvidas.

BioSP

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: Mach automatico
« Resposta #5 Online: 25 de Março de 2010, 07:40 »
... ele não reconhece os “PO1”  ...
Provavelmente porque voce escreveu PO1  e não P01 ... O Nome da Subrotina é O1, mas a chamada é P01 (pode escrever P1 também)
É preciso também uma linha em branco (CR) no final do arquivo, logo depois do M99

Citar
Alias nem o código G52  eu localizei no  manual do G-CODE.
Está no manual - pág 93

Citar
.... igualzinho a que vc descreveu, mas que funcione no Mach 3.
E funciona - experimente

Este exemplo que eu escreví faz 5 quadrados um do lado do outro, deslocados apenas em X 50mm.
« Última modificação: 25 de Março de 2010, 07:55 por fgilii »

Offline Biosp

  • Novato
  • *
  • Posts: 49
  • Sexo: Masculino
  • GUIA-CNC
Re: Mach automatico
« Resposta #6 Online: 25 de Março de 2010, 11:53 »
Perfeito, funcionou!!!
Estava trocando "zero" por "oh"   ;D

Vou testar na pratica agora.

Obrigado

Offline marc0

  • CNCMASTER
  • ******
  • Posts: 2788
  • Sexo: Masculino
  • Não dirigimos o vento, podemos ajustar as velas.
    • Máquinas & Equipamentos
Re: Mach automatico
« Resposta #7 Online: 25 de Março de 2010, 16:19 »
Fábio;
Com poucas chamadas dá pra editar manualmente as posições, mas quando se necessita usar dezenas ou centenas de vezes a mesma rotina, fica mais complicado.

Criei uma macro para gerar o código com todas as posições (X e Y) equidistantes configuradas pra X e para Y; vc sabe como se faz para inserir o esse código junto com a rotina?

Abraços...

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: Mach automatico
« Resposta #8 Online: 25 de Março de 2010, 17:30 »
Enoch,

Eu estou estudando um pouco esse assunto, então me perdoe se o que eu apresento é meio primário ou talvez não a melhor solução...

Eu pensei em fazer uma rotina chamando outra rotina.

Olhe o exemplo anexo: (repete o quadrado 5 vezes no mesmo lugar)
Código: [Selecionar]
O1000
(programa principal)
G00 X0 Y0 Z25
M98 P1001 L5 (<= executa subprograma 1001 por 5 vezes)
M30

O1001
(subprograma)
G0X25.000Y25.000Z25.000
G1Z-2.000F780.0
G1 X75.000 Y25.000 F2520
Y75.000
X25.000
Y25.000
G0Z25.000
M99
O programa principal chama o subprograma a quantidade que for inserida depois da palavra L*

Acredito que fazer o quadrado repetido na distancia desejada é questão de mesclar as técnicas, ou talvez usando algumas variáveis para X e Y...
« Última modificação: 25 de Março de 2010, 17:32 por fgilii »

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: Mach automatico
« Resposta #9 Online: 25 de Março de 2010, 17:51 »
Criei uma macro para gerar o código com todas as posições (X e Y) equidistantes configuradas pra X e para Y; vc sabe como se faz para inserir o esse código junto com a rotina?
Estas posições são as coordenadas da peça ou de uma operação (por exemplo "furar")

Teria como postar um exemplo do código e da sua macro?

Offline marc0

  • CNCMASTER
  • ******
  • Posts: 2788
  • Sexo: Masculino
  • Não dirigimos o vento, podemos ajustar as velas.
    • Máquinas & Equipamentos
Re: Mach automatico
« Resposta #10 Online: 25 de Março de 2010, 19:32 »
Estas posições são as coordenadas da peça ou de uma operação (por exemplo "furar")
Pode ser de um furo ou um uma peça completa com muitos detalhes.
Eu tomei por base os quadrados do seu exemplo anterior, vc escreveu manualmente as coordenadas para chamar o quadrado,; a macro edita as coordenadas quantas vezes for necessário.
Acontece que ao editar o "write.tap" eu perco a rotina (fico só com o código das posições; eu queria unir os dois arquivos.

Citar
Teria como postar um exemplo do código e da sua macro?

Código: [Selecionar]
M3 F500
M5000
M30

O1
G0X25.000Y25.000Z25 .000
G1Z-2.000F780.0
G1 X75.000 Y25.000 F2520
Y75.000
X25.000
Y25.000
G0Z25.000
M99

M5000.m1s

Código: [Selecionar]
'***********************************
'**  Macro for mult-position CNC  **
'**         Experimental          **
'** Mult-P v0.01 - ECM 25/03/2010 **
'***********************************

X = InputBox ("Repetições em X")
XX = Abs(X)
If XX < 1 Then
 XX = 1
  MsgBox ("Valor Ilegal! Considerado = 1")
End If

DX = InputBox ("Espaçamento em X")
DXX = Abs(DX)
If DXX < 1 Then
 DXX = 1
  MsgBox ("Valor Ilegal! Considerado = 1")
End If

Y = InputBox ("Linhas em Y")
YY = Abs(Y)
If YY < 1 Then
 YY = 1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If

DY = InputBox ("Espaçamento em Y")
DYY = Abs(DY)
If DYY < 1 Then
 DYY = 1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If



OpenTeachFile "write.tap"

Code "Y0"
YD=DYY
For I=1 To YY
XD=0
For K=1 To XX
Code "G52 X"&XD
Code "M98 P1"
XD=XD+DXX
Next
Code "G52 Y"&YD
 
YD=YD+DYY
Next
Code "M30"
               
CloseTeachFile()
Call LoadTeachFile()

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: Mach automatico
« Resposta #11 Online: 26 de Março de 2010, 08:40 »
Enoch,

Eu fiz um arremedo de código que parece funcionar, mas há algumas restrições:
- O arquivo deve terminar com o comando "M99" no final, e deve se dar uma linha de espaço.
- O arquivo deve estar aberto na tela antes de rodar a macro

A macro - é uma adaptação do seu código, e deve funcionar melhor se dermos uma limpada nele.

Código: [Selecionar]
'***********************************
'**  Macro for mult-position CNC  **
'**         Experimental          **
'** Mult-P v0.01 - ECM 25/03/2010 **
'***********************************

File = Filename()

X = InputBox ("Repetições em X")
XX = Abs(X)
If XX < 1 Then
 XX = 1
  MsgBox ("Valor Ilegal! Considerado = 1")
End If

DX = InputBox ("Espaçamento em X")
DXX = Abs(DX)
If DXX < 1 Then
 DXX = 1
  MsgBox ("Valor Ilegal! Considerado = 1")
End If

Y = InputBox ("Linhas em Y")
YY = Abs(Y)
If YY < 1 Then
 YY = 1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If

DY = InputBox ("Espaçamento em Y")
DYY = Abs(DY)
If DYY < 1 Then
 DYY = 1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If

XTimes = XX
YTimes = YY
XInc = DXX
YInc = DYY
CurX = GetDRO(0)
CurY = GetDRO(1)
CurZ = GetDRO(2)
SafeZ = GetSafeZ()


OpenTeachFile( "1.tap" )


For y = 1 To YTimes Step 1
  For x = 1 To XTimes Step 1
    If (x > 1) Then
    code "G92 X0"
    End If
    code "M98(" & "-" & File & ")"
    code "G0 Z" & SafeZ
    If x < Xtimes Then
    code "G0 X" & XInc & " Y0"
    Else
    code "G0 X0 Y0"
    End If
  Next
    code "G92 X" & (Xinc * (Xtimes - 1))
    If y < Ytimes Then
    code "G0 X0 Y" & YInc
    code "G92 Y0"
    Else
    code "G92 Y" & (Yinc * (Ytimes - 1))
    code "G0 X0 Y0"
    End If
Next       
    code "M30"

CloseTeachFile
Call LoadTeachFile()
Note que o arquivo final ficará gravado como " 1.tap " na pasta de arquivosd Gcode do Mach3.

Eu sei que dá para fazer uma rotina de gravar um nome (Save as) desse novo arquivo gerado, mas preciso refinar o código porque não ficou consistente da maneira que eu fiz...

Offline marc0

  • CNCMASTER
  • ******
  • Posts: 2788
  • Sexo: Masculino
  • Não dirigimos o vento, podemos ajustar as velas.
    • Máquinas & Equipamentos
Re: Mach automatico
« Resposta #12 Online: 26 de Março de 2010, 09:36 »
Fábio;
Desculpe a tosquice do "código" anterior. O importante é adquirir o conceito, eu não sei nada de VB, estou me valendo do pouco que lembro do Basic de 30 anos atrás.
Tentei usar a sua macro chamando ela no Gcode (M5000); entrou num looping infinito; curiosamente no editor Vb do Mach ela rodou.
Acho que esta no caminho...
Abraços...

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: Mach automatico
« Resposta #13 Online: 26 de Março de 2010, 09:50 »
Enoch,

Eu não sei nada de VB e meu BASIC é muito primário também...

Eu só testei este código no editor VB e funcionou, mas confesso que não experimentei como macro...

Eu lí que há uns comandos para VB que manipulam os arquivos:

OpenTeachFile, OpenSubroutineFile, AppendTeachFile

O segundo comando (Subroutine) tem informações desencontradas e não são claras.

O terceiro comando -= AppendTeachFile faz mais ou menos o que voce quer, mas o que eu entendí é que ele adiciona comandos a um arquivo aberto.

A sintaxe seria mais ou menos assim:

AppendTeachFile
Code "G01 X..."
Code "....."

Assim se adicionam linhas de código ao arquivo aberto, mas creio que só no tal "TeachFile" que deveria estar aberto na chamada "OpenTeachFile "1.tap" (por exemplo)

Não consegui fazer funcionar de outra forma.
Tentei adicionar um arquivo depois de outro, e o máximo que eu consegui foi anexar um arquivo gerado com as variáveis de repetição depois da parte de subrotina, e deveria ser o contrário (que não consegui)

Se souber de alguma novidade te lafo

Offline marc0

  • CNCMASTER
  • ******
  • Posts: 2788
  • Sexo: Masculino
  • Não dirigimos o vento, podemos ajustar as velas.
    • Máquinas & Equipamentos
Re: Mach automatico
« Resposta #14 Online: 26 de Março de 2010, 17:06 »
Fábio;
Acho que consegui  ;)

Para usar precisar colocar o arquivo que se deseja fresar na pasta Subroutines no diretório do Mach3 e colocar M99 no final do código G.

Agora só falta acertar a perfumaria.


Código: [Selecionar]
'***********************************
'**  Macro for mult-position CNC  **
'**         Experimental          **
'**      Mult-P v0.02 - ECM       **
'**         26/03/2010            **
'***********************************

A$= InputBox ("Arquivo para fresar")
X = InputBox ("Repetições em X")
XX = Abs(X)
If XX < 1 Then
 XX = 1
  MsgBox ("Valor Ilegal! Considerado = 1")
End If

DX = InputBox ("Espaçamento em X")
DXX = Abs(DX)
If DXX < 1 Then
 DXX = 1
  MsgBox ("Valor Ilegal! Considerado = 1")
End If

Y = InputBox ("Linhas em Y")
YY = Abs(Y)
If YY < 1 Then
 YY = 1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If

DY = InputBox ("Espaçamento em Y")
DYY = Abs(DY)
If DYY < 1 Then
 DYY = 1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If

OpenTeachFile "writhe.tap"
XD=0
YD=0
Code "G0 X0 Y0 Z0"
For I=1 To YY
For K=1 To XX
Code "G52 X"&XD &"Y"&YD
Code "M98 ("&A$ &")"
XD=XD+DXX
Next
YD=YD+DYY
XD=0
Next
Code "G52 X0 Y0 Z0"
Code "G0 X0 Y0 Z0"
Code "M30"

CloseTeachFile()
Call LoadTeachFile()

Abraços...
« Última modificação: 26 de Março de 2010, 17:29 por marc0martim ECM »

 

/** * */