sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    ⚠️ Update | Sketchucation Tools 5.0.8 released with licensing improvements and bugfixes Download

    Question about menu.add_item

    Scheduled Pinned Locked Moved Developers' Forum
    12 Posts 4 Posters 1.3k Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wikii
      last edited by

      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?

      1 Reply Last reply
      Reply Quote 0
      • S
        sahi
        last edited by

        amenu=Ui.menu("Plugins").add_submenu("Test") - the script execute the command executed and the variable "amenu" - forgotten
        amenu=false

        We 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}

        1 Reply Last reply
        Reply Quote 0
        • W
          wikii
          last edited by

          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?

          1 Reply Last reply
          Reply Quote 0
          • thomthomT
            thomthom
            last edited by

            @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.

            Thomas Thomassen — SketchUp Monkey & Coding addict
            List of my plugins and link to the CookieWare fund

            1 Reply Last reply
            Reply Quote 0
            • TIGT
              TIG Moderator
              last edited by

              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

              1 Reply Last reply
              Reply Quote 0
              • W
                wikii
                last edited by

                @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.

                1 Reply Last reply
                Reply Quote 0
                • TIGT
                  TIG Moderator
                  last edited by

                  WikiiI see what you me - buggy...
                  However it WILL work when scripted...

                  TIG

                  1 Reply Last reply
                  Reply Quote 0
                  • W
                    wikii
                    last edited by

                    @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.

                    1 Reply Last reply
                    Reply Quote 0
                    • TIGT
                      TIG Moderator
                      last edited by

                      @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...

                      TIG

                      1 Reply Last reply
                      Reply Quote 0
                      • W
                        wikii
                        last edited by

                        @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.


                        load the first


                        then this one

                        1 Reply Last reply
                        Reply Quote 0
                        • TIGT
                          TIG Moderator
                          last edited by

                          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...

                          TIG

                          1 Reply Last reply
                          Reply Quote 0
                          • W
                            wikii
                            last edited by

                            I see.

                            Thank you,Tig!

                            1 Reply Last reply
                            Reply Quote 0

                            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 Login
                            • 1 / 1
                            • First post
                              Last post
                            Buy SketchPlus
                            Buy SUbD
                            Buy WrapR
                            Buy eBook
                            Buy Modelur
                            Buy Vertex Tools
                            Buy SketchCuisine
                            Buy FormFonts

                            Advertisement