SolidWorks 2011 Assemblies Bible - Matt Lombard [8]
• Establishing clearances and limits of motion
• Visualizing motion and spatial relationships between parts
• Designing parts in-context
• Creating a parts list for assembly (Bill of Materials, or BOM)
• Creating a parts list for purchasing
• Automating data entry through PDM (product data management)
• Staging renderings
• Creating data for downstream applications such as animation or motion analysis
You can probably come up with a number of additional reasons for making CAD assemblies. In fact, almost as many reasons exist for making assemblies as there are people making those assemblies.
If you are trying to drive product development with a single top-level assembly, you might run into situations where the various functions of the assembly start conflicting with one another. For example, you might have an assembly where a part flexes. It is difficult or impossible to make flexible parts work effectively in SolidWorks with dynamic assembly motion. Another situation might be in-context relations where the parent and child components move relative to one another. Or maybe you need an assembly for a rendering and the assembly has to have multiple instances of in-context components, which can be tricky to manage. You get the picture. You can't always do everything with a single assembly.
It is certainly possible to have multiple assembly files for a single product. In fact, in some cases, it may be necessary. Rendering is probably one of the most common reasons for you to create a new assembly. Conflicts between external references and motion are another common reason to create a new assembly document.
Identifying types of assemblies
The average SolidWorks user thinks an assembly is a collection of parts put together with mates that position parts and may also allow motion. In this kind of assembly, you might use patterns, configurations, in-context techniques, and so on. The goal of the assembly is probably to simulate reality in the way it looks and moves.
Driving an assembly with base part and mates
This is considered “orthodox” SolidWorks assembly usage, and is the way the SolidWorks training materials describe creating assemblies. Insert a part or subassembly at the origin, which becomes fixed in place automatically, then start mating parts and subassemblies to the base component and add on from there.
This is the most frequently used assembly type in SolidWorks, but this type is also the most prone to failure, and the least likely to allow for relationships to exist between the parts. If you have been doing this kind of work already, and have made changes to the parts and watched the assembly update, you know that there are all sorts of things that can go wrong with this arrangement. Mates coming into conflict, flipping direction, or losing references are the most common errors that you might see when mating parts directly to one another in an assembly.
It is hard to imagine an assembly in real life where the parts don't depend to some extent on one another for their size or shape. So having a SolidWorks assembly where each part is modeled independently doesn't reflect real-world design intent very well, nor does it really use the advantages of parametrics and associativity that are touted so much in SolidWorks.
It is difficult to criticize an assembly modeling method that has been used for so long by so many people, but the high failure rate of mates attached to edges and faces speaks for itself. This is a problem that SolidWorks has tried to solve for many releases of the software, but the failure rate hasn't changed much, if at all. You may find that the software even tries to hide certain types of mate errors to make them easier to ignore.
The difficulty arises from the underlying methods built into the software. All of the faces and edges of parts are created using a history-based modeling system. Each feature is created in order, in a recipe for creating the final piece. The assembly, however, is generally not history-based. So mates attach to