Modelação e Animação com o

RoboWorks
(versão 2.0)

Como se iniciar na utilização do Roboworks?

1. Introdução
1.1. O que é o Roboworks?
É um modelador tridimensional para a simulação de elementos mecânicos. Este programa permite ao utilizador criar um modelo em 3D e animá-lo, a partir do teclado, de um ficheiro .dat criado por si, ou através de ficheiros executáveis criados no Matlab, C++, LabView, etc. Neste tutorial aprenderemos a modelar com o Roboworks a utilizar o software de programação para manipulação do modelador.

1.2. A quem é dirigido o Roboworks?
é útil para as pessoas relacionadas com a robótica que tenham necessidade de simular movimento a partir de um programa de controlo, seja para analisar os resultados de um estímulo para um robot ou para ter uma visão em tempo real do movimento dos componentes dum sistema mecânico.

2. A Interface Gráfica do Roboworks
É formada pelas seguintes partes:

2.1. Vista em 3D
Nesta vista (janela) podemos ver, em 3D, o estado em que se encontra o modelo tridimensional. A partir deste ecrã não podemos modificar o modelo. Ele só serve para ver a posição de todas as coisas.

2.2. Vista em Árvore
Nesta vista (janela) que criaremos todos os modelos. Cada forma que vemos na vista 3D, está referenciada nesta vista, e apenas a partir desta vista poderemos modificar os seus parâmetros.

2.3. Barra de Tarefas
Oferece as tarefas clássicas de todos os programas baseados no Windows: Ficheiro, Editar, Ver, Janelas e Ajuda, para além da oferta própria do RoboWorks – Animação. Mais à frente explicaremos as funções de cada uma das tarefas que aparecem quando clicamos nestes menus desta barra.

2.4. Barra de Ícones
Na barra de ícones apenas se encontram os ícones que pertencem às aplicações gerias do Windows: Novo, Abrir, Guardar, Cortar, Copiar, Colar, Acerca do RoboWorks e Ajuda. Mais à frente explicar-se-á cada uma das tarefas acessíveis a partir destes ícones.

3. Como Criar uma Modelação no RoboWorks?
Para começar é preciso conhecer a janela de Vista em Árvore, porque todos os modelos se criam nesta janela.

3.1. Janela de Vista em Árvore
Aqui aparecerão todos os elementos da modelação à medida que vão sendo criados.

Existem três tipos de elementos que podemos criar nesta janela: • • • Formas Transformações Outros

As Formas correspondem às figuras básicas para realizar qualquer elemento tridimensional, e que são: Cilindros, Cones, Discos, Esferas e Cubos. Nas Transformações encontramos todas as possibilidades de movimento de uma figura, como rotação e translacção. Em Outras encontramos a opção de criar grupos e seleccionar materiais para os sólidos.

3.1.1. – Inserir Um Elemento
Para inserir um elemento nesta vista vamos a menu Edit >> Insert Child Aparecerá uma janela que perguntará o que queremos inserir. Nesta janela encontram-se os três tipos de elementos mencionados anteriormente: formas, transformações e outros.

Fig. 1 – Antes de clicar em Insert Child

Fig. 2 – Janela que aparece depois de clicar em Insert Child do menu Edit.

==> Insira uma forma, por exemplo um Cubo: Seleccione o cubo de entre os sólidos presentes
no separador Shape, dando um duplo clique sobre ele (o cubo). Aparecerá uma nova janela em que terá de preencher todos os dados/características da sua forma, neste caso o cubo. Coloque o cubo no ponto de coordenadas 0,0,0 e dê-lhe as dimensões de 20x5x10

Fig. 3 – Características do cubo que estamos a inserir Além da opção de dimensionar, que é necessária para definir o objecto, existem outras opções, que são o Rendering e o Material, que apresentam valores pré-determinados básicos, que fazem com que não seja necessário alterar os seus valores de defeito, neste caso,

mas para efeitos de aprendizagem, é melhor ver como funcionam, pois depois, no dia-a-dia irão ser, por vezes, certamente precisas. A janela/separador Rendering (Sombreado) permite alterar o Sombreado da peça, encontrando-se esta normalmente de acordo com o sombreado de todo o modelo. As opções são: Sombreado Suave (Smooth Shaded), Sombreado Plano (Flat Shaded) e

Alambrado/Fiado.
Também permite visualizá-lo apenas como uma figura não sólida, e visualizá-lo sombreando a parte Dianteira (Front), a de Trás (Back), ou Ambas (Both).

Fig. 4 – Janela de Rendering (Sombreamento) do elemento Quanto ao Material temos duas opções: - Definir um material só para este modelo, ou aplicar-se o último material que se tenha definido. Para definir um material, mostramos uma janela que simula a cor e a forma da figura segundo especificações dadas.

==> Voltando ao exemplo, defina um material para o cubo e seleccione sombreado suave no
menu de Rendering.

==> Clique no botão OK e imediatamente se criará um cubo que se pode ver na Vista 3D e
em que poderemos modificar as suas propriedades na Vista de Árvore, dando um duplo clique no elemento.

Fig. 5 – Janela de definição do Material que compõe o elemento do robot que estamos a criar

Fig. 6 – Cubo criado segundo as indicações acima No RoboWorks toda a modelação deve ser referida em relação à origem, de tal forma que se se cria, por exemplo, um cubo, deve-se especificar-se a distância desde o seu centro à origem, além das medidas, para que o RoboWorks o possa modelar. No nosso caso, o cubo encontra-se no ponto 0,0,0, o que quer dizer que a face superior do cubo se encontra a 2,5 unidades da origem. Compreendido? Os passos a executar para criar qualquer das formas são iguais, o Roboworks perguntará que tipo de forma desejamos e as respectivas especificações.

Agora vamos fazer uma esfera , mesmo sobre o cubo. Deve recordar, neste momento, que o centro do cubo está na origem. A partir do menu Editar (Edit),

Vista de Árvore (Tree View), existem outras

