Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Estruturas e Fundações Laboratório de Mecânica Computacional 1o Relatório de Atividades de Iniciação Científica Título: “Interface Gráfica para o Estudo de Tensões e Deformações no Ensino de Engenharia de Estruturas” Bolsista: Breno Ayres Pereira Mendes Orientador: Prof. Dr. Marcos A. M. Noronha Processo: 00/02242-1 SUMÁRIO 1.PLANO INICIAL .......................................................................................................................................................... 2 2.RESUMO DAS ATIVIDADES ..................................................................................................................................... 2 2.1 ETAPA 1 ......................................................................................................................................................................... 2 2.2 ETAPAS 2 E 4 ................................................................................................................................................................. 4 3. RESULTADOS OBTIDOS ........................................................................................................................................ 11 3.1 DESENVOLVIMENTO DO PROGRAMA. ........................................................................................................................... 11 3.2 PROGRAMA IMPLEMENTADO EM JAVA ....................................................................................................................... 11 4. SITUAÇÃO ATUAL DO PROGRAMA .................................................................................................................. 15 5. PRÓXIMOS PASSOS ................................................................................................................................................ 15 BIBLIOGRAFIA ............................................................................................................................................................ 16 1 1.Plano Inicial O projeto está dedicado ao desenvolvimento de uma ferramenta computacional que permite a visualização de tensões e deformações de elementos infinitesimais bi- e tridimensionais, para o ensino de engenharia de estruturas. A pesquisa visa o desenvolvimento e a utilização de recursos de multimídia interativa como material complementar nas aulas de Resistência dos Materiais. A visualização da transformação de tensões e deformações em um elemento infinitesimal utilizando recursos de multimídia interativa permite uma apresentação muito mais eficiente do assunto, principalmente devido ao efeito de animação e manipulação dos dados do problema através do programa que está sendo desenvolvido neste trabalho. Para o desenvolvimento do projeto estavam previstas as seguintes etapas: Curso de programação de linguagem Java, curso do aplicativo do programa Flash e revisão bibliográfica em livros e artigos sobre o assunto. Implementação em Java para a transformação de tensões quando se dá uma rotação arbitrária em um elemento bidimensional. Implementação em Java para a transformação de deformações quando se dá uma rotação arbitrária em um elemento bidimensional. Implementação em Java para a transformação de tensões quando se dá uma rotação arbitrária em um elemento tridimensional. Implementação em Java para a transformação de deformações quando se dá uma rotação arbitrária em um elemento tridimensional. Verificação e correção da implementação computacional do programa. Adaptação do material produzido ao projeto integrado de pesquisa. O cronograma inicial previa, para o primeiro semestre, o término das etapas 1, 2 e o início da etapa 3. 2.Resumo das Atividades Para propósito de cumprimento do cronograma, nesta primeira parte do projeto foram feitos: estudos bibliográficos, concepção do protótipo do programa e algumas implementações do programa. Procurou-se respeitar ao máximo o cronograma do projeto, no entanto em algumas ocasiões tornou-se necessário reordenar algumas etapas. 2.1 Etapa 1 Na primeira etapa do projeto foi realizado um curso de programação de linguagem Java no Laboratório de Mecânica Computacional. Durante este estudo percebeu-se que seria necessário para o desenvolvimento do trabalho um estudo aprofundado sobre Teoria de Modelagem Orientada a Objetos, Biblioteca Java Swing e Biblioteca Java 3D. Além da linguagem Java foi feito um estudo sobre o programa Flash pois, como consta na etapa 6 do projeto, será feita uma adaptação do estudo realizado para o projeto de pesquisa utilizando recursos deste programa. 2 Estudo da linguagem Java Java é: Uma linguagem de programação. Um ambiente de desenvolvimento. Um ambiente de aplicativos. A linguagem Java resulta da busca por uma linguagem de programação que englobe todas as características da linguagem C++, com a segurança de uma linguagem do tipo SmallTalk. Características da linguagem Java: Orientada a Objetos. Ambiente Interpretado. Permite mais de um thread de atividade (multi-tarefas). Portável. A arquitetura Java foi desenvolvida para atingir essas características através da implementação de três recursos: Máquina Virtual Java, Coleta de Lixo e Segurança do Código. Tendo em vista que este projeto tem por principal objetivo o ensino, e que se pretende disponibilizar na Internet o material aqui produzido, procuramos uma linguagem que não dependesse da plataforma (p. ex. Windows, Linux, Solaris, etc.). A resposta foi a linguagem Java que, devido a Máquina Virtual Java (uma máquina imaginária a qual é implementada através de emulação em um software executado em uma máquina real), permite a utilização do programa independentemente da plataforma. A linguagem Java é fornecida em um pacote de programas denominado JDK. O JDK é um ambiente de desenvolvimento para criação de aplicativos e applets. Neste pacote existem ferramentas para desenvolvimento e teste de programas escritos na linguagem Java. A versão utilizada neste projeto foi a jdk1.2.2. Biblioteca Java Swing é: Um novo pacote de ferramentas da Sun Microsystem para desenvolvimento de interfaces gráficas com o usuário. Esta biblioteca foi desenvolvida para que os programadores pudessem desenvolver grandes aplicativos com uma grande variedade de componentes gráficos (janelas, menus, botões, fichários, campos de texto, etc.). Biblioteca Java3D é: Uma interface de programação usada para escrever aplicativos e applets gráficos tridimensionais. Possibilita grande capacidade de manipulação e criação de geometrias espaciais. Os ambientes gráficos tridimensionais criados com o Java3D são baseados em uma estrutura de árvore acíclica que define a cena a ser desenhada. Teoria de Modelagem Orientada a Objetos é: Um conjunto de técnicas de programação baseado no conceito de classes e objetos. Uma classe é um conjunto de dados e métodos para manipulação destes. Os dados podem ser vistos como as propriedades do objeto, enquanto os métodos são os comportamentos do objeto. Este tipo de programação permite o desenvolvimento modularizado de códigos computacionais e a reutilização dos mesmos de forma bastante eficiente. O Programa Flash é: Uma ferramenta de autoria e edição de imagens vetoriais com animação, som e interatividade. Possibilita a criação de efeitos avançados em arquivos bastantes pequenos, devido às imagens vetoriais. Recentemente, este programa tem sido amplamente utilizado no desenvolvimento de websites com animação. 3 2.2 Etapas 2 e 4 Tendo como objetivo uma melhor visualização do estado de tensão para um elemento bidimensional optamos por implementar o programa para o caso 2D já com plataforma para visualização 3D. Sendo assim, apenas a distribuição de tensão é característica do caso bidimensional enquanto que a manipulação é toda feita tridimensionalmente. Para esta situação acoplamos a etapa dois à etapa quatro, haja visto que a implementação para o caso 3D fica praticamente feita, necessitando apenas de alguns ajustes no código. Devido à alteração do cronograma as etapas 3,5 e 6 serão realizadas na segunda parte do trabalho. Antes da realização da implementação, tornou-se imprescindível o estudo aprofundado dos seguintes assuntos: estado de tensão e deformação dos elementos infinitesimais, Círculo de Morh e Notação Tensorial. Feitos os estudos citados acima foram implementadas as classes responsáveis pelo cálculo das tensões e deformações principais e em um plano genérico. Estudo do estado de tensão e deformação dos elementos Estado de tensões Como a coesão dos materiais depende de ações de forças de natureza eletromagnéticas ou gravíficas que atraem os átomos mutuamente por meio de pares de força, tornou-se necessário, para o estudo da resistência dos materiais, relacionar estas forças com ações externas. No entanto, como os efeitos destas ações externas manifestam-se na forma de forças distribuídas na superfície do material, é intuitivo que um dos parâmetros força fundamentais para estudar a resistência dos materiais seja a relação: , área.em.que.atua denominada de tensão. Tendo isto em vista, podemos estabelecer uma relação entre as tensões que atuam em um elemento infinitesimal e a interação deste com o restante do corpo. As tensões atuantes sobre um elemento infinitesimal podem ser de dois tipos: tensão de cisalhamento e tensão normal. Estas estão distribuídas nos três planos que definem o elemento infinitesimal, são elas: x , xy , xz , y , yx , yz , z , zx , zy . Outra maneira de representar este mesmo estado de tensão seria na forma matricial de um tensor: x xy xz xy y yz tensor . xz yz z Outro aspecto importante no que diz respeito às tensões refere-se à direção do plano em estudo. Uma situação particularmente importante é aquela em que não temos tensão de cisalhamento em nenhum dos planos que determinam o elemento infinitesimal. Para esta condição, damos o nome de estado principal de tensões. Outra situação importante ocorre quando um dos planos tem tensão de cisalhamento igual a zero, sendo que neste caso podemos obter as tensões principais para o caso plano e posteriormente obter o estado de tensão principal para o caso 3D. Estado de deformações: Como já foi dito, as tensões que atuam em determinado elemento infinitesimal em um dado plano podem ser sempre decompostas em normal e de cisalhamento que possuem efeito bastantes diferentes no elemento. A componente normal provoca afastamento relativo entre duas faces opostas do elemento, ao passo que a componente de cisalhamento provoca escorregamento entre elas. 4 Círculo de Mohr: Dado um elemento infinitesimal e seu estado de tensão para o caso plano, uma boa maneira de se obter sua tensões principais e as tensões em uma direção genérica é através do Círculo de Mohr. Este último conceito parte do princípio que do equilíbrio de um elemento infinitesimal obtemos equações que parametrizam uma circunferência. Isso que dizer que se adotarmos um sistema de eixos coordenados e marcarmos o ponto M de abscissa x e ordenada xy para qualquer valor do parâmetro , vamos sempre obter um ponto que se encontra em uma circunferência. Para o caso tridimensional, para que seja viável o uso do Círculo de Mohr, é necessário que o elemento se encontre no estado de tensão principal ou que pelo menos um dos planos do elemento infinitesimal não possua tensão de cisalhamento. Quanto às deformações, como as equações para a transformação das deformações planas tem analogia formal com as equações de transformação no estado plano de tensões, podemos estender o uso do Círculo de Mohr para análise das deformações planas. Sendo conhecidas as componentes de deformação x , y , xy podemos obter as deformações normais e de cisalhamento máximas e mínimas. As mesmas considerações feitas para o caso 3D do estado de tensões devem ser levadas em conta para as deformações. Notação Tensorial: Um modo para representação mais imediata do estado de tensão e deformação é através do conceito de tensores. A vantagem da utilização dos tensores em detrimento ao Círculo de Morh é permitir operações mais automáticas independente do caso em que os planos em estudo são os principais ou não. Para o caso 3D isto é de grande importância, pois permite a obtenção dos planos principais através do cálculo dos auto-valores do tensor. Outra vantagem se deve ao fato de que para obter as tensões ou deformações em um plano genérico basta que se pré-multiplique o tensor pela matriz de rotação e pós-multiplique o resultado pela transposta da matriz de rotação, como indicado a seguir: [Tensor ( x , y , z )] [ R].[T ].[ R]T , onde a matriz de rotação [R] é dada pelo produto [ R] [ Rz ].[ Ry ].[ Rx ] , sendo que cada termo deste produto representa a rotação em torno de um eixo específico, dado por: cos( z ) sen( z ) 0 [ Rz ] sen( z ) cos( z ) 0 0 0 1 cos( y ) 0 sen( y ) [ Ry ] 0 1 0 sen( y ) 0 cos( y ) 0 0 1 [ Rx ] 0 cos( x ) sen( x ) 0 sen( x ) cos( x ) 5 Programa implementado para calculo das tensões e deformações: O cálculo de transformação de tensões e deformações utilizando notação tensorial foi implementado na classe Tensor. Cabe aqui ressaltar que devido ao fato da linguagem Java ser Orientada a Objetos esta classe será utilizada diretamente no programa gráfico. Os resultados apresentados a seguir (baseados em exercícios de livros de Resistência dos Materiais) ilustram a utilização de um objeto desta classe. c:\jdk1.2.2\bin\java.exe Principal Entre as tensões: Em x: 100 Em y: 60 Em xy: 48 (1) Entrar o Ângulo: (2)Obter Angulos Máximos: (3) Sair Digite sua opção: 2 a00:132.0 a01:-7.105427357601002E-15 a10:-5.329070518200751E-15 a11:28.0 angulo P 33.69006752597979 a00:80.0 a01:52.0 a10:51.99999999999999 a11:79.99999999999999 angulo T -11.309932474020213 (1) Entrar o Ângulo: (2)Obter Angulos Máximos: (3): notar Sairque a resposta está representada sugerindo um tensor. Obs. Digite sua opção: 1 Entre o angulo: 6 Protótipo do programa Para implementação do programa foi necessário realizar vários modelos. Estes modelos tinham por objetivos simular a apresentação, interação com o usuário e gerar parâmetros para a estruturação do código (diagrama de classes). O modelo que se apresentou mais viável é o que está exposto a seguir: 7 8 Obs.: Apesar de ser este o modelo que está sendo seguido, o mesmo pode sofrer alguma modificação no decorrer do projeto. 9 Projeto de classes Com um modelo estabelecido para o protótipo foi possível a elaboração do diagrama de classes. O diagrama de classes permite que se conheça o programa antes de construí-lo. Como o modelo omite os detalhes não essenciais, sua manipulação é mais fácil do que a da entidade original. Porém, justamente por se tratar de um modelo, o diagrama de classes é passível de modificações no decorrer do projeto. Segue o diagrama de classes: T Tensor Strain Inf Element Stress TCanvas Axis Arrow Prism Cutter Paralelogram Cube TShapes Obs.: Este era o projeto de classes logo após adotado o modelo. No entanto houveram algumas modificações durante o desenvolvimento do programa. Descrição das classes: T : classe principal, gerencia as demais classes e monta a interface gráfica com o usuário. TCanvas: tem por finalidade montar a árvore necessária ao Java3D para visualização da cena. TShapes: responsável pelas transformações e atributos das formas geométricas. Cube, Prism, Cutter, Arrow, Paralelogram e Axis representam as formas básicas, contendo as coordenadas para a modelagem destas. Com exceção da classe Axis, herdam os atributos da classe TShape. InfElement: faz uso das classes Cube, Prism, Cutter, Axis e Tensor. Tem por finalidade montar o elemento infinitesimal. Stress: estende a classe InfElement e faz uso da classe Arrow. É responsável pela aplicação e manipulação de um estado de tensões em um elemento infinitesimal. Tensor: classe implementada com a finalidade de execução dos cálculos relativos a estados de tensão e deformação. Strain: classe responsável pelas deformações do elemento infinitesimal. Estende a classe InfElement e faz uso da classe Paralelogram. 10 3. Resultados Obtidos 3.1 Desenvolvimento do Programa. Como dito anteriormente, o projeto do diagramas de classe poderia sofrer alguma modificação no decorrer da programação. Foi justamente isto que aconteceu, haja visto que algumas classes tornaram-se dispensáveis e outras tiveram que ser criadas para possibilitar o melhor funcionamento do programa. Outro fator que influenciou esta modificação na estrutura do programa foi a existência de muitas ferramentas disponíveis no pacote Java3D. O diagrama de classes do protótipo desenvolvido até agora está exposto a seguir: T TInfElemBehavior Tensor Stress Inf Element Twindow Axis Arrow Cube TAtrib TShapes Obs. : O diagrama aqui exposto não leva em conta as classes pertencentes às bibliotecas Java e Java3D. Como se pode notar, este diagrama foi acrescido de mais três classes. São elas: TInfElemBehavior (comportamento do elemento infinitesimal), TAttrib (encapsulamento de atributos) e Twindow (janela para entrada dos valores das tensões). As classes que estão presentes no diagrama inicial mas não estão neste diagrama ainda não foram implementadas (sua implementação será feita com o decorrer do projeto, nas próximas etapas). 3.2 Programa implementado em JAVA Esta implementação teve por principal diretriz seguir ao máximo o modelo do protótipo do programa apresentado no item 2.2. A seguir, são apresentadas figuras obtidas durante o funcionamento do programa. 11 Visualização do elemento infinitesimal. Possibilidade de rotação em diferentes ângulos através de interação com o mouse. 12 Seleção de uma face para seleção da direção da tensão a ser aplicada. Alteração do valor da tensão em uma dada direção(na figura, tensão normal). 13 Elemento rotacionado no espaço em um ângulo arbitrário. Elemento infinitesimal após entrada dos valores das tensões. 14 4. Situação Atual do Programa Como já foi dito anteriormente, este projeto se encontra nas etapas 2 e 4 . Vale ser ressaltado que o desenvolvimento do programa está condicionado ao estudo da Biblioteca Java3D. Esta Biblioteca é muito extensa e embora apresente a vantagem de oferecer uma grande variedade de código já pronto para ser utilizado, também apresenta a dificuldade de utilização e aprendizado da mesma devido à existência de pouco material de consulta. Por muitas vezes avanços no desenvolvimento do código implicaram em reformulação de algumas classes e reestudo da Biblioteca Java3D. No entanto, como pode ser notado nos exemplos, o programa implementado se encontra em boas condições de interatividade com o usuário, permitindo que o mesmo realize: Rotação através do mouse. Seleção das faces. Seleção dos eixos para determinação da componente de tensão a ser modificada. Janela para entrada dos valores das tensões. 5. Próximos passos Como diretriz do projeto procuraremos seguir o cronograma. Isto implica em finalização das etapas 2 e 4 e desenvolvimento das etapas 3, 5 e 6, respectivamente. Para a finalização das etapas 2 e 4 os próximos passos serão: Reconstrução do elemento infinitesimal a partir dos valores e direções entrados pelo usuário. Implementação da ferramenta de corte para determinação das componentes de tensão em uma nova direção. Reestruturação da cena (visualização independente dos prismas e do elemento resultantes do corte). Círculo de Mohr. Extensão para o caso tridimensional. O desenvolvimento das etapas 3 e 5 será realizado de forma similar ao procedimento adotado para as etapas 2 e 4, sendo consideradas as modificações necessárias para o estado de deformação. Na etapa 6 será feita a revisão do material produzido (correção de erros no programa, realização de testes de uso, geração de applets) e adaptação para o projeto integrado (website utilizando textos, animações desenvolvidas em Flash em conjunto com os applets). 15 Bibliografia Java in a Nutshell , D. Flanagan, O’Reilly & Assoc.,USA, 1997. Java Swing, R. Eckstein, M. Loy and D. Wood, O’Reilly & Assoc., USA, 1998. The Java 3D API Specification, Second Edition, H. Sowizral, K. Rushforth, M. Deering, Addison-Wesley, USA, 2000. Tutorial: "A Linguagem de Programação Java - Orientação a Objetos”, André Augusto Cesta (Orientadora: Profa Dra Cecília Mary Fischer Rubira), Instituto de Computação da Unicamp, agosto de 1996. Curso de Java do LMC: http://www.lmc.ep.usp.br/people/gguello/cursodejava/ Tutorial Java – SUN The Java Tutorial!, Object-Oriented Programming for the Internet, Campione Mary, Walrath Kathy, Versão OnLine em HTML http://java.sun.com/docs/books/tutorial/index.html Java Web Site http://java.sun.com Introdução à Resistência dos Materiais, Octávio Gaspar Ricardo, Editora da Universidade de Campinas Resistência dos Materiais, Ferdinand P. Beer, E. Russell Johnston, JR., MAKRON Books, 3ª Edição. ELASTICITY, Pei Chi Chou, Nicholas J. Pagano, Dover Publications, Inc., New York Modelagem e Projetos Baseados em Objetos, James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen, Editora Campus, 6º Reimpressão Flash 4 para Windows e Macintosh, Katherine Ulrich, Editora Campus, Rio de Janeiro, 1999 Flash 4 Using Flash, Peter Fenczik, Dave Jacowitz, John Lancaster, Ben Melnick, Michelle Sudduth, Macromedia, Inc., San Francisco, CA, 1999 Flash 4 segredos action Scripts e integração com ASP PERL(CGI), Jung Moo Kim, Editora Érica Flash 4 Magic, David. J. Embebton, J Scott Hamlin, New Riders Mecânica dos Sólidos vol 1, Timoshenko, Gere, Livros Tecnicos e Científicos Editora. _______________________________ Bolsista: Breno Ayres Pereira Mendes ____________________________________ Orientador: Prof. Dr. Marcos A. M. Noronha 16