Note: an updated version of this post can be found here.
Virtual parts are awesome. They exist, but they are not actual files. They improve your designing speed by skipping some of administrative tasks, but they are tricky. They might not get saved properly and changes might disappear. Crashes might cost you more than the usual amount.
What are those magical parts?
Virtual parts are parts that you can quickly add, edit and delete without much hassle. They don’t require you to come up with a name for them, they are quite content with their assigned name Part1^assembly12.
Virtual parts can only be used in assemblies. You create a new one by selecting Insert > Component > New Part or by clicking these buttons in the Command Manager:
SolidWorks will now prompt you for a reference plane. The plane you select will coincide with the Front Plane of the new part. I want the front plane of my assembly to represent the frontal view of the machine that I am designing, so I prefer to keep the front planes of all of my parts parallel.
After the selection of the front plane location, it will go into Edit Component mode and it will start a new sketch on the Front Plane.
Where are they stored?
The current version of your virtual part is saved in a temporary folder somewhere on your pc. Your design is only saved when the parent assembly of the part is saved. It will also be closed when you close the assembly.
That is because virtual parts are saved inside the assembly in which they are created. When you save the assembly, it will also save all of its virtual parts internally and the files in the temporary folder are deleted. You can check the references for a part (File > Find References) and it will show <Internal to the assembly>.
The name of virtual parts can be edited in the tree by selecting the part and pressing F2 or by slowly double clicking the part name. As long as they are virtual, the suffix of a power sign (^) and the assembly name will appear in the part name.
My very first post on this blog was about InPlace mates. These are special mates for virtual parts and they appear in some situations. There are two options for the behavior of mates:
- You have selected the option No External References in the Sketch toolbar before creating the new virtual part. At first a fixed mate (f) will appear before the new part’s name, but it disappears after you exit the first sketch. No mates will be added to the part.
- You have not selected the option No External References before creating the virtual part. An InPlace mate will automatically be added and this will lock your part’s position in the assembly. You cannot edit this mate, you can only delete it (and I advise you to do just that).
When you should use virtual parts
Virtual parts are perfect in the concept phase. You can create hundreds of parts, and I’m sure 95 of them won’t make it into the final design. Using virtual parts instead of real parts will relieve you of having to save all parts using an unique file name (or a number if you’re doing things properly). You won’t clog up your file system or PDM system with files that will never be used.
Models of moving purchase parts can also benefit greatly from virtual parts. You only need to save one assembly file for a complete pneumatic actuator that consists of multiple parts. Virtual parts plus a few mates is all that it takes.
When you should avoid using them
A few caveats are required though. Product Data Management (PDM) systems are usually unable to see individual virtual parts, they just see the assembly. That means the parts might not appear on your bill of materials, and they are invisible when you use PDM functions like finding references.
You are also not allowed to make drawings of virtual parts, you have to save them as an actual file first. Which makes sense, since you should only use them in the first phases of the design process or for moving standard parts.
You can save a virtual part when you have it opened, but this doesn’t actually do anything. Only when you save the assembly is when the parts will get saved (I just checked to make sure). This doesn’t make a lot of sense and I’ve seen it cause a lot of frustration. A SolidWorks crash can destroy a lot of your work if the assembly wasn’t regularly saved.
When a standard part (that is a part with a file name) is added to an assembly, you can turn in into a virtual part by right clicking it (in the tree or in the modeling area) and selecting Make Virtual.
Going the opposite route is something you have to do for all of remaining parts eventually. You can do this by right clicking the part and selecting Save Part(in External File).
Going truly virtual
While finishing up, allow me to make a small sidestep. How awesome would it be if you could see your design right in front of you in real 3D? Virtual reality and augmented reality glasses like the HTC Vive will make that possible, hopefully within a few short years. When motion tracking with a simple desk device like made by Leap Motion becomes fully supported by major CAD packages, I’m in. I’m considering buying a Leap motion controller right now, because tracking the movement of your hands can do so many great things for CAD software. Just take a look at what they can do already in this video: