Modelagem em 3-D com SketchUp e Eclipse, Parte 1: Criando a Ponte entre SketchUp e Eclipse

Uma das ferramentas mais recentes e populares da Google, SketchUp, acaba com as dificuldades de modelagem em 3-D. O SketchUp não apenas facilita a criação de designs manualmente, mas também permite automatizar o processo do design com scripts Ruby. Como gerenciar e editar esses scripts é tão importante, ajuda ter um ambiente de desenvolvimento completo como o Eclipse. Aprenda como configurar o SketchUp e o Eclipse para que seja possível editar scripts no Eclipse e executá-los automaticamente no SketchUp.

Matthew Scarpino, Java Developer, Eclipse Engineering, LLC

Matthew Scarpino é gerente de projeto e desenvolvedor Java na Eclipse Engineering LLC. Ele é autor principal de SWT/JFace in Action e fez uma pequena, mas importante, contribuição com o Standard Widget Toolkit (SWT). Ele gosta de música folclórica irlandesa, de corrida de maratona, do poeta William Blake e de Graphical Editing Framework (GEF).


nível de autor Contribuidor do
        developerWorks

14/Abr/2009

A modelagem em 3-D tornou-se uma tarefa crucial em um de meus recentes projetos e — desesperado para encontrar uma ferramenta de design — testei versões de avaliação de AutoCAD, Blender, Maya e SketchUp. No fim, o SketchUp foi, de longe, o mais fácil de aprender e o mais divertido de usar. "Não pode ser tão simples assim", falava para mim mesmo. Mas entre os tutoriais self-paced do Google e as demonstrações de vídeo do YouTube, não apenas acelerei a curva de aprendizado, mas realmente achei a conclusão do projeto prazerosa.

Acrônimos Usados Frequentemente

  • API: Interface de Programação de Aplicativos
  • CVS: Concurrent Versions System
  • SVN: Subversion
  • UI: Interface com o Usuário

O que me deixou ainda mais feliz (sou um programador, não um artista gráfico) foi descobrir que o SketchUp executa scripts de comando, o que significa que posso automatizar tarefas como incluir rótulos em figuras, designar materiais a superfícies e desenhar formas geométricas, como parábolas e elipses. A API do SketchUp é baseada na linguagem de programação Ruby e, como o SketchUp, não foi difícil aprendê-la. Para expedir o processo de codificação, codifiquei um plug-in do Eclipse customizado que se comunica com o SketchUp através do SketchUp Bridge.

Este artigo fornece uma breve introdução ao SketchUp, explica como o SketchUp Bridge funciona e mostra como instalar o plug-in que conecta o Eclipse ao SketchUp. O próximo artigo desta série "Modelagem em 3-D com SketchUp e Eclipse" se aprofundará em relação à API do SketchUp e aos tipos de designs que podem ser criados.

A Ferramenta de Modelagem SketchUp

Como o próprio site da Google, o Google SketchUp fornece uma grande quantidade de recursos abaixo de uma interface simples. A meta do SketchUp é fornecer "3-D para Todos", e ele atinge a meta: em cinco minutos, é possível aprender como desenhar formas básicas em 2-D e fazer a extrusão das mesmas para figuras de 3-D. Em meia hora, simplesmente brincando com ele, é possível se tornar proficiente com todas as ferramentas da barra de ferramentas. A Figura 1 ilustra a UI do SketchUp. Apesar de parecer uma ferramenta de modelagem, o SketchUp dá a sensação de um brinquedo.

Figura 1. A UI do SketchUp
A UI do SketchUp

Diferentemente do Blender, o SketchUp não é software livre. A licença de proprietário da Google permite usar a ferramenta para qualquer propósito legal e é possível estender o SketchUp com plug-ins, mas nenhum fim legal está disponível. O SketchUp pode ser executado somente em computadores que estejam executando o Windows® ou o Apple Mac OS X, e duas versões estão disponíveis: uma versão gratuita e uma versão por US$495 chamada SketchUp Pro. O SketchUp Pro fornece layouts e estilos profissionais, operações avançadas de arquivos e suporte técnico. No entanto, a versão gratuita ainda fornece uma tonelada de recursos e antes de continuar a ler, recomendo que você visite o site do SketchUp (consulte Recursos) e faça download de uma cópia.

Iniciando o SketchUp

