You are now editing multiple components
-
[edit] oh.. and hey.. i'm not knocking your idea in a way it may appear..
just seems like the tradeoff between having this information being presented in a slightly different way than the native method..
-compared with-
needing yet another plugin to load and (as i understand) running at all times..isn't worth it
-
I do have way too many already.
-
This is a plugin that in theory could run fairly silently in the background. Wouldn't even need a menu item.
Double click on a component and a little window pops up and tells you that their are X other identical components. Or even just a note that reminds the user that this is a component. It could be fairly useful I think. If it was not too intrusive.
-
It would have no interaction from the user and would only be a few lines of code can't imagine it would slow anything down.
-
@ashscott said:
It would have no interaction from the user
right.. that's where i was concerned.. the user can't switch it on or off.. it's always on.. even though you'll only use it for maybe 1/10000th of your session time..
@unknownuser said:
and would only be a few lines of code can't imagine it would slow anything down.
possibly.. i simply don't know and as of late, i'm just weary of having too much going at once due to stability issues..
but chris who posted above you likes the idea ANd knows ruby.. and if he says it's ok then it probably is..
but you sort of messed up in your 'request' for a plugin because you said:
@unknownuser said:
I wanted to write this as my first ruby project but it seems slightly trickier than a total ruby noob like me can handle.
so now you've put the ball in your court
get a few lines going and post in the developers forum when you hit a brick wall.. then ask them for a little steering in the proper direction
[or, of course.. get lucky and open this thread in the morning and find that someone wrote it while you were sleeping ]
[edit] oh wait.. you're in NZ.. so the sleeping & morning thing might not work out in exactly the same way i've described there..
-
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.
Advertisement