funções também de inserir, e existem dois modos de inserir figuras. - No modo Inserir Filho (Insert Child), insira, se possível, um elemento dentro de um grupo. Conseguiu ver onde é? - No modo Inserir Depois (Insert After), do menu Edit (Editar) inserirá um elemento depois de um grupo. - Nas outras opções, encontra-se: . A de localizar um elemento na vista 3D (“Localizar” / “Locate”); . A de realçar os elementos seleccionados (“Highlight” / “Realçar”); . Modificar as propriedades (“Properties” / “Propriedades”) dos elementos e as funções clássicas de Cortar, Copiar e Colar (Cut, Copy e Paste). Além das formas, podem-se inserir também grupos, nos quais se inserem elementos de uma mesma parte do conjunto e materiais que definem a cor das formas. Agora que já sabe inserir elementos, estudemos o exemplo seguinte:

Exemplo: Figura Humana

Fig. 7 – Exemplo – Forma Corpo Humano

Observe a configuração do boneco (propriedades à direita, na figura): Por agora ignore as transformações, uma vez que ainda não foram estudadas. Para começar, quando se define um material, todos os elementos que se sigam serão deste material, a menos que se defina um material novo. Passos na construção da figura humana: . Primeiro colocou-se um material azul escuro. . Depois depuseram-se as duas pernas, que na verdade são dois rectângulos. . As duas pernas são, por conseguinte, azul escuras. . Depois define-se um novo material, cauchu negro, e com ele criam-se os dois pés. . Com o material verde claro cria-se o corpo. . E para terminar, com a cor pérola, criamos um cilindro como pescoço e uma “cunha” como cabeça. . A cunha é um polígono de seis faces em que duas das opostas não são paralelas. . Os braços são parte de uma animação. Por isso cada um é um grupo conformado por várias transformações e um rectângulo inclinado.

3.2. A Janela em 3D
A janela 3D oferece opções diferentes no menu de edição (Edit), quando comparada com as da janela de árvore. Esta janela serve exclusivamente para ver a simulação que se projectou na vista de árvore. As opções do menu (quando a janela desta vista está activa) são: a. Background (Fundo) – Permite modificar a cor do fundo; b. Auto Rotation (Auto Rotação) – Põe o nosso modelo a girar de forma contínua; c. Grid (Grelha) – Esta opção mostra uma grelha e, através dela, o sistema de referência inicial. d. Coordinate Frames (Coordenação de Quadros) – Permite visualizar todos os originais criados por meio de transformações estáticas. e. Antialias (Filtro Anti Serrilha) suficientemente boa. f. Interactive Mode (Modo Interactivo) – Esta opção divide-se em várias, que permitem modificar o ponto de vista do original. Essas opções são: Rotation (Rotação), Translation (Translacção), Zoom e “Picking”, que serve para modificar as propriedades dos elementos do modelo por meio de um duplo clique sobre o elemento simulado. – É útil para visualizar os sólidos com uma melhor definição/resolução. Não deve usar esta opção se o seu PC não tiver uma placa gráfica

g. Rendering (Sombreamento) – Permite modificar o sombreamento da forma em que se deseja que se encontre a apresentação do seu modelo. As três opções são: Wire Frame (Quadro Fiado), Smooth Shaded (Sombreado Suave) e Flat Shaded (Sombreado Plano). h. Projection (Projecção) - Esta opção serve para visualizar o modelo em Perspective (Perspectiva) ou na forma Ortographic (Ortogonal). Em perspectiva pode ver como se as linhas se alongassem do horizonte. Em forma ortogonal vê as medidas em tamanho real. i. View (Vista) – Permite visualizar o modelo nas vistas comuns, (Por Cima) (Top), Por Baixo (Bottom), De Frente (Front), De Trás (Back), etc. E também permite ver o desenho na sua posição original (Reset). j. No Clear (Não Limpar) – Ao seleccionar esta opção, e mudar o ponto de vista, o ponto de vista anterior permanece e consegue ver-se assim as duas posições em simultâneo.

4. As Transformações
Existem, no Roboworks, dois tipos de transformações: . Estáticas . Dinâmicas São elas que imprimem animação e movimento ao modelo.

4.1. As Transformações Estáticas
Este tipo de transformações alteram o modelo ao mudar a posição do ponto de referência dos elementos do desenho, ou seja, permite mover a origem, para tornar mais simples a modelação e facilitar a animação.

4.1.1. Inserir Uma Transformação Estática
Para inserir uma transformação estática devemos seleccionar, na janela de Vista em Árvore, no menu Editar, e logo depois Inserir Depois, ou seja: Na janela Tree View >> Menu Edit >> Insert After Desta forma aparecem as nossas já conhecidas opções/separadores de inserir Formas (Shape), Transformações (Transformation), ou Outras (Other).

Figura 8 – Janela de Inserção de Transformações / Transformations em elementos do Robot. Observe cada opção: Para começar, trabalhe com as mais clássicas, Translacção (Translation) e Rotação (Rotation). A Translacção serve para deslocar o ponto de referência uma distância determinada, seja no eixo dos X, dos Y ou dos Z. Para deslocar a origem numa direcção que contenha mais de um eixo, temos de deslocar num eixo e logo depois no outro. Execute uma translacção: ==> Primeiro (Vista em Árvore) seleccione a opção Translacção (Translation) na janela Node Selector “Selector de Nó” (chega-se lá via Menu Edit >> Insert After >> escolher separador Transformation >> duplo clique em Translation) e aparecerá uma janela como a seguinte:

Fig. 9 – Janela de Configuração de uma Translacção / Translation

Nesta janela o Roboworks pergunta em que eixo queremos deslocar e quanto. ==> Desloque 6 unidades no eixo X, preenchendo a janela como se mostra no desenho anterior. Por agora não necessitará da janela de controlo. Aqui chegados, qualquer objecto que se faça, depois da transformação, ficará deslocado 6 unidades no eixo dos X.

4.1.2. Exemplo 1, de Transformações Estáticas (Esfera / Cilindro / Paralelepípedo / Transformações: Translacções e Rotações)
Execute um exemplo no Roboworks:

==> Inicie um novo trabalho/ficheiro ==> Para começar simule na janela de Vista em Árvore uma Esfera de 5 unidades de raio com
centro em 0,0,0 e de um material da cor bronze.

