Fabricação de robôs

O senhor pode usar os robôs industriais como uma máquina-ferramenta (CNC de 3 ou 5 eixos). Para alcançar os mesmos resultados das máquinas CNC, os robôs industriais requerem um software avançado de programação off-line, como o RoboDK, para converter programas de máquinas em programas de robôs. O RoboDK suporta a conversão de programas de máquinas como APT, código G, ACL, TAP ou NCI em simulações de robôs e programas de robôs.

A usinagem robótica inclui diferentes aplicações de remoção de material, como fresamento, perfuração, chanfro e rebarbação, normalmente realizadas por máquinas-ferramentas automatizadas (CNC).

As dimensões da peça são definidas por meio de um software de projeto assistido por computador (CAD) e, em seguida, traduzidas em programas de fabricação (como o código G) por um software de fabricação assistida por computador (CAM). Os programas de fabricação podem então ser convertidos em programas de robôs usando as ferramentas de programação off-line do RoboDK.

Eixos adicionais, como uma plataforma giratória e/ou um trilho linear, podem ser criados e sincronizados com o robô para ampliar o espaço de trabalho.

Exemplos de usinagem de robôs

Esta seção mostra alguns exemplos que envolvem a usinagem de robôs. Alguns desses exemplos incluem o uso de um plug-in para mostrar como gerar o caminho da ferramenta CAM. No entanto, o senhor pode carregar qualquer caminho de ferramenta genérico de 5 eixos no RoboDK, como arquivos APT, NC ou código G.

Saiba mais sobre projetos de exemplo na seção de exemplos.

Visite a seção CAM Add-Ins da nossa documentação para obter mais exemplos de projetos de usinagem de robôs, como Mastercam, MecSoft/RhinoCAM, Inventor, FeatureCAM ou Fusion 360.

Introdução à usinagem com robôs

Este exemplo o ajudará a entender os fundamentos da usinagem de robôs no RoboDK e como converter um trabalho de usinagem de robôs de 3 eixos em uma simulação de usinagem de robôs e em um programa de robôs.

Saiba mais sobre esse exemplo de usinagem de robôs.

Introdução à usinagem com robô (5x)

Este exemplo o ajudará a entender como o senhor pode configurar as definições de usinagem do robô no RoboDK e como converter um trabalho de usinagem de robô de 5 eixos em uma simulação de usinagem de robô e em um programa de robô.

Esse exemplo também o ajudará a criar movimentos seguros de aproximação/retração entre diferentes operações de trabalho de usinagem.

Saiba mais sobre esse exemplo.

Usinagem de robôs com eixos externos

Este exemplo mostra como usar um robô KUKA com 3 eixos externos adicionais para usinagem de robôs. A célula inclui um braço de robô de 6 eixos, um trilho de um eixo e uma mesa giratória de 2 eixos.

Mais informações estão disponíveis na seção de exemplos do RhinoCAM. A integração entre o RhinoCAM e o RoboDK carrega automaticamente os arquivos APT do RhinoCAM para o RoboDK.

Corte a laser

Este exemplo mostra como usar um robô Yaskawa/Motoman em uma aplicação de corte a laser. O caminho da ferramenta de corte do robô é definido usando o RoboDK Add-in para o Autodesk Fusion.

Saiba mais sobre esse exemplo de corte a laser.

Usinagem de moldes de robôs

Este exemplo mostra como usar um robô Yaskawa/Motoman para usinagem de robôs e o Add-in para MastercamRoboDK . O RoboDK suporta o carregamento automático de arquivos NCI ou NC gerados pelo Mastercam.

Visite o :FCAMExample3x para obter mais informações.

Saiba mais sobre esse exemplo de usinagem de moldes.

Rebarbação por robô

Este exemplo mostra como usar um robô ABB para rebarbação. Esse exemplo inclui uma operação de coleta e colocação.

Saiba mais sobre esse exemplo de rebarbação de plástico.

Polimento

Este exemplo mostra como usar um robô KUKA para polimento.

Saiba mais sobre esse exemplo de rebarbação de plástico.


 

Configuração para usinagem

