<!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 - ></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"> </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"> </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 ("FixShape", "SplitClosedFaces", 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"> </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"> </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"> </p> <p class="whs5">Operators and Parameters<span style="font-weight: normal;"> (TUI names are given in brackets)</span></p> <p class="whs2"> </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) - 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 . </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) � 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"> </p> <p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p> <p class="whs2"> </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"> </p> <p class="whs2"> </p> <p class="whs2"><b style="font-weight: bold;">Example:</b></p> <p> </p> <p class="whs2">Shape before applying Shape Processing (FixShape operator).</p> <p class="whs2"> </p> <p class="whs3"><img src="image154.jpg" width="300px" height="214px" border="0" class="img_whs16"> <img src="image156.jpg" width="244px" height="214px" border="0" class="img_whs17"></p> <p class="whs18"> </p> <p class="whs19">The same shape after applying Shape Processing.</p> <p class="whs18"> </p> <p class="whs3"><img src="image160.jpg" width="239px" height="214px" border="0" class="img_whs20"></p> <p class="whs21"> </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> </p> <script type="text/javascript" language="javascript1.2"> <!-- if (window.writeIntopicBar) writeIntopicBar(0); //--> </script> </body> </html>