Autor Tópico: Repetições  (Lida 4781 vezes)

Description:

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

Offline Claiton Meneghetti

  • Novato
  • *
  • Posts: 44
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Mogi Mirim - Sp
  • Nome:: Claiton Meneghetti
  • Profissão: Projetista
Repetições
« Online: 14 de Junho de 2014, 19:27 »
Ola a todos

Qual o motivo deste código não funcionar

G0 G40 X0 Y0
#100=40
X-40
M98 P777 L39

G0 X0 Y0 Z100

O777
Z[#100-1]
G3 F200 X-40 Y0 I40 J0
G0 X0 Y0 ( a repetição para exatamente nesta linha
M99
M30
%

Obrigado a todos por qualquer dica

Offline Eneias Eringer

  • Hobby
  • ****
  • Posts: 769
  • Sexo: Masculino
Re:Repetições
« Resposta #1 Online: 14 de Junho de 2014, 19:56 »
Qual maquina ??
Qual comando ??

Tente assim.:

G0 G40 X0 Y0
#100=40
X-40
M98 P777 L39

G0 X0 Y0 Z100

O777
#100=[#100-1]
Z#100
G3 F200 X-40 Y0 I40 J0
G0 X0 Y0 ( Talvez a repetição não estava parando aqui na verdade pelo calculo ela não estava saindo do lugar em z
M99
%

Offline Claiton Meneghetti

  • Novato
  • *
  • Posts: 44
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Mogi Mirim - Sp
  • Nome:: Claiton Meneghetti
  • Profissão: Projetista
Re:Repetições
« Resposta #2 Online: 14 de Junho de 2014, 20:32 »
O comando é o mach3, acabei de tentar tua sugestão.

Observe a mensagem na linha de status do comando (imagem anexa)

Offline Eneias Eringer

  • Hobby
  • ****
  • Posts: 769
  • Sexo: Masculino
Re:Repetições
« Resposta #3 Online: 14 de Junho de 2014, 21:00 »
Não conheço do mach3 não sei se isso funciona nele ....

Com certeza minha sugestão funcionaria num fanuc.!!Contanto que o programa O777 esteja num programa separado .

Já no mach , não sei como fazer sub-programas e repetições ....

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:Repetições
« Resposta #4 Online: 14 de Junho de 2014, 22:26 »
layton,

Tem coisa errada com a variável - o programa roda mas ...

G0 G40 X0 Y0
#100=40
X-40
M98 P777 L39

G0 X0 Y0 Z100
m30

O777
#100=[#100-1]
Z#100
G0 X0 Y0
M99
%

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:Repetições
« Resposta #5 Online: 14 de Junho de 2014, 22:32 »
eja se é isso que voce quer

O programa gera movimentos em  de 0 a 40 e o  vai diminuindo de 1 em 1 mm até que no final sobe para 100

G0 G40 X0 Y0
#100=40
M98 P777 L39
G0 X0 Y0 Z100
m30

O777
g0 x-40
#100=[#100-1]
Z#100
G0 X0 Y0
M99
%

Offline Cássio Alvarenga

  • Moderador
  • CNCMASTER
  • ******
  • Posts: 3429
  • Sexo: Masculino
    • www.vatech.ind.br
  • Cidade - UF: Belo Horizonte - MG
  • Profissão: Empresario / Engenheiro Mecânico
Re:Repetições
« Resposta #6 Online: 14 de Junho de 2014, 23:04 »
Tem um erro aqui:

G3 F200 X-40 Y0 I40 J0

o X-40 e Y0 indica onde o arco termina (coordenada absoluta), o I40 e J0 indica onde é o centro do raio ( incremental)

É matematicamente impossivel parar na coordenada X-40 Y0 Se o centro do arco é X40 Y0.

Na equação circular formulada por René Descartes: X²+Y²-2IX-2JY+I²+J²-R² = 0
onde:

I é a abcissa do centro do arco
J é a ordenada do centro do arco
R é o raio da circunferência 
X é a abcissa do final do arco
Y é a ordenada do final

Se o resultado da equação não for zero o arco não pode existir, logo o mach3 vai apresentar aquele erro da mensagem que anexou.

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:Repetições
« Resposta #7 Online: 14 de Junho de 2014, 23:24 »
G0 G40 X0 Y0
#100=40
M98 P777 L39
G0 X0 Y0 Z100
m30

O777

#100=[#100-1]
Z#100
g3 x-40 y0 I-20 J0 f300
G0 X0 Y0
M99
%

Offline badade

  • Novato
  • *
  • Posts: 65
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Varese
  • Nome:: Pietro
  • Profissão: Programador cnc
Re:Repetições
« Resposta #8 Online: 15 de Junho de 2014, 04:24 »
Toda vez que queremos repetir algo fica fundamental voltar para o começo da rotina.
Qual o ponto inicial?
X-40 Y0!
Portanto fica obrigatório voltar para este ponto! (ou não mudar esta posição!)
Come age o programa O777??
Executa uma interpolação circular com centro em X0 Y0, logo depois volta para o centro mesmo!
Eis o primeiro problema: porque voltar para o centro se você precisa repetir o mesmo programa?
Estou em X-40 Y0, executo uma rotação circular e fico neste ponto para poder repetir, não precisa ir para o centro, está errado!!
Por a ferramenta no centro significa mudar a posição do circulo, isto é G3 X-40 Y0 I40 J0 não pode ser mais realizado porque
significa mudar o centro para X40 Y0 (escrever I40 quer dizer por o centro 40mm mais a direita donde estou).
Portanto o sub_programa deve ser

O777
G3 X-40 Y0 I40 J0
M99

ou simplesmente

G3I40

(Mach3 pode não aceitar esta notação, portanto é preferível usar a completa.
Estamos usando una notação relativa... lembro que Mach3 pode mudar esta condição para  notação absoluta)

Outro problema! Z[#100-1]
Este código não está errado (a escritura fica correta) mas não pode agir come você deseja pois fica constante, não muda!
Come sugerido, você deve diminuir a #100 cada vez que entra no ciclo, e Mach3 usa necessariamente parênteses

#100=[#100-1]

Eis as mudanças

G0 X-40 Y0
#100=40
M98 P777 L39
G0 Z100
M30

O777
#100=[#100-1]
Z#100
G3 F200 X-40 Y0 I40 J0
M99

(sendo #100=40 devo supor  L=40, porque 39?)

Na verdade o uso de uma variável fica bom como exercício mas não precisa usá-la neste programa!

G90 G0 X-40 Y0
M98 P777 L40
G0 Z100
M30

O777
G91Z-1
G90 G3 F200 X-40 Y0 I40 J0 (ou G3I40)
M99

Offline Claiton Meneghetti

  • Novato
  • *
  • Posts: 44
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Mogi Mirim - Sp
  • Nome:: Claiton Meneghetti
  • Profissão: Projetista
Re:Repetições
« Resposta #9 Online: 15 de Junho de 2014, 08:59 »
Funcionou :D

A primeira coisa que percebi com este problema foi:
1 me parece que o código G tem uma rotina padrão de repetição e termina no m30
2 sub rotina me parece que deveria ficar fora da rotina padrão, foi o que eu fiz e funcionou, chamei m30 logo após a chamada de subrotina.

um programa de teste

G00 G40 X0 Y0 Z40
#100=40
X-40
M98 P777 L5

G03 F1000 X-40 Y0 Z#100 I40 J0
G01 F1000 X-40 Y0 Z#100  (precisei inserir esta linha pois a ferramenta saia do circulo antes de termina lo)
G01 F1000 X0 Y0 Z40

M30

O777
#100=[#100-1]  (isto esta funcionando, decrementa certinho)

X-40
G03 F1000 X-40 Y0 Z#100 I40 J0
G01 F1000 X-40 Y0 Z#100 (precisei inserir esta linha pois a ferramenta saia do circulo antes de termina lo)
M99
%

Agora vou estudar e praticar todas as sugestões dadas, meu muito obrigado a todos

Offline Claiton Meneghetti

  • Novato
  • *
  • Posts: 44
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Mogi Mirim - Sp
  • Nome:: Claiton Meneghetti
  • Profissão: Projetista
Re:Repetições
« Resposta #10 Online: 15 de Junho de 2014, 09:18 »
Toda vez que queremos repetir algo fica fundamental voltar para o começo da rotina.
Qual o ponto inicial?
X-40 Y0!
Portanto fica obrigatório voltar para este ponto! (ou não mudar esta posição!)
Come age o programa O777??
Executa uma interpolação circular com centro em X0 Y0, logo depois volta para o centro mesmo!
Eis o primeiro problema: porque voltar para o centro se você precisa repetir o mesmo programa?
Estou em X-40 Y0, executo uma rotação circular e fico neste ponto para poder repetir, não precisa ir para o centro, está errado!!
Por a ferramenta no centro significa mudar a posição do circulo, isto é G3 X-40 Y0 I40 J0 não pode ser mais realizado porque
significa mudar o centro para X40 Y0 (escrever I40 quer dizer por o centro 40mm mais a direita donde estou).
Portanto o sub_programa deve ser

O777
G3 X-40 Y0 I40 J0
M99

ou simplesmente

G3I40

(Mach3 pode não aceitar esta notação, portanto é preferível usar a completa.
Estamos usando una notação relativa... lembro que Mach3 pode mudar esta condição para  notação absoluta)

Outro problema! Z[#100-1]
Este código não está errado (a escritura fica correta) mas não pode agir come você deseja pois fica constante, não muda!
Come sugerido, você deve diminuir a #100 cada vez que entra no ciclo, e Mach3 usa necessariamente parênteses

Bem.......... em programação (e me parece que codigo G segue a logica de programação de linguagens convencionais), atribuição estatica é #100= (valor)

mesmo assim minha declaração funcionou Z[#100-1]

#100=[#100-1]

Eis as mudanças

G0 X-40 Y0
#100=40
M98 P777 L39
G0 Z100
M30

O777
#100=[#100-1]
Z#100
G3 F200 X-40 Y0 I40 J0
M99

(sendo #100=40 devo supor  L=40, porque 39?)

Na verdade o uso de uma variável fica bom como exercício mas não precisa usá-la neste programa!

G90 G0 X-40 Y0
M98 P777 L40
G0 Z100

Embora meu programa estava bem tosco, o maior problema foi o local do m30

M30

O777
G91Z-1
eu sabia que existia algo assim (G91Z-1), só não me lembrava como era, vou testar imediatamente
G90 G3 F200 X-40 Y0 I40 J0 (ou G3I40)
M99

 

/** * */