













































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Faculdade de Tecnologia. 1. Simulador CNC. 2.Torno CNC. 3. Fresadora CNC. 4.Impressora 3D. I. Mecatrônica/ ...
Tipologia: Slides
1 / 53
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Brasília, novembro de 2016
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
Dedico este trabalho a minha familia e aos meus amigos.
Filipe Alves Caixeta
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
2.1 Comparação entre alguns simuladores de código-G. ............................................ 11
4.1 Sistema Operacionais mais utilizados para acessar o simulador. ............................ 25
v
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]
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.
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.
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:
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].
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.