==> Active a Grelha (Grid) e deverá ficar com uma figura assim.

Figura 10 – Criação de Esfera

==> De seguida, agregue um novo material de cor verde e uma transformação de translacção
no eixo Y, de 8 unidades.

==> Depois insira um cilindro com orientação no eixo dos X, de 3 unidades de raio, com raio
constante e 10 unidades de largura, e situe esta figura no ponto 0,0,0. O resultado será um cilindro deslocado de 8 unidades para cima!

Se não tivesse feito a transformação, teria obtido um cilindro no meio da esfera, mas graças a ela, o cilindro está acima da esfera. Isto simplifica enormemente o modelamento pois assim não é preciso lembrar a posição de cada objecto com respeito à origem, e permite definir uma posição com maior simplicidade.

Fig. 11a - Simulação com Transformação

Fig. 11b - Simulação sem Transformação

4.1.3 Rotação
Outra opção é rodar o modelo. Assim torna-se possível representar objectos inclinados, coisa que sem as transformações não se poderia.

==> Pratique, colocando o modelo na posição que se mostra na figura seguinte:

Fig. 12 – Rotação do Cilindro

Para seu auxílio na modelação, pode recorrer à ferramenta “Coordenar Quadros/Frames” que permite visualizar as posições que o eixo de coordenadas adoptou na simulação.

4.1.4. Iniciar Transformação e Parar Transformação
(Start Transformation e Stop Transformation) As opções “Iniciar Transformação” e “Parar Transformação” permitem inserir várias transformações a partir do mesmo ponto fixo (coordenadas). Isto quer dizer que, se precisarmos de colocar primeiro o cilindro inclinado acima e logo depois um cubo ao lado, não é necessário mover a origem para cima (por causa do cilindro), e voltar logo depois abaixo para levá-lo para o lado (ao cubo). Simplesmente diz-se-lhe que ao mover a origem para cima começa uma transformação (colocando o Iniciar antes da transformação) e que pare a transformação ao finalizar a criação do cilindro. Com isto a origem volta ao seu lugar anterior às transformações dentro do Iniciar – Terminar, a partir do qual pode criar novas transformações que levem o ponto de referência (o inicial) ao lugar desejado. O que vamos ver a seguir é um exemplo desta situação:

Fig. 13 – Bloco “Iniciar Transformação” e “Terminar Transformação”

==> Coloque um “Iniciar Transformação” / “Transformation Start” (Vista em Árvore: Edit >>
Insert After >> Transformation>> Transformation Start) antes de mover o cilindro para cima e de rodá-lo no eixo dos Z.

==> Depois da criação do cilindro, neste ponto insere-se uma “Paragem de Transformação” /
“Transformation Stop”, através do qual o sistema de coordenadas regressa ao ponto em que estava antes de ser rodado e trasladado, no nosso caso à origem.

==> A partir daí pode inserir uma nova transformação que lhe permita colocar o cubo azul a
10 unidades da origem segundo o eixo dos X.

4.1.5. Escalonamento
Para terminar, o último tipo de Transformação que o Roboworks lhe permite fazer é a de “Escalonamento” / “Scaling”, que serve para escalar figuras. Isso é útil para deformar os modelos numa determinada direcção. Assim, se se deseja uma esfera achatada segundo o eixos dos Y apenas devemos escalonar nesse eixo, deixando os outros eixos sem alterações, de modo a obter uma figura como a seguinte, em que escalei a esfera segundo o eixo dos Y em 1.2, isto é, o valor segundo Y foi multiplicado por 1.2, pelo que a esfera “cresceu”/”achatou” em altura (eixo Y):

Fig. 14 – Escalonamento (Distorção num Eixo) Agora que já compreendemos as transformações estáticas, vamos continuar, com as transformações dinâmicas. O meu ficheiro com este exemplo, está aqui: http://www.profelectro.info/Uploads/luisj/Ex1_esfera_Testaticas.scn pode fazer o download e corrê-lo no seu PC.

4.2. Transformações Dinâmicas
São estas que permitem a animação dos nossos modelos. Este tipo de transformação não tem um valor específico/fixo, como tinham as anteriores. Nelas, a magnitude da transformação é uma variável, cujo valor depende das indicações dadas. Como o valor da transformação é variável, ficamos assim com a possibilidade de mudar, dinamicamente (animação contínua e não por salto estático), a posição dos objectos que dependam desta transformação (variável). Isto permite conseguir e controlar a animação dos modelos, seja por: - Meio de outro programa, - Através do teclado, - Ou de um ficheiro de dados criado pelo utilizador. As transformações dinâmicas são as mesmas que as estáticas, com a única diferença que o seu valor é variável. Assim, por meio destas transformações podemos rodar, trasladar e escalar um modelo, de forma dinâmica, ao longo do tempo (animação). As opções “Iniciar Transformação” e “Parar Transformação” podem ser usadas dinamicamente, e da mesma forma que se passa com as estáticas, permitem regressar a

um ponto de referência, que tem de ser dado antes de termos criado novas transformações.
Isto permite animar duas partes do modelo de forma independente:

4.2.1. Exemplo de Transformação Dinâmica – Animação
Faça um Exemplo: - Simule um braço mecânico capaz de: . Rodar sobre si mesmo; . Trasladar-se no eixo dos X . Rodar o seu braço, pelo seu ombro.

==> Faça uma modelação do braço como melhor prefira mas, preferencialmente, do género
do que mostramos na figura abaixo.

==> Lembre-se de colocar uma plataforma (no eixo dos X, a castanho na figura) através da
qual ele se possa deslocar e um eixo que simule a articulação do braço, o qual se encontra no ombro (cilindro a amarelo). Neste exemplo, para facilitar as coisas, utilizaremos o modelo que se mostra a seguir.

