Você está na página 1de 6

Simplificacao de malhas de triangulos contidas em arquivos

STL
Rodrigo M. M. H. Gregori
rodrigo.gregori@gmail.com

Abstract. The objective of this project is the optimization of triangle meshes


within STL files, used in addictive manufacturing - a forthcoming manufacturing
technic, based on the overlapping of flat layers. To achieve this, the idea is
to use an algorithm already proposed, adapting it so that it works as a pre-
processor for the triangle mesh during the slicing procedure, or even developing
a new algorithm. The results are going to be compared to the results of the
procedure without the pre-processing, to measure the improvement to the whole
manufacturing process.

Resumo. Este projeto tem como objetivo a otimizacao de malhas de triangulos


contidas em arquivos no formato STL, utilizados na manufatura aditiva - tecnica
de manufatura emergente, que se baseia na sobreposicao sucessiva de cama-
das planas. Para tal, pretende-se utilizar algum algoritmo ja citado na litera-
tura, adaptando-o, de forma a funcionar como um pre-processador da malha
de triangulos no processo de fatiamento, ou, ainda, desenvolver um novo algo-
ritmo. O resultado sera comparado ao do processo sem o pre-processamento de
forma a aferir a melhoria para a manufatura.

Agradecimentos
Agradeco aos professores Murilo da Silva e Neri Volpato pela conversa sobre manufa-
tura aditiva e simplificacao de malhas de triangulos, ponto de partida para a pesquisa e
desenvolvimento dessa proposta.
Agradeco a professora Maria Inez Fonseca pela inestimavel ajuda com a revisao
gramatical.

1. Introducao
1.1. Apresentacao do Problema
Entre as novas tecnicas para manufatura, que estao em constante desenvolvimento, esta a
manufatura aditiva.
A manufatura aditiva oferece uma serie de problemas que podem ser explorados
pela Ciencia da Computacao. Se por um lado alguns trabalhos pesquisados abordam
o algoritmo de fatiamento em si, focando a espessura das fatias, de forma a obter um
modelo manufaturado mais proximo do projetado, com menor custo; por outro, sob a
optica computacional, seria importante buscar outras formas de otimizar o trabalho de
fatiamento de um arquivo STL. Como o arquivo baseia-se em uma malha de triangulos, a
proposta aqui e trabalhar com a otimizacao de malha de triangulos.
1.2. Estado da Arte

Manufatura aditiva (AM, do ingles additive manufacturing), e um processo de producao


