[Plugin] VisMap - Layer/Scene Visibility Map
-
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.
-
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.
-
New to add to documentation:
Only update Vismap with sketchup closed. Updating with sketchup open is bad.
Mark
-
New version works, even on my bigger model!
Now about that alphabetical layer sorting I asked for...
It helps when I can check vismap with a nice straight diagonal for these large maps, since I can just make sure that it works perfect.
xooo
oxoo
ooxo
oooxvs.
xooo
ooxo
oxoo
oooxIt helps.
-
@jsteacy said:
I downloaded the most recent version and got an error hitting the button 'get data from model'
Can you UL a model? I can't reproduce this. Thanks.
-
@markozeta said:
New version works, even on my bigger model!
Pat yourself on back. You had a major hand in that. Or at least your pipes did.
@markozeta said:
Now about that alphabetical layer sorting I asked for...
Hmmm. Sorting is trivial, of course. Takes a single line to sort an array. Problem is, if you check a box, how do I know which layer that is in the model? Requires some sort of mapping from unsorted to sorted order.
As names are unique, I could do a brute force mapping, I suppose. Hmmm.
-
martin,
good news! it works on mac now!
although it must be a pain for you to have us always asking for more features, i second bob's request for a scroll bar: in a model with many layers there will be no way to reach the ones at the bottom.
THANKS!
-
Scroll bars pop up on the PC, but not on the Mac...
Interesting. That's pretty - ubergeek.
Mark
-
Martin,
In addition to sorting, can you put in a scroll bar: I have more layers than can fit in the VisMap dialog box fully extended top to bottom. [MacPro]
This is an awesomely useful plugin, but, in addition to the above, I cannot load my large model: there doesn't seem to be a problem with the number of layers, but, apparently, with a large number of layers (as shown in the VisMap for another model) and a large number of scenes (in this case 15: reduced from 20 to see if that would help).
Super-super stuff
-
@martinrinehart said:
As names are unique
Only for Layers! Scenes can have same names...
*Hopes his cry of despair reaches the target before ... *
-
Thought I'd give it a try on my PC: when I clicked on "Load Model Data" I received the attached error dialog
-
@bob james said:
Thought I'd give it a try on my PC: when I clicked on "Load Model Data" I received the attached error dialog
Bob, that error reporting is exemplary. It is with some regret that I must inform you that MSIE's error reporting is near useless. Can you UL or email (MartinRinehart at Google's mail service) a model that generates this error?
Mac folks:
Attached is a replacement for .../Plugins/vismap/vismap.rb. It may give you the scrollbars we PC folks have. Let me know.
-
@martinrinehart said:
Mac folks:
Attached is a replacement for .../Plugins/vismap/vismap.rb. It may give you the scrollbars we PC folks have. Let me know.
It works!
-
Anyone who has read any of my posts will know that I am very keen on promoting the use of web dialogs and as I see Vismaps a part of this I hope the following critique will be seen in that light:
Notes are based on this screenshot of the plugin
Sketchup windows generally seem pretty tightly designed as small as possible to minimise obstructing the display of the geometry. I think you could beneficially lose the rubies and title in the body.
The idea of the table and scene code numbers is an awkward solution. At least the table should follow the scroll.
I think the option to have layers and scenes in alphabetical/sequential order is important.
In the screenshot you see I have used full screen and yet only display about half of the layers. I usually want to see the effect of turning layers on and off in the current scene using the scene tabs for example to check others. Maybe it is just my intuition and others are better able to visualise the outcome. If you consider making Vismap into a machine would be beneficial I would be happy to help with that.
Chris
-
Chris,
I agree with your remarks, but then, you don't need a plugin, as it should be enough to show the SU Layers dialog, and click on the scene Tabs to see which layers are visible in the current scene. The Layers SU Window is small, redimensionable, fully interactive and has a table scrolling. Furthermore, it allows to add / remove layers and configure them dynamically. You will miss however the Sorting into alphabetical order!
Alternatively, it is feasible to make Martin's Vismap plugin fully interactive (i.e. no need for Get data / Send data), sorted by alpha order and scrolling horizontally and vertically with freeze panes for first column and table header (which can be displayed vertically). But at the end, it would give the same result as the native solution above.
Fredo
-
martin,
i have the scroll bars now. thanks!
-
@chrisglasier said:
you could beneficially lose the rubies and title in the body
Hey, that Ruby was a lot of work! Seriously, next rebuild I'll put the title stuff into a frame so you can drag it into oblivion if you need the space. The worse problem is that MSIE web dialogs don't respond to the normal Ctrl/+ and Ctrl/-. I've got to find a way around this.
@chrisglasier said:
I usually want to see the effect of turning layers on and off in the current scene
The Layers window is a better tool if you don't want to see VisMap's array.
@edson said:
i have the scroll bars now. thanks!
Don't be afraid to ask. This one was trivial to add.
The fact that it works at all on the Mac is due to some fine old threads started by Fredo and Chris Glazier explaining the subtle, and not so subtle compatibility issues.
@unknownuser said:
You will miss however the Sorting into alphabetical order!
First, Fredo, thanks for that discussion of synch PC / asynch Mac with Scott Lininger, from a couple years back. Vital info.
Sorting is trivial but you need to unsort before telling the model who's visible or not. I was about half way into this in Ruby when I realized that it was really a JavaScript issue. Never used a hash in JS, but experiment suggests that a JS array IS an associative array. Haven't tested this in MSIE yet.
@unknownuser said:
with freeze panes for first column and table header
Freeze panes have been requested for both the layer list and the scene list. This is almost possible with frames. Issue: how to synch vertical scroll in the layers list with vertical scroll in the main array. I don't know that JS has scroll listeners.
That means, writing a custom scrollbar widget, a feasible project in any browser that supports <canvas>. That's every browser except MSIE, of course.
-
@martinrinehart said:
Freeze panes have been requested for both the layer list and the scene list. This is almost possible with frames. Issue: how to synch vertical scroll in the layers list with vertical scroll in the main array. I don't know that JS has scroll listeners.
That means, writing a custom scrollbar widget, a feasible project in any browser that supports <canvas>. That's every browser except MSIE, of course.
Freeze Panes is relatively easy to do with DIV in pure HTML with constant column width.
For non constant column width, the horizontal scrolling with freeze of first column is more complex, but doable with JavaScript in a portable way.
All this said, I am still wondering why these natural and simple requirement is not a default part of the HTML table specifications. Hope that HTML 5 will do something about it.Fredo
PS: For sorting, I don't understand the issue you mention. Data should be independent from their display.
-
@unknownuser said:
For sorting, I don't understand the issue you mention. Data should be independent from their display.
You click a checkbox in row 3. This is the third layer in the model, as is. If I sort the layers, row 3 may be model layer 17. Solution: hash with key = layer name, value = original row number. Something like:
var hash = []; for ( i in layerNames ) { hash[ layerNames[i] ] = i; }
-
Sure, you need an indirection to keep track of the original index in the model.layers array. But that's just a little bit of code, not a limitation.
Fredo
Advertisement