Serviços 
O conteúdo desse portal pode ser acessível em Libras usando o VLibras
PET Sistemas de Informação
Programa de Educação Tutorial

Programação por trás da Impressão 3D

Saudações, leitores! Nesta edição do PET Redação, mergulharemos em um tema empolgante e cada vez mais presente: a Impressão 3D - Revolucionando a Manufatura Moderna. Vamos explorar como a programação está desempenhando um papel crucial na evolução dessa nova tecnologia e como essa combinação está transformando a forma como produzimos objetos e componentes. Acompanhe-nos nessa quente jornada de precisão e desenvolvimento.

 

Como se pode imprimir um objeto 3D?

Primeiramente, vamos explicar que existem vários modos de impressão 3D e por isso, cada um possui um processo único de confecção do objeto 3D. Dessa forma, pode-se citar quais os tipos de impressão 3D mais comuns do mercado:

Impressora 3D Ender 3 V2 Creality

 

 

(Foto: Divulgação/MakeX) — Foto: TechTudo

Impressora industrial SLS600 da ProtoFab.

Além disso, pode-se inclusive ter:

Direitos autorais: https://infosolda.com.br/1334-soldagem-por-feixe-de-eletrons/

 

Ademais, apesar das distinções entre os métodos de impressão, todos seguem um processo semelhante. Inicialmente, passam por um modelador 3D, que é o software responsável por criar o próprio modelo tridimensional. Um dos mais reconhecidos é o Blender, um programa de modelagem 3D de código aberto. Em seguida, utilizam um software específico para cada tipo de impressora. No caso da impressão por filamento, o modelo 3D é processado por um programa de fatiamento (slicing), que divide o modelo em camadas finas e gera os comandos de movimentação necessários para a impressão.

 

Como funciona um software de modelagem 3D?

Um software de modelagem 3D oferece aos usuários as ferramentas necessárias para criar modelos tridimensionais. Isso inclui uma interface gráfica, opções de desenho e edição, manipulação de objetos, capacidade de importar e exportar diferentes formatos de arquivo, entre outras funcionalidades essenciais. Esses elementos formam o cerne do software, embora alguns modeladores também possam oferecer funcionalidades adicionais. No contexto desse cenário, surge a pergunta: como isso é realizado a nível de software?

Para representar o objeto 3D em questão, é utilizado um conjunto de malhas (meshes), composto por vértices, arestas e faces interconectadas, onde cada vértice possui suas coordenadas tridimensionais.

#include <stdio.h>
// Definindo uma estrutura para um vértice
typedef struct {
   float x, y, z;
} Vertex;
// Definindo uma estrutura para uma face (triângulo)
typedef struct {
   Vertex vertices[3];
} Face;
// Definindo uma estrutura para uma malha
typedef struct {
   Face* faces;
   int num_faces;
} Mesh;
int main() {
   // Criando um array de vértices
   Vertex vertices[5] = {
   // Vértices da base (quadrado)
      {0.0, 0.0, 0.0},
      {1.0, 0.0, 0.0},
      {1.0, 1.0, 0.0},
      {0.0, 1.0, 0.0},
      // Vértice no topo
      {0.5, 0.5, 1.0},
   };
// Criando um array de faces (pirâmide)
   Face faces[5] = 
      {{vertices[0], vertices[1], vertices[4]}}, // Lado 1
      {{vertices[1], vertices[2], vertices[4]}}, // Lado 2
      {{vertices[2], vertices[3], vertices[4]}}, // Lado 3
      {{vertices[3], vertices[0], vertices[4]}}, // Lado 4
      {{vertices[0], vertices[1], vertices[2], vertices[3]}} // Base
   };
   // Criando uma malha
   Mesh myMesh = {faces, sizeof(faces)/sizeof(faces[0])};
   return 0;
}

Neste exemplo em C, nota-se a presença de vértices e faces. Os vértices são definidos por coordenadas x, y e z, enquanto as faces consistem em um conjunto de vértices que a compõem. Assim, é possível representar um objeto 3D de forma simples. No entanto, é importante ressaltar que a representação de uma malha em um software de modelagem 3D é muito mais complexa, incluindo uma variedade de informações como texturas.

 

Como funciona um fatiador (slicer) em contexto de FDM?

Ele converte desenhos tridimensionais, geralmente em formato STL ou OBJ, em códigos G que fornecem à impressora instruções precisas sobre movimentação, temperatura do bico e da mesa de impressão. Em resumo, o slicer transforma o modelo 3D do CAD e o "divide" em camadas - semelhante a um conjunto de imagens 2D cortadas que são empilhadas, criando um objeto 3D. O software realiza os cálculos necessários para determinar a altura de cada camada, bem como a quantidade de material necessária para imprimir a peça 3D. O arquivo é então convertido pelo fatiador 3D no formato GCODE, uma linguagem que a impressora compreende. Normalmente, os fatiadores oferecem ao usuário a opção de ajustar parâmetros de impressão, como velocidade, temperatura e posição da extrusora. Este processo é crucial para obter uma impressão 3D precisa e de alta qualidade.

Exemplo de fatiador: Ultimaker Cura

 

E o que é o Gcode?

O Gcode é uma linguagem de programação que instrui máquinas a executar ações específicas. Nesse contexto, foi desenvolvida para estabelecer um padrão na comunicação com sistemas de Controle Numérico Computadorizado (CNC), frequentemente utilizados em máquinas com múltiplos eixos. Assim, o código G tem a capacidade de direcionar os movimentos de uma impressora 3D, com o objetivo de criar uma peça tridimensional refinada. Cada comando é composto pela letra G seguida de um número; por exemplo, o comando G1 movimenta a extrusora em uma linha reta, enquanto o código G28 retorna a extrusora à posição inicial. Além disso, a linguagem pode incluir códigos M, que são empregados para controlar funções adicionais da impressora, como ativar ou desativar o aquecimento da cama de impressão.

 

G90 ; Definir para o posicionamento absoluto

G21 ; Definir unidades para milímetros

G28 ; Home todas as eixos

G92 E0 ; Zero o extrusor

G92 E0 ; Zero o extrusor novamente

 

Desenhar um círculo com raio de 20mm

G1 X0 Y20 F3000 ; Mover para o ponto de partida do círculo

G92 E0 ; Zero o extrusor

G1 F140 E6 ; Prime o extrusor

 

Desenhar o círculo usando movimentos do arco

G2 X0 Y-20 I20 J0 E6.2832 ; Desenhar a metade superior do círculo

G2 X0 Y20 I-20 J0 E6.2832 ; Desenhar a metade inferior do círculo

 

G1 F14000 ; Aumentar a velocidade de deslocamento

G92 E0 ; Zero o extrusor

G1 E-1.5 ; Retrair o filamento

 

Aqui está um exemplo de como o Gcode é utilizado para fazer um círculo em uma impressora 3D. Pode-se notar outros parâmetros que não foi visto anteriormente:

 

Conclusão

Dessa forma, demonstrou-se o funcionamento do universo da impressão 3D, desde a estrutura de dados de um modelador 3D até os detalhes da linguagem compreendida por uma impressora 3D para criar objetos. Além disso, foi traçado o percurso de produção de uma peça 3D, perpassando pelo modelador 3D até um software especializado para cada tipo de impressora 3D. Portanto, a Impressão 3D, impulsionada pela convergência entre programação e tecnologia de impressão, representa uma revolução na manufatura moderna.

 

Referências:

https://3dlab.com.br/fatiadores-3d/ 

https://www.sethi.com.br/blog/o-que-e-um-fatiador/ 

https://3dlab.com.br/cura-3d-ultimaker/ 

Centros de usinagem: o que é, tipos e diferença do CNC (kalatec.com.br)

blender.org - Home of the Blender project - Free and Open 3D Creation Software

Software G-Code para programação flexível | Polaris Motion (pmdi.com)

 

Autor: Leonardo Da Veiga