On Monday, I announced that SolidWorks 2010 has had a tune-up. The code in certain areas of the software had been getting a little long in the tooth, and long in the rebuild times too. For SolidWorks 2010, the team at SolidWorks Corp set out to clean up some of the more inefficient code that’s been dragging SolidWorks down. I’m not yet sure how successful they were in this endeavor.
Some of the areas have affected in this clean up (not a complete list):
- the Knit Surface algorithm, which not only includes the Surface-Knit feature, but also all other features and commands that utilize the algorithm;
- Multibody parts and related commands, mostly noticeable on a large number of solid/surface bodies;
- Weldment cutlist update (body comparison)
- Equation performance;
- Delete Face feature.
I set out to see just how much improvement one might expect from a simple example of Delete Face. (Reminder: I’m using SolidWorks 2010 Beta 2.) I found a rather basic model example available in SolidWorks 2009. Within SolidWorks 2009, I used Delete Face to delete one random surface. The options I used were Delete and Fill/Tangent Fill. It’s a self repairing deletion that would normally be used on something a bit more complex than a flat surface.
Average rebuild times (s):
- SW 2009 w/o Delete Face: .360
- SW 2009 w/ Delete Face: 1.330
- SW 2009, just Delete Face: .937
- SW 2010 w/o Delete Face: .390
- SW 2010 w/ Delete Face: 1.210
- SW 2010, just Delete Face: .823
The Delete Face feature does indeed have improved rebuild times, but with the options I choose, it’s not by much. Then, I discovered something weird. In SW 2009, I reloaded the model and found the Delete Face average time was 1.60 (for a total of 2.00)! After suppressing the Delete Face feature and rebuilding a few more times, the total average rebuild time was again 1.33. What the heck? So, I tried this out in SW 2010. First rebuild was a whooping 3.17 seconds for just the Delete Face feature! After rebuilding more, it settled down to average 1.31 (totalling about 1.86)! Only after the same suppression, unsuppression trick did the times return to what is shown in the table above.
This leads me to question: are there are different algorithms being used based on how SolidWorks becomes aware of a feature? It is very strange behavior witnessed in both SW 2009 and 2010, though 2010 still does show some minor improvement for my overly simple test. I’m going to dig further into this for upcoming articles.