no qual camadas planas sao sucessivamente sobrepostas, formando um objeto tridimen-
sional. As informacoes para a confeccao deste objeto sao oriundas de um modelo 3D,
gerado em algum sistema CAD. O modelo e geralmente convertido para um formato
intermediario, STL (de stereolithography), isto e, uma malha de triangulos, cada um re-
presentado por seus vertices e um vetor normal, que indica o lado para onde a face aponta.
O arquivo STL e um padrao de facto [Volpato et al. 2007, Jurrens 1999]. Trata-
se de uma lista nao ordenada de triangulos que compoem um mosaico que e uma
representacao aproximada do objeto em questao. Os triangulos sao definidos por seus
vertices, seguindo a regra da mao direita, mais a normal, que indica o lado externo do
objeto. Se, por um lado, o formato simples determina sua larga utilizacao; por outro,
esse padrao tem desvantagens como a da possibilidade de falhas na geracao da malha de
triangulos. O formato STL em si gera rendundancias, ja que cada vertice e armazenado
pelo menos quatro vezes (uma para cada um dos triangulos adjacentes); alem disso, ha re-
dundancia de informacoes com os vertices armazenados no sentido anti-horario e o vetor
normal. Isso torna o arquivo muito grande, exigindo maior consumo de memoria, CPU e
tempo de processamento.
Esse arquivo sera entao fatiado e enviado para fabricacao pela maquina de ma-
nufatura [Volpato et al. 2007]. Diversos algoritmos concorrem para o fatiamento que e
automatico, [Pandey et al. 2003]. De maneira geral calculam-se os pontos nos quais pla-
nos horizontais imaginarios incerceptam a malha de triangulos em diferentes pontos no
eixo cartesiano z. A partir desses pontos delimita-se o contorno de cada fatia. Com isso
tem-se os dados para a manufatura.
O problema do fatiamento, bastante abordado pelos pesquisadores, requer diver-
sas abordagens para soluciona-lo [Pandey et al. 2003]. Inicialmente utilizava-se uma es-
pessura unica para as fatias, mas ha um problema equacionavel: fatias mais espessas
permitem que o modelo seja construdo mais rapidamente; portanto, com menor custo.
Por outro lado, fatias mais finas produzem um objeto final com melhor qualidade, mas
com maior custo e tempo de processamento. Esse e o desafio que se procura resolver na
questao do fatiamento.
Nesse sentido, diversos autores propoem algoritmos de fatiamento com espessura
variavel [Pandey et al. 2003]. Por exemplo, Tyberg e Bhn (1998) dividem um objeto
em subpartes, fazendo um fatiamento local em vez de fatia-lo como um todo. Partes do
modelo que nao necessitam de mais detalhamento sao fatiadas com espessuras maiores.
Assim os autores conseguem uma reducao de tempo de ate 37% se comparado a outros
processos de fatiamento com espessuras variaveis. Alem disso, tem-se melhor qualidade
do objeto manufaturado, se comparado aos produzidos pelos metodos de fatiamento com
espessura fixa.
Alem do equacionamento entre custo e qualidade do modelo, ha casos em que o
arquivo STL contem erros, que devem ser corrigidos antes do fatiamento. Uma solucao
para esse problema e proposta por Huang et al. (2002) , com um algoritmo de fatiamento
tolerante a erros.
1.3. Justificativa
Embora largamente utilizado, o formato STL, como ja mencionado, tem uma serie de pro-
blemas. Baseado em malhas de triangulos, instiga a combinar alguma tecnica ja existente
de otimizacao, ou, ainda, a adaptar ou a desevolver um novo algoritmo como tentativa
para solucao de algum dos problemas do STL, como a redundancia de vertices ou das
coordenadas relativas ao vetor normal. Assim, julgando a importancia desse formato na
manufatura aditiva, justifica-se um trabalho de pesquisa com o objetivo de otimizar ma-
lhas de triangulos contidas em arquivos STL.

2. Objetivos
2.1. Geral
Este trabalho propoe-se a encontrar mecanismos para melhoria do processo de fatiamento
de um modelo solido, parte do processo de planejamento para a manufatura aditiva. A
meta podera ser atingida atraves de otimizacao da malha de triangulos obtida a partir de
sistema CAD. O resultado sera comparado com o do processo sem a otimizacao da malha.

2.2. Especficos
Desenvolvimento ou adaptacao de um algoritmo para otimizacao de malhas de
triangulos obtidas atraves de arquivos STL.
Aplicacao da otimizacao ao processo de fatiamento de modelos tridimensionais.
Comparacao dos resultados dos processos de fatiamento com e sem a otimizacao.

