You are now editing multiple components
-
@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.
-
@ashscott said:
This sketchyphysics model modifies the watermark text in realtime ...
Warkmarks are images, and currently have no exposure in the API.
They are a no go, at this time.Besides that example would require users to install SketchyPhysics, which has some "naughty poor programming" issues at this time. (But should be fixed soon.)
-
Has anyone else with a bit more ruby experience than me had a chance to tinker with the sketchyphysics model I linked to (above) and worked out how it modifies the watermark in real time depending on user's inputs? Is it something to do with the sketchyphysics runtime (requires sketchyphysics running?) or could it be applied to our current problem?
-
Perhaps it directly manipulates an external watermark image file ?
-
I don't know how this works but as far as I can tell this is the line that controls it:
logLine "mode;" + @@hokou.to_s
Have poked around the documentation but I'm not really sure what logLine does
-
it looks like a method call
-
Any use for the problem we have here?
-
I do not have the SketchyPhysics code downloaded, so I cannot look at it.
-
@dan rathbun said:
Perhaps it directly manipulates an external watermark image file ?
Interesting - just stumbled over this thread as I was wanting to do something similar - a constant tally of faces in the corner, as I'm working on some models where minimal poly count is critical.
I did a text search through the SketchyPhysics .rb files to see how they did it, and found an 'addWatermarkText' method.
Seems it's not a watermark at all, but a 'face-me' text component, loaded from a support folder, and placed using 'pickray' to find it a consistent location on screen.
Presumably this means that it has its position transformed whenever the view is orbited etc., though I didn't have the patience to go looking through all of the files for the method calls. -
Awesome sleuthing!
-
@trogluddite said:
I did a text search through the SketchyPhysics .rb files to see how they did it, and found an 'addWatermarkText' method.
Seems it's not a watermark at all, but a 'face-me' text component, ...
This is how I am currently doing it (in (WIP) Edit Mode Warning Flag v1.1.0,) using:
model.add_note(@note,@x,@y)
This above method creates a special viewport-based "face camera"Sketchup::Text
object.@trogluddite said:
..., and placed using 'pickray' to find it a consistent location on screen.
Presumably this means that it has its position transformed whenever the view is orbited etc., ...The view-based Text object does this automatically, but the x and y are percentages, so it can handle viewport resizing better.
But the main drawback is that using a Drawingelement always modifies any model file opened.
I CAN make a transparent window or WebDialog on PC. John (Driven) already has done work on this for the Mac.
-
Do we have any more options with the advent of SU 2013?
What can I do to help move this forward as I'm struggling with some of the documentation again - is there a way I can use pickray to position the note in the current version more accurately?
Dan, what is involved in getting the transparent window or WebDialog working?
-
I'm trying to modify Dan's script to make this a little more lightweight and to see if I can make a UI.messagebox appear whenever I'm editing multiple components as I seem to not notice the current notification in its current form.
First thing, can't we chop out anything referring to groups as groups won't modify other groups that are derived from them? Like this:
if inst.is_a?(Sketchup;;Group) parent = inst.entities.parent num = parent.count_instances text = "Editing #{num} group instances" puts(text) if debug
That would also save the editpath query thingamajig from having a second "if" function in it (I think)
Also, in order to get the UI.messagebox I'm trying to add in something like this:
parent = inst.definition num = parent.count_instances puts {UI.messagebox("Editing #{num} component instances")} if debug
But that keeps breaking the script....
I feel like this should be really simple and it probably is - can someone point out how I'm misusing UI.messagebox?
Advertisement