Autor Tópico: Fresando engrenagnes  (Lida 7384 vezes)

Description:

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

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:Fresando engrenagnes
« Resposta #15 Online: 03 de Março de 2012, 12:45 »
Rui,

Obrigado - vai ser bom sim pois aí vejo como adaptar para o Mach3...

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re:Fresando engrenagnes
« Resposta #16 Online: 03 de Março de 2012, 13:00 »
Olá Rui,
Muito legal suas rotinas.
Testei aqui no emc e estão todas funcionando sem problemas.
Baixei seu tuto dos comandos e vou dar uma olhada também.

Pensei em acrescentar duas coisinhas no código.
Uma seria a possibilidade de configurar mais que 1 passe em Z.
E a outra seria um furo central com diâmetro configuravel.
Só que vou precisar estudar bastante o doc antes de implementar isso.
Abraços

---

Fábio,
Só funcionou no emc mesmo.
Tentei no mach e no simulador CNCPlot e só aparece um dente. Fica banguela...  ;D

Offline RuiBarbudo

  • Novato
  • *
  • Posts: 40
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Fortaleza CE
  • Nome:: Rui L Viana
  • Profissão: Técnico Eletronico
Re:Fresando engrenagnes
« Resposta #17 Online: 12 de Março de 2012, 15:59 »
Oi Pessoal,

depois de alguns feed backs informando que as rotinas da engrenagem não funcionava corretamente em
alguns software de CNC, fui pesquisar as razões.

Sem aprofundar em outras diferenças, usei dois softwares para testar a aplicação.

Usei o USBCNC, que utiliza a mesma implementação do EMC2, e uma versão Demo do Mach3.

Aprendi que o Mach3 não suporta loop condicional, e por isto a rotina não funciona corretamente,
mas o EMC2 suporta o loop condicional, e a rotina funciona bem.

Reprogramei a rotina, para ao invés de somar os ângulos e “condicioná-los” ao valor limite de 360 graus, 
deveria chamar uma sub-rotina tantas vezes quantos os dentes da engrenagem.

Esta opção funcionou bem no Mach3, mas não funcionou corretamente no EMC2.

Pedi ajuda ao amigo Pietro, que foi muito prestativo ensinando-me no uso correto das variáveis.
Mas por mais que tentasse na pratica a teoria das variáveis não funcionou correta no EMC2.

Finalmente resolvi fazer uma rotina, em que com pequenas modificações, tais como tirar parentes de
algumas instruções e colocar parentes em outras e a rotina funciona ou em EMC2 ou em MACH3.

Corrigi também um problema que identifiquei, a largura superior do dente era maior que o vale do dente.

Demorei um pouco para responder pois fui aprender um pouco de Mach3 e também apanhei muito da rotina de
igualdade dos dentes.

Acredito que esta rotina nova (Gears 3.0), ainda possa ser melhorada.
Se por acaso, estou levando em consideração algum conceito de engrenagem da forma errada, fiquem à
vontade para corrigir e me ensinar um pouco mais sobre o assunto.

Escrevi uma rotina para ser usada nas em qualquer situação em que voce tenha 2 parametros.
(dois dos tres: Diametro Primitivo; Módulo; Número de dentes).

Para usar duas ou mais engrenagens acopladas, elas tem que ter o mesmo módulo.

Então para calcular duas engrenagens com quantidade de dentes diferentes, calcule a primeira utilizando
a rotina e definindo o diâmetro primitivo e o número de dentes.  Se você dividir o diâmetro pelo número
de dentes obterá o módulo.
Para a próxima engrenagem você define quantos dentes ela terá, e multiplica este número pelo módulo que
obteve na primeira parte, e terá o diâmetro primitivo. Caso já tenha o diâmetro então divida-o pelo módulo
e terá o número de dentes.

A = Dp/Nd    A= módulo     Dp = Diâmetro primitivo   Nd = número de dentes.

Como sugeriu o Alexandre, escrevi uma rotina para o furo central e para uma chaveta,
ambos configuráveis.

Sendo aprendiz de CNC, gostaria de saber o que o Alexandre quis dizer com
“Configurar mais que um passe em Z”

Abraços a todos

