2 Replies Latest reply on Mar 13, 2014 3:15 PM by Daniel Plucinski

    Assembling effeciently

    Daniel Plucinski

      I'm a designer/IT for a small company that assembles various structures using joints and pipe ~ 1 inch in diameter. We've always had performance issues with structures that approach ~ 1000 square feet or are relatively complicated. These structures typically consist of less than 30 parts. Moving, rotating, and mating parts becomes a process that takes 1 - 5 minutes per action.


      Here's an example of something I designed recently. It doesn't fall into the ~1000 square feet category, but it's complicated enough to introduce some slow downs.


      My question is if this is a solvable problem and is it solved by better hardware or better assembly habits?


      Here are our computer specs:


      2.4GHz i7-4700MQ

      8GB RAM

      GeForce GTX 765M


      3.2GHz Xeon W3550

      8GB RAM

      Quadro 4000



      Personally, when I assemble, I make our pipe parts virtual so my configurations remain in the assembly without the need for an external file. Our other designer makes a copy of the pipe part to hold his configurations. Is one way better/faster or is there any other solutions?


      In terms of mating, I mate all of our joints first using concentric, distance, tangent, width, symmetric, then add the pipes last using up to surface extrudes between joints. I used to measure the distance between two joints and set that as the blind length of the pipe, but that usually makes making modifications to the assembly harder. Our other designer does a mix of blind and up to surface pipes, but doesn't typically use any of the advance mates. Again, is there a better way to increase performance?

        • Re: Assembling effeciently
          John Burrill

          Daniel, it's hard to know if this advice is applicable without seeing what your projects look like, but from your description, I have a couple of suggestions for improving the performance of your assemblies.

          First, it sounds like you're working in a flat top-level assembly where every component is mated independently.  Maybe that's not the case, but if you are making thousand part assemblies with only 20 or thirty moving components then you should take advantage of the opportunity to modularize your design into logical assemblies.  When componnets are part of a subassembly, their mates don't have to solve at every rebuild of the top-level assembly (unless you make the subassembly flexible), so employing a heirarchy to your assembly structure provides speed benefits.  It also gives you more opportunities to re-use groups of components.

          The second thing I took from your description was that you're creating a lot of incontext relationships amoung components to cut and size parts.  In conjunction with a flat assembly, solving all of those upto-surface conditions can spike your rebuild times.  If you are modeling welded frames or just prefab frames, you should look at using the weldment functionality of parts to make parts of your structure. The interface makes generating those miter cuts much easier and rebuild times are much faster because part features solve in sequence instead of simultaneously.  OK, even if you had to make a screened patio, where everything was screwed together with splice plates, I wold still model the frame as a weldment and then have SolidWorks generate parts from the bodies and assemble them as prefab components.  That way don't t have to create all kinds of time dependent features.

          Finally, if you're stuck working in a flat assembly model with individual parts for the structural members, I would create a 3Dsketch of the centerlines of the structure to serve as a skaffold for mating the components so that they're not mated to a structure that frequently needs to be rebuilt.  This also helps to avoid circular references.  This also allows you to do your extrudes upto vertex using the endpoints of the 3Dsketch segements and then use simple cuts from sketches to form your miters instead of having to land the full face of one tube against another.

          Your methodology of creating your structural pieces as virtual components is sound.  Just beware that virtual components have a couple of bugs that occasionally can cause file loss.  It's not a huge deal if your assembly contains two virtual components with 3 features each, but if you put all of your eggs in that proverbial basket and one of these bugs manifests itself, it could cost you a lot of work.

          Given the choice, I'd rather create a lot of virtual components over creatinga  lot of part configurations.  Configurations don't really reduce file size or rebuild times and if you don't know your parts design intent really well, editing a part with configurations can quickly turn it into a mess of errors.  Configurations are great when your parts are very clearly defined in the abstract and you know what most if not all of your permutations are gonig to be, not so much for creating geometry as you go.

            • Re: Assembling effeciently
              Daniel Plucinski

              Here's a couple other project examples:





              Our projects rarely ever give us the oportunity to create subassemblies. Our joints are already subassembled, but when it comes to joint-to-joint assemblies, there isn't much we can do. I've had to set the majority of the sub assembly to fixed in order to speed things up when things got too bad, but it seems like a pretty cheap solution. We don't get anywhere near 1000 top-level parts/subassemblies. It's more around 100-200 at most.


              I'll look into 3d sketches and weldements, but I'm not entirely sure on how to go about it because our structural components (pipes) don't define the dimensions of our projects, the joints do. We base the lengths, widths, and heights off of the distance between joints. The pipes are only in the drawing for visual purposes and for creating cut lists.