Leitura e interpretação de arquivos IGES para uso …PROJETO DE GRADUAÇÃO 2 Leitura e...

85
1 PROJETO DE GRADUAÇÃO 2 Leitura e interpretação de arquivos IGES para uso em programas de elementos de contorno. Por, João Elias Santana Gonçalves Brasília, Junho de 2016 UNIVERSIDADE DE BRASILIA FACULDADE DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA MECANICA

Transcript of Leitura e interpretação de arquivos IGES para uso …PROJETO DE GRADUAÇÃO 2 Leitura e...

1

PROJETO DE GRADUAÇÃO 2

Leitura e interpretação de arquivos IGES para uso em programas de elementos de contorno.

Por,

João Elias Santana Gonçalves

Brasília, Junho de 2016

UNIVERSIDADE DE BRASILIA

FACULDADE DE TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA MECANICA

UNIVERSIDADE DE BRASÍLIA

Faculdade de Tecnologia

Departamento de Engenharia Mecânica

PROJETO DE GRADUAÇÃO 2

Leitura e interpretação de arquivos IGES para uso emprogramas de elementos de contorno.

PorJoão Elias Santana Gonçalves

Relatório submetido como requisito parcial para obtenção do grau de EngenheiroMecânico.

Banca Examinadora

Prof. Éder Lima Albuquerque, UnB/ENM

Prof. Marcus Vinicius Girão de Morais, UnB/ENM

Prof. Lucas Silveira Campos , UnB/ENM

Brasília, Junho de 2016.

i

RESUMO

A extensão IGES (Initial Graphics Exchange Specification) é um formato de ar-quivo neutro que permite a troca de informação digital entre diferentes programas dedesenho assistido por computador (CAD). É possível realizar um desenho em um pro-grama CAD e exportá-lo em formato IGES para outra plataforma CAD ou até mesmopara programas de elementos finitos e programas de elementos de contorno. O objetivodeste projeto de graduação é explorar um toolbox do MATLAB R© para interpretarmodelos geométricos oriundos de diferentes programas CAD em formato IGES. Estesmodelos geométricos são usados em programas de elementos de contorno para análisetérmica e estrutural. Com isto, os programas de elementos de contorno tornam-se ro-bustos e fáceis para analisar problemas com geometrias difíceis de modelar.

ABSTRACT

The IGES extension (Initial Graphics Exchange Specification) is a neutral file for-mat which allows digital exchange of information between different computer aideddesign softwares (CAD). It is possible to make a draw in a CAD software and ex-port to another CAD software or even export it to finite element or boundary elementsoftwares using IGES format. The aim of this project is to explore a MATLAB R© to-olbox which is capable of read IGES files and interpret geometric models from severaldifferent CAD softwares. Those geometric models will be used by a boundary elementsoftware to perform thermal and structural analysis. Thus, the boundary element codebecome robust and easy to analyze problems with complex geometries.

ii

Sumário

1 Introdução 1

1.1 Análise isogeométrica: Um novo paradigma dos programas CAD . . . . 21.1.1 Elementos Finitos . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.2 Elementos de Contorno . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Motivação do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Revisão bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4 Objetivos e organização do trabalho . . . . . . . . . . . . . . . . . . . . 7

2 Embasamento Teórico para Análises Isogeométricas 9

2.1 Teoria de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4 Superfícies NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.5 Superfícies NURBS aparadas . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Formatos padrões para troca de dados geométricos entre dois siste-

mas 17

3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2 IGES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3 Principais Entidades IGES . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.1 Rational B-Spline Surface Entity (Type 128) . . . . . . . . . . . 203.3.2 Rational B-Spline Curve Entity (Type 126) . . . . . . . . . . . . 223.3.3 Line Entity (Type 110) . . . . . . . . . . . . . . . . . . . . . . . 233.3.4 Composite Curve Entity (Type 102) . . . . . . . . . . . . . . . 243.3.5 Curve on a Parametric Surface Entity (Type 142) . . . . . . . . 283.3.6 Trimmed (Parametric) Surface Entity (Type 144) . . . . . . . . 303.3.7 Transformation Matrix Entity (Type 124) . . . . . . . . . . . . 31

3.4 STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.5 PHIGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

iii

4 IGES Toolbox 42

4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2 Principais Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2.1 Subfuncões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3 Bracket: Utilizando a toolbox para geração do modelo CAD . . . . . . 44

5 Resultados 46

5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.2 Exemplos de desenhos de peças . . . . . . . . . . . . . . . . . . . . . . 465.3 Análise de uma Superfície Aparada . . . . . . . . . . . . . . . . . . . . 61

6 Conclusões e trabalhos futuros 72

6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.2 Sugestão de trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . 73

iv

Lista de Tabelas

3.1 Rational B-Spline Surface: Números de forma . . . . . . . . . . . . . . 213.2 Rational B-Spline Surface: ParameterData . . . . . . . . . . . . . . . . 213.3 Rational B-Spline Curve: Números de forma . . . . . . . . . . . . . . . 233.4 Rational B-Spline Curve: ParameterData . . . . . . . . . . . . . . . . . 233.5 Line: ParameterData . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.6 Nomenclatura usada em uma composite curve . . . . . . . . . . . . . . 263.7 Composite Curve: Valores paramétricos iniciais e finais . . . . . . . . . 263.8 Composite Curve: ParameterData . . . . . . . . . . . . . . . . . . . . . 273.9 Curve on a Parametric Surface: ParameterData . . . . . . . . . . . . . 303.10 Trimmed (Parametric) Surface: ParameterData . . . . . . . . . . . . . 313.11 Transformation Matrix: Números de forma . . . . . . . . . . . . . . . . 343.12 Transformation Matrix: ParameterData . . . . . . . . . . . . . . . . . . 37

5.1 Bracket - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . . . 485.2 Bracket - Entidades presentes no ParameterData . . . . . . . . . . . . . 495.3 Curved Shape - Entidades geradas pelo SolidWorks . . . . . . . . . . . 505.4 Curved Shape - Entidades presentes no ParameterData . . . . . . . . . 505.5 U Shape - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . . 515.6 U Shape - Entidades presentes no ParameterData . . . . . . . . . . . . 525.7 Pistonhead - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . 535.8 Pistonhead - Entidades presentes no ParameterData . . . . . . . . . . . 535.9 Rocket - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . . . 545.10 Rocket - Entidades presentes no ParameterData . . . . . . . . . . . . . 555.11 Naca 2030 - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . 565.12 Naca 2030 - Entidades presentes no ParameterData . . . . . . . . . . . 565.13 Structure 1 - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . 575.14 Structure 1 - Entidades presentes no ParameterData . . . . . . . . . . . 585.15 Structure 2 - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . 595.16 Structure 2 - Entidades presentes no ParameterData . . . . . . . . . . . 595.17 Thin Shell - Entidades geradas pelo SolidWorks . . . . . . . . . . . . . 605.18 Thin Shell - Entidades presentes no ParameterData . . . . . . . . . . . 60

v

5.19 ParameterData{158} . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.20 ParameterData{157} . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.21 ParameterData{920} . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665.22 ParameterData{156} . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

vi

Lista de Figuras

1.1 Estimativa dos custos e tempo em relação a cada componente da geraçãoe análise de um modelo na Sandia National Laboratories (Cortesia deMichael Hardwick e Robert Clay, Sandia National Laboratories [18]) . . 3

2.1 Curva de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Funções de Base B-splines de ordem 0,1 e 2. . . . . . . . . . . . . . . . 122.3 B-splines e seus segmentos . . . . . . . . . . . . . . . . . . . . . . . . . 132.4 NURBS em coordenadas homogêneas . . . . . . . . . . . . . . . . . . . 142.5 Superfície NURBS - Torus . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1 Exemplo simples de um arquivo em formato IGES. . . . . . . . . . . . 193.2 Exemplos utilizando Line Entity . . . . . . . . . . . . . . . . . . . . . . 243.3 Parametrização da Composite Curve . . . . . . . . . . . . . . . . . . . 273.4 Exemplo de uma Composite Curve . . . . . . . . . . . . . . . . . . . . 283.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.6 Exemplo de transformação de um sistema de coordenadas matricial . . 383.7 Notações para formas específicas do MEF de uma Transformation Ma-

trix Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.1 Bracket - Script do Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 454.2 Bracket: Entidade de número 121 . . . . . . . . . . . . . . . . . . . . . 45

5.1 Bracket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.2 Curved Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.3 U Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.4 Piston Head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.5 Rocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.6 NACA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.7 Structure 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575.8 Structure 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.9 Thin Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.10 Superfície Aparada Triangularizada número 158 do pistonhead . . . . . 62

vii

5.11 Detalhe da Triangularização da superfície aparada número 158 do pis-tonhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.12 Superfície Não-aparada número 131 do pistonhead . . . . . . . . . . . . 635.13 Etapas de aparamento da superfície . . . . . . . . . . . . . . . . . . . . 685.14 Pistonhead em 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.15 Criação dos pontos internos . . . . . . . . . . . . . . . . . . . . . . . . 695.16 Zoom dos pontos internos . . . . . . . . . . . . . . . . . . . . . . . . . 705.17 Zoom dos pontos internos . . . . . . . . . . . . . . . . . . . . . . . . . 705.18 Superfície 3D após transformação de coordenadas . . . . . . . . . . . . 71

viii

Capítulo 1 Introdução

Nos dias de hoje, a troca de informações e dados entre os diferentes sistemasCAD/CAM/CAE são de grande importância para diversos ramos de engenharia, in-clusive para a indústria de animação. Este compartilhamento de dados é tambémuma das chaves para o sucesso no desenvolvimento da engenharia simultânea. Alémdisso, esta prática contribui principalmente na redução do tempo de desenvolvimentode um produto. Devido à grande variedade de sistemas CAD no mercado, a troca deinformações de dados de projeto entre sistemas CAD é indispensável.

Modelos de sólidos desenvolvidos em um software CAD também podem ser utiliza-dos para outras aplicações específicas. O modelo poderá, por exemplo, ser usado paraanálises de engenharia através de um software de elementos finitos, para simulação deusinagem e para geração de códigos de comandos numéricos através de software CAM,bem como para o desenvolvimento de animação através de softwares, e até mesmo como propósito de documentação.

Todos os dados de desenhos de sistemas CAD encontram-se em seu próprio sistemaespecífico de estrutura de dados. Essas estruturas são inconsistentes com os formatos deentrada exigidos para aplicação nos programas a serem usados, como por exemplo, emum software de elementos finitos. Assim, um problema de comunicação de dados surgequando dois ou mais sistemas CAD/CAM/CAE são usados conjuntamente para formaruma aplicação que compartilha dados em comum. Para solucionar este problema decomunicação entre plataformas, foi necessário traduzir os dados em um formato comumcuja interpretação por outros CAEs seja possível.

Para tornar este modelo de transferência factível, utiliza-se um arquivo neutro. Umbom arquivo neutro tem o propósito de armazenar informações de maneira que o mesmopossa ser exportado para outro programa conservando as informações do arquivo deorigem, com pouca ou nenhuma perda de qualidade dos dados originalmente salvos.Pelo ponto de vista teórico, apenas um arquivo neutro seria o suficiente para efetuar atroca de informações entres os softwares. Entretanto, existem vários arquivos neutrosdisponíveis no mercado. Eles foram desenvolvidos por vários países e organizações. Emgeral, esses arquivos neutros podem ser classificados em categorias como se segue:

1. Arquivos neutros desenvolvidos por instituições padrão (IGES e STEP);

2. Arquivos neutros desenvolvidos por softwares CAD (DXF e ACIS);

3. Arquivos neutros desenvolvidos por aplicações específicas (Litografia, VRML,VDAFS

1

e gráfica).

O formato IGES serve como um formato de dados neutro para transferência de ummodelo CAD entre sistemas diferentes. Tradutores desenvolvidos para o padrão IGESsão usados para exportar um modelo CAD neste formato para troca e para importaçãode arquivos IGES no sistema de destino.

Este trabalho de graduação tem como objetivo explorar o Toolbox IGES2Matlab[3] tornando possível que arquivos de desenhos gerados no programa SolidWorks [32]ou outro CAD qualquer possam ser usados em um programa de análise isogeométricado método dos elementos de contorno [6]. O Toolbox IGES2Matlab é desenvolvido emlinguagem MatLab [28], tem código aberto e pode ser obtido na página da MathWorks[2].

1.1 Análise isogeométrica: Um novo paradigma dos programas CAD

A necessidade de entender e prever comportamentos dos mais diversos componentescontribuiu para o surgimento das simulações numéricas. Isto ocorreu devido a nãoexistência de soluções exatas para problemas reais de engenharia encontrados no dia adia, os quais necessitam de certo grau de confiabilidade ou de previsões mais detalhadassobre seu comportamento.

Atualmente, os engenheiros passaram a utilizar ferramentas CAD (Computer Ai-ded Design) para gerar geometrias e suas malhas de modo que as mesmas possamser analisadas por algoritmos de análise de elementos finitos. Esta tarefa é conside-rada complexa e estima-se que ela seja responsável por cerca de 80% do tempo totaldestinado a rodar uma simulação numérica.

De acordo com a Sandia National Laboratories [18], a geração de malhas consomecerca de 20% do tempo total destinado a uma simulação. Enquanto a criação dageometria adequada para análise leva cerca de 60% do tempo de processamento eapenas 20% do tempo é efetivamente gasto na análise (Figura 1.1).

Muitas formas de otimização para análises numéricas não se encontram disponíveispara a indústria. A principal razão para que isso ocorra está ligado a necessidade deautomatização do processo de otimização da malha a partir de uma geometria CAD,bem como a interação entre simulador e otimizador. O que não ocorre simplesmentedevido o fato de que a malha é desconectada da geometria da qual foi gerada.

É notório que para romper-se as barreiras entre a engenharia de design e a enge-nharia de modelagem, tem-se que reconstituir todo o processo, mantendo-se a compa-tibilidade com práticas já existentes. Um passo primordial para que isto seja possívelestaria em focar-se apenas em um modelo geométrico que possa ser diretamente utili-

