Question about menu.add_item
-
amenu=UI.menu("Plugins").add_submenu("Test")
amenu.add_item("print 1"){print 1}I Run each line of the codes in Ruby Console , Only a submenu "Test" has been added in plugins menu."Print 1" does not show in the submenu "Test".
If I save the codes in a rb file and load it in Ruby Console,submenu "Test" and "Print 1" will be shown correctly.
why?
-
amenu=Ui.menu("Plugins").add_submenu("Test") - the script execute the command executed and the variable "amenu" - forgotten
amenu=falseWe can do this
amenu=Ui.menu("Plugins").add_submenu("Test")**;**amenu.add_item("print 1"){print 1}
or so
Ui.menu("Plugins").add_submenu("Test").add_item("print 1"){print 1}
-
I just want to add all my plugins to one submenu.
I use a global variable to store the submenu.but it does not work.Is there a way to add defferent plugins to one submenu?
-
@wikii said:
amenu=UI.menu("Plugins").add_submenu("Test")
amenu.add_item("print 1"){print 1}I Run each line of the codes in Ruby Console , Only a submenu "Test" has been added in plugins menu."Print 1" does not show in the submenu "Test".
If I save the codes in a rb file and load it in Ruby Console,submenu "Test" and "Print 1" will be shown correctly.
why?
I've noticed this before as well. Dunno why. Some kind of bug.
-
Use
$wikii_submenu=UI.menu("Plugins").add_submenu("Wikii")
then later
$wikii_submenu.add_item("Print 1"){print 1} $wikii_submenu.add_item("Print 2"){print 2}
etc, should work...It works in the console because the $global is remembered.
Also setting a global reference [$] for your actual tool means that as long as the .rb file making the submenu loads first [start its file name with a ! or ###], then other scripts can access the submenu and add items to it too - that's how I manage many of my main Plugins, using submenus 0 to 9 logically named and ordered to contain similar types of tools... Other stuff lives 'loose' in Plugins menu or wherever...
Remember to use a $ name that's unlikely to be reused by some one else - e.g. $menu = bad idea as it could easily used by someone else, but $wikii_submenu likely to be 'uncommon'... -
@tig said:
Use
$wikii_submenu=UI.menu("Plugins").add_submenu("Wikii")
then later
$wikii_submenu.add_item("Print 1"){print 1} $wikii_submenu.add_item("Print 2"){print 2}Thank you,TIG!
But,it does not work when I copy it to Ruby Console line by line.
Only "Wikii" has been added to plugins menu.
"print 1" and "print 2" do not show. -
WikiiI see what you me - buggy...
However it WILL work when scripted... -
@tig said:
WikiiI see what you me - buggy...
However it WILL work when scripted...I hope it works in different scritps,means that two scripts can add items to a same submenu.
-
-
@tig said:
@wikii said:
@tig said:
WikiiI see what you me - buggy...
However it WILL work when scripted...I hope it works in different scripts, means that two scripts can add items to a same submenu.
It does work in different scripts, if you use a $ variable - I already use it like that...
I test these two file.
Only 1.rb work well,2.rb can't add item into the submenu.
-
They DO work....
BUT you have to let Sketchup auto-load them as it starts.You can't push a new item into a submenu by manually loading script files later on, or typing the commands into the console.
If I put both of your .rb files into my Plugins folder and restart Sketchup then I get the ../Plugins/Wikii/ submenu with the two specified items added - each one created by their separate script using the $ global ref... -
I see.
Thank you,Tig!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better π
Register LoginAdvertisement