Esta seção mostra como preparar um projeto simples do RoboDK, off-line, para a usinagem do robô . A célula de usinagem do robô deve ter pelo menos um robô, uma ferramenta (EOAT) e um quadro de referência (também conhecido como sistema de coordenadas, referência de peça ou datum). Para obter mais informações sobre a construção de uma nova estação no RoboDK, consulte a seção de introdução.

Robot Machining - Imagem 1

As etapas a seguir mostram como preparar uma configuração de usinagem de robô com um robô KUKA KR210 e um fuso de fresagem Teknomotor (esse exemplo está disponível na biblioteca como Sample-New-Project.rdk).

1-Selecione um robô:

a.Selecione File (Arquivo)➔Robot Machining - Imagem 2 Open online library (Abrir biblioteca on-line).

b.Use os filtros para encontrar seu robô por marca, carga útil, ...      
Por exemplo, selecione o KUKA KR210 R2700 (210 kg de carga útil, 2,7 m de alcance).

c.Selecione Download e o robô deverá aparecer automaticamente na tela principal.

2-Selecione uma ferramenta:

a.Na mesma biblioteca on-line, selecione Reset para remover os filtros e filtrar por Type➔ Tool.

b.Selecione Download para carregar uma ferramenta Spindle, como o spindle ATC71-C-LN da Teknomotor.

c.O fuso será automaticamente acoplado ao robô.

d.Feche a janela Biblioteca on-line.

3-Add-in um quadro de referência:

a.Selecione a estrutura da base do robô (denominada KUKA KR210 R2700 Base).

b.Selecione Program➔Robot Machining - Imagem 3 Add Reference Frame. Um novo quadro de referência será adicionado à base do robô.

c.Clique duas vezes na referência e insira as coordenadas:  
XYZABC = [1500,1000,500,0,0,0] (mm-deg)

d.Renomeie o novo quadro de referência para Milling Reference, digitando um novo nome ou selecionando F2.

4-Add-in o objeto que o senhor usará para a usinagem do robô (opcional):

a.Selecione File➔Robot Machining - Imagem 4 Open

b.Selecione um objeto chamado Object Chess Rook.sld na biblioteca do RoboDK:   
C:/RoboDK/Library

c.Arraste e solte o objeto na Referência de Fresagem se ele não tiver sido colocado lá automaticamente (dentro da árvore de estações)

5-Clique duas vezes no robô para ver o painel do robô (opcional). O painel do robô exibe a ferramenta ativa e o quadro de referência ativo. Ao selecionar e atualizar a ferramenta e o quadro de referência, devemos ver as mesmas coordenadas visíveis no controlador do robô. Por padrão, o fuso do Teknomotor tem o TCP na raiz do suporte da ferramenta. A ferramenta (TCP) terá um determinado comprimento. Neste exemplo, atualizaremos o TCP para representar o comprimento do cortador da ferramenta:

a.Atualize a coordenada X da ferramenta (TCP) para 375 mm. O senhor verá o TCP se mover ao longo do eixo.

b.(opcional) o senhor também pode criar uma segunda ferramenta e definir um TCP relativo em relação à primeira, adicionando uma translação ao longo do eixo Z.

c.Feche a janela do painel do robô.

Robot Machining - Imagem 5

Projeto de usinagem de robôs

Siga estas etapas para configurar um novo projeto de usinagem de robô no RoboDK com um arquivo NC gerado por um software CAM (como o código G ou APT):

1.Selecione Utilities➔Robot Machining - Imagem 6 Robot Machining project (Ctrl+M).        
Uma nova janela será exibida, como mostra a imagem.

2.Selecione Select NC file (Selecionar arquivo NC) na seção Path input (Entrada de caminho)

3.Forneça um arquivo NC, como o arquivo de usinagem APT a seguir:        
C:/RoboDK/Library/Example-02.e-Robot Machining Chess Rook.apt

4.Renomeie o projeto de usinagem do robô para Machining Settings clicando com o botão direito do mouse no novo item da árvore e selecionando Rename (F2).

Robot Machining - Imagem 7

Selecione o robô, o quadro de referência e a ferramenta na seção superior esquerda do menu, conforme mostrado na imagem a seguir. O caminho da ferramenta deve ser exibido em verde com relação ao sistema de coordenadas correto.

