Often times, with larger and more complicated assemblies especially, instead of inserting all components into the Top-Level Assembly, CAD designers will instead make use of multiple sub-assemblies to keep their feature tree more organized.
For assemblies with movable components, individual components (as long as they are underdefined and not fully mated in place) can swivel or move according to whichever degree of freedom has not yet been constrained by existing mates. (For more information on how mates constrain a component’s degrees of freedom, see this article here: Assembly Mates And Degrees Of Freedom)
Below we can see an example of how a flexible assembly’s components can swivel and move independently of the assembly as whole:
We can see that this is only possible because the swiveling component is under defined within the feature tree:
When inserting “Flexible” assemblies into a top level assembly however, Solidworks will by default consider the inserted sub-assembly as one single entity. In other words, by default all movable and underdefined components in the inserted sub-assembly will NOT move individually when a user clicks and drags on the component with his mouse, but will instead attempt to move the ENTIRE sub-assembly as a whole.
We can see that in the top level assembly, when the sub-assembly is not allowed to move as a whole, we receive an error message saying the component that should be movable is now fixed and cannot be moved, even though the sub-component is shown to still be underdefined within the context of the sub-assembly. This is because when we attempt to move the component individually, Solidworks believes that we are actually trying to move the sub-assembly that the component is attached to, not the individual sub-component.
In order to allow your sub-components to move independently of their individual sub-assembly, we must manually inform Solidworks that this sub-assembly is flexible and not rigid. To do this, we need to edit the sub-assembly’s component properties by following these steps:
- Right Click on the sub-assembly’s name in the top level assembly’s Feature Tree
- Click on Component Properties
3. Change the “Solve As” option from “Rigid” to “Flexible”
After doing this, we can see that the sub-component that was underdefined in our sub-assembly is now able to be moved to different positions as desired:
When changing the sub-assembly's solve status, the icon for the sub-assembly should also change:
Another way to make your sub-assemblies flexible is simply by right clicking (or single left clicking on the name of the sub-assembly) and clicking on the “Flexible Assembly” icon in the flyout menu:
If you are still having issues with your sub-components moving in your top level assembly, feel free to contact Hawk Ridge Systems Technical Support at 877.266.4469 (US) or 866.587.6803 (Canada) or email us at email@example.com.