SolidWorks 2011 Assemblies Bible - Matt Lombard [94]
Circular references in assemblies are a bigger problem than most people realize. In fact, most people do not realize that circular references are a problem, or, for that matter, that they even exist.
A circular reference takes the form of “Part A references Part B, which references Part A.” It creates a circular loop that really disrupts assembly rebuild times. Part feature design trees are not susceptible to this sort of looping because the part FeatureManager operates in a linear fashion (at least when it comes to applying relations between sketches or features).
The Assembly FeatureManager is solved in this order, or an order that is very similar:
1. Solve reference geometry and sketches that are listed before parts in order, at the top of the design tree.
2. Rebuild individual parts as necessary.
3. Solve the mates and locate the parts.
4. Solve in-context features in parts.
5. Solve reference geometry and sketches listed after the mates.
6. Solve assembly features and component patterns.
7. Loop to Step 3 to solve mates that are connected to anything that was solved after the first round on the mates.
8. Continue to loop until complete.
As you can see, even if you do not have a reference such as “Part A references Part B, which references Part A,” it is still possible to get a highly convoluted, if not entirely circular, loop. Many users with smaller assemblies in the hundreds of parts complain about very poor performance.
Using skeletons and layouts
When you are making in-context references, a technique that can help you avoid circular references is to always create references to parts that are higher in the design tree. You can expand on this idea until a single entity is at the top of the design tree, to which all in-context references are made. This could take the form of a layout sketch, or a skeleton. These concepts are discussed in Chapters 6 and 11. The Layout feature, which is different from the layout sketch, is discussed later in this chapter as an additional in-context tool.
Remember that the layout sketch consists of a single or even multiple sketches that control the overall layout of the assembly, as well as all the relationships between parts. When you refer all the relations to a single entity that does not change with part configurations, or lose or gain filleted edges, the intra-part parametrics become much stronger and more stable.
When you are building a mold for plastic injection molding, a single sketch can control the size and position of the plates, pins, and so on. If all the 3D parts are mated to the 2D sketch, or use the 2D sketch by converted entities, then the parts will move with the sketch. This same technique is important and useful for any type of die or punch design, along with many other types of design.
Using in-context in libraries
Library parts should never contain in-context references, especially if the in-context references are out of context. Small library assemblies may have in-context references between the parts, but a single part should not have features created in-context. External references may be unavoidable in the form of mirrored or inserted parts, but in-context references are completely avoidable.
Removing relations
The correct way to remove in-context sketch relations is by using the Display/Delete Relations tool. You can sort the relations by selecting the Defined in Context option, as shown in Figure 10.22.
FIGURE 10.22
Sorting sketch relations by type
If you are considering using the Break Relations tool, then you should either reconsider and use Lock Relations instead or simply remove all the in-context relations altogether.
Other types of in-context references are not as easy to remove as sketch relations are. When you see the External Reference symbol on a sketch, it could be the sketch relations or it could be the sketch plane that was in-context. In order to remove the reference from an in-context sketch plane, you must redefine the plane locally in the part.
You should also not forget end conditions such as Up