Rui

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re:Fresando engrenagnes
« Resposta #18 Online: 12 de Março de 2012, 18:16 »
Rui,
Ainda não tive tempo nem para estudar o quase nada que sei sobre variaveis e vc ja implementou metade do que falei.  8)
Sobre o + um passe em z, seria poder configurar varias passadas em alturas diferentes do eixo z.
Repetição de tudo com nivel z em progressões negativas.
No seu código, seria as linhas

Código: [Selecionar]
G0 Z0.0000 (Desce Ferramenta)

Se formos tentar criar uma engrenagem de aluminio com espessura de 5mm, dificilmente será possivel corta-la em um passe só.
É claro que se pode modificar manualmente altura de z para fazer vários passes.

Outro ponto importante, seria nessa mesma linha que comentei.
Não é muito recomendado a ferramenta ir de encontro ao material  em G0 pois essa é a maior velocidade de deslocamento da máquina em vazio.
Pode-se perder muitas fresas assim.
O ideal é usar G1 seguido da velocidade normalmente em mm/min usando a letra F (feed rate)

Código: [Selecionar]
G1 Z0.0000 F500                 (Desce Ferramenta)
Abraços
Alebe
« Última modificação: 12 de Março de 2012, 18:23 por Alebe »

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re:Fresando engrenagnes
« Resposta #19 Online: 12 de Março de 2012, 18:28 »
Outra coisa.
Acredito que não esta calculado nenhum offset de ferramenta nos códigos, certo?

Offline RuiBarbudo

  • Novato
  • *
  • Posts: 40
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Fortaleza CE
  • Nome:: Rui L Viana
  • Profissão: Técnico Eletronico
Re:Fresando engrenagnes
« Resposta #20 Online: 12 de Março de 2012, 18:46 »
Oi Alebe,

Obrigado pelas informações sobre o Passe e a Velocidade de descida

Vou corrigi-los na próxima versão.

Quanto ao offset, não sei se estou certo,  mas imaginei que se a engrenagem precisa ter no final um diâmetro primitivo de 60mm, (raio 30mm) e a minha ferramenta tem um diâmetro de 1mm, basta aumentar 0.5mm no raio, (1mm no diâmetro primitivo).

Está correto o meu raciocínio?

Abraços

Rui

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re:Fresando engrenagnes
« Resposta #21 Online: 12 de Março de 2012, 19:04 »
Citar
Quanto ao offset, não sei se estou certo,  mas imaginei que se a engrenagem precisa ter no final um diâmetro primitivo de 60mm, (raio 30mm) e a minha ferramenta tem um diâmetro de 1mm, basta aumentar 0.5mm no raio, (1mm no diâmetro primitivo).

Está correto o meu raciocínio?

Perfeito.

hehehe... O burro aqui é que travou na curva.
Com o sorvete eu mirei a testa, e com o garfo perdi um olho... kkkkkk

Offline badade

  • Novato
  • *
  • Posts: 65
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Varese
  • Nome:: Pietro
  • Profissão: Programador cnc
Re:Fresando engrenagnes
« Resposta #22 Online: 15 de Março de 2012, 18:51 »
Rui grande trabalho, eu gostei!
Ao escrever um programa paramétrico, precisa considerar o comando em uso. Você notou, depois de várias tentativas, as diferenças entre os vários CNC.
Eu gostaria de reiterar algumas coisas que podem ajudar os outros utilizando a  paramétrica. Fanuc, mc2, Mach3, usbcnc são alguns controles que foram mencionados. Escrevendo uma rotina paramétrica a logica é a mesma para todos os comandos, o que muda é o interpretador básico: eu vou explicar. (Vou examinar o Fanuc e usbcnc)

