Styles Class method Inquiry
-
In the ruby doc for the Styles Class (http://groups.google.com/group/SketchUp-Plugins-Dev/web/Ruby-Style.html), I did not see an erase method. Is one inherited?
Right now, the only way that I can see to delete a style using Ruby is to do the following:
- Create a temporary Scene for any style that you want to keep.
- Make sure that each of the temporary Scenes reference on of the styles that you are keeping.
- Purge Styles.
- Delete the temporary Scenes.
Am I missing something?
Thank you,
wehby -
a Sketchup::Style is_a? Sketchup::Entity, so I just tried:
m = Sketchup.active_model s = m.styles[0] m.entities.erase_entities s
and crashed Sketchup.
Of coarse, there is
Sketchup.active_model.styles.purge_unused
-
Jim,
This is interesting. Taking your example and testing it a little:model = Sketchup.active_model #returns something like; <Sketchup;;Model;0x5181b38> entities = model.active_entities #returns something like; <Sketchup;;Entities;0x5181a78> entities.count #returns; 1 entity0=entities[0] #returns something like; #<Sketchup;;ComponentInstance;0x5181700>
The only entity in the model is the Bryce model. If I add several styles and retest entities.count, I still only get 1 entity. I think the parent of styles is model.
The downside of using purge_unused is that I first have to create scenes that use all of the styles that I don't want to purge, then delete the temporary scenes. But if that's the only way, then I guess I can deal with it.
Does my test look right?
-wehby
-
wehby, your test looks right. I based my post on the following test:
Sketchup.active_model.styles[0].is_a? Sketchup;;Entity true
I'm sure exactly what Sketchup.active_model.entities returns. For me, entities sometimes even contains weird things like Edgeuse objects and Loop objects - things that should never be in there.
So, don't confuse Entity with Drawingelement. Drawingelement's are things that create visible geometry - edges, faces, groups. Here's a diagram of some of the class hierarchy (from RLC on Google Groups
Sketchup is saying there is 1 entity, but maybe it really means 1 Drawingelement? I don't know.
-
Thanks for your help on this, Jim.
I'm working on a script that is sort of a combination of your Style Thumbnailer and my own Display Templates ruby scripts. Since my script involves loading styles into a SKP, I wanted to make sure that I provided a way of deleting the styles that I imported. That way I would not be bogging down the file with a bunch of junk. Looks like I will have to do it the hard way...
Thanks again.
-wehby
-
Sorry to be the bearer of further bad news, but we can't delete scenes. I've made that request (plus others), so we'll see what happens...
-
Well, it looks like I have to either just fix my Display Templates to work in SU6 and pretend Styles don't exist (as they didn't when I first wrote the script) or write a script that uses Styles and potential flood the user's SKP with styles.
Do you think there might be a work around by using send_action?
-wehby
Advertisement