geom/doc/salome/gui/GEOM/shape_processing.htm
2007-02-07 11:23:40 +00:00

389 lines
16 KiB
HTML
Executable File
Raw Blame History

<!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 (<28>FixShape.Tolerance3d<33>, 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) <20> &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)
<20> 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>