Robot Machining - Imagem 8

O caminho da ferramenta de usinagem é exibido em verde e as normais do caminho são mostradas em vetores brancos. Desmarque Visible toolpath para ocultar o caminho da ferramenta.

O senhor pode selecionar Update para ver se consegue criar um programa de usinagem de robôs com as configurações padrão. Se o programa tiver sido gerado com sucesso, o senhor verá uma marca de seleção verde. O senhor pode então selecionar Simulate (Simular) ou clicar duas vezes no programa gerado para ver o início da simulação.

Robot Machining - Imagem 9

Se o senhor vir uma cruz vermelha com uma mensagem de aviso, isso significa que o programa de usinagem do robô não é viável. Talvez o senhor tenha que alterar algumas configurações, como a orientação da ferramenta, os parâmetros de otimização, o ponto inicial ou a localização da peça.

As seções a seguir fornecem mais informações sobre como personalizar as configurações de usinagem do robô.

Entrada de caminho

A entrada de caminho permite que o senhor selecione diferentes maneiras de fornecer um caminho de ferramenta.

Selecione o arquivo NC: Como um arquivo NC (obtido do software CAM), conforme descrito nesta seção.

Selecione a curva: Como uma ou mais curvas, conforme descrito na seção Curve Follow Project.
É possível importar curvas como uma lista de coordenadas no RoboDK.

Selecionar pontos: Um ou mais pontos, conforme descrito na seção Projeto de acompanhamento de pontos.       
É possível importar pontos como uma lista de coordenadas no RoboDK.

Objeto de impressão 3D: Como um objeto para impressão 3D. Um fatiador é usado para converter a geometria em um caminho de ferramenta

Robot Machining - Imagem 10

Eventos do programa

Selecione Program Events para exibir eventos especiais que precisam ser levados em conta ao gerar programas de robôs. Isso inclui acionar uma troca de ferramenta, definir a velocidade do fuso em RPM ou acionar programas específicos no início ou no fim do programa.

O senhor pode especificar um valor de arredondamento nos eventos do programa. Isso criará automaticamente uma instrução de arredondamento no início do programa e ajudará a tornar os programas de usinagem do robô mais suaves, evitando que o robô trema. Por exemplo, em um robô ABB, isso definirá o valor ZoneData em mm, em um robô Fanuc, isso definirá o valor CNT como uma porcentagem e, nos controladores Universal Robots, definirá o valor de mistura em mm.

Se o senhor estiver usando arquivos G-code ou NCI, os códigos M personalizados serão acionados por padrão como chamadas de função para M_RunCode (o código M é passado como parâmetro). O senhor pode remover as chamadas M personalizadas excluindo a chamada para M_RunCode.

Robot Machining - Imagem 11

Mova o cursor do mouse sobre o campo correspondente para obter mais informações sobre como personalizar cada seção.

Por exemplo, ao alterar a ferramenta, o senhor pode usar o valor %1 para representar a ID da ferramenta fornecida pelo software CAM. Se o senhor preferir acionar funções estáticas em vez de passar argumentos, pode substituir SetTool(%1) por SetTool%1. Ao usar a ferramenta 2, isso geraria SetTool2 em vez de SetTool(2).

Approach/Retract

O senhor pode personalizar os movimentos de aproximação e retração no canto superior direito do menu de usinagem do robô. Por padrão, o RoboDK adiciona movimentos de aproximação e retração de 100 mm ao longo da normal.

Selecione Add-in para adicionar um movimento de retração adicional. O caminho verde será atualizado de acordo. É possível selecionar entre mover-se ao longo de um eixo específico, fornecer coordenadas, ter uma aproximação em arco, etc. O senhor também pode combinar vários movimentos de aproximação/retração selecionando o botão Add.

Robot Machining - Imagem 12

Selecione Remove (Remover) para remover um movimento específico de aproximação ou retração.

Caminho para o deslocamento da ferramenta

O desvio do caminho para a ferramenta permite alterar a orientação preferencial da ferramenta ao longo do caminho da ferramenta. Essa opção é usada principalmente para girar a ferramenta em torno do eixo Z do TCP. Isso permite lidar com o 6º sexto grau de liberdade em torno do eixo da ferramenta. São oferecidas várias opções, dependendo do aplicativo e de seus requisitos. Por exemplo, o senhor pode optar por minimizar a orientação da ferramenta ou seguir a orientação da ferramenta ao longo do caminho.

