Up until now I have maintained all of the code in one large file. However I keep adding more features so I need to split it out into multiple files to keep things manageable. My new load .rb file is attempting to use a method I found on another board but I'm getting a situation where the first click on the icon loads the plugin as it should however subsequent clicks on the menu or icon do nothing.
The problem is that after the menu item runs once it will not fire again.
Here is a snippet of the Medeek_Load.rb file :
module Medeek_Engineering_Inc_Extensions
module MedeekTrussPluginModuleLoader
# Show the Ruby Console at startup so we can
# see any programming errors we may make.
# SKETCHUP_CONSOLE.show
this_dir=File.dirname(__FILE__)
# Fix for ruby 2.0
if this_dir.respond_to?(:force_encoding)
this_dir=this_dir.dup.force_encoding("UTF-8")
end
PATH=this_dir
entries=Dir.entries(this_dir)
ext=".rbs"
# Add a toolbar item to launch our plugin.
toolbar = UI::Toolbar.new "Medeek Truss"
cmd = UI::Command.new("Draw Roof Truss") {
Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_TRUSS.rbs"))
}
cmd.small_icon = "images/mdkplg_tool_icon16_2.png"
cmd.large_icon = "images/mdkplg_tool_icon24_2.png"
cmd.tooltip = "Medeek Truss"
cmd.status_bar_text = "Draw Roof Truss"
cmd.menu_text = "Roof Truss"
toolbar = toolbar.add_item cmd
# toolbar.show
cmd2 = UI::Command.new("Draw Floor Truss") {
Sketchup.load(File.join(this_dir,"MEDEEK_FLOOR_TRUSS.rbs"))
}
cmd2.small_icon = "images/mdkplg_tool_icon16_3.png"
cmd2.large_icon = "images/mdkplg_tool_icon24_3.png"
cmd2.tooltip = "Medeek Truss"
cmd2.status_bar_text = "Draw Floor Truss"
cmd2.menu_text = "Floor Truss"
toolbar = toolbar.add_item cmd2
# toolbar.show
cmd3 = UI::Command.new("Draw Truss Set") {
Sketchup.load(File.join(this_dir,"MEDEEK_TRUSS_SET.rbs"))
}
cmd3.small_icon = "images/mdkplg_tool_icon16_4.png"
cmd3.large_icon = "images/mdkplg_tool_icon24_4.png"
cmd3.tooltip = "Medeek Truss"
cmd3.status_bar_text = "Draw Truss Set"
cmd3.menu_text = "Truss Set"
toolbar = toolbar.add_item cmd3
toolbar.show
cmd4 = UI::Command.new("Draw Roof Rafters") {
Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_RAFTERS.rbs"))
}
cmd4.small_icon = "images/mdkplg_tool_icon16_5.png"
cmd4.large_icon = "images/mdkplg_tool_icon24_5.png"
cmd4.tooltip = "Medeek Truss"
cmd4.status_bar_text = "Draw Roof Rafters"
cmd4.menu_text = "Roof Rafters"
toolbar = toolbar.add_item cmd4
toolbar.show
# Add a menu item to launch our plugin.
submenu = UI.menu("Plugins").add_submenu("Medeek Truss")
submenu.add_item("Roof Truss") { Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_TRUSS.rbs")) }
submenu.add_item("Floor Truss") { Sketchup.load(File.join(this_dir,"MEDEEK_FLOOR_TRUSS.rbs")) }
submenu.add_item("Truss Set") { Sketchup.load(File.join(this_dir,"MEDEEK_TRUSS_SET.rbs")) }
submenu.add_item("Roof Rafters") { Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_RAFTERS.rbs")) }
end
end