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!
    πŸ›£οΈ Road Profile Builder | Generate roads, curbs and pavements easily Download

    Right Click->Hide

    Scheduled Pinned Locked Moved Developers' Forum
    16 Posts 3 Posters 976 Views 3 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.
    • thomthomT Offline
      thomthom
      last edited by

      Yes. The Tool class allows you to create your own custom tools: http://code.google.com/apis/sketchup/docs/ourdoc/tool.html

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

      1 Reply Last reply Reply Quote 0
      • K Offline
        kolem
        last edited by

        Any existing code i can look to learn from, i have basic programming knowledge but I'm not familiar with the Ruby syntax.

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

          There is an example code snippet that comes with SU. But it's not very good - the code is confusing.
          I'd look at some other plugins with tools.

          I do imagine I saw another thread not too long ago in the same topic - don't have the link at hand. Will see if I can dig it up.

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

          1 Reply Last reply Reply Quote 0
          • K Offline
            kolem
            last edited by

            I read the tutorials on code.google.com, but it doesn't help a lot.
            I tried to look at the linetool.rb and I just got confused...

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

              @kolem said:

              I tried to look at the linetool.rb and I just got confused...

              Yea - that's the one I talked about. Not very good.

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

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

                Maybe Jim's construction line tool is of help: http://sketchuptips.blogspot.com/2008/02/plugin-construction-line-tool.html
                Have a look.

                As for SketchUp plguin writing in general:
                You will find many useful links in this thread: http://forums.sketchucation.com/viewtopic.php?f=180&t=10142
                It's worth noting that all plugins share the same environment, so it's important to learn how namespaces (modules and classes) works in Ruby - and use them. Otherwise you might end up with conflicts with other plugins.
                And a big no-no is overriding basic Ruby and SketchUp methods. Then you will most likely break other people's scripts.

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

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

                  Try this... take the 'linetool.rb' code and copy it - make a new tool class named 'HiddenLineTool' say...
                  and used that wherever 'LineTool' used to appear in the text, and also make a new def linetool >> def hiddenlinetool etc...
                  Find the line of code that creates the geometry - it reads view.model.entities.add_line(p1,p2)
                  and adjust it so it reads myline=view.model.entities.add_line(p1,p2)
                  and insert a new line of code immediately beneath that that reads myline.hidden=true
                  Now when you draw the line it'll automatically become a 'hidden' line - I suggest that you have 'Hidden Geometry' switched 'on' whilst using this tool, otherwise you could get very confused...

                  Note also that you could make another version of it [GuideLineTool ?] to draw a guide-line (cline) by changing that one line to view.model.entities.add_cline(p1,p2) instead

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    kolem
                    last edited by

                    ill try that, another issue is that i have a problem editing the code in the notepad, i get all the code in one long row, any suggestions?

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

                      @kolem said:

                      ill try that, another issue is that i have a problem editing the code in the notepad, i get all the code in one long row, any suggestions?

                      Get a better editor than Notepad. Get one that provides syntax highlighting - makes reading the code much easier.
                      I use Notepad++ http://notepad-plus-plus.org/ - free app with a support for a wide range of languages.

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

                      1 Reply Last reply Reply Quote 0
                      • K Offline
                        kolem
                        last edited by

                        thanks a lot!
                        well, I started off by looking at the code and I'm starting to get an idea of how things work.
                        i edited the linetool file and changed the class to 'hiddenlinetool', etc...
                        and added the line TIG wrote, however, I get an error:

                        class/module name must be CONSTANT

                        with a referring to this line:

                        class hiddenlinetool

                        ideas?

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

                          Yes - constants in Ruby must start with capital letters.

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

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

                            The class would be HiddenLineTool
                            but the shortcut def hiddenlinetool...

                            TIG

                            1 Reply Last reply Reply Quote 0
                            • K Offline
                              kolem
                              last edited by

                              Ok, seems like it is going to work, now, how do i execute the tool?
                              window>preferences?

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

                                To test type hiddenlinetool into the Ruby Console.
                                Later on when it's debugged to make a 'Plugins' Menu item use this code at the end - outside of the class etc

                                
                                if not file_loaded?(File.basename(__FILE__))
                                  ### make command
                                  cmd=UI;;Command.new("Draw Hidden Line"){hiddenlinetool}
                                  cmd.status_bar_text="Draws a line and immediately hides it..."
                                  ### menu
                                  UI.menu("Plugins").add_item(cmd)
                                  file_loaded(File.basename(__FILE__))
                                end#if
                                
                                

                                To put the tool into the 'Draw' menu instead, you just change 'Plugins' to 'Draw'.....

                                TIG

                                1 Reply Last reply Reply Quote 0
                                • K Offline
                                  kolem
                                  last edited by

                                  never mind i got it working, thanks for the help

                                  1 Reply Last reply Reply Quote 0
                                  • 1 / 1
                                  • First post
                                    Last post
                                  Buy SketchPlus
                                  Buy SUbD
                                  Buy WrapR
                                  Buy eBook
                                  Buy Modelur
                                  Buy Vertex Tools
                                  Buy SketchCuisine
                                  Buy FormFonts

                                  Advertisement