Como um robô de 6 eixos é usado para seguir um programa de fabricação CNC de 3 ou 5 eixos, temos um grau adicional de liberdade a ser definido. Esse grau de liberdade geralmente é a rotação em torno do eixo Z do TCP. Esse grau de liberdade adicional é especialmente útil para evitar singularidades, limites de juntas, colisões ou problemas de acessibilidade.

Robot Machining - Imagem 13

Por padrão, o caminho para o deslocamento da ferramenta exibe uma transformação rotz(0). Isso significa que o senhor pode adicionar uma rotação adicional em torno do eixo Z da ferramenta. Esse valor pode ser modificado para estabelecer a orientação preferencial da ferramenta, modificando a orientação em torno do eixo Z do TCP ou em combinação com outros eixos. A orientação preferencial é a orientação que o robô tentará manter ao seguir o caminho da ferramenta.

Robot Machining - Imagem 14

Por padrão, o RoboDK usa o algoritmo de mudança mínima de orientação da ferramenta. Isso significa que a orientação da ferramenta é mantida o mais constante possível ao longo do percurso da ferramenta. Em geral, essa opção é adequada para operações de fresamento, pois minimiza os movimentos das juntas do robô. Como alternativa, outros algoritmos/métodos estão disponíveis, como a orientação da ferramenta seguindo o caminho da ferramenta (útil para aplicações de corte, em que a lâmina precisa permanecer tangente ao longo do caminho), ou o robô segurando o objeto se o caminho da ferramenta precisar ser seguido anexado à ferramenta do robô (por exemplo, para aplicações de distribuição ou polimento, também conhecidas como configurações de TCP remoto).

Parâmetros de otimização

Dada uma orientação preferencial da ferramenta, o robô pode ter certa liberdade para girar em torno do eixo Z da ferramenta. Isso permite que o robô resolva o programa evitando as singularidades do robô, os limites das juntas e garantindo que todos os pontos sejam alcançáveis. Por padrão, o RoboDK permite que a ferramenta gire até +/-180 graus em torno do eixo TCP em incrementos de 20 graus.

Recomenda-se restringir essa rotação dependendo do aplicativo. Por exemplo, é possível inserir +/-90 graus para restringir a rotação permitida pela metade. Diminuir esse parâmetro também reduzirá o tempo de processamento para obter o programa.

Se alguns pontos do caminho não puderem ser alcançados, é recomendável girar o quadro de referência ou ser mais permissivo com a rotação Z da ferramenta. O quadro de referência pode ser movido mantendo-se pressionada a tecla Alt e arrastando o sistema de coordenadas para melhor ajustar a peça dentro do espaço de trabalho do robô.

Robot Machining - Imagem 15

Configuração preferida

O RoboDK seleciona automaticamente a configuração inicial que está mais próxima das articulações iniciais preferidas (Preferred joints for the start point). A partir desse ponto, o robô seguirá movimentos lineares, de modo que a configuração do robô não será alterada.

Um menu suspenso exibirá todas as soluções possíveis para iniciar o programa. Se necessário, selecione a configuração preferida da junta do robô e selecione Update para recalcular o programa.

Robot Machining - Imagem 16

Programa de atualização

Selecione Update para gerar o programa do robô de acordo com as configurações fornecidas. Uma marca de seleção verde será exibida se o programa puder ser criado com sucesso. Em seguida, o senhor verá um novo programa na estação chamado Machining (Usinagem).

Robot Machining - Imagem 17

Clique duas vezes no programaRobot Machining - Imagem 18 gerado ou selecione Simulate para iniciar a simulação de usinagem do robô.

Clique com o botão direito do mouse no programa e selecione Generate robot program (F6) para gerar o programa do robô. Para obter mais informações sobre a geração de programas, consulte a seção Programa.

Robot Machining - Imagem 19


Corte por robô

O senhor pode definir o algoritmo para manter a orientação da ferramenta constante ao longo do caminho. Esse comportamento pode ser útil para aplicações de corte ou soldagem, por exemplo.

