<!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 - GCO, GC1, GC2 Continuity (M3)</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 - GCO, GC1, GC2 Continuity (M3)</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_curves.html');return(false);">Curves</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">
         <colgroup span="1">
            <col span="1" width="34*">
            <col span="1" width="164*">
         </colgroup>
         <tr valign="middle">
            <td bgcolor="#c0c0c0" colspan="2" rowspan="1" valign="top">
               <p class="para_td">GC0, GC1, GC2 Continuity (M3)</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">Curves, boundary curves of faces (only if the Edge Curve Check control is turned on)</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">GC0: Maximum Gap/Overlap distance constraint value, Topological Tolerances | Distance</p>
               <p class="para_td">GC1: Maximum Tangent Angle [deg] constraint value, Topological Tolerances | Tangent Angle [deg]</p>
               <p class="para_td">GC2: Maximum Curvature constraint value (measured is the relative error between the two curvature radii), Topological Tolerances | Curvature (relative error).&nbsp; </p>
               <p class="para_td">The relative error between the curvature radius r1 and the curvature radius r2 is defined as:</p>
               <p class="para_td">RelErr = MAX(ABS (ABS(r1) - ABS(r2)) / (0.5 * (ABS (ABS(r1) + ABS(r2)))))&nbsp; RelErr is always positive and cannot exceed the value of 2. &nbsp;&nbsp;&nbsp; RelErr = 0 if r1 = r2. &nbsp;&nbsp;&nbsp; RelErr = 2 if r1 = -r2.&nbsp; &nbsp;&nbsp;&nbsp; RelErr = 2 if r1 &lt; infinity and r2 = infinity ( curve at transition point is a line ) </p>
               <p class="para_td">The two curves at the transition point must lie in the same osculating plane in which the circle of curvature lies.</p>
            </td>
         </tr>
         <tr valign="middle">
            <td bgcolor="#f4f4f4" colspan="1" rowspan="11" 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 two curves for geometric continuity. &nbsp;</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"> For single closed curves checking is carried out at their start/end point and segment checking between inner segments only. </p>
                        </div>
                     </td>
                  </tr>
               </table>
               <p class="para_td">GC0 is a positional continuity. Adjacent curves are checked if they meet end to end. Curve segments within one curve are not checked since they always meet ( curve segments in one bspline curve always meet at their end points ). If two curve end points meet end to end, these points are called transition points. If the transition points meet within the Topological Tolerances | Distance, the distance between the two end points is checked using the distance constraint value. The criterion is violated if the distance is greater than the Gap/Overlap constraint value.&nbsp;</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> <img align="bottom" src="graphics/v2cm3a.gif" border="0"> [IMG_4955]
               </p>
            </td>
         </tr>
         <tr>
            <th bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Example of a Large Segment Gap</p>
            </th>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">&nbsp;&nbsp;&nbsp; <img align="bottom" src="graphics/v2edm3a.gif" border="0"> [IMG_4955]
               </p>
            </td>
         </tr>
         <tr>
            <th bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Example of a Large Edge Gap</p>
            </th>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">GC1 is a tangential continuity. GC1 means that the first derivatives of the two curves are collinear and point into the same direction. Checking is only carried out, if the transition points are already GC0 continuous. Transition points are checked between adjacent curves ( including boundary curves ) and between adjacent curve segments of one bspline curve. Checking transition points between curve segments can be turned on/off with the Segment Check control. The angle between the unitized derivative vectors is computed. An angle exceeding the Topological Tolerances | Tangent Angle is neither considered a violation nor logged in the Results Log. The criterion is violated if the angle exceeds the Tangent Angle constraint value. </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"> To avoid error detection in case that a tangent discontinuity has been designed on purpose, the Topological Tolerances | Tangent Angle needs to be suitably adjusted. E.g., a Topological Tolerances | Tangent Angle = 45 means, that all tangent discontinuities greater 45 degrees will not be checked against the check value. </p>
                        </div>
                     </td>
                  </tr>
               </table>
            </td>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"> <img align="bottom" src="graphics/v2cm3b.gif" border="0"> [IMG_4955] 
               </p>
            </td>
         </tr>
         <tr>
            <th bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Example of Tangential Continuity of Curves</p>
            </th>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td">GC2 is a curvature continuity. This criterion is only checked, if the transition points are GC0 and GC1 continuous and the two circles of curvature at the transition point lie in the same plane. Transition points are checked between adjacent curves (boundary curves) and between adjacent curve segments of one bspline curve. Checking transition points between curve segments can be turned on/off with the Segment Check control. A relative error (RelErr) exceeding the Topological Tolerances | Curvature is neither considered a violation nor logged in the Results Log. The criterion is violated if the relative error exceeds the Curvature constraint value.&nbsp; </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"> RelErr is always positive and cannot exceed the value of 2 (transition to a straight line or curvature sign change). In cases where RelErr = 2 is not to be checked, a Topological Tolerances | Curvature value of less than 2 needs to be supplied. </p>
                        </div>
                     </td>
                  </tr>
               </table>
            </td>
         </tr>
         <tr>
            <td bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_td"><img align="bottom" src="graphics/v2cm3c.gif" border="0">[IMG_4955]   Example of Curvature Continuity of Curves
               </p>
            </td>
         </tr>
         <tr>
            <th bgcolor="#F4F4F4" colspan="1" rowspan="1" valign="top">
               <p class="para_th">Example of Curvature Continuity of Curves</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 width="100%" align="center">
                  <colgroup span="1">
                     <col span="1" width="99*">
                     <col span="1" width="53*">
                     <col span="1" width="147*">
                  </colgroup>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">Curves or Edges (M3)</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">
                        <p class="para_td">curve1 ( or edge1)</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_id2</p>
                     </td>
                     <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="top">
                        <p class="para_td">curve2 ( or edge2)</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">
                        <p class="para_td">GC0 (M3ac, M3ae): distance between end points GC1 (M3bc, M3be ): angle between curve end point tangents GC2 (M3cc, M3ce):&nbsp; RelErr bspline curves </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">
                        <p class="para_td">endpoint of curve1</p>
                     </td>
                  </tr>
                  <tr valign="middle">
                     <td bgcolor="#f4f4f4" colspan="3" rowspan="1" valign="top">
                        <p class="para_td">Curve segments or Edge segments (U3)</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">
                        <p class="para_td">curve (or edge)</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">
                        <p class="para_td">maximum violation at a segment boundary of the bspline curve GC1 (U3bc, U3be): angle between segments GC2 (U3cc, U3ce): RelErr</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">
                        <p class="para_td">minimum violation at a segment boundary of the bspline curve GC1 (U3bc, U3be): angle between segments GC2 (U3cc, U3ce):&nbsp;RelErr</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">
                        <p class="para_td">point at maximum violation</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">
                        <p class="para_td">point at minimum violation</p>
                     </td>
                  </tr>
               </table><br><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">Segment violations are reported under a separate criterion as either &quot;Segment GC1; Curve (U3bc)&quot; resp. &quot;Segment GC1; Edge (U3be)&quot; or &quot;Segment GC2; Curve (U3cc)&quot; resp. &quot;Segment GC2; Edge (U3ce)&quot;. </p>
                        </div>
                     </td>
                  </tr>
               </table>
            </td>
         </tr>
      </table><br></body>
</html>