What is sketch2sketch?

sketch2sketch is a short Ruby script enabling you to export Google SketchUp models to the 3D scene description language Sketch from Eugene Ressler. Sketch is a system for producing sketches of 2D or 3D objects and scenes. It produces TikZ code that can be directly used in TeX/LaTeX documents.

Why another conversion tool?

sketch2sketch combines the advantages of graphical 3D sketching tools like Blender or Google SketchUp with the benefits of scientific systems like Sketch, TikZ, LaTeXDraw or XFig. So you can use your mouse and be creative, while not being forced to live without fency LaTeX markup.

Features

The current version supports:

  • geometric entities like edges and faces as well as text annotations
  • components and groups
  • color and transparency
  • exact translation of the current view
  • LaTeX markup within annotations
  • projection of whole scene onto virtual camera planes like in Sketch (interesting for applications in computer vision and photogrammetry)

Please note:

  • Lighting, shadow and texture are not supported.
  • Holes, like a window within the wall of a building, are not supported by Sketch. sketch2sketch will only draw the boundary edges of such "inner loop", but is not be able to remove the wall within this region.
  • Google SketchUp will try to translate backslashs within text annotations, for example the greek letter \nu will be translated into a new line and the letter u. Therefore sketch2sketch is made to recognize slightly different commands starting with an @, in this example @nu. Although TikZ does not support line breaks within nodes, sketch2sketch is able to translate the @@-command correctly.

sketch2sketch was created in a very short time. Thus there is much room for improvement. Feel free to modify the source code to meet your personal requirements - but please provide me with a copy of your modifications, so I can make it available here.

Examples

Here are some examples generated from a Google SketchUp model (left) and using sketch2sketch. The resulting PDF is displayed on the right hand side in form of a PNG image. Click the image to download the actual PDF.



A minimal example: This is a screenshot of "Susan" in Google SketchUp (left) and the model exported via sketch2sketch to a PDF vector grafik (right).



sketch2sketch can render colored and transparent objects.



LaTeX commands will be directly transfered into the Sketch code. (Note: Instead of a backslash \ sketch2sketch expects an @ at the beginning of TeX commands, e. g. @alpha or @sqrt{a^2 + b^2}.)



Objects can be grouped into components. sketch2sketch will find the definition of such components and apply the correct transformation of each instance.



sketch2sketch can create virtual images of the scene. To do so, draw a new rectangular face, select it with its edges and create a new component from it. Name it "S2S-Camera" and put the opening angle of your virtual camera into the description field (in degrees, only the number, see screenshot). Align the axis as shown in the screenshot, the blue axis facing backwards. Close the component, align it and check the exported result. (Note: There is no clipping implemented yet. The whole scene will be projected onto a plane - possibly outside the rectangle.)

Download

Installation

  1. Download and extract to Google SketchUp 8/Plugins:
    sketch2sketch.zip (version 0.1).
  2. Re-start Google SketchUp.
  3. Press to export a model to Sketch.

Hint for Linux users: If you are running Google SketchUp in the current version 1.3.4 of Wine, you might experience some problems with running Ruby scripts. (Start the Ruby Console, type something, press enter and see if Ruby responds anything.) If Ruby is not running, you might need to download the source code of Wine, apply the patch for bug 22247 and compile Wine by yourself.

Terms and Conditions

sketch2sketch is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

sketch2sketch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Copyright © 2010 by Falko Schindler.

Acknowledgement

Thanks to Richard Steffen for the initial idea and many fruitful discussions.