The Ultimate Guide to Working with STEP Files, Part 5B: Simplification Techniques for Complex Imported Geometry Imported as Multibody Parts
In the Part 5A of the Ultimate Guide to Working with STEP Files series, we covered the first two major causes of slowdown when working with multibody parts containing imported geometry (Table 1):
- Large number of faces that have appearances applied at face-level (the number of faces is important, not the number of appearances).
- Large number of bodies, especially surface bodies.
In the present article, we are presenting one more factor that impacts performance: unnecessary geometrical and topological complexity.
Table 1. Factors that contribute to system slow down.
As shown in Table 1, for each factor we cover:
- Diagnostic tools and techniques.
- Optimization techniques.
- Return on investment (time spent fixing the problem versus the initial performance impact).
A Dell Precision 5560 with an Intel Core i7-11850H CPU, 64 GB RAM and a NVME SSD was used to extract results.
3. Complex Geometry and/or Topology
A high degree of geometry complexity can impact performance in multiple areas:
- File size
- Part opening time (when the part opens in its own window)
- Assembly loading time (when the part is used as a component of an assembly)
- Graphics generation time
- Drawing view update time
- Slow viewport manipulation (zoom, pan, rotate)
To identify if a part is responsible for any of these slow-downs, different diagnostic tools are available.
|File Size||File Size – File Explorer Column|
|Part Opening Time||SW Open Time – File Explorer Column|
|Assembly Loading Time||Open Time – Performance Evaluation|
SW Open Time – Assembly Visualization
|Graphics Generation Time||Assembly Rebuild Report – Performance Evaluation|
|Drawing Update Time||Performance Evaluation|
|Viewport Manipulation Lag||OpenGL Print Statistics – Registry key|
There are many ways to get the file size reported, but the old technique of using the File Size from the Windows File Explorer is still the best.
Part Opening Time
Sometimes we need to open the part file in its own window. The opening time is recorded as a file property when the file is saved. In order to find out how long it took for the file to open, you need to save it.
The open time can be found by hovering with the mouse over the part file in File Explorer and recording the Last Open Time value from the pop-up.
Alternatively, a new column can be added to the File Explorer, listing the open time for all files in the folder. To add this column, follow these steps:
Right click on any column and select More.
Check the SW Open Time box and click OK.
The advantage of this tool is that the files can be sorted by the open time values.
Assembly Open Time
To gauge how much a part takes to load as a component of an assembly, we can use one of these two tools:
- Performance Evaluation
- Assembly Visualization
Performance Evaluation – Details of the Open Document File
The list contains all files that take longer than 0.1 second to load. Notice the Open File buttons, which allows for fast examination of the major culprits.
The Show These Files button gives you access to the whole list.
From here you can open one or more documents simultaneously, save, copy or print the list.
Assembly Visualization – SW Open Time
Access the Assembly Visualization tool from the Evaluation tab in CommandManager or from the Tools menu.
By default, the three columns listed would be File Name, Quantity and Mass. You can change the reported value in the third column or add a new column by selecting the right arrow (Figure 9).
Let’s replace the Mass values with SW-Open Time. Click More…
From the Select another property dropdown, select SW-Open Time.
The result is shown in Figure 12. Notice that in order to sort the part files based on this criterion, you need to select the column’s header.
Both rollback bars from the top and bottom can be used for isolating components in the graphics area, for further examination.
Graphics Generation Time
The impact of complex geometry on graphics computation can be computed by inserting the part as one component in a dummy assembly and then using the Assembly Rebuild report from inside the Performance Evaluation tool to read the Generation Graphics value.
For a detailed guide in the use of Performance Evaluation you can read this article: Powerful Time Saver: The Performance Evaluation Tool.
For a detailed guide in the use of Assembly Visualization you can read this article: The X-Ray Machine for SOLIDWORKS Assemblies.
Drawing Update Time
Create a dummy drawing of the part, containing all the drawing views that you usually use in an assembly drawing containing this part as a component.
For example, for the part used to extract the data from Figure 14, a drawing containing two model views, two projected views and a section view, takes 7.4 second to update.
When used as components of large assemblies, parts imported from STEP files could have a lot of unnecessary details. For example, at the top-level assembly only the exterior of the part shown in Figure 16 is required. The inner faces will never be visible at that level.
In the following case studies, the inner faces we attempt to remove are the 128 faces shown in red in Figure 17.
Figure 17. Faces to be removed are shown in red.
Should the optimization operation be successful, we would eliminate about 13,500 graphics triangles (Figure 18).
Figure 18. Care to count the graphics-triangles?
Your definition of an inner face may differ from the SOLIDWORKS’ definition. As long as a face has contact to the “outside air” it will most likely be identified by SOLIDWORKS as an outer (or external) face. That is why your input is required to perform quick simplification processes on such parts.
We will attempt to remove the inner faces of this pump using several tools and techniques:
- Surface modeling and direct editing tools.
- Defeature simplify.
- The Intersect tool.
3.1. Surface Modeling and Direct Editing Tools
In this case study, we will manually select the inner faces and delete them, using the Delete and Patch option of the Delete Face command.
Easy, right? Unfortunately, there are 128 faces to select and none of the automatic selection tools such as Select Tangent Faces would identify all of them. Holding the CTRL key and selecting them one by one would be tedious. That is why the technique we will cover next is so valuable. It works in cases where you have tens of thousands of inner faces. We will simply temporarily separate the inner faces into their own body, then isolate and select them in bulk in order to automatically create a selection set.
Step 1 (optional)
To make the selection easier, show two viewports on the screen.
Step 2 (optional)
Unlink the two viewports, so they can be manipulated independently.
Step 3 (optional)
Reorient the viewports to show the connections between the outer and inner faces.
Using the Delete Face command, delete the connecting faces.
At this point you will have multiple surface bodies, one of which contains all inner faces.
Using the Delete/Keep Bodies command, keep only the surface body containing the inner faces. Alternatively, just Isolate the same body.
Figure 23. Using Delete/Keep Bodies command.
Figure 24. Using Isolate.
The goal is to have only the faces we need to select visible.
Press F5 to reveal the Entities Filter toolbar and activate the Face Filter. Alternatively, press X on your keyboard (the ON/OFF switch for the Face Filter).
Press CTRL + A. Because the Face Filter is active, SOLIDWORKS selects all visible faces in the model.
Right Click on the empty area and using the Selection Tools submenu of the right mouse button menu, create a new selection set.
Step 10 (optional)
Rename the new selection set Inner Faces.
Delete the DeleteFace1 feature in the FeatureManager tree and all its children. The FaceID will not be changed for the faces collected in the selection set.
Select the Inner Faces selection set, and use the Delete Face command with the Delete and Patch option.
The result is nothing short of miraculous. The inner faces are gone, and their neighbors have regenerated themselves.
3.2. Case Study: Using Intersect to Fill Complex Cavities
The Intersect tool is ideal for filling cavities, as long as they are completely capped with faces of solid or surface bodies or planes.
When the openings are planar, the best tool for capping them is Planar Surface. We love it because it can use multiple contours in various locations of the part. Plus, it does not require sketches.
Start the Planar Surface command and select the edges of all openings. Do not hesitate to use the Magnifying Glass “G”-shortcutto ensure you select the correct ones.
Just in case you get an error like the one shown below in Figure 33, please report it to your VAR as a bug and complete the planar surfaces using multiple features (Figure 34).
Figure 33. There is nothing wrong with the selections. Shown here is a bug that can be easily circumvented by creating an extra Planar Surface feature to cap the opening.
Figure 34. Sometimes we need an extra step…
At this point, all the openings have been closed. It is worth noting that planes are excellent for closing multiple planar openings (Figure 35).
Start the Intersect command, select all solid and surface bodies existing in the part, choose Create both as the option and select the Intersect button.
Make sure the Merge result box is checked and complete the command. Optionally, check the Consume surfaces box in order to close the openings.
And we are done!
3.3. Case Study: Using Defeature Simplify in Parts
In assemblies, the Defeature tool has two flavors:
- Simplify – used for assemblies with a small number of components, where the main goal is removing small faces and cavities.
- Silhouette – used for large assemblies, where the main goal is drastically simplifying geometry complexity.
As you saw in the previous articles, the Defeature Silhouette tool is superb for quickly simplifying complex assemblies. Unfortunately, as of SOLIDWORKS 2022, we do not have access to this tool inside the part environment. However, a similar command called Defeature Simplify is available but in a stripped-down version of the same tool found inside an assembly.
As we will see, this tool is missing one small detail that makes using it very cumbersome.
From the Tools menu, select the Defeature tool. Alternatively, use the Command Search.
Figure 40. Using the Shortcut toolbar to access the command search.
The first screen lets you select faces for preservation. Notice that the box is called Features to Keep, but that is misleading since we have only one Imported feature and we want to modify it by deleting the inner faces.
In this case, we would like to preserve all mounting holes. All of them are under 10 mm, so let’s use this option to select all holes between 0 and 10 mm, as shown in Figure 41.
If needed, other small faces could be selected for preservation.
Click Next (right arrow).
SOLIDWORKS splits the screen and shows on the right viewport a preview of how the defeatured part will look like. Looks like it could not close all the openings.
You could try to use the rudimentary sectioning tool built inside the command, but you will discover there is no triad to let you move to the section plane. To offset the section plane, you must input dimensions and pray that the moved plane intersects the part—often an exercise in frustration, as shown below.
The Missing 5% of the Defeature Simplify Tool
Step 5 (wishful thinking)
Remove other items.
The end is in sight, but there is a chasm in the way—and we are denied a bridge across it.
We have an option to select other faces for removal. Let’s try to select all the faces tangential to the one we will select.
You would expect all tangent faces to populate the Items to Remove box. Instead, you get more options—for removing faces, features or bodies. Select the face icon from Figure 45, and watch as everything goes wrong.
When hovering over the face icon, the caption reads Select Body.
If you click on the icon, it is only the last face in the tangency chain that gets selected.
Therefore, these faces cannot be automatically selected. Even if we try to use a selection set, the target pop-up from Figure 45 makes sure only one face from the selection set is retained.
For this specific case study, Defeature Simplify would work well if its workflow was slightly corrected. When multiple faces are selected, the target toolbar should evaluate all of them!
3.4. Case Study: Using Defeature Silhouette in Multibody Parts
The volume pump from the previous case studies will not work well with the Silhouette option of the Defeature tool, because we want to retain the complex outer faces.
Instead, we will use the Sectional Valve used in the previous articles, but this time imported as a multibody part.
Figure 47. We do not need 500 bodies for a simple space claim usage.
As we stated earlier, Defeature Silhouette is available only in the assembly environment—so, in order to use it, we need to insert our part in a dummy assembly.
Insert the part into an empty assembly. A quick way to do that is using the Make Assembly from Part option.
Start the Defeature tool.
Select the Simplify option.
From here, we will repeat the steps used in the previous articles, but instead of using the components selection box, we will use the bodies selection box. The following screenshots show various options for simplifying the bodies we want to retain for the space claim.
Use the option Save as a new document and select OK.
After the new part file is created (right) the dummy assembly can be discarded.
To further optimize the part, it is worth roundtripping it through Parasolid to eliminate intersect, delete face and defeatured features.
With the continual enhancements in hardware and software, SOLIDWORKS can handle many parts with complex geometry with little impact on performance. But with enough parts, assembly or drawing performance will be affected, and therefore your productivity will take a hit. Different diagnostic tools can be used to pinpoint the parts that are affecting performance.
We covered multiple methods for simplifying complex geometry. These methods can be applied successively until the user regains performance.