Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Advanced Ruby Scripting For Sketch Up


Published on

Published in: Technology
  • Dating for everyone is here: ❤❤❤ ❤❤❤
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❶❶❶ ❶❶❶
    Are you sure you want to  Yes  No
    Your message goes here

Advanced Ruby Scripting For Sketch Up

  1. 1. Advanced Ruby Scripting for SketchUp Scott Lininger May 29, 2008
  2. 2. What’s SketchUp? Google’s 3D drawing tool Used and loved by design professionals and hobbyists Easy to learn yet powerful Free and Pro versions are available On the Nerdy Side… Client application for PC & Mac Written in C++ and Objective C OpenGL for display layer Has a Ruby programming API
  3. 3. How Do I Get to the API? If you have SU, you have the API You write a Ruby Script Put your script into /SketchUp 6/Plugins folder and restart SU Control SketchUp via a powerful, consistent Object model entities[0].transform! by_some_amount edge.faces[0].material = some_color
  4. 4. WebDialogs WebDialogs provide an embedded browser inside SketchUp Internet Explorer on PC Webkit/Safari on Mac
  5. 5. Ruby Extension Modules Extend Ruby with native code binary (aka extension module) Better performance Better IP protection of your code
  6. 6. Advanced Technique 1: Grab and Render Web Data Ruby Opens a Webdialog to some webpage The page uses AJAX or other techniques to pull data TIP: If your webpage is local, you can get data across domains JS calls a ruby method and sends down that data to SketchUp as a string Stock Grabber Demo + Footprinter
  7. 7. Advanced Technique 2: Hide the Web Dialog Provides a “permanent” Javascript environment Javascript can take control at any time How to do it on the PC? my_dialog.set_position(9999,9999) On the Mac? Secret Just don’t call .show() method Demo Stock Grabber
  8. 8. Advanced Technique 3: Use WebDialogs + Ruby to Control the Camera Move the camera to control user experience Export 2D screenshots to get web-friendly output from SU Demo 3D Exporter 3D Exporter is an open source project! Please contribute.
  9. 9. Advanced Technique 4: Animate using Javascript’s setTimeout Create a timer in Javascript… timerID = setTimeout(quot;nextFrame()quot;, 500) It runs in the browser’s thread (not SketchUp’s) Quietly sends commands to Ruby to create animation. Demo Spin My Yoda
  10. 10. Advanced Technique 5: Capture Key Strokes with Javascript document.onClick can capture keystrokes dialog.show_modal() can force focus to your dialog Interesting way of adding keyboard support to SketchUp Demo Nudge My Yoda
  11. 11. Advanced Technique 6: Bring ‘em all together JS + Ruby Games in SketchUp Prince IO Dem The SketchUp Knight o
  12. 12. Advanced Technique 7: Ruby Extension Modules Take these animation and processing techniques to the next level SketchyPhysics is a great example… numerous demos on YouTube
  13. 13. Learn More Get SketchUp API Documentation Join the SketchUp API Blog Join the Ruby User Group