2

Início

Modelagemdosólido

Criaçāoe/ouEdição

Fim

AnálisedoModeloSólidoCriaçãoe/ou

Edição

Decomposiçãodageometria

GeraçãodaMalha

Manipulaçãodamalha

Montagemdomodelodesimulação

Simulação Resultados

Armazenamentodosdados

Atribuiçãodeparâmetrosao

modelo

Figura 1.1: Estimativa dos custos e tempo em relação a cada componente da geração eanálise de um modelo na Sandia National Laboratories (Cortesia de Michael Hardwicke Robert Clay, Sandia National Laboratories [18])

3

zado para análise, ou pela qual análises de modelos geometricamente precisos possamser automaticamente desenvolvidos.

Para isso será necessário que se tenha uma mudança da maneira clássica pela qualsão feitas as análises por elementos finitos, em um procedimento baseado em represen-tações CAD. Este conceito é conhecido como análise isogeométrica, e foi introduzidopor Hughes et al.[17].

1.1.1 Elementos Finitos

O Método de Elementos Finitos (MEF) é um método baseado em uma ideia originalde Ritz, o qual propôs que a variação do que não é conhecido pode ser aproximadopor funções contínuas em seu domínio [4]. As primeiras aplicações do método estavamrestritas aos casos em que as funções contínuas podiam ser encontradas, como porexemplo, em placas circulares. Logo, tornou-se óbvio que essa restrição teria de sersuperada para que o método se tornasse funcional. Por volta dos anos sessenta, com osurgimento dos computadores, propôs-se subdividir o domínio e utilizar-se apenas defunções que fossem contínuas no subdomínio. Dessa maneira nasceu o conceito do Mé-todo de Elementos Finitos. Não obstante, surgiram programas poderosos desenvolvidospela NASA.

Logo após, como consequência, muitos outros programas foram desenvolvidos. Amedida que os computadores foram evoluindo e consequentemente tiveram sua capa-cidade de processamento aumentada, o grau de abstração dos problemas puderam serreduzidos de maneira considerável.

1.1.2 Elementos de Contorno

A ideia de Trefftz de usar soluções fundamentais de equações diferenciais acarre-taram no desenvolvimento do primeiro método das equações integrais de contorno eposteriormente do Método dos Elementos de Contorno (MEC) [4]. O desenvolvimentodo MEC se deu de maneira distinta em relação ao tradicional MEF. O principal motivopara tal está no alto grau de exigência de conhecimentos matemáticos, especialmenteno caso de integrais singulares. No início de sua aplicação, o MEC era restrito ape-nas a domínios homogêneos de comportamento linear elástico. Outra razão para taldificuldade se devia a não compreensão da literatura disponível na época.

O principal diferencial do MEC se encontra na praticidade de apenas ter de se definiros contornos do problema. Portanto, o MEC funcionaria perfeitamente em parceria como CAD, uma vez que ambos apenas modelam o contorno, evitando a necessidade degeração da malha. Além disso, o MEC é eficaz para prever as concentrações de tensõesao longo do contorno. Entretanto, para que o MEC possa usar um arquivo proveniente

4

de um software CAD como malha, há a necessidade de se criar um formato de arquivoCAD para permitir a troca de dados entre os mais diversos softwares.

1.2 Motivação do trabalho

É evidente que as simulações estão distantes de serem eficientes e seguras. O pri-meiro motivo desta ineficiência decorre do fato de que mesmo se um modelo CAD estádisponível, sua geometria precisa ser aproximada por uma malha. Caso um modelodigital preciso da geometria esteja disponível, porque aproximá-lo como uma malhageometricamente menos precisa?

Outra ineficiência decorre do fato de que na abordagem isoparamétrica, as mes-mas funções são utilizadas para descrever a geometria e para aproximar o que não éconhecido. Isto é ineficiente, dado que não há em muitos casos conexão entre os dois[4]. Considere um problema de geometria bastante simples, o qual pode ser descritopor pouquíssimos elementos e funções lineares. Na maioria dos casos isto não seriasuficiente para a descrição da variação dos deslocamentos, os quais precisam de umamalha mais refinada, mas não há necessidade de se usar mais elementos na geometria.Além disso, funções de base de alta qualidade são utilizadas para descrever a geometriacom pouquíssimos parâmetros e sua descrição é exata ou muito precisa. Logo, não hánecessidade de refinar ainda mais a geometria, qualquer que seja ela. No entanto épreciso refinar a aproximação do que é desconhecido.

No caminho para obtenção de uma simulação mais eficiente, é proposta uma mu-dança no paradigma: a descrição da geometria será retirada diretamente dos

dados do software CAD [4]. Explicar como isto pode ser alcançado é o princi-pal objetivo deste projeto. A comunidade CAD, principalmente por estar focada nageometria dos problemas, tem desenvolvido ferramentas muito sofisticadas para geraruma representação digital das mesmas. Ao passo que a comunidade do MEF/MECtem estado estagnada com funções muito simples tais como Serendipity, Lagrange eem alguns casos funções Hermite.

A comunidade CAD tem utilizado há um longo tempo funções bem avançadas taiscomo B-splines e NURBS. A vantagem destas funções está em sua capacidade de des-crever formas complexas de maneira precisa utilizando-se de pouquíssimos parâmetros.Por exemplo, as NURBS podem descrever seções cônicas de maneira exata.

Constatou-se também que existe uma grande vantagem no uso de B-splines ouNURBS para aproximação das variáveis desconhecidas. Isto porque estas funções apre-sentam propriedades interessantes tais como:

1. Bom controle da continuidade;

5

2. Boas propriedades de refinamento.

1.3 Revisão bibliográfica

Existem inúmeras possibilidades de representações geométricas que podem ser uti-lizadas na análise isogeométrica. O mais amplamente utilizado em projetos de enge-nharia são as NURBS (Curvas B-Splines racionais não uniformes), conforme [30]; [21],[22]; [15]; [7]. Os pontos fortes das NURBS são: convenientes para modelagem de su-perfícies de forma livre (que não existe de forma exata), representação de forma exatade todas as seções cônicas, tais como círculos, cilindros, esferas, elipsóides, etc., alémda existência de vários algorítmos numéricos estáveis para geração de objetos NURBS.Elas também possuem propriedades matemáticas úteis, como, por exemplo, a habili-dade de serem refinadas através da adição de nós, e a continuidade de derivadas de altaordem.

As NURBS são onipresentes em sistemas CAD, representando bilhões de dólares eminvestimentos. Alguns podem argumentar sobre os méritos da NURBS em contrastea outras tecnologias computacionais geométricas, mas sua supremacia nos programascomputacionais de CAD é incontestável. Desta forma, elas foram o ponto de partidanatural da análise isogeométrica e sua utilização nos programas de análises é o que estásendo buscado atualmente.

As T-splines [19] [20] são um recente avanço no desenvolvimento e a generalização deversões anteriores da tecnologia NURBS. As T-splines buscam permitir o refinamentoe o empobrecimento local das NURBS. Além disso, elas são muito robustas em provera junção de duas superfícies sem que haja pequenos espaços ao longo da curva deintersecção (fenômeno comum em NURBS). Plugins comerciais de T-splines foramintroduzidos em programas CAD comerciais como, por exemplo, o Rhinocerus. Aanálise do uso das T-splines no contexto da análise isogeométrica tem sido realizadopor [14] e [1]. Estes trabalhos tem apontado para um futuro promissor no uso deT-splines como uma tecnologia de análise isogeométrica.

Existem outras tecnologias de geometria computacional que também tem sido temade pesquisa para o desenvolvimento da análise isogeométrica. Uma delas é a subdivisãode superfícies, na qual se usa processo limite para definir uma superfície lisa a partirde uma malha de triângulos ou quadriláteros (e.g., [10], [29]). Elas já tem sido usadasem análises de cascas por [13], [8] e [9].

O atrativo da subdivisão de superfícies é que não há restrições na topologia docontrole da rede. Assim como as T-splines, elas também criam modelos com superfíciesperfeitamente acopladas. A maior parte dos personagens nas animações da Pixar sãomodelados utilizando subdivisão de superfícies. A indústria CAD não adotou de forma

6

ampla a subdivisão de superfícies por causa da sua incompatibilidade com as NURBS.Com bilhões de doláres de infraestrutura investidos nas NURBS, o custo financeiropara tal seria inviável. No entanto, a subdivisão de superfícies deve exercer um papelimportante na tecnologia isogeométrica como uma alternativa às NURBS. A subdivisãode sólidos tem sido estudada por [12].

Outras tecnologias de geometria que poderão exercer um importante papel no futuroda análise isogeométrica inclui Gordon patches [34], Gregory patches [23], S-patches[27], e A-patches [11]. Provatidis [31], recetemente solucionou um grande númerode problemas usando Coon patches. Em contrapartida, outras tecnologias poderãoser inventadas especificamente para a análise isogeométrica, possibilitando o uso domodelo de programas CAD. No MEF, o método numérico exige que de alguma forma,o volume também seja descrito matematicamente. Embora seja possível contornareste problema, a necessidade da representação matemática do domínio, torna a análiseisogeométrica menos interessante.

1.4 Objetivos e organização do trabalho

O objetivo deste projeto de graduação é o explorar a Toolbox de IGES do MatLaba qual é capaz de ler arquivos provenientes dos programas CAD. Dado que o principalobjetivo dos programas CAD é a visualização de uma geometria, apenas os contornos(curvas no caso 2D e superfícies no caso 3D) são modelados. Os dados produzidos poreles são adequados para uso em simulação numérica de maneira imediata, desde que ométodo numérico só necessite de informações do contorno desta geometria.

O presente trabalho irá apresentar inicialmente os conceitos da teoria de Bézier eNURBS. Em seguida serão apresentados os formatos de troca entre softwares CAD(IGES, STEP e PHIGS). Logo após, o formato IGES será explorado em detalhes, bemcomo a IGES toolbox do MATLAB e suas funções. Por fim serão apresentados umasérie de resultados obtidos em MATLAB, explorando figuras planas e sólidas obtidasa partir da IGES toolbox, seguido das conclusões e etapas de trabalhos futuros.

O capítulo 2 deste trabalho de graduação apresenta aos usuários as funções usadaspelos programas CAD e mostra como as superfícies são descritas pelos mesmos. Ocapítulo 3 descreve os vários formatos de arquivos de troca utilizados pelos programasCAD. Felizmente, um padrão foi desenvolvido e publicado mesmo que ainda em seuestado de desenvolvimento inicial, e a maioria dos programas CAD aceitam mais oumenos este padrão. Neste trabalho são apresentadas as curvas de Bezier, B-splinese curvas NURBS, pois elas formam a base matemática de como os programas CADrepresentam a geometria de figuras planas e sólidas. Desta maneira, explica-se osconceitos do CAD. Em particular, será explorado como tais programas descrevem a

7

geometria dos sólidos. Será detalhada as estrutura de dados produzida pelos programasCAD e as formas pelas quais podemos extrair informação destas estruturas de maneiraapropriada para a análise numérica, principalmente em programas de elementos decontorno. Dado que o objetivo deste trabalho é utilizar dados provenientes diretamentedos programas CAD para simulação numérica sem que seja necessário gerar a malhano passo intermediário, é importante entender como os programas CAD funcionam equal o tipo de dados que produzem. Programas CAD se comunicam externamente pormeio de vários formatos, alguns deles binários e outros em formato de texto (ASCII).Aqui iremos focar no formato IGES (extensão .IGS). Outros formatos gráficos tambémestão disponíveis, como o formato STEP e PHIGS. Estes, por sua vez, serão descritosapesar de não serem explorados ao longo do projeto.

8

Capítulo 2 Embasamento Teórico para Análises

Isogeométricas

Este capítulo será dedicado às NURBS, pois, além das mesmas serem as principaiscurvas usadas pelos programas CAD, elas também tem sido usadas como funções deforma para o MEC isogeométrico. Ao trabalhar-se com as NURBS, a menos de refina-mentos locais, não haverá a necessidade de criação de uma malha específica a medidaque a discretização usada para o modelo geométrico será a mesma utilizada para oMEC, permitindo representar de forma adequada, seções cônicas e objetos de formalivre. E esta é sem dúvida a maior razão para que a indústria tenha adotado essaforma de representação de maneira ampla. Mais que isso, as formas de discretizaçãonormalmente utilizadas em problemas de engenharia não apresentam continuidade naderivada da variável principal ao longo de elementos distintos. Este tipo de comporta-mento ocorre devido as funções de forma estarem definidas por trechos, o que contribuicomo uma fonte de erro ao processo. Problemas desta natureza são extremamenterelevantes ao utilizar-se o MEC, onde as soluções são descritas em função das variáveisde contorno.

No entanto, existem métodos bem difundidos pelos quais essa derivada é preservadaao longo dos elementos distintos em uma discretização. São eles: Overhauser, Bezier,B-splines, NURBS, T-splines e PHT-splines. Falando especificamente de NURBS, asmesmas são capazes de descrever de maneira exata, geometrias complexas, o que não seconsegue com as funções de forma polinomiais mais usuais. Entre as geometrias maiscomplexas das quais as NURBS conseguem representar com exatidão, se encontram asseções cônicas, como circunferências, hipérboles, elipses e parábolas. O uso de NURBSno MEC tem como consequência uma maior acurácia nas representações de geometriascomplexas, o que quase sempre significa também uma maior acurácia no cálculo dasvariáveis desconhecidas do problema (variáveis de campo).

Desta maneira, haverá uma imensa vantagem em usar as mesmas funções que des-crevem a geometria para aproximar as variáveis de campo no MEC, pois não há neces-sidade de criação de uma malha específica a medida que a discretização usada para omodelo geométrico (Programa CAD) será a mesma utilizada pelo MEC.

2.1 Teoria de Bézier

Pierre Bézier foi responsável por desenvolver curvas e superfícies de forma livreenquanto trabalhava para a Renault como design de automóveis. Estas curvas e su-

9

Curva  de  Bézier  

-­‐-­‐-­‐-­‐-­‐-­‐            Polígono  de  Controle  

Pontos  de  Controle  

Figura 2.1: Curva de Bézier

perfícies de forma livre ficaram conhecidas como curvas de Bézier. Partindo da basede Bernstein defini-se a curva de Bézier como:

P (t) =n∑

i=0

BiJn,i(t), 0 ≤ t ≤ 1 (2.1)

onde os coeficientes Bi são chamados de pontos de controle, que formam o polígono decontrole, e a base de Bernstein Jn,i(t) é dada por:

Jn,i(t) =

(n

i

)t(1− t)n−i. (2.2)

Uma curva de Bézier de ordem 3 e seu polígono de controle pode ser observado nafigura 2.1. As propriedades mais importantes dessa curva são:

• O número de pontos de controle menos um é o grau do polinômio definido pelacurva.

• A curva começa no primeiro ponto de controle e termina no último.

• Os vetores tangentes, no final e no início da curva, coincidem com os segmentosdo polígono de controle.

10

• A curva está sempre contida na envoltória complexa dos pontos de controle.

• A curva não é afetada por uma transformação afim.

• Cada ponto da curva é calculado como uma soma ponderada de todos os pontos decontrole. Logo, uma mudança de um ponto de controle afeta a curva globalmente.

2.2 B-splines

As B-splines são uma forma generalizada das curvas de Bézier. Uma B-spline éformada por uma ou mais curvas de Bézier com um mecanismo de continuidade entreos segmentos. Cada ponto de controle define e influência apenas um segmento da curvaB-spline. A curva pode ser matematicamente descrita por (ver figura 2.2):

P (t) =n+1∑i=1

BiNi,k(t), tmin ≤ t ≤ tmax, 2 ≤ k ≤ n+ 1 (2.3)

onde Bi são os pontos de controle e Ni,k são as funções de base de ordem k e grau k−1.Essas funções (2.2) não são definidas explicitamente e são calculadas recursivamentepor:

Ni,1(t) =

{1 se ui ≤ t < ui+1

0 restante do intervalo(2.4)

Ni,k(t) =(t− ui)Ni,k−1(t)

ui+k−1 − ui+

(ui+k − t)Ni+1,k−1(t)

ui+k − ui+1

(2.5)

onde u são os valores do vetor de nós U . O vetor U representa uma série de parâmetrosreais crescentes e possui uma forte influência nas funções de base de uma B-spline. Onúmero de intervalos no vetor U define o número de segmentos na curva. Cada segmentosofre influência de k pontos de controle. Cada vez que o parâmetro t entra em um novosegmento, um novo ponto de controle se torna ativo, ao mesmo tempo que um pontoantigo é descartado. Podemos relacionar os números de nós, m, o número de pontosde controle n e a ordem da curva k por:

m = k + n+ 1 (2.6)

Nós consecutivos podem apresentar o mesmo valor. Neste caso, o segmento em questãoapresentaria comprimento igual a zero e, como consequência, dois pontos de controleseriam ativados enquanto outros dois pontos seriam desativados. Isso altera a conti-nuidade em uma curva que era anteriormente suave. A quantidade de nós coincidentesé conhecido como um nó com certa multiplicidade. A multiplicidade de um nó é li-mitada à ordem da curva, uma vez que uma multiplicidade maior acarretaria em uma

11

Figura 2.2: Funções de Base B-splines de ordem 0,1 e 2.

curva descontinua e pontos de controle inutilizados. Na figura 2.3 pode-se observar aB-spline quadrática, seus segmentos e as funções de base para dois valores distintos deU : U1 =

[1 2 3 4 5 6 7 8 9

]e U2 =

[1 1 1 4 5 6 7 8 9

].

É possível notar de maneira bem clara, o efeito do vetor U . Ao inserir uma multi-plicidade de ordem 3 no início da curva, ocorre uma mudança nas funções de base e oprimeiro ponto de controle passa a fazer parte da curva. Cada segmento dessa curvapoderia ser representado por uma curva de Bézier, no entanto seriam necessários trêsvezes mais pontos de controle. As propriedades mais importantes dessa curva são:

• A soma das bases para qualquer valor de t é igual a 1.

12

(a) B-spline para U1

3 3.5 4 4.5 5 5.5 6 6.5 70

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

(b) Funções de base de U1

(c) B-spline para U2

1 2 3 4 5 6 70

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

(d) Funções de base de U2

Figura 2.3: B-splines e seus segmentos

• As bases são sempre maiores ou iguais a zero.

• O grau da curva é um a menos que a ordem da curva. A ordem da curva nãopode ser maior que o número de pontos de controle.

• A curva está sempre contida na envoltória convexa dos pontos de controle.

• A curva não é afetada por uma transformação afim.

• Cada ponto da curva é calculado como uma soma ponderada de parte dos pontosde controle. Logo, uma mudança de um ponto de controle afetará a curva apenaslocalmente.

2.3 NURBS

Em uma NURBS, cada ponto de controle possui um peso associado a si. No casoem que todos os pesos apresentarem o mesmo valor, esta curva representará uma B-spline. As NURBS são representadas como coordenadas homogêneas, o que adiciona

13

mais uma dimensão aos pontos de controle relativo aos pesos:

Bh =[Bx · w By · w w

](2.7)

onde Bh é o ponto de controle no sistema de coordenadas homogêneo. A equação (2.3)é, então, aplicada da mesma maneira que nas B-splines, resultando em uma B-splineque se encontra no sistema de coordenadas homogêneas. Para se obter a NURBS, serealiza a projeção dessa curva no plano w = 1. Um ponto na projeção é obtido a partirdo ponto equivalente na curva homogênea:

P (t) =[P (t)hxP (t)hw

P (t)hyP (t)hw

]. (2.8)

Esse processo pode ser observado na figura 2.3.

Figura 2.4: NURBS em coordenadas homogêneas

As NURBS também podem ser calculadas pela equação:

P (t) =

∑n+1i=1 BiNi,k(t)wi∑n+1i=1 Ni,k(t)wi

=n+1∑i=1

BiRi,k(t), (2.9)

onde Ri,k(t) é a função de base racional.

14

Apesar de também existir uma equação recursiva para as NURBS, essa não é amaneira mais comum pela qual os programas comerciais calculam a curva, os mes-mos normalmente utilizam-se das coordenadas homogêneas. A figura 2.4 mostra umexemplo de curvas NURBS em coordenadas homogêneas.

Logo, pode-se objetivamente descrever as NURBS como uma generalização da B-spline substituindo a base polinomial por uma razão de polinômios. Desta forma, suascaracterísticas são basicamente as mesmas.

2.4 Superfícies NURBS

Uma superfície NURBS pode ser obtida pelo produto tensorial entre curvas NURBS,usando dois parâmetros independentes u e v:

S(u, v) =k∑

i=1

l∑j=1

Ri,j(u, v)Bi,j (2.10)

onde R é a função de base racional:

Ri,j =Ni,ku(u)Nj,kv(v)wi

k∑i=1

l∑j=1

Ni,ku(u)Nj,kv(v)wi

(2.11)

Estas superfícies também podem ser calculadas utilizando-se um sistema de coor-denadas homogêneas. A figura 2.5 mostra um exemplo de superfície NURBS.

2.5 Superfícies NURBS aparadas

Uma das limitações da representação de superfícies através de NURBS deve-se aofato de uma superfície NURBS ser obtida como o produto entre duas curvas NURBS.Uma superfície com furo, por exemplo, não pode ser representada por um produtotensorial de duas curvas. Uma alternativa é dividir a superfície em quatro e representarcada uma destas quatro como uma superfície NURBS. Esta opção, entretanto não é defácil implementação na forma de um algoritmo robusto.

Além disso, na interseção destas superfícies não se garante a continuidade das de-rivadas. Nos sistemas CAD, estes tipos de superfícies são tratadas como superfíciesNURBS aparadas (trimmed surface). Cada superfície aparada é composta de uma su-perfície não aparada, produzida pelo produto vetorial de duas curvas, e um conjuntode curvas de aparamento (trimming curves).

As curvas de aparamento são curvas NURBS. Quando uma superfície aparada émodelada pelo CAD , todos os dados da superfície não aparada e das curvas de apara-mento são exportados nos arquivos IGES.

15

Figura 2.5: Superfície NURBS - Torus

16

Capítulo 3 Formatos padrões para troca de dados geométricos

entre dois sistemas

3.1 Introdução

As NURBS não são o padrão utilizado por todos na indústria CAD/CAM/CAE,no entanto as mesmas estão incorporadas a vários padrões americanos e internacionais:

• IGES: Initial Graphics Exchange Specification;

• STEP: Standard for the Exchange of Product Model Data;

• PHIGS: Programmer’s Hierarchical Interactive Graphic System.

O propósito deste capítulo é, conceitualmente, definir as NURBS em cada umdos padrões citados acima. Adota-se uma explicação informal, evitando especificar aterminologia de cada padrão. O leitor deve consultar documentos relevantes para umestudo mais rigoroso dos padrões, para estas leituras adicionais recomenda-se [5] e [33]para o formato STEP, e [25] para o formato PHIGS.

3.2 IGES

O formato IGES, ou Initial Graphics Exchange Specification, é um formato de dadosneutro que permite a troca digital de informações entre sistemas CAD. O IGES é umformato padrão americano, sendo o formato de troca de dados mais utilizado entre ossistemas atuais de CAD/CAM/CAE. Em 1979, um comitê técnico constituído pelascompanhias Boeing, General Eletric e National Bureau of Standards (hoje conhecidacomo National Institute of Standards and Technology), propôs as mesmas a tarefade desenvolver um método para troca de dados dentro do programa de fabricaçãointegrada assistida por computador da força aérea americana. Como resultado desteesforço, a versão 1.0 do IGES foi desenvolvida em janeiro de 1980 com o objetivode representar desenhos mecânicos bidimensionais e tridimensionais. Desta maneira,o formato IGES tornou-se padrão em setembro de 1981 depois de ser aprovado pelaANSI (American National Standards Institute) Y14.26M, que é responsável por definiros padrões de comunicação. O arquivo IGES tem a extensão .igs e é baseado no códigopadrão ASCII. Esta é a razão pela qual o IGES é lido por todos os editores de texto.

Uma curva NURBS é especificada em IGES por:

17

• O grau, p, e o número de pontos de controle, n+ 1;

• Os pontos de controle, Pi, e os pesos, wi;

• Um vetor nodal, U , contendo m+ 1 = n+ p+ 2 nós;

• Parâmetros inicial e final de valores, s0 e s1;

Os pontos de controle e os pesos são itens separados em um arquivo IGES; Nãoexiste o conceito de pontos de controle homogêneos, Pw

i . Apenas pesos positivos sãopermitidos.

A figura 3.1 mostra a superfície gerada em perspectiva e os dados gerados peloarquivo IGES. Os dados estão no formato ASCII com um tamanho fixo de 80 colunascom as seguintes características:

• A primeira parte do arquivo contém informações gerais, as quais não possuemimportância para a simulação, tais como o programa que gerou os dados, asunidades, as tolerâncias que foram aplicadas, entre outras informações.

• A segunda parte (que se inicia com o número 128 no exemplo da figura 3.1)contém os dados relevantes para a simulação.

Para a segunda parte, as informações que se seguem são fornecidas em 80 linhas decaracteres: Informações sobre o objeto estão contidas nas colunas 1 a 64. O primeironúmero na primeira linha relacionado a um objeto refere-se a chave e é seguida pelosdados que descrevem o objeto. Os dados são separados por vírgula, e o ponto e vírgulasignifica o final dos dados. As colunas 66 a 73 são reservadas para um ponteiro queaponta para os objetos. Este ponteiro é repetido até que o fim dos dados do objetosejam atingidos. As colunas 74 a 80 são reservadas para o número da linha.

Enquanto o tratamento dado as superfícies NURBS é bem simples, notamos queler e interpretar a informação para as superfícies que se interceptam (trimmed) podeser uma tarefa desafiadora. Cabem aqui algumas observações sobre a modelagem desuperfícies conectadas. A informação do intersecção é fornecida separadamente paracada umas das superfícies usando seus parâmetros espaciais, não há garantia de que assuperfícies combinarão de maneira adequada na interface. O termo watertight é utili-zado quando essa interface está adequadamente selada, ou seja, que nesta interface nãoseria possível ocorrer um "vazamento" de água. Enquanto na teoria este fenômeno éassim tratado, para fins práticos, isto não é tão relevante. Os espaços são tão pequenos,que mesmo se aproximarmos muito dos mesmos, não será possível detectá-los. Paraa simulação, onde inúmeros outros erros advindos de aproximações de variáveis não

18

Figura 3.1: Exemplo simples de um arquivo em formato IGES.

19

conhecidas e integrações numéricas são os mais relevantes, estes espaços não são umapreocupação. No entanto há um outro aspecto importante, em alguns casos os parâ-metros espaciais das curvas de intersecção (curvas de aparamento) de duas superfíciespodem não combinar na interface. Isto pode se tornar importante quando simularmosa geometria, uma vez que as funções de base na interface tem de preservar sua con-tinuidade. É fato que ainda está muito longe de se alcançar um estado de integraçãoadequado entre a simulação e o CAD.

3.3 Principais Entidades IGES

3.3.1 Rational B-Spline Surface Entity (Type 128)

Esta entidade pode representar diversas superfícies analíticas de interesse genérico.Sua informação é importante tanto para o sistema de geração (softwares CAD), quantopara o sistema de recebimento (MATLAB) . O número de parâmetro do formato dodiretório é utilizado para a comunicação desta informação.

Caso a Rational B-spline surface represente um tipo de superfície escolhida pelousuário, o número do formato corresponderá ao tipo desejado. A ordem preferencialvai de 1 a 9, seguida do número 0. Por exemplo, se a superfície é um cilindro circularreto, o número do formato deverá ser definido como 2. Caso a superfície seja umasuperfície de revolução ou um toróide, o número do formato deverá ser definido como0.

Se para cada valor fixado da segunda variável paramétrica, as curvas resultantesque sejam funções da primeira variável paramétrica são fechadas, PROP1 deverá serdefinido como 1; Caso contrário, PROP1 deverá ser definido como 0; De maneirasimilar, se para cada valor fixado da primeira variável, as curvas resultantes que sejamfunções da segunda variável paramétrica são fechadas, PROP2 deverá ser definidocomo 1; Caso contrário, PROP2 deverá ser definido como 0. Matematicamente pode-se descrever a explicação anterior, como se segue:

PROP1 deverá ser definido como 1 se e somente se, para cada valor de V (0) ≤V ≤ V (1), no ponto (U(0),V) e (U(1),V) da superfície, ambas classificam-se da mesmaforma. De maneira análoga, PROP2 deverá ser definido como 1 se e somente se, paracada valor U(0) ≤ U ≤ U(1), no ponto (U,V(0)) e (U,V(1)) da superfície, ambasclassificam-se da mesma forma.

Se a superfície é racional (não possui todos os pesos iguais), PROP3 deverá serdefinido como 0. Mas caso todos os pesos sejam iguais entre si, a superfície é polinomiale deverá ser definida como 1. A superfície será polinomial desde que todos os pesosse cancelem e o denominador da fração se reduza a um único número. Além disso, os

20

pesos deverão ser números reais positivos.Se a superfície é periódica com respeito a primeira variável paramétrica, PROP4

deverá ser definido como 1; Caso contrário, PROP4 deverá ser definido como 0. Caso asuperfície apresente periodicidade em relação a segunda variável paramétrica, PROP5deverá ser definido como 1; Caso contrário deverá ser definido como 0. As classificaçõesde periodicidade são de caráter meramente informativo. As superfícies classificadascomo periódicas são avaliadas exatamente da mesma maneira que as não periódicas.

Note que os pontos de controle estão no espaço definido da superfície. A tabela 3.1para a entidade Rational B-Spline Surface apresenta os números de forma, já a tabela3.2 resume as variáveis do ParameterData.

Tabela 3.1: Rational B-Spline Surface: Números de forma

Forma Significado

0 A forma da superfície é definida pelos parâmetros da Rational B-Spline

1 Plano

2 Cilindro circular reto

3 Cone

4 Esfera

5 Toróide

6 Superfície de revolução

7 Cilindro extrudado

8 Superfície regrada

9 Superfície geral quádrica

Tabela 3.2: Rational B-Spline Surface: ParameterData

Índice Nome Tipo Descrição

1 K1 Número inteiro Índice superior da primeira soma.

2 K2... Índice superior da segunda soma.

3 M1... Ordem do primeiro conjunto de funções de base.

4 M2... Ordem do segundo conjunto de funções de base.

5 PROP1...

1 = Fechado na direção da primeira variável paramétrica0 = Aberto

6 PROP2...

1 = Fechado na direção da segunda variável paramétrica0 = Aberto

7 PROP3...

0 = Racional1 = Polinomial

8 PROP4...

0 = Não periódica na direção da primeira variável paramétrica1 = Periódica na direção da primeira variável paramétrica

9 PROP5 Número Inteiro0 = Não periódica na direção da segunda variável paramétrica1 = Periódica na direção da segunda variável paramétrica

21

3.3.2 Rational B-Spline Curve Entity (Type 126)

Esta entidade pode representar diversas curvas analíticas de interesse genérico. Suainformação é importante tanto para o sistema de geração quanto para o sistema derecebimento. O número de parâmetro do formato do diretório é utilizado para a co-municação desta informação.

Caso a Rational B-spline curve represente um tipo de curva escolhida pelo usuário,o número do formato corresponderá ao tipo informado. A ordem preferencial vai de 1a 5, seguida do número 0. Por exemplo, se a curva é uma circunferência ou um arcode circunferência, o número do formato deve ser definido como 2. Se a curva é umaelipse com comprimentos de eixos maiores e menores, o número do formato deverá serdefinido como 3. Se a curva não representar nenhum dos tipos descritos anteriormente,o número de formato deverá ser definido como 0.

Se a curva encontra-se inteiramente inserida em apenas um plano, PROP1 planardeverá ser definido como 1, caso contrário deverá ser definido como 0. Se definido como1, o plano normal deve conter um vetor unitário normal ao plano contendo a curva.Esses campos devem existir mas são ignorados caso a curva seja não planar.

Se os pontos inicial e final da curva avaliados pelos valores dos parâmetros de inícioe fim (ou seja, V (0) e V (1)) são coincidentes, a curva é fechada e PROP2 deverá serdefinido como 1. Caso não se coincidam, PROP2 deverá ser definido como 0.

Se a curva é racional (não possui todos os pesos iguais), PROP3 deverá ser definidocomo 0. Mas caso todos os pesos sejam iguais entre si, a curva é polinomial e PROP3deverá ser definido como 1. A curva será polinomial desde que todos os pesos secancelem e o denominador da fração se reduza a um único número. Além disso, ospesos deverão ser números reais positivos.

Se a curva é periódica com respeito a sua variável paramétrica, PROP4 deverá serdefinido como 1, caso contrário, PROP4 deverá ser definido como 0. As classificaçõesde periodicidade são de caráter meramente informativo. As superfícies classificadascomo periódicas são avaliadas exatamente da mesma maneira que as não periódicas.

Note que os pontos de controle estão no espaço definido da curva. Para a entidadeRational B-Spline Curve, os números de forma são dados pela tabela 3.3. Já a tabela3.4 resume as variáveis do ParameterData.

22

Tabela 3.3: Rational B-Spline Curve: Números de forma

Form Meaning

0 A forma da curva é determinada pelos parâmetros da Rational B-spline

1 Linha

2 Arco de círculo

3 Arco Elíptico

4 Arco Parabólico

5 Arco Hiperbólico

Tabela 3.4: Rational B-Spline Curve: ParameterData

Índice Nome Tipo Descrição

1 K Número inteiro Índice superior da soma

2 M... Ordem das funções de base

3 PROP1... 0 = não planar, 1 = planar

4 PROP2... 0 = curva aberta, 1 = curva fechada

5 PROP3... 0 = racional, 1 = polinomial

6 PROP4 Número inteiro 0 = não periódica, 1 = periódica

3.3.3 Line Entity (Type 110)

Uma linha é definida pelos seus pontos de início e fim. Cada um desses pontos éespecificado em relação ao espaço por um sistema de três coordenas. Em relação adefinição espacial, uma direção é primeiramente associada com a linha a partir de seuponto inicial, e em segundo lugar com seu ponto terminal.

A direção da linha com respeito ao modelo espacial adotado, é determinado a partirda direção original da linha dentro do espaço definido em conjunto com a transformaçãomatricial na linha. Exemplos de line entity são apresentadas na figura 3.2. Já a tabela3.5 resume as variáveis do ParameterData.

Caso necessário, a parametrização é feita da seguinte forma:

C(t) = P1 + t(P2 − P1) para 0 ≤ t ≤ 1 (3.1)

23

Tabela 3.5: Line: ParameterData

Índice Nome Tipo Descrição

1 X1 Número real Ponto de partida P1

2 Y1...

3 Z1...

4 X2... Ponto final P2

5 Y2...

6 Z2 Número real

Figura 3.2: Exemplos utilizando Line Entity

3.3.4 Composite Curve Entity (Type 102)

Uma composite curve é uma curva contínua que resulta do agrupamento de certasentidades constituintes em uma unidade lógica. Uma composite curve é definida comouma lista ordenada de entidades que consistem em pontos, pontos conectados, e entida-des de curvas parametrizadas. A lista de entidades aparece na entrada dos parâmetrosde dados. Cada entidade na lista de definição é indicada por meio de um ponteiro aum diretório de entrada dessa entidade. A ordem da lista de definição é a mesma quea ordem da listagem desses ponteiros.

Cada entidade constituinte tem sua própria matriz de transformação e atributos deexibição. Ela poderá ter propriedades ou textos associados. Devido as entidades cons-tituintes estarem subordinadas a uma entidade combinada (composite entity), a chavede entidade subordinada de cada entidade constituinte deverá indicar uma dependênciafísica.

24

Uma composite curve é uma curva direcionada, contendo uma ponto inicial e umponto final. A direção da composite curve é determinada pela direção da entidade decurvas constituintes da seguinte maneira: O ponto inicial da composite curve é o pontoinicial da primeira entidade de curva que aparece na lista de definição. Já o ponto finalpara a composite curve é o ponto final da última entidade de curva que aparece nalista de definição. Dentro da própria lista de definição, o ponto final de cada entidadede curva constituinte possui as mesmas coordenadas que o ponto inicial da entidade decurva subsequente.

As entidades ponto e ponto de conexão estão incluídas como tipos de entidadespermitidas das quais as propriedades ou notas gerais podem estar anexadas ao pontoinicial ou final de qualquer entidade de curva constituída na lista de definição.

Uma relação de conexão lógica pode ser indicada a partir de duas composite curvesou uma composite curve e uma rede de subfiguras referenciadas a entidade do pontode conexão. Para o caso especial de conexão lógica de um ponto de conexão emuma subfigura a um ponto de conexão em uma outra subfigura, é permitida umacomposite curve cuja lista contenha duas entidades de pontos de conexão sem curvasde intervenção. Neste caso, o exemplo da entidade de composite curve não é umacurva no sentido comum, não é continua e não possui comprimento de arco. Este uso épermitido apenas em algumas aplicações (como, por exemplo, no método dos elementosfinitos). Existem algumas restrições com respeito ao uso da entidade ponto em umaentidade composite. São elas:

1. As entidades pontos de conexão e dois pontos não podem aparecer consecutiva-mente na lista de definição a não ser que elas sejam as únicas entidades presentesna composite curve. Tais composite curves usadas como conectores lógicos devemapresentar uma marca de uso de valor = 04 (lógica/posicional).

2. Se um ponto de conexão, um ponto e uma curva são adjacentes na lista dedefinição, então as coordenadas do ponto de conexão ou do ponto devem combinarcom as coordenadas finais da curva sempre que a curva anteceder o ponto deconexão ou o ponto, e também deve combinar com as coordenadas do pontoinicial da curva sempre que a curva vier em seguida ao ponto de conexão ou aoponto.

3. Uma composite curve não pode consistir em uma entidade de apenas um pontoou de apenas um ponto de conexão.

Caso necessário, a parametrização de uma composite curve é obtida a partir daparametrização de curvas constituintes. Uma vez que um ponto e um ponto de co-

25

nexão não contribuem para a parametrização de uma composite curve, eles não sãoconsiderados nesta definição.

A tabela 3.6 mostra a nomenclatura usada para uma composite curve:

Tabela 3.6: Nomenclatura usada em uma composite curve

C Composite curve;N Número de curvas constituintes (N ≥ 1);CC(i) i-ésima curva constituinte, para cada i tal que 1 ≤ i ≤ N ;PS(i) Valor paramétrico do início de CC(i);PE(i) Valor paramétrico do final de CC(i);T(0) 0.0;T(i)

∑ij=1(PE(j)− PS(j)), para cada i tal que 1 ≤ i ≤ N ;

Na tabela 3.6, tem-se:

1. Os valores paramétricos de C variam de T (0) a T (N); e

2. C(u) = CC(i)(u − T (i − 1) + PS(i)), onde u é um valor paramétrico tal queT (i− 1) ≤ u ≤ T (i).

Uma composite curve que consiste unicamente de um ponto e/ou um ponto deconexão, não é parametrizável.

Como exemplo de uma parametrização de uma composite curve considere, N = 3,e para cada i tal que 1 ≤ i ≤ 3, faça CC(i) igual a i-ésima curva constituinte dacomposite curve C. Assuma os valores paramétricos iniciais e finais para cada CC(i)dados pela tabela 3.7:

Tabela 3.7: Composite Curve: Valores paramétricos iniciais e finais

i PS(i) PE(i)

1 0,0 0,4

2 3,3 3,5

3 0,0 0,3

Logo T (0) = 0, 0, T (1) = 0, 4, T (2) = 0, 6, T (3) = 0, 9, e a composite curve C estádefinida entre 0,0 a 0,9. Esta situação está ilustrada na figura 3.3.

A combinação das curvas CC(1), CC(2) e CC(3), representam a composite curveC. Um exemplo de composite curve e sua parametrização é mostrada na figura 3.4. Jáa tabela 3.10 resume as variáveis do paramater data.

26

Tabela 3.8: Composite Curve: ParameterData

Índice Nome Tipo Descrição

1 N Número inteiro Número de entidades

2 DE(1) Ponteiro Ponteiro para o DE da primeira entidade constituinte...

......

...

1 +N DE(N) Ponteiro Ponteiro para o DE da última entidade constituinte

Figura 3.3: Parametrização da Composite Curve

27

Figura 3.4: Exemplo de uma Composite Curve

3.3.5 Curve on a Parametric Surface Entity (Type 142)

A entidade Curve on Parametric Surface associa uma dada curva com uma superfíciee identifica a curva como composição desta. Seja:

S = S(u, v) = (x(u, v), y(u, v), z(u, v)) uma parametrização da superfície cujo do-mínio é um retângulo definido por:

D = {(u, v)|u1 ≤ u ≤ u2 e v1 ≤ v ≤ v2}Seja B = B(t) uma curva definida por:B(t) = (u(t), v(t)) para a ≤ t ≤ b, tendo seus valores contidos no domínio de D.Uma curva Cc(t) na superfície S(u, v) é a composição de dois mapeamentos, S e B,

definidos como se segue (Cc(t) representa uma "composition curve"):

Figura 3.5

A curva B encontra-se no espaço bidimensional que é o domínio da superfície S.Portanto, a representação usada para B, a qual foi derivada de curva definida nestaespecificação, deve ser bidimensional.

A marca da entidade B é escolhida como 05, indicando que B está contido no

28

parâmetro espacial da superfície. Consequentemente, B não pode ser escalonado, e,se a matriz de transformação é aplicada em B, ela tem de ser mapeada dentro doparâmetro espacial de D no qual encontra-se inserida.

Uma curve on parametric surface é dada:

1. Pelo mapeamento de Cc e a indicação que a curva encontra-se na superfície S(u, v)

2. Pelo mapeamento de B e S cuja composição nos dá a curva Cc.

Uma curve on parametric surface pode ser criada de várias maneiras:

1. Como projeção em uma superfície de uma curva dada em um modelo espacialnuma maneira pré-determinada, por exemplo, paralela a um vetor fixo,

2. Como intersecção de duas superfícies,

3. A partir de uma função pré-determinada relacionando os parâmetros u e v dasuperfície,

4. A partir de uma curva especial, tal como uma geodésica, surgindo de um dadoponto em uma certa direção, uma curva principal (linha de curvatura) surgindode um certo ponto, uma curva assintótica surgindo de um certo ponto, uma curvaisoparamétrica para um dado valor, ou qualquer outro tipo de curva especial.

A variável ParameterData contém três ponteiros:

1. Um ponteiro apontado para curva da qual B(t) é derivada.

2. Um ponteiro apontado para a superfície S(u, v).

3. Um ponteiro para o mapeamento de C(r), tal que:

• C(r) e Cc(t) compartilham a mesma imagem no modelo espacial.

• C(r) e Cc(t) possuem os mesmos pontos inicial e final.

• Existe uma relação matemática implícita entre os parâmetros t e r.

• C(r) e Cc(t) devem ser tais que t é relacionado a r em um crescimento mo-nótono de forma. Isso garante que as orientações de C(r) e Cc(t) coincidam,e não ocorre rastreamento múltiplo acidental.

Além do que foi descrito acima, a seção ParameterData também contém:

1. Uma marca de indicação de como a curva foi criada

2. Uma marca para indicar qual das duas representações foi determinada pelo sis-tema de envio.

29

Tabela 3.9: Curve on a Parametric Surface: ParameterData

Índice Nome Tipo Descrição

1 CRTN Número Inteiro

Indica a maneira que a curva foi criada na superfície:0 = Não especificada1 = Projeção da curva dada na superfície2 = Interseção de duas superfícies3 = Curva isoparamétrica, ou seja, uma u-paramétrica ou umacurva v-paramétrica

2 SPTR Ponteiro Apontado para DE da superfície na qual a curva se encontra

3 BPTR PonteiroApontado para DE da entidade que contém a definição da curva Bno espaço paramétrico (u, v) da superfície S

4 CPTR Ponteiro Apontado para DE da curva C

5 PREF Número Inteiro

Indica a representação escolhida no sistema de envio:0 = Não especifica1 = S ◦ B é escolhida2 = C é escolhida3 = C e S ◦ B são igualmente escolhidas

3.3.6 Trimmed (Parametric) Surface Entity (Type 144)

Uma simples curva fechada no plano euclidiano divide o mesmo em dois componen-tes abertos conectados e disjuntos, onde um é delimitado e o outro não. O elementodelimitado é chamado de região interna à curva, já o elemento não delimitado é cha-mado de região externa à curva.

O domínio da trimmed surface é definido como a região comum do interior dafronteira externa e o exterior de cada fronteira interna incluindo as curvas de fronteira.Note que a trimmed surface é definida da mesma forma que a superfície original S(u, v)(untrimmed surface), mas possui um domínio diferente. As curvas que delimitam atrimmed surface tanto externamente quanto internamente são curvas que se encontramna superfície S. Estas por sua vez são substituídas por meio de curvas na superfícieparamétrica (Tipo 142).

Seja S(u, v) uma superfície regular parametrizada, cujo domínio untrimmed (nãoaparado) é um retângulo D que consiste daqueles pontos (u, v) tais que a ≤ u ≤ b

e c ≤ v ≤ d para dadas constantes a, b, c, e d com a < b e c < d. Considere que asuperfície S tem seus valores determinados em um espaço euclidiano tridimensional epode ser expressada como:

S = S(u, v) =

x(u, v)

y(u, v)

z(u, v)

para cada par ordenado (u, v) em D.

30

Seja também S sujeita as seguintes condições de regularidade:

1. Possui um vetor normal contínuo no interior de D.

2. Cada elemento de S possui um e somente um elemento correspondente em D.

3. Não existem pontos de singularidade em D, ou seja, os vetores das primeirasderivadas parciais de S em cada ponto de D são linearmente independentes.

Dois tipos simples de curvas fechadas são utilizadas para definir o domínio da trim-med surface.

Fronteira externa: Existe exatamente uma, pertencente a D, que em particular,pode ser a curva de fronteira de D.

Fronteira interna: Poderá haver um número qualquer destas, até mesmo ne-nhuma. A configuração das fronteiras internas satisfazem dois critérios:

1. As curvas, bem como seus interiores, são mutuamente disjuntos (não possuemelementos em comum),

2. Cada curva encontra-se no interior da fronteira externa.

Se a fronteira externa da superfície está definida como a fronteira de D e não háfronteiras internas, a trimmed surface é untrimmed (não aparada). A tabela 3.10resume as variáveis do ParameterData.

Tabela 3.10: Trimmed (Parametric) Surface: ParameterData

Índice Nome Tipo Descrição

1 PTS Ponteiro Apontado para DE da superfície que será aparada

2 N1 Número inteiro0 = a fronteira externa é a fronteira de D1 = caso contrário

3 N2 Número inteiroEste número indica a quantidade de curvas simples fechadasque compõem a fronteira interna de uma trimmed surface.Caso nenhuma fronteira interna seja definida, este número será igual a zero.

4 PT0 PonteiroApontado para DE da Curve on a parametric surface entity que compõe afronteira externa de uma trimmed surface ou zera.

5 PTI(1) PonteiroApontado para DE da primeira curva simples fechada de fronteira interna(Curve on a parametric surface entity) de acordo com uma ordem arbitrária destas entidades.

......

......

4+N2 PTI (N2) PonteiroApontado para DE da última curva simples fechada de fronteira interna(Curve on a parametric surface entity)

3.3.7 Transformation Matrix Entity (Type 124)

A Transformation Matrix Entity transforma vetores coluna de três linhas por meioda multiplicação de uma matriz e a adição de um vetor. A notação para essa transfor-mação é a seguinte:

31

R11 R12 R13

R21 R22 R23

R31 R32 R33

XINPUT

Y INPUT

ZINPUT

+

T1

T2

T3

=

XOUTPUT

Y OUTPUT

ZOUTPUT

A coluna [XINPUT, Y INPUT, ZINPUT ], ou seja, o vetor coluna, é o vetor a sermodificado, e a coluna [XOUTPUT, Y INPUT,ZINPUT ] é o vetor coluna resultantedessa transformação. R = [Rij] é uma matriz quadrada 3 × 3 composta de númerosreais, e T = [T1, T2, T3] é um vetor coluna de três linhas composto de números reais.Assim, são necessários 12 números reais para uma Transformation Matrix Entity. Essaentidade pode ser considerada uma entidade operador que se inicia com um vetor deentrada, executa as operações descritas anteriormente, e gera o vetor de saída ou vetorresultante.

Frequentemente, o vetor de entrada lista as coordenadas de alguns pontos em umsistema de coordenadas, e o vetor de saída lista as coordenadas deste mesmo ponto emum segundo sistema de coordenadas. Desta forma, a matriz R e o vetor de conversão Texpressam uma relação genérica entre os dois sistemas de coordenadas. Considerandoos vetores de entrada como vetores coluna [1, 0, 0], [0, 1, 0] e [0, 0, 1], e calculando osresultados, pode-se ilustrar a relação espacial entre os dois sistemas de coordenadas.

Por exemplo, para

R =

0 0 1

0 1 0

−1 0 0

, T =

0

0

0

a relação espacial dos sistemas de coordenadas de entrada e saída é dado na figura 3.6.

Todos os sistemas de coordenadas aqui são adotados como ortogonais, cartesianose destros, a não ser que uma consideração específica seja feita em relação a estascaracterísticas.

A seguir serão apresentadas três áreas específicas onde uma Transformation MatrixEntity é usada para transformar sistemas de coordenadas. Cada exemplo ilustra umaescolha específica de entrada e saída de sistemas de coordenadas. Outras escolhas desistemas de coordenadas podem ser convenientes em outras aplicações.

A situação usual para o uso da Transformation Matrix Entity se dá quando o vetorde entrada se refere à um sistema de coordenadas espaciais definido para uma certaentidade, e o vetor de saída refere-se à um sistema modelo de coordenadas espaciais.Neste caso, a matriz R é chamada de matriz de definição, e a Transformation Ma-trix Entity definindo R e T está apontada no "field seven"(Campo da Transformation

32

Matrix) do diretório da entidade de entrada. Neste uso da Transformation Matrix, amatriz R está sujeita as restrições apresentadas na forma 0 e da forma 1 que serãodefinidas mais adiante.

Um segunda situação se dá no caso em que o vetor de entrada refere-se ao modelode coordenadas espaciais e o vetor de saída refere-se à um sistema de coordenadasvisualizável. Neste caso, a matriz R é chamada de view matrix, e está sujeita asrestrições apresentadas na forma 0. Note que quando uma entidade plana é vista emcomprimento verdadeiro (ou seja, o plano visualizado é paralelo ao plano contendo aentidade), a matriz de rotação apontada para entidade plana pelo "DE Field 7", seráo inverso (igual a matriz transposta) da matriz apontada para a "View Entity".

Uma terceira situação se dá envolvendo aplicações do método de elementos finitos.Aqui, pode-se estudar o caso em que um sistema de coordenadas de entrada estárelacionado a um sistema de coordenadas de saída por uma matriz particular R e T , e,por sua vez, o sistema de coordenadas de saída é usado como um sistema de coordenadasde entrada para uma segunda combinação de R e T , e assim por diante. Estes sistemasde coordenada são frequentemente chamados de sistemas de coordenadas locais. Jáum modelo espacial é geralmente chamado de sistema de referência. Por exemplo, alocalização de um nó de referência em um elemento finito pode ser dado em um sistemade coordenadas local, que pode servir como um sistema de coordenadas de entradapara um segundo sistema de coordenadas local, o qual por sua vez pode servir comoum sistema de coordenadas de entrada para um sistema de coordenadas do modeloespacial, que é o sistema de referência.

Sempre que sistemas de coordenadas estão relacionados sucessivamente uns aosoutros como descrito acima, um resultado fundamental é que o efeito combinado dasmudanças do sistema de coordenadas individual pode ser expressado em termos de umaúnica matriz R e um vetor transposto T . Por exemplo, se a mudança de um sistemade coordenada envolvendo a matriz R2 e o vetor transposto T2 é aplicado seguindo amudança de coordenada envolvendo a matriz R1 e o vetor transposto T1, então a matrizR e o vetor transposto T que expressam as mudanças combinadas são R = R2 × R1 eT = R2 × T1 + T2.

A operação R2×R1 representa uma multiplicação de matrizes 3× 3, onde a ordemdos fatores é importante. A matriz R e a matriz transposta T são processadas demaneira similar sempre que mais de duas mudanças de sistemas de coordenadas sãoaplicados sucessivamente.

Sucessivas mudanças em sistemas de coordenadas são especificadas a partir de umaTransformation Matrix referenciando-se a outra Transformation Matrix através do "Fi-eld 7"do diretório de entrada. No exemplo acima, uma Transformation Matrix con-

33

tendo R1 e T1, teria no diretório de entrada do "Field 7", um ponteiro direcionado paraa Transformation matrix contendo R2 e T2. A regra geral é tal que Transformationmatrix Entities aplicadas primeiramente em sucessão, irão referenciar-se as Transfor-mation Matrix Entities aplicadas posteriormente. Note que o a matriz resultante doproduto R2 × R1 no exemplo acima não aparece explicitamente nos dados, mas, casonecessário, pode ser processada de acordo com as regras usuais de multiplicação dematrizes.

Um segundo exemplo de sistemas de coordenadas sendo relacionados de maneirasucessiva, em complemento ao que fora explicado no exemplo do método de elementosfinitos anteriormente, envolve uma maneira de localizar um arco de cone dentro de ummodelo espacial que esteja numa posição padrão no espaço definido. Neste caso, R1

e T1 movem o cone de sua posição padrão a uma localização arbitrária em qualquerplano no espaço definido, satisfazendo a condição ZT = constant. Portanto, R133 =

1, 0, R131 = R132 = R113 = R123 = 0, 0 e T1 pode ser um vetor transposto arbitrário.Dessa maneira, R2 e T2 posicionam o arco de cone realocado no modelo espacial,(R2 pode ser uma matriz de definição arbitrária e T2 pode ser um vetor transpostoarbitrário). Note que para R1 e T1, ambos, vetor de entrada e vetor de saída, sereferem ao mesmo sistema de coordenadas, nomeados como espaço de definição para oarco de cone.

Uma matriz 3× 3 é chamada de ortonormal fornecendo sua transposta, Rt, permi-tindo uma matriz inversa para R, e suas colunas, consideradas como vetores, formamuma coleção de vetores unitários ortonormais. A medida que (Rt)t = R, a matriztransposta de uma matriz ortonormal é novamente uma matriz ortonormal. O deter-minante de uma matriz ortonormal é igual a mais um ou menos um. Quando R é umamatriz ortonormal com determinante igual a um negativo, R pode ser expresso comouma rotação em torno de um eixo que passa pela origem seguido por uma reflexãosobre um plano que passa pela origem e é perpendicular ao eixo de rotação.

Para a Transformation Matrix Entity, os números de forma são dados pela tabela3.11:

Tabela 3.11: Transformation Matrix: Números de forma

Número de Forma Uso

0 ou 1 Matriz de definição de uma entidade

10,11, ou 12 Matrizes especiais representando a entidade nodal (Tipo 134)

Forma número 0: (forma padrão) R é uma matriz ortonormal com determinantepositivo igual a mais um. T é arbitrário. As colunas de R, se avaliadas em ordem,

34

formam um sistema tridimensional de coordenadas de mão direita no sistema de coor-denadas de saída.

Forma número 1: R é uma matriz ortonormal com determinante negativo iguala menos um. T é arbitrário. As colunas de R, se avaliadas em ordem, formam umsistema tridimensional de coordenadas de mão esquerda no sistema de coordenadas desaída.

Uma matriz de definição associada com uma View Entity (tipo 140) não deve usara forma de número 1.

Forma número 10: Este número de forma, quando usado, contém informaçõesespeciais em conjunto com a Node Entity (tipo 134) em aplicações do MEF.

Observe a figura 3.7 (a) para familiarizar-se a notação que será abordada a seguir. Amatriz R e o vetor T são usados para transformar os dados do sistema de coordenadas(u1, u2, u3) para o sistema de coordenadas locais (x, y, z).

O sistema de coordenadas (u1, u2, u3) tem sua origem em um ponto fixo arbitrárioXOFFSET

Y OFFSET

ZOFFSET

no sistema de coordenadas (x, y, z) e é considerado como sendo deslocado paralelamenteao sistema de coordenadas de referência. Assim,

R =

1 0 0

0 1 0

0 0 1

, T =

XOFFSET

Y OFFSET

ZOFFSET

e então

1 0 0

0 1 0

0 0 1

u1

u2

u3

+

XOFFSET

Y OFFSET

ZOFFSET

=

XLOCAL

Y LOCAL

ZLOCAL

Note que a orientação dos dois sistemas de coordenadas pode ser descrita afirmandoque o sistema de coordenadas (u1, u2, u3) é o sistema obtido a partir da imposição deum sistema de coordenadas curvilineares sobre o espaço (x, y, z), e construindo vetorestangentes as três curvas de coordenadas curvilineares em um dado ponto fixo que servemcomo vetores de base. Neste caso especial de deslocamento paralelo, as coordenadascurvilineares impostas são idênticas as coordenadas (x, y, z) já existentes.

35

Forma número 11: Este número de forma quando usado, contém informaçõesespeciais em conjunto com a Node Entity (tipo 134) em aplicações do MEF.

Observe a figura 3.7 (b) para familiarizar-se a notação que será abordada a seguir.A matriz R e o vetor T são usados para transformar os dados do sistema de coordenadas(u1, u2, u3) para o sistema de coordenadas locais (x, y, z).

O sistema de coordenadas (u1, u2, u3) tem sua origem em um ponto fixo arbitrário

XOFFSET = r0 cos θ0 r0 > 0

Y OFFSET = r0 sin θ0 0 ≤ θ0 ≤ 360◦

ZOFFSET = z0 −∞ < z0 <∞

no sistema de coordenadas (x, y, z). Para r0, onde θ = 0◦ o sistema (u1, u2, u3) éobtido pela imposição de coordenadas curvilineares ortonormais no espaço (x, y, z) noqual estão as coordenadas cilíndricas (r, θ, z) com

x = r cos θ

y = r sin θ

z = z,

e então construindo os vetores unitários tangentes as três coordenadas curvilinearesdas curvas em um dado ponto fixo para servirem como vetores de base.

Assim, a relação matemática entre os sistemas de coordenadas (u1, u2, u3) e (x, y, z)é dado por:

cos θ0 − sin θ0 0

sin θ0 cos θ0 0

0 0 1

u1

u2

u3

+

XOFFSET

Y OFFSET

ZOFFSET

=

XLOCAL

Y LOCAL

ZLOCAL

Foma número 12: Esse número de forma contém informações especiais quando usadoem conjunto com a entidade nodal (Tipo 134) em aplicações de elementos finitos.

Observe a figura 3.7 (c) para familiarizar-se a notação que será abordada a seguir. Amatriz R e o vetor T são usados para transformar os dados do sistema de coordenadas(u1, u2, u3) para o sistema de coordenadas locais (x, y, z).

O sistema de coordenadas (u1, u2, u3) tem sua origem no ponto fixo arbitrário

XOFFSET = r0 sin θ0 sinφ0 r0 > 0

Y OFFSET = r0 sin θ0 cosφ0 0 ≤ θ0 ≤ 180◦

ZOFFSET = r0 cos θ0 0 ≤ φ0 < 360◦

36

no sistema de coordenadas (x, y, z). Para r0 = 0, onde θ0 = φ0 = 0◦; Para θ0 = 0◦ ou180◦, onde φ0 = 0◦, o sistema (u1, u2, u3) é obtido pela imposição de coordenadas curvi-lineares ortonormais no espaço (x, y, z) no qual estão as coordenadas esféricas (r, θ, φ)com

x = r sin θ cosφ

y = r sin θ sinφ

z = r cos θ,

e então construindo os vetores unitários tangentes as três coordenadas curvilinearesdas curvas em um dado ponto fixo para servirem como vetores de base. Assim, arelação matemática entre os sistemas de coordenadas (u1, u2, u3) e (x, y, z) é dado por:

sin θ0 cosφ0 cos θ0 cosφ0 − sinφ0

sin θ0 sinφ0 cos θ0 sinφ0 cosφ0

cos θ0 − sin θ0 0

u1

u2

u3

+

XOFFSET

Y OFFSET

ZOFFSET

=

XLOCAL

Y LOCAL

ZLOCAL

Consulte as referências [26] e [24] para uma discussão mais detalhada sobre sistemasde coordenadas curvilineares ortonormais.

Tabela 3.12: Transformation Matrix: ParameterData

Índice Nome Tipo Descrição

1 R11 Real Linha superior

2 R12 Real .

3 R13 Real .

4 T1 Real .

5 R21 Real Segunda Linha

6 R22 Real .

7 R23 Real .

8 T2 Real .

9 R31 Real Terceira linha

10 R32 Real .

11 R33 Real .

12 T3 Real .

37

Figura 3.6: Exemplo de transformação de um sistema de coordenadas matricial

3.4 STEP

O formato STEP é um padrão internacional emergente para troca de dados de mo-delos (desenhos) de produtos. Representa um esforço internacional, e a complexidade,largura e comprimento do STEP superam a do IGES.

O formato STEP é adotado pelo título oficial de ISO 10303, um padrão ISO parainterpretação computacional e troca de dados de produtos industriais. O desenvol-vimento do STEP se deu depois do desenvolvimento do IGES. Foi originalmente umresultado do empreendimento de países europeus dentro do comitê técnico da ISTC184 (Industrial Automation Systems) e seu subcomitê SC4 (External Representationof Product Model Data) em julho de 1984. As estruturas das geometrias do STEPsão as mesmas do IGES. Quanto a estrutura do arquivo STEP, as curvas e superfíciesNURBS são definidas na chamada parte 42, a parte do STEP que determina a basegeométrica e a topologia de um modelo (desenho). De fato, por conta de sua genera-lidade, estabilidade numérica, e pela aceitação industrial das representações NURBS,esta parte foi escolhida como o método exclusivo para troca de splines genéricas, po-linômio de extensão única, curvas racionais e superfícies através dos arquivos STEP. A

38

Figura 3.7: Notações para formas específicas do MEF de uma Transformation MatrixEntity

parte 42 inclui curvas, superfícies, e sólidos tridimensionais.Uma curva NURBS é especificada no STEP por:

• Grau, p, e o número de pontos de controle, n+ 1;

• Pontos de controle, Pi, e os pesos, wi, apenas pesos positivos são permitidos;

39

• Um vetor nodal, U , contendo m + 1 = n + p + 2 nós, satisfazendo a ui−1 ≤ ui

para i = 1, ...,m; STEP delimita a multiplicidade dos nos - os valores do primeiroe ultimo nó podem apresentar multiplicidade de no máximo p + 1, e a máximamultiplicidade dos nos internos valem p.

• Informações adicionais bem como o tipo do vetor nodal, se a curva é aberta oufechada, se é ou não auto interceptada, e o tipo de descrição aplicável (polilinha,circunferencial, e cônica).

O conceito de "trimming" em uma curva pelos parâmetros s0 e s1, u0 ≤ s0 < s1 ≤um, também existe no formato STEP, mas em um nível mais elevado, pois não estáincorporado à definição da curva. O formato STEP distingue quatro tipos de B-splines,baseado na forma de seus vetores nodais: uniforme, quase uniforme, Bézier, e nãouniforme. Um vetor nodal é uniforme se ui−ui−1 = d para i = 1, ...,m e uma constantepositiva d. Quase uniforme corresponde a uma curva "unclamped"e uniforme, ou seja,u0 = ... = up, um−p = ... = um, e ui−ui−1 = d para i = p+1, ...,m−p e uma constantepositiva d. Em Bézier, valores de nós distintos são igualmente espaçados, e o primeiroe último possuem uma multiplicidade p+ 1 e todos os nós internos tem multiplicidadep, ou seja, a curva é Bézier por partes. Qualquer vetor nodal que não se encaixa emnenhuma destas três definições é chamado de não uniforme. Uma superfície STEPNURBS é definida analogamente. Pontos de controle e pesos são separados, e os pesosdevem ser positivos. Uma superfície é uniforme, quase uniforme, ou Bézier por partesse ambos nós u e v são dos tipos respectivos; Caso contrário serão não uniformes. Háuma bandeira de auto interseção, uma bandeira aberta/fechada para ambas direçõesu e v, e, caso se aplique, um marcador indicando um tipo especial, tais como, plano,cilindro, superfície regrada, etc.

3.5 PHIGS

Ao passo que IGES e STEP são arquivos padrões de troca, PHIGS é um padrãointernacional que especifica um dispositivo independente interativo de uma interfacede programação gráfica. PHIGS surgiu por volta da década de 80, e as NURBS foramincorporadas a este padrão em 1992 como parte de uma extensão PHIG PLUS [16].Uma implementação PHIGS que suporta NURBS permite ao programador de aplica-tivos transmitir as curvas e superfícies NURBS diretamente para exibição. Uma curvaNURBS é definida em PHIGS por:

• Ordem (= grau+ 1), número de pontos de controle, e número de nós;

40

• Pontos de controle, Pi , se é a curva é não racional, por outro lado, os pon-tos de controle homogêneos de quatro dimensões, Pw

i ; uma bandeira indica aracionalidade. Os pesos devem ser positivos;

• Os nós; apenas "clamped" vetores nodais são permitidos, tanto uniformes quantoos não uniformes;

• Parâmetros "trimming" so e s1, definindo o início e fim efetivo da curva desejada.

Superfícies NURBS são definidas analogamente, exceto pelo fato de não possuíremparâmetros "trimming". Laços mais gerais de "trimming" que consistem em curvasNURBS na superfície dos parâmetros do domínio, são permitidas.

41

Capítulo 4 IGES Toolbox

4.1 Introdução

Neste capítulo serão detalhadas as principais funções da Toolbox do IGES[3]. Estatoolbox tem código aberto e pode ser obtida diretamente da página da MathWorks. Apartir dessa Toolbox, os arquivos IGES provenientes de softwares CAD podem ser lidose interpretados pelo software MATLAB. Apesar de essa Toolbox ainda não abrangera leitura de todos os tipos de entidades contidas em um arquivo IGES, constata-se apartir de sua utilização, a simplicidade desta ferramenta. No entanto, a mesma podeser de grande eficiência para o desenvolvimento de aplicações CAD. A partir do co-mando "makeIGESmex" (Comando responsável pela compilação do código) algumasdas funções escritas em C são compiladas com a toolbox, é possível se fazer a lei-tura do arquivo IGES dentro do software MATLAB, mas para isso faz-se necessária acompilação prévia do código fonte que será utilizado.

A principal função "iges2matlab", responsável por extrair os parâmetros de dadosem um arquivo IGES para uma cell array, possui como dados de entrada o arquivoIGES e informações para plotagem. Já como parâmetros de saída desta função te-mos:ParameterData, uma cell array contendo os parâmetros de dados do arquivo IGESe informações adicionais; EntityType, um vetor contendo as entidades do arquivo IGESconvertidas para o MATLAB; numEntityType, outro vetor com o número de entidadespertencentes ao vetor EntityType; unknownEntityType, um vetor contendo entidadesnão reconhecidas pela função "iges2matlab" ; numunknownEntityType, um outro vetorcontendo o número de entidades pertencentes ao vetor unknownEntityType.

4.2 Principais Funções

As principais funções desta Toolbox são apresentadas a seguir:

• iges2matlab: Extrai os parâmetros de dados em um arquivo IGES para uma cellarray chamado ParameterData.

• plotIGES: Plota o modelo CAD proveniente do arquivo IGES.

• plotIGESentity: Plota uma dada entidade de um modelo CAD proveniente deum arquivo IGES.

• plotNURBS: Plota uma entidade NURBS (superfície ou curva).

42

• transformIGES: Transforma os parâmetros de dados de um modelo CAD prove-niente de um arquivo IGES com uma rotação/reflexão e uma translação.

• findEntityIGES: Retorna um vetor com índices que possuem um dado tipo deentidade indicada por um número.

• projIGES: Retorna projeções de pontos em uma superfície de um modelo CADproveniente de um arquivo IGES.

• projpartIGES: Retorna pontos de projeção em uma parte da superfície de ummodelo CAD proveniente de um arquivo IGES.

• projpartPerspectiveIGES: Retorna pontos de projeções em perspectiva em umaparte da supefície de um modelo CAD proveniente de um arquivo IGES.

• projpartSphericalIGES: Retorno pontos de projeções esféricas em uma parte dasuperfície de um modelo CAD proveniente de um arquivo IGES.

• srfRepInProjection: Retorna uma representação da superfície usando valores deentrada/saída provenientes do comando projpartIGES.

• linAppSrfIGES: Retorna uma aproximação de uma superfície.

• icpSrfLinRep: Retorna uma representação da superfície.

• getDVGtree: Retorna uma DVG tree.

• "icpDVGpnt2pntLS"(mex functions) e "icpDVGpnt2pntTu": Algorítmos ICP.

• stl2matlab: Extrai dados em formato de aquivos STL para o MATLAB.

• plotSTL: Plota dados provenientes de arquivos STL.

• transformSTL: Transforma vertices de objetos STL com uma rotação/reflexão euma translação.

• igesToolBoxGUI: Guia Matlab (igesToolBoxGUI.m e igesToolBoxGUI.fig).

4.2.1 Subfuncões

Esta Toolbox também apresenta uma série de subfuncões. São elas:

• retSrfCrvPnt: Retorna valores provenientes das superfícies, curvas e pontos. Umadocumentação completa não é apresentada.

43

• nrbDerivativesIGES: Retorna as derivadas de primeira e segunda ordem dasNURBS.

• getSurfaceDistributedPoints: Retorna pontos distribuídos em uma superfície.

• nrbCrvPlaneIntrsctIGES (mex function): Encontra o valor de um parâmetro deuma curva NURBS no ponto mais próximo a um determinado plano.

• nrbevalIGES (mex function): Avalia as NURBS e suas derivadas.

• nrbSrfRegularEvalIGES (mex function): Avalia uma superfície NURBS nos seusparâmetros de valores em uma rede regular.

• closestNrbLinePointIGES (mex function): Retorna o ponto mais próximo entreum ponto/linha e um trecho de NURBS.

• LScrvApp (mex function): Cria matrizes para curvas NURBS caberem no espaço2D (bidimensional).

• offsetNURBSsurface (mex function): Cria uma superfície NURBS deslocada.

• createDVGtree (mex function): Cria uma DVG-tree.

• makeIGESmex: Arquivo .m para compilação dos arquivos mex.

Para maiores detalhes sobre as funções listadas acima, o usuário deve abrir omenu ajuda para cada função no Matlab. A pasta mexSourceFiles da Toolboxdo IGES, contém o código fonte em linguagem C para as subfunções dos arquivosmex.

4.3 Bracket: Utilizando a toolbox para geração do modelo CAD

Esta seção apresenta um exemplo da utilização da toolbox para geração de ummodelo CAD. A Figura 4.1 mostra o script utilizado no MATLAB para a geraçãodesse modelo.

O script do Matlab apresentado na Figura 4.1 contém uma série de comandosque permitem a análise detalhada da construção do modelo. Além disso, permiteque o usuário plote qualquer uma das entidades utilizadas na construção do modelogeométrico importado através de um arquivo IGES. Exemplificando esse script, tem-seprimeiramente a função "iges2matlab", responsável por extrair os parâmetros de dadosem um arquivo IGES para o vetor de células (cell array) ParameterData. Neste caso,temos o arquivo ’bracket.IGS’.

44

Figura 4.1: Bracket - Script do Matlab

Em seguida tem-se a função "analisa_ParameterData", responsável por percorrer ovetor de células, quantificar e descrever o mesmo ao usuário, podendo ou não apresentarum relatório que contenha suas entidades constituintes.

Por fim, e não menos importante, tem-se a possibilidade de plotar o modelo geomé-trico, ou, até mesmo, uma entidade específica, como, por exemplo, a entidade de número121 apresentada na Figura 4.2, com o comando "plotIGESentity(ParameterData,121)".

Figura 4.2: Bracket - Entidade de número 121

45

Capítulo 5 Resultados

5.1 Introdução

O objetivo deste capítulo é mostrar exemplos de figuras planas e sólidas obtidas apartir da Toolbox do IGES. Todas as figuras que aqui serão apresentadas foram mode-ladas utilizando o software CAD Solidworks e posteriormente exportadas em formatoIGES. Além disso, cada figura lida pela Toolbox do IGES, apresenta como resultadodois vetores, nomeados de "EntityType"e "numEntityType"e uma variável vetor decélulas (cell array) chamada de ParameterData. Estes vetores mostram ao usuárioo tipo de entidade usada para gerar a geometria e o número de vezes em que estaentidade foi usada na geração da mesma. Por exemplo, se o primeiro valor do vetorEntityType for 110 e do vetor numEntityType for 44, isso significa que a entidade 110(a qual representa uma linha), apareceu 44 vezes na geração do modelo geométrico. Avariável ParameterData fornece os dados sobre cada uma das entidades que compõe osólido. Esta variável será melhor explorada ao final deste capítulo.

5.2 Exemplos de desenhos de peças

A Figura 5.1 apresenta um mancal tridimensional modelado em Solidworks e ex-portado em formato IGES para leitura via IGES Toolbox pelo Matlab. Para a Figura5.1, bem como para as demais, pode-se apresentar duas tabelas. A primeira contendoos tipos de entidade e o número de vezes em que a mesma foi utilizada na geraçãoda geometria em questão pelo software Solidworks, onde TE é o tipo da entidade eNTE é o número de vezes que a entidade aparece no desenho. A segunda é obtidadiretamente da variável ParameterData. Embora as tabelas correspondam aos mesmossólidos, a segunda tabela transforma algumas entidades geradas pelo Solidworks ementidades NURBS. O nome das entidades não serão traduzidos para facilitar a buscadas mesmas no manual do IGES.

A Figura 5.2 apresenta uma curvedshape, uma geometria curva semelhante a umaplaca, em vista tridimensional modelada em Solidworks e exportada em formato IGESpara leitura via IGES Toolbox pelo Matlab.

A Figura 5.3 apresenta um ushape, ferramenta mecânica em formato U, em vistatridimensional modelada em Solidworks e exportada em formato IGES para leitura viaIGES Toolbox pelo Matlab.

A Figura 5.4 apresenta uma pistonhead, uma cabeça de um pistão, em vista tri-

46

dimensional modelada em Solidworks e exportada em formato IGES para leitura viaIGES Toolbox pelo Matlab.

A Figura 5.5 apresenta um rocket, um foguete espacial, em vista tridimensionalmodelado em Solidworks e exportado em formato IGES para leitura via IGES Toolboxpelo Matlab.

A Figura 5.6 apresenta um naca2030, um perfil de asa NACA, em vista tridimen-sional modelado em Solidworks e exportado em formato IGES para leitura via IGESToolbox pelo Matlab.

A Figura 5.7 apresenta um strut, uma ferramenta mecânica, em vista tridimensionalmodelada em Solidworks e exportada em formato IGES para leitura via IGES Toolboxpelo Matlab.

A Figura 5.8 apresenta uma strut2, uma ferramenta mecânica, em vista tridimen-sional modelada em Solidworks e exportada em formato IGES para leitura via IGESToolbox pelo Matlab.

A Figura 5.9 apresenta um thinshell, uma casca fina, em vista bidimensional mode-lado em Solidworks e exportada em formato IGES para leitura via IGES Toolbox peloMatlab.

Todas as figuras dos resultados descritos acima se encontram nas páginas seguintes,com seus respectivos gráficos e tabela de dados.

47

Figura 5.1: Bracket

Tabela 5.1: Bracket - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 24 Circular arc

102 40 Composite curve

110 64 Line

120 4 Surface of revolution

124 18 Transformation Matrix

126 80 Rational B-spline curve

128 12 Rational B-spline surface

142 20 Curve on parametric surface

144 16 Trimmed (parametric) surface

314 1 Color definition

48

Tabela 5.2: Bracket - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 16 B-NURBS SRF

126 104 B-NURBS CRV

110 80 LINE

102 44 COMPOSITE CRV

142 20 CRV ON PARAMETRIC SURFACE

144 16 TRIMMED SURFACE

124 18 TRANSFORMATION MATRIX

Figura 5.2: Curved Shape

49

Tabela 5.3: Curved Shape - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 18 Circular arc

102 14 Composite curve

110 20 Line

120 4 Surface of revolution

124 17 Transformation Matrix

126 30 Rational B-spline curve

128 3 Rational B-spline surface

142 7 Curve on parametric surface

144 7 Trimmed (parametric) surface

314 1 Color definition

Tabela 5.4: Curved Shape - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 7 B-NURBS SRF

126 48 B-NURBS CRV

110 34 LINE

102 18 COMPOSITE CRV

142 7 CRV ON PARAMETRIC SURFACE

144 7 TRIMMED SURFACE

124 17 TRANSFORMATION MATRIX

50

Figura 5.3: U Shape

Tabela 5.5: U Shape - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 16 Circular arc

102 44 Composite curve

110 88 Line

120 8 Surface of revolution

124 8 Transformation Matrix

126 88 Rational B-spline curve

128 14 Rational B-spline surface

142 22 Curve on parametric surface

144 22 Trimmed (parametric) surface

51

Tabela 5.6: U Shape - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 22 B-NURBS SRF

126 104 B-NURBS CRV

110 120 LINE

102 52 COMPOSITE CRV

142 22 CRV ON PARAMETRIC SURFACE

144 22 TRIMMED SURFACE

124 8 TRANSFORMATION MATRIX

Figura 5.4: Piston Head

52

Tabela 5.7: Pistonhead - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 100 Circular arc

102 120 Composite curve

110 166 Line

120 34 Surface of revolution

124 51 Transformation Matrix

126 282 Rational B-spline curve

128 16 Rational B-spline surface

142 60 Curve on parametric surface

144 50 Trimmed (parametric) surface

Tabela 5.8: Pistonhead - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 50 B-NURBS SRF

126 424 B-NURBS CRV

110 288 LINE

102 156 COMPOSITE CRV

142 60 CRV ON PARAMETRIC SURFACE

144 50 TRIMMED SURFACE

124 51 TRANSFORMATION MATRIX

53

Figura 5.5: Rocket

Tabela 5.9: Rocket - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 44 Circular arc

102 60 Composite curve

110 70 Line

120 10 Surface of revolution

124 35 Transformation Matrix

126 103 Rational B-spline curve

128 15 Rational B-spline surface

142 30 Curve on parametric surface

144 25 Trimmed (parametric) surface

308 4 Subfigure definition

314 1 Color definition

408 7 Singular subfigure definition

54

Tabela 5.10: Rocket - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 6 B-NURBS SRF

126 40 B-NURBS CRV

110 16 LINE

102 16 COMPOSITE CRV

142 8 CRV ON PARAMETRIC SURFACE

144 6 TRIMMED SURFACE

124 8 TRANSFORMATION MATRIX

Figura 5.6: NACA

55

Tabela 5.11: Naca 2030 - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

102 8 Composite curve

110 4 Line

126 21 Rational B-spline curve

128 4 Rational B-spline surface

142 4 Curve on parametric surface

144 4 Trimmed (parametric) surface

314 1 Color definition

Tabela 5.12: Naca 2030 - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 4 B-NURBS SRF

126 21 B-NURBS CRV

110 4 LINE

102 8 COMPOSITE CRV

142 4 CRV ON PARAMETRIC SURFACE

144 4 TRIMMED SURFACE

56

Figura 5.7: Structure 1

Tabela 5.13: Structure 1 - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 88 Circular arc

102 76 Composite curve

110 116 Line

120 18 Surface of revolution

124 55 Transformation Matrix

126 168 Rational B-spline curve

128 14 Rational B-spline surface

142 38 Curve on parametric surface

144 32 Trimmed (parametric) surface

57

Tabela 5.14: Structure 1 - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 32 B-NURBS SRF

126 256 B-NURBS CRV

110 204 LINE

102 94 COMPOSITE CRV

142 38 CRV ON PARAMETRIC SURFACE

144 32 TRIMMED SURFACE

124 55 TRANSFORMATION MATRIX

Figura 5.8: Structure 2

58

Tabela 5.15: Structure 2 - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

100 44 Circular arc

102 114 Composite curve

110 38 Line

120 11 Surface of revolution

124 44 Transformation Matrix

126 464 Rational B-spline curve

128 43 Rational B-spline surface

142 57 Curve on parametric surface

144 54 Trimmed (parametric) surface

314 1 Color definition

Tabela 5.16: Structure 2 - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 54 B-NURBS SRF

126 508 B-NURBS CRV

110 86 LINE

102 125 COMPOSITE CRV

142 57 CRV ON PARAMETRIC SURFACE

144 54 TRIMMED SURFACE

124 44 TRANSFORMATION MATRIX

59

Figura 5.9: Thin Shell

Tabela 5.17: Thin Shell - Entidades geradas pelo SolidWorks

TE NTE Nome da entidade

102 48 Composite curve

110 96 Line

126 96 Rational B-spline curve

128 24 Rational B-spline surface

142 24 Curve on parametric surface

144 24 Trimmed (parametric) surface

314 1 Color definition

Tabela 5.18: Thin Shell - Entidades presentes no ParameterData

TE NTE Nome da entidade

128 24 B-NURBS SRF

126 96 B-NURBS CRV

110 96 LINE

102 48 COMPOSITE CRV

142 24 CRV ON PARAMETRIC SURFACE

144 24 TRIMMED SURFACE

60

Conforme pode ser visto nas tabelas referentes às entidades presentes no Parame-terData, o número de entidades do tipo trimmed surface é igual ao número de entidadesdo tipo B-NURBS surface. Todas as superfícies dos sólidos, sem exceção, são definidascomo uma superfície aparada, ou seja, uma entidade do tipo trimmed surface.

Para toda superfície aparada existe uma superfície não aparada. No caso, a super-fície não aparada é sempre do tipo B-NURBS surface. A forma como estas superfíciessão aparadas é definida por uma ou mais entidades do tipo composite curve. Se uma su-perfície aparada possuir mais de uma composite curve, isso significa que esta é aparadapor contornos externos e internos, ou seja, possui um ou mais furos.

5.3 Análise de uma Superfície Aparada

Para esta análise de uma superfície aparada, iremos avaliar a entidade número 158(Trimmed Surface ou Superfície Aparada) do Pistonhead. A superfície 158 correspondea uma das entidades do desenho CAD feito em Solidworks que foi apresentada na seçãoanterior, Figura 5.4.

Para geração desta superfície de número 158, a toolbox se utiliza inicialmente deuma superfície não-aparada (Untrimmed Surface), posteriormente aparando-a com ouso de curvas auxiliares até que se atinja a configuração final desejada, mostrada na Fi-gura 5.10 e com detalhes da triangularização na Figura 5.11. A superfície não-aparada,entidade 131, é uma B-Nurbs Surface, mais especificamente uma superfície de revolu-ção, e está representada na Figura 5.12

61

Figura 5.10: Superfície Aparada Triangularizada número 158 do pistonhead

Figura 5.11: Detalhe da Triangularização da superfície aparada número 158 do pisto-nhead

62

Figura 5.12: Superfície Não-aparada número 131 do pistonhead

63

Vamos agora avaliar as variáveis que compõem esta superfície. Estas variáveispodem ser consultados via Matlab a partir do comando ParameterData{158}. Apartir deste comando, o Matlab retorna a seguinte lista de variáveis:

Tabela 5.19: ParameterData{158}

Type: 144Name: ’TRIMMED SURFACE’

original: 0trimmed: 1

ratio: [0.1586 0.2500]pts: 131n1: 1n2: 0pto: 157pti: [1x0 double]

gdiagonal: 13.5880nument: 50clrnmbr: 0

color: [0.8000 0.8000 0.9000]well: 1

u: [0 1]v: [-1.1102e-16 3.1416]

ulinear: 1vlinear: 0isplane: 0nurbs: [1x1 struct]

dnurbs: {[1x1 struct],[1x1 struct]}d2nurbs: {[1x1 struct],[1x1 struct],[1x1 struct]}

A primeira informação que encontramos na lista acima é o Type = 144, que seriao tipo de entidade utilizada na construção desta superfície. A entidade de número 144representa uma Trimmed (Parametric) Surface Entity, ou seja, uma superfícieparamétrica aparada que foi detalhada na seção 3.3.6.

A segunda informação simplesmente corresponde ao nome da entidade, variávelName, que para esta superfície de número 158 é uma ’TRIMMED SURFACE’.

A terceira variável, trimmed, também pode ser 0 ou 1, onde zero representa umasuperfície que não fora aparada, enquanto 1 representa uma superfície que fora aparada.

64

Para esta superfície de número 158 temos como retorno desta variável o número 1, logoa superfície é do tipo aparada.

A variável pts é o ponteiro que referencia a superfície que foi usada originalmentepara ser aparada para a obtenção da superfície aparada de número 158, neste caso asuperfície referenciada foi a de número 131, que representa uma B-Nurbs Surface, maisespecificamente uma superfície de revolução, e está representada na Figura 5.12.

A variável n1 pode assumir os valores 0 e 1, onde 0 significa que a fronteira ou ocontorno da superfície coincide com o domínio D (veja a explicação do que é o domínioe outras definições na seção 3.3.6), e caso isso não seja verdade, a variável assume ovalor 1.

A variável n2 indica a quantidade de curvas simples fechadas que compõem a fron-teira interna de uma trimmed surface. Caso nenhuma fronteira interna seja definida,este número será igual a zero, e é o que temos para superfície aparada de número 158(n2 = 0).

A variável pto é o ponteiro para o diretório de entrada da Curve on a parametricsurface entity que compõe a fronteira externa de uma trimmed surface ou é igual a zero.Para este caso temos pto = 157, onde o número 157 corresponde à uma Curve on aparametric surface. Aqui será necessária uma análise das variáveis pertencentes à estaentidade em particular. Para isso vamos abrir a tabela ParameterData correspondenteà entidade de número 157:

Tabela 5.20: ParameterData{157}

type: 142name: ’CRV ON A PARAMETRIC SURFACE’crtn: 1sptr: 131bptr: 920cptr: 156pref: 1

length: 36.3146gdiagonal: 13.5880clrnmbr: 0

color: [0.8000 0.8000 0.9000]well: 1

Como pode-se observar na lista acima, temos uma descrição de variáveis correspon-dentes à entidade de número 157. Seguindo a mesma linha da entidade de número 158,temos as variáveis:

65

type: 142 (Entidade 142, Curve on a parametric surface);name: Curve on a parametric surface;crtn: 1, indica a forma como fora criada a curva na superfície, para este caso sendo

’1’, a curva fora criada como uma projeção na superfície;sptr: 131, é o ponteiro para o diretório de entrada da superfície na qual a curva se

encontra, neste caso na superfície de revolução número 131 (B-NURBS SRF);bptr: 920, é o ponteiro para o diretório de entrada que contém a definição da

curva B (veja 3.3.5 para mais detalhes) no espaço paramétrico (u, v) da superfície S.E para este caso é uma Composite curve de número 920, e sua tabela ParameterDatacorrespondente é:

Tabela 5.21: ParameterData{920}

type: 102name: ’COMPOSITE CRV’

n: 10de: [921 922 923 924 925 926 927 928 929 930]

lengthcnt: [1x10 double]length: 19.5877

clrnmbr: 0color: [0.8000 0.8000 0.9000]well: 1

allLines: 0;

cptr: 156, é o ponteiro para o diretório de entrada da curva C (veja 3.3.5 paramais detalhes). E que para este caso representa uma Composite curve de número 156,e sua tabela ParameterData correspondente é:

66

Tabela 5.22: ParameterData{156}

type: 102name: ’COMPOSITE CRV’

n: 10de: [134 136 138 140 143 145 147 150 152 154]

lengthcnt: [1x10 double]length: 36.3146

clrnmbr: 0color: [0.8000 0.8000 0.9000]well: 1

allLines: 0;

pref :1, Indica a representação escolhida no sistema de envio, onde 1 significa queS ◦ B foi escolhida (veja 3.3.5 para mais detalhes).

A variável color representa a cor escolhida para a superfície a partir da combinaçãoda porcentagem das cores vermelha, verde e azul do vetor RGB (Red, Green e Blue).Para esta superfície color = [0.8000 0.8000 0.9000].

Para mostrar como o contorno da superfície fora plotado, vamos ilustrar algunspassos intermediários que foram utilizados para plotar o contorno da superfície aparadade número 158. As entidades pertencentes a construção da entidade de número 158foram as entidades de número 129 à 157. Estas etapas são mostradas na Figura 5.13.

Com relação ao processo de triangularização da superfície, a Toolbox primeiramenteplota a mesma em duas dimensões, logo após cria os pontos internos de modo que asuperfície possa ser triangularizada posteriormente, e além disso aplica uma transfor-mação de coordenadas para três dimensões. Este processo de criação da superfície estáilustrado nas Figuras 5.14,5.15,5.16,5.17 e 5.18 a seguir:

67

(a) 1a etapa (b) 2a etapa (c) 3a etapa

(d) 4a etapa (e) 5a etapa (f) 6a etapa

(g) 7a etapa (h) 8a etapa (i) 9a etapa

(j) 10a etapa (k) 11a etapa

Figura 5.13: Etapas de aparamento da superfície

68

12

3

456

78

9

10

Figura 5.14: Pistonhead em 2D

Figura 5.15: Criação dos pontos internos

69

Figura 5.16: Zoom dos pontos internos

Figura 5.17: Zoom dos pontos internos

70

Figura 5.18: Superfície 3D após transformação de coordenadas

71

Capítulo 6 Conclusões e trabalhos futuros

6.1 Conclusões

Este projeto de graduação teve como objetivo dar condições para o desenvolvimentode um ambiente no qual as geometrias produzidas em programas CAD possam ser lidasdiretamente em um programa MatLab [28]. Trata-se de um passo inicial na obtenção deum sistema de análise CAD/CAE integrado, na qual os arquivos gerados em programasCAD possam ser usados com um mínimo de modificação ou, na melhor hipótese, semnenhuma modificação, em um programa de análise baseado no método dos elementos decontorno isogeométrico. Na formulação isogeométrica, as funções de forma polinomiaisdo método dos elementos de contorno tradicional são substituídos pelas NURBS que éa base matemática usada pela grande maioria dos programas CAD para representar ageometria de figuras planas e sólidas. Com isso, a etapa da geração de malha, que maisconsome tempo do engenheiro, é eliminada, e isto proporciona economia de tempo edinheiro na análise numérica de problemas de engenharia. O projeto buscou explorara toolbox IGES2MatLab [3], cujo código fonte encontra-se disponível na página daMathWorks [2]. Depois da instalação desta toolbox, foram feitos desenhos de sólidosde geometrias complexas usando o programa SolidWorks, que então foram salvos emformato IGES. Estes desenhos em formato IGES foram então lidos pela toolbox. Nãohouve nenhum problema quanto a importação, sendo que todos os desenhos foramimportados e plotados no MatLab sem nenhum prejuízo quanto a representação dosdesenhos. Todos os desenhos foram analisados quanto as suas composições, que noformato IGES são chamadas entidades.

Nem todas as entidades geradas pelo SolidWorks são do tipo NURBS. Contudo, atoolbox transforma grande parte destas entidades para NURBS, o que facilita o usoda geometria na análise isogeométrica. Foi observado que os sólidos são representadospor superfícies e estas superfícies são do tipo superfícies NURBS aparadas. Estassuperfícies aparadas, por sua vez, são compostas de uma superfície não aparada ecurvas de aparamento.

72

6.2 Sugestão de trabalhos futuros

Sugere-se como possibilidade de trabalhos futuros:

• Usar a toolbox IGES em programas de análise isogeométrica do MEC;

• Construir geradores de malha de superfícies para uso em programas do MECpadrão.

73

Referências Bibliográficas

[1] Adaptive isogeometric analysis by local h-refinement with t-splines. computermethods in applied mechanics and engineering. doi:10.1016/j.cma.2008.07.012.

[2] Mathworks. http://www.mathworks.com/company/?s_tid=hp_ff_about. Ac-cessed: 2015-11-21.

[3] Matlab central: Iges toolbox. http://http://www.mathworks.com/

matlabcentral/fileexchange/13253-iges-toolbox. Accessed: 2015-11-17.

[4] G. Beer. Advanced Numerical Simulation Methods: From CAD Data Directly toSimulation Results. CRC Press, 2015.

[5] M. Bloor and J. Owen. CAD/CAM product-data exchange: The next step. CAD,23:237–243, 1991.

[6] L. S. Campos. Elasticidade Tridimensional Usando o Método dos Elementos deContorno Isogeométricos. PhD thesis, Universidade de Brasília, 2015.

[7] Rogers D.F. An Introduction to NURBS with Historical Perspective. AcademicPress, 2001.

[8] Cirak e Ortiz. Fully c1-conforming subdivision elements for finite deformation thinshell analysis. International Journal of Numerical Methods in Engineering, pages51:813–833, 2001.

[9] Cirak e Ortiz. Integrated modeling, finite-element analysis, and engineering designfor thin-shell structures using subdivision. Computer-Aided Design, pages 34:137–148, 2002.

[10] Warren e Weimer. Subdivision Methods for Geometric Design. Morgan KaufmannPublishers, 2002.

[11] Bajaj et al. Modeling with cubic a-patches. ACM Transactions on Graphics, pages14:103–133, 1995.

74

[12] Bajaj et al. A subdivision scheme for hexahedral meshes. Visual Computer, 2002.

[13] Bazilevs et al. Subdivision surfaces: a newparadigm for thin shell analysis. In-ternational Journal of Numerical Methods in Engineering, pages 47:2039–2072,2000.

[14] Bazilevs et al. Isogeometric analysis using t-splines. Computer Methods in AppliedMechanics and Engineering, pages 47:2039–2072, 2009.

[15] Cohen et. al. Geometric Modeling with Splines: An Introduction. A. K.Peters,Ltd., 2001.

[16] Howard et al. A Practical Introduction to PHIGS and PHIGS PLUS. Addison-Wesley Professional, first edition, 1991.

[17] Hughes et al. Isogeometric analysis: Cad, finite elements, nurbs, exact geometry,and mesh refinement. Computer Methods in Applied Mechanics and Engineering,pages 194:4135–4195, 2005.

[18] Hughes et al. Isogeometric Analysis: Toward Integration of CAD and FEA. WI-LEY, 2009.

[19] Sdeberg et al. T-splines and T-NURCCSs. ACM Transactions on Graphics, 2003.

[20] Sdeberg et al. T-spline simplification and local refinement. ACM Transactions onGraphics, 2004.

[21] G.E. Farin. Curves and Surfaces for CAGD, A Practical Guide. Morgan KaufmannPublishers, fifth edition, 1999.

[22] G.E. Farin. NURBS Curves and Surfaces: from Projective Geometry to PracticalUse. A. K.Peters, Ltd., second edition, 1999.

[23] J.A. Gregory. N-sided surface patches. Mathematics of Surfaces, pages 217–232,1983.

[24] F. Hildebrand. Advanced Calculus for Applications. Prentice Hall, 1976.

[25] T. Howard. Evaluating PHIGS for cad and general graphics applications. CAD,23:244–251, 1991.

[26] W. Kaplan. Advanced Calculus. Addison-Wesley Professional, 1952.

[27] C.T. Loop and T.D. DeRose. A multisided generalization of bézier surfaces. ACMTransactions on Graphics, pages 8:204–234, 1989.

75

[28] MATLAB. version8.4.0.150421 (R2014b). The MathWorks Inc., 2014.

[29] J. Peters and U. Reif. Subdivision Surfacesn. Springer, 2008.

[30] L. Piegl and W. Tiller. The NURBS Book. Springer, 1997.

[31] C.G. Provatidis. Integration-free coons macroelements for the solution of 2d pois-son problems. International Journal of Numerical Methods in Engineering, pages77:536–557, 2009.

[32] SOLIDWORKS. SOLIDWORKS 2014 SP3. SOLIDWORKS Corp., 2014.

[33] J. Vergeest. CAD surface data exchange using step. CAD, 23:269–281, 1991.

[34] Gordon W. Spline-blended surface interpolation through curve networks. Journalof Mathematics and Mechanics, pages 18:931–952, 1969.

76