Solidworks 2018 File Corruption
Machine: Lenovo Thinkpad P71 Signature Ed., i7-7820HQ @ 2.9GHz, Win10 Pro, 64GB RAM, NVIDIA P4000 8GB. Solidworks Installed: 2018 SP1
Older Machine where I did my SW2017 SP5? work. HP ZBook, NVIDIA K2100M 2GB, 24 GB RAM
While working on a large project I started to see files becoming corrupted - unable to be opened at all. The accompanying error message was:
“An error was encountered while trying to open your file. Contact Technical Support for a possible solution.”
All corrupt files reported to be exactly 8 bytes according to Windows Explorer properties and had lost their nice preview picture. File names were also became prefixed with ~$ This occurred with parts and assemblies alike. For example: “ ~$stuffed-table-bearing-factory.SLDASM “ (This could just as easily be a SLDPRT)
So far, my investigation has found this consistently and reproducibly happens when saving SW2017 assemblies in SW2018 creating “version hybrid assemblies;” consisting of both SW2017 and SW2018 parts and subassemblies. Maybe it’s just the newly saved and thus converted SW2018 top-level assembly that is of SW 2018 species with all children entities SW2017, but the subsequent children subassemblies and parts will also be proactively corrupted by this file-save action.
I found a partial workaround - If I am fortunate enough to remember to do this when loading an uncorrupted SW 2017 assembly. It is a tedious nested process: OPEN the assembly
FOR EACH PART, simply open, save, and close (OSC) – ONLY IF THEY ARE PARTS. Nothing else. Don’t “save as.” Do this to ALL parts. IMPORTANT: “ALL” means, for example, if you have six identical fasteners – EACH must be opened, saved, closed (OSC’ed). This makes them 2018 parts. One missed entity will defeat the effort altogether and that assembly will likely get corrupted.
FOR EACH ASSEMBLY within that assembly, ONLY OPEN IT – put it aside, it is uncorrupted – IT IS YOUR NEXT PROJECT and you will follow the same process.
DON’T SAVE THE ASSEMBLY YET.
FINALLY, Only when an assembly (which may be nested within a parent assembly) contains ONLY PARTS, open, save, close all. Once EVERY part (unique and duplicate) of an assembly WITH NO SUBASSEMBLIES, have been OSC’ed. Save that assembly. Save – no save as – consider it a part. Close that assembly so you don’t get confused.
Now you can move up and continue with other child assemblies or the parent assembly. You see, THIS IS NESTED and no assemblies with sub-assemblies should ever be saved until those sub-assemblies have been dealt with. Finally, as you’ve OSC’ed the lowest level child parts within child sub-assemblies and the sub-assemblies themselves, you can save the next level assembly. When all subassemblies of the parent assembly have been processed and all parts (unique and duplicate) have been OSC’ed. ONLY NOW can you save the original assembly you were preventing from being corrupted. Simply save it. Again, no save as.
After this, you will notice you have two copies of all of your sub-assemblies and parts; one adorned with a ~$ prefix indicated corruption (maybe perinatally – time will tell) and the original. Reopen the top level assembly to verify you have a pure SW2018 assembly. If this opens, rebuild it and save it. If this opens, it also means everything the assembly tree in including sub-assemblies are now SW2018 and hopefully robust enough you can continue your project with confidence.
I see SW 2018 issues with other repositories (ex. GrabCAD). I don’t blame GrabCAD, they have been open, are working on it and it will require help from Solidworks Developers. I feel for companies that are in this predicament. A lot of time will be lost. I don’t know if these corrupted files are forever lost but reading 8 bytes in the properties section of Windows Explorer has me reaching for my TUMS.
This is just my experience working on a large project. I’d be interested in hearing your experiences.