<!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>Check Criteria - Self-Intersection of Face Boundary (F14)</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">Check Criteria - Self-Intersection of Face Boundary (F14)</div>
      <hr noshade="true">
      <table cellspacing="4" width="100%" align="center">
         <tr valign="top">
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" width="20%">
               <p class="para_td"> <a class="links" href="javascript:void(0)" onclick="top.openFile('nx_analysis/vda_checker.html');return(false);">Check VDA-4955 Compliance Overview</a></p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" width="20%">
               <p class="para_td"> <a class="links" href="javascript:void(0)" onclick="top.openFile('nx_analysis/vda_criteria.html');return(false);">Description of the Check Criteria</a></p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" width="20%">
               <p class="para_td"> <a class="links" href="javascript:void(0)" onclick="top.openFile('nx_analysis/vda4955_check_crit_fac_topo.html');return(false);">Faces (Topology)</a></p>
            </td>
            <td bgcolor="#ffffff" colspan="1" rowspan="1" width="20%"></td>
            <td bgcolor="#ffffff" colspan="1" rowspan="1" width="20%"></td>
         </tr>
      </table><br><table cellspacing="4" width="100%" align="center">
         <tr valign="middle">
            <td bgcolor="#f4f4f4" colspan="2" rowspan="1" valign="top">
               <p class="para_td">Self Intersection of Face Boundary (F14)</p>
            </td>
         </tr>
         <tr valign="middle">
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Input</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Faces of solid bodies and sheet bodies</p>
            </td>
         </tr>
         <tr valign="middle">
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Parameter</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Lower limit constraint value of Self Intersection distance Spike/Cut Angle [deg]</p>
            </td>
         </tr>
         <tr valign="middle">
            <td bgcolor="#f4f4f4" colspan="1" rowspan="5" valign="top">
               <p class="para_td">What is analyzed ?</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Check if face boundaries self intersect or touch each other. The criterion is violated if intersection points are found whose distance is less or equal to the Self Intersection distance constraint value.&nbsp; </p>
               <ul>
                  <li>
                     <p class="para_item">All face boundaries, represented as loops, including holes and isles are considered.&nbsp;</p>
                  </li>
                  <li>
                     <p class="para_item">Each loop is checked for occurrences of spikes and cuts. A Spike/Cut Angle criterion is associated with the Self Intersection criterion. If at some point on the face boundary the boundary curve has a steep dip, i.e. the curve tangent vector arriving at the point and the curve tangent vector leaving the point change their direction by more than ( 180 - value of Spike/Cut Angle ) then the direction change is classified as spike/cut occurrence and logged as a Spike/Cut Angle violation.</p>
                  </li>
                  <li>
                     <p class="para_item">Each loop is checked for self intersections.&nbsp;Spike/cut occurrences are exempted from this check.</p>
                  </li>
                  <li>
                     <p class="para_item">All combinations of boundary loop pairs are checked for intersections.</p>
                  </li>
                  <li>
                     <p class="para_item">Checking continues after any violation to find and log all violations.</p>
                  </li>
               </ul>
            </td>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p align="center"><img align="bottom" src="graphics/v2spike.gif"></p>
            </td>
         </tr>
         <tr>
            <th bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Example of Spike Angle</p>
            </th>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">&nbsp; <img align="bottom" src="graphics/v2selfp.gif" border="0"> [IMG_4955]
               </p>
            </td>
         </tr>
         <tr>
            <th bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Example of Self-Intersection</p>
            </th>
         </tr>
         <tr valign="middle">
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Results Log&nbsp; Output</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
               <table cellspacing="0" align="center">
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="6" rowspan="1" valign="top">
                        <p class="para_td">Spike/Cut Angle (U14) </p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">object_id</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">face</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">value</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">violation angle</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">value2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">Spike/Cut type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">0</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">Spike/Cut with none of the qualifications below.</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">1</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">Warning: After initial widening the spike sides are narrowing. A spike could not clearly be identified. </p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">Needle; opening distance &lt; 0.05 * length of smaller side of spike.</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">3</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">Warning: Unable to determine the complete length of a side. A spike could not clearly be identified.</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">4</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">More than one spike in the same point set range was found. </p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">point</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">spike point</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">point2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">spike point;&nbsp; the same point (needed for edge highlighting)</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">sub_id</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">edge arriving at spike point</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">sub_id2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">edge leaving the spike point</p>
                     </td>
                  </tr>
               </table><br><table cellspacing="0" align="center">
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="5" rowspan="1" valign="top">
                        <p class="para_td">Self Intersection (F14) </p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">object_id</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">face</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">value</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">minimal distance of intersection points</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">point</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">intersection point on edge curve 1</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">point2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">intersection point on edge curve 2 (only if no intersection but&nbsp;points nearly touch and edges differ)</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">sub_id</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">edge owning edge curve 1</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">sub_id2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top"></td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">edge owning edge curve 2 (only if no intersection but&nbsp;points nearly touch and edges differ)</p>
                     </td>
                  </tr>
               </table><br></td>
         </tr>
      </table><br></body>
</html>