Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

PROJETO DE UM SIMULADOR DE MÁQUINAS CNC EM ..., Slides de Máquinas

Faculdade de Tecnologia. 1. Simulador CNC. 2.Torno CNC. 3. Fresadora CNC. 4.Impressora 3D. I. Mecatrônica/ ...

Tipologia: Slides

2022

Compartilhado em 07/11/2022

Lula_85
Lula_85 🇧🇷

4.5

(113)

224 documentos

1 / 53

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
TRABALHO DE GRADUAÇÃO
PROJETO DE UM SIMULADOR DE QUINAS
CNC EM PLATAFORMA WEB
Filipe Alves Caixeta
Brasília, novembro de 2016
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35

Pré-visualização parcial do texto

Baixe PROJETO DE UM SIMULADOR DE MÁQUINAS CNC EM ... e outras Slides em PDF para Máquinas, somente na Docsity!

TRABALHO DE GRADUAÇÃO

PROJETO DE UM SIMULADOR DE MÁQUINAS

CNC EM PLATAFORMA WEB

Filipe Alves Caixeta

Brasília, novembro de 2016

UNIVERSIDADE DE BRASILIA

Faculdade de Tecnologia

Curso de Graduação em Engenharia de Controle e Automação

TRABALHO DE GRADUAÇÃO

PROJETO DE UM SIMULADOR DE MÁQUINAS

CNC EM PLATAFORMA WEB

Filipe Alves Caixeta

Relatório submetido como requisito parcial de obtenção

de grau de Engenheiro de Controle e Automação

Banca Examinadora

Professor Alexandre Zaghetto, CIC/UnB Orientador

Professora Aida Alves Fadel, ENM/UnB Examinador interno

Mestre Miguel Eduardo Gutierrez, ENM/UnB Examinador interno

Brasília, novembro de 2016

Dedicatória

Dedico este trabalho a minha familia e aos meus amigos.

Filipe Alves Caixeta

Agradecimentos

Agradeço a todos os meus colegas do curso de engenharia mecatrônica, principalmente a turma 27 que sempre esteve unida nos momentos de procrastinação e nos momentos de virar a noite estudando. As amizades que z durante esse tempo zeram com que o tempo passasse de forma agradável e divertida. Agradeço a minha família que sempre me deu suporte para continuar e chegar onde cheguei hoje. Me ensinaram a não andar pelas circunstancias e não desistir dos meus sonhos. Agradeço a todos os amigos que colaboraram com meu TG de várias formas. Jesse, An- drezinho, Primo, Rafael, Boson, Victor Matheus, Caio, Rodrigo, Cris, Guilherme e Redy foram alguns dos que ajudaram dando sugestões, utilizando o simulador ou contribuindo com imagens e códigos de exemplo utilizados neste trabalho. Agradeço a Geordana que me deu carona várias vezes até o CIC, me ajudou com a revisão do TG e também pela companhia. Agradeço tambêm ao meu orientador Professor Dr. Alexandre Zaghetto que acreditou e viu potencial no meu projeto desde o início.

Filipe Alves Caixeta

SUMÁRIO

LISTA DE TABELAS

2.1 Comparação entre alguns simuladores de código-G. ............................................ 11

4.1 Sistema Operacionais mais utilizados para acessar o simulador. ............................ 25

v

LISTA DE SÍMBOLOS

Siglas

API Interface de Programação de Aplicações - Application Programming Interface CAD Desenho assistido por computador - Computer Aided Design CAM Manufatura assistida por computador - Computer Aided Manufacturing CN Comando numérico - Numeric Control CNC Comando numérico computadorizado - Computer Numeric Control CPU Unidade de processamento central - Central Processing Unit GPU Unidade de Processamento Gráco - Graphics Processing Unit

vi

Figura 1.2: Fresadora vertical Central Machinery.[8]

Na década de 50, com o surgimento dos computadores, o torno e a fresadora passaram a permitir procedimentos automatizados através da programação dos seus movimentos axiais. Inicialmente, as máquinas trabalhavam com cartões perfurados. As máquinas que trabalham com os comandos computadorizados passaram a se chamar máquinas CNC (Comando Numérico Computadorizado). Atualmente, a tecnologia tem se desenvolvido ao ponto de existirem programas que transformam um desenho em comandos de usinagem para tornos e fresadoras CNC programáveis. Estes progra- mas são chamados CAM (Manufatura Assistida por Computador). A linguagem de comandos mais conhecida e adotada para as máquinas CNC é chamada de código-G com revisão nal aprovada em fevereiro de 1980 como RS274D [9].

Além do torno e da fresadora, outras máquinas também passaram a utilizar o comando numérico computadorizado. Algumas delas são: a impressora 3D, a cortadora a laser, as máquinas para dobrar chapas ou tubos, as máquinas para usinar placas de circuito elétrico, etc. Apesar das impressoras 3D terem sido inventadas nos anos 80 como tecnologia de prototipagem rápida, somente em 2009, as primeiras impressoras começaram a ser comercializadas. Atualmente, as impressoras 3D têm se popularizado rapidamente. Assim como a fresadora, as impressoras 3D trabalham de maneira muito similar e também com código-G. Por ser algo muito recente, cada fabricante tem adotado variações diferentes do código-G [10]. Um exemplo de impressora 3D pode ser visto na Figura1.

Figura 1.3: Impressora 3D MakerBot Replicator.[1]

1.2 Denição do problema

Atualmente, o software CNC Simulator é uma das poucas formas viáveis para alunos estuda- rem a programação de máquinas CNC. A maioria dos simuladores de máquinas CNC são softwares CAD/CAM ou CAM e já geram o código-G automaticamente através de uma série de especica- ções denidas pelo usuário. Para um aluno que deseja aprender a trabalhar com máquinas CNC, é importante trabalhar inicialmente fora de um software CAM para entender a sintaxe e a estrutura da linguagem de código-G para, em seguida, entender como um software CAM funciona. Infe- lizmente, a maior parte dos simuladores são para a plataforma Microsoft Windows, o que obriga usuários de outros sistemas operacionais a utilizarem máquinas virtuais ou instalarem o Windows para realizarem simulações de operações em máquinas CNC. Neste trabalho, será proposto um simulador web didático de máquinas CNC multiplataforma chamado de CNC Web Simulator.

1.3 Objetivos do projeto

O objetivo deste trabalho é projetar e implementar um simulador CNC que possa ser utilizado para ensino de código-G e máquinas CNC em uma plataforma que funcione não somente em ambiente Windows, mas em qualquer sistema operacional, incluindo tablets e smartphones. Por ser inviável implementar um simulador para todos os tipos de máquinas CNC, este trabalho só implementa a simulação de tornos, fresadoras e impressoras 3D. É também importante que o simulador seja didático e de fácil uso para estudantes.

1.4 Descrição do documento

Este trabalho é dividido em cinco capítulos, sendo o primeiro deles esta Introdução. O Capítulo 2 apresenta a fundamentação teórica do trabalho, passando pela teoria da computação gráca e do funcionamento tanto de máquinas, quanto de simuladores CNC. O Capítulo 3 apresenta a interface gráca do simulador criado, o resumo do funcionamento e a organização do código. No Capítulo 4, é possível ver algumas imagens feitas no simulador implementado, comparações com outros simuladores e uma análise dos resultados. Por m, o Capítulo 5 apresenta as conclusões acerca do trabalho e sugestões para trabalhos futuros. Em anexo, há um manual de usuário explicando o necessário para utilizar o simulador.

Em geral, um programa gráco recebe as interações do usuário através dos periféricos e a CPU e a GPU trabalham em conjunto de forma que a CPU fornece as descrições de objetos e a GPU cria os pixeis que serão visualizados.

O pipeline de um sistema gráco padrão é chamado de pipeline gráco. A função dele é transformar modelos matemáticos em pixeis para serem visualizados pelo usuário. O pipeline gráco realiza operações em um conjunto de objetos, no qual cada objeto é composto por primitivas grácas. Cada primitiva contém um conjunto de vértices. A composição dessas primitivas formam a geometria dos objetos da cena. Cenas complexas, como cenários de jogos, contêm milhares ou até mesmo milhões de vértices [11].

Os principais estágios do pipeline gráco são:

  1. Processamento de vértices No primeiro estágio, os vértices são processados independentemente. As principais funções deste estágio são a transformação de coordenadas e o cálculo da cor de cada vértice. Matrizes de transformação são utilizadas para fazer concatenação de transformações que convertem a cena para o sistema de coordenadas da câmera, além de transformações para mudar escala, posição e rotação de objetos na cena.
  2. Cortes e construção de primitivas Neste estágio, cada objeto composto por um conjunto de vértices forma uma primitiva que pode ser denida por pontos, linhas ou polígonos. Depois da formação das primitivas, é criada uma caixa de corte 3D para que se elimine tudo que se encontra no exterior da caixa. Isso é importante para que os próximos estágios do pipeline só processem o que está no ângulo de visão da câmera.
  3. Rasterização Cada primitiva do estágio anterior precisa ser convertida em pixeis. Se a primitiva for um triângulo, é necessário que o interior do triângulo seja discretizado em vários fragmentos. Estes fragmentos são salvos em um buer chamado de frame buer. O resultado deste estágio são vários fragmentos que podem ou não tornar-se visíveis na forma de pixeis. Isso irá depender, por exemplo, de fatores como oclusão, transparência e outros.
  4. Processamento de fragmentos No estágio nal, os fragmentos sofrem transformações como mapas de textura, transformações de cores ou mistura de cores para criar efeitos translúcidos. No nal desse estágio, o frame buer é atualizado com os pixeis que serão visualizados pelo usuário.

O pipeline descrito acima é similar ao pipeline implementado pelas placas de vídeo modernas. Por muitos anos, o pipeline foi xo, realizando operações básicas. Atualmente, houveram grandes avanços e parte do pipeline pode ser modicado e programado. As placas de vídeo em produção atualmente permitem a programação dos estágios de processamento de vértices e processamento de fragmentos. Algumas mais recentes dão a possibilidade de programação de outros estágios do