3. Revisao Bibliografica
Cignoni et al. (1998), Luebke (2001), Peng et al. (2005) mostram que existem varias
abordagens para otimizacao ou simplificacao de malhas de triangulos. A motivacao para
a pesquisa dos algoritmos pode advir da necessidade de diminuicao do custo para ren-
derizar imagens tridimensionais, por exemplo. Nesse caso, e possvel simplificar objetos
distantes, que necessitariam de menos detalhes que os objetos mais proximos, por exem-
plo. Nesse sentido utilizam-se modelos de resolucao multipla, processados por diferentes
nveis de detalhe (LOD - Level Of Detail) [Puppo and Scopigno 1997].
O algoritmo de superfaces [Kalvin and Taylor 1996], tem como objetivo simplifi-
car malhas poligonais. Primeiramente ha um procedimento de fusao dos triangulos, com
a criacao de superfaces. Entao, as bordas das novas faces sao fundidas. Por ultimo, e
executa-se a triangulacao dessas superfaces, que podem ser decompostas em diversas ou-
tras menores. O resultado e um modelo simplificado do original, que mantem a precisao
geometrica, mas com perda de qualidade em relacao ao modelo original.
Hoppe (1996) introduz o conceito de malha progressiva (PM - Progressive Mesh),
que e um metodo de simplificacao/compressao de modelos poligonais. Uma malha pro-
gressiva e uma representacao bastante simplificada, criada a partir de diversas operacoes
de colapso de arestas, que tem como operacao inversa a divisao de vertices. Uma operacao
de colapso de aresta remove da malha um vertice e dois triangulos. O algoritmo e capaz
de preservar a geometria original e, atraves da operacao inversa de divisao de vertices, e
possvel a obtencao do modelo original.
Esse algoritmo nao atende ao objetivo de simplificacao de uma malha para a ma-
nufatura aditiva, uma vez que comprime um modelo, o que e bom para transmissao de
dados, mas e inaceitavel a perda da fidelidade do modelo comprimido com a malha ori-
ginal, que fica mais distante ainda do modelo CAD que gerou a malha. Importante notar
que o proprio modelo em formato STL ja e questionado pelo erro causado pelo desvio em
relacao ao modelo original (chordal error) [Pandey et al. 2003].
Kronrod e Gotsman (2000) desenvolveram um algoritmo de compressao base-
ado nos dados de geometria (as coordenadas dos vertices), em vez de utilizar os dados
de topologia (a conectividade). Dessa forma, os autores utilizam a predicao do parale-
logramo: espera-se que dois triangulos adjacentes em uma malha formem um polgono
semelhante a um paralelogramo. Os triangulos, entretanto, devem ser quase coplanares.
Dessa forma, com os dados de um triangulo A, o vertice faltante do triangulo B adja-
cente pode ser previsto com uma certa precisao. E outra especie de algoritmo lossy,
com perdas na qualidade do modelo, o que o torna incompatvel com o uso na manufatura
aditiva.
Outra classe de algoritmos utiliza triangle strips (faixas de triangulos). Partindo-
se de dois triangulos, forma-se uma strip e, assim, a partir do segundo triangulo, basta
acrescentar um novo vertice para formar o proximo triangulo, ou seja, alem do overhead
inicial de dois vertices, para cada novo triangulo apenas um novo vertice sera transmitido
[Gumhold and Straer 1998].
A ideia de reduzir a quantidade de vertices e relevante no contexto da manufatura
aditiva, uma vez que, ao tratar da etapa de fatiamento do modelo, com a utilizacao do
formato STL, e possvel pre-processar o arquivo por um algoritmo de triangle strips, que
pode otimizar essa etapa.
Estkowsky (2002) prova que a geracao de strips, no entanto, e um problema
NP-completo. No trabalho do pesquisador sao propostos dois algoritmos para geracao
de strips de triangulos: um utilizando programacao inteira, outro utilizando branch-and-
bound.
Outro metodo para geracao de triangle strips e proposto em [Kaick et al. 2004],
com base em duas heursticas. A primeira baseia-se em um algoritmo guloso, que busca
triangulos livres, ou seja, que nao pertencem a nenhuma strip; a segunda utiliza o algo-
ritmo anterior e mais outro, que busca gerar strips sequenciais.
Isenburg (2001) sugere comprimir as triangle strips junto dos dados de conectivi-
dade, mas nao parece ser importante, nesse caso, a compressao dos dados de vetores, uma
vez que o objetivo nao e otimizar a transmissao dos dados, mas o fatiamento do modelo.

4. Metodologia
Para a realizacao do trabalho de pesquisa, propoe-se a seguinte metodologia:
Pesquisa bibliografica, delimitando, entre as classes de algoritmos de otimizacao
ja propostas, a que efetivamente mais se adapta a otimizacao de malhas de
triangulos com as caractersticas para manunfatura aditiva;
Desenvolvimento, ou adaptacao de um metodo de otimizacao para pre-
processamento da malha de triangulos, antes da etapa de fatiamento de um modelo
tridimensional, no processo de manufatura aditiva;
Comparacao do tempo de execucao e dos recursos utilizados (memoria RAM, uso
de CPU) ao executar o processo de fatiamento sem a otimizacao da malha de
triangulos e pos-otimizacao.