Selecione A orientação da ferramenta segue o caminho no menu suspenso Selecionar algoritmo para recalcular o caminho da ferramenta preferido. As outras configurações são as mesmas de um projeto de usinagem com uma orientação de ferramenta constante.

Robot Machining - Imagem 20

O robô segura o objeto

É possível programar um robô quando ele segura o objeto/caminho de ferramenta com a ferramenta com o robô enquanto a operação de fabricação ocorre. Isso é útil para aplicações de distribuição de cola ou polimento, por exemplo. Esse tipo de programação de robôs também é conhecido como TCP remoto.

Selecione o objeto Robot holds no menu suspenso Select algorithm (Selecionar algoritmo) para posicionar corretamente o caminho da ferramenta na referência TCP. As outras configurações são as mesmas de um projeto de usinagem com uma orientação constante da ferramenta.

Robot Machining - Imagem 21

Mais informações estão disponíveis na seção Add-in dopara o Autodesk Fusion RoboDK .

Projeto Curve Follow

O senhor pode fazer com que um robô siga curvas no espaço 3D usando um Projeto de Seguimento de Curvas (CFP). As curvas no RoboDK podem ser selecionadas a partir das bordas do objeto ou importadas como uma lista de pontos em arquivos CSV. Um projeto de acompanhamento de curvas é útil para algumas operações de fabricação, como soldagem, rebarbação, polimento ou pintura por robôs, por exemplo.

Para trabalhar com um CFP, siga este procedimento:

1.Clique em Utilities➔ Curve Follow Project para abrir as configurações de acompanhamento de curva. Essas configurações são as mesmas de um projeto de usinagem de robô, a única diferença é que a entrada Path é predefinida como Select curve (Selecionar curva).

2.Clique no botão Select curve (Selecionar curva) para selecionar a(s) curva(s) na tela.

Robot Machining - Imagem 22

3.Selecione as curvas com um clique esquerdo do mouse. Selecionar a mesma curva duas vezes trocará a direção do movimento. Além disso, clicar com o botão direito do mouse em uma curva previamente selecionada permite trocar o sentido do movimento ou desmarcar uma curva previamente selecionada.

Robot Machining - Imagem 23

Clique com o botão direito do mouse na janela 3D e selecione Done (Concluído) ou pressione a tecla Esc para voltar ao menu de configurações. O caminho verde exibirá o movimento do robô em relação ao objeto.

4.O senhor pode selecionar Update para ver se consegue criar um programa de robô com as configurações padrão. Se o programa tiver sido gerado com sucesso, o senhor verá uma marca de seleção verde. O senhor pode então selecionar Simulate (Simular) ou clicar duas vezes no programa gerado para ver o início da simulação.

Opções adicionais estão disponíveis no canto superior direito das configurações, como a velocidade da ferramenta e se os movimentos de aproximação/retração devem ser aplicados a cada curva. As configurações padrão são mostradas na imagem a seguir:

Robot Machining - Imagem 24

O programa pode ser ainda mais personalizado e otimizado usando os mesmos recursos mostrados na seção de usinagem do robô.

Extrair recursos de objetos 3D

As curvas podem ser extraídas das características dos objetos 3D importados para o RoboDK, selecionando Tools➔ Create Curves.

Robot Machining - Imagem 25

Um painel aparecerá no lado esquerdo da janela do RoboDK. O senhor poderá extrair curvas enquanto esse painel estiver ativo e a opção "Auto extract curves" estiver ativada.

Robot Machining - Imagem 26

O senhor pode passar o cursor sobre o objeto 3D do qual deseja extrair a curva. Uma linha azul fina e clara aparecerá para representar a curva. As setas brancas em diferentes pontos representam a normal da curva, ou seja, a direção da qual a ferramenta se aproximará.

Robot Machining - Imagem 27

É possível alterar a orientação das normais da curva (direção de aproximação) deslocando levemente o mouse na vertical ou na horizontal. O tamanho padrão do passo é de 15 graus e é controlado pela opção "Tilt step (deg)" (Passo de inclinação (graus)) no painel Create Curve (Criar curva).

