# 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 lessGreaterLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer1 = layers[0] layer2 = layers[1] status = layer1 <=> layer2 if (status) UI.messagebox status else UI.messagebox "Failure" end end def equalsLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer1 = layers[0] layer2 = layers[1] status = layer1 == layer2 if (status) UI.messagebox status else UI.messagebox "Failure" end end def nameLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer2 = layers[1] name = layer2.name if (name) UI.messagebox name else UI.messagebox "Failure" end end def nameEqualsLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer2 = layers[1] name = layer2.name="new test layer" if (name) UI.messagebox name else UI.messagebox "Failure" end end # Need to include defines from .h file that explain corresponding numbers # for constants. def pageBehaviorLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer2 = layers[1] # Returns 0 which is LAYER_VISIBLE_BY_DEFAULT pb = layer2.page_behavior if (pb) UI.messagebox pb else UI.messagebox "Failure" end end def pageBehaviorEqualsLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer2 = layers[1] # Set to LAYER_HIDDEN_BY_DEFAULT pb = layer2.page_behavior=(LAYER_HIDDEN_BY_DEFAULT|LAYER_IS_HIDDEN_ON_NEW_PAGES) if (pb) UI.messagebox pb else UI.messagebox "Failure" end end def visibleEqualsLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer2 = layers[1] status = layer2.visible=true if (status) UI.messagebox status else UI.messagebox "Failure" end end def visibleLayerTest model = Sketchup.active_model layers = model.layers status = layers.add "test layer" layer2 = layers[1] status = layer2.visible? if (status) UI.messagebox status else UI.messagebox "Failure" end end if( not file_loaded?("layertests.rb") ) # This will add a separator to the menu, but only once add_separator_to_menu("Plugins") plugins_menu = UI.menu("Plugins") Layer_menu = plugins_menu.add_submenu("Layer Tests") Layer_menu.add_item("Layer <=>") { lessGreaterLayerTest } Layer_menu.add_item("Layer ==") { equalsLayerTest } Layer_menu.add_item("Layer.name") { nameLayerTest } Layer_menu.add_item("Layer.name=") { nameEqualsLayerTest } Layer_menu.add_item("Layer.page_behavior") { pageBehaviorLayerTest } Layer_menu.add_item("Layer.page_behavior=") { pageBehaviorEqualsLayerTest } Layer_menu.add_item("Layer.visible=") { visibleEqualsLayerTest } Layer_menu.add_item("Layer.visible") { visibleLayerTest } end #----------------------------------------------------------------------------- file_loaded("layertests.rb")