Using a Master Model with SOLIDWORKS
SOLIDWORKS doesn’t acknowledge the term Master Model in their documentation. The Master Model was created by CAD users, its origin attributed to the CAD gods of antiquity. It is a story from a misty past, adapted by each generation for their purpose and passed on to the next. We shall try to write the book of the Master Model here.
There are many ways of implementing this technique and SOLIDWORKS has several different tools you can use to make it happen. Each has different strengths and weaknesses, so it may be difficult at first to fully understand the methods. But once you use it a couple of times or see a couple of examples, I think you’ll get it.
Master model is essentially a technique where you create a single model, say an alarm clock. You make the alarm clock as a single part, but in reality it will be manufactured from several individual plastic parts. The smooth shape of the clock is broken up into individual parts, which are engineered individually with detailed assembly and functional features and then brought back together as an assembly.
Several tools in SOLIDWORKS enable users to perform aspects of Master Model methods. Each of these tools do something slightly different and some will only work with certain types of data (solid vs surfaces):
- Save Bodies
- Insert Into New Part
- Insert Part
- Save Assembly as Part
I have split the Master Model tools into two classifications, Push and Pull. We use family-type relations to help define the roles some models play in the process. For example, a parent part would be the first in the process and a child part would be one that comes later and is dependent on the parent.
Push Master Model tools drive the process from the initial part (the parent), pushing the data out to individual part files. The feature that is left in the tree from this operation is left in the parent part, so you can find the child from the parent. The features that push data are Save Bodies and Split.
Pull Master Model tools drive the process from the dependent side (the child), pulling data in from other sources. The features that pull data are Insert Part and Insert Into New Part. These features are left in the child part, so you can find the parent from the child, but you can’t always go the other direction (find the child from the parent).
The reason it is important whether you are using a push or pull method is because the feature that keeps all of the information has to be located in one place, not in multiple places, and you have to be able to navigate up and down the dependency links.
Let’s work through each method with this simple RubberDucky model. RubberDucky has three parts: a battery cover, a left half and a right half. We don’t know what the batteries do, but all good products must be electronic, right?
The Split tool requires surfaces or planes to split the part into multiple bodies. In this case, I chose to do that with the L-shaped extruded surface at the back to create the battery compartment cover, and the larger planar surface used to split the rest of the duck in half.
You could use the Right Plane to split the duck in half, but it would also split the battery compartment cover in half, and you’d have to join them back together.
Split can be used on solid or surface bodies.
The column of check boxes indicates that the bodies will be split. Bodies will only be saved out if you have file names in the File column. The interface never says this explicitly; I guess somehow, you’re supposed to know.
If you put file names in and want to get rid of them, click the scissors icon to get rid of all the check marks. This will split the bodies within the part file without saving them as external parts.
Split does have a couple of functions that are new in the past several releases. It now enables you to save a body to a new file or an existing file. However, you can’t just select any existing file. You are limited to selecting files which have been previously linked to this feature before. The point of this is to give the user some options when it comes to file management, in particular when the number of bodies produced by the Split feature changes. If you need other part geometry added to this part later, you can use the Insert Part function, which will be mentioned further down in the article.
Another change to the Split feature in recent releases is that instead of only splitting solid bodies, it will also now split surface bodies.
There are a couple of things going on with the Split feature that might be considered bugs. First, the “Propagate Visual Properties” is not propagating all of the face colors. The eyes of the ducky retain the colors, but in some cases the beak does not.
The second problem is that you cannot manually rename the bodies being saved out. (This is an optional function of this feature; you can also simply split the part into bodies without saving the bodies to external files). If you try, you get the invalid file name error. The directory mentioned is where all of the function DLLs are stored. This appears to happen in versions 2020 pr1 and SP1. This worked if I allowed SOLIDWORKS to automatically rename the bodies.
There is an SPR written against this functionality, so it could be fixed at some point. To work around it, you can create and save a dummy part to the directory where you want to save the bodies as parts and this feature will function correctly for that session.
Save Bodies is available by right clicking on the Solid Bodies folder in the FeatureManager. It is not available for surface bodies.
Save Bodies also looks like the bottom half of the Split feature PropertyManager, except that it also gives you the ability to create an assembly from any bodies you save out as parts. For this reason, use Split only for splitting solid bodies and then use Save Bodies to save the bodies to parts and reassemble them into an assembly. That bit of automatic functionality saves a lot of time and bother.
The problems mentioned for the Split feature regarding renaming the bodies also happens with the Save Bodies feature. To work around this, you could go ahead and create the automatically named parts, close down SOLIDWORKS and all parts. Rename the files in Windows Explorer (usually not a preferred method, but bear with us) and then edit the Split or Save Bodies feature to use the Existing file option to connect the feature to the renamed part files.
Split and Save Bodies are both Push functions; they push the data out from the parent document. You make a part, split it into bodies and then push the bodies out to individual parts. The Split and Save Bodies features reside in the parent part, making it easy to find the child part from the parent.
The feature put into the child part is called the “Stock” feature. To find the parent from the child, right click on the Stock feature and select Edit in Context, and it will take you back to where the Split or Save Bodies feature created that part. If you notice and recognize the -> symbol, it means in context when you see it in a part in an assembly. This is the same sort of relationship but there is no assembly.
Insert Part enables you to take a part that already exists and insert it into the current part. You are pulling data in, so this is obviously a Pull function.
With the RubberDucky example, if you wanted to use Insert Part to create Master Model type relations, you would have your RubberDucky part already split into bodies and then create a new part and insert the RubberDucky into it.
Here is the workflow for the Insert Part feature:
- Start with an open part. This can be a new part with no features or an existing part with a lot of features.
- Initiate Insert Part from the Insert menu or you can use the icon, but it isn’t on the toolbar by default. You can find it via Tools > Customize > Features.
- Select the part to insert from a list of currently open parts or use the Browse button to insert a part that isn’t currently open.
- You can use the Configuration drop down list to pick which configuration you want to insert, or use Default.
- Select which types of data you want to insert with the part. Note that you can chose solids and/or surfaces, as well as other types of features. This will bring in all solid or all surface bodies (unless you have created configurations with just the bodies you want to transfer).
- The part will locate such that old origin will be aligned to the new origin by default, but you can use Move/Copy Bodies to position the new part.
- Using the Link box, you can choose to break or maintain the link. Once the link is broken, you can’t re-link it (be aware that the Mirror Part works much like this Insert Part feature, including the link breaking option).
Once you have used Insert Part to bring the RubberDucky into this new part (make sure the Solid Bodies box is checked), you can use the Delete/Keep Bodies (right click on a body in the Solid Bodies folder) and delete two bodies, keeping one.
Repeat these steps for two more parts, keeping a different part each time.
Yes, this is a lot more work than the Save Bodies method, but sometimes it is the feature you need to use. For example, if you want to bring forward something other than a single solid body.
If you want to find the parent part, just right click on the RubberDucky feature and select Edit In Context. Again, notice the In Context symbol ->.
Breaking Links After the Fact
If you have created an Inserted Part and chosen initially to preserve the links, you get the familiar In Context body feature, shown here to the right with the Buggy Body.
Let’s say that after you have created it, now you want to break the link because you want to make some changes that aren’t compatible with the original model. To do this, you would right click on the Buggy Body feature and select the External References option.
This brings up the External References dialog and from here you can break the link. Also as a part of this, you can bring in all of the features from the original part. This type of functionality is also available in the Mirror Part tool.
Insert Into New Part
Insert Into New Part is slightly different from the other push/pull features. In this case, you initiate the feature from the parent but the feature winds up in the child.
Insert Into New Part can transfer solids and/or surfaces, but if you initiate the feature from a folder it will only transfer the same type as the folder. If you want to transfer both solids and surfaces, initiate the feature by right clicking on a solid body in a folder or a surface body in a folder, but not on either folder itself.
Also notice that the interface enables you to select which part file to insert the selected bodies into. Just be careful, because if you select a part with existing features, it will overwrite the part. You are better off to just type in a new name when prompted.
When you have created the new feature, you get the same Stock feature that the Split and Save Bodies features created in the child part, but Insert Into New Part doesn’t create any features in the parent part.
Here is a summary table to help you decide which features to use when.
Using these Master Model techniques requires expert knowledge of multibody operations, and they are standard operating procedure for plastic assembly design and other design processes. These techniques can be confusing, especially if you have to navigate up and down the parent/child ladder and in and out of external references, but they help you avoid the typical shortcomings of in-context relations using assemblies.
Learn more about SOLIDWORKS with the eBook SOLIDWORKS 2022 Enhancements to Streamline and Accelerate Your Entire Product Development Process.