Quando tiver identificado a curva correta, clique nela sem deslocar o mouse. Repita o procedimento até selecionar todas as curvas que deseja usar em um projeto Curve Follow.

Robot Machining - Imagem 28

O RoboDK inclui diferentes ferramentas para ajudar o senhor a modificar as curvas mesmo depois de extraí-las. Se quiser simplesmente modificar a normal, o senhor pode fazer isso acessando Tools➔ Modify Curves. Esse recurso permitirá que o senhor altere as normais de qualquer curva criada anteriormente.

Curvas de importação

O RoboDK pode criar ou obter curvas de uma variedade de fontes. A lista a seguir mostra exemplos de ferramentas que criarão uma curva que pode ser usada em um projeto Curve Follow:

a.Extrair características de um objeto 3D importado para o RoboDK.

b.Importar um CSV arquivo contendo a curva.

c.Importar uma curva usando um plug-in CAD/CAM.

d.Importar curvas de um arquivo SVG ou DXF.

e.Usando o aplicativo Surface Pattern Generator

f.Uso da API do RoboDK para integração com aplicativos externos.

g.Usando uma sonda manual, como o RoboDK TwinTrack

Importar um arquivo CSV

As curvas podem ser importadas no RoboDK a partir de um arquivo CSV ou de um arquivo de texto, selecionando Utilities➔ Import Curve. Um novo item aparecerá na estação mostrando a curva como um objeto.

Robot Machining - Imagem 29

Robot Machining - Imagem 30

O arquivo pode ser um arquivo de texto com as coordenadas 3D de cada ponto da curva. Opcionalmente, a orientação do eixo Z da ferramenta pode ser fornecida como um vetor i,j,k. Todas as coordenadas devem ser relativas ao sistema de coordenadas da peça.

Opcionalmente, as curvas existentes de um objeto podem ser exportadas como um arquivo CSV (clique com o botão direito do mouse em uma curva e, em seguida, selecione Exportar curva), modificadas e reimportadas no RoboDK.

Robot Machining - Imagem 31

Mais informações e exemplos sobre como personalizar a importação de arquivos CSV ou TXT como curvas ou pontos estão disponíveis na seção de exemplos da API do RoboDK.

Projeto Point Follow

O senhor pode simular facilmente um robô para seguir pontos com o RoboDK. Os pontos no RoboDK podem ser extraídos de objetos, curvas ou importados como uma lista de pontos em arquivos CSV. Essa opção é útil para aplicações de soldagem por pontos ou perfuração, por exemplo. O vídeo a seguir mostra um exemplo de configuração de um aplicativo de solda por pontos: assista ao vídeo.

Selecione Utilities➔ Point Follow Project para abrir as configurações de seguimento de ponto. Essas configurações são as mesmas de um projeto de usinagem de robô, a única diferença é que a entrada de caminho é predefinida como Select points (Selecionar pontos).

Robot Machining - Imagem 32

Selecione Select points (Selecionar pontos) para selecionar o(s) ponto(s) na tela.

Robot Machining - Imagem 33

Selecione os pontos com um clique esquerdo do mouse. Selecionar o mesmo ponto duas vezes mudará a direção da aproximação. Além disso, clicar com o botão direito do mouse em um ponto permite selecionar os pontos seguintes, selecionando Select next (Selecionar próximo).

Robot Machining - Imagem 34

Clique com o botão direito do mouse na tela e selecione Done (Concluído) ou pressione a tecla Esc para voltar ao menu de configurações. O caminho verde exibirá o movimento do robô em relação ao objeto.

Algumas opções adicionais estão disponíveis no canto superior direito das configurações, como a velocidade da ferramenta e a distância de aproximação. As configurações padrão são mostradas na próxima imagem:

Robot Machining - Imagem 35

Robot Machining - Imagem 36

Pontos de importação

Uma lista de pontos pode ser importada de um arquivo de texto ou de um arquivo CSV, selecionando Utilities➔ Import Points. Um novo item aparecerá na estação mostrando os pontos como um objeto.

Robot Machining - Imagem 37

Robot Machining - Imagem 38

O arquivo pode ser um arquivo de texto com as coordenadas 3D de cada ponto da curva. Opcionalmente, a orientação do eixo Z da ferramenta pode ser fornecida como um vetor i,j,k.

