<!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>Hand calculation vs. Tolerance Stackup Validation</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">Hand calculation vs. Tolerance Stackup Validation</div>
      <hr noshade="true">
      <p class="para_topic">This example is a modification of an example described in Dimensioning and Tolerancing Handbook by Paul Drake, McGraw Hill, 1999, Chapter 9, Pages 25-27.</p>
      <p class="para_topic">The following figures show assembly components with their geometric dimensions and tolerances. Both geometric and size tolerances need to be considered.</p>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/qs_cyl_compa.gif"></p>
      </div>
      <div class="title_figure">Component (a)</div>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/qs_cyl_compb.gif"></p>
      </div>
      <div class="title_figure">Component (b)</div>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/qs_cyl_compc.gif"></p>
      </div>
      <div class="title_figure">Component (c)</div>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/qs_cyl_compd.gif"></p>
      </div>
      <div class="title_figure">Component (d)</div>
      <p class="para_topic">Assembly (e) shows the position of each cylinder relative to the others.</p>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/qs_cyl_assy.gif"></p>
      </div>
      <div class="title_figure">Assembly (e)</div>
      <p class="para_topic">In this example, the objective of the study is to calculate the gap. Two different approaches can be used:</p>
      <ol type="1" start="1">
         <li>
            <p class="para_item">A manual calculation based on a vector loop, as described in the book.</p>
         </li>
         <li>
            <p class="para_item">An automatic calculation using <a class="links" href="javascript:void(0)" onclick="top.openFile('quickstack/calc_comparison.html');return(false);">Tolerance Stackup Validation</a>, based on the Monte Carlo method.
            </p>
         </li>
      </ol>
      <div class="title_division">Manual calculation</div>
      <div class="figure">
         <p align="center"><img align="bottom" src="graphics/qs_cyl_diag.gif"></p>
      </div>
      <div class="title_figure">Vector Loop diagram</div>
      <p class="para_division">This is how the vector loop, whose diagram is shown in the figure above, is formed:</p>
      <ul>
         <li>
            <p class="para_item">The vector loop starts from the lower surface of the gap, and crosses component (b) with dimension A.</p>
         </li>
         <li>
            <p class="para_item">The loop passes from the bottom surface of (b) to the top surface of (d), then it goes from the top surface of (d) to one of the surfaces of (c). Even though there is no dimension, the geometric tolerance exists.</p>
         </li>
         <li>
            <p class="para_item">The loop then goes from the surface of (c) to the datum surface, and from the datum surface to the top surface of the gap.</p>
         </li>
         <li>
            <p class="para_item">There is also a transition from (c) to (a). Even though the two surfaces touch each other, the geometric tolerance affects the stack up tolerance.</p>
         </li>
      </ul>
      <p class="para_division">For each component, there are geometric tolerances, as well as size tolerances.</p>
      <p class="para_division">Based on the above mentioned rules, we can find the resultant mean size and tolerance for each vector component, as shown in Table 1.</p>
      <table cellspacing="3" width="100%" align="center">
         <tr valign="top">
            <th bgcolor="#c0c0c0" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Name</p>
            </th>
            <th bgcolor="#c0c0c0" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Nominal</p>
            </th>
            <th bgcolor="#c0c0c0" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Size Tol</p>
            </th>
            <th bgcolor="#c0c0c0" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Geo Tol</p>
            </th>
            <th bgcolor="#c0c0c0" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Resultant Mean</p>
            </th>
            <th bgcolor="#c0c0c0" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Resultant Tol</p>
            </th>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">A</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.04</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.003</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.004 (parallelism)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.04</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.003</p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.001 (flatness of datum)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">B</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.002 (flatness)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.001</p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">C</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.125</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.010 (profile)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.125</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.005</p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.004 (parallelism)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.002 (flatness)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">D</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.185</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.010 (profile)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.185</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.005</p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.002 (flatness)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top"></td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">E</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.004 (parallelism)</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">0.002</p>
            </td>
         </tr>
      </table><br><p class="para_division">The calculated gap is, therefore:</p>
      <ul>
         <li>
            <p class="para_item">Minimum = 0.004</p>
         </li>
         <li>
            <p class="para_item">Maximum = 0.036</p>
         </li>
         <li>
            <p class="para_item">Variation = 0.032</p>
         </li>
      </ul>
   </body>
</html>