<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!--
Copyright (c) 2006 UGS Corp.

All Rights Reserved.

This software and related documentation are proprietary to UGS Corp.
-->
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Assembly Range</title>
      <script language="javaScript">
        abridged="false";
        displayConditions=new Array();
      </script>
      <link type="text/css" href="../css/main_styles.css" rel="stylesheet">
   </head>
   <body class="bodydocs" onload="top.pageLoader()" bgcolor="#FFFFFF">
      <div class="title_topic4" id="xps10_pagetitle">Assembly Range</div>
      <hr noshade="true">
      <p class="para_topic">You can choose whether or not the Update NX Part function performs the update on all of the components of an assembly, or only on those you have specified.</p>
      <p class="para_topic">In the default mode (i.e., with Options&rarr;Update Method&rarr;Root Part Cascade Update turned ON), Update NX Part sends expressions defined in the expression range (Edit&rarr;Define Expr Rng) and attributes defined in the attributes range (Edit&rarr;Define Attr Rng) to all of the components in the assembly. In some cases, however, this can have an undesirable effect, such as when your expression or attribute names are not unique across the component parts. In this case, you may want to limit the assembly updates by first defining an assembly range (Edit&rarr;Define Assy Rng).</p>
      <p class="para_topic">An Assembly Range uses a component table to specify the components to update from the spreadsheet, and also the order in which components are updated. An Assembly Range is basically a list of part names that you enter and organize in a single row or column in the root part's spreadsheet. You then identify this list of names as an assembly range by highlighting the cells and using the Edit&rarr;Define Assy Rnge option. Once you have set the range, the list of parts are used when you start Tools&rarr;Update NX Part. The list of part names determines which parts are updated with spreadsheet data, and in what order the updates take place.</p>
      <p class="para_topic">An example of data entered in the spreadsheet to denote a component table for an Assembly Range is shown below. An Assembly Range consists of a list of component names, and optionally a data field, shown in the figure below under the heading, &quot;Version Tag&quot;.</p>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/tls_6ssheet1fr23.gif"></p>
      </div>
      <div class="title_figure">Component Table for an Assembly Range</div>
      <p class="para_topic">The component names match the file names and extensions of the component parts in the assembly.</p>
      <p class="para_topic">You can also set up an optional data field in the assembly range to use in conjunction with the Modular Assembly Update method.</p>
      <p class="para_topic">By using Attribute Ranges, you have complete control over how the spreadsheet will update components of an assembly. You can also use the Attribute Range optional data to provide some communication between components during the update process.</p>
      <p class="para_topic">When this feature is combined with the Modular Update Method, you can effectively use the spreadsheet to create part variations or Modular Assemblies.</p>
      <div class="title_division">Setting an Assembly Range</div>
      <p class="para_division">You set an Assembly Range in the same manner as expression or attribute ranges.</p>
      <p class="para_division">First, enter the component names in a single row or column as shown in the Component Table for an Assembly Range spreadsheet. You can also add optional data in a separate row or column for each component name.</p>
      <p class="para_division">Next, drag a rectangle around the component names and optional data, and use Edit&rarr;Define Assy Rng to register the assembly range. Do not include other data in the rectangle, such as any titles you may have entered. When you save the spreadsheet data in the part, the assembly range information you have established will also be saved.</p>
      <div class="title_division">Assembly Range Optional Data</div>
      <p class="para_division">You can use the optional data in an assembly range to communicate data between spreadsheets in an assembly. When an assembly range is used during an update, the spreadsheet sets the value of a part attribute to the optional data field string. By default, the name of the part attribute is MODULE_REQ.</p>
      <p class="para_division">The update process for using the assembly range shown in the Component Table for an Assembly Range spreadsheet is listed below. (These steps are not interactive, but are automatically performed by the Assembly Range process.)</p>
      <ol type="1" start="1">
         <li>
            <p class="para_item">Change the work part to mandril.prt.</p>
         </li>
         <li>
            <p class="para_item">Set the value of the part attribute named MODULE_REQ in mandril.prt to &quot;Dremel&quot;.</p>
         </li>
         <li>
            <p class="para_item">Update.</p>
         </li>
         <li>
            <p class="para_item">Change the work part to washer.prt.</p>
         </li>
         <li>
            <p class="para_item">Set the value of the attribute MODULE_REQ in washer.prt to &quot;Small&quot;.</p>
         </li>
         <li>
            <p class="para_item">Update.</p>
         </li>
      </ol>
      <p class="para_division">...And so on...</p>
      <p class="para_division">If the optional data field is blank, the spreadsheet will not attempt to change the value of the part attribute.</p>
      <div class="title_division">Changing Part Attribute for Optional Data</div>
      <p class="para_division">To use a part attribute other than MODULE_REQ for communication between spreadsheets, you can change the attribute title using Edit&rarr;Assy Attr Name. This menu brings up a dialog that allows you to specify the name of the part attribute that is to be used to communicate data between parts in an assembly.</p>
      <table border="0">
         <tr>
            <td valign="top" align="left"><img align="left" src="../graphics/note.gif" alt="Note" title="Note"></td>
            <td valign="bottom" align="left" width="100%">
               <div class="para_note">
                  <p class="para_note_body">  Sending expressions to just the top level component of an assembly can result in changes to other parts of the assembly, if you have interpart expressions in the assembly.</p>
               </div>
            </td>
         </tr>
      </table>
      <div class="title_division">Notes for Assemblies</div>
      <p class="para_division">In the context of Assemblies, the Spreadsheet follows these rules:</p>
      <ul>
         <li>
            <p class="para_item">When it is started, the Spreadsheet does not change the displayed part, but connects to the work part.</p>
         </li>
         <li>
            <p class="para_item">At no time is an automatic Fit operation done.</p>
         </li>
         <li>
            <p class="para_item">When the Spreadsheet exits, a Drafting view is not forced from the Modeling application. </p>
         </li>
      </ul>
   </body>
</html>