Opcionalmente, as curvas existentes de um objeto podem ser convertidas em pontos clicando com o botão direito do mouse em uma curva e, em seguida, selecionando Extract curve points (Extrair pontos de curva).

Robot Machining - Imagem 39


Projeto de impressão 3D de robôs

A manufatura aditiva (ou impressão 3D) é o processo de fabricação de objetos sólidos tridimensionais a partir de um arquivo digital. Os braços de robôs industriais podem ser usados como uma impressora 3D de 3 ou 5 eixos com o RoboDK. O vídeo a seguir mostra uma visão geral de como configurar a impressão 3D com o RoboDK off-line: assista ao vídeo.

A impressão 3D com robôs é possível de uma das seguintes maneiras:

Converta diretamente programas de código G (arquivo NC) em programas de robô com o RoboDK, como mostrado no projeto Robot Machining. A taxa de fluxo de material (diretriz E da extrusora) é calculada corretamente para cada movimento e pode ser integrada ao programa gerado como um evento de programa. O código G é um tipo de arquivo NC suportado pelo RoboDK e também é um formato suportado por muitas impressoras 3D. A maioria dos softwares de fatiamento pode gerar o código G a partir de um arquivo STL.

Selecione Utilities➔ 3D Print Project para abrir as configurações de impressão 3D.

Robot Machining - Imagem 40

Robot Machining - Imagem 41

Robot Machining - Imagem 42

Por padrão, o RoboDK traduz a diretiva E como uma chamada de programa para um programa chamado Extruder e passa o valor E como um parâmetro. Selecione Program Events para alterar esse comportamento.

Robot Machining - Imagem 43

O valor da extrusora (E) representa a quantidade de material que precisa ser extrudado antes de cada movimento. Esse valor pode ser usado para acionar a alimentação da extrusora do robô, levando em conta a velocidade do robô e a distância entre os pontos.

Como alternativa, é possível calcular a alimentação da extrusora usando um pós-processador e gerar o código apropriado de acordo. A seção a seguir apresenta um exemplo.

Pós-processador para impressão 3D de robôs

Esta seção mostra como modificar um pós-processador de robô para calcular a velocidade da extrusora antes de executar uma instrução de movimento para impressão 3D. Como alternativa, essas operações podem ser feitas no controlador do robô com a chamada do programa Extruder (comando padrão para acionar a extrusora).

Ao personalizar um pós-processador de robô, é possível facilitar a integração de uma extrusora para impressão 3D antes de enviar o programa para o robô. Para realizar essa tarefa, precisamos fazer alguns cálculos e gerar um código personalizado quando o programa for gerado no pós-processador do robô.

A primeira etapa é interceptar as chamadas da extrusora e ler os novos valores da extrusora (valores E) dentro da seção RunCode no pós-processador. A seção a seguir processa todas as chamadas de programa geradas para um programa:

    def RunCode(self, code, is_function_call= False):

        if is_function_call:

            Se code.startswith("Extruder("):

                # Interceptar o comando da extrusora.

                # se a chamada do programa for Extruder(123.56)

                # extraímos o número como uma string

                # e convertê-lo em um número

                self.PRINT_E_NEW= float(code[9:-1])

                # Pular a geração da chamada do programa

                retorno

            E mais:

                self.addline(code + "()")

        E mais:

            # Código do programa de saída

            self.addline(code)

O valor da extrusora (length/E) é salvo como a variável PRINT_E_NEW no pós-processador do robô.

Precisamos acionar uma chamada de função chamada new_move a cada nova instrução de movimento linear. Podemos adicionar essa chamada no início do comando MoveL:

    def MoveL(self, pose, joints, conf_RLF= None):

        """Add-in a linear movement"""

        # Manuseio da impressão 3D Integração da extrusora

        self.new_move(pose)    

       ...

