<!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>NX Model Manipulation</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_topic3" id="xps10_pagetitle"> NX Model Manipulation</div>
      <hr noshade="true">
      <p class="para_topic"> The fundamental link between NX and the spreadsheet is that the spreadsheet interface converts NX Expressions into spreadsheet formulas, and vice versa. When NX expressions are resident in the spreadsheet, you can utilize the full power of the spreadsheet to manipulate those expressions.</p>
      <div class="title_division">Manipulating Expressions in Xess</div>
      <p class="para_division"> Since NX expressions are converted into &quot;live&quot; Xess formulas, you may utilize any spreadsheet functions to modify expressions. This includes things like incorporating table lookup functions into NX expressions, utilizing Goal Seek to optimize geometry, and driving family-of-parts development from a simple spreadsheet environment.</p>
      <p class="para_division"> In addition, NX includes special conversion features that allow you to use standard point-and-click operations to update NX expressions.</p>
      <table border="0" cellpadding="2" cellspacing="3" align="center">
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Cell Names</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Cell names in formulas/expressions, which equate to NX expression names, are maintained when you elect to update the NX Part. This ensures that any relationship defined in the spreadsheet is maintained in NX and any subsequent extraction.</p>
               <p class="para_td"> For example, in the figure below labeled &quot;Sample Expressions&quot;, cell B3 contains a reference to the NX expression named &quot;Width&quot;. This name will be transferred directly back to NX with no conversion.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Cell References</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Cell references in formulas or expressions that relate to a NX expression name are automatically converted to the NX name when you elect to update the NX part. Again, this ensures that relationships defined in the spreadsheet retain the maximum meaning in NX.</p>
               <p class="para_td"> For example, in the figure below labeled &quot;Sample Expressions&quot;, cell B5 refers to cell B2, which is really the NX expression &quot;Width&quot;. At update time, the interface will replace B2 with the NX name Width and store that in the NX expression system.</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"> In this case you MUST use the cell reference B2, which contains the expression instead of the cell containing the expression name (A2).</p>
                        </div>
                     </td>
                  </tr>
               </table>
               <p class="para_td">  Cell references in formulas or expressions that do  <em>not</em> equate to NX expression names are automatically evaluated when the part update occurs. This allows you to include values from any spreadsheet cell within the NX expression. The cell reference is replaced by its calculated value in NX.
               </p>
               <p class="para_td"> For example, cell B6 contains a reference to the Xess cell Q17. At update time, Q17 is replaced by the value in that cell. If cell Q17 contained a formula, that formula and all other necessary formulas would be calculated to derive the value for Q17.</p>
            </td>
         </tr>
      </table><br><p class="para_division"></p>
      <div class="title_division">Sample Expressions</div>
      <table border="0" cellpadding="2" cellspacing="3" align="center">
         <tr>
            <th bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle"></th>
            <th bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_th"> A</p>
            </th>
            <th bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_th"> B</p>
            </th>
            <th bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_th"> C</p>
            </th>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 1</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> NX Names</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Expressions</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Values</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 2</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Width</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> =12.5</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 12.5</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 3</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Length</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> =Width*2</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 25.0</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 4</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Height</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> =2.0</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 2.0</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 5</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Depth</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> =B2*4</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 50.0</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 6</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Offset</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> =Q17*3</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 12</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 7</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> _P1</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> =1</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> 1</p>
            </td>
         </tr>
      </table><br><p class="para_division"></p>
      <table border="0" cellpadding="2" cellspacing="3" align="center">
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Expressions</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Expressions with names that  <em>look like</em> spreadsheet cell references are distinguished in the spreadsheet by a leading underscore. The underscore is automatically compressed and stripped when you select the Tools&rarr;Extract Expr and Tools&rarr;Update NX Part options. For example, cell A7 contains the NX name P1, which could be the cell P1 or an NX name. The underscore prefix has been added to the NX name to avoid this conflict.
               </p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Built-in functions</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> NX' built-in functions are converted to the equivalent spreadsheet functions. For example the NX function &quot;tan()&quot; would be converted to the spreadsheet function @TAND(). As with name conversion, this process goes both ways and is automatically handled.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Xess built-in functions</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> Spreadsheet built-in functions that have no NX counterparts maybe embedded in NX expressions in the spreadsheet. When Tools&rarr;Update NX Part is started, the function is replaced by the computed value.</p>
               <p class="para_td"> For example, the spreadsheet function @POLY(2,3,4) could be included in an NX expression. @POLY returns the Nth-degree polynomial of X, and in this case the value of 25 would be placed in the NX expression when Update NX Part is selected.</p>
            </td>
         </tr>
      </table><br><p class="para_division"></p>
      <p class="para_division"> Any expression cell within the Active Range that is protected (and Tools&rarr;Cell Protection&rarr;Protect is enabled) will not be replaced when the Refresh Expr function is chosen.</p>
      <div class="title_division">Manipulating Expression Names in Xess</div>
      <p class="para_division"> You can add, change and delete the names and expressions that constitute the NX model. This allows you to drive much of the model development from the spreadsheet environment.</p>
      <p class="para_division"> To adjust expression names:</p>
      <ol type="1" start="1">
         <li>
            <p class="para_item"> Use standard spreadsheet operations to add, change or delete expression names and associated expressions.</p>
         </li>
         <li>
            <p class="para_item"> Ensure that the Active Range is properly defined.</p>
         </li>
      </ol>
      <p class="para_division"> Optional: In step 2, if you did not use the Define Expr Rng operation, and if any expression name was modified, select Tools&rarr;Update Sym Tbl.  </p>
   </body>
</html>