[Plugin] CleanUp
-
Overview
This plugin does it best at optimize and clean up a model.[flash=640,385:21095i6n]http://www.youtube.com/v/seJYub0LCmQ?fs=1&hl=en_US[/flash:21095i6n]
Access
Plugins > CleanUp
Features
- Fixes duplicate component definition names ( When in model scope )
- Purge unused items
- Erase hidden geometry
- Erase duplicate faces
- Erase lonely edges ( Except edges on cut plane )
- Remove edge material
- Repair split edges
- Smooth & soft edges
- Put edges and faces to Layer0
- Merge identical materials
- Merge connected co-planar faces
Requirements
- SketchUp 7.1 or newer - You can run it on older versions, but it will not yield a predictable result - you will be warned about this.
- TT_Lib2 (v2.7.0)
Guide: How to install RBZ Files
http://sketchucation.com/resources/pluginstore?pln=tt_cleanupFootprint
<Sketchup>/Plugins/
+-
tt_cleanup.rbHistory
Both the Sketchup Importers option too remove coplanar edges and the deletecoplanaredges plugin have given me mixed result. Geometry tend to disappear in some cases. Part of that is due to a Sketchup bug: http://forums.sketchucation.com/viewtopic.php?f=180%26amp;t=10599%26amp;start=30#p164501 and another part is due to what seem to be some inconstancy with the way Sketchup and the Ruby API deal with numbers.
As of 7.1 the first issue appear to have been fixed. (Yay! ) And I have found a work around for the other issue.
If you experience geometry to be lost, while using SU 7.1- please let me know so I can look into it.If you have geometry selected it will work on those only. Otherwise it will iterate over the current context.
Technical Jabber
Prior to SU 7.1 there was a bug where in some cases deleting an coplanar edge, either via Ruby or the Eraser tool, would make its connected faces disappear. See this thread for more info and samples: http://forums.sketchucation.com/viewtopic.php?f=180%26amp;t=10599%26amp;start=30#p164496
I tried to work around that previously, but the code ended up stupidly complex trying to keep track of all the edges I couldn't erase, and no matter what I did I always ended up loosing geometry, or not managing to remove everything. With this issue fixed in SU 7.1 it's now dead easy; Find'em and Erase'em!Update β 22 April 2010
New and improved method to detect coplanar faces. No more messing about with tolerances.
-
Thank you, man. I have the perfect file to test it.
-
@ecuadorian said:
Thank you, man. I have the perfect file to test it.
A particular troublesome file? Please let me know how it goes. Not sure if I've got it fully tuned in yet.
-
Cheers thom, a very useful script.
-
Wow... no more lost faces (as happened with other cleanup scripts), and cleanup is top-notch.
Here it is applied only to the horizontal white borders:
You do realize the importance of this script in the history of SketchUp, do you? Thanks again!
-
Good to see it working on other complex models. I only tried it against one complex one, large triangulated terrain with 80K+ faces. (Though that model had all the potential problems you could run into AFIK.)
-
Ack! it doesn't look at materials?
Oh, and thank you!
-
@jim said:
Ack! it doesn't look at materials?
Oh, and thank you!
No, but that's a very good suggestion.
Ecuadorian did find some issues with some geometry, so I'll push an update when I've gotten around to look at it.
-
Ecuadorian:
I had a look at your sample file. I see the issues. I think it's a tolerance issue. I'll have to investigate a little more to tune in the tolerance. -
Thanks! I think I now remember what the problem might be, also. The model is scaled a lot.
-
This is strange. When I compare the dot product of various faces, I find an overlap in the return value for faces where you can erase the connecting edge:
# Not coplanar # 0.999999999898786 # 0.999999999901467 # 0.99999999992968 # 0.99999999995352 # 0.999999999959393 # 0.999999999974808 # # Coplanar # 0.999999999917881 # 0.999999999918562 # 0.999999999984962 # 0.999999999999148 # 0.999999999999408
-
@ecuadorian said:
Thanks! I think I now remember what the problem might be, also. The model is scaled a lot.
I did notice that - but I exploded it and it still occurs...
-
Could you take the edge, find its connected faces. Then get the object id for those faces, and get all their vertices positions. Then delete the edge if it is planar. Then test to see if those faces still exist. If they do, move on. If they do not, then rebuild them using their vertices' positions? Painful yes, but maybe useful?
Chris
-
@chris fullmer said:
Could you take the edge, find its connected faces. Then get the object id for those faces, and get all their vertices positions. Then delete the edge if it is planar. Then test to see if those faces still exist. If they do, move on. If they do not, then rebuild them using their vertices' positions? Painful yes, but maybe useful?
Chris
I did that kind of stuff in my previous version, prior to 7.1 - wasn't stable. So many cases to take into account. Faces with inner holes etc...
-
I think I might have misunderstood this whole DOT product from vectors... will have to look deeper into it.
-
Can you hit ctrl-z in ruby?
-
@thomthom said:
I think I might have misunderstood this whole DOT product from vectors... will have to look deeper into it.
What do you think is not working? from my quick browse of your script the dot product should do what you want.
-
@chris fullmer said:
Can you hit ctrl-z in ruby?
Yea, http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/sketchup.html#undo
But that would ruin any kind of possibility to undo the whole erase coplanar operation. -
...could create a temp group and use that to replicate the two faces (when within a range where we can't be certain.)
but I'd still try to avoid that if I can calculate this.
-
Hi Thomas, I lost a texture from a face in a 61k faces model. BTW what happens when you have coplaner faces with different textures, or images placed on textured faces (say a run on a wood floor). Didn't read all the post, so sorry if already covered.
Advertisement