<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">

<html>

<head>
<title>Shape Processing</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
<!--
if (navigator.appName !="Netscape")
{   document.write("<link rel='stylesheet' href='default.css'>");}
//-->
</script>
<style type="text/css">
<!--
img_whs1 { border:none; width:25px; height:24px; border-style:none; }
p.whs2 { font-size:12pt; }
p.whs3 { font-size:12pt; margin-left:40px; }
img_whs4 { border:none; width:403px; height:469px; float:none; border-style:none; }
p.whs5 { font-size:12pt; font-weight:bold; }
ul.whs6 { list-style:disc; }
p.whs7 { font-size:12pt; margin-left:48px; }
p.whs8 { font-size:12pt; margin-left:0px; }
p.whs9 { font-size:12pt; margin-left:0px; font-weight:bold; }
p.whs10 { font-size:12pt; font-weight:bold; margin-left:48px; }
p.whs11 { font-size:12pt; margin-left:48px; font-weight:normal; }
p.whs12 { font-size:12pt; margin-left:88px; font-weight:normal; }
p.whs13 { font-size:12pt; margin-left:0px; font-weight:normal; }
p.whs14 { font-size:12pt; margin-left:48px; font-weight:bold; }
p.whs15 { font-size:12pt; font-weight:bold; margin-left:0px; }
img_whs16 { border:none; width:300px; height:214px; border-style:none; }
img_whs17 { border:none; width:244px; height:214px; border-style:none; }
p.whs18 { font-family:'Times New Roman' , serif; font-size:14pt; }
p.whs19 { font-family:'Times New Roman' , serif; font-size:12pt; }
img_whs20 { border:none; width:239px; height:214px; border-style:none; }
p.whs21 { font-weight:bold; }
-->
</style><script type="text/javascript" language="JavaScript">
<!--
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
{
  var strNSS = "<style type='text/css'>";
  strNSS += "p.whs8 {margin-left:1pt; }";
  strNSS += "p.whs9 {margin-left:1pt; }";
  strNSS += "p.whs13 {margin-left:1pt; }";
  strNSS += "p.whs15 {margin-left:1pt; }";
  strNSS +="</style>";
  document.write(strNSS);
}
//-->
</script>
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
<!--
function reDo() {
  if (innerWidth != origWidth || innerHeight != origHeight)
     location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
	origWidth = innerWidth;
	origHeight = innerHeight;
	onresize = reDo;
}
onerror = null; 
//-->
</script>
<style type="text/css">
<!--
div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
p.WebHelpNavBar { text-align:right; }
-->
</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
<script type="text/javascript" language="javascript" src="whver.js"></script>
<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
<script type="text/javascript" language="javascript1.2">
<!--
if (window.gbWhTopic)
{
	if (window.setRelStartPage)
	{
	addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nShape Processing");
addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");

	}


	if (window.setRelStartPage)
	{
	setRelStartPage("index.htm");

		autoSync(1);
		sendSyncInfo();
		sendAveInfoOut();
	}

}
else
	if (window.gbIE4)
		document.location.reload();
//-->
</script>
</head>
<body><script type="text/javascript" language="javascript1.2">
<!--
if (window.writeIntopicBar)
	writeIntopicBar(4);
//-->
</script>
<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image41.gif" width="25px" height="24px" border="0" class="img_whs1"></font></span>Shape Processing</h1>

<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
 a <span style="font-weight: bold;"><B>Shape Processing</B></span> operation in 
 the Main Menu select <span style="font-weight: bold;"><B>Repair - &gt;</B></span> 
 <span style="font-weight: bold;"><B>Shape Processing.</B></span></p>

<p class="whs2">This operation processes one or more shapes 
 using various operators.</p>

<p class="whs2">&nbsp;</p>

<p class="whs2"><b><span style="font-weight: normal;">The</span> 
 Result <span style="font-weight: normal;">will be a</span></b><b> <span 
 style="font-weight: bold;"><B>GEOM_Object</b>.</B></span></p>