pipeline e até mesmo computação de propósito geral, utilizando a GPU não só para o processamento gráco, mas também para aplicações altamente paralelas que se beneciam da estrutura da placa de vídeo. A Figura 2.1 mostra os estágios do pipeline.

Figura 2.1: Pipeline gráco.[2]

Duas APIs (Application User Interface) muito conhecidas que implementam o pipeline gráco são o OpenGL (Open Graphics Library) e o Direct3D. O Direct3D é de propriedade da Microsoft e não está disponível para plataformas Linux, MacOS, Android e navegadores Web. Diferente do Direct3D o OpenGL é multiplataforma e livre. A API do OpenGL permite enviar e armazenar dados na GPU e controlar os estágios do pipeline para o processamento gráco. Objetos são denidos como um conjunto de vértices. O OpenGL realiza o processamento de primitivas formadas por uma lista de vértices. Em um triângulo, por exemplo, um vértice pode ser representado no espaço cartesiano pelas coordenadas (x,y,z), um conjunto de três vértices formam um triângulo que é tratado como uma primitiva para o OpenGL. O triângulo possui várias aplicações na computação gráca, pois é o único polígono, no qual todos os vértices sempre estarão no mesmo plano. Isto facilita o processo de rasterização e é um dos motivos das GPUs modernas não trabalharem mais com outros polígonos, somente com triângulos [12]. A Figura 2.2 mostra um objeto 3D modelado a partir de triângulos.

Figura 2.2: Triângulos que formam a superfície do modelo 3D.

Por ser um código que roda no navegador, o código front-end pode ser interpretado de forma diferente em diferentes navegadores, além disso, diferentes navegadores possuem ou não suporte a diferentes funcionalidades da linguagem. A programação do back-end não enfrenta o mesmo problema, pois os programas rodam sempre na mesma plataforma, previamente escolhida pelo programador. Pelo fato de rodarem no servidor, qualquer linguagem de programação pode ser utilizada e o programador tem muita liberdade para fazer processamentos mais pesados ou espe- cícos. Uma vantagem também na utilização de programas em back-end é que os algoritmos e programas não são acessíveis para o público. Isso garante mais proteção a códigos sensíveis e a possibilidade de esconder o código fonte dos programas.

O front-end ganhou muito poder com a recente chegada do HTML 5 e CSS 3. O HTML 5 trouxe novos tipos de elementos, como o canvas que permite a criação de desenhos 2D e o acesso ao contexto do WebGL, que permite acessar o pipeline gráco e criar aplicações poderosas. Além do suporte à criação e à manipulação de imagens, foi incluído o suporte à criação e à manipulação de áudio, as interfaces de comunicação por sockets, a possibilidade de utilizar banco de dados com armazenamento no navegador, a possibilidade de criação de programas paralelos através de threads e muitos outros recursos. Uma consequência dessas mudanças foi o surgimento de jogos para navegador com áudio e grácos muito realistas [15].

Na computação gráca, existe uma grande quantidade de algoritmos que estão presentes em quase todos os projetos, alguns exemplos são os algoritmos de manipulação de câmera, trans- formações matriciais, simulação de modelos de luz, manipulação de materiais e texturas e etc. Atualmente, existem vários frameworks para computação gráca que já fazem implementação des- tes algoritmos e vários outros, oferecendo aos programadores uma plataforma muito mais rápida para criar grácos complexos e até mesmo jogos. Um framework muito utilizado com base no WebGL é o Three.js que é código aberto e sendo mantido desde 2010, contando com centenas de contribuidores [16][17].

2.3 Simuladores de código-G e CNC

As primeiras máquinas de comando numérico (NC) foram construídas na década de 50 e utili- zavam cartões perfurados. Naquela época, cada fabricante utilizava uma linguagem diferente para comandar as máquinas de usinagem. A Figura 2.3 mostra um exemplo de uma das primeiras máquinas controlada por comando numérico.

Em aproximadamente 1958, a linguagem chamada de código-G (G-Code) foi criada. Em fe- vereiro de 1980, foi criada a versão nal do código-G chamado de norma RS274D. As máquinas CNC se tornaram muito populares e vários controladores foram criados. Um projeto chamado Enhanced Machine Controller (EMC2) atualmente chamado de LinuxCNC foi criado com o obje- tivo de desenvolver um controlador CNC código aberto. Com a grande utilização e popularização do micro controlador Arduino, um projeto chamado GRBL foi criado com o objetivo de possibilitar o controle de máquinas CNC utilizando Arduino [18].

Na década de 60, surgiram os primeiros softwares CAD (Computer Aided Design). O CAD

Figura 2.3: Máquina NC que utiliza cartões perfurados.[3]

substituiu o desenho em papel pelo desenho computadorizado. Depois do CAD, vieram softwares como CAM que auxiliam na manufatura. O software CAD, em conjunto com o CAM, permite que o projetista desenhe a peça e pense nos processos de manufatura, além de permitir a geração do código-G que irá comandar a máquina para produzir a peça. O principal software CAM da atualidade é o Mastercam que pode ser visto na Figura 2.

Figura 2.4: Software Mastercam - Simulação de operação de fresamento.