Também devemos adicionar as seguintes variáveis no cabeçalho do pós-processador para calcular os incrementos da extrusora:

 

    # Parâmetros de configuração da extrusora de impressão 3D:

    PRINT_E_AO= 5 # ID da saída analógica para comandar o fluxo da extrusora

    PRINT_SPEED_2_SIGNAL= 0.10 # Proporção para converter velocidade/fluxo em um sinal de saída analógico

    PRINT_FLOW_MAX_SIGNAL= 24 # Sinal máximo a ser fornecido à extrusora

    PRINT_ACCEL_MMSS= -1 # Aceleração, -1 pressupõe velocidade constante se usarmos arredondamento/mistura

  

    # Parâmetros internos de impressão 3D

    PRINT_POSE_LAST= None # Última pose impressa

    PRINT_E_LAST= 0 # Comprimento da última extrusora

    PRINT_E_NEW= None # Novo comprimento da extrusora

    PRINT_LAST_SIGNAL= None # Último sinal da extrusora

Por fim, precisamos definir um novo procedimento que gerará comandos apropriados de alimentação da extrusora de acordo com a distância entre os movimentos, a velocidade e a aceleração do robô. Isso pressupõe que o avanço da extrusora seja acionado por uma saída analógica específica ou por uma chamada de programa personalizada.

Precisamos adicionar o seguinte código antes da definição do programa def MoveL.

 

    def calculate_time(self, distance, Vmax, Amax=-1):

        """Calcule o tempo para percorrer uma distância com a aceleração máxima e a velocidade máxima V"""

        se Amax< 0:

            # Assumir velocidade constante (o parâmetro de suavização/arredondamento apropriado deve ser definido)

            Ttot= distância/Vmax

        E mais:

            # Suponha que aceleramos e desaceleramos

            tacc= Vmax/Amax;

            Xacc= 0,5*Amax*tacc*tacc;

            Se a distância<= 2*Xacc:

                # Vmax não é atingido

                tacc= sqrt(distance/Amax)

                Ttot= tacc*2

            E mais:

                # Vmax é atingido

                Xvmax= distância - 2*Xacc

                Tvmax= Xvmax/Vmax

                Ttot= 2*tacc+ Tvmax

        retornar Ttot

           

    def new_move(self, new_pose):                       

        """Implementar a ação na extrusora para impressão 3D, se aplicável"""

        se self.PRINT_E_NEW for None ou new_pose for None:

            retorno

           

        # Pule o primeiro movimento e lembre-se da pose

        se self.PRINT_POSE_LAST for None:

            self.PRINT_POSE_LAST= new_pose

            retorno         

 

        # Calcular o aumento de material para o próximo movimento

        add_material= self.PRINT_E_NEW - self.PRINT_E_LAST

        self.PRINT_E_LAST= self.PRINT_E_NEW

       

        # Calcular a velocidade do robô e o sinal da extrusora

        extruder_signal= 0

        se add_material> 0:

            distance_mm= norm(subs3(self.PRINT_POSE_LAST.Pos(), new_pose.Pos()))

            # Calcular o tempo de movimento em segundos

            time_s= self.calculate_time(distance_mm, self.SPEED_MMS, self.PRINT_ACCEL_MMSS)

           

            # Evite a divisão por 0

            se time_s> 0:

                # Isso pode parecer redundante, mas permite que o senhor leve em conta as acelerações e podemos aplicar pequenos ajustes de velocidade

                speed_mms= distance_mm / time_s

               

                # Calcular a velocidade da extrusora em RPM*Ratio (PRINT_SPEED_2_SIGNAL)

                extruder_signal= speed_mms * self.PRINT_SPEED_2_SIGNAL

       

        # Verifique se o sinal está dentro dos valores aceitos

        extruder_signal= max(0,min(self.PRINT_FLOW_MAX_SIGNAL, extruder_signal))

       

        # Atualizar a velocidade da extrusora quando necessário

        se self.PRINT_LAST_SIGNAL for None ou abs(extruder_signal - self.PRINT_LAST_SIGNAL)> 1e-6:

            self.PRINT_LAST_SIGNAL= extruder_signal

            # Use a função setDO integrada para definir uma saída analógica

            self.setDO(self.PRINT_E_AO, "%.3f" % extruder_signal)

            # Como alternativa, provoque uma chamada de programa e cuide da integração com o controlador do robô

            #self.addline('ExtruderSpeed(%.3f)' % extruder_signal)

       

        # Lembre-se da última pose

        self.PRINT_POSE_LAST= new_pose