<p class="whs2">&nbsp;</p>

<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
 </i><span style="font-style: italic;"><I>geompy.ProcessShape(Shape, Operators, 
 Parameters, Values)</I></span>, where Shape is a processed shape, Operators 
 is a list of operators (&quot;FixShape&quot;, &quot;SplitClosedFaces&quot;, 
 etc.), Parameters is a list of parameters (�FixShape.Tolerance3d�, etc), 
 Values is a list of values of parameters placed in the same order as in 
 the list of Parameters .</p>

<p class="whs2">&nbsp;</p>

<p class="whs2">In this dialog box you can select the object 
 that you need to process, define its name and operators applied to it 
 during processing. </p>

<p class="whs2">&nbsp;</p>

<p class="whs3"><img src="pics/repair1.png" x-maintain-ratio="TRUE" width="403px" height="469px" border="0" class="img_whs4"></p>

<p class="whs3">&nbsp;</p>

<p class="whs5">Operators and Parameters<span 
 style="font-weight: normal;"> (TUI names are given in brackets)</span></p>

<p class="whs2">&nbsp;</p>

<ul type="disc" class="whs6">
	
	<li class=kadov-p><p class="whs2"><span style="font-weight: bold;"><B>Fix 
 Shape</B></span> (FixShape) - corrects invalid shapes. </p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>3D Tolerance</B></span> (FixShape.Tolerance3d) 
 - work tolerance for detection of the problems and correction of them.</p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>Max 3D Tolerance</B></span> (FixShape.MaxTolerance3d) 
 &nbsp;- maximal 
 possible tolerance of the shape after correction.</p></li>
	
	<li class=kadov-p><p class="whs8"><span 
 style="font-weight: bold;"><B>Fix Face Size</B></span> (FixFaceSize) - removes 
 small faces, such as spots and strips. </p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>Tolerance</B></span> (FixFaceSize.Tolerance) - 
 defines minimum possible face size.</p></li>
	
	<li class=kadov-p><p class="whs8"><span 
 style="font-weight: bold;"><B>Drop Small Edges</B></span> (DropSmallEdges) - 
 removes edges, which merge with neighbouring edges.</p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>3D Tolerance</B></span> (DropSmallEdges.Tolerance3d) 
 - defines minimum possible distance between two parallel edges.</p></li>
	
	<li class=kadov-p><p class="whs8"><span 
 style="font-weight: bold;"><B>Split Angle</B></span> (SplitAngle) - splits faces 
 based on conical surfaces, surfaces of revolution and cylindrical surfaces 
 in segments using a certain angle . &nbsp;</p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>Angle</B></span> (SplitAngle.Angle) - the central 
 angle of the resulting segments (i.e. we obtain two segments if Angle=180, 
 four if Angle=90, etc).</p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>Max. Tolerance</B></span> (SplitAngle.MaxTolerance) 
 - maximum possible tolerance among the resulting segments.</p></li>
	
	<li class=kadov-p><p class="whs9">Split Closed Faces 
 <span style="font-weight: normal;">(SplitClosedFaces)</span> - <span style="font-weight: normal;">splits 
 closed faces in segments. The number of segments depends on the number 
 of splitting points.</span></p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>Number of splitting points</B></span> (SplitClosedFaces.NbSplitPoints) 
 - the number of splitting points.</p></li>
	
	<li class=kadov-p><p class="whs9">Split Continuity<span 
 style="font-weight: normal;"> (SplitContinuity) - splits shapes to reduce 
 continuities of curves and surfaces.</span></p></li>
	
	<li class=kadov-p><p class="whs10">3D Tolerance<span style="font-weight: normal;"> 
 (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.</span></p></li>
	
	<li class=kadov-p><p class="whs10">Surface Continuity<span 
 style="font-weight: normal;"> (SplitContinuity.SurfaceContinuity) - required 
 continuity for surfaces.</span></p></li>
	
	<li class=kadov-p><p class="whs10">Curve Continuity <span 
 style="font-weight: normal;">(SplitContinuity.CurveContinuity)</span> 
 - <span style="font-weight: normal;">required continuity for curves.</span></p></li>
</ul>

<p class="whs11">This and the previous parameters can 
 take the following values:</p>

<p class="whs12"><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;"><span 
 style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">P</font></span>arametric Continuity 
 </font></span></p>

<p class="whs12"><span style="font-weight: bold;"><B>C0</B></span> 
 (Positional Continuity): curves are joined (the end positions of curves 
 or surfaces are coincidental. The curves or surfaces may still meet at 
 an angle, giving rise to a sharp corner or edge).</p>

<p class="whs12"><span style="font-weight: bold;"><B>C1</B></span> 
 (Tangential Continuity): first derivatives are equal (the end vectors 
 of curves or surfaces are parallel, ruling out sharp edges). </p>

<p class="whs12"><span style="font-weight: bold;"><B>C2</B></span> 
 (Curvature Continuity): first and second derivatives are equal (the end 
 vectors of curves or surfaces are of the same magnitude).</p>

<p class="whs12"><span style="font-weight: bold;"><B>CN</B></span> 
 N-th derivatives are equal (both the direction and the magnitude of the 
 Nth derivatives of curves or surfaces (d/du C(u)) are the same at junction.</p>

<p class="whs12">Geometric Continuity </p>

<p class="whs12"><span style="font-weight: bold;"><B>G1</B></span>: 
 first derivatives are proportional at junction</p>

<p class="whs12">The curve tangents thus have the same 
 direction, but not necessarily the same magnitude. i.e., C1'(1) = (a,b,c) 
 and C2'(0) = (k*a, k*b, k*c). </p>

<p class="whs12"><span style="font-weight: bold;"><B>G2</B></span>: 
 first and second derivatives are proportional at junction </p>

<p class="whs12">As the names imply, geometric continuity 
 requires the geometry to be continuous, while parametric continuity requires 
 that the underlying parameterization was continuous as well. </p>

<p class="whs12">Parametric continuity of order n implies 
 geometric continuity of order n, but not vice-versa. </p>

<ul type="disc" class="whs6">
	
	<li class=kadov-p><p class="whs13"><span style="font-weight: bold;"><B>Bspline 
 Restriction</B></span> (BsplineRestriction) - converts curves and surfaces 
 to Bsplines and processes them with the following parameters:</p></li>
	
	<li class=kadov-p><p class="whs14">Surface Mode<span style="font-weight: normal;"> 
 (BSplineRestriction.SurfaceMode) - approximation of surfaces if restriction 
 is necessary.</span></p></li>
	
	<li class=kadov-p><p class="whs14">3D Curve Mode<span 
 style="font-weight: normal;"> (BSplineRestriction.Curve3dMode) - conversion 
 of any 3D curve to BSpline and approximation.</span></p></li>
	
	<li class=kadov-p><p class="whs14">2D Curve Mode<span 
 style="font-weight: normal;"> (BSplineRestriction.Curve2dMode) -</span> 
 <span style="font-weight: normal;">conversion of any 2D curve to BSpline 
 and approximation.</span></p></li>
	
	<li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>3D 
 Tolerance</B></span> (BSplineRestriction.Tolerance3d) - defines the possibility 
 of surfaces and 3D curves approximation with the specified parameters.</p></li>
	
	<li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>2D 
 Tolerance</B></span> (BSplineRestriction.Tolerance2d) - defines the possibility 
 of surfaces and 2D curves approximation with the specified parameters.</p></li>
	
	<li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Required 
 Degree</B></span> (BSplineRestriction.RequiredDegree) - required degree of 
 the resulting BSplines.</p></li>
	
	<li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Required 
 number of segments</B></span> (BSplineRestriction.RequiredNbSegments) - required 
 maximum number of segments of resultant BSplines</p></li>
	
	<li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>3D 
 Continuity</B></span> (BSplineRestriction.Continuity3d) - continuity of the 
 resulting surfaces and 3D curves.</p></li>
	
	<li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>2D 
 Continuity</B></span> (BSplineRestriction.Continuity2d) - continuity of the 
 resulting 2D curves.</p></li>
	
	<li class=kadov-p><p class="whs8"><span 
 style="font-weight: bold;"><B>To Bezier</B></span> (ToBezier) - converts curves 
 and surfaces of any type to Bezier curves and surfaces. </p></li>
	
	<li class=kadov-p><p class="whs14">Surface Mode<span style="font-weight: normal;"> 
 (ToBezier.SurfaceMode) - if checked in, allows conversion of surfaces.</span></p></li>
	
	<li class=kadov-p><p class="whs14">3D Curve Mode <span 
 style="font-weight: normal;">(ToBezier.Curve3dMode) - if checked in, allows 
 conversion of 2D curves.</span></p></li>
	
	<li class=kadov-p><p class="whs14">2D Curve Mode <span 
 style="font-weight: normal;">(ToBezier.Curve2dMode) - if checked in, allows 
 conversion of 3D curves.</span></p></li>
	
	<li class=kadov-p><p class="whs14">Max Tolerance<span 
 style="font-weight: normal;"> (ToBezier.MaxTolerance) </span>- <span style="font-weight: normal;">defines</span> 
 <span style="font-weight: normal;">tolerance for detection and correction 
 of problems.</span> </p></li>
	
	<li class=kadov-p><p class="whs15">Same Parameter<span 
 style="font-weight: normal;"> (SameParameter) � &nbsp;fixes 
 edges of 2D and 3D curves not having the same parameter.</span> </p></li>
	
	<li class=kadov-p><p class="whs7"><span 
 style="font-weight: bold;"><B>3D Tolerance</B></span> (SameParameter.Tolerance3d) 
 � defines<span style="font-weight: bold;"> <B></B></span>tolerance for fixing 
 of edges.<span style="font-weight: bold;"> <B></B></span></p></li>
</ul>

<p class="whs2">&nbsp;</p>

<p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p>

<p class="whs2">&nbsp;</p>

<p class="whs3"><img src="pics/repair1.png" x-maintain-ratio="TRUE" width="403px" height="469px" border="0" class="img_whs4"></p>

<p class="whs3">&nbsp;</p>

<p class="whs2">&nbsp;</p>

<p class="whs2"><b style="font-weight: bold;">Example:</b></p>

<p>&nbsp;</p>

<p class="whs2">Shape before applying Shape Processing (FixShape 
 operator).</p>

<p class="whs2">&nbsp;</p>

<p class="whs3"><img src="image154.jpg" width="300px" height="214px" border="0" class="img_whs16"> &nbsp;&nbsp;&nbsp;<img src="image156.jpg" width="244px" height="214px" border="0" class="img_whs17"></p>

<p class="whs18">&nbsp;</p>

<p class="whs19">The 
 same shape after applying Shape Processing.</p>

<p class="whs18">&nbsp;</p>

<p class="whs3"><img src="image160.jpg" width="239px" height="214px" border="0" class="img_whs20"></p>

<p class="whs21">&nbsp;</p>

<p class="whs21"><span style="font-weight: normal;">Our</span> 
 TUI Scripts<span style="font-weight: normal;"> provide you with useful 
 examples of the use of</span> <a href="repairing_operations.htm#bookmark">Repairing 
 Operations</a>. </p>

<p>&nbsp;</p>

<script type="text/javascript" language="javascript1.2">
<!--
if (window.writeIntopicBar)
	writeIntopicBar(0);
//-->
</script>
</body>
</html>