How can I troubleshoot a problem assembly?

This article provides suggestions for opening or salvaging assemblies which refuse to open, or which crash SOLIDWORKS when opening.

Error Messages or Crashing

Working with large assemblies over a network, or using imported geometry that has not been repaired, can often lead to unstable performance. Problems can manifest as error messages, such as “SolidWorks has encountered an error and needs to close”. On other occasions, there may be no error message at all. SOLIDWORKS may shut down without giving us any clue as to why.

Fortunately, this type of problem happens rarely, and many SOLIDWORKS users will never experience these issues. For those who have, it can be very frustrating. In such situations, there are techniques that can help troubleshoot the assembly and salvage your work. This blog will explain the process.

Isolate and Simplify

Prior to taking steps to troubleshoot the assembly itself, it's best to first eliminate a few simple factors. Determine if a coworker can open the assembly. If they can, the problem may be related to your computer hardware or drivers. Outdated or inappropriate graphic card drivers often play a role in unstable SOLIDWORKS performance.

If working over a network, try simplifying the issue by eliminating the network from the equation. If possible, copy all necessary files to your local hard drive. See if the problem persists. If the assembly still proves to be problematic, and coworkers are seeing the same problem, it's time to troubleshoot further.

Large Design Review

Large Design Review is not just a beneficial way of opening and working with large assemblies. It is also a great technique to troubleshoot an assembly that won’t open. If you suspect there is a part in the assembly causing the problem, give this method a try.

When opening the assembly, select the assembly file, set the Mode to Large Design Review (see figure 1), and click Open. If you’ve never used Large Design Review before, you will see a window that describes it’s benefits. Feel free to click OK once you’re done reading. Check the option to “Don’t show again”, if you prefer.


Figure 1: Setting the Mode to Large Design Review.

When the assembly opens, only the visual information needed to display the components is loaded into memory. None of the parts are fully opened yet, and their features are not currently accessible. If you’ve gotten this far, it means there’s a good chance your assembly file is recoverable.

It is now a matter of figuring out which component is the culprit. On the Large Design Review CommandManager, look for the command for Selective Open (see figure 2) and click it.


Figure 2: Selective Open menu pick.

After clicking Selective Open, the Selective Open window will appear, as shown in figure 3. It should default to “Selected components”. Select a component you are fairly confident has no problems, either from the work area or the FeatureManager, and click the Open button on the Selective Open window.


Figure 3: Using Selective Open.

What happens next is an interesting and somewhat unique situation. An informational message appears which talks about display states and hidden components. Let’s focus on the matter of the hidden components, as that is what is important for our discussion.


Figure 4: The "Selective Open" informational message.

Normally, when a component is hidden, it remains loaded in memory. The SOLIDWORKS user can no longer see the component, but SOLIDWORKS can. Since the component is still “visible” to SOLIDWORKS, the components’ mates remain in place and any assembly motion that existed prior to hiding the component will remain. Nothing much has changed, we just can’t see the component.

When using Selective Open, the hidden components never have the chance to get loaded into memory. This is significant. As components are shown by the user, they are loaded into memory. This allows for observing exactly when the problem occurs. If a component is shown, and an error occurs, you know you’ve found the problem (or at least one of them).

A typical solution at that stage would be to attempt opening the part on its own to confirm the issue. If the component is causing a problem, it can be renamed prior to opening the assembly. SOLIDWORKS won’t be able to find the part, and hopefully the assembly opens. The problem component will be suppressed, and further action can be taken as deemed appropriate.

Troubleshooting Imported Geometry

Imported geometry in the form of standard neutral file formats, if left unrepaired, can cause odd behavior in SOLIDWORKS. An example might be a STEP file imported from a supplier, or a client who sends files which originated in another CAD program. It’s important to always check such files for errors, and repair them if possible. Figure 5 shows the Import Diagnostics command in the right mouse button menu.


Figure 5: Running Import Diagnostics.

There are options which allow for running Import Diagnostics automatically. There is also a setting named 3D Interconnect, which treats imported geometry as an external reference. These settings are outside the scope of this article. Without going into detail, please be aware it will be necessary to turn off 3D Interconnect (or break the 3DI link) to allow repaired geometry to be saved as a native SOLIDWORKS file.

After running Import Diagnostics, look for any reported errors and attempt to fix them. Faulty faces and gaps are common. Use the “Attempt to Heal All” button (see figure 6) and allow SOLIDWORKS to heal any problems that arise.


Figure 6: Attempting to heal a faulty face.

When there are only a handful of problems, SOLIDWORKS can usually automatically fix them. If there are numerous problems, the file may be beyond repair. If this is the case, finding an alternative solution may be best.

Inserting the Assembly as a Sub-assembly

If all of the components can be shown (opened) using Large Design Review, but the assembly cannot be opened normally, it may be an indicator there is still a problem with the assembly file. Once all the components have been shown, save the assembly. Try performing a Ctrl-Q to fully regenerate the assembly. If the assembly is still stable, save it again.

Start a new assembly using the same units as the original. Next, insert the problem assembly as a component. During the insertion process, you can click OK in the Insert Component PropertyManager and the assembly should drop right on the new assembly origin point. Finally, right click on your newly inserted sub-assembly component and select the Dissolve Subassembly command.

When dissolving a sub-assembly, certain assembly level features will not transfer to the top level assembly. If this is the case, the window shown in figure 7 will appear. Affected features will be listed, and that work may need to be recreated. It will be necessary to weigh the consequences, and whether the action of dissolving the sub-assembly does more harm than good.


Figure 7: Dissolving a sub-assembly.

If dissolving the sub-assembly allows for saving and then opening the new assembly normally, the problem has essentially been “filtered out”. The clean and problem free assembly can be used going forward.

The techniques discussed in this article are not solve-all solutions for every problem assembly. They are presented here to give a few more tools which may help in a problem situation. Your reseller may have additional suggestions.