- “Why is my assembly so slow to open and save?”
- “Why is my assembly so slow to work with?”
SOLIDWORKS has some great settings that can help speed up the use of large assemblies, but there are also some modeling techniques that you can use to significantly reduce the time required to open and work with assemblies. Beyond this, your physical computer hardware and networking setup may play a role in the amount of time it takes to open and save your larger assemblies.
The goal of this blog is to illustrate some of these settings and techniques to help your assemblies perform better and faster. In this blog, I will break down some of these techniques and some of the terminology of large assembly management. At the end, I will leave you with a list of my top six tools to get the best possible performance from your large assemblies.
What Is a Large Assembly?
There is often a lot of confusion regarding what constitutes a large assembly. Is it an assembly with over 500 parts? With over 1,000 parts? With 5,000 parts? Is it an assembly that is 20MB in file size? 100MB in file size? 500MB in file size?
I was once working on a SOLIDWORKS Tech Support case and a customer told me that he was working on a large assembly. I asked him, “Approximately what size is the assembly?” My goal was to determine how large the file size was and/or how many components were in the assembly.
He responded, “It’s about the size of a barn….”
The point of this story is to illustrate that there can be a lot of confusion surrounding the question of what a “large assembly” is. I like to answer the question with the following rule:
A Large Assembly is an assembly that:
- Uses most or all of your system resources
- Significantly slows down your standard workflow
Whenever you open an assembly and begin working, and your computer starts to chug(aka slow down), you are working on a large assembly. Since different computers will have different hardware, what constitutes a “large assembly” on one machine (meaning what causes the computer to slow down when working on this assembly) may work fine on another machine, meaning that on this machine, it is no longer considered a “large assembly.”
At the time of writing this article ( September 2017), most professional SOLIDWORKS workstations are equipped with a processer running at 3GHz (or faster) and 16GB of RAM (or more). So, for the sake of conformity, for this article, we will consider a “large assembly” to be any assembly that slows down a computer running this hardware. To determine the hardware on your computer, you can right-click on Computer, and choose Properties (see Figure 2).
Types of slowness
We generally break up poor performance in a large assembly into two types of slowness:
- Slow to Open or Save
- Slow to work with (rotate, zoom in and out, add mates, switch between windows)
Although there are some overlapping culprits to slow performance, there are generally different causes for the two different types of slowness, which means that you may need to fix each type of slowness by using a different approach. Let’s take a look at each cause of slow performance and examine some common approaches to making assemblies faster.
Slow to Open and Slow to Save
When an assembly is slow to open and save, you are running into an issue with loading a large amount of information from the “fixed disk” into “RAM.” The fixed disk, or hard disk drive, on your computer is where your files are stored when the program SOLIDWORKS is shut down and the computer is turned off. This fixed disk could be a local drive (stored in your laptop or tower), or the fixed disk could be a network drive. RAM, or random access memory, is the much faster temporary storage where files are loaded when we are working on them in SOLIDWORKS. When you choose “File, Open,” you are taking a file from fixed disk and loading it into RAM. The first thing you need to look at when determining why a file is slow to open or save is whether there is anything you can do with the hardware you are using.
Slow to Open/Save Tip #1—Network Location vs Local Folder
If the SOLIDWORKS files are stored on a fixed disk in a network location, it will take longer to open and save the files than it would if the files were stored on a local fixed disk (i.e., stored in your laptop or tower). The reason behind this is that you will be loading information from the fixed disk into RAM, and the information will be bottlenecked by a variety of networking factors. These bottlenecks will not exist if you are opening the files from a fixed disk that is stored directly in your laptop or tower.
To test this claim, you could run a stopwatch and open the assembly from a network location. Click FILE>OPEN and single-click on the name of the assembly. Then click the start button on your stopwatch at the same time as you press the Open button in SOLIDWORKS. Watch the status in the lower left corner in the software and wait until the assembly is fully loaded into RAM (when you are no longer seeing a Windows hourglass icon). Then click Stop on your stopwatch.
Next, utilize the command FILE>PACK AND GO and make a copy of the entire assembly (using the prefix “Test-“) in a temporary folder on your local fixed disk. Next, use the command WINDOW>CLOSE ALL to close the current assembly. Last, attempt to open the assembly and run the stopwatch test again, this time opening the assembly from the local hard drive copy.
You will undoubtedly find that the copy on your local fixed disk will open faster (often 3-4 times faster) than the version stored on the network location. Many factors can affect how long an assembly takes to open from a network location, and not all networks run at the same speeds, but this simple illustration can lead you to one of the first things you can do to open and save your assemblies faster: When you are working with large assemblies, work from a local disk rather than a network location. Your assemblies will open and save faster.
Slow to Open/Save Tip #2—HDD vs SSD
When examining the world of hard disk drives, you will find that not all hard disk drives are made to the same specifications. The specification we are most interested in during our discussion about assemblies being slow to open or slow to save is the specification for read and write time (sometimes specified as RANDOM I/O Performance).
What you will find is that a mechanical hard disk drive (HDD) will almost always have slower read/write speeds than its contemporary counterpart in the solid-state drive (SSD) field. Sometimes the SSD will be 5x to 10x faster than the current HDD. Since we are loading data from the hard drive into RAM, and saving from RAM onto the hard drive, these read/write speeds are extremely important, and we want the fastest possible read/write speeds to obtain the fastest open and save times from SOLIDWORKS.
With that in mind, my second tip for improving performance with large assemblies is to utilize a SSD instead of a mechanical hard drive to store and save your SOLIDWORKS assemblies. The faster the read/write speeds (or RANDOM IO/s) are, the faster your assemblies will load from your local hard drive into RAM. Keep in mind that many computers today are configured with two hard drives—one SSD for the operating system and programs, and another HDD for data storage. If your computer is configured like this, you should try to move your large assembly files on to the SSD before working with them. This will help you to get the fastest possible read/write times when saving and opening your assemblies.
Slow to Open/Save Tip #3—Lightweight Mode in SOLIDWORKS
So far, we have discussed some things you can do to increase the speeds in which SOLIDWORKS can access files stored on the fixed disk and load these files into RAM. During this discussion, we have established a correlation between the total dataset size and the amount of time it takes to load this dataset into RAM. So, a logical question might be: “Is there anything we can do to reduce the amount of information an assembly needs to load into RAM to help speed up the open/save processes? The answer to this question is Yes—there is a terrific option built into SOLIDWORKS known as “Load Assembly Components Lightweight,” which accomplishes this very task.
Although there are several settings that can help decrease the amount of time required to open a large assembly, the one that has the greatest impact (and is the easiest to understand) is found in TOOL>OPTIONS>SYSTEM OPTIONS>PERFORMANCE and is the checkmark for “Automatically load components lightweight” (see Figure 5). As you can see from the figure, simply checking this option and closing and reopening the same assembly on the same computer will reduce the time required to open the assembly from 1minute 10seconds down to 27seconds. You can also see that the amount of RAM required to open the same assembly on the same computer dropped from 2.718 GB to 1.479 GB, simply by checking on the option to open the assembly using lightweight components. Since the amount of data being loaded into memory has a direct impact on how long the assembly takes to open, it should make sense that an assembly requiring less RAM would take less time to load.
So, what is lightweight? When discussing SOLIDWORKS large assembly performance with my students, I often will say,“There is no one single magic option to make assemblies perform faster. Instead, it could be a combination of hardware, settings and modeling techniques. That being said, the option to load components lightweight is the closest we get to this magic option to make assemblies perform faster.”
The reason that this option is so powerful lies in what lightweight actually does. The SOLIDWORKS help file says: “When a component is lightweight, only a subset of its model data is loaded in memory. The remaining model data is loaded on an as-needed basis.” Essentially, this means that a lightweight component in an assembly has all of its 3D geometry loaded into memory, but the feature tree for these components is not loaded into RAM (until it is required). This means that you can still work with this lightweight component in an assembly to add mates, create section views, take measurements, create exploded views and perform a variety of other assembly-level adjustments to the component. However, since the feature tree of the model is not loaded into memory, far less RAM is required per component.
Therefore, utilizing the option for lightweight components is my third tip for getting better performance when working with your large assemblies. Less RAM will be required per component, which means that less RAM will be required for the entire assembly, so your assemblies will open and save faster when the components are set to lightweight.
Slow to Work with (rotate, zoom in and out, add mates, switch between windows)
When working with a large assembly that is slow to rotate, zoom in and out, add mates or switch between windows, we can often narrow the problem down to one of two issues: Either the image quality is dialed up too high on these components, or the level of detail included in these components is too fine. Either way, both issues produce the same result: Too many polygons being rendered at the assembly level will result in an assembly that is very slow to work with.
Tip #4—How to Determine Which Components Are the Biggest Offenders
One of the best tools available in SOLIDWORKS for troubleshooting a large assembly is the “Assembly Visualization” tool found on the “Evaluate” toolbar.
After you launch this tool, SOLIDWORKS will sort your assembly based on a given criteria. The default criteria is mass, but this isn’t very helpful in determining which components are causing the assembly to perform poorly.
As you can see in Figure 7, by clicking on the arrow next to Mass, you can choose the option for More. This will give you the ability to sort your assembly by a variety of criteria. In SOLIDWORKS 2017, the most useful criteria for determining which components are causing an assembly to run poorly are “SW-Open Time,” “SW-Rebuild Time” and “Graphics-Triangles.” You will often see corresponding results; for example, a part that takes a long time to rebuild will also take a long time to open, and will have a large number of graphics triangles. Each of these criteria will indicate that the part file is contributing to slow assembly performance. So, the fourth tip of this blog is to use the Assembly Visualization tool to sort by “SW-Open Time,” “SW-Rebuild Time” and “Graphics-Triangles” in order to identify the specific components in your assembly that are requiring an unusually high demand on your system resources.
In Figure 8, we have sorted our assembly by Graphics-Triangles and determined that the first and second part in our assembly are yielding a large number of polygons (or Graphics-Triangles), which could be slowing down our assembly performance. This is unusual since the first part is a simple cover panel used in three places, and the second part is a simple tire for a wheel on our assembly, which is used in four places.
Tip #5—Using Too High of an Image Quality Can Slow Down Your Assemblies
We start with the first part, the simple cover panel. After opening this part, we confirm that the geometry is fairly simple, so we take a look at the Image Quality of this part by going into TOOLS>OPTIONS>DOCUMENT PROPERTIES.
As you can see in Figure 9, the image quality is set far too high. This will lead to very poor performance, particularly when this component is used in multiple locations in an assembly. In this instance, the component is used in three locations, but imagine if this was a piece of hardware that was used in 40 instances in the assembly. The results on our assembly performance would be quite significant. Because of this, our fifth tip for working with large assemblies is to keep your image quality set to a reasonable value.
I find that having the Image Quality for each part set to about one-third of the way on the bar, as shown in Figure 10, yields a good balance between the parts looking good and the assembly yielding good performance.
Tip #6—Create and Use a Simplified Configuration for Parts With Too Much Detail
For our final tip, we will open the second part that Assembly Visualization indicated was a potential problem. I was surprised that this part was flagged as a “problem part” as this part should have been a simple tire used in four places in our assembly. What I found was that this model had been created with far too much detail to be used in a large assembly. We have saved this tip for last, but it is certainly one of the biggest contributing factors to poor performance in a large assembly that I have seen (over my career in tech support).
When we open the tire into its own window, we see what is shown in Figure 11. As you can see, there is far too much detail in this tire. We can see all of the detail of the tire treading and the extruded text around the sidewall of the tire. This information may be used to create the mold of the part file for the tire, but it is not necessary to include this detail at the top-level assembly of our project. Not only is this level of detail not necessary, but it can also be detrimental to the performance of the top-level assembly.
So, my final (and possibly most important) tip for working with large assemblies is that you should create a simplified configuration of parts that have a lot of detail to be used at the top-level assembly.
As you can see in Figure 12, a simplified configuration of this tire has been created without the tire treads and the extruded text around the tire’s sidewall.
Keep in mind that we are using this tire in four places, so the level of detail in the detailed configuration will be multiplied by the number of instances. This is especially important (and common) when working with downloaded hardware (bolts and screws), which are created with helical threads. Helical threads are graphically generated with an exorbitant number of polygons and graphical triangles, which will significantly slow down your assembly performance (multiplied by however many bolts you have in your assembly). Generally speaking, the most common culprits of over-detailing are:
- Helical threads (or springs)
- Extruded text
- Excessive filleting
- Overly detailed features (like the thread pattern in the tire, knurling, ribbing, etc.)
Models that have these types of features should have a simplified configuration generated, and as your sixth and final tip, this simplified configuration should be used in your top-level large assembly to drastically cut down on the total number of polygons, which will speed up processes such as rotating the model, switching between windows, and creating a drawing of the top-level assembly.
I like to follow this basic rule: If I cannot see the feature when zoomed to fit in the top-level assembly, then that feature can be suppressed in the simplified configuration of the part.
My Top 6Tricks to Speed up Your Large Assemblies
In this article, we discussed a lot of tips and tricks for working with a large assembly. Here are my top six tips and tricks for speeding up a large assembly:
- Work from a local disk rather than a network location
- Work from a solid-state hard drive (or similar) rather than a mechanical spinning hard drive
- Utilize the option for lightweight components in an assembly
- Use the Assembly Visualization tool to find components that are slowing down your assembly
- Make sure the image quality for your parts is not set too high
- Make a simplified configuration of your parts that have a large number of small details
Remember also to use the stopwatch trick we discussed. Open your “slow” running assembly in its current state and get a baseline time for how long it takes to open, or switch windows. Then apply some of the tips above and time your assembly again. I am confident that by the time you get through tip #6, you will be saving a significant amount of time when it comes to working with your larger assemblies. Enjoy, and as always, please post your comments and questions below.
About the Author
Tobias Richard is a SOLIDWORKS elite applications engineer from Philadelphia, Pa. He has been working with SOLIDWORKS software since 1998 and has been providing training, technical support and tips and tricks since 2001.