Ao ativar o SketchUp pela primeira vez, será perguntado qual modelo deseja usar. Um modelo define as unidades de medida e a aparência geral de sua janela de design. Há doze opções disponíveis:

  • Modelo Simples (pés e polegadas)— Colore o plano x-y de verde, a região z positiva de azul claro
  • Modelo Simples (metros)— Colore o plano x-y de verde, a região z positiva de azul claro
  • Design Arquitetônico (pés e polegadas)— Colore o plano x-y de cinza escuro, a região z positiva de cinza claro
  • Design Arquitetônico (milímetros)— Colore o plano x-y de cinza escuro, a região z positiva de cinza claro
  • Modelagem do Google Earth (pés e polegadas)— Colore o plano x-y de verde, a região z positiva de azul claro
  • Modelagem do Google Earth (metros)— Colore o plano x-y de verde, a região z positiva de azul claro
  • Engenharia (pés)— Colore toda a região de design de branco
  • Engenharia (metros)— Colore toda a região de design de branco
  • Design do Produto e Marcenaria (polegadas)— Colore o plano x-y de cinza escuro, a região z positiva de cinza claro
  • Design do Produto e Marcenaria (milímetros)— Colore o plano x-y de cinza escuro, a região z positiva de cinza claro
  • Visualização do Plano (pés e polegadas)— Colore toda a região de design de branco (inicia com uma visualização em 2-D)
  • Visualização do Plano (milímetros)— Colore toda a região de design de branco (inicia com uma visualização em 2-D)

Exceto pelas unidades de medida, não há diferença significativa entre um modelo e o seguinte. Sou do tipo de engenharia, portanto, prefiro o modelo Engenharia (metros).

Ao escolher um modelo, a janela de design do SketchUp aparece e você vê diversas linhas que se encontram em um ponto chamado origem. Essas linhas definem o sistema de coordenadas (x,y,z) e a A Figura 1 mostra a aparência das mesmas. A linha vermelha sólida é o eixo x positivo e a linha vermelha pontilhada é o eixo x negativo. A linha verde sólida é o eixo y positivo e a linha verde pontilhada é o eixo y negativo. A linha azul sólida é o eixo z positivo e a linha azul pontilhada é o eixo z negativo(xyz = RGB; entendeu?).

Desenho do SketchUp

Este artigo está interessado em automatizar o SketchUp, mas, primeiro, você deve ter alguma ideia de como fazer as coisas manualmente. Vamos começar desenhando duas figuras simples. Como com o Adobe® Photoshop® e o Microsoft® Paint, o processo de desenho do SketchUp envolve selecionar ferramentas da barra de ferramentas e clicar na janela de design. A Figura 2 mostra a barra de ferramentas básica do SketchUp.

Figura 2. A Barra de Ferramentas Básica do SketchUp
The basic SketchUp toolbar

Para iniciar, clique na ferramenta Retângulo, que desenha uma superfície retangular sólida. Crie um retângulo clicando em dois pontos da janela de design. Como verá, a primeira forma de um design sempre é colocada no plano x-y. O resultado deve ser semelhante à Figura 3a.

Figura 3a. Figuras Simples do SketchUp
Figuras do SketchUp

A ferramenta Push/Pull inclui uma terceira dimensão em uma face e é usada para transformar o retângulo em uma caixa. Clique na ferramenta Push/Pull, clique no retângulo e mova seu mouse para cima. Aparece uma caixa na janela do SketchUp e sua altura é alterada com a posição do mouse. Clique novamente para criar uma caixa semelhante àquela mostrada na Figura 3b. O termo do SketchUp para criar uma figura em 3-D a partir de uma figura em 2-D é extrusão.

Em seguida, desenhe um cilindro sobre a caixa. Clique na ferramenta Círculo, em seguida, clique no centro da superfície superior da caixa. Mova o mouse para fora do centro e clique novamente para formar um círculo semelhante àquele mostrado na Figura 3c. Por fim, clique na ferramenta Push/Pull novamente, mova o mouse para cima e crie o cilindro mostrado na Figura 3d. Se o mouse for movido para baixo, é possível criar um buraco cilíndrico na caixa.

Essa lição básica é muito fácil, mas o SketchUp pode fazer muito, muito mais. Para lições completas, acesse o site de treinamento do SketchUp (consulte Recursos) e percorra os tutoriais para seu próprio ritmo. Quando tiver concluído, assista os vídeos que cobrem tópicos intermediários e avançados, para melhor entender a amplitude dos recursos do SketchUp.

O Console Ruby do SketchUp

Apesar de desenhar no SketchUp ser divertido, prefiro criar designs em código. Para ver como isso funciona, no SketchUp, clique em Window > Ruby Console para exibir uma janela com uma interface da linha de comando (CLI) na parte inferior e uma janela de saída na parte superior. Inserindo código nessa CLI, é possível criar e modificar formas na janela de design. Antes de iniciar, remova quaisquer formas existentes clicando na ferramenta de Seleção, em seguida, pressione Ctrl+a seguindo por Excluir. Em seguida, na linha de comando do Console Ruby, digite os dois comandos a seguir:

face = Sketchup.active_model.entities.add_face [0,0,0], [9,0,0], [9,9,0], [0,9,0]

face.pushpull -9

Esses comandos são gravados em Ruby, a única linguagem de programação que o SketchUp reconhece. Ruby é orientada a objetos e o primeiro comando cria um objeto chamado face, que representa um retângulo no design atual. A segunda linha cria uma caixa chamando o método pushpull() da classe Face . A Figura 4 mostra a saída exibida no console após ambos os comandos terem sido inseridos.

Figura 4. A Janela Console Ruby do SketchUp
A Janela Console Ruby

Agora, se você der uma olhada na janela de design do SketchUp, verá uma caixa quadrada (9x9x9) que toca a origem. Para obter uma visualização mais próxima, clique na ferramenta Extensões de Zoom. Usando as ferramentas do SketchUp, é possível mover, escalar e girar essa figura como se fosse uma forma regular.

Não há nenhum problema com CLIs, mas nós, programadores sérios, colocamos nosso código em arquivos para não precisarmos inserir novamente todos os nossos comandos. O acesso a arquivo é realizado através do comando load , que lê em um script Ruby (*.rb) e indica ao interpretador de Ruby do SketchUp para executar cada um de seus comandos. Forneci um script de exemplo chamado lathe.rb (consulte Downloads). Esse script cria uma forma torneada usando um método de extrusão diferente do que o mecanismo Push/Pull descrito acima. Após ter transferido por download esse script, é possível executá-lo com um comando como o seguinte (que supõe que o script esteja na pasta C:\test):

load "C:/test/lathe.rb"

O SketchUp agora executa os comandos do lathe.rb e exibe a forma torneada da Figura 5.

Figura 5. Forma Torneada de Exemplo
Forma Torneada de Exemplo

O SketchUp Bridge

Considerações sobre Ruby e Eclipse

A API do SketchUp é baseada em Ruby, uma linguagem de programação relativamente nova usada principalmente para computação corporativa (Ruby on Rails). Nunca havia programado em Ruby antes do SketchUp e não tenho dúvida de que muitos outros estão na mesma situação. Não é uma linguagem difícil de se aprender e Ruby possui muitas vantagens em relação a C, C++ e à linguagem de programação Java™ , como seus agentes iterativos e sua sintaxe simples. Mas, sem dúvida, teria sido mais fácil para mim se os criadores do SketchUp tivessem baseado sua API em uma linguagem mais popular.

A Google não criou o SketchUp; ela obteve o aplicativo ao adquirir a @Last Software. Mas como a Google possui tantos programadores de Java, seria maravilhoso se alterassem a API de Ruby para a tecnologia Java. Tornaria-se, então, mais popular na comunidade acadêmica, e os designers de 3-D poderiam usar todas as ferramentas de software livre que a tecnologia Java fornece. SketchUp não seria apenas o "3-D para Todos", mas também "Codificação de 3-D para Todos".

Seria, até mesmo, melhor se os recursos do SketchUp fossem implementados dentro de um plug-in do Eclipse. Então, além da janela de design, seria possível ter todos os navegadores de recursos, visualizações de depuração/estrutura de tópicos/console e a integração de CVS/SVN que o Eclipse fornece. Não muito difícil: o Eclipse Graphical Editor Framework (GEF) pode ser construído sobre OpenGL exatamente como o SketchUp é. Assim, o SketchUp realmente seria concorrência para o AutoCAD. Se precisar de algum voluntário, Google, envie-me um e-mail.

O SketchUp permite carregar scripts de comando, mas não fornece nenhum tipo de editor de script. Portanto, a maioria dos desenvolvedores de script codifica scripts com um aplicativo separado e carrega os mesmos na janela do console Ruby. Podemos fazer melhor. O SketchUp Bridge possibilita executar scripts Ruby fora do SketchUp, o que significa que nunca será necessário inserir comandos na janela do console. Posteriormente neste artigo, explico como acessar o SketchUp Bridge a partir do Eclipse. Por ora, a primeira prioridade é instalar os arquivos do SketchUp Bridge e ver como funcionam.

Obtendo e Instalando o SketchUp Bridge

O SketchUp Bridge foi liberado pela misteriosa galera da plugins.ro, cujo respeitável lema é: "Ferramentas que o fazem feliz". A licença permite acesso gratuito ao software para uso pessoal. O uso comercial requer permissão do autor, cujo nome é fornecido somente como TBD. Para obter o software, visite o site da plugins.ro (consulte Recursos) e clique no link para bridge.zip. Após ter transferido por download e extraído o archive, será possível encontrar três arquivos importantes:

  • bridge_load.rb— Um script Ruby que funciona como um plug-in para o SketchUp
  • Bridge.so— Uma biblioteca de rotinas que o plug-in bridge_load acessa
  • SUB.exe— Um aplicativo do Windows que executa os scripts do SketchUp fora do SketchUp

Para instalar o SketchUp Bridge, coloque os dois primeiros arquivos no diretório Plugins em sua pasta de nível superior da instalação do SketchUp. Em meu sistema, essa pasta é C:\Program Files\Google\Google SketchUp 7\Plugins. Como o bridge_load.rb é um script Ruby no diretório Plugins, será carregado automaticamente quando o SketchUp for iniciado. Esse posicionamento no diretório é o que diferencia uma plug-in do SketchUp de um script regular.

Testando a Ponte

Antes de fazer a interface do SketchUp Bridge com o Eclipse, é necessário verificar se tudo está funcionando corretamente:

  1. Faça download do script lathe.rb (consulte Downloads) e coloque-o na mesma pasta que o aplicativo SUB.exe fornecido com o SketchUp Bridge. A pasta pode estar em qualquer parte de seu computador, não necessariamente no diretório Plugins do SketchUp.
  2. Inicie o SketchUp ou reinicie-o se já estava em execução.
  3. Abra um prompt de comandos do Windows e vá para o diretório que contém o SUB.exe e o script lathe.rb.
  4. Digite o comando SUB lathe.rb.

O aplicativo SUB indica ao SketchUp para ler os comandos dentro de lathe.rb. O interpretador de Ruby do SketchUp executa os comandos e o resultado (mostrado na Figura 5) ficará visível na janela de design. Essa organização torna-se especialmente conveniente quando há dois monitores. Em seguida, é possível editar seu script em um monitor e visualizar o design do SketchUp no outro.


Eclipse e o SketchUp Bridge

Sou um fã conservador do Eclipse e quando preciso gravar código em uma nova linguagem, a primeira coisa que procuro é um recurso do Eclipse que forneça os recursos de suporte e edição de arquivo que me tornam tão ridiculamente produtivo. O Ruby Development Toolset (RDT) costumava estar disponível, mas tornou-se parte da ferramenta RadRails do Aptana, que agora é uma recurso complementar para o Aptana Studio. É possível fazer download do Aptana Studio e do RadRails, mas o processo de instalação é longo e complicado. Além disso, se quer apenas um editor de Ruby, fazer download de uma versão de avaliação de 30 dias do gigantesco Aptana Studio não vale a pena.

Como eu estava insatisfeito com as ferramentas existentes de Ruby, gravei meu próprio plug-in do Eclipse, que temporariamente chamo de SketchUp Software Development Kit ou SketchUp SDK. É possível fazer download dele a partir de Downloads. O plug-in fornece dois recursos principais: um editor de Ruby e um item da barra de ferramentas que ativa o aplicativo SketchUp Bridge. Esta seção explica como instalar o plug-in e mostra como os scripts são editados e executados.

Nota: Este assunto pode ser confuso, portanto, deixe-me esclarecer a terminologia. Na documentação oficial do Eclipse, o termo para complemento é plug-in. Na documentação oficial do SketchUp, a palavra é plugin (sem hífen). A API do SketchUp é um conjunto de classes, módulos e métodos Ruby que permitem acessar um design do SketchUp em código. O SketchUp SDK é um plug-in do Eclipse que faz a interface com o SketchUp através do SketchUp Bridge, que contém um plug-in do SketchUp. O SketchUp SDK e o SketchUp Bridge são completamente diferentes, mas o primeiro depende do segundo para fazer a interface com o SketchUp a partir do Eclipse.

Instalando o SketchUp SDK

O SketchUp SDK é de domínio público e, como o SketchUp Bridge é somente para Windows, o SDK só pode ser executado no Windows. Após ter feito download do mesmo, é necessário executar quatro tarefas:

  1. Faça download do archive do SketchUp Bridge e coloque Bridge.so e bridge_load.rb no diretório Plugins do SketchUp.
  2. Extraia sketchup_sdk.zip e coloque SUB.exe (um dos arquivos do SketchUp Bridge) na pasta exe abaixo da pasta org.dworks.susdk_1.0.0 de nível superior.
  3. Mova a pasta org.dworks.susdk_1.0.0 para a pasta plugins na instalação de nível superior do Eclipse.
  4. Inicie ou reinicie o SketchUp e o Eclipse.

Os arquivos e diretórios podem ser confusos, portanto, deixe-me explicar a estrutura de diretórios em meu computador. Instalei o Eclipse em C:\eclipse e meu diretório de nível superior do SketchUp é C:\Program Files\Google\Google SketchUp 7. Portanto, os arquivos do SketchUp Bridge — Bridge.so, bridge_load.rb e SUB.exe — residem nos seguintes locais:

  • C:\Program Files\Google\Google SketchUp 7\Plugins\Bridge.so
  • C:\Program Files\Google\Google SketchUp 7\Plugins\bridge_load.rb
  • C:\eclipse\plugins\org.dworks.susdk_1.0.0\exe\SUB.exe

Criando e Executando Scripts com o SketchUp SDK

Se tiver colocado o plug-in SDK e os arquivos bridge nos locais corretos, está pronto para iniciar a codificação. O processo de desenvolvimento de scripts do SketchUp no Eclipse consiste em três partes:

  • Criando um script Ruby (*.rb) no Eclipse
  • Incluindo comandos do SketchUp no script
  • Clicando em SUB na barra de ferramentas para executar o script no SketchUp

A Figura 6 mostra o ambiente de edição.

Figura 6. O SketchUp SDK
O SketchUp SDK

Se for familiarizado com o Eclipse, provavelmente não precisa das instruções sobre como continuar. Mas, em todo caso, o processo a seguir esclarecerá o procedimento:

  1. No Eclipse, clique em File > New > Project.
  2. Abra a pasta Geral, selecione Project e clique em Avançar.
  3. Digite my_project como nome do projeto, em seguida, clique em Concluir.
  4. No Eclipse Package Explorer, clique com o botão direito do mouse em my_project, em seguida, clique em Novo > Arquivo.
  5. Digite my_script.rb como o nome do script do SketchUp, em seguida, clique em Concluir.
  6. Cole o texto de lathe.rb no editor do Eclipse e salve o conteúdo do script.
  7. Na barra de ferramentas do Eclipse, clique em SUB para acessar o SketchUp Bridge e enviar o script no editor atual para o SketchUp. Como alternativa, é possível usar a tecla de atalho, Ctrl+Shift+Space.
  8. Abra o SketchUp, aumente o zoom e verá a mesma figura torneada que aquela mostrada na Figura 5.

Neste ponto, o ambiente SketchUp-Eclipse deve estar configurado e você deve ter um entendimento básico de desenho no SketchUp. O próximo artigo se aprofundará em relação à linguagem Ruby e o código em um script do SketchUp.


Conclusão

O aplicativo SketchUp da Google pode ser simples de usar e entender, mas isso não significa que faltam recursos. O SketchUp fornece uma riqueza de recursos para realizar seu design em módulos e controlar cada aspecto de sua aparência e geometria. Um dos recursos mais importantes do SketchUp é seu interpretador de script, que executa scripts Ruby que criam, modificam e excluem aspectos de um design do SketchUp. Mas, apesar de o SketchUp fornecer o interpretador de script, não fornece um editor; é onde o Eclipse entra.

Antes de poder fazer a interface do Eclipse com o SketchUp, é necessário fazer download do SketchUp Bridge. Esse aplicativo consiste em três arquivos que, se posicionados corretamente, permitem executar os scripts do SketchUp fora da janela do console do SketchUp. Em seguida, é necessário fazer download e instalar o plug-in SketchUp SDK no Eclipse. O SDK simples possibilita editar scripts e executar os mesmos no SketchUp com o clique de um botão.


Downloads

DescriçãoNomeTamanho
Eclipse plug-in that interfaces with SketchUpos-eclipse-sketchup1_sdk.zip29KB
Ruby script to create a lathed shapeos-eclipse-sketchup1_lathe.zip1KB

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=394126
ArticleTitle=Modelagem em 3-D com SketchUp e Eclipse, Parte 1: Criando a Ponte entre SketchUp e Eclipse
publish-date=04142009