Autodesk Mechanical Desktop: Synchronized Assemblies
By Bill Fane
In last month's Autodesk? Mechanical Desktop? software tutorial, Tabling Your Assemblies, you learned how to use global design variables to ensure that all the parts in an assembly stay synchronized. You saw how the assembly in Figure 1 automatically updated to Figure 2 when you changed the shaft_size design variable from 1.00 to 1.75.
Figure 1: 1.750 diameter.
Figure 2: 1.000 diameter.
Figure 3: The bearing did not update.
As I indicated at the end of that tutorial, all of the parts in this assembly use local definitions. This month you'll learn how to synchronize an assembly even when some or all of the parts use external definitions.
There Are Two Kinds of Part Definition in the World... This isn't the start of another bad joke. There really are two kinds of part definition: local and external. Most of you already know this, but let's do a quick review of the basics.
A local part definition, as the name implies, exists entirely within the assembly drawing. If the part definition includes any global design variables, then the part automatically updates when the value of any of these variables changes.
External part definitions are saved in a separate file, and the assembly drawing simply points to the part file. This is exactly like external reference (XREF) block definitions in standard AutoCAD? drawings.
The AMCATALOG command in Mechanical Desktop software controls the location of part definitions.
The More Things Change... You can also synchronize features within external part definitions with other part features within an assembly, but you have to keep a few things in mind if you want this to work effectively.
In Figure 3, I returned the shaft_size value to 1.00.
But as you can see, the green bearing did not change. That's because before I changed the value of the diameter, I converted the bearing into an external part definition using the AMCATALOG command. Worldwide global design variables only apply to local part definitions. It's a small world. Another problem has arisen as a result of this change. When I originally constrained this assembly, I put an insert constraint between the left hole in the green bearing and the left hole in the blue base. I then attached a mate line-to-line constraint between the two right-hand holes.
However, after changing the shaft_size variable, the two right-hand holes no longer line up. The software deleted the line-to-line constraint from them because it contradicts the insert constraint on the other pair of holes.
The workaround that solves this problem is a little cumbersome—particularly in assemblies with many parts controlled by several design variables—because you must open each external part definition file in turn, edit its global parameters, then close it. When you reopen the assembly drawing, the externally defined parts are the correct size. You simply edit the global variables in the assembly drawing and everything updates properly. Constraints don't get lost.
This works, but it's tricky because in making changes to so many files and so many variables, you may overlook something. There is a very good chance that variable values will get out of step between the parts.
Fortunately, there is a solution. (Hey, do I look like the kind of person who would create a problem if I didn't already have a solution?) File That Parameter In the last two tutorials, you learned how to control design variables with an Excel spreadsheet, but you can also use the Global Variable File mechanism in Autodesk Mechanical Desktop to do the same thing. It's a simple two-step process:
1. Create a file that defines part variables and save it with the PRM extension.
2. Open an existing drawing that contains any of those variables and link the PRM file to it to automatically update the part. Now let's take a detailed look at these two steps. First, start a basic text editor such as Notepad and create a small file that looks like this: /* Global Parameters */
Shaft_size = 1.0 /* */
Notice the absolute simplicity of this file:
Anything contained between the slash-asterisk pairs (/*…*/) is a comment. As usual with computer files, comments exist purely to help humans who may be reading them. They don't have to be there, but if they are then the software ignores them. Each succeeding line consists of the variable name, an equal sign ( = ), and the current value of the variable. The file can contain any number of variables you choose.
Name the file and save it using the PRM extension.
View Larger Image Figure 4: The Design Variables dialog box.
Now open a drawing that uses one or more of the variables listed within the PRM file. Start our good friend the AMVARS command, as detailed in the previous tutorials. When the Design Variables dialog box comes up, click the Global tab (see Figure 4).
Previously, you used the Table Driven pane in the lower left of this dialog box. This month, turn your attention to the Global Variable File (.prm) pane right below it. Click the Link button, which opens a standard file dialog box. Find the PRM file you created previously and click Open.
As you'll see, the values of any global design variables already defined in the drawing change to match the values read (linked) from the PRM file. If that file contains any extra variables, then new ones are created in the drawing. If the drawing contains variables that are not in the PRM file, they are ignored.
When you click OK to exit the Design Variables dialog box, the drawing updates automatically to reflect the new variable values.
But wait! There's more! Essentially, you've now linked the PRM file to the drawing file, so that every time you open the drawing file, the software loads the PRM file and updates all the global variables to match it. At this point, you need to run the AMUPDATE command (click on the Update Part button at the bottom of the browser) to make the part or parts update to match the new variable values. This method works equally well in single-part files or in assembly files.
Now here is the fun part. Many part and assembly files can point to the same PRM file.
When you want to edit the drawings you've linked to the same PRM file, first edit the PRM file, then open/update/close each part file, then open and update the assembly file. Everything stays in step, no constraints are lost, and the chance for errors is greatly reduced because the value for each parameter is only entered once. Note: The sequence of events I just described is important. Open/update/save the individual parts first, and only then open and update the assembly. If you update the assembly before the individual parts, you may lose the constraints.
Button, Button... Let's take a brief look at the other buttons in the Global Variable File (.prm) pane of the Design Variables dialog box.
We've already covered the Link button, which links the PRM file to your drawing and updates the drawing's global variables based on the contents of the PRM file. What you may not know is that once you've linked a drawing file to a PRM file, you can only modify the drawing's global variables by editing the PRM file and not by changing values within the drawing itself. The Unlink button breaks the link, leaving the variables at their current setting, which means you can edit them from within the drawing, with no effect on the PRM file. Although you can use the Import button to read the PRM file and update the global parameters, it does not establish a link. So, for example, if you close the drawing, edit the PRM file, and reopen the drawing, it will not reflect any changes made to the PRM file.
The Export function is pretty handy. With it, you can export and save to a PRM file all the global variables from the current drawing, with their current values, and then links the current drawing to that new PRM file. That saves you the work of manually entering the information yourself.
Spreading It Out... As you know from the last tutorial, you can use an Excel spreadsheet to coordinate parts in an assembly in almost exactly the same manner as PRM files. If you use this method, just make sure that each external part is updated to the same row before you open and update the assembly.
Conclusion The use of a global variable file (PRM) makes it very easy to ensure that all the parts of an assembly will always fit together. And it also ensures that any changes made to that single assembly are reflected further down the line. For example, a tooling designer can ensure by using the PRM file that if a dimension is revised on the production part then the tooling will update properly. This can include the punch, stripper plate, and die opening in the punch press die set, as well as polishing holders, plating racks, and assembly nests. Now here's the really bad joke: How many Autodesk Mechanical Desktop users does it take to change a light bulb? Just one, but that also changes the socket, the lamp, the cord, the plug, the outlet...