Fig. 15 – Braço robótico simples para demonstração de animação Este é um modelo simples que permite mostrar como conseguir a animação, mas você, que já está em condições de realizar qualquer modelação, pode imaginar e modelar um robot diferente deste. Lembre-se de que todas as transformações dependem das transformações feitas anteriormente, de tal forma que se quer rodar o braço do robot sobre o eixo do cilindro (“ombro” amarelo), primeiro terá que mover o eixo de coordenadas (neste caso o Y) para que coincida com o eixo do cilindro. Depois acrescente-lhe as transformações

dinâmicas. Estas devem ser feitas antes de todos os objectos que deseje mover.

--> Assim, se quer trasladar o Braço sem movimentar a plataforma, deve colocar a transformação dinâmica correspondente (Movimento em X) entre a modelação da plataforma e a modelação do cilindro azul (Base). Então: Na vista de árvore do modelo pode-se ver, entre a plataforma e a base, a transformação que permite o movimento no eixo dos X, esta é uma transformação de translacção no eixo dos X, à qual, nas suas propriedades se especifica que é dinâmica e os seus limites, para que não se saia da plataforma. ........ consegui com ..............

Plataforma – Forma - : Separador Dimensions: Location: 0,0,0 Width (X): 400 Height (Y): 5 Depth (Z): 10 Movimento até cimo da plataforma (em Y) – Translacção Estática - : Axis: Y Initial Value: 2.5 Movimento no Eixo dos X – Translacção Dinâmica - : Separador Name: Axis: X Initial Value: 0 Separador Control: Key Selector: A Increment: 1 Limits – Minimum Value: -200; Maximum Value: 200 Base (Cilindro Azul) – Forma -: Separador Dimensions: Axis: X

Location: 0, 7.5, 0 Top Radius: 3; Bottom Radius: 3; Height: 15 Tampa da Base – Forma - : Separador Dimensions: Axis: Y Location: 0, 15, 0 Radius: 3 Movimento até Eixo do Cilindro/Ombro – Translacção Estática - : Axis: Y Initial Value: 16.5 Current value: 16.5 Cilindro/Ombro – Forma -: Separador Dimensions: Axis: X Location: 0, 0, 0 Top Radius: 1.5; Bottom Radius: 1.5; Height: 6 Tampa Esq. do Ombro – Forma - : Separador Dimensions: Axis: X Location: -3, 0, 0 Radius: 1.5 Tampa Esq. do Ombro – Forma - : Separador Dimensions: Axis: X Location: 3, 0, 0 Radius: 1.5 Braço – Forma - : Location: 0, 6.5, 0 Width (X): 6 Height (Y): 10 Depth (Z): 1.5 ............................................

Fig. 16– Vista em Árvore Para modificar as propriedades da transformação, que lhe foram dadas na sua criação, entre na sua janela/separador de Controlo / “Control” (ver figura abaixo), ou faça duplo clique nela e modifique-lhe as propriedades. A janela que aparecerá será como esta:

Fig. 17 – Janela de Propriedades da Transformação Translacção “Movimento no Eixo dos X”, separador Control

Como agora está a criar a transformação:

==> Vista de Árvore >> menu Edit >> Insert After
Nesta janela pode seleccionar o tipo de transformação. A transformação estática aparece seleccionada por defeito.

==> Seleccione a dinâmica, no separador Control.
Neste momento o Roboworks permite seleccionar se deseja incluir uma “Chave Selectora” / “Key Selector” e um “Nome de Tag” / “Tag Name”. Estas opções dependem do tipo de animação que estejamos a fazer, e explicá-las-emos mais tarde.

==> Para já, pode colocar os valores que vê na figura acima, ou outros, de acordo com o seu
trabalho. Também permite seleccionar os “Limites” / “Limits” para o movimento do modelo, e se se desejar, que ele “Alerte” / “Warnings” quando se passam estes limites, é só marcar a respectiva caixa de verificação. Continuando...

==> Coloque uma transformação dinâmica de rotação entre a plataforma e a base;
.............. Consegui com.................... Rotação da Base sobre si própria – Rotação - : separador Name: Axis: Y Initial Value: 0 separador Control: Key Selectro: B Increment: 1 Limits: Minimum Value: 0; Maximum Value: 360 ...................................................................................

==> Coloque outra entre a base e o cilindro (ombro amarelo), eixo de rotação do braço.
.............. Consegui com Rotação da Base sobre si própria – Rotação - : separador Name: Axis: X Initial Value: 0 separador Control: Key Selectro: C Increment: 1 Limits: Minimum Value: -90; Maximum Value: 90 ................................................................................... E assim, finalmente, estamos prontos para começar a Animar ;-)

5. A Animação
Como já mencionámos, existem três tipos de animação: Por Teclado; Através de um Ficheiro de Dados, ou por meio de Outro Programa. Vamos começar pela mais simples:

5.1. Animação por Teclado
Para criar qualquer animação devemos modificar as propriedades das transformações dinâmicas, que são aquelas que permitem simular qualquer tipo de movimento. Prossigamos com o exemplo anterior. Se ainda não o fez, no caso da Translacção “Movimento no Eixo dos X”, dê-lhe duplo clique, na Vista em Árvore:

==> Na janela de Controlo / Control seleccione a opção “Chave Selectora” / “Key Selector” e
nas opções que ele apresenta, escolha qualquer letra do teclado, em maiúscula (nós escolhemos o A. Abaixo, especifique a magnitude do incremento (nós escolhemos 1) que deseja dar-lhe e clique em “OK”. Com isto já se pode animar por meio do teclado, bastando apenas pressionar a letra escolhida, na Vista 3D. O Robot deve deslocar-se sobre a plataforma (castanha), para a direita e para a esquerda (quando premimos simultaneamente a tecla Shift).

Experimente!
Conseguiu?

Fig.18. – Janela de Propriedades da Transformação Translacção “Movimento no Eixo dos X”, separador Control

Depois de inserir todas as Transformações (Uma Translacção e Duas Rotações), faça a tentativa, com o exemplo anterior, defina as suas transformações dinâmicas com uma letra e depois de seleccionar a vista em 3D, pressione essaa letra. Para voltar atrás (contrário/desfazer) clique na tecla Shift ao mesmo tempo que carregar na letra.

O meu ficheiro com este exemplo, está aqui: http://www.profelectro.info/Uploads/luisj/Ex2_Robot_Tdinamicas.scn pode fazer o download e corrê-lo no seu PC.

O seu modelo deve estar a movimentar-se! Se as rotações não estão a ser no eixo correcto, relembre-se que deve definir um eixo de rotação através de uma transformação estática, antes de colocar a rotação dinâmica, senão o modelo girará em relação à origem.

Fig. 19 – 4 posições possíveis do robot, depois de o trasladar sobre a plataforma e/ou rodar sobre o seu eixo (cilindro azul que forma a base), e/ou sobre o eixo do ombro (cilindro amarelo). Agora já podemos passar ao tipo de animação através de um ficheiro de dados.

5.2. Animação Por Meio de Um Ficheiro de Dados
Neste tipo de animação deve-se gerar uma

trajectória de cada uma das transformações

que tenham sido criadas, fazendo uma lista com os pontos por que passa, referenciados à origem. Isto quer dizer que se quiser que o braço se mova 30 graus, deve fazer uma lista que contenha pontos desde 0 até 30, em n passos. Na figura abaixo pode-se ver um exemplo de lista de trajectória possível. Para poder usá-la deve guardar o ficheiro como sendo do tipo .dat. Deve incluir na lista os pontos por onde passam todas as transformações simultaneamente, ainda que permaneça sem movimento por um momento, deve repetir o ponto onde parou, pelo tempo necessário.

Fig 20. – Ficheiro .dat de exemplo, criado no “Bloco de Notas”

O meu ficheiro .dat para este exemplo, está aqui: http://www.profelectro.info/Uploads/luisj/braco.dat pode fazer o download e corrê-lo no seu PC.

Agora, para podermos criar a animação, deve-se configurar a transformação dinâmica de tal forma que o Roboworks consiga ler o ficheiro .dat, usando-se para isso o campo Tag Name,

como mostra na figura abaixo, colocando-se lá o nome da coluna do ficheiro, que deve também ser (mas não é obrigatório) o nome da Transformação, seja ela a Translacção ou qualquer das Rotações. O que mostramos abaixo para a Translacção, deve também ser feito para as duas rotações.

Fig. 21 – Preenchimento do Tag Name = nome da coluna do ficheiro .dat Devemos dar um “Nome de Tag” para identificar a coluna de dados que contém as mudanças de posição desta transformação. O início de uma lista de trajectória deve-se identificar com o “Nome de Tag” a coluna correspondente à trajectória que criámos. Estes “Nomes de Tag” devem coincidir com os que colocámos em cada transformação. Agora já é possível explorar o menu de animação. Clique nele para ver as opções que se lhe apresentam:

Fig. 22 – Opções do Menu Animation (de Animação) A primeira opção é animação a partir de um ficheiro. É esta que se vai usar para dizer ao Roboworks qual é o ficheiro .dat no qual guardámos o nosso percurso. Ao seleccionar esta opção aparece uma janela que pergunta onde está o ficheiro que tem a animação. Seleccione-o e aparecerá uma janela de animação (ver a figura seguinte), onde se pode pôr a correr o percurso (conjunto de movimentos) que tínhamos planeado.

Fig.23 – Janela de onde é possível comandar a animação, que tem origem no ficheiro .dat Experimente! Se a animação ficar muito rápida, vá aumentando o valor do campo Time Delay (ms). Continuando com a explicação do significado das várias opções no menu Animation, além do From File, que usámos, temos:

. A segunda opção, “Do IPC” / “From IPC” deve ser seleccionada se queremos que a animação seja comandada por outro programa/software. Por enquanto não a seleccione. . “Limpar Tudo” / “Reset All” permite fazer regressar a animação ao seu início, aquele ponto em que ainda não houve qualquer movimento do modelo. . “Monitor” apresenta uma janela com a posição actualizada em todos os momentos das transformações.

Fig.24 – menu Animation >> Monitor . “Tornar Defeito” / “Make Default” permite mudar o ponto inicial da animação, permitindo mover um modelo até ao lugar mais conveniente para nós na altura. E... bem, já não é preciso saber mais nada para podermos criar uma animação a partir de um ficheiro. Apenas devemos criar um ficheiro .dat, modificar as propriedades das transformações dinâmicas, e seleccionar o ficheiro que tem a animação, a partir do menu de animação, em “Do Ficheiro” / “From File”, como vimos. Agora já podemos dedicar-nos a criara a animação a partir de um outro software, quer seja o C++, Visual Basic, LabView, ou outro.

5.3. Animação Através de Outro Programa/Software
Esta opção é o maior feito do Roboworks. Os seus programadores chamam-lhe RoboTalk, e consiste numa série de livrarias que nos permitem programar o modelo a partir de outros programas, as trajectórias pelas quais se irá movimentar o nosso modelo em 3D. Graças ao RoboTalk pode-se programar uma trajectória para uma máquina, num software de programação e ver no Roboworks como vai ele reagir perante os comandos que lhe dermos. Isto é muito útil pois permite realizar a programação do movimento de uma máquina sem a necessidade de a mover do seu lugar, reduzindo-se assim as possibilidades de colisões por falhas de programação. As etiquetas dadas às transformações do nosso Robot permitem controlar, a partir de um programa, o movimento resultante, no Roboworks. O RoboTalk está instalado, como um .dll, e juntamente com ele encontram-se os ficheiros para a programação em Windows através do C++ ou do Visual Basic. Também se disponibilizam os ficheiros .vi para a programação usando o LabView. Se queremos utilizar o programa numa plataforma diferente do Windows, o RoboTalk fornece o código para que se programem as funções noutra plataforma que não entenda os ficheiros .dll. O Roboworks também permite, através do TCP/IP, controlar a simulação da trajectória, a partir de programas correndo em computadores separados e ligados pela Internet. Para correr a simulação devemos activar a opção “Do IPC” / “From IPC”, a partir do menu de animação, e depois correr o programa já compilado. A simulação dar-se-á no Roboworks.

Fig.25 – Activar a opção From IPC é o primeiro passo para correr programa de outro software

A seguir poderemos ver a descrição dos códigos para os comandos principais do

RoboTalk:
CONNECT int Connect(char* filename, char* ipAddress); Esta função estabelece uma ligação entre o programa controlador e o Roboworks. Para que esta ligação funcione, devemos ter a simulação aberta e a opção “Do IPC” activada. DISCONNECT int Disconnect(); Esta função desliga o programa do Roboworks, e deve ser chamada antes de terminarmos o programa. GET TAG VALUES int GetTagValues(char** tagNames , float* tagValues , unsigned int noTags ); Esta função chama os valores das etiquetas definidas nas transformações SET TAG VALUES int SetTagValues(char** tagNames , float* tagValues , unsigned int noTags ); Esta função envia as etiquetas ao Roboworks, com os valores que lhe correspondem, para poder animar o modelo no Roboworks.

6. EXERCÍCIOS PRÁTICOS
6.1. ESFERAS PLANETÁRIAS

Fig. 26 – Esferas Planetárias

Enunciado
Faça o exercício seguinte, de tal forma que as esferas de cores girem em torno do poste verde, a diferentes velocidades e em sentidos contrários, pressionando apenas a tecla Q do teclado.

Fig.27 – Grupos Criados (Estrutura) Comece pela modelação. Para simplificar as coisas faça um grupo por cada elemento do modelo, e em cada grupo defina um material. Como se pode ver na janela/figura acima, há 5 grupos diferentes de sólidos, onde se agrupam as partes principais da modelação. Para que as transformações que afectam cada sólido não afectem os outros, em cada grupo de elementos definem-se um início de transformação e um final de transformação. Para realizar o eixo precisará, inicialmente, de 2 cones com cinco unidades de raio e 10 de altura, com um deles invertido. Para poder fazê-lo deverá inverter o sistema de coordenadas, rodando-o de 180 graus no eixo dos X ou dos Z. Desta forma se consegue fazer o entalhe do centro do eixo. Por cima de cada cone faz-se um cilindro com cinco unidades de raio e cinco unidades de altura e, no final, outro cone de cinco unidades de raio e cinco unidades de altura.

Fig. 28 – Fase da criação do pivot

Fig. 29 – Fase da criação do pivot Já fizemos o eixo, agora só é preciso fazer as esferas e as animações. Ao sair do grupo do eixo, voltará a ter as coordenadas como no início do programa, e graças a isso não precisará rodar os 180 graus no eixo dos X. Cada esfera girará em torno do eixo, pelo que deve deixá-la referenciada a esse eixo.

==> Insira a esfera amarela: é uma esfera de 5 unidades de raio, na posição 20 em X, 0 em Y,
e 0 em Z, em relação à origem.

Fig. 30 – Acabada de inserir a forma Esfera Amarela Não desloque a esfera por meio de uma transformação estática, para manter a referência da origem, de tal forma que a esfera gire em redor dela (origem). Para definir a animação, precisará de uma rotação em torno do eixo dos Y, ao pressionar a letra Q, e com um incremento de 10 graus por segundo.

Fig. 31 – Definição da animação da esfera amarela Já pode provar como roda a esfera ao redor do eixo, ao pressionar a tecla da letra Q (tem de estar na janela 3D, não se esqueça).

==> Execute o mesmo processo para as outras esferas, mudando as posições e o incremento
angular de rotação, segundo a tabela seguinte: Tabela 1 Posição X, Y, Z 20, 0, 0 0, 0, 50 -30, 0, 0 0, 0, -60

Cor da Esfera Amarela Vermelha Bronze Azul

Incremento Angular da Rotação 10 -6 -2 5

Todas as transformações devem mover-se através da letra Q. Agora já podemos experimentar a sua animação das esferas planetárias.

Fig.32 – Exemplo de posição das esferas já depois de terem rodado, por pressão na tecla Q E também já deve saber responder a esta pergunta: Que aconteceria se não puséssemos um início de transformação e um final de transformação em cada esfera?

O meu ficheiro com este exemplo, está aqui: http://www.profelectro.info/Uploads/luisj/ExemploPratico1_EsferasPlanetarias.scn pode fazer o download e corrê-lo no seu PC.

6.2. CARRINHO

Fig. 32 – Carrinho que vamos construir Para praticar a modelação de elementos complexos vamos modelar o carrinho que pode observar na figura acima. ==> Comece pelo principal, a cabina. ==> Primeiro defina o material, a cor do modelo é o vermelho brilhante, mas pode dar a cor sua preferida. ==> Faça depois a cavidade dos bancos. A seguir pode ver a sequência de criação do modelo e logo depois encontrará uma tabela com as posições e medidas de cada elemento. É recomendável que o faça com as suas próprias medidas e que construa um carro com o seu próprio estilo.

Fig 33 – Várias fases de construção: Chassis, Portas, Painéis, Cavidades para Pneus. Na sequência, poderá ver como fazer os discos anelares e os cilindros. As outras figuras são rectângulos, e todas as medidas se encontram numa tabela da página seguinte. Os discos anelares fazem-se assim: ==> Defina o diâmetro interior e o exterior, e posicione depois o disco no mesmo lado da porta. Para que seja apenas meia-circunferência, defina o ângulo final como 180°.

Fig. 34 – Parâmetros dos Discos Anelares / Cavidades para Pneus / Aros Os cilindros funcionam de igual forma: ==> Deve dar-se um ângulo inicial e um ângulo final, sendo que assim não se desenhará o cilindro completo, como queremos.

Fig. 35 – Parâmetos dos Cilindros / Curvas dianteiras e traseiras dos respectivos painéis. Se tiver problemas com alguma cor dos discos anelares, verifique na propriedade de rendering do objecto, se a face sombreada é a correcta.

Elementos Cúbicos Do Modelo
Edit >> Insert After >> Cube >> separador Dimensions Tabela 2 Dimensão Height - Y 2 20 20 20 20 10 10

Nome Parte de Baixo (Chassis) Porta Direita Porta Esquerda Painel Frontal Painel de Trás Dianteira Traseira

Width - X 30 30 30 2 2 15 15

Depth - Z 50 2 2 50 50 52 52

Posição / Location X Y Z 0 1 0 0 10 25 0 10 -25 -15 10 0 15 10 0 22.5 15 0 -22.5 15 0

Discos Anelares / Annular Discs
Edit >> Insert After >> Annular Disc >> separador Dimensions

Tabela 3 Dimensão Nome Aro 1 Aro 2 Aro 3 Aro 4
Eixo / Axis Raio Ext. / Outer Radius Raio Int. / Inner Radius Ângulo Inicial / Start Angle Ângulo Final / Stop Angle X

Posição
Y Z

Z Z Z Z

20 20 20 20

10 10 10 10

0 0 0 0

180 180 180 180

30 -30 30 -30

0 0 0 0

26 26 -26 -26

Curvas / Cilindros
Edit >> Insert After >> Cylinder >> separador Dimensions Tabela 4 Dimensão Nome
Raios (topo e fundo) / Top Radius e Bottom Radius (valor igual) Ângulo Inicial / Start Angle Ângulo Final / Stop Angle Profundida de / Height

Posição

Eixo

X

Y

Z

Dianteiro Traseiro

Z Z

20 20

0 90

90 180

52 52

30 -30

0 0

0 0

Bem! Agora é terminar o carrinho. Abaixo poderá ver as imagens da criação do resto do carro.

Fig.36 – Construção das Rodas Os aros fazem-se inserindo cilindros de borracha negra (black rubber), cada um com um par de discos a servir de tampas.

Aros das Rodas (Cilindros)
Edit >> Insert After >> Annular Disk >> separador Dimensions

Nome Aro das Rodas 1 Aro das Rodas 2 Aro das Rodas 3 Aro das Rodas 4

Eixo / Axis Z Z Z Z

Tabela 5 Dimensão Raios (Top e Bottom) 8 8 8 8

Posição Longitude / Height 10 10 10 10 X 30 -30 30 -30 Y 0 0 0 0 Z 20 20 -20 -20

Tampas dos Aros das Rodas
Edit >> Insert After >> Disk >> separador Dimensions Tabela 6 Dimensão Eixo Raio Z 8 Z 8 Z 8 Z 8 Z 8 Z 8 Z 8 Z 8

Nome Tampa Aro 1 ext. Tampa Aro 1 int. Tampa Aro 2 ext. Tampa Aro 2 int. Tampa Aro 3 ext. Tampa Aro 3 int. Tampa Aro 4 ext. Tampa Aro 4 int.

X 30 30 -30 -30 30 30 -30 -30

Posição Y 0 0 0 0 0 0 0 0

Z 25 15 25 15 -25 -15 -25 -15

Vire o carrinho do avesso para ver se está tudo bem.

Fig. 37 – Carrinho do avesso para ver se está tudo OK E agora, o vidro. Este é formado por uma “cunha” / “wedge”. Para o construir é necessário especificar - uma direcção de extrusão; - uma altura; - as longitudes do lado de baixo e do lado de cima; - a distância de desvio entre estas duas linhas, de tal forma que se obtenha uma figura assim:

Fig. 38 – “Cunha” / “Wedge” – tipo de figura para criação do vidro

Fig.39 – Vidro e pormenor do vidro – Inclinação / Top Ofset / Diferença entre a posição Z da base inferior do vidro e o seu topo. Pode ver que esta é a figura que devemos fazer, uma “Cunha” / “Wedge” em que as longitudes superiores e inferiores são iguais e pequenas, com um desvio para a direita.

Fig.40 – Valores das Propriedades do Vidro Continuando as especificações:

Vidro
Edit >> Insert After >> Wedge >> separador Dimensions

Nome

Eixo

Altura / Height 15

Vidro

Z

Tabela 7 Dimensão Diferença Largura Largura entre LI e inferior superior LF / Profundidade / / Top Inclinação / Depth Bottom Width / Top Width Ofset 2 2 5 50

Posição

X

Y

Z

-15

27.5

0

Já só faltam as

luzes.

Estas consistem em 2 cilindros com o seu respectivo disco de cor

amarela. A seguir, as suas especificações:

Luzes (Cilindros)
Tabela 8 Nome Luz 1 Luz 2 Eixo X X Dimensão Raio Profundidade 4 5 4 5 X -47.5 -47.5 Posição Y 7 7 Z 15 -15

Luzes (Discos)
Tabela 9 Nome Tampa da Luz 1 Tampa da Luz 2 Eixo X X Dimensão Raio 4 4 X -50 -50 Posição Y 7 7 Z 15 -15

Fig. 41 – Carro completo E assim terminámos o carro. como exercício, junte-lhe os bancos e os espelhos. E, já agora, ponha o carrinho a “andar”...

O meu ficheiro com este exemplo, está aqui: http://www.profelectro.info/Uploads/luisj/ExemploPratico2_Carrinho.scn pode fazer o download e corrê-lo no seu PC.

6.3. ROBOT COM 5 GRAUS DE LIBERDADE

Fig. 42 – Robot 5GL Pode ver acima um robot com 5 graus de liberdade que se movimenta sobre um carril para pegar em peças que podem estar em cima de cada uma das mesas vermelhas. O objectivo deste exercício é simular o movimento do robot, a partir de um ficheiro .dat ==> Para isso deverá construir um robot com: - Deslocamento no eixo dos Z, através de um carril; - Rotação no eixo dos Y na base; - Três juntas rotativas que unem os dois braços que formam o robot; - Rotação no pulso; - Punho semelhante a uma pinça, com movimento independente de cada uma delas. Já tem conhecimentos suficientes para modelar o robot, pelo que nos concentraremos apenas na animação.

Fig.43 – Estrutura (Vista de Árvore) Geral Os elementos sem animação são bastante simples, as mesas, o piso do carril consistem em cubos adequados ao tamanho do robot. Nota: abaixo falarei em pinças, mesmo sabendo que é só uma, para não estar sempre a escrever pinos ou pernos que constituem as pinças; para efeitos de abreviação, portanto.

Fig. 44 – Como ficou o meu ao fim de 3 horas de trabalho. Nice! O robot é o elemento mais importante, já que contém toda a animação. Para tornar independente o movimento do robot de todos os outros elementos modelados, coloque um “Início de Transformação” (chamai-lhe “Início do Robot”) ao começar a modelar o robot, e termine a modelação deste com um “Fim de Transformação” (chamei-lhe “Fim do Robot”).

Fig. 45 – Vejam o Início de Transformação “Início de Robot” e o Fim de Transformação “Fim de Robot”, ambas filhas do Grupo “Robot”. Assim o robot mexe-se de forma coesa, inteiro, sem ficarem peças “esquecidas” num movimento/transformação qualquer. A seguir coloque uma transformação dinâmica de deslocamento no eixo dos Y (eu chamei-lhe Rotação Principal), o que permite que todo o robot se movimente pelo eixo dos Y quando o arquivo .dat o especificar.

Fig. 46 – Transformação Dinâmica no eixo dos Y –Permite que Robot ande ao longo do carril. Antes do Rotacionador, que é o cilindro vertical que se segue à base, coloque a Rotação dinâmica no eixo dos Y (chamei-lhe Rotação Principal e é a rotação que está dentro do grupo Base, ainda antes do grupo Rotacionador portanto), e a terminar a modelação do Rotacionador (grupo),

mova o ponto de referência até à posição que vai ocupar o primeiro eixo de rotação (Eixo 1).
Agora poderá pôr a rodar o Eixo 1, mas antes deve colocar uma rotação dinâmica (Rotação Eixo 1) no eixo dos Z, de tal forma que se possa rodar o Braço 1 sobre o eixo que se acabou de modelar.

Depois de modelar o Braço 1, volte a deslocar o eixo de coordenadas até ao Eixo 2 e coloque uma Rotação dinâmica antes do Eixo 2 (Rotação Eixo 2), de tal forma que o Braço 2 gire em torno do eixo 2, e não em torno do eixo 1. Faça a mesma operação para o eixo 3, traslade o eixo de coordenadas até à localização do eixo 3 e coloque uma Rotação dinâmica para que gire em redor do eixo dos Z. Agora, Base das Pinças, a possibilidade de rodar em torno de si mesmo, criando, antes dela, uma Rotação dinâmica no eixo Y (Rotação da Base das Pinças) e outra em torno do eixo Z (Rotação da Base das Pinças 2).

Fig. 47 – Vista em Árvore Final, ainda sem a construção das pinças móveis (estão ainda fixas) como abaixo se sugere.

Fig.48 – Vista em Árvore da parte das pinças, abaixo explicado Para construir as pinças, primeiro deve colocar em cada um dos lados que compõem as pinças, um Início e um Fim de Transformação (Início de Pinça 1 e Fim de Pinça 1, para o caso da primeira. Para a outra é igual). Isto faz-se para que, ainda que a sua posição dependa do resto do robot, a sua posição não dependa do outro lado da pinça, e assim facilitar as coisas. Podemos dar-lhe o mesmo Nome de Tag, e a um deles um incremento negativo, desta forma sincronizando-os para que fechem e abram em simultâneo, com um só comando.

Fig.49 – Translacção da Pinça 1 (permite o movimento de aperto e desaperto das pinças, para pegar e largar a peça). A da pinça 2 tem os valores similares, com as adaptações referidas no texto

Depois gere o arquivo .dat. A seguir apresentamos o princípio da animação. Relembre que os parâmetros (nomes das colunas) desta modelação provavelmente não são iguais aos da sua modelação, pelo que deve gerar a sua própria animação baseando-se nestes dados, mas não os copie pois não servirão para grande coisa. Nota: Os títulos das colunas são os respectivos Nomes de Tag / Tag Name, campo do separador Control da janela de configuração da correspondente Transformação (Translacção o Rotação, no nosso caso), conforme explicado atrás neste mesmo tutorial.

Base -5 -10 -15 -20 -25 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30

Rotacionador 0 0 0 0 0 0 0 0 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 90 90 90 90 90 90 90 90

Eixo1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5 -10 -15 -20 -25 -30 -35 -40 -40

Eixo2 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50

Eixo3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

MovPinca1 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5

MovPinca2 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5

-30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30

90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90

-40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40

-50 -50 -50 -50 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 10 15 20 25 30 35 40 40 40 40 40 40 40 40 40 40

1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.3 1.1 0.9 0.7 0.5 0.3 0.1 0 -0.1

-1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.3 -1.1 -0.9 -0.7 -0.5 -0.3 -0.1 -0 0.1

Os meus ficheiros com este exemplo (tenho 2 versões), estão aqui: http://www.profelectro.info/Uploads/luisj/ExemploPratico3_Robot_5GL.scn http://www.profelectro.info/Uploads/luisj/ExemploPratico3_Robot_5GL_FromFile.scn + o ficheiro .dat http://www.profelectro.info/Uploads/luisj/ExemploPratico3_robot5GL.dat pode fazer o download e corrê-lo no seu PC.

Os movimentos do robot, provocados por estes dados/ficheiro, encontram-se documentados neste filme/screencast: http://youtu.be/gNtacXbGrpY Apenas estão realizados os movimentos correspondentes ao deslocamento do robot para ir pegar numa peça (fictícia). Pode completar o modelo/exemplo com os movimentos subsequentes, à sua discrição.

Screencasts complementares a estas folhas: 1. Criar Formas e Transformações Estáticas http://www.profelectro.info/?p=4684 http://www.profelectro.info/Uploads/luisj/RoboWorks1.html http://youtu.be/B-L6-plutFI 2. Transformações Dinâmicas / Animações (a publicar brevemente) 3. Animações a partir do teclado; de ficheiro (de texto) .dat; de programação (a publicar brevemente) 4. Exemplo Prático 1 – Esferas Dinâmicas (a publicar brevemente) 5. Exemplo Prático 2 - Carrinho (a publicar brevemente) 6. Exemplo Prático 3 – Braço Robótico com 5 Graus de Liberdade (a publicar brevemente) ---> Estejam atentos ao blog: www.profelectro.info <---

Sign up to vote on this title
UsefulNot useful