Assembly mates and rebuild times

A recent discussion I had with Chris MacCormack was about how mates within an assembly affect rebuilt times.  He posed a question to me.  Do I fully contrain screws after I insert them?  My answer was basically “yes, as time allows.”  He then stated that he actually promotes the notion of not fully contraining screws.  He went so far as to suggest it would be better to suppress the mates altogether and fixing all components. 

His reason for this policy is that a higher number of mates will slow down rebuild times because SolidWorks has to caculate each mate on every rebuild.  My primary thought is that I prefer my model assemblies to be stable and predictable, which full mate constraint methodology delivers.  Secondarily, on instinct, I was working under the idea that having everything fully constrained helps SolidWorks work out all the details so it doesn’t have to spend so much time figuring everything during a rebuild.  (I was aware that particular kinds of mates do slow down rebuild times.) 

So, I decided to put this to a test.  I created the model assembly shown here.  Though these are not real world parts, they are created and assemblied using real world techniques, with details I would normally use, even to the degree of adding material to each component.

Test subject

I created a series of configurations of this assembly in various states of mating, both with patterned components and with all instances of hardware individually inserted.  I then used handleman’s latest macro, Rebuildtimes.swp (which he recently provided on as a response to a request by another user).  This macro was used several times on each configuration.  Here are the best times for each.

Condition:  First rebuild time (s)
Patterned Fully Constrained:  0.3438
Patterned Partially Constrained:  0.3125
Patterned Not Constrained:  0.2812
Patterned Fixed:  0.2656
All Instances Inserted Fully Constrained:  1.125
All Instances Inserted Partially Constrained:  0.5938
All Instances Inserted Not Constrained:  0.2656
All Instances Inserted Fixed:  0.2656

The test results show a clear pattern.  Chris’ assessment is correct.  With each additional mate, SolidWorks takes more time to rebuilt the assembly.  Even in this small example, there is a significant difference between fully constrained hardware and hardware that was just inserted via smart mates (partially constrained); 1.12 seconds verses .59.  The rebuild time was literally doubled just by adding parallel mates to fully constrain the smart mated hardware.

Even in light of this realization, I do not advocate suppressing all mates and fixing components.  In my experience, this isn’t practical for the real world.  However, this is going to make me reconsider just how I will be handling mating schemes.  There needs to be a balance between the speed of the software and the functionality of the model assembly.  Where is that balancing point?

Author: fcsuper

As a drafter, mechanical designer and CAD engineer, I've been in the mechanical design field since 1991. For the first 8 years of my career, I was an AutoCAD professional. I utilized AutoLISP and many other AutoCAD customization features to streamline drafting activities for 6+ drafters and designers. I authored several custom functions, one of which was published in the March 1997 issue of Cadalyst Magazine. Since 1998, I've been used SolidWorks non-stop. I've worked to utilize the SolidWorks' user environment to simplify drafting and design activities for 20+ engineers. I've created this website to provide current information about SolidWorks from a variety of contributors. More recently, I am now employed by Dassault Systemes as SOLIDWORKS Sr. Product Definition Manager to improve drawing, annotation and MBD related areas.

20 thoughts on “Assembly mates and rebuild times”

  1. Can you do a comparison also using the Lock mate instead of the parallel mates to fully constrain the components?

    The lock mate is a really easy mate to add using the multi-mate function.


  2. Hey Matt, great test! we usually do a mix. Since we work in a defined coordinate system, new parts are auto-inserted and fixed, hardware is left partially constrained.

  3. Hey now! 🙂

    I just want all to know that I do not condone fixing components unless you are dealing with LARGE assemblies, UPS warehouse sized conveyor systems, 100,000 + components.

    I also am looking into using axis and planes for mating performance like I do in Pro-ENGINEER.
    I would create mating axis for holes and I prefer mating planes rather than using the Width command. Not as flakey. Using reference geometry seems to increase assembly performance since the geometry is very simple as opposed to some of the surfaces we normally use to mate. These items also help discuss GD&T concepts to my students with a visual idea as opposed to the common conceptual training. If I only had an inspection room.

    Good Luck to all! Take my input with a grain of salt as I have just finished my 5th air pot of coffee in 2 hours.

    Happy New Year!!!!

    Chris MacCormack

  4. Would anyone find a fix axis (rotation) mate useful? I think this would be great for solidworks to add. I’ve added an enhancement request.

    And thanks Matt for running the experiment!


  5. Jason must be a former Pro-ENGINEER user. That is a great tool in Pro-E. I think it would be incredibly useful. It kind of runs along what John McLean (the great former CEO of SolidWorks) said at a SolidWorks World, the CAD tools need to behave more like real world instead of behaving like CAD. Things like rotation and translation are real world applications.

    In 2008 they have added some real world mates inthe Mechanical Mates, I have not tried them but the screw mate may be something to look at.


  6. hey Chris,

    Not a former Pro-E user…just a SW user who likes to ask questions…and always searching for “a better way”.

    I didn’t know Pro-E had this, that should be more leverage to get SW on it eh?


  7. Hi guys,
    I’m a mechanical engineer working with CAD for the last 15 Years. I have been using Solid Edge, Solid Works and I-DEAS. The problem with sw is really the conseptual structur; read constrains. If You upfront know all Your parts its ok. But this is hardly not the real life reallity in creating new products. In IDEAS the thinking is totally different, allowing you to have parts and assys on a workbench, adjusting them , making new parts and moving them around without the need for any constrains. Too bad IDEAS is no longer a marked leader, the intension with that program was the best ever

  8. Chris,

    SW 2009 does have mechanical mates such as hinges, but they only work on limited feature types.However, what you can do is to create two constraints: coincident between two Axis references (or edges) for rotation and a second constraint to eliminate the translation along the axis (eg, coincident planes perpendicular to the axes). Of course this doesn’t fully constrain the part.

  9. Just my little input, I have used both Solidedge & Works. While I prefer using Works more. I think Edge really has a lot of nice mating options. For probably the last 5 versions (that I know of) there is an option in the concentric mate to lock rotation or an insert mate that will apply a coincident & a locked-concentric mate at the same time. I have never timed the regen/open times but just for mating steps is a nice option. I just prefer never to use a fix mate, except for the first part of the assembly because it won’t update the mates automatically when something has been changed.

  10. Hey guys…I am in desperate need of some solid edge help. I’m a student at UAHuntsville and have to have my first CAD project due Monday March 22. I’m obviously a newbie and am having a problem with the “lock rotation” command on an “axial align”. Every time I lock my part it rotates straight up. My assembly is a simple desk lamp. Any ideas? if you would like I can email my assembly and .cfg file for review.

  11. Why is it that after I run the rebuild time macro on a clean assembly (no errors) my assembly will then have errors in it ?

  12. John, the assembly may not be as clean as you may think. There is a variety of reasons this can happen as a result of something in the assembly itself. Without any more information, I really cannot provide any guidance on this.

  13. Pingback: fcsuper
  14. Pingback: fcsuper

Leave a Reply

Your email address will not be published. Required fields are marked *