O que é interpolação linear e circular ?
Talvez a melhor maneira de explicar seja por meio de alguns exemplos:
(supondo que falamos do que é a maioria das máquinas com que lidamos, um robô cartesiano)
Imagine que a ferramenta está em um ponto qualquer e deva ir para outro ponto qualquer paralelo e que o segmento de reta que passa pelos pontos seja paralelo a um dos eixos da máquina:
*------------*
A coisa aqui é bem simples, um único eixo será movimentado, no máximo nos preocupamos com uma rampa de aceleração/desaceleração e com o número de passos necessários para percorrer essa distância.
Imaginemos agora que que o segmento de reta faz um ângulo qualquer. A coisa fica um pouquinho mais complicada, temos que
interpolar a movimentação dos eixos, coordenar suas velocidades de modo que o deslocamento de cada eixo redunde no ângulo desejado e a partida e a chegada de ambos os eixos ocorra tb simultaneamente. Se for um ângulo de 45 graus, é bico, ambos os eixos se deslocam na mesma velocidade. Para um ângulo de 22,5 ou 67,5 graus, um dos eixos desloca-se com o dobro da velocidade do outro. E de forma similar podemos obter qualquer ângulo.
*
/
/
/
/
*
É isto o que chamamos de interpolação.
Falamos de dois eixos, X e Y, mas quase sempre necessitamos de um terceiro eixo, o Z e então a coisa aperta ainda mais um tanto.
Falamos de trajetórias ao longo de uma reta, mas frequentemente precisamos traçar arcos, a coisa se complica mais um pouco, e computar os parâmetros para controle da trajetória exige mais ...
Interpolação circular implica em sintetizar um arco por meio de um grande número de pequenos segmentos de reta, tanto maior quanto maior for a resolução e exatidão necessárias.
Procure conhecer uma coisa chamada algoritmo de Bresenhan, é a pedra fundamental de tudo isso.
Dá pra perceber que lidamos sempre com exigências conflitantes, né ? Precisamos efetuar cálculos que se não são muito complicados, exigem muitas iterações e isso demanda tempo de processamento enquanto temos que variar e manter velocidades muito precisamente.
Conciliar essas exigências não é exatamente trivial e é quase inevitável ter de escrever as rotinas em assembly para garantir a necessária velocidade de processamento. Uma coisa é lidar com trigonometria em linguagem de alto nível, outra coisa é fazer isto em baixo nível ...
Em largas pinceladas são essas a dificuldades.
Esses comandos não são todos gerado pelo Art Cam ou G-code ?
Sim, são gerados pelo programa CAM, e interpretados pelo programa CNC que controla a máquina.
o Match3 por exemplo só obedece as cordenadas, ou faz alguma implementação a mais ?
Eu não diria que o programa "obedece" coordenadas, mas que as
interpreta e gera sinais eletrônicos que vão comandar o hardware de movimentação, drivers/motores de modo a obter-se a trajetória ímplicita nos comandos + coordenadas.