- Funções. Estas dependem do comando, podemos utilizar, se não existe uma função não podemos fazer nada.
- Símbolos. Cada função é representada por uma palavra ou por um símbolo alfanumérico. Estes não são iguais em todos os comandos, em seguida, temos de ajustar ao tipo em uso. Escrever #1LT#2 em um controle usbcnc não garante que funcione pois o símbolo usado pelo usbcnc é o seguinte (<).
Portanto, embora a lógica seja igual, os símbolos pertencem a cada comando.
- A mais importante diferencia (eu acho) é a atribuição, que cria muitos problemas. (#1 = #2 + #3)  Esta expressão está correta ou errada?
Querendo por o valor de [#2+#3] na #1 o interprete do comando age de forma diferente.
Para Fanuc não é um erro pois interpreta a escrita assim: tudo o que fica na direita do símbolo = vai ser atribuído à variável ou expressão que fica à esquerda.
Usb interpreta de maneira diferente: antes vai ser executada a expressão
#1=#2 a qual vai ser usada e depois vai ter a suma com #3.
Então você precisa usar parênteses para obter o mesmo resultado do Fanuc.
Em todas as expressões é bom usar parênteses (como na matemática) para obter o resultado que queremos.
Rui, o seu primeiro programa por isso não rodava por falta de conhecimento do interprete de cada comando.
Experimentando você o descobriu!

Análise do programa Gear3.0.cnc
Há alguns aspectos que gostaria de enfatizar, escrevo sem ordem de preferência.

X [#106 * -1]
quando você quer usar um valor negativo ou oposto, você pode prefixar a variável usando o simbolo (-), fica mais fácil de entender e escrever X [-#106]


G2 X [# 104 * -1] Y0 R [# 104] (meio círculo inferior dar furo central)
G2 X [# 104] Y0 R [# 104] (semi-círculo do furo central superior)
a expressão de um círculo pode ser feita com uma única linha de código
G2 X#104 I#104
Em geral, a fórmula é a seguinte G2/G3 X I  ou  G2/G3 Y J dependendo do ponto de partida do círculo (X ou Y). Todos os comandos deveriam aceitar esta forma, fazem parte do G-code.


#113 = [[#102/2] - #111] (Raio do do Pé) (Raio primitivo - "a")
#114 = [[#102/2] + #112] (Cabeça de Raio) (Raio primitivo + "d")
Eu acho que as expressões estão erradas: não deve ser d> a? então
#113 = [[#102/2] - #112] (Raio do do Pé) (Raio primitivo - "d")
#114 = [[#102/2] + #111] (Cabeça de Raio) (Raio primitivo + "a")
Penso assim porque a garantia que não há nenhuma fricção entre as engrenagens esta no fato de ser d>a.


A primeira parte do programa pode ser melhorada.
Posicionamentos diferentes não ajudam, a execução de um perfil deve exigir o mínimo de movimento, às vezes é melhor executar várias operações em
vez de usar apenas uma ferramenta por exemplo, uma perfuração e um perfil.


Um dos seus problemas é o uso da compensação de raio (que gerou o post, mas não encontrou uma solução adequada ).
Se você não a usa é obrigado a repetir o programa cada vez que mudar de ferramentas ou mudar o perfil.
Esta função é muito poderosa e importante, lamento que você não a usa.
Eu noto que no “hobby” geralmente está trascurada, talvez porque não se conhece ou talvez porque usa-se sistemas CAM.  Trabalho todos os dias com compensação de raio, se não houvesse seria um grande problema.  Compensação permite a substituição rápida de ferramentas sem recalcular o perfil.

Um aspecto importante é a introdução de uma rotina capaz de realizar passadas em z. Você não pode pensar em remover todo o material de uma só vez. 
O procedimento mais simples é escrever um duplo loop: um loop para a descida em Z, outro para o perfil.

while[ condição loop ]   (loop Z)
   while[ condição  loop] (loop perfil)
   perfil
   endwhile(fim loop perfil)
endwhile(fim loop Z)

#140=5
while[#140<>0]
------
while[#130<360]
perfil
endwhile(fim perfil)
----( condição de retorno )
endwhile

Você terá que mudar algumas linhas de código, mas vale a pena

Quando eu escrevo programas paramétricos sempre tento separar a parte de cálculo  pelo movimento real, porque eu nunca sei qual será o comportamento do CNC, quer dizer,  evitar desaceleração inesperada devido ao cálculo o que pode deixar a peça marcada. Eu diria uma coisa semelhante

while[#130<360]
#130=[#130+#125]   (cálculo dos ângulos)
#131=[#130+#119-#125]
#132=[#131+#118]
#133=[#132+#123]
#134=[#133+#118]
#135=[#134+#119-#125]
#136=[#135+#125]
#137=[#136+#124]
G2X[#116*cos[#130]]Y[#116*sin[#130]]R[#121]
G3X[#117*cos[#131]]Y[#117*sin[#131]]R[#113]
G1X[#114*cos[#132]]Y[#114*sin[#132]]
G3X[#114*cos[#133]]Y[#114*sin[#133]]R[#114]
G1X[#117*cos[#134]]Y[#117*sin[#134]]
G3X[#116*cos[#135]]Y[#116*sin[#135]]R[#113]
G2X[#113*cos[#136]]Y[#113*sin[#136]]R[#121]
G3X[#113*cos[#137]]Y[#113*sin[#137]]R[#113]
#130=#137      (restaurar a condição primitiva)
endwhile


Um aspecto pouco considerado por aqueles que criam programas paramétricos é a análise de erros, esperados e inesperados.
É importante introduzir uma linhas para avaliar possíveis erros. Por exemplo, pode controlar o número de dentes mínimo que a rotina pode realizar.
Você pode verificar se a ferramenta em uso permite que você execute o perfil. Muitas vezes pensamos ter escrito um excelente programa, alguém tenta executá-lo obtendo falha, um fracasso, e não porque o programa não funciona, mas porque foi usado incorretamente (porque nós o permitimos).
Com uma análise de erro adequada seu programa será melhor: você pode controlar tudo!

A entrada da fresa para a execução do perfil não está correta. E' melhor entrar do lado do perfil, realizar uma abordagem de interpolação circular, o que garante uma usinagem sem problemas. Deste jeito você não terá nenhum problema de descida ou controle ferramenta .

Eu vou parar agora. Li com atenção o seu programa achei muito bom, e com algumas mudanças tornar-se grande.  Minha análise (espero seja de ajuda) não quer diminuir o seu trabalho. Estas são apenas sugestões de quem gosta de escrever programas. Obrigado por compartilhar suas experiências com todos nós e mais uma vez: excelente trabalho.

Eu analisei o programa considerando apenas o aspecto da programação. E' natural que, na realidade, deve ser considerada uma série de fatores reais que podem levar a determinadas escolhas. Fazer engrenagens exige um estudo específico, consideram-se muitos outros fatores.
Claro, se queremos construir jogos para crianças podemos desconsiderar os aspectos técnicos que podem restringir o nosso trabalho.
Então eu só quis analisar um programa sem considerar a realidade.

Eu realmente gosto da ideia de estimular a criatividade de crianças usando engrenagens: você quer nos dizer mais?

Offline REGENERATOR

  • OSWALDO SOBRINHO
  • Novato
  • *
  • Posts: 77
  • Sexo: Masculino
  • PLOTER/ADESIVOS
Re:Fresando engrenagnes
« Resposta #23 Online: 26 de Maio de 2012, 00:29 »
Galera, só um pitaquinho pouco haver, decididamente eu duas ferramentas poderosissimas que na minha experiencia emina as demais
que são: COREL DRAW E ARTCAM com esses dois as coisas acontecem rapidinho sem canseira.
configuro a pagina do corel como a do artacam( mesmas dimensões) pois ela batem certinho uma a outra, Faço o vetor usando os recursos que o corel oferece, exporto p a pasta do art cam em EPS (eu soldo tudo primeiro, senão da bizil quando importar para o artcam) abro o artcam importo esse EPS que ja foi agrupado de acordo com as paginas e pronto é só aplicar os percussos salvar na pasta do mach3 e mandar  ficha. Acho que esses 2 programas são como unha e carne. a unica coisa que tenho no pc da cnc é mach3, artcam pro br, e corel 13 que é mais levinho que seus sucessores.
Quanto aos arquivos que ficam menor depois de usinados ( as engrenagens do Rui) isso pode ser ferramenta mais grossa que a que foi aplicada ao percusso, tipo vc  configura pra 2 mm, mas a freza tem, 2.5, isso as vzs acontece pra ficr tudo do tamanho certinho que fou vetorizado, não pode errar na escolha da ferramenta.
Abrçs.

 

/** * */