5. Resultados Esperados
Espera-se que o fatiamento e, consequentemente, todo o processo de manufatura aditiva
ocorra mais rapido apos a otimizacao das malhas de triangulos do que sem o processo. E
preciso observar que o tempo e os recursos gastos para otimizacao do modelo nao devem
ultrapassar a economia que se espera obter com a otimizacao.

6. Informacoes Complementares aos Objetivos


6.1. Orcamento
Material Custo (R$)
Material bibliografico 500,00
Combustvel 5.000,00
Alimentacao 500,00
Total 6.500,00

6.2. Etapas e Cronograma


Etapa 2012/1 2012/2 2013/1 2013/2
Pesquisa Bibliografica XXXX XXXX XXXX
Desenvolvimento de algoritmo XXXX XXXX
Verificacao dos resultados da otimizacao XXXX
Escrita da dissertacao XXXX XXXX XXXX XXXX

Referencias
Cignoni, P., Montani, C., and Scopigno, R. (1998). A comparison of mesh simplification
algorithms. Computers & Graphics, 22(1):3754.
Estkowski, R., Mitchell, J. S. B., and Xiang, X. (2002). Optimal decomposition of poly-
gonal models into triangle strips. In Proceedings of the eighteenth annual symposium
on Computational geometry - SCG 02, pages 254263, New York, New York, USA.
ACM Press.
Gumhold, S. and Straer, W. (1998). Real Time Compression of Triangle Mesh Con-
nectivity. In SIGGRAPH 98 Proceedings of the 25th annual conference on Computer
graphics and interactive techniques, volume 32 of Computer Graphics Proceedings,
Annual Conference Series, pages 133140. ACM Press.
Hoppe, H. (1996). Progressive meshes. In Proceedings of the 23rd annual conference on
Computer graphics and interactive techniques - SIGGRAPH 96, pages 99108, New
York, New York, USA. ACM Press.
Huang, S. H., Zhang, L. C., and Han, M. (2002). An Effective Error-Tolerance Slicing
Algorithm for STL Files. The International Journal of Advanced Manufacturing Te-
chnology, 20(5):363367.
Isenburg, M. (2001). Triangle Strip Compression. Computer Graphics Forum, 20(2):91
101.
Jurrens, K. K. (1999). Standards for the rapid prototyping industry. Rapid Prototyping
Journal, 5(4):169178.
Kaick, O. M. V., da Silva, M. V. G., and Pedrini, H. (2004). Efficient Generation of
Triangle Strips from Triangulated Meshes. Journal of WSCG, 12(1-3):475481.
Kalvin, A. and Taylor, R. (1996). Superfaces: polygonal mesh simplification with boun-
ded error. IEEE Computer Graphics and Applications, 16(3):6477.
Kronrod, B. and Gotsman, C. (2000). Optimized triangle mesh compression using predic-
tion trees. In Proceedings the Eighth Pacific Conference on Computer Graphics and
Applications, pages 406407. IEEE Comput. Soc.
Luebke, D. (2001). A developers survey of polygonal simplification algorithms. IEEE
Computer Graphics and Applications, 21(1):2435.
Pandey, P. M., Reddy, N. V., and Dhande, S. G. (2003). Slicing procedures in layered
manufacturing: a review. Rapid Prototyping Journal, 9(5):274288.
Peng, J., Kim, C.-S., and Jay Kuo, C.-C. (2005). Technologies for 3D mesh compression:
A survey. Journal of Visual Communication and Image Representation, 16(6):688
733.
Puppo, E. and Scopigno, R. (1997). Simplification, LOD and multiresolution: Principles
and applications. Technical Report 3, National Research Council of Italy, Pisa, Italy.
Tyberg, J. and Bhn, J. (1998). Local adaptive slicing. Rapid Prototyping Journal,
4(3):118127.
Volpato, N., Ahrens, C. H., Ferreira, C. V., Petrusch, G., de Carvalho, J., dos Santos, J. R.,
and da Silva, J. V. L. (2007). Prototipagem Rapida: tecnologias e aplicacoes. Edgar
Blucher.

Você também pode gostar