BACKGROUND
Before I begin, I should say that we have a lot of SW data, dating back to 10+years ago. At that time I was not in this company and probably a lot happened back then so I cannot really blame the persons that were in charge of 3D. Hardware was slower, SW was a mess and they started to change things like cutlist properties, threads and other stuff that broke the backwards compatibility of data a lot of times during the years.
We made the mistake to wait until few years ago to overwrite our old templates from 2011, when I remade them all from scratch. Old templates were, capability wise, at least two big file structure updates behind in the way SW handles its files and this is likely the reason we had all sort of odd balls (like bodies changing materials on their own, properties linking to the old file the model was based upon, cutlists exploding), on top of very slow drawings.
Performance evaluation tool is very handful. Use it!
A rough comparison of my data before and after the fix
SAMPLE DATA
~500 bodies weldment, 100~200 featuresThe geometry after the fix is 100% identical to the one before it.
Also 2D drawings were overlapped to check and almost nothing noticeable was missing.
BEFORE AFTER File Size (SLDPRT) 40 MB 8.8 MB Rebuild time (SLDPRT) 3.3 s 1.7 s File Size (SLDDRW) 24 MB 8 MB File opening time (SLDDRW) 2 min 40 s 42 s
I fixed the 3D features to speed up the rebuild time and I was able to halve it. Then I disabled the detailing mode in drafting, but it was not enough: at that point I looked at the status bar during drawing loading phase and I noticed some view was rebuilding with a file different name: I looked in the drawing tree,feature tree, all the properties and the file references and that was nowhere to be found.
After some search in our PDM system, I tracked the data the current file was derived from… and the one before it, and so on up to something like 10 file generations ago and the mysterious file name came out!
In the end there was a view in the drawing, a broken section in a big front view that was referencing a old file name and it seems SW was still looking for it during the loading phase and during all the rebuilds…
It was invisible in the tree, but clicking inside that broken section view on some face the linked feature was named after a different filename. All I had to do was to remake the broken section (I copied its sketch before deleting the section so it took little to no effort to remake it with the help of a screenshot to match the exact position)
SOME BACKGROUND AND GENERAL HINTS
I have made some funny experiments in the past, and tampered with SW data quite a bit. I have some tools I made by myself to apply and reset settings in SW data. (cannot share since those are workplace property, sorry)
Basically I came to the following conclusions:
- a faster drawing needs a faster rebuild time in the 3D as a basic premise. Every feature that requires more than 0.1s to rebuild must be scrutinized. In theory we should aim at a rebuild time as close (low) as possible to “number of features in the model x 0.01s” (back of the envelope math)
- geometry patterns wherever possible (+disabling face properties option ON as a bonus)
- proper use of “body pattern” and “feature pattern” (limited to holes and cuts only, no solid features like chamfers, extrusions allowed). If you want to pattern a complex geometry disable the boolean merge and use pattern+booleans. (faster and likely one of the few modelling calculations that can run in parallel on multiple CPU cores)
- splitting a single body pattern into multiple patterns sometimes may help to reduce drastically the rebuild time. (the sum of rebuild times is sometimes lower than a single, fat, pattern)
- in principle keep your files up to date, with the newest cosmetic threads and weldment properties, but check if the update breaks something. (I had a part doubling the rebuild time after applying the cosmetic threads update and it cannot be undone, so make some backup before trying)
- check inside the 3D custom properties, the configuration properties, cutlists and the external references if the file references something that should not be there. Usually the file properties should reference the current file only and it is a best practice of mine to avoid external references at all.
- check every single view and apply high quality instead of the old (slower and bug prone) draft quality. Disable the surface view from all the sections. Keep the cosmetic threads on draft for views without them since it causes a graphic glitch showing thread circles that was supposed to be hid behind other geometry. I made a macro that cycle all the drawings view in every sheet to batch apply these settings.
- sometimes a section gets corrupted and it cause a long calculation time. The “less destructive” way to rebuild a section view I found is to temporary reverse it (flip the arrows on the section line) and revert it back. The dimensions on the section view might hate it, but sometimes it is better than delete the view and remake it, worth a try.
- DISABLE detailing mode: it causes a huge overhead in the drawing most of the time make the size so huge it takes forever to save and nobody use it. In the sample data I analyzed it made the file 3x the actual size
- double click every view and check for dangling or broken sketch relations: delete or fix them.
- Broken sections are heavy, avoid them if possible.
- for multibody parts, instead of hiding dozen of bodies in a view use the “body selection” option to generate the view, with a fewer bodies. BE AWARE to not abuse “body selection” as the derived views are not updated when the selected bodies are changed and there is an open glitch with details that go blank for no reason. Body selection cannot be undone once used!
- Check and reduce the tessellation resolution and the line overlap check on drawings. From documents properties. At least make sure it matches the one in your company templates.
RANDOM SUGGESTIONS
Use the drawing compare tool to check if you broke something while trying to fix your drawings: it does not require a special license! It makes a BITMAP comparison of two drawings and it gives you the BEFORE / AFTER and ADDED/REMOVED comparison with colors. Even a pixel shift on minor things like the section letters does not go unnoticed.
It is a very cool tool.
To compare 3D I make a temporary assy and overlap the geometries before and after the fix. Clicking one of the components makes the highlight very easy to compare. It is not a proper calculation, but we used a similar method in Unigraphics and it was reliable at 0.01mm level to catch the differences: select one body and wireframe with a unselected color is where the difference lies. Cheap and reliable.
