# Copyright 2005, @Last Software, Inc. # This software is provided as an example of using the Ruby interface # to SketchUp. # Permission to use, copy, modify, and distribute this software for # any purpose and without fee is hereby granted, provided that the above # copyright notice appear in all copies. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #----------------------------------------------------------------------------- require 'sketchup.rb' #----------------------------------------------------------------------------- def animationEqualsViewTest animation = ViewSpinner.new model = Sketchup.active_model view = model.active_view anim = view.animation=animation if (anim) UI.messagebox anim else UI.messagebox "Failure" end end def averageRefreshTimeViewTest model = Sketchup.active_model view = model.active_view t = view.average_refresh_time if (t) UI.messagebox t else UI.messagebox "Failure" end end def cameraViewTest model = Sketchup.active_model view = model.active_view c = view.camera if (c) UI.messagebox c else UI.messagebox "Failure" end end def cameraEqualsViewTest camera2 = Sketchup.Camera.new model = Sketchup.active_model view = model.active_view status = view.camera=camera2 if (status) UI.messagebox status else UI.messagebox "Failure" end end def centerViewTest model = Sketchup.active_model view = model.active_view c = view.center if (c) UI.messagebox c else UI.messagebox "Failure" end end def cornerViewTest model = Sketchup.active_model view = model.active_view pt = view.corner 0 if (pt) UI.messagebox pt else UI.messagebox "Failure" end end def drawViewTest # See viewtooltests.rb end def draw2dViewTest # See viewtooltests.rb end def drawLineViewTest # See viewtooltests.rb end def drawLinesViewTest # See viewtooltests.rb end def drawPointsViewTest # See viewtooltests.rb end def drawPolylineViewTest # See viewtooltests.rb end def drawTextViewTest # See viewtooltests.rb end def drawingColorEqualsViewTest # See viewtooltests.rb end # Starts and ends dynamic viewing def dynamicEqualsViewTest end def enableAutopanEqualsViewTest end def guessTargetViewTest end def inferenceLockedViewTest model = Sketchup.active_model view = model.active_view status = view.inference_locked? if (status) UI.messagebox status else UI.messagebox "Failure" end end def inputPointViewTest depth = 100 width = 100 model = Sketchup.active_model entities = model.active_entities pts = [] pts[0] = [0, 0, 0] pts[1] = [width, 0, 0] pts[2] = [width, depth, 0] pts[3] = [0, depth, 0] # Add the face to the entities in the model face = entities.add_face pts edge = entities[0] vertex = edge.end point = vertex.position view = model.active_view ip = view.inputpoint point[0], point[1] if (ip) UI.messagebox ip else UI.messagebox "Failure" end end def invalidateViewTest model = Sketchup.active_model view = model.active_view status = view.invalidate if (status) UI.messagebox status else UI.messagebox "Failure" end end def lastRefreshTimeViewTest model = Sketchup.active_model view = model.active_view status = view.last_refresh_time if (status) UI.messagebox status else UI.messagebox "Failure" end end def lineStippleEqualsViewTest # See viewtooltests.rb end def lineWidthEqualsViewTest # See viewtooltests.rb end def lockInferenceViewTest model = Sketchup.active_model view = model.active_view begin s = view.lock_inference rescue UI.messagebox $!.message end if (s) UI.messagebox s else UI.messagebox "Test" end status = view.inference_locked? if (status) UI.messagebox status else UI.messagebox "Yeah" end end def modelViewTest model = Sketchup.active_model view = model.active_view m = view.model if (m) UI.messagebox m else UI.messagebox "Failure" end end def pickHelperViewTest model = Sketchup.active_model view = model.active_view ph = view.pick_helper if (ph) UI.messagebox ph else UI.messagebox "Failure" end end def pickRayViewTest depth = 100 width = 100 model = Sketchup.active_model entities = model.active_entities pts = [] pts[0] = [0, 0, 0] pts[1] = [width, 0, 0] pts[2] = [width, depth, 0] pts[3] = [0, depth, 0] # Add the face to the entities in the model face = entities.add_face pts edge = entities[0] vertex = edge.end point = vertex.position view = model.active_view ray = view.pickray point[0], point[1] if (ray) UI.messagebox ray else UI.messagebox "Failure" end end def pixelsToModelViewTest end def setColorFromLineViewTest # See viewtooltests.rb end def showFrameViewTest # See code in animation.rb end def tooltipEqualsViewTest # Also see code in animation.rb model = Sketchup.active_model view = model.active_view # Returns a string tool tip tt = view.tooltip="This is a Test" if (tt) UI.messagebox tt else UI.messagebox "Failure" end end def vpheightViewTest model = Sketchup.active_model view = model.active_view height = view.vpheight if (height) UI.messagebox height else UI.messagebox "Failure" end end def vpwidthViewTest model = Sketchup.active_model view = model.active_view width = view.vpwidth if (width) UI.messagebox width else UI.messagebox "Failure" end end def writeImageViewTest depth = 100 width = 100 model = Sketchup.active_model entities = model.active_entities pts = [] pts[0] = [0, 0, 0] pts[1] = [width, 0, 0] pts[2] = [width, depth, 0] pts[3] = [0, depth, 0] # Add the face to the entities in the model face = entities.add_face pts UI.messagebox "Now Lets Write the Image" view = model.active_view # Puts in SketchUp install directory by default # status = view.write_image "test.jpg" if (status) UI.messagebox status else UI.messagebox "Failure" end end def zoomViewTest depth = 100 width = 100 model = Sketchup.active_model entities = model.active_entities pts = [] pts[0] = [0, 0, 0] pts[1] = [width, 0, 0] pts[2] = [width, depth, 0] pts[3] = [0, depth, 0] # Add the face to the entities in the model face = entities.add_face pts UI.messagebox "Now Lets Zoom" view = model.active_view newview = view.zoom 3 if (newview) UI.messagebox newview else UI.messagebox "Failure" end end def zoomExtentsViewTest depth = 100 width = 100 model = Sketchup.active_model entities = model.active_entities pts = [] pts[0] = [0, 0, 0] pts[1] = [width, 0, 0] pts[2] = [width, depth, 0] pts[3] = [0, depth, 0] # Add the face to the entities in the model face = entities.add_face pts UI.messagebox "Now Lets Zoom Extents" view = model.active_view newview = view.zoom_extents if (newview) UI.messagebox newview else UI.messagebox "Failure" end end if( not file_loaded?("viewtests.rb") ) # This will add a separator to the menu, but only once add_separator_to_menu("Plugins") plugins_menu = UI.menu("Plugins") View_menu = plugins_menu.add_submenu("View Tests") View_menu.add_item("View.animation=") { animationEqualsViewTest } View_menu.add_item("View.average_refresh_time") { averageRefreshTimeViewTest } View_menu.add_item("View.camera") { cameraViewTest } View_menu.add_item("View.camera=") { cameraEqualsViewTest } View_menu.add_item("View.center") { centerViewTest } View_menu.add_item("View.corner") { cornerViewTest } View_menu.add_item("View.draw") { drawViewTest } View_menu.add_item("View.draw2d") { draw2dViewTest } View_menu.add_item("View.draw_line") { drawLineViewTest } View_menu.add_item("View.draw_lines") { drawLinesViewTest } View_menu.add_item("View.draw_points") { drawPointsViewTest } View_menu.add_item("View.draw_polyline") { drawPolylineViewTest } View_menu.add_item("View.draw_text") { drawTextViewTest } View_menu.add_item("View.drawing_color=") { drawingColorEqualsViewTest } View_menu.add_item("View.dynamic=") { dynamicEqualsViewTest } View_menu.add_item("View.enable_autopan=") { enableAutopanEqualsViewTest } View_menu.add_item("View.guess_target") { guessTargetViewTest } View_menu.add_item("View.inference_locked?") { inferenceLockedViewTest } View_menu.add_item("View.inputpoint") { inputPointViewTest } View_menu.add_item("View.invalidate") { invalidateViewTest } View_menu.add_item("View.last_refresh_time") { lastRefreshTimeViewTest } View_menu.add_item("View.line_stipple=") { lineStippleEqualsViewTest } View_menu.add_item("View.line_width=") {lineWidthEqualsViewTest } View_menu.add_item("View.lock_inference") { lockInferenceViewTest } View_menu.add_item("View.model") { modelViewTest } View_menu.add_item("View.pick_helper") { pickHelperViewTest } View_menu.add_item("View.pickray") { pickRayViewTest } View_menu.add_item("View.pixels_to_model") { pixelsToModelViewTest } View_menu.add_item("View.set_color_from_line") { setColorFromLineViewTest } View_menu.add_item("View.show_frame") { showFrameViewTest } View_menu.add_item("View.tooltip=") { tooltipEqualsViewTest } View_menu.add_item("View.vpheight") { vpheightViewTest } View_menu.add_item("View.vpwidth") { vpwidthViewTest } View_menu.add_item("View.write_image") { writeImageViewTest } View_menu.add_item("View.zoom") { zoomViewTest } View_menu.add_item("View.zoom_extents") { zoomExtentsViewTest } end #----------------------------------------------------------------------------- file_loaded("viewtests.rb")