/sketchupToOSG

A SketchUp plugin automating export of models to OpenSceneGraph

Primary LanguageRuby

SketchUp to OSG Plugin

Original Author:

Ryan Pavlik rpavlik@iastate.edu abiryan@ryand.net http://academic.cleardefinition.com

Iowa State University HCI Graduate Program/VRAC

Introduction

SketchUp is a pretty slick application, and OpenSceneGraph (OSG) is a great 3D rendering system. SketchUp can export its models to COLLADA (.dae), and OpenSceneGraph conveniently has a plugin to load COLLADA models, though it (and/or its dependencies) can be tough to build. You could create native .osg/.ive models by exporting to COLLADA, then using osgconv to convert them. Since SketchUp has support for plugins written in Ruby, why not combine the steps and make a plugin that bundles a COLLADA-capable OSG build and can set up the COLLADA export and conversion processes for the best results?

Well, that's what this is - a plugin for combining those steps. It's been useful to us - hopefully it's useful to you as well!

If you have modifications or improvements, they're gratefully appreciated. Just use GitHub to fork/edit the scripts, then send a pull request if you'd like your improvements integrated upstream.

Getting Started

The preferred way to install extensions into SketchUp is now using an .rbz file. See these instructions in the SketchUp documentation on how to do this.

We also (for some versions, at least) have some Windows .exe installers or Mac .pkg available. This used to be super cool, but is harder for us to maintain and isn't nearly as necessary since 8.0 M2 simplified extension installation with .rbz support.

Download the one you want from GitHub.

No matter how you install, the results are the same. SketchUp should have an Export to OpenSceneGraph menu under File next time you start it.

Export menu items

Platforms this should work on, and which file you want:

  • Windows
    • SketchUp 8
      • Tested free and pro
      • Use a su2013-win download in either .rbz (starting with M2) or .exe installer format.
    • SketchUp 2013
      • Tested Make (free)
      • Use a su2013-win download in either .rbz or .exe installer format.
    • SketchUp 2014
      • Tested Make (free) and Pro
      • Use a su2014-win in .rbz format.
  • Mac OS X
    • SketchUp 8
      • Use a su2013-mac download in either .rbz (starting with M2) or .pkg installer format.
    • SketchUp 2013
      • Tested Make (free)
      • Use a su2013-mac download in either .rbz or .pkg installer format.
    • SketchUp 2014
      • Tested Make (free)
      • Use a su2014-mac in .rbz format.

Advanced Use of .exe Installers: Unattended Installation (for Administrators)

The .exe installer has been built with Inno Setup, so the normal command-line arguments used by that installer system are available. In particular, if you want to run an unattended install that shows the progress dialog while it's working, run a command like:

setup-sketchupToOpenSceneGraphPlugin-VERSIONGOESHERE.exe /SP- /SILENT /SUPPRESSMSGBOXES

For an unattended install that doesn't show any windows at all, run something like:

setup-sketchupToOpenSceneGraphPlugin-VERSIONGOESHERE.exe /SP- /VERYSILENT /SUPPRESSMSGBOXES

Manual Installation

Unzip an appropriate .rbz (.zip file in disguise) into your SketchUp Plugins folder, something like:

C:\Program Files (x86)\Google\Google SketchUp 8\Plugins

or

C:\Program Files (x86)\SketchUp\SketchUp 2013\Plugins

Note that in SketchUp 2014, this has moved and (I think) there are also per-user plugin folders.

If you're starting from a source zip, you'll have to overlay the appropriate binary files into the osgconv folder.

Generating .rbz Files

On a system with a sh-compatible shell (Mac or Linux, and possibly Windows with MSYS or Cygwin) and the 7za compressor executable on the path, you can run the build scripts.

To build all, run:

build/build-all.sh

To build just a single variant:

build/build-one.sh VER PLATFORM

where VER is either 2014 or 2013, and PLATFORM is either mac or win.

Generating Installers

Windows

There's a setup_X.iss file for each version of SketchUp that defines a few specific items then includes the shared setup.iss file. Using Inno Setup 5 (the Quick Start pack is suggested), compile those separate files: setup.iss doesn't compile on its own.

Mac

The PackageMaker files are in the main source directory, though they need to be updated: see issue #15.

Licenses

This plugin is free and open-source software.

The Ruby scripts serving as the SketchUp plugin may be distributed under the following license:

Copyright Iowa State University 2011,2013,2014

Distributed under the Boost Software License, Version 1.0.

(See accompanying file osgconv/LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

A local copy of fileutils.rb from the upstream Ruby project is bundled with the installers and the 2013-version .rbz files, under its license.

An actual in-use instance of this plugin makes use of the OpenSceneGraph package and its dependencies, including but not limited to COLLADA-DOM, which have their own licenses.

Acknowledgement

If you find this useful, we would appreciate hearing from you. If you use this for academic work, we would also appreciate a copy of the publication and a citation: this helps make a case for our work. You may contact the main developer, Ryan Pavlik (Iowa State University), by email at rpavlik@iastate.edu or abiryan@ryand.net.

Paper materials and copies of publications may be mailed to:

Ryan Pavlik

Virtual Reality Applications Center

1620 Howe Hall

Ames, Iowa 50011-2274

USA

Of course, this plugin would not be possible without the work of the OpenSceneGraph and COLLADA-DOM teams. Thanks to them and the others in the open-source ecosystem supporting them.