sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] VisMap - Layer/Scene Visibility Map

    Scheduled Pinned Locked Moved Plugins
    126 Posts 15 Posters 50.3k Views 15 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.
    • M Offline
      MartinRinehart
      last edited by

      @takesh h said:

      I opened several of my own models and tried vismap, but it kept showing the layer structure of house.skp! Now this is weird.

      That was a tricked out vismap.js. It's trick was to pretend to call Ruby and then provide the Ruby's answer - appropriate to house.skp. The idea was to test that the JavaScript was working correctly, which it was.

      DL the .zip again. You'll get a straight JavaScript and a better Ruby.

      Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

      1 Reply Last reply Reply Quote 0
      • M Offline
        MSP_Greg
        last edited by

        Martin,

        I don't use scenes much, but congrats on your plug-in (I thought you said it was your first somewhere.)

        For loading and unloading models, you may want to use the Sketchup::AppObserver and hook the onOpenModel(model) and onNewModel(model) events.

        Secondly, you might consider wrapping all your code in a module and use 'self' for the methods, and using 'private' to control for external visibility. Helps with 'namespace type' collisions.

        Lastly, I put the html as a string in my rb/rbs files and load it with dialog.set_html. It's easy to change the font size in the (inline) CSS before loading it in the dialog box, and I used 'em' for all the html size/layout units. HTML needs the same kind of escaping as strings passed between ruby and javascript.

        HTH,

        Greg

        1 Reply Last reply Reply Quote 0
        • M Offline
          markozeta
          last edited by

          @unknownuser said:

          I've done a lot with bit maps, so packing 16k bits into a 2k string is not a problem. But is 16k going to handle really large animations? Or should I find (they're there) a more capacious solution?

          If you're able to pass it as 32 bits/char, you could get 256^2 bits in. That would work for what I'm trying to do (make a decent pipe system of 200+ pieces and pass it to layout), but might not pass for animation work.

          Make it a pro version and a free version, pro being for animation with a different data passing technique?

          BSME - Cal Poly Pomona
          Sketchup Pipe Maniac

          1 Reply Last reply Reply Quote 0
          • M Offline
            MartinRinehart
            last edited by

            @markozeta said:

            If you're able to pass it as 32 bits/char, you could get 256^2 bits in.

            The limit is 2kB in the URL: 16k bits. I'm working on the code right now to pack 6 bits per byte which you can do with the printable ASCII characters, so it should be totally dependable and give you 12k scene/layer combinations.

            @markozeta said:

            Make it a pro version and a free version, pro being for animation with a different data passing technique?

            I like this thinking!

            Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

            1 Reply Last reply Reply Quote 0
            • M Offline
              MartinRinehart
              last edited by

              Thanks for all the good ideas. I'm already pretty clean, namespace wise. (Only one public var, $vismap_model).

              @msp_greg said:

              Lastly, I put the html as a string in my rb/rbs files and load it with dialog.set_html.

              That's a very interesting idea!

              Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

              1 Reply Last reply Reply Quote 0
              • M Offline
                MSP_Greg
                last edited by

                Martin,

                I'm already pretty clean, namespace wise. (Only one public var, $vismap_model).

                I was referring to procedure / function / class visibility, not variable visibility.

                For instance, 'Model' may not be the best unqualified name for a class. IOW, what if someone has a lot of installed plug-ins? You don't want name resolution issues...

                Thanks,

                Greg

                1 Reply Last reply Reply Quote 0
                • Bob JamesB Offline
                  Bob James
                  last edited by

                  This plugin has terrific potential for my work! I often have 50 or more layers and 10 or more scenes and, although "add hidden layer" is a great help, this plugin would be super for changing things later on in the process.

                  It worked perfectly with a small test model, but when I applied it to my current large model all I got was a blank dialog box. I tried all kinds of "open, close, scene update, save, etc. tricks", even the right click "reload".

                  This is on a MacPro.


                  Works fine for small test model


                  Does not work for large model (not all layers are shown)

                  i7-4930K 3.4Ghz, 2x GTX780 6GB, 32GB DDR3-1600 ECC, OCZ Vertex 4 500GB, WD Black 3TB, 32TB NAS, 4x 27" Monitors, SpaceMouse Pro, X-keys XK-60

                  1 Reply Last reply Reply Quote 0
                  • takesh hT Offline
                    takesh h
                    last edited by

                    @bob james said:

                    It worked perfectly with a small test model, but when I applied it to my current large model all I got was a blank dialog box. I tried all kinds of "open, close, scene update, save, etc. tricks", even the right click "reload".

                    Bob, I am also on a Mac and having a similar problem.
                    In my case, when VisMap spreadsheet is bigger than dialog box, one of the followings will fix the visibility issue;

                    1. Move the dialog box then size-drag to fit VisMap spreadsheet.
                    2. Go to another program and come back, then resize the dialog box.
                      Hope it helps.
                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      MartinRinehart
                      last edited by

                      @bob james said:

                      when I applied it to my current large model all I got was a blank dialog box.

                      See my exchanges w/Edson. Known Mac issue, now tracked to the Ruby code.

                      Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        MartinRinehart
                        last edited by

                        Edson,

                        Drop attachment 1 into your .../Plugins/vismap subdir, open the Ruby Console and try again to vismap "house.skp".

                        The result should look like attachment 2. (The addresses - :0xhhhhhhh - will be totally different, but the rest will be the same up to the point of the failure.)

                        Have I thanked you adequately for your help and patience? Both are truly appreciated.

                        Martin


                        verbose Ruby code


                        Ruby Console output

                        Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                        1 Reply Last reply Reply Quote 0
                        • EdsonE Offline
                          Edson
                          last edited by

                          martin,

                          no need to thank me. by helping you i am also helping myself and many others who will benefit from your plugin.

                          i followed your instructions. see the attached file below for the result.


                          edson_vismap.txt

                          edson mahfuz, architect| porto alegre • brasil
                          http://www.mahfuz.arq.br

                          1 Reply Last reply Reply Quote 0
                          • M Offline
                            MartinRinehart
                            last edited by

                            @msp_greg said:

                            For instance, 'Model' may not be the best unqualified name for a class. IOW, what if someone has a lot of installed plug-ins? You don't want name resolution issues...

                            Thanks, Greg. I should maybe learn a bit more Ruby. How does this work?

                            You click VisMap on your Plugins menu. That's a trivial program that loads ...Plugins\vismap\vismap.rb. How might VisMap stumble onto some other Model class, or some other plugin stumble onto my Model?

                            Thanks!

                            Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                            1 Reply Last reply Reply Quote 0
                            • M Offline
                              MartinRinehart
                              last edited by

                              @edson said:

                              i followed your instructions. see the attached file below for the result.

                              That output is perfect. Start to finish, it pulls the data it needs from your model into a correct JavaScript callback. The message doesn't get to JavaScript.

                              On the PC, this is what I dubbed, The Bug from Hell:

                              Link Preview Image
                              I Love JavaScript (Sometimes)

                              News: From Business Week Big Blue's Global Labs Building a global chain of "collaboratories." Good luck, IBM. May I loan you my copy of Fu...

                              favicon

                              (21st-century-languages.blogspot.com)

                              Just to be sure, there is debugging info commented out in the "rubyReturned" function in "vismap.js". (A JavaScript inline comment is two forward slashes ("//") followed by a comment, or code you don't want to run or a seafood recipe.) Try uncommenting the "// whats_in_model()" function call. Just delete the two slashes. Try Vismap again.

                              Expected result: nothing. Ruby's callback doesn't call back. Took a week to figure this out on the PC. Why should the Mac be different? (It should be different because it's a Mac, but this is Google code, not Apple code.)

                              Possible result: you get a pop-up, center screen, detailing "whats_in_model()". Then we have something to work with. Otherwise, ...

                              Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                              1 Reply Last reply Reply Quote 0
                              • M Offline
                                MartinRinehart
                                last edited by

                                The current version now supports about 12k layer/scene intersections.

                                Mac issues remain.

                                "Monty", (I say to my pet python) "That's the dumbest idea you've ever had."

                                "Yeah, hotshot, you got a better idea?"

                                Lacking an answer, am now trying Monty's suggestion. You never know.

                                Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                                1 Reply Last reply Reply Quote 0
                                • M Offline
                                  markozeta
                                  last edited by

                                  @martinrinehart said:

                                  The current version now supports about 12k layer/scene intersections.

                                  Buggy still, but the problem is in ruby! Here's the console dump on "send to model":

                                  (eval);259; warning; invalid character syntax; use ?\s
                                  (eval);259; warning; string literal in condition
                                  Error; #<LocalJumpError; return from proc-closure>
                                  (eval);259;in `call'
                                  

                                  BSME - Cal Poly Pomona
                                  Sketchup Pipe Maniac

                                  1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    MartinRinehart
                                    last edited by

                                    @markozeta said:

                                    Buggy still, but ...

                                    Thanks for the dump. Line 259 is my EOF comment, so I'm not sure what to make of it.

                                    Are you PC or Mac?

                                    If it's PC, can you UL or send me a model? (MartinRinehart at Google's mail service).

                                    Martin

                                    Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                                    1 Reply Last reply Reply Quote 0
                                    • M Offline
                                      MartinRinehart
                                      last edited by

                                      @markozeta said:

                                      but the problem is in ruby!

                                      Actually, it's in Ruby, but not the Ruby I wrote. See this:

                                      http://groups.google.com/group/sketchupruby/browse_thread/thread/17bff6988f12037b

                                      Google search is one of the wonders of the world. That said, how to find a workaround?

                                      Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        MartinRinehart
                                        last edited by

                                        Thank you, markozeta, for your pipes! (A big model w/lots of scenes and layers, most helpful for finding the Ruby bug workaround.)

                                        A new version is up. Tested on the PC. Monty, my pet Python, thinks it might work on the Mac, too. Let me know.

                                        http://www.martinrinehart.com/models/rubies/vismapdoc.html

                                        Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

                                        1 Reply Last reply Reply Quote 0
                                        • J Offline
                                          jsteacy
                                          last edited by

                                          Just a heads up, I downloaded the most recent version and got an error hitting the button 'get data from model'

                                          line 157, char 2, error expected '}', code 0

                                          which causes nothing to happen after I continue to run the script on the page.

                                          I haven't read all the posts before this so maybe someone brought it up already but I figured since this was a new version, its a new problem.

                                          1 Reply Last reply Reply Quote 0
                                          • M Offline
                                            markozeta
                                            last edited by

                                            New to add to documentation:

                                            Only update Vismap with sketchup closed. Updating with sketchup open is bad.

                                            Mark

                                            BSME - Cal Poly Pomona
                                            Sketchup Pipe Maniac

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 3 / 7
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement