Sebenta · Desenvolver técnicas para a otimização do processo de maquinação em equipamentos CNC (UC02971)
- Introdução
- 1. Da peça ao programa: os três níveis de programação CNC
- 2. Desenho técnico e toleranciamento aplicados à maquinação
- 3. Modos de operação e maquinação de uma máquina CNC
- 4. Programação paramétrica: conceito, campo de aplicação e variáveis
- 5. Operadores lógicos, aritméticos e trigonométricos, e o conceito de contador
- 6. Estrutura de uma macro: diálogos, mensagens e decisões condicionais
- 7. Macros orientadas para a geometria da peça
- 8. Setup interno e externo
- 9. Macros orientadas para o setup da máquina
- 10. Tabela de ferramentas e tabela de zeros
- 11. Sonda de medição de ferramentas
- 12. Sonda de apalpação 3D: modos, parametrização e calibração
- 13. Ciclos de alinhamento, zero-peça e medição com a sonda 3D
- 14. Testar e validar macros e rotinas em contexto de maquinação
- Erros comuns
- Glossário
- Síntese
- Exercícios resolvidos
Introdução
Um programa CNC escrito à mão, cota a cota, resolve uma peça. Não resolve uma família de peças parecidas, nem um setup que se repete todos os dias, nem a necessidade de medir e corrigir sem parar a produção. Esta sebenta ensina a técnica que resolve estes três problemas de uma só vez: a programação paramétrica, vulgo macro.
Uma macro substitui um programa fixo por um programa que calcula e decide, a partir de variáveis. Duas aplicações concretas guiam toda a UC: macros orientadas para a geometria da peça, que servem toda uma família de peças com o mesmo código, e macros orientadas para o setup, que semi-automatizam a preparação da máquina, muitas vezes com o apoio da sonda de apalpação 3D, capaz de alinhar, encontrar o zero-peça e medir cotas sem sair da máquina.
Objetivos de aprendizagem (referencial): elaborar macros orientadas para a geometria da peça; elaborar macros orientadas para o setup da máquina; adequar as variáveis e funções paramétricas à tipologia da macro e rotina; garantir a funcionalidade das macros e rotinas em contexto real de maquinação; adequar os ciclos da sonda de apalpação 3D às operações de alinhamento, zero-peça e medição; e garantir a sua funcionalidade em contexto de maquinação.
1. Da peça ao programa: os três níveis de programação CNC
O referencial distingue três níveis de programação numa máquina CNC, e esta sebenta segue-os de perto:
| Nível | Para que serve | Onde aparece nesta UC |
|---|---|---|
| Orientado para a geometria da peça | descreve o percurso de maquinação da forma | Capítulos 7 e 8 |
| Orientado para o setup da máquina | prepara a máquina: zero-peça, ferramentas | Capítulos 9 e 10 |
| Interação com dispositivos externos | comunica com sondas, robôs, sensores | Capítulos 11 a 13 |
Cada nível pode ser feito de forma manual, linha a linha, ou automatizado por macro. O que separa um técnico de programação de um simples operador é saber quando vale a pena investir tempo a construir a macro certa.
O que muda quando se automatiza um nível
Automatizar não significa "complicar". Significa escrever o código de cálculo e decisão uma vez, para que depois baste introduzir os dados de cada peça ou de cada setup concreto. O ganho é medido em: tempo de programação por peça nova, tempo de setup entre lotes, e número de erros humanos evitados.
2. Desenho técnico e toleranciamento aplicados à maquinação
Nenhuma macro nasce sem uma leitura correta do desenho técnico da peça. O referencial exige domínio de normas, projeções, cortes e secções, cotagem, simbologia e anotações, e do toleranciamento dimensional e geométrico.
Projeções, cortes e cotagem
- Projeções ortogonais: vista de frente, de cima e de perfil, normalizadas por NP/ISO.
- Cortes e secções: revelam furos, rasgos e bolsas invisíveis nas vistas exteriores.
- Cotagem: define dimensões a partir de uma origem, em cadeia, em paralelo ou a partir de uma referência única.
- Simbologia e anotações: acabamento superficial, rosca, soldadura, tratamento térmico.
Toleranciamento dimensional e geométrico
A tolerância dimensional define um intervalo aceitável, por exemplo Ø20 ±0,05 significa entre 19,95 e 20,05 mm. A tolerância geométrica (GD&T) controla forma, orientação, posição e batimento: perpendicularidade, planeza, concentricidade, entre outras.
Porque importa nesta UC: as macros de medição com a sonda de apalpação (capítulo 12) só sabem decidir "conforme" ou "fora de tolerância" porque o técnico programou nelas a cota nominal e a tolerância exatas do desenho. Sem toleranciamento claro, a macro não tem critério de decisão.
3. Modos de operação e maquinação de uma máquina CNC
Modos de operação
- Manual (JOG): movimenta os eixos à mão, para aproximação e verificação.
- MDI: executa uma linha de código isolada, útil para testar um ciclo antes de o incluir numa macro.
- Automático: corre o programa completo.
- Edição: escreve e altera o programa diretamente na consola.
- Passo a passo (single block): executa uma linha de cada vez; é o modo em que se valida qualquer macro nova.
Modos e testes de maquinação
Antes de cortar material a sério, existe uma sequência de validação obrigatória:
- Simulação gráfica no ecrã, sem mover a máquina.
- Dry run (marcha em vazio): move os eixos aos avanços programados, sem cortar.
- Corte real com parâmetros reduzidos, na primeira peça de uma série nova.
- Produção normal, só depois de confirmada a peça de teste.
Porque importa nesta UC: as macros paramétricas escondem erros de sinal e de variável que um programa fixo não tem. Saltar a simulação numa macro nova é o erro mais caro desta UC, e o mais fácil de evitar.
4. Programação paramétrica: conceito, campo de aplicação e variáveis
O que é uma macro
Um programa CNC "normal" usa cotas fixas: G01 X50.0 Y30.0. Um programa paramétrico usa variáveis: G01 X#1 Y#2, onde #1 e #2 tomam o valor que for preciso em cada execução. O campo de aplicação cobre peças da mesma família, setups semi-automáticos, cálculos repetitivos e decisões condicionais.
Tipos de variáveis, por quem as controla
| Tipo | Quem controla | Exemplo típico |
|---|---|---|
| Do operador | introduzidas manualmente antes de correr | cota de uma peça específica |
| Do programador | fixadas dentro da macro, por conceção | constantes de cálculo, offsets |
| Do sistema | geridas pelo comando numérico | tabela de ferramentas, tabela de zeros, posição da sonda |
Variáveis locais e globais
- Locais: só existem dentro da macro que as cria; o valor perde-se ao terminar.
- Globais (comuns): partilhadas entre macros e mantidas entre execuções, úteis para guardar um resultado que outra macro vai usar a seguir.
Exemplo resolvido: declarar os requisitos de uma macro
Situação: precisamos de uma macro para uma bolsa retangular, com comprimento, largura e profundidade variáveis.
- Estrutura de dados:
#10= comprimento (operador),#11= largura (operador),#12= profundidade (operador),#20= folga de aproximação (programador, fixa em 2 mm). - Âmbito:
#10,#11,#12são locais a esta macro; nenhum outro programa precisa deles. - Funcionalidade: calcular os quatro cantos da bolsa a partir do comprimento e da largura, e o percurso de fresagem em Z até à profundidade, com passes sucessivos.
Este exercício de declarar requisitos antes de escrever código é o que distingue uma macro profissional de um "remendo" escrito por tentativa e erro.
5. Operadores lógicos, aritméticos e trigonométricos, e o conceito de contador
As três famílias de operadores
- Aritméticos: soma, subtração, multiplicação, divisão, raiz quadrada, para calcular cotas derivadas de outras cotas.
- Trigonométricos: seno, cosseno, tangente e inversas, indispensáveis em geometrias com ângulos, círculos de furação e rampas.
- Lógicos: E (AND), OU (OR), NÃO (NOT) e comparações (
=,≠,>,<), a base de todas as decisões condicionais da macro.
O contador
Um contador é uma variável que se incrementa (ou decrementa) a cada repetição de um ciclo:
#1 = 0
WHILE [#1 LT 6] DO1
... calcular posição do furo #1 ...
#1 = #1 + 1
END1
Sem contador, uma macro para "6 furos em círculo" repetiria o mesmo código seis vezes à mão. Com contador, um único bloco de código corre seis vezes, recalculando o ângulo em cada volta.
Exemplo resolvido: calcular as coordenadas de um círculo de furação
Peça com N furos distribuídos uniformemente num círculo de raio R, centrados em (X0, Y0).
#1 = 0 (contador de furos)
#2 = 360 / #11 (passo angular; #11 = número de furos)
WHILE [#1 LT #11] DO1
#3 = #12 + #1 * #2 (ângulo do furo actual; #12 = ângulo inicial)
#4 = #10 * COS[#3] (X do furo; #10 = raio)
#5 = #10 * SIN[#3] (Y do furo)
G81 X#4 Y#5 Z-10.0 R2.0 F100
#1 = #1 + 1
END1
Mudar #11 de 6 para 8 furos não exige tocar em mais nada: o cálculo do ângulo e das coordenadas recalcula-se sozinho a cada execução.
6. Estrutura de uma macro: diálogos, mensagens e decisões condicionais
Uma macro robusta comunica com o operador e sabe decidir:
- Caixas de diálogo: pedem um valor ao operador antes de correr (número de peças, cota de referência).
- Mensagens: avisam de erro, confirmam sucesso, pedem confirmação antes de um passo crítico.
- Decisões condicionais (
IF ... GOTO): desviam o fluxo do programa consoante uma condição.
IF [#1 GT 50] GOTO 100
#3000 = 1 (VALOR FORA DE GAMA)
N100 ...
#3000 (ou instrução equivalente noutros comandos) dispara um alarme com o texto indicado e para o programa, em vez de deixar a máquina continuar com um valor inválido.
Exemplo resolvido: validar um valor antes de o usar
Situação: uma macro pede ao operador a espessura de um bruto, que tem de estar entre 8 e 12 mm.
(Pede a espessura do bruto ao operador, em #101)
IF [#101 GE 8.0] AND [#101 LE 12.0] GOTO 200
#3001 = 1 (ESPESSURA FORA DA GAMA 8-12MM)
N200 #102 = #101 - 10.0 (offset calculado a partir do valor validado)
Sem esta validação, um erro de digitação (120 em vez de 12,0) chegaria intacto ao cálculo do offset, com risco de colisão.
7. Macros orientadas para a geometria da peça
Uma macro orientada para a geometria parametriza a forma da peça, para que o mesmo código produza toda uma família de peças mudando só os valores de entrada. A família partilha a mesma operação (uma bolsa, um padrão de furos), variando em dimensões: comprimento, largura, profundidade, número de furos, raio.
O percurso de maquinação (a trajetória da ferramenta) escreve-se uma vez, em função dessas variáveis. Esta é uma das duas realizações centrais desta UC.
Exemplo resolvido: macro de uma bolsa retangular parametrizada
Bolsa com comprimento #10, largura #11 e profundidade #12, aproximação segura #20 = 2.0:
#30 = #10 / 2 (metade do comprimento)
#31 = #11 / 2 (metade da largura)
G00 Z#20 (posiciona à folga de segurança)
G01 X-#30 Y-#31 F300 (canto inferior esquerdo)
G01 X#30 Y-#31 (canto inferior direito)
G01 X#30 Y#31 (canto superior direito)
G01 X-#30 Y#31 (canto superior esquerdo)
G01 X-#30 Y-#31 (fecha o contorno)
G01 Z-#12 F100 (desce à profundidade programada)
Alterar #10, #11 ou #12 produz uma bolsa de outro tamanho sem tocar em mais nenhuma linha. É este código, escrito uma vez, que serve toda uma família de peças.
8. Setup interno e externo
O setup é o conjunto de preparações entre a produção de um lote e o seguinte: mudar ferramentas, fixar a peça, definir o zero-peça.
- Setup interno: só pode ser feito com a máquina parada.
- Setup externo: pode ser feito com a máquina ainda a trabalhar no lote anterior, numa bancada à parte.
- A interatividade do operador varia entre tudo manual e um setup semi-automatizado por macro, guiado passo a passo.
Reduzir o tempo de setup interno é reduzir tempo de máquina parada, um dos maiores custos escondidos da maquinação em pequenas e médias séries.
9. Macros orientadas para o setup da máquina
Uma macro deste tipo combina cálculo, diálogo e, muitas vezes, dados introduzidos com instrumentos manuais (paquímetro, relógio comparador, apalpador manual):
- O operador mede com o instrumento e introduz o valor quando a caixa de diálogo o pede.
- A macro valida o valor (está dentro de uma gama plausível?).
- A macro calcula a partir daí o que precisa: offset de ferramenta, posição do zero-peça, correção de desgaste.
É a ponte entre a medição manual e a decisão automática, sem substituir o instrumento nem o operador. Esta é a segunda realização central da UC: elaborar macros orientadas para o setup.
Exemplo resolvido: setup guiado por diálogo
- A macro mostra a mensagem "Fixar a peça e introduzir a cota de referência medida".
- O operador mede com o relógio comparador e introduz o valor em
#101. - A macro valida a gama e, se estiver correta, calcula o zero em Z:
#102 = #101 - 5.0. - A máquina fica pronta a produzir sem mais intervenção manual.
10. Tabela de ferramentas e tabela de zeros
Muitos comandos CNC expõem a tabela de ferramentas (comprimentos, raios, desgaste) e a tabela de zeros (G54 a G59, entre outros sistemas) como variáveis de sistema, acessíveis por macro.
- Cada ferramenta tem uma variável de sistema própria para o seu comprimento e para o seu raio (a numeração exata varia por marca de comando).
- Cada sistema de coordenadas de peça tem as suas variáveis próprias de X, Y e Z.
- Uma macro pode ler estes valores para cálculo, ou escrever neles para atualizar o offset automaticamente.
Exemplo resolvido: corrigir o comprimento de uma ferramenta
#10 = #10001 (lê o comprimento actual da ferramenta 1)
#11 = #5063 - #4013 (desvio entre a cota medida e a nominal)
#10001 = #10 + #11 (escreve o novo comprimento corrigido)
Ler o valor atual antes de o alterar garante que a correção é relativa, e não apaga ajustes anteriores acumulados. A próxima peça já maquina com o offset corrigido, sem intervenção manual.
11. Sonda de medição de ferramentas
A sonda de medição de ferramentas, fixa na mesa ou na estrutura da máquina, mede automaticamente o comprimento e, nalguns casos, o raio de cada ferramenta, eliminando a medição manual fora da máquina.
O ciclo de medição pode disparar-se:
- No arranque do turno, medindo todo o armazém antes da primeira peça.
- Após deteção de quebra, se um sensor ou uma macro suspeitar de ferramenta partida.
- Periodicamente, para acompanhar o desgaste num lote longo.
O valor medido é escrito diretamente na tabela de ferramentas, pronto a usar nos programas seguintes: o primeiro elo de uma célula CNC com correção automática, pois sem ferramentas bem medidas nenhuma macro de geometria produz cotas corretas.
12. Sonda de apalpação 3D: modos, parametrização e calibração
Modos de operação da sonda de apalpação
A sonda de apalpação 3D (probe), montada no fuso como uma ferramenta, toca fisicamente na peça e regista as coordenadas do ponto de contacto.
| Modo | Função |
|---|---|
| Alinhamento | mede inclinação ou rotação da peça face aos eixos da máquina |
| Zero-peça | encontra a posição de uma face, aresta ou centro de furo para definir a origem de programação |
| Medição | verifica cotas já maquinadas, comparando com a nominal e a tolerância |
Cada modo corresponde a um ciclo de programação próprio, com parâmetros específicos: direção de aproximação, distância de segurança, velocidade de toque.
Calibração da sonda de apalpação
Antes de qualquer ciclo, a sonda tem de estar calibrada: o comando precisa de saber o raio exato da esfera de toque e o desvio da sonda em relação ao centro do fuso.
- Apalpar um anel de calibração (ou esfera) de dimensão certificada e conhecida.
- O ciclo de calibração toca em vários pontos e calcula o raio efetivo da esfera da sonda.
- O valor de calibração é guardado numa variável de sistema, usado automaticamente por todos os ciclos seguintes.
- Repetir a calibração periodicamente, e sempre que a sonda for trocada ou sofrer um impacto.
Uma sonda mal calibrada produz medições erradas de forma consistente e plausível, sem qualquer alarme visível. É mais perigosa do que um erro grosseiro.
13. Ciclos de alinhamento, zero-peça e medição com a sonda 3D
Identificar as variáveis do sistema da sonda
Um ciclo de apalpação típico grava o resultado do toque em variáveis de sistema específicas, por exemplo #5061 a #5069 (a numeração exata varia por marca de comando):
G65 P9810 Z-10.0 F500 (aproxima e apalpa em Z)
#100 = #5063 (lê a coordenada Z do ponto de contacto)
Exemplo resolvido: zero-peça automático no centro de uma peça
G65 P9814 X-20.0 F500 (apalpa a face esquerda)
#101 = #5061 (guarda X esquerdo)
G65 P9814 X20.0 F500 (apalpa a face direita)
#102 = #5061 (guarda X direito)
#103 = [#101 + #102] / 2 (calcula o centro em X)
G92 X#103 (define X#103 como zero-peça)
O mesmo raciocínio repete-se em Y, para obter o centro nos dois eixos. Apalpar os dois lados e calcular a média, em vez de confiar na posição teórica da peça na fixação, é o que garante um zero-peça fiável mesmo com pequenos desvios de fixação.
Exemplo resolvido: verificação e correção automática de um diâmetro
Furo com cota nominal Ø20 ±0,05, medido por apalpação em dois pontos diametralmente opostos:
G65 P9811 X-15.0 F500 (apalpa lado 1 do furo)
#110 = #5061
G65 P9811 X15.0 F500 (apalpa lado 2 do furo)
#111 = #5061
#112 = ABS[#111 - #110] (diâmetro medido)
IF [#112 GE 19.95] AND [#112 LE 20.05] GOTO 300
#113 = [20.0 - #112] / 2 (correção de raio necessária)
#2001 = #2001 + #113 (soma à correção de raio da ferramenta)
N300 M99 (fim da macro)
Se o furo está dentro da tolerância, a macro não altera nada. Se está fora, corrige automaticamente o offset de raio da ferramenta antes da peça seguinte, sem intervenção manual.
14. Testar e validar macros e rotinas em contexto de maquinação
Uma macro só está pronta depois de percorrer uma sequência de validação mais exigente do que a de um programa fixo, porque tem de funcionar corretamente para vários valores de entrada, não só um:
- Simulação gráfica com valores típicos.
- Dry run com os valores limite (o maior e o menor da gama esperada).
- Corte real reduzido, avanço e velocidade baixos, na primeira peça.
- Confirmar que as mensagens de erro disparam corretamente com valores fora de gama, testados de propósito.
Só depois de validada nestes quatro passos a macro entra em produção normal, para toda a família de peças ou para o setup diário a que se destina.
Erros comuns
- Esquecer o incremento do contador num ciclo
WHILE, criando um ciclo infinito que a máquina executa sem nunca sair. - Confundir atribuição com comparação (
#1=10vs#1 EQ 10), um erro de sintaxe frequente em macro. - Não validar a introdução manual de dados, deixando um erro de digitação propagar-se até ao cálculo do offset ou do zero-peça.
- Confundir a sonda de medição de ferramentas com a sonda de apalpação 3D de peça, aplicando o ciclo errado.
- Assumir que a sonda continua calibrada depois de uma colisão ligeira, sem a recalibrar.
- Apalpar só um lado de uma peça para determinar o zero, em vez de apalpar os dois lados e calcular a média.
- Saltar a simulação gráfica numa macro nova "porque parece simples", exatamente onde os erros de variável mais se escondem.
- Aplicar uma correção de offset sempre, mesmo quando a peça já está dentro de tolerância, degradando a precisão ao longo do lote.
Glossário
- Macro (programação paramétrica): programa CNC que usa variáveis em vez de valores fixos, para poder calcular e decidir.
- Variável local: existe só dentro da macro onde é criada, perde o valor ao terminar.
- Variável global (comum): partilhada entre macros, mantém o valor entre execuções.
- Contador: variável que se incrementa a cada repetição de um ciclo.
- Setup interno: preparação que só se faz com a máquina parada.
- Setup externo: preparação que se faz com a máquina ainda a trabalhar.
- Sonda de medição de ferramentas: dispositivo fixo que mede o comprimento e o raio das ferramentas.
- Sonda de apalpação 3D (probe): dispositivo montado no fuso que toca na peça para alinhar, encontrar o zero-peça ou medir.
- Calibração da sonda: procedimento que determina o raio efetivo da esfera de toque, essencial antes de qualquer ciclo.
- Zero-peça: origem de coordenadas de programação definida na peça, geralmente por apalpação ou por medição manual.
- Offset de ferramenta: valor de correção de comprimento ou raio guardado na tabela de ferramentas.
- Tolerância dimensional: intervalo aceitável para uma cota, definido no desenho técnico.
- Dry run: execução do programa com os eixos em movimento real, mas sem rotação da ferramenta nem corte.
Síntese
A otimização do processo de maquinação nesta UC não é sobre parâmetros de corte, é sobre automatizar a programação e o setup com macros. Domina-se a programação paramétrica (variáveis, operadores, contadores, diálogos e decisões) para depois a aplicar em duas direções: macros orientadas para a geometria, que servem toda uma família de peças, e macros orientadas para o setup, que semi-automatizam a preparação da máquina com validação de dados manuais. A sonda de apalpação 3D, depois de calibrada, fecha o ciclo: alinha, encontra o zero-peça e mede cotas, com correção automática de offsets quando necessário. Tudo isto valida-se sempre em simulação, dry run e corte reduzido, com segurança e EPI em primeiro lugar.
Exercícios resolvidos
1. Uma macro precisa de guardar o resultado de uma medição para que outra macro, executada mais tarde, o possa usar. Que tipo de variável (local ou global) deve usar, e porquê?
Resolução: deve usar uma variável global (comum). Uma variável local perde o valor assim que a macro termina, por isso qualquer resultado que precise de sobreviver para ser lido por outra macro tem de ser guardado numa variável global.
2. Escreve a lógica (em pseudocódigo) para uma macro que fura 4 furos em linha, espaçados 25 mm, a partir de um ponto inicial (X0, Y0), usando um contador.
Resolução: ```
1 = 0
WHILE [#1 LT 4] DO1 #2 = #10 + #1 * 25.0 (X do furo actual, #10 = X0) G81 X#2 Y#11 Z-10.0 R2.0 F100 #1 = #1 + 1 END1
`` O contador#1` controla quantas vezes o ciclo repete; a posição de cada furo recalcula-se a partir dele, sem repetir código.
3. Um operador introduz "150" numa macro que espera a espessura de um bruto em milímetros, quando o valor real era 15,0 mm. Que rotina evitaria que este erro chegasse ao cálculo do offset?
Resolução: uma rotina de validação da introdução manual de dados, que confere se o valor está dentro de uma gama plausível (ex.: entre 8 e 12 mm, ou a gama definida para o processo) antes de o usar em qualquer cálculo, disparando uma mensagem de erro em vez de prosseguir.
4. Explica porque a calibração da sonda de apalpação é mais perigosa de negligenciar do que, por exemplo, esquecer o incremento de um contador.
Resolução: um contador sem incremento gera um ciclo infinito, um erro visível e imediato, que para a produção. Uma sonda mal calibrada produz medições erradas mas plausíveis, de forma consistente, sem qualquer alarme, podendo passar despercebida durante muitas peças até alguém detetar o desvio por outra via.
5. Uma peça tem um furo com cota nominal Ø20 ±0,05. A sonda mede 20,08 mm. O que deve fazer a macro de verificação, e o que NÃO deve fazer?
Resolução: a macro deve assinalar que a cota está fora de tolerância (20,08 está acima do limite superior de 20,05) e aplicar a correção de offset calculada para a ferramenta, de forma a que a peça seguinte já saia dentro da gama. NÃO deve aceitar o valor como conforme, nem aplicar a correção sem primeiro verificar que está fora de tolerância, para não alterar o offset desnecessariamente quando a peça já está boa.