How to improve linear pattern rebuild performance by 10X | LinkedIn
Couple days ago, I received a part from VAR ( Value-Added Reseller) and asked me how to improve the rebuild performance of a complex part. The part is an SMD (Surface Mount Device) leadframe, in order to cut down the production cost, one leadframe usually consists several hundred or more than a thousand of units.
And this is how one SMD unit might look like: (below is an SMD LED component)
The part from VAR came with massive pattern feature, the number of the pattern instance is 1320 (!), the file size is 175MB and it takes 20 minutes to open the file and regenerate graphics. The total rebuild time is 13336 seconds, or 3 hours 42 minutes and 16 seconds, as you can see below, most of the rebuild time is spent on the pattern features. ( By the way, I have never seen a part with such a long rebuild time.)
So, how to deal with this problem? In order to understand the relation between number of instances and the rebuild time, I performed a simple experiment. I varied the number of instances in a part and measure the rebuild time for each case. After plotting the data in Excel and fit the points with a trendline, surprisingly I saw a perfect second order polynomial curve!
Now I understand why the rebuild time is so long! Because the rebuild time is not linearly proportioned to the number of instances, in fact, it grows exponentially with the number of instances! Based on above trendline equation, when the number of instances for a linear pattern is 1320, the rebuild time will become 11289 Seconds!
With above understanding, it is time to figure out how to reduce the rebuild time. We know that:
Which means if I break a massive pattern into many smaller patterns, the total rebuild time of those smaller patterns should be significantly shorter than a massive pattern. The actual result proves that my math was correct, with the new method, the rebuild time is reduced by 10 times!
The disadvantage of above method is you have to build more base features for the small patterns, but that is an easy task as I use Sketch Block and Equation to help me reuse the sketches. Eventually, mission accomplished!
Update:
After I posted this article, I did some Google search using keyword like "How to improve pattern performance ", there are some articles suggest that pattern body and then perform Boolean operation is faster than the normal feature pattern method. I did some test using the pattern body + Boolean operation method ( using SOLIDWORKS feature Combine ). Here is the result:
This looks quite promising. For example, when the number of instances = 255, the Body Pattern + Boolean Operation is 6 times faster than feature pattern!
But when I extrapolate the number of instances to 1320 instances, things changes dramatically, the rebuild time for feature pattern is faster after number of instance is more than 1080.
This is indeed an interesting result, it means when number of instances is less than 600, it is worth to try the Body Pattern + Boolean Operation method to reduce the rebuild time, but when pattern instances increases further, I think it is still better to use the method I mentioned previously ( break a large pattern into smaller patterns).