You are now editing multiple components
-
The point of the plugin would be to stop accidentally modifying components.
If you had to turn it on and off it would defeat the purpose because you would accidentally start modifying a manifold component and unknowingly modify all copies of that component.
It would not be intrusive because it could just induce a watermark popup in the corner of your screen.
Chris seems to understand what I'm getting at.
I have no idea what I'm doing but perhaps something like this is a start:
def onOpen(instance) setVar ("X","definitions.count") end if componentinstance.manifold? = true setVar("text","You are currently editing {getVar("X")} components") end if componentinstance.manifold? = true getVar ("text") end
Don't laugh, I've just started reading the ruby documentation this week.
To put it in terms that I actually understand:
If the user opens a component to edit it
Count how many instances of that component are manifold with the one the user has open
Call the number counted "X"
Display "X" within this sentence as a watermark in the top left corner of the screen:
You are currently editing "X" componentsAlso, I'm from NZ but living in India
-
What does the manifold bit have to do with it? Why do you only care if it is manifold? It would be more applicable to more people I would imagine if it worked on all components, not just the manifold ones I would guess.
Also, I could be wrong, but the notion of this popping up and disappearing on its own is actually a bit more complicated then might be first suspected. It will require an observer to be running at all times, so it will add a little overhead to the system. Anyhow, I would be interested in trying to make it work, see if its simple and stable.
-
I thought he was talking about the actual manifold plugin... what do you guys mean manifold?
-
I've probably misunderstood what manifold means. I thought it meant that a component had other components that would be modified along with it?
Perhaps there is a more computationally straightforward way of notifying the user?
A simple UI popup seems to cost very little but, as someone pointed out, that requires the user to click "OK" each time they open a component..... -
@krisidious said:
what do you guys mean manifold?
i take that to mean that the object is solid or watertight..
as in: if entity info reports "Solid Component (9 in model)"
it could instead say "Manifold Component (9 in model)"
and mean the same exact thing. -
@chris fullmer said:
Also, I could be wrong, but the notion of this popping up and disappearing on its own is actually a bit more complicated then might be first suspected. It will require an observer to be running at all times, so it will add a little overhead to the system. Anyhow, I would be interested in trying to make it work, see if its simple and stable.
I whacked out an example yesterday.
Serves a good example of how to dynamically have SketchUp attach observers to models as they are opened.It uses a "view based" model note,... tagged with an empty attribute dictionary, named with the plugin's
OPT_KEY
. (The transparency of the note is controlled by the user, via the Model Options dialog, in "Fade Rest of Model".) -
That's great Dan! Works well and is even a bit simpler than I was thinking in certain aspects. I like it a lot. Would you consider saving it as an .rb or .rbz file and making a true full plugin? I'd hate to think people will end up not using simply because they don't understand the simple process of pasting the code into a text file and naming and saving it correctly.
-
Sorry, I probably haven't attributed that work properly, all credit to Dan Rathburn. Dan, let me know if you don't want that link there. I assumed that since you shared the code so freely that you wouldn't mind a download link.
Really enjoy the plugin and have shown it to a few people who are really excited by it. Thanks for your help everyone
-
@ashscott said:
Just trying to figure out how to make that text bolder...
Well the bummer is, that the API does not (currently,) expose methods to set or change the font attributes for
Sketchup::Text
objects. (These font features have already been requested formally.)So the only way to control how transparent or opaque the note is, ... is via the Model Info dialog > Components panel > Fade Rest of model slider.
-
Well at least there is some kind of fix.
Excuse my ignorance, but what do edit flag X and Y do?
I've played with them in and out of the script and can't figure them out....
Also, is there anyone else out there that does engineering modelling that thinks this is a really important tool for reminding you when you could be unintentionally editing component(s)?
-
Am learning a lot by going through the script and trying to make it a 'menuless' background plugin - like Chris suggested earlier.
Am surprised at the amount of work and notation you have put into it Dan, is it a script from something else that you adapted or did you write all of this "off the cuff"?
-
@ashscott said:
Excuse my ignorance, but what do edit flag X and Y do?
I've played with them in and out of the script and can't figure them out....It is the percent of horizontal screen position (x), and percent of vertical screen position (y), where you want the note to be anchored.
Currently you must restart Sketchup, for changes to take effect.
(I did not have time within the options() method to put in the statements, to move the warning flag. (I'll try and do that today sometime.. Hey, it's Daytona 500 Raceday here, ya' know!)@ashscott said:
Also, is there anyone else out there that does engineering modelling that thinks this is a really important tool for reminding you when you could be unintentionally editing component(s)
I think we ALL do believe (as we have previously discussed in another topic,) that theUI
module lacks a "marquee" feature, that we can use to display info, without modifying the model itself, ... and during any tool, especially native tools. (We can write text to the view during custom tools, but this does not solve the issue.)So for now.. I would prefer this remain a test of concept, which is really why I did not yet release it as a rbz package with a
SketchupExtension
registration script. -
@ashscott said:
Am surprised at the amount of work and notation you have put into it Dan, ...
Well it is supposed to be an example.. so it needs to be understandable.@ashscott said:
... is it a script from something else that you adapted or did you write all of this "off the cuff"?
Just off the "cuff"... but follows my example styling. (If you follow best practices enough, it becomes second nature.. and you don't really think about style.) -
There is the info box near the VCB that says things like "Select Start Point" when you are using the line tool. Its way too unobtrusive in its current state as few people would notice anything it has to say, but is there a module or something attached to it that could be made more obtrusive to supply info like what is required from this plugin?
Other option is the dead simple version that displays a messagebox (although this would require the user to click "OK" every time they modified a component) - however, couldn't it be made to only apply to components that have multiple instances. That way the messagebox wouldn't appear for groups and unique components?
Being a test concept, do you want me to take down the .rb link?
@dan said:
Just off the "cuff"... but follows my example styling.
Would love to be able to knock out conceptual scripts that quickly the way sketchup has allowed me to knock out physical concept ideas quickly
-
@ashscott said:
There is the info box near the VCB that says things like "Select Start Point" when you are using the line tool.
That is the Status Bar. (.. and BTW, the VCB can be undocked from it and docked as one of the top toolbars, which is what I do. The second line of my top toolbars is the Layer toolbar, then the VCB.)
The status text can be set at any time using
Sketchup.set_status_text("Some text string.",SB_VCB_VALUE)
...
BUT, its is meant for use within and when a custom tool is active.If you do it during a native tool, the user usually does not see it, because the application engine redraws the UI many times per second, and definitely just after the mouse is moved. So the native tool's status text will override your message almost immediately.
-
@ashscott said:
Being a test concept, do you want me to take down the .rb link?
It would be best, for now.. as the toplevel module has the standard example name
Author
which is meant to be replaced with a REAL author's toplevel module name.If you release an edition of it.. the toplevel module would be named
Scott
orAsh
, or whatever you decide, perhaps a company identifier for your toplevel namespace. Choose something that is unique, or not yet used by anyone else, and does not violate any enitity's trademark. -
This sketchyphysics model modifies the watermark text in realtime during a simulation based on user inputs....not sure if its any help for this problem: http://sketchup.google.com/3dwarehouse/details?mid=5b618d4ba6c22ca85fd35d52fb19ea9b&prevstart=0
-
Hi There,
Just wanted to say thanks, Ash, for the idea; and Dan for for the sterling work putting it into practice.
I very often derive components in a model from other template parts, and I forget to click "make unique" about 50 times a week!
Having a warning that pops up regardless of the 'hiding other stuff' settings is something that could save me oodles of time re-loading components or going back to previous file version. -
That is awesome, pretty much the exact functionality I was looking for.
Just trying to figure out how to make that text bolder...
-
@unknownuser said:
I forget to click "make unique" about 50 times a week!
Tell me about it. I was certain someone must have written a script to do this but I had a browse around and it appeared they hadn't.
Frankly, I think the lack of a warning like this plugin and the errors it causes for users (who are focusing on what they are drawing on not how many components they are messing with) is a limitation to the efficiency of sketchup as many users don't use components to their full potential because they have been burned in the past.
When I concentrate really hard I can draw parts and assemblies with a lot more speed using components but the concentration required to keep track of what other parts I am modifying is a drain.
I hope this enables people to get right back into using components to their full potential.
Advertisement