Similar types of relationships can be defined on an assembly level as on a part level. Most common may be coincidence, distance, angle, parallel and perpendicular. There also may be special assembly relationships such as gear or cam.
Again I am using CoCreate Modeling just because that is what I know the best. I am sure some of the other history-free modeling systems are capable of some of this functionality as well. The first example I will show you is of a fishing reel. A fishing reel has some reasonable mechanisms in it. While you are reeling in the line the head is spinning, and the spool is moving in and out to keep the winding on the spool even.
In this case you can see that I have several coincident relations and a gear relation. The gear relationship is used to represent the ring and pinion gear used in the reel. The rigid relations keep the subassemblies constrained as units. It took maybe 15 to 20 minutes to setup the necessary relationships for the fishing reel.
Once relationships have been defined, you can use the added intelligence to analyze motion, functions and identify interferences. In this case an animation of the solution was also captured with rendering, although my rendering is not too good. I took the cover plate off and put a mirror on the side in hopes that you can see both sides. Here is another video without the housing.
As with part relations, CoCreate Modeling allows you to have multiple relation sets on the assembly level as well. In this case you could have one set to simulate the assembly process and one set to simulate functionality. Mathematical equations are also allowed within the solution set. The equations can also include logical expressions such as if, then, else, and mathematical expressions such as equal, not equal, less than, less than or equal and others.
Here is another simple example. This one uses both a cam relationship and several gear relationships. This is the eject mechanism for a CD drive in a laptop.
Assembly relationships can be used for several purposes. They can help keep mating parts in the correct position as other parts are moved or modified. And of course they can also be used to represent mechanisms or perhaps the assembly process. Really no different than what you can do in a history-based system. The only difference is that with a history-free modeling system, the relationships can be added any time during or after the design process, and they are solved synchronously. It also seems to be a bit more intuitive and forgiving when you don’t have to be concerned with order.
I have often heard people make the mistake of assuming that by using history-free modeling you are giving up the ability to capture design intent. So I hope I have shown with these articles and simple examples that design intent can be fully captured with history-free modeling. I would even argue that it is much easier and more intuitive in a history-free environment. You certainly cannot capture how the model was created – but since when did the model creation process align with the design intent?