Partilhar: WhatsApp
aulify · Sebenta
UC · Unidade de Competência · UC02971

Sebenta · Desenvolver técnicas para a otimização do processo de maquinação em equipamentos CNC (UC02971)

Programação paramétrica, macros orientadas para a geometria e para o setup, sonda de apalpação 3D
50h · 4.5 pontos crédito Curso: T. Programação e Maquinaçã ↗ Referencial oficial SNQ
Índice

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

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

Modos e testes de maquinação

Antes de cortar material a sério, existe uma sequência de validação obrigatória:

  1. Simulação gráfica no ecrã, sem mover a máquina.
  2. Dry run (marcha em vazio): move os eixos aos avanços programados, sem cortar.
  3. Corte real com parâmetros reduzidos, na primeira peça de uma série nova.
  4. 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

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.

  1. Estrutura de dados: #10 = comprimento (operador), #11 = largura (operador), #12 = profundidade (operador), #20 = folga de aproximação (programador, fixa em 2 mm).
  2. Âmbito: #10, #11, #12 são locais a esta macro; nenhum outro programa precisa deles.
  3. 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

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:

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.

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):

  1. O operador mede com o instrumento e introduz o valor quando a caixa de diálogo o pede.
  2. A macro valida o valor (está dentro de uma gama plausível?).
  3. 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.

  1. A macro mostra a mensagem "Fixar a peça e introduzir a cota de referência medida".
  2. O operador mede com o relógio comparador e introduz o valor em #101.
  3. A macro valida a gama e, se estiver correta, calcula o zero em Z: #102 = #101 - 5.0.
  4. 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.

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:

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.

  1. Apalpar um anel de calibração (ou esfera) de dimensão certificada e conhecida.
  2. O ciclo de calibração toca em vários pontos e calcula o raio efetivo da esfera da sonda.
  3. O valor de calibração é guardado numa variável de sistema, usado automaticamente por todos os ciclos seguintes.
  4. 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:

  1. Simulação gráfica com valores típicos.
  2. Dry run com os valores limite (o maior e o menor da gama esperada).
  3. Corte real reduzido, avanço e velocidade baixos, na primeira peça.
  4. 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

Glossário

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.