smesh_hha.hhk\r
smesh.hhc\r
smesh.hhk\r
+extrusion.htm\r
files\1d_meshing_algorithm.htm\r
files\2d_(quadrangle)_meshing_algorithm.htm\r
files\2d_meshing_algorithm.htm\r
files\changing_orientation_of_elements.htm\r
files\computing_meshes.htm\r
files\connectivity.htm\r
+files\constructing_groups_of_specific_elements.htm\r
files\constructing_meshes.htm\r
files\constructing_submeshes.htm\r
+files\creating_groups.htm\r
+files\cutting_quadrangles.htm\r
files\deflection_1d.htm\r
files\diagonal_iversion_of_elements.htm\r
files\displacing_nodes.htm\r
files\displaying_elements_numbers.htm\r
files\displaying_nodes_numbers.htm\r
+files\editing_groups.htm\r
files\editing_hypotheses.htm\r
files\importing_and_exporting_meshes.htm\r
files\introduction_to_smesh.htm\r
files\local_length_hypothesis.htm\r
files\max._element_area_hypothesis.htm\r
files\max._element_volume_hypothsis.htm\r
+files\merging_nodes.htm\r
files\minimum_angle.htm\r
files\non_conform_mesh_allowed_hypothesis.htm\r
files\number_of_segments_hypothesis.htm\r
files\propagation_of_1d_hypothesis_on_opposite_edges.htm\r
files\reassigning_hypotheses_and_algorithms.htm\r
files\removing_nodes_and_elements.htm\r
+files\renumbering_nodes_and_elements.htm\r
+files\rotation.htm\r
files\running_smesh_module.htm\r
files\scalar_bar_properties.htm\r
+files\sewing_meshes.htm\r
files\shading.htm\r
files\shrink.htm\r
files\skew.htm\r
+files\smoothing.htm\r
files\start_and_end_length_hypothesis.htm\r
+files\symmetry.htm\r
files\taper.htm\r
+files\tetrahedron_(ghs3d)_meshing_algorithm.htm\r
files\tetrahedron_(netgen)_meshing_algorithm.htm\r
+files\translation.htm\r
+files\uniting_a_set_of_triangles.htm\r
+files\uniting_two_triangles.htm\r
+files\using_operations_on_groups.htm\r
files\using_smesh_module.htm\r
files\view_update.htm\r
files\viewing_mesh_info.htm\r
files\visualization_properties.htm\r
files\warp.htm\r
files\wireframe.htm\r
-tetrahedron_(ghs3d)_meshing_algorithm.htm\r
+pattern_mapping.htm\r
+revolution.htm\r
ehlpdhtm.js\r
texture_horiz_ltbluebubbles.jpg\r
smesh.glo\r
default.css\r
+image96.gif\r
+image77.jpg\r
+image66.jpg\r
+image55.jpg\r
+image85.gif\r
+image74.gif\r
+image44.jpg\r
+image63.gif\r
+image22.jpg\r
+image11.jpg\r
+image41.gif\r
+image97.gif\r
+image78.jpg\r
+image67.jpg\r
+image75.gif\r
+image45.jpg\r
+image34.jpg\r
+image64.gif\r
+image23.jpg\r
+image12.jpg\r
+image31.gif\r
+image98.gif\r
+image87.gif\r
+image68.jpg\r
+image57.jpg\r
+image76.gif\r
+image46.jpg\r
+image35.jpg\r
+image65.gif\r
+image43.gif\r
+image32.gif\r
+image24.jpg\r
+image88.gif\r
+image69.jpg\r
+image58.jpg\r
+image77.gif\r
+image47.jpg\r
+image36.jpg\r
+image66.gif\r
image44.gif\r
image33.gif\r
image22.gif\r
image25.jpg\r
-image12.gif\r
-image3.jpg\r
+image89.gif\r
+image59.jpg\r
+image78.gif\r
+image48.jpg\r
+image67.gif\r
image34.gif\r
image26.jpg\r
-image13.gif\r
+image79.gif\r
+image49.jpg\r
+image38.jpg\r
+image68.gif\r
+image57.gif\r
image16.jpg\r
-image4.jpg\r
image46.gif\r
image35.gif\r
image27.jpg\r
image24.gif\r
-image14.gif\r
-image17.jpg\r
-image2.gif\r
+image39.jpg\r
+image69.gif\r
+image3.jpg\r
+pics\exemple.gif\r
image36.gif\r
image28.jpg\r
image25.gif\r
-image15.gif\r
image18.jpg\r
-image6.jpg\r
-image48.gif\r
+image4.jpg\r
image37.gif\r
image29.jpg\r
image26.gif\r
note1.gif\r
-image16.gif\r
-image4.gif\r
-image7.jpg\r
-image49.gif\r
+image2.gif\r
image38.gif\r
image27.gif\r
-image8.jpg\r
+image80.jpg\r
+image6.jpg\r
image39.gif\r
image28.gif\r
+image81.jpg\r
+image70.jpg\r
+image4.gif\r
+image7.jpg\r
+image29.gif\r
+pics\new.jpg\r
+image90.gif\r
+image71.jpg\r
+image60.jpg\r
+image8.jpg\r
+image91.gif\r
+image72.jpg\r
+image61.jpg\r
+image50.jpg\r
+image80.gif\r
image6.gif\r
image9.jpg\r
-pics\exemple.gif\r
-image29.gif\r
+image92.gif\r
+image73.jpg\r
+image62.jpg\r
+image51.jpg\r
+image81.gif\r
+image40.jpg\r
+image70.gif\r
image7.gif\r
i_blue.jpg\r
+image93.gif\r
+image74.jpg\r
+image63.jpg\r
+image52.jpg\r
+image82.gif\r
+image41.jpg\r
+image71.gif\r
+image30.jpg\r
image8.gif\r
+image94.gif\r
+image75.jpg\r
+image64.jpg\r
+image53.jpg\r
+image83.gif\r
+image42.jpg\r
+image72.gif\r
+image61.gif\r
+image31.jpg\r
image9.gif\r
-pics\new.jpg\r
image20.jpg\r
+image95.gif\r
+image76.jpg\r
+image65.jpg\r
+image54.jpg\r
+image84.gif\r
+image43.jpg\r
+image73.gif\r
+image32.jpg\r
image21.jpg\r
image10.jpg\r
image40.gif\r
-image11.jpg\r
-image41.gif\r
-image12.jpg\r
-image31.gif\r
-image43.gif\r
-image32.gif\r
-image24.jpg\r
smesh.ppf\r
default_ns.css\r
whdata\whtdata0.xml\r
whgdata\whlstt10.htm\r
whgdata\whlstt11.htm\r
whgdata\whlstt12.htm\r
+whgdata\whlstt13.htm\r
whgdata\whlsti0.htm\r
whgdata\whlstfl0.htm\r
whgdata\whlstfl1.htm\r
whgdata\whlstfl20.htm\r
whgdata\whlstfl21.htm\r
whgdata\whlstfl22.htm\r
+whgdata\whlstfl23.htm\r
whgdata\whlstf0.htm\r
whgdata\whlstf1.htm\r
whgdata\whlstf2.htm\r
whgdata\whlstf3.htm\r
whgdata\whlstf4.htm\r
+whgdata\whlstf5.htm\r
+whgdata\whlstf6.htm\r
+whgdata\whlstf7.htm\r
whgdata\whlstg0.htm\r
smesh.htm\r
smesh_csh.htm\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Extrusion</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1041>\r
+<meta name=layout-width content=765>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 27px; height: 24px;}\r
+img_whs3 {border-style: none; border: none; width: 523px; height: 307px;}\r
+ul.whs4 {list-style: disc;}\r
+table.whs5 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs6 {width: 50%;}\r
+tr.whs7 {x-cell-content-align: top;}\r
+td.whs8 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs9 {border-style: none; border: none; width: 350px; height: 201px;}\r
+td.whs10 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nExtrusion");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Extrusion</h1>\r
+\r
+<p>Extrusion is a type of surface meshing by generation from discretized \r
+ lines. It is used to build mesh elements of plus one dimension than the \r
+ swept ones. Each swept 1D element produces one or more quadrangles (or \r
+ triangles if one node of a rotated element lays on the revolution axis).</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To use extrusion:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item \r
+ or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="image90.gif" width="523px" height="307px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. In this dialog box you should select </p>\r
+\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p class="whs1">the type of elements \r
+ which will be extruded (1D or 2D),</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">specify the IDs of \r
+ the elements which will be extruded by selecting them in the 3D viewer \r
+ or select the whole mesh or submesh,</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">specify the vector \r
+ along which the elements will be extruded,</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">number of steps</p></li>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class=TODO\r
+ style="margin-left: 40px;"> </p>\r
+\r
+<p> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
+<col class="whs6">\r
+<col class="whs6">\r
+\r
+<tr valign="top" class="whs7">\r
+<td width="50%" class="whs8">\r
+<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>\r
+<td width="50%" class="whs10">\r
+<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>\r
+</table>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 22px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- ></B></span> <img src="../image16.gif" width="22px" height="22px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Wire discretization \r
- </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 21px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- > <img src="../image14.gif" width="22px" height="21px" border="0" class="img_whs3"> Quadrangle (Mapping) </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=553>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 22px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- ></B></span> <img src="../image15.gif" width="22px" height="22px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Triangle \r
- (Mefisto) </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 23px; height: 21px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- ></B></span> <img src="../image13.gif" width="23px" height="21px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Hexahedron \r
- (i,j,k) </B></span>and \r
- click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=1162>\r
-<meta name=layout-width content=473>\r
+<meta name=layout-height content=1305>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
ul.whs2 {list-style: disc;}\r
p.whs3 {background-color: Transparent; color: #000000;}\r
-p.whs4 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
-img_whs5 {border-style: none; border: none; width: 22px; height: 22px;}\r
-img_whs6 {border-style: none; border: none; width: 448px; height: 367px;}\r
+ol.whs4 {list-style: disc;}\r
+p.whs5 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
+img_whs6 {border-style: none; border: none; width: 22px; height: 22px;}\r
+p.whs7 {margin-left: 40px;}\r
+img_whs8 {border-style: none; border: none; width: 448px; height: 367px;}\r
+img_whs9 {border-style: none; border: none; width: 271px; height: 124px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript">\r
meshing of <span style="font-weight: bold;"><B>faces</B></span>: </p></li>\r
</ul>\r
\r
-<ul type="disc" class="whs2">\r
+<ol type="disc" class="whs4">\r
\r
<ul type="disc" class="whs2">\r
\r
\r
<li class=kadov-p><p class="whs3"><a href="non_conform_mesh_allowed_hypothesis.htm">Non conform mesh allowed</a></p></li>\r
</ul>\r
-</ul>\r
+</ol>\r
\r
<ul type="disc" class="whs2">\r
\r
\r
<p> </p>\r
\r
-<p class="whs4">To create a hypothesis \r
- </p>\r
+<p class="whs5"><a name=CreateHyp></a>To \r
+ create a hypothesis </p>\r
\r
<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">In the main menu select</font></span><span style="font-style: italic;\r
font-size: 12pt;\r
font-family: 'Arial Black', sans-serif;"> <font size=3 style="font-size:12pt;"><I></I></font></span><span style="font-weight: bold;"><B>Hypotheses \r
- > </B></span><img src="../image7.gif" width="22px" height="22px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Create hypotheses</B></span></p>\r
+ > </B></span><img src="../image7.gif" width="22px" height="22px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Create hypotheses</B></span></p>\r
\r
<p>The following menu will appear:</p>\r
\r
<p> </p>\r
\r
-<p><img src="../image21.jpg" width="448px" height="367px" border="0" class="img_whs6"></p>\r
+<p class="whs7"><img src="../image21.jpg" width="448px" height="367px" border="0" class="img_whs8"></p>\r
+\r
+<p> </p>\r
+\r
+<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>. \r
+ A data input dialog box corresponding to the chosen type of the hypotheses \r
+ will appear. The created hypotheses shall appear in the Object Browser \r
+ under the <span style="font-weight: bold;"><B>Hypotheses </B></span>folder:</p>\r
\r
<p> </p>\r
\r
-<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p> </p>\r
+\r
+<p class="whs7"><img src="../image42.jpg" width="271px" height="124px" border="0" class="img_whs9"></p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
\r
<li class=kadov-p><p>create your own meshes using the SMESH functions \r
destined for modification of generated meshes. More about this functionality \r
- of SMESH <a href="about_modification_of_meshes.htm">see here</a>. </p></li>\r
+ of SMESH see in the chapter "Modifying meshes". </p></li>\r
</ul>\r
\r
<p> </p>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=891>\r
-<meta name=layout-width content=486>\r
+<meta name=layout-height content=1028>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
ul.whs2 {list-style: disc;}\r
-ol.whs3 {list-style: disc;}\r
-ul.whs4 {list-style: circle;}\r
-p.whs5 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
-img_whs6 {border-style: none; border: none; width: 23px; height: 22px;}\r
+ul.whs3 {list-style: circle;}\r
+p.whs4 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
+img_whs5 {border-style: none; border: none; width: 23px; height: 22px;}\r
+p.whs6 {margin-left: 40px;}\r
img_whs7 {border-style: none; border: none; width: 464px; height: 324px;}\r
+img_whs8 {border-style: none; border: none; width: 270px; height: 99px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
\r
<p> </p>\r
\r
-<ol type="disc" class="whs3">\r
+<ul type="disc" class="whs2">\r
\r
<ul type="disc" class="whs2">\r
\r
class=kadov-p><p><a href="1d_meshing_algorithm.htm">Wire discretization \r
meshing algorithm</a></p></li>\r
</ul>\r
-</ol>\r
+</ul>\r
\r
<p> </p>\r
\r
\r
<p> </p>\r
\r
-<ol type="disc" class="whs3">\r
+<ul type="disc" class="whs2">\r
\r
- <ul type="circle" class="whs4">\r
+ <ul type="circle" class="whs3">\r
\r
<li class=kadov-p><p><a href="2d_meshing_algorithm.htm">Triangle \r
meshing algorithm</a></p></li>\r
<li class=kadov-p><p><a href="2d_(quadrangle)_meshing_algorithm.htm">Quadrangle \r
meshing algorithm</a></p></li>\r
</ul>\r
-</ol>\r
+</ul>\r
\r
<p> </p>\r
\r
\r
<p> </p>\r
\r
-<ol type="disc" class="whs3">\r
+<ul type="disc" class="whs2">\r
\r
- <ul type="circle" class="whs4">\r
+ <ul type="circle" class="whs3">\r
\r
<li class=kadov-p><p><a href="3d_meshing_algorithm.htm">Hexahedron \r
meshing algorithm</a></p></li>\r
<li class=kadov-p><p><a href="tetrahedron_(netgen)_meshing_algorithm.htm">Tetrahedron \r
meshing algorithm</a></p></li>\r
</ul>\r
-</ol>\r
+</ul>\r
\r
<p> </p>\r
\r
-<p class="whs5"><span style="font-style: italic;\r
- font-size: 12pt;\r
- font-family: 'Arial Black', sans-serif;"><font size=3 style="font-size:12pt;"><I>To apply a meshing algorithm \r
- </I></font></span></p>\r
+<p class="whs4"><a name=ApplyAlgo></a>To \r
+ apply a meshing algorithm </p>\r
\r
<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">In the main menu select</font></span><span style="font-style: italic;\r
font-size: 12pt;\r
font-family: 'Arial Black', sans-serif;"> <font size=3 style="font-size:12pt;"><I></I></font></span><span style="font-weight: bold;"><B>Hypotheses \r
- > </B></span><img src="../image8.gif" width="23px" height="22px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Create Algorithms</B></span></p>\r
+ > </B></span><img src="../image8.gif" width="23px" height="22px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Create Algorithms</B></span></p>\r
\r
<p>The following menu will appear:</p>\r
\r
<p> </p>\r
\r
-<p><img src="../image20.jpg" width="464px" height="324px" border="0" class="img_whs7"></p>\r
+<p class="whs6"><img src="../image20.jpg" width="464px" height="324px" border="0" class="img_whs7"></p>\r
\r
<p> </p>\r
\r
-<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>. \r
+ The created algorithms shall appear in the Object Browser under the <span \r
+ style="font-weight: bold;"><B>Algorithms </B></span>folder:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs6"><img src="../image43.jpg" width="270px" height="99px" border="0" class="img_whs8"></p>\r
+\r
+<p class="whs6"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=generator-minor-version content=1>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nModifying meshes\nAbout modification of meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+ addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
if (window.writeBtnStyle)\r
</script>\r
<h1>About modification of meshes</h1>\r
\r
-<p>Type topic text here.</p>\r
+<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=generator-minor-version content=1>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=3638>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+ul.whs1 {list-style: disc;}\r
+p.whs2 {font-weight: bold;}\r
+p.whs3 {margin-left: 40px;}\r
+img_whs4 {border-style: none; border: none; width: 157px; height: 132px;}\r
+img_whs5 {border-style: none; border: none; width: 250px; height: 127px;}\r
+img_whs6 {border-style: none; border: none; width: 350px; height: 181px;}\r
+img_whs7 {border-style: none; border: none; width: 250px; height: 170px;}\r
+img_whs8 {border-style: none; border: none; width: 350px; height: 183px;}\r
+img_whs9 {border-style: none; border: none; width: 250px; height: 194px;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 182px;}\r
+h4.whs11 {margin-left: 40px;}\r
+img_whs12 {border-style: none; border: none; width: 250px; height: 195px;}\r
+img_whs13 {border-style: none; border: none; width: 250px; height: 171px;}\r
+img_whs14 {border-style: none; border: none; width: 350px; height: 184px;}\r
+img_whs15 {border-style: none; border: none; width: 250px; height: 172px;}\r
+-->\r
+</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
</script>\r
<h1>Adding nodes and elements</h1>\r
\r
-<p>Type topic text here.</p>\r
+<p>In SMESH you can add to your mesh different elements such as:</p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs1">\r
+ \r
+ <li class=kadov-p><p class="whs2">Nodes</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2">Edges</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2">Triangles</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2">Quadrangles</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2">Tetrahedrons</p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Hexahedrons</B></span></p></li>\r
+</ul>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To add a node or an element to your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs3">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item, \r
+ the following associated submenu will appear:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image73.gif" width="157px" height="132px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">From this submenu select the type of element \r
+ which you would like to add to your mesh. The corresponding dialog box \r
+ shall appear.</p>\r
+\r
+<h4>Adding nodes</h4>\r
+\r
+<p class="whs3"><img src="../image60.jpg" width="250px" height="127px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">In this dialog box set coordinates for your \r
+ node in the <span style="font-weight: bold;"><B>Coordinates </B></span>set of \r
+ fields and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your node will be created:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image66.jpg" width="350px" height="181px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h4>Adding edges</h4>\r
+\r
+<p> </p>\r
+\r
+<p class="whs3"><img src="../image65.jpg" width="250px" height="170px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your edge by selecting them in the 3D viewer with pressed Shift \r
+ button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your edge will be created:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image67.jpg" width="350px" height="183px" border="0" class="img_whs8"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h4>Adding triangles</h4>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image64.jpg" width="250px" height="194px" border="0" class="img_whs9"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your triangle by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your triangle will \r
+ be created:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image68.jpg" width="350px" height="182px" border="0" class="img_whs10"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h4>Adding quadrangles</h4>\r
+\r
+<h4 class="whs11"><img src="../image63.jpg" width="250px" height="195px" border="0" class="img_whs12"></h4>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your quadrangle by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your quadrangle will \r
+ be created:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image69.jpg" width="350px" height="183px" border="0" class="img_whs8"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h4>Adding tetrahedrons</h4>\r
+\r
+<p class="whs3"><img src="../image62.jpg" width="250px" height="171px" border="0" class="img_whs13"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your tetrahedron by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your tetrahedron will \r
+ be created:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image70.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
+\r
+<h4>Adding hexahedrons</h4>\r
+\r
+<p class="whs3"><img src="../image61.jpg" width="250px" height="172px" border="0" class="img_whs15"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your hexahedron by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your hexahedron will \r
+ be created:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image71.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=690>\r
-<meta name=layout-width content=402>\r
+<meta name=layout-height content=595>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Create \r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Arithmetic \r
- 1D </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. The \r
- following dialog box will appear:</p>\r
+<p class="whs2">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
\r
<p class="whs2"> </p>\r
\r
<meta name=generator-minor-version content=1>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=870>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 21px; height: 21px;}\r
+img_whs3 {border-style: none; border: none; width: 292px; height: 358px;}\r
+ul.whs4 {list-style: disc;}\r
+p.whs5 {margin-left: 40px; font-weight: normal;}\r
+-->\r
+</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
</script>\r
<h1>Changing orientation of elements</h1>\r
\r
-<p>Type topic text here.</p>\r
+<p>Orientation of an element is changed by reverting the order of nodes \r
+ of the selected elements.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To change orientation of elements:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Orientation </B></span>item \r
+ or click <img src="../image79.gif" width="21px" height="21px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ will appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs1"><img src="../image78.gif" width="292px" height="358px" border="0" class="img_whs3"></p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>The main list </B></span><span>shall contain the \r
+ elements which will be reoriented.</span> You can click on an element \r
+ in the 3D viewer and it will be highlighted. After that click the <span \r
+ style="font-weight: bold;"><B>Add </B></span>button and the ID of this element \r
+ will be added to the list. To remove a selected element or elements from \r
+ the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. \r
+ The <span style="font-weight: bold;"><B>Sort </B></span>button allows to sort \r
+ the list of elements IDs. The <span style="font-weight: bold;"><B>Set filter \r
+ </B></span>button allows to apply a definite filter to selection of elements \r
+ of your group.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
+ to modify the orientation of all elements of the currently displayed mesh \r
+ or submesh.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose elements will be automatically \r
+ added to the list.</p></li>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Constructing groups of specific elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nGrouping elements\nConstructing groups of specific elements");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Constructing groups of specific elements</h1>\r
+\r
+<p>In SMESH you can easily construct groups of specific elements (nodes, \r
+ edges or faces) which will be taken from a definite submesh.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To construct a group of specific elements:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">Right-click on a submesh in the Object Browser \r
+ and choose the <span style="font-weight: bold;"><B>Construct Group </B></span>item \r
+ or select your submesh in the Object Browser and in the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu chose the <span style="font-weight: bold;"><B>Construct Group \r
+ </B></span>item. SMESH will construct several groups consisting of elements \r
+ of the definite type: nodes, edges or faces</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=653>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=966>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
img_whs4 {border-style: none; border: none; width: 22px; height: 24px;}\r
p.whs5 {margin-left: 80px;}\r
img_whs6 {border-style: none; border: none; width: 304px; height: 305px;}\r
+img_whs7 {border-style: none; border: none; width: 268px; height: 161px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript">\r
\r
<p class="whs5"> </p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3">In the Object Browser the structure of the \r
+ new mesh will be displayed as follows:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image44.jpg" width="268px" height="161px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">It contains:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<ul type="disc" class="whs2">\r
+ \r
+ <li class=kadov-p><p class="whs3">a reference to the \r
+ geometrical object on the basis of which the mesh has been constructed;</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ hypotheses </B></span>folder containing the references to the hypotheses applied \r
+ to the construction of the mesh;</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ algorithms </B></span>folder containing the references to the algorithms applied \r
+ to the construction of the mesh.</p></li>\r
+</ul>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=688>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=1175>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
img_whs4 {border-style: none; border: none; width: 27px; height: 25px;}\r
p.whs5 {margin-left: 80px;}\r
img_whs6 {border-style: none; border: none; width: 304px; height: 339px;}\r
+img_whs7 {border-style: none; border: none; width: 299px; height: 221px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript">\r
\r
<p class="whs5"> </p>\r
\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs3">In the Object Browser the structure of the \r
+ new submesh will be displayed as follows:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"><img src="../image45.jpg" width="299px" height="221px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3">It contains:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<ul type="disc" class="whs2">\r
+ \r
+ <li class=kadov-p><p class="whs3">a reference to the \r
+ geometrical object on the basis of which the submesh has been constructed;</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ hypotheses </B></span>folder containing the references to the hypotheses applied \r
+ to the construction of the submesh;</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ algorithms </B></span>folder containing the references to the algorithms applied \r
+ to the construction of the submesh.</p></li>\r
+</ul>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5"> </p>\r
+\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Creating groups</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1562>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {font-weight: bold;}\r
+img_whs2 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs3 {margin-left: 40px;}\r
+p.whs4 {font-weight: normal;}\r
+p.whs5 {font-weight: bold; margin-left: 40px;}\r
+img_whs6 {border-style: none; border: none; width: 200px; height: 374px;}\r
+p.whs7 {margin-left: 40px; font-weight: normal;}\r
+ul.whs8 {list-style: disc;}\r
+p.whs9 {margin-left: 40px; font-weight: bold;}\r
+p.whs10 {margin-left: 80px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nGrouping elements\nCreating groups");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Creating groups</h1>\r
+\r
+<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: normal;">In \r
+ SMESH you can create groups of elements of different types and having \r
+ definite properties.</span></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class=TODO>To create a group of elements:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span><span>menu select </span><span style="font-weight: bold;"><B>Create \r
+ Group</B></span><span>. The following dialog box will appear:</span></p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs5"> <img src="../image47.jpg" width="200px" height="374px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs7">This dialog box contains \r
+ the following fields which should be filled:</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<ul type="disc" class="whs8">\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Mesh: </B></span>the name of the mesh whose elements \r
+ will form your group. You can enter the name manually or select your mesh \r
+ in the Objet Browser or in the 3D viewer.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Elements Type </B></span>set of radio buttons allows \r
+ to select the type of elements which will form your group:</p></li>\r
+ \r
+ <ul type="disc" class="whs8">\r
+ \r
+ <li class=kadov-p><p class="whs9">Nodes</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs9">Edges \r
+ </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs9">Faces</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs9">Volumes</p></li>\r
+ </ul>\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Name </B></span><span>field allows to enter the \r
+ name of your new group.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Group type </B></span>set of radio buttons allows \r
+ to select the type of your group: </p></li>\r
+ \r
+ <ul type="disc" class="whs8">\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Standalone group </B></span> consisting \r
+ of mesh elements.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Group on geometry </B></span><span>consisting of \r
+ geometrical elements.</span> If you choose this type of group your dialog \r
+ box will change and it will look like as follows:</p></li>\r
+ </ul>\r
+</ul>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs10"><img src="../image48.jpg" width="200px" height="374px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs10"> </p>\r
+\r
+<p class="whs10">In this dialog box you should enter the name \r
+ of the geometrical object (you can enter the name manually or select your \r
+ geometrical object in the Objet Browser or in the 3D viewer) from which \r
+ the elements will be taken. And after confirmation of the operation SMESH \r
+ will create a new group consisting of geometrical elements of the previously \r
+ defined type.</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<ul type="disc" class="whs8">\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Content </B></span>field<span style="font-weight: bold;"> \r
+ <B></B></span>allows to manually define the mesh elements which will form your \r
+ group. You can click on an element in the 3D viewer and it will be highlighted. \r
+ After that click the <span style="font-weight: bold;"><B>Add </B></span>button \r
+ and the ID of this element will be added to the list. To remove a selected \r
+ element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
+ </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
+ allows to sort the list of elements IDs. The <span style="font-weight: bold;"><B>Set \r
+ filter </B></span><span>button allows to apply a definite filter to selection \r
+ of the elements of your group.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose elements of the previously \r
+ defined type will be added to the list of elements which will form your \r
+ group.</p></li>\r
+</ul>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span><span>button to confirm creation of your group or </span><span \r
+ style="font-weight: bold;"><B>Cancel </B></span><span>to quit this dialog box.</span></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Cutting quadrangles</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1356>\r
+<meta name=layout-width content=771>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 25px; height: 22px;}\r
+img_whs4 {border-style: none; border: none; width: 292px; height: 412px;}\r
+ul.whs5 {list-style: disc;}\r
+p.whs6 {margin-left: 40px; font-weight: normal;}\r
+p.whs7 {margin-left: 0px;}\r
+table.whs8 {x-cell-content-align: top; width: 100%; border-spacing: 0; border-spacing: 0px;}\r
+col.whs9 {width: 50%;}\r
+tr.whs10 {x-cell-content-align: top;}\r
+td.whs11 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs12 {border-style: none; border: none; width: 353px; height: 300px;}\r
+td.whs13 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs7 {margin-left:1; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nCutting quadrangles");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Cutting quadrangles</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This operation allows to cut one or several quadrangle \r
+ elements by addition of a supplementary edge which will connect two opposite \r
+ corners. </p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To cut quadrangles:</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Cutting of quadrangles \r
+ </B></span>item or click <img src="../image82.gif" width="25px" height="22px" border="0" class="img_whs3"> button in the toolbar. The following \r
+ dialog box will appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs2"><img src="../image50.jpg" width="292px" height="412px" border="0" class="img_whs4"></p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>The main list </B></span>shall contain the quadrangles \r
+ which will be cutted. You can click on an quadrangle in the 3D viewer \r
+ and it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
+ </B></span>button and the ID of this quadrangle will be added to the list. \r
+ To remove a selected element or elements from the list click the <span \r
+ style="font-weight: bold;"><B>Remove </B></span>button. The <span style="font-weight: bold;"><B>Sort \r
+ </B></span>button allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
+ filter </B></span>button allows to apply a definite filter to selection of \r
+ quadrangles.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to \r
+ modify the orientation of all quadrangles of the currently displayed mesh \r
+ or submesh.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Use diagonal 2-4 </B></span>radio button allows \r
+ to specify the opposite corners which will be connected by the cutting \r
+ edge.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Preview </B></span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose quadrangle elements will be \r
+ automatically added to the list.</p></li>\r
+</ul>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
+<col class="whs9">\r
+<col class="whs9">\r
+\r
+<tr valign="top" class="whs10">\r
+<td width="50%" class="whs11">\r
+<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs12"></td>\r
+<td width="50%" class="whs13">\r
+<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs12"></td></tr>\r
+</table>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
\r
<head>\r
\r
-<title>Deflection 1D</title>\r
+<title>Local Length hypothesis</title>\r
\r
<!--(Meta)==========================================================-->\r
\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=663>\r
-<meta name=layout-width content=402>\r
+<meta name=layout-height content=868>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<style type="text/css">\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 318px; height: 195px;}\r
-p.whs4 {margin-left: 0px;}\r
-ul.whs5 {list-style: disc;}\r
-p.whs6 {font-weight: bold;}\r
+p.whs2 {font-weight: bold; margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 367px; height: 224px;}\r
+p.whs4 {margin-left: 40px;}\r
+p.whs5 {margin-left: 80px;}\r
+img_whs6 {border-style: none; border: none; width: 304px; height: 233px;}\r
+p.whs7 {margin-left: 0px;}\r
+ul.whs8 {list-style: disc;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript">\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs4 {margin-left:1; }";\r
+ strNSS += "p.whs7 {margin-left:1; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>Deflection 1D hypothesis</h1>\r
+<h1>Average Length hypothesis</h1>\r
\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Deflection 1D</B></span> \r
- hypothesis is used to build 1D mesh on geometrical edges.</p>\r
-\r
-<p>A geometrical edge is divided into equal segments so that the maximum \r
- distance between the edge curve and the line connecting segment ends is \r
- not more than the specified deflection value. Then mesh nodes are constructed \r
- at segment ends location and 1D mesh elements are constructed on them.</p>\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Average Length </B></span>hypothesis \r
+ can be applied for meshing of edges composing your geometrical object. \r
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> \r
+ of segments, which will split these edges. The points on the edges generated \r
+ by these segments will represent nodes of your mesh. Later these nodes \r
+ will be used for meshing of the faces abutting to these edges.</p>\r
\r
<p> </p>\r
\r
-<p class=TODO>To define the Deflection 1D hypothesis:</p>\r
+<p class="whs2"><img src="../image41.gif" width="367px" height="224px" border="0" class="img_whs3"></p>\r
\r
-<p class=TODO> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Create \r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Deflection \r
- 1D </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. The \r
- following dialog box will appear:</p>\r
+<p class=TODO>To define the Average Length hypothesis:</p>\r
\r
-<p class="whs2"> </p>\r
+<p class=TODO> </p>\r
\r
-<p class="whs2"><img src="../image17.jpg" width="318px" height="195px" border="0" class="img_whs3"></p>\r
+<p class="whs4">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs4">In this dialog box you can set:</p>\r
+<p class="whs5"><img src="../image43.gif" width="304px" height="233px" border="0" class="img_whs6"></p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs7">In this dialog box you can set:</p>\r
\r
-<ul type="disc" class="whs5">\r
+<p class="whs7"> </p>\r
+\r
+<ul type="disc" class="whs8">\r
\r
- <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Deflection 1D hypothesis;</p></li>\r
+ <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name \r
+ </B></span>of your Average Length hypothesis</p></li>\r
\r
- <li class=kadov-p><p class="whs6">Deflection <span style="font-weight: normal;">value</span></p></li>\r
+ <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Length \r
+ </B></span>of segments which will split the edges of your geometrical object</p></li>\r
</ul>\r
\r
+<p class="whs7"> </p>\r
+\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=573>\r
+<meta name=layout-height content=745>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 24px; height: 22px;}\r
+img_whs3 {border-style: none; border: none; width: 298px; height: 150px;}\r
+table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs5 {width: 50%;}\r
+tr.whs6 {x-cell-content-align: top;}\r
+td.whs7 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs8 {border-style: none; border: none; width: 300px; height: 224px;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+-->\r
+</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
</script>\r
<h1>Diagonal inversion of elements</h1>\r
\r
-<p>Type topic text here.</p>\r
+<p> In SMESH \r
+ you can inverse the diagonal (edge) of a pseudo-quadrangle formed by two \r
+ neighboring triangles with one common edge.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To inverse the diagonal:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Diagonal inversion \r
+ </B></span>item or click <img src="../image70.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following \r
+ dialog box shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image69.gif" width="298px" height="150px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Enter the ID of the required edge in the \r
+ <span style="font-weight: bold;"><B>Edge </B></span> field \r
+ or select this edge in the 3D viewer. </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class=TODO\r
+ style="margin-left: 40px;"> </p>\r
+\r
+<p> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
+<col class="whs5">\r
+<col class="whs5">\r
+\r
+<tr valign="top" class="whs6">\r
+<td width="50%" class="whs7">\r
+<p><img src="../image38.jpg" width="300px" height="224px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="../image36.jpg" width="300px" height="224px" border="0" class="img_whs8"></td></tr>\r
+</table>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=949>\r
+<meta name=layout-width content=765>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 24px; height: 22px;}\r
+img_whs3 {border-style: none; border: none; width: 373px; height: 262px;}\r
+table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs5 {width: 50%;}\r
+tr.whs6 {x-cell-content-align: top;}\r
+td.whs7 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs8 {border-style: none; border: none; width: 350px; height: 224px;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 225px;}\r
+p.whs11 {margin-left: 0px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs11 {margin-left:1; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nModifying meshes\nDisplacing nodes");\r
+ addTocInfo("SMESH module\nModifying meshes\nMoving nodes");\r
addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>Displacing nodes</h1>\r
+<h1>Moving nodes</h1>\r
+\r
+<p>In SMESH you can change the location of any node of your mesh. In this \r
+ case all adjacent elements (edges) will be also transformed right after \r
+ the displaced node.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To displace a node:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Move node </B></span>item \r
+ or click <img src="../image67.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image68.gif" width="373px" height="262px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Enter the ID of the required node in the \r
+ <span style="font-weight: bold;"><B>Node ID </B></span> field \r
+ or select this node in the 3D viewer. The coordinates of your node will \r
+ be automatically displayed in the <span style="font-weight: bold;"><B>Coordinates \r
+ </B></span>set of fields.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Set new coordinates for your node in the \r
+ <span style="font-weight: bold;"><B>Coordinates </B></span>set of fields.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">4. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
+<col class="whs5">\r
+<col class="whs5">\r
+\r
+<tr valign="top" class="whs6">\r
+<td width="50%" class="whs7">\r
+<p><img src="../image35.jpg" width="350px" height="224px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="../image34.jpg" width="350px" height="225px" border="0" class="img_whs10"></td></tr>\r
+</table>\r
+\r
+<p class="whs11"> </p>\r
+\r
+<p class="whs1"> </p>\r
\r
-<p>Type topic text here.</p>\r
+<p class="whs11"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=687>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=706>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
\r
<p class="whs1"> </p>\r
\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Numbering \r
- </B></span>menu select<span style="font-weight: bold;"><B> Display Elements #</B></span>.</p>\r
+<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
+ and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
+ > Display Elements #</B></span>.</p>\r
\r
<p class="whs1"> </p>\r
\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=685>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=704>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
\r
<p class="whs1"> </p>\r
\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Numbering \r
- </B></span>menu select <span style="font-weight: bold;"><B> Display \r
- Nodes #</B></span>.</p>\r
+<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
+ and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
+ > Display Nodes #</B></span>.</p>\r
\r
<p class="whs1"> </p>\r
\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Editing groups</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=757>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 21px; height: 22px;}\r
+img_whs3 {border-style: none; border: none; width: 250px; height: 468px;}\r
+p.whs4 {font-weight: normal;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nGrouping elements\nEditing groups");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Editing groups</h1>\r
+\r
+<p class=TODO\r
+ style="margin-left: 0px;">To edit an existing group of elements:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. Select your group in the Object Browser \r
+ and in the <span style="font-weight: bold;"><B>Mesh </B></span>menu click the \r
+ <span style="font-weight: bold;"><B>Edit Group </B></span>item or <img src="../image74.gif" width="21px" height="22px" border="0" class="img_whs2"> icon in the toolbar. The following dialog box will appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image49.jpg" width="250px" height="468px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs1">In this dialog box you can modify the name<span \r
+ style="font-weight: bold;"> <B></B></span>of your group and add or remove the \r
+ elements forming it. For more information <a href="creating_groups.htm">see \r
+ here</a>.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B> Apply \r
+ </B></span><span>button to confirm modification of the group.</span></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=587>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 347px; height: 145px;}\r
+-->\r
+</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nEditing meshes\nEditing hypotheses");\r
+ addTocInfo("SMESH module\nEditing meshes\nEditing hypotheses and algorithms");\r
addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>Editing hypotheses</h1>\r
+<h1>Editing hypotheses and algorithms</h1>\r
+\r
+<p>In SMESH you can <span style="font-weight: bold;"><B>rename</B></span> created \r
+ and already applied hypotheses and algorithms and <span style="font-weight: bold;"><B>edit</B></span> \r
+ the input data of the created and already applied hypotheses.</p>\r
\r
<p> </p>\r
\r
+<p class=TODO>To rename a hypothesis or algorithm:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. Select the required hypothesis or algorithm \r
+ in the Object Browser and right-click on it. From the associated popup \r
+ menu select the <span style="font-weight: bold;"><B>Rename </B></span>item, the \r
+ following dialog box will appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image46.jpg" width="347px" height="145px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. In this dialog box enter a new name for \r
+ your hypothesis or algorithm and click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>button.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class=TODO>To edit the input data of a hypothesis:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. Select the required hypothesis in \r
+ the Object Browser and right-click on it. From the associated popup menu \r
+ select the <span style="font-weight: bold;"><B>Edit </B></span>item and in the \r
+ appeared dialog box (it will differ depending on the type of the edited \r
+ hypothesis) enter a new input value for your hypothesis.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>button to confirm your changes.</p>\r
+\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=287>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
\r
<p> </p>\r
\r
-<p class="whs2"> </p>\r
+<p> </p>\r
+\r
+<p class=TODO>To apply the Length from edges hypothesis:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2">Select this hypotheses in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
<p class="whs2"> </p>\r
\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=963>\r
-<meta name=layout-width content=429>\r
+<meta name=layout-height content=868>\r
+<meta name=layout-width content=741>\r
\r
\r
<!--(Links)=========================================================-->\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs4">From the <span style="font-weight: bold;"><B>Create \r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Average \r
- Length </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. \r
- The following dialog box will appear:</p>\r
+<p class="whs4">Select this hypotheses in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
\r
<p class="whs4"> </p>\r
\r
\r
<head>\r
\r
-<title>Max. Element Area hypothesis</title>\r
+<title>Length from edges</title>\r
\r
<!--(Meta)==========================================================-->\r
\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=644>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 80px;}\r
-img_whs4 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs5 {margin-left: 0px;}\r
-ul.whs6 {list-style: disc;}\r
-->\r
</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
- var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs5 {margin-left:1; }";\r
- strNSS +="</style>";\r
- document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>Max Element Area hypothesis</h1>\r
+<h1>Length from edges (2D hypothesis for Triangulator) hypothesis</h1>\r
\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
- can be applied for meshing of 2D faces composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
- area </B></span>of meshing elements (depending on the chosen meshing algorithm \r
- it can be <span style="font-weight: bold;"><B>triangles</B></span> or <span style="font-weight: bold;"><B>quadrangles</B></span>), \r
- which will compose the mesh of these 2D faces. </p>\r
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Length from edges</B></span> \r
+ hypothesis builds 1D mesh segments having a length calculated as an average \r
+ edge length for a given wire. </p>\r
\r
<p> </p>\r
\r
-<p class=TODO>To define the Max Element Area hypothesis:</p>\r
-\r
-<p class=TODO> </p>\r
-\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Max Element Area </B></span>and<span \r
- style="font-weight: bold;"> <B></B></span>click <span style="font-weight: bold;"><B>Create</B></span>. \r
- The following dialog box will appear:</p>\r
+<p>This hypothesis has no parameters.</p>\r
\r
-<p class="whs2"> </p>\r
+<p> </p>\r
\r
-<p class="whs3"><img src="../image48.gif" width="304px" height="233px" border="0" class="img_whs4"></p>\r
+<p> </p>\r
\r
-<p class="whs3"> </p>\r
+<p class=TODO>To apply the Length from edges hypothesis:</p>\r
\r
-<p class="whs5">In this dialog box you can set:</p>\r
+<p class=TODO> </p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs2">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
-<ul type="disc" class="whs6">\r
- \r
- <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Max Element Area hypothesis</p></li>\r
- \r
- <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Max. \r
- Area</B></span>:<span style="font-weight: bold;"> <B></B></span>the maximum area<span \r
- style="font-weight: bold;"> <B></B></span>of meshing elements</p></li>\r
-</ul>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs2"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
\r
<head>\r
\r
-<title>Max. Element volume hypothsis</title>\r
+<title>Non conform mesh allowed hypothesis</title>\r
\r
<!--(Meta)==========================================================-->\r
\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=663>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 80px;}\r
-img_whs4 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs5 {margin-left: 0px;}\r
-ul.whs6 {list-style: disc;}\r
-->\r
</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
- var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs5 {margin-left:1; }";\r
- strNSS +="</style>";\r
- document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>Max Element Volume hypothesis</h1>\r
+<h1>Non conform mesh allowed hypothesis</h1>\r
\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
- can be applied for meshing of 3D objects composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
- volume </B></span>of 3D meshing elements (depending on the chosen meshing \r
- algorithm it can be <span style="font-weight: bold;"><B>hexahedrons </B></span>or \r
- <span style="font-weight: bold;"><B>tetrahedrons</B></span>), which will compose \r
- the mesh of these 3D objects. </p>\r
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Non Conform mesh allowed</B></span> \r
+ hypothesis allows to generate non-conform meshes (that is, meshes having \r
+ some edges ending on an edge or face of adjacent elements). </p>\r
\r
<p> </p>\r
\r
-<p class=TODO>To define the Max Element Volume hypothesis:</p>\r
-\r
-<p class=TODO> </p>\r
+<p>This hypothesis has no parameters.</p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Max Element Volume \r
- </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. The following \r
- dialog box will appear:</p>\r
-\r
-<p class="whs2"> </p>\r
-\r
-<p class="whs3"><img src="../image49.gif" width="304px" height="233px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3"> </p>\r
-\r
-<p class="whs5">In this dialog box you can set:</p>\r
+<p> </p>\r
\r
-<p class="whs5"> </p>\r
+<p class=TODO>To apply this hypothesis:</p>\r
\r
-<ul type="disc" class="whs6">\r
- \r
- <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Max Element Volume hypothesis</p></li>\r
- \r
- <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Max. \r
- Volume</B></span>:<span style="font-weight: bold;"> <B></B></span>the maximum volume \r
- of 3D meshing elements</p></li>\r
-</ul>\r
+<p class=TODO> </p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Merging nodes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=747>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 258px; height: 450px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nMerging nodes");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Merging nodes</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows user to detect groups of coincident \r
+ nodes with desirable tolerance, edit these groups and merge.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To merge nodes of your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Merge nodes </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs2"><img src="../image53.jpg" width="258px" height="450px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">This dialog box allows to create groups of \r
+ coincident nodes and to merge them. </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=246>\r
-<meta name=layout-width content=560>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<style type="text/css">\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
\r
<p>This hypothesis has no parameters.</p>\r
\r
+<p> </p>\r
+\r
+<p class=TODO>To apply this hypothesis:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
+\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<style type="text/css">\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 0px;}\r
+p.whs2 {margin-left: 40px;}\r
-->\r
</style>\r
-<script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
- var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs2 {margin-left:1; }";\r
- strNSS +="</style>";\r
- document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
\r
<p> </p>\r
\r
-<p class="whs2"> </p>\r
+<p class=TODO>To apply this hypothesis:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=1107>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 300px; height: 449px;}\r
+ul.whs3 {list-style: disc;}\r
+p.whs4 {margin-left: 40px; font-weight: bold;}\r
+p.whs5 {margin-left: 0px;}\r
+img_whs6 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs5 {margin-left:1; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
</script>\r
<h1>Reassigning hypotheses and algorithms</h1>\r
\r
+<p>After you have created a mesh or submesh with definite applied hypotheses \r
+ and algorithms you can edit your mesh by <span style="font-weight: bold;"><B>assigning</B></span> \r
+ new hypotheses and algorithms or <span style="font-weight: bold;"><B>unassigning \r
+ </B></span>the applied hypotheses and algorithms.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To assign or unassign algorithms and hypotheses:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span><span>menu select the </span><span style="font-weight: bold;"><B>Edit \r
+ Hypothesis</B></span><span>, the following dialog box will appear:</span><span \r
+ style="font-weight: bold;"> <B></B></span></p>\r
+\r
<p> </p>\r
\r
+<p class="whs1"><img src="../image41.jpg" width="300px" height="449px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">This dialog box contains the following fields: \r
+ </p>\r
+\r
+<ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Mesh \r
+ or SubMesh </B></span>field: here you should enter the name of the mesh or \r
+ submesh for which you would like to assign or unassign hypotheses and \r
+ algorithms. It can be also done by choosing the required mesh or submesh \r
+ in the Object Browser or in the 3D viewer;</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs4">Hypotheses \r
+ <span style="font-weight: normal;">set of fields containing two columns: \r
+ </span></p></li>\r
+ \r
+ <ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p class="whs4">Available: \r
+ <span style="font-weight: normal;">the hypotheses which have been created \r
+ in the current study;</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs4"><span \r
+ style="margin-left: 40px; font-weight: bold;"><B>Used: </B></span><span style="margin-left: 40px; font-weight: normal;">the \r
+ hypotheses which have been applied to previously selected mesh or submesh.</span><span \r
+ style="margin-left: 40px; font-weight: bold;"> <B></B></span></p></li>\r
+ </ul>\r
+ \r
+ <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Algorithms \r
+ </B></span>set of fields containing two columns:</p></li>\r
+ \r
+ <ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p class="whs4">Available: \r
+ <span style="font-weight: normal;">the algorithms which have been created \r
+ in the current study.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs4">Used: \r
+ <span style="font-weight: normal;">the algorithms which have been applied \r
+ to previously selected mesh or submesh.</span> </p></li>\r
+ </ul>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Double-click on the definite algorithm \r
+ or hypothesis to move it from the <span style="font-weight: bold;"><B>Available \r
+ </B></span>column into the <span style="font-weight: bold;"><B>Used </B></span>column \r
+ and vice versa. Thus \r
+ you will be able to apply new hypotheses and algorithms to your mesh or \r
+ unassign<span style="font-weight: bold;"> <B></B></span>the applied hypotheses \r
+ and algorithms.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Confirm your changes by clicking the <span \r
+ style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs5">After modification of applied algorithms you \r
+ should recompute your mesh once again.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs5"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs6"> You can also unassign an \r
+ applied algorithm or hypothesis by right-clicking on it in the Object \r
+ Browser and choosing from the associated popup menu the <span style="font-weight: bold;"><B>Unassign \r
+ Algorithm </B></span>or <span style="font-weight: bold;"><B>Unassign Hypothesis \r
+ </B></span><span>item.</span></p>\r
+\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
<meta name=generator-minor-version content=1>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1633>\r
+<meta name=layout-width content=765>\r
\r
\r
<!--(Links)=========================================================-->\r
{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
//-->\r
</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 27px; height: 25px;}\r
+img_whs3 {border-style: none; border: none; width: 315px; height: 217px;}\r
+p.whs4 {margin-left: 0px;}\r
+img_whs5 {border-style: none; border: none; width: 36px; height: 38px; float: none;}\r
+table.whs6 {x-cell-content-align: top; width: 100%; border-spacing: 0; border-spacing: 0px;}\r
+col.whs7 {width: 50%;}\r
+tr.whs8 {x-cell-content-align: top;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 183px;}\r
+td.whs11 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+img_whs12 {border-style: none; border: none; width: 318px; height: 218px;}\r
+img_whs13 {border-style: none; border: none; width: 350px; height: 184px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs4 {margin-left:1; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
</script>\r
<h1>Removing nodes and elements</h1>\r
\r
-<p>Type topic text here.</p>\r
+<p>In SMESH you can remove nodes and all types of cells of your mesh. </p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To remove a node:</p>\r
+\r
+<p class=TODO\r
+ style="margin-left: 40px;"> </p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
+ from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
+ nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
+ following dialog box will appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs1"><img src="../image87.gif" width="315px" height="217px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">In this dialog box you can specify one or \r
+ several nodes (with pressed Shift button) by choosing them in the 3D viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>Apply </B></span> to \r
+ confirm deletion of the specified nodes.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs4"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs5">Be careful while removing \r
+ nodes because if you remove a definite node of your mesh all adjacent \r
+ elements will be also deleted.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
+<col class="whs7">\r
+<col class="whs7">\r
+\r
+<tr valign="top" class="whs8">\r
+<td width="50%" class="whs9">\r
+<p><img src="../image73.jpg" width="350px" height="183px" border="0" class="img_whs10"></td>\r
+<td width="50%" class="whs11">\r
+<p><img src="../image72.jpg" width="350px" height="183px" border="0" class="img_whs10"></td></tr>\r
+</table>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To remove an element:</p>\r
+\r
+<p class=TODO\r
+ style="margin-left: 40px;"> </p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
+ from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
+ elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
+ following dialog box will appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs1"><img src="../image89.gif" width="318px" height="218px" border="0" class="img_whs12"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">In this dialog box you can specify one or \r
+ several elements of your mesh (with pressed Shift button) by choosing \r
+ them in the 3D viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>Apply </B></span> to \r
+ confirm deletion of the specified elements.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
+<col class="whs7">\r
+<col class="whs7">\r
+\r
+<tr valign="top" class="whs8">\r
+<td width="50%" class="whs9">\r
+<p><img src="../image75.jpg" width="350px" height="183px" border="0" class="img_whs10"></td>\r
+<td width="50%" class="whs11">\r
+<p><img src="../image74.jpg" width="350px" height="184px" border="0" class="img_whs13"></td></tr>\r
+</table>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Renumbering nodes and elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1068>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 29px; height: 23px;}\r
+img_whs3 {border-style: none; border: none; width: 314px; height: 217px;}\r
+img_whs4 {border-style: none; border: none; width: 26px; height: 25px;}\r
+img_whs5 {border-style: none; border: none; width: 318px; height: 220px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nRenumbering nodes and elements");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Renumbering nodes and elements</h1>\r
+\r
+<p>In SMESH you can renumber the nodes and elements of your mesh.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To renumber the nodes of your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
+ and choose the <span style="font-weight: bold;"><B>Nodes </B></span>item or click \r
+ <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following dialog box will \r
+ appear: </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image66.gif" width="314px" height="217px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
+ to perform the operation.</span></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class=TODO>To renumber the elements of your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
+ and choose the <span style="font-weight: bold;"><B>Elements </B></span>item or \r
+ click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
+ appear: </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image65.gif" width="318px" height="220px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
+ to perform the operation.</span></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Rotation</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=604>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 310px; height: 265px;}\r
+ul.whs3 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nRotation");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Rotation</h1>\r
+\r
+<p>This geometrical operation allows to rotate in space your mesh or some \r
+ of its elements.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO> To \r
+ rotate your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Rotation </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image55.jpg" width="310px" height="265px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">In this dialog box you can specify the elements \r
+ which should be rotated and the rotation parameters:</p>\r
+\r
+<ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Axis:</B></span> \r
+ point and vector</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Angle \r
+ </B></span>of rotation </p></li>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
+ copy </B></span><span>radio button allows to copy the rotated object.</span></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nSetting SMESH preferences\nScalar Bar properties");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+ addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
if (window.writeBtnStyle)\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Sewing meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=3595>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {font-weight: bold;}\r
+p.whs4 {margin-left: 40px;}\r
+img_whs5 {border-style: none; border: none; width: 311px; height: 456px;}\r
+img_whs6 {border-style: none; border: none; width: 297px; height: 62px;}\r
+img_whs7 {border-style: none; border: none; width: 612px; height: 225px;}\r
+img_whs8 {border-style: none; border: none; width: 612px; height: 230px;}\r
+img_whs9 {border-style: none; border: none; width: 600px; height: 227px;}\r
+img_whs10 {border-style: none; border: none; width: 620px; height: 228px;}\r
+img_whs11 {border-style: none; border: none; width: 304px; height: 222px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSewing meshes");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Sewing meshes</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH you can sew elements of different \r
+ meshes. The current functionality allows you to sew:</p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs2">\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#free bord">Free \r
+ borders </a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#conform">Conform \r
+ free borders</a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#border to side">Border \r
+ to side</a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#side elements">Side \r
+ elements</a></p></li>\r
+</ul>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class=TODO>To sew elements of different meshes:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs4">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Transformation \r
+ </B></span>item and from \r
+ its sub-menu select the <span style="font-weight: bold;"><B>Sewing </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"><img src="../image57.gif" width="311px" height="456px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4">2. In the upper part of this dialog box check \r
+ one of the radio buttons corresponding to the type of sewing operation \r
+ you would like to perform: </p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"><img src="../image61.gif" width="297px" height="62px" border="0" class="img_whs6"> </p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4">3. Fill the other fields available in the \r
+ dialog box</p>\r
+\r
+<p class="whs4">4. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>Apply </B></span>button \r
+ to perform the operation of sewing. </p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h3><a name="free bord"></a>Sew free borders</h3>\r
+\r
+<p>This functionality allows you to unite two free borders of a 2D mesh.</p>\r
+\r
+<p> </p>\r
+\r
+<p>For sewing free borders you should define three points on each border: \r
+ first, second and the last node: </p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs2">\r
+ \r
+ <li class=kadov-p><p> the \r
+ first node specifies beginning of the border ;</p></li>\r
+ \r
+ <li class=kadov-p><p> the \r
+ second node specifies the part of the border which should be considered \r
+ (as far as the free border usually forms a closed contour);</p></li>\r
+ \r
+ <li class=kadov-p><p> the \r
+ last node specifies the end of the border.</p></li>\r
+</ul>\r
+\r
+<p> </p>\r
+\r
+<p>You can select these nodes in the 3D viewer or define by its id.</p>\r
+\r
+<p> </p>\r
+\r
+<p>The first and the second nodes should belong to the same link of a face. \r
+ The second and the last nodes of a border can be the same. The first and \r
+ the last nodes of two borders can be the same. The corresponding end nodes \r
+ of two borders will be merged. Intermediate nodes of two borders will \r
+ be either merged or inserted into faces of the opposite border.</p>\r
+\r
+<p> </p>\r
+\r
+<p>The sewing algorithm is as follows:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4">1. The parameter (U) of each node within \r
+ a border is computed. So that the first node has U=0.0, the last node \r
+ has U=1.0, for the rest nodes 0.0 < U < 1.0;</p>\r
+\r
+<p class="whs4">2. Compare node parameters of the two borders. \r
+ If two nodes of the opposite borders have close parameters, they are merged, \r
+ i.e. a node of the first border is replaced in all elements by a node \r
+ of the second border. If a node has no node with a close parameter in \r
+ the opposite border, it is inserted into an edge of element of the opposite \r
+ border, an element is split. Two nodes are considered close enough to \r
+ merge, if difference of their parameters is less than one fifth of minimum \r
+ length of adjacent face edges on the borders.</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4"><img src="../image22.jpg" width="612px" height="225px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<h3><a name=conform></a>Sew conform free borders</h3>\r
+\r
+<p>This functionality can be used to unite two free borders of a 2D mesh.</p>\r
+\r
+<p> </p>\r
+\r
+<p>The borders of meshes for sewing are defined as for "Sew free borders" \r
+ except that the second free border is not limited and can be defined by \r
+ the first and the second nodes only. The first nodes of two borders can \r
+ be the same.</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4"><img src="../image23.jpg" width="612px" height="230px" border="0" class="img_whs8"></p>\r
+\r
+<p>The algorithm is following: counting nodes starting at the first ones, \r
+ the n-th node of the first border is merged with the n-th node of the \r
+ other border, until the end of either of borders. Nodes of the first border \r
+ are replaced in all elements with corresponding nodes of the second border.</p>\r
+\r
+<p>For sewing conform free borders you should define three points on the \r
+ first border and two points on the second one. User can select these nodes \r
+ in 3D viewer or define node by its id.</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h3><a name="border to side"></a>Sew border to side</h3>\r
+\r
+<p>"Sew border to side" is intended to sew a free border to a \r
+ mesh surface.</p>\r
+\r
+<p>The free border is defined as for "Sewing of free borders". \r
+ The place where to sew the border is defined by two nodes, between which \r
+ the border faces are placed, so that the first border node is merged with \r
+ the first node on the side and the last node of the border is merged with \r
+ the second specified node on the side.</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4"><img src="../image30.jpg" width="600px" height="227px" border="0" class="img_whs9"></p>\r
+\r
+<p>The algorithm is following.</p>\r
+\r
+<p>1. Find a sequence of linked nodes on the side such that the found links \r
+ to be most co-directed with the links of the free border.</p>\r
+\r
+<p>2. Sew two sequences of nodes using algorithm of "Sewing of free \r
+ berders".</p>\r
+\r
+<p>For sewing border to side you should define three points on the border \r
+ and two points on the side. User can select these nodes in 3D viewer or \r
+ define node by its id.</p>\r
+\r
+<p> </p>\r
+\r
+<h3><a name="side elements"></a>Sew side elements</h3>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4"><img src="../image31.jpg" width="620px" height="228px" border="0" class="img_whs10"></p>\r
+\r
+<p>This operation is intended to unite two mesh surfaces.</p>\r
+\r
+<p>Surfaces may be defined by either 2d or 3d elements. The number of given \r
+ elements of the sides must be the same. The sets of given elements must \r
+ be topologically equal, i.e. each node of one element set must have a \r
+ corresponding node in the other element set and corresponding nodes must \r
+ be equally linked. If there are 3d elements in a set, only their free \r
+ faces must obey to that rule.</p>\r
+\r
+<p>Two corresponding nodes on each side must be specified. They must belong \r
+ to one element and must be located on an element set boundary.</p>\r
+\r
+<p>Sewing algorithm finds and merges the corresponding nodes starting from \r
+ the specified ones.</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4"><img src="../image32.jpg" width="304px" height="222px" border="0" class="img_whs11"></p>\r
+\r
+<p>For sewing side elements you should define elements for sewing and two \r
+ nodes for merging on the each side. User can select these elements and \r
+ nodes in 3D viewer or define them by its id.</p>\r
+\r
+<p> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Smoothing</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1451>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 24px; height: 25px;}\r
+img_whs4 {border-style: none; border: none; width: 319px; height: 369px;}\r
+ul.whs5 {list-style: disc;}\r
+p.whs6 {margin-left: 40px; font-weight: normal;}\r
+p.whs7 {font-weight: bold;}\r
+p.whs8 {margin-left: 80px;}\r
+img_whs9 {border-style: none; border: none; width: 527px; height: 281px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nSmoothing");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Smoothing</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Smoothing is used to adjust the locations of element \r
+ corners (nodes) to reduce distortions in these elements.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To apply smoothing to the elements of your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Smoothing </B></span>item \r
+ or click <img src="../image84.gif" width="24px" height="25px" border="0" class="img_whs3"> button in the toolbar. The following dialog box \r
+ will appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs2"><img src="../image85.gif" width="319px" height="369px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">This dialog box contains the following fields \r
+ which should be specified:</p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Id Elements </B></span><span>field allows to specify \r
+ the elements which should be smoothed by selecting them in the 3D viewer. \r
+ Note: to select several elements press </span><span style="font-weight: bold;"><B>Shift \r
+ </B></span><span>button.</span></p></li>\r
+ \r
+ <ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p class="whs7">Smoothing is applied \r
+ to the whole mesh or its part</p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Fixed nodes \r
+ ids</B></span>: some nodes keep their location during smoothing. If a mesh \r
+ is built on a geometry shape, the nodes built on geometrical edges are \r
+ always fixed. If smoothing is applied to a part of a mesh then the boundary \r
+ nodes of an elements set are also fixed. Any other nodes may be additionally \r
+ fixed.</p></li>\r
+ \r
+ <li class=kadov-p><p> </p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing \r
+ method</B></span>:</p></li>\r
+ \r
+ <ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Laplacian</B></span> \r
+ smoothing pulls a node toward the center of surrounding nodes directly \r
+ connected to that node along an element edge. Centroidal smoothing pulls \r
+ a node toward the element-area-weighted centroid of the surrounding elements. \r
+ Typically, the Laplacian method will produce the mesh with the least element \r
+ distortion. It is also the faster method. </p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Centroidal</B></span> \r
+ smoothing usually produces a mesh that has more uniform element sizes. \r
+ Both methods produce good results with "free" meshes.</p></li>\r
+ </ul>\r
+ </ul>\r
+</ul>\r
+\r
+<p class="whs8"><img src="../image83.gif" width="527px" height="281px" border="0" class="img_whs9"></p>\r
+\r
+<ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Iteration limit: </B></span>both of the smoothing \r
+ methods use an iterative procedure to converge toward a smoothed mesh. \r
+ All nodes are smoothed according to one of the techniques shown above. \r
+ Then the smoothing is reevaluated with the updated nodal locations. This \r
+ process continues until the maximum number of iterations has been exceeded, \r
+ or all elements has aspect ratio less or equal than the specified one.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Max. aspect ratio</B></span>.</p></li>\r
+</ul>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=633>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=614>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Create \r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Start and \r
- End Length </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. \r
- The following dialog box will appear:</p>\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
\r
<p class="whs2"> </p>\r
\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Symmetry</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1155>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 350px; height: 258px;}\r
+img_whs3 {border-style: none; border: none; width: 350px; height: 253px;}\r
+img_whs4 {border-style: none; border: none; width: 350px; height: 248px;}\r
+ul.whs5 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSymmetry");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Symmetry</h1>\r
+\r
+<p>This geometrical operation allows to perform a symmetrical copy of your \r
+ mesh or some of its elements.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO> To \r
+ apply symmetry to your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Symmetry </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image59.jpg" width="350px" height="258px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image58.jpg" width="350px" height="253px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image57.jpg" width="350px" height="248px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">This operation has three options, you can \r
+ symmetrically copy your mesh or some of its elements specifying: </p>\r
+\r
+<ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p class="whs1">one point</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">one axis (point and \r
+ vector)</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">one plane (point and \r
+ normal)</p></li>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
+ copy </B></span><span>radio button allows to keep the initial elements or \r
+ mesh.</span></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Tetrahedron (GHS3D) meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nTetrahedron (GHS3D) meshing algorithm");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Tetrahedron (GHS3D) meshing algorithm</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span>. \r
+ While <a href="tetrahedron_(netgen)_meshing_algorithm.htm">NETGEN</a> \r
+ generates 3D elements having a volume less than the one specified by hypothesis, \r
+ GHS3D does not need any hypotheses, all it needs is a surface mesh built \r
+ in advance</p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To apply the Tetrahedron GHS3D meshing algorithm:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=755>\r
-<meta name=layout-width content=473>\r
+<meta name=layout-height content=673>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
<!--\r
img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 23px; height: 23px;}\r
-p.whs4 {margin-left: 0px;}\r
-p.whs5 {margin-left: 0px; font-weight: bold;}\r
-img_whs6 {border-style: none; border: none; width: 386px; height: 414px;}\r
+p.whs3 {margin-left: 0px;}\r
+p.whs4 {margin-left: 0px; font-weight: bold;}\r
+img_whs5 {border-style: none; border: none; width: 386px; height: 414px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript">\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs3 {margin-left:1; }";\r
strNSS += "p.whs4 {margin-left:1; }";\r
- strNSS += "p.whs5 {margin-left:1; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- ></B></span> <img src="../image12.gif" width="23px" height="23px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>Tetrahedron \r
- (Netgen) </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>..</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs5">Example:</p>\r
+<p class="whs4">Example:</p>\r
\r
-<p class="whs2"><img src="../image9.gif" width="386px" height="414px" border="0" class="img_whs6"></p>\r
+<p class="whs2"><img src="../image9.gif" width="386px" height="414px" border="0" class="img_whs5"></p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Translation</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=551>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 645px; height: 231px;}\r
+ul.whs3 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nTranslation");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Translation</h1>\r
+\r
+<p>This geometrical operation allows to translate in space your mesh or \r
+ some of its elements.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO> To \r
+ translate your mesh:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Translation </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image54.jpg" width="645px" height="231px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">This operation has two options, you can translate \r
+ in space your mesh or some of its elements specifying: </p>\r
+\r
+<ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p class="whs1">two points (starting \r
+ and ending)</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">one vector</p></li>\r
+</ul>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
+ copy </B></span><span>radio button allows to copy the translated object.</span></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Uniting a set of triangles</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=945>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 23px; height: 24px;}\r
+img_whs4 {border-style: none; border: none; width: 295px; height: 362px;}\r
+ul.whs5 {list-style: disc;}\r
+p.whs6 {margin-left: 40px; font-weight: normal;}\r
+p.whs7 {margin-left: 0px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs7 {margin-left:1; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nUniting a set of triangles");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Uniting a set of triangles</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In contrast to <a href="uniting_two_triangles.htm">the \r
+ previous operation</a> this one allows to unite at once many triangles \r
+ if they have adjacent edges. </p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To union several triangles:</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Union of triangles \r
+ </B></span>item or click <img src="../image80.gif" width="23px" height="24px" border="0" class="img_whs3"> button in the toolbar. The following \r
+ dialog box will appear:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs2"><img src="../image81.gif" width="295px" height="362px" border="0" class="img_whs4"></p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs5">\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>The main list </B></span>shall contain the triangles \r
+ which will be united. You can click on an triangle in the 3D viewer and \r
+ it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
+ </B></span>button and the ID of this triangle will be added to the list. To \r
+ remove a selected element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
+ </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
+ allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
+ filter </B></span>button allows to apply a definite filter to selection of \r
+ triangles.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
+ to modify the orientation of all triangles of the currently displayed \r
+ mesh or submesh.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose triangle elements will be \r
+ automatically added to the list.</p></li>\r
+</ul>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> If some selected triangle \r
+ elements have no adjacent edges with one of the others, the operation \r
+ on these elements shall take no effect.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Uniting two triangles</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=725>\r
+<meta name=layout-width content=763>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 23px; height: 23px;}\r
+img_whs3 {border-style: none; border: none; width: 295px; height: 148px;}\r
+table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs5 {width: 50%;}\r
+tr.whs6 {x-cell-content-align: top;}\r
+td.whs7 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs8 {border-style: none; border: none; width: 348px; height: 224px;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 224px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nUniting two triangles");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Uniting two triangles</h1>\r
+\r
+<p> In SMESH \r
+ you can union two neighboring triangles (cells) by deletion of the common \r
+ edge.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To unite two triangles:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Union of two triangles \r
+ </B></span>item or click <img src="../image71.gif" width="23px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following \r
+ dialog box shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="../image72.gif" width="295px" height="148px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. Enter the ID of the required edge in the \r
+ <span style="font-weight: bold;"><B>Edge </B></span> field \r
+ or select this edge in the 3D viewer. </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class=TODO\r
+ style="margin-left: 40px;"> </p>\r
+\r
+<p> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
+<col class="whs5">\r
+<col class="whs5">\r
+\r
+<tr valign="top" class="whs6">\r
+<td width="50%" class="whs7">\r
+<p><img src="../image40.jpg" width="348px" height="224px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="../image39.jpg" width="350px" height="224px" border="0" class="img_whs10"></td></tr>\r
+</table>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Using operations on groups</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1909>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {font-weight: bold;}\r
+p.whs4 {margin-left: 40px;}\r
+img_whs5 {border-style: none; border: none; width: 290px; height: 245px;}\r
+img_whs6 {border-style: none; border: none; width: 290px; height: 244px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nGrouping elements\nUsing operations on groups");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Using operations on groups</h1>\r
+\r
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> </B></span>In SMESH you can \r
+ perform Boolean \r
+ operations on groups such as:</p>\r
+\r
+<p> </p>\r
+\r
+<ul type="disc" class="whs2">\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#Union">Union</a> \r
+ </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#Intersection">Intersection</a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs3"><a href="#Cut">Cut</a></p></li>\r
+</ul>\r
+\r
+<p> </p>\r
+\r
+<h3><a name=Union></a>Union of two groups</h3>\r
+\r
+<p>This operation allows to create a new group in such a way that all mesh \r
+ elements that are present in the initial groups will be added to the new \r
+ one.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To union two groups:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Union Groups </B></span>item. \r
+ The following dialog box will appear:</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"><img src="../image77.gif" width="290px" height="245px" border="0" class="img_whs5"></p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4">In this dialog box you should specify the \r
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
+ two groups which will be united.</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B> Apply \r
+ </B></span>button to confirm creation of the group. </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<h3><a name=Intersection></a>Intersection of two groups</h3>\r
+\r
+<p>This operation allows to create a new group in such a way that all mesh \r
+ elements that are present in both initial groups are added to the new \r
+ one.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To intersect two groups:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Intersect Groups \r
+ </B></span>item. The following dialog box will appear:</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"><img src="../image76.gif" width="290px" height="245px" border="0" class="img_whs5"></p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4">In this dialog box you should specify the \r
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
+ two groups which will be intersected.</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B> Apply \r
+ </B></span>button to confirm creation of the group. </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<h3><a name=Cut></a>Cut of two groups</h3>\r
+\r
+<p>This operation allows to create a new group in such a way that all mesh \r
+ elements that are present in the main group but are absent in the tool \r
+ group are added to the new one.</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To cut two groups:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Cut Groups </B></span>item. \r
+ The following dialog box will appear:</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"><img src="../image75.gif" width="290px" height="244px" border="0" class="img_whs6"></p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs4">In this dialog box you should specify the \r
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
+ two groups which will be cut.</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B> Apply \r
+ </B></span>button to confirm creation of the group. </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nSetting SMESH preferences\nView update");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+ addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
if (window.writeBtnStyle)\r
<meta name=filetype content=kadov>\r
<meta name=filetype-version content=1>\r
<meta name=page-count content=1>\r
-<meta name=layout-height content=588>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=656>\r
+<meta name=layout-width content=740>\r
\r
\r
<!--(Links)=========================================================-->\r
img_whs2 {border-style: none; border: none; width: 21px; height: 20px;}\r
p.whs3 {margin-left: 0px;}\r
p.whs4 {margin-left: 80px;}\r
-img_whs5 {border-style: none; border: none; width: 258px; height: 282px;}\r
+img_whs5 {border: none; width: 190px; height: 350px;}\r
-->\r
</style>\r
<script type="text/javascript" language="JavaScript">\r
\r
<p class="whs3"> </p>\r
\r
-<p class="whs4"><img src="../image27.gif" width="258px" height="282px" border="0" class="img_whs5"></p>\r
+<p class="whs4"><img src="../image82.jpg" width="190px" height="350px" border="0" class="img_whs5"></p>\r
\r
<p class="whs4"> </p>\r
\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nSetting SMESH preferences\nVisualization modes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+ addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
if (window.writeBtnStyle)\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("SMESH module\nSetting SMESH preferences\nVisualization properties");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+ addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
if (window.writeBtnStyle)\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Pattern mapping</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=3341>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 626px; height: 471px;}\r
+img_whs4 {border: none; width: 22px; height: 28px;}\r
+table.whs5 {x-cell-content-align: top; width: 100%; border-spacing: 0;}\r
+col.whs6 {width: 50%;}\r
+td.whs7 {padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs8 {border: none; width: 232px; height: 400px;}\r
+td.whs9 {padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+p.whs10 {margin-left: 0px;}\r
+img_whs11 {border-style: none; border: none; width: 554px; height: 279px;}\r
+img_whs12 {border-style: none; border: none; width: 572px; height: 233px;}\r
+img_whs13 {border-style: none; border: none; width: 606px; height: 249px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs10 {margin-left:1; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nPattern mapping");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Pattern mapping</h1>\r
+\r
+<h3>About patterns</h3>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The pattern describes a mesh to generate: positions of \r
+ nodes within a geometrical domain and nodal connectivity of elements. \r
+ As well, a pattern specifies the so-called key-points, i.e. nodes that \r
+ will be located at geometrical vertices. Pattern description is stored \r
+ in <pattern_name>.smp file.</p>\r
+\r
+<p> </p>\r
+\r
+<p>The smp file contains 4 sections:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs2">1. The first line holds the number of nodes \r
+ (N).</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">2. The next N lines describe nodes coordinates. \r
+ Each line holds 2 coordinates of a node.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">3. A key-points line: indices of nodes to \r
+ be mapped on geometrical vertices. An index n refers to a node described \r
+ on an n-th line of section 2. The first node index is zero.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">4. The rest lines describe nodal connectivity \r
+ of elements, one line for an element. A line holds indices of nodes forming \r
+ an element. An index n refers to a node described on an n-th line of the \r
+ section 2. The first node index is zero. There must be 3 or 4 indices \r
+ on a line: only 2d elements are allowed.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p>The 2D pattern must contain at least one element and at least one key-point. \r
+ All key-points must lay on boundaries.</p>\r
+\r
+<p> </p>\r
+\r
+<p>An example of a simple smp file and a preview of a pattern described \r
+ in this file:</p>\r
+\r
+<p> </p>\r
+\r
+<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>\r
+\r
+<p> </p>\r
+\r
+<h3>Creating patterns</h3>\r
+\r
+<p>The pattern description can be created manually or automatically. Manual \r
+ pattern creation implies creation of pattern file by hands. For an automatic \r
+ generation the user just specifies a geometrical face having a mesh built \r
+ on it. Mesh nodes lying on face vertices become key-points. Additionally, \r
+ the user may choose the way of getting nodes coordinates by projecting \r
+ nodes on the face instead of using "positions on face" generated \r
+ by mesher (if there are any). Faces having a seam edge can\92t be used for \r
+ automatic pattern creation.</p>\r
+\r
+<p> </p>\r
+\r
+<p>When creating a pattern from an existing mesh, there are two possible \r
+ cases:</p>\r
+\r
+<p> </p>\r
+\r
+<p>1. A sub-mesh on face is selected. A pattern is created from the 2d \r
+ elements bound to a face by mesher. Node coordinates are either "positions \r
+ on face" computed by mesher, or coordinates got by node projection \r
+ on a geometrical surface, according to your choice.</p>\r
+\r
+<p> </p>\r
+\r
+<p>2. A mesh where the main shape is a face, is selected. A pattern is \r
+ created from all the 2d elements in a mesh. If all mesh elements are build \r
+ by mesher, the user can select the way of getting nodes coordinates, else \r
+ all nodes are projected on a face surface.</p>\r
+\r
+<p> </p>\r
+\r
+<h3>Application of pattern mapping</h3>\r
+\r
+<p class=TODO>To apply pattern mapping to a geometrical object:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Pattern Mapping \r
+ </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following \r
+ dialog box shall appear:</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
+<col class="whs6">\r
+<col class="whs6">\r
+\r
+<tr valign=top>\r
+<td width="50%" class="whs7">\r
+<p><img src="image81.jpg" width="232px" height="400px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="image80.jpg" width="232px" height="400px" border="0" class="img_whs8"></td></tr>\r
+</table>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p>To apply a pattern to a geometrical object, you should specify:</p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs2">- a face having the number of vertices equal \r
+ to the number of key-points in the pattern; the number of key-points on \r
+ internal boundaries of a pattern must also be equal to the number of vertices \r
+ on internal boundaries of a face;</p>\r
+\r
+<p class="whs2">- a vertex to which the first key-point should \r
+ be mapped,</p>\r
+\r
+<p class="whs2">- reverse or not the order of key-points. \r
+ (The order of vertices of a face is counterclockwise looking from outside).</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<h3>Mapping algorithm:</h3>\r
+\r
+<p class="whs10">The mapping algorithm is as follows:</p>\r
+\r
+<p class="whs10"> </p>\r
+\r
+<p class="whs2">1. Key-points are set in the order that they \r
+ are encountered when walking along a pattern boundary so that elements \r
+ are on the left. The first key-point is preserved.</p>\r
+\r
+<p class="whs2">2. Find geometrical vertices corresponding \r
+ to key-points by vertices order in a face boundary; here, "Reverse \r
+ order of key-points" flag is taken into account.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs11"></p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">3. Boundary nodes of a pattern are mapped \r
+ onto edges of a face: a node located between certain key-points on a pattern \r
+ boundary is mapped on a geometrical edge limited by corresponding geometrical \r
+ vertices. Node position on an edge reflects its distance from two key-points.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs12"></p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2">4. Coordinates of a non-boundary node in \r
+ a parametric space of a face are defined as following. In a parametric \r
+ space of a pattern, a node lays at the intersection of two iso-lines, \r
+ each of which intersects a pattern boundary at least at two points. Knowing \r
+ mapped positions of boundary nodes, we find where isoline-boundary intersection \r
+ points are mapped to, and hence we can find mapped isolines direction \r
+ and then, two node positions on two mapped isolines. The eventual mapped \r
+ position of a node is found as an average of positions on mapped isolines.</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs13"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Revolution</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1182>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{ document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 24px; height: 25px;}\r
+img_whs3 {border-style: none; border: none; width: 519px; height: 438px;}\r
+ul.whs4 {list-style: disc;}\r
+img_whs5 {border-style: none; border: none; width: 350px; height: 201px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+ div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("SMESH module\nModifying meshes\nRevolution");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("smesh.htm");\r
+\r
+ autoSync(0);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Revolution</h1>\r
+\r
+<p>Revolution is a type of surface meshing by generation from discretized \r
+ lines. It is used to build mesh elements of plus one dimension than the \r
+ swept ones. Each swept 1D element produces one or more quadrangles (or \r
+ triangles if one node of a rotated element lays on the revolution axis).</p>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO>To apply revolution:</p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item \r
+ or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ shall appear:</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="image93.gif" width="519px" height="438px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">2. In this dialog box you should specify:</p>\r
+\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p class="whs1">the type of elements \r
+ which will be extruded (1D or 2D),</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">specify the IDs of \r
+ the elements which will be revolved by selecting them in the 3D viewer \r
+ or select the whole mesh or submesh,</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">specify the axis (point \r
+ and vector) around which the elements will be revolved,</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">angle of rotation,</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">number of steps,</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class=TODO\r
+ style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>\r
+\r
+<p class=TODO> </p>\r
+\r
+<p> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
</script>\r
<script language="javascript">\r
<!--\r
+aTE("Extrusion","extrusion.htm");\r
aTE("1D meshing algorithm","files/1d_meshing_algorithm.htm");\r
aTE("2D (Quadrangle) meshing algorithm","files/2d_(quadrangle)_meshing_algorithm.htm");\r
aTE("2D meshing algorithm","files/2d_meshing_algorithm.htm");\r
aTE("Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
aTE("Computing meshes","files/computing_meshes.htm");\r
aTE("Connectivity","files/connectivity.htm");\r
+aTE("Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
aTE("Constructing meshes","files/constructing_meshes.htm");\r
aTE("Constructing submeshes","files/constructing_submeshes.htm");\r
-aTE("Deflection 1D","files/deflection_1d.htm");\r
+aTE("Creating groups","files/creating_groups.htm");\r
+aTE("Cutting quadrangles","files/cutting_quadrangles.htm");\r
+aTE("Local Length hypothesis","files/deflection_1d.htm");\r
aTE("Diagonal iversion of elements","files/diagonal_iversion_of_elements.htm");\r
aTE("Displacing nodes","files/displacing_nodes.htm");\r
aTE("Displaying elements numbers","files/displaying_elements_numbers.htm");\r
aTE("Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
+aTE("Editing groups","files/editing_groups.htm");\r
aTE("Editing hypotheses","files/editing_hypotheses.htm");\r
aTE("Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
aTE("Introduction to SMESH","files/introduction_to_smesh.htm");\r
aTE("Length from edges","files/length_from_edges.htm");\r
aTE("Length of edges","files/length_of_edges.htm");\r
aTE("Local Length hypothesis","files/local_length_hypothesis.htm");\r
-aTE("Max. Element Area hypothesis","files/max._element_area_hypothesis.htm");\r
-aTE("Max. Element volume hypothsis","files/max._element_volume_hypothsis.htm");\r
+aTE("Length from edges","files/max._element_area_hypothesis.htm");\r
+aTE("Non conform mesh allowed hypothesis","files/max._element_volume_hypothsis.htm");\r
+aTE("Merging nodes","files/merging_nodes.htm");\r
aTE("Minimum angle","files/minimum_angle.htm");\r
aTE("Non conform mesh allowed hypothesis","files/non_conform_mesh_allowed_hypothesis.htm");\r
aTE("Number of segments hypothesis","files/number_of_segments_hypothesis.htm");\r
aTE("Propagation of 1D Hypothesis on opposite edges","files/propagation_of_1d_hypothesis_on_opposite_edges.htm");\r
aTE("Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
aTE("Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
+aTE("Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
+aTE("Rotation","files/rotation.htm");\r
aTE("Running SMESH module","files/running_smesh_module.htm");\r
aTE("Scalar Bar properties","files/scalar_bar_properties.htm");\r
+aTE("Sewing meshes","files/sewing_meshes.htm");\r
aTE("Skew","files/skew.htm");\r
+aTE("Smoothing","files/smoothing.htm");\r
aTE("Start and End Length hypothesis","files/start_and_end_length_hypothesis.htm");\r
+aTE("Symmetry","files/symmetry.htm");\r
aTE("Taper","files/taper.htm");\r
+aTE("Tetrahedron (GHS3D) meshing algorithm","files/tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
aTE("Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
+aTE("Translation","files/translation.htm");\r
+aTE("Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
+aTE("Uniting two triangles","files/uniting_two_triangles.htm");\r
+aTE("Using operations on groups","files/using_operations_on_groups.htm");\r
aTE("Using SMESH module","files/using_smesh_module.htm");\r
aTE("View update","files/view_update.htm");\r
aTE("Viewing mesh info","files/viewing_mesh_info.htm");\r
aTE("Visualization modes","files/visualization_modes.htm");\r
aTE("Visualization properties","files/visualization_properties.htm");\r
aTE("Warp","files/warp.htm");\r
-aTE("Tetrahedron (GHS3D) meshing algorithm","tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
+aTE("Pattern mapping","pattern_mapping.htm");\r
+aTE("Revolution","revolution.htm");\r
\r
//-->\r
</script>\r
<?xml version='1.0' encoding='ISO-8859-1' ?>\r
<ftstdata>\r
+<topic name="Extrusion" url="extrusion.htm" />\r
<topic name="1D meshing algorithm" url="files/1d_meshing_algorithm.htm" />\r
<topic name="2D (Quadrangle) meshing algorithm" url="files/2d_(quadrangle)_meshing_algorithm.htm" />\r
<topic name="2D meshing algorithm" url="files/2d_meshing_algorithm.htm" />\r
<topic name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
<topic name="Computing meshes" url="files/computing_meshes.htm" />\r
<topic name="Connectivity" url="files/connectivity.htm" />\r
+<topic name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
<topic name="Constructing meshes" url="files/constructing_meshes.htm" />\r
<topic name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
-<topic name="Deflection 1D" url="files/deflection_1d.htm" />\r
+<topic name="Creating groups" url="files/creating_groups.htm" />\r
+<topic name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
+<topic name="Local Length hypothesis" url="files/deflection_1d.htm" />\r
<topic name="Diagonal iversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
<topic name="Displacing nodes" url="files/displacing_nodes.htm" />\r
<topic name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
<topic name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
+<topic name="Editing groups" url="files/editing_groups.htm" />\r
<topic name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
<topic name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
<topic name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
<topic name="Length from edges" url="files/length_from_edges.htm" />\r
<topic name="Length of edges" url="files/length_of_edges.htm" />\r
<topic name="Local Length hypothesis" url="files/local_length_hypothesis.htm" />\r
-<topic name="Max. Element Area hypothesis" url="files/max._element_area_hypothesis.htm" />\r
-<topic name="Max. Element volume hypothsis" url="files/max._element_volume_hypothsis.htm" />\r
+<topic name="Length from edges" url="files/max._element_area_hypothesis.htm" />\r
+<topic name="Non conform mesh allowed hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
+<topic name="Merging nodes" url="files/merging_nodes.htm" />\r
<topic name="Minimum angle" url="files/minimum_angle.htm" />\r
<topic name="Non conform mesh allowed hypothesis" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
<topic name="Number of segments hypothesis" url="files/number_of_segments_hypothesis.htm" />\r
<topic name="Propagation of 1D Hypothesis on opposite edges" url="files/propagation_of_1d_hypothesis_on_opposite_edges.htm" />\r
<topic name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
<topic name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
+<topic name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
+<topic name="Rotation" url="files/rotation.htm" />\r
<topic name="Running SMESH module" url="files/running_smesh_module.htm" />\r
<topic name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
+<topic name="Sewing meshes" url="files/sewing_meshes.htm" />\r
<topic name="Skew" url="files/skew.htm" />\r
+<topic name="Smoothing" url="files/smoothing.htm" />\r
<topic name="Start and End Length hypothesis" url="files/start_and_end_length_hypothesis.htm" />\r
+<topic name="Symmetry" url="files/symmetry.htm" />\r
<topic name="Taper" url="files/taper.htm" />\r
+<topic name="Tetrahedron (GHS3D) meshing algorithm" url="files/tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
<topic name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
+<topic name="Translation" url="files/translation.htm" />\r
+<topic name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
+<topic name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
+<topic name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
<topic name="Using SMESH module" url="files/using_smesh_module.htm" />\r
<topic name="View update" url="files/view_update.htm" />\r
<topic name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
<topic name="Visualization modes" url="files/visualization_modes.htm" />\r
<topic name="Visualization properties" url="files/visualization_properties.htm" />\r
<topic name="Warp" url="files/warp.htm" />\r
-<topic name="Tetrahedron (GHS3D) meshing algorithm" url="tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
+<topic name="Pattern mapping" url="pattern_mapping.htm" />\r
+<topic name="Revolution" url="revolution.htm" />\r
\r
</ftstdata> \r
<script language="javascript" src="whfts.js"></script>\r
<script language="javascript">\r
<!--\r
-iWM("0","z","whfwdata0.htm");\r
+iWM("0","zero","whfwdata0.htm");\r
\r
-iTM(0,49,"whftdata0.htm");\r
+iTM(0,66,"whftdata0.htm");\r
\r
-->\r
</script>\r
<?xml version='1.0' encoding='ISO-8859-1' ?>\r
<fts>\r
-<chunkinfo url="whfwdata0.xml" first="0" last="z"/>\r
+<chunkinfo url="whfwdata0.xml" first="0" last="zero"/>\r
\r
-<tchunkinfo first="0" last="49" url="whftdata0.xml" />\r
+<tchunkinfo first="0" last="66" url="whftdata0.xml" />\r
\r
</fts>\r
</script>\r
<script language="javascript">\r
<!--\r
-aWE("0",5);\r
-aWE("0d",5);\r
-aWE("1",10,11,12,14,21,22,24,27,31,39,41,45,46,48);\r
-aWE("1d",0,4,5,6,11,18,25,26,34,40);\r
-aWE("2",10,12,14,21,22,24,27,31,39,41,45,46,48);\r
-aWE("2d",1,2,5,6,10,12,25,26,29,31,48);\r
-aWE("3",5,10,12,24,37,39,48);\r
-aWE("3d",3,5,6,25,30,49,42);\r
-aWE("3rd",5);\r
-aWE("4",5,10,12,39,41,48);\r
-aWE("5th",5);\r
-aWE("abut",28,33);\r
-aWE("accord",8,10,12,27,31,39,41,48);\r
-aWE("account",4);\r
-aWE("ad",9);\r
-aWE("addition",25);\r
-aWE("additional",5,37);\r
-aWE("adjacent",31,32);\r
-aWE("advanc",49);\r
-aWE("algorithm",0,1,2,3,4,5,6,8,10,11,16,17,25,29,30,35,49,42);\r
-aWE("allow",4,11,24,25,32,34);\r
-aWE("angl",8,25,31,39,48);\r
-aWE("anoth",34);\r
-aWE("any",5,49);\r
-aWE("ap",0,1,2,3,6,10,12,25,27,31,39,41,49,42,48);\r
-aWE("appear",4,6,11,16,17,18,28,29,30,33,37,40);\r
-aWE("appli",10,12,27,28,29,30,31,33,39,41,48);\r
-aWE("application",8);\r
-aWE("apply",4,16,17);\r
-aWE("approximate",33);\r
-aWE("arcsin",48);\r
-aWE("area",4,8,10,25,29,30,41);\r
-aWE("arithmetic",4,11);\r
-aWE("aspect",8,12,25);\r
-aWE("assign",48);\r
-aWE("averag",4,26,28,40,48);\r
-aWE("axi",48);\r
-aWE("bar",8,38);\r
-aWE("bas",4,10,25,48);\r
-aWE("basi",5);\r
-aWE("basic",4);\r
-aWE("befor",37);\r
-aWE("begin",11);\r
-aWE("bisect",48);\r
-aWE("bisector",48);\r
-aWE("border",25);\r
-aWE("bottom",37);\r
-aWE("bound",5);\r
-aWE("boundary",4);\r
-aWE("box",11,16,17,18,24,28,29,30,33,37,40);\r
-aWE("brows",14,45,46);\r
-aWE("build",18,26,40);\r
-aWE("built",49);\r
-aWE("button",10,12,14,16,17,24,27,31,39,41,45,48);\r
-aWE("cad",5);\r
-aWE("calculat",8,12,26,41);\r
-aWE("calculation",4,10,27,31);\r
-aWE("chang",11,13);\r
-aWE("characteristic",8);\r
-aWE("characteriz",5);\r
-aWE("choic",4);\r
-aWE("choos",10,12,24,27,31,37,39,41,48);\r
-aWE("chosen",29,30);\r
-aWE("click",0,1,2,3,4,6,10,11,12,14,16,17,18,24,27,28,29,30,31,33,37,39,40,41,49,42,45,46,48);\r
-aWE("clos",5);\r
-aWE("color",8,10,12,27,31,39,41,48);\r
-aWE("combin",27);\r
-aWE("component",25,37);\r
-aWE("compos",4,5,6,8,21,28,29,30,33,39);\r
-aWE("comput",14);\r
-aWE("computation",14,16,17);\r
-aWE("condition",4);\r
-aWE("conform",4,32);\r
-aWE("connect",18);\r
-aWE("connection",5,25);\r
-aWE("connectivity",15);\r
-aWE("consider",5);\r
-aWE("consist",8,10,12,16,17,27,28,29,30,31,33,41);\r
-aWE("constant",40);\r
-aWE("construct",16,17,18,40);\r
-aWE("construction",16,17);\r
-aWE("contain",5,6,24);\r
-aWE("contour",5);\r
-aWE("control",8,10,12,25,27,31,39,41,48);\r
-aWE("coordinat",5);\r
-aWE("corn",48);\r
-aWE("corner",48);\r
-aWE("correspond",5,8,24);\r
-aWE("could",5);\r
-aWE("creat",0,1,2,3,4,5,6,11,18,25,28,29,30,33,37,40,49,42,48);\r
-aWE("creation",5,37);\r
-aWE("criteria",25);\r
-aWE("criterion",10,12,27,31,39,41,48);\r
-aWE("cros",48);\r
-aWE("curv",5,18);\r
-aWE("d",11);\r
-aWE("deal",5);\r
-aWE("default",37);\r
-aWE("defin",5,11,12,18,28,29,30,33,40);\r
-aWE("definit",5,8,25,33);\r
-aWE("definition",28,29,30,33);\r
-aWE("deflection",4,18);\r
-aWE("deletion",25);\r
-aWE("depend",4,5,29,30);\r
-aWE("describ",5);\r
-aWE("desktop",37);\r
-aWE("destin",5,8,25);\r
-aWE("detail",4);\r
-aWE("diagonal",19,41);\r
-aWE("dialog",11,16,17,18,24,28,29,30,33,40);\r
-aWE("differ",40);\r
-aWE("different",4);\r
-aWE("dimension",5);\r
-aWE("direct",5);\r
-aWE("direction",48);\r
-aWE("discretization",0,5,6);\r
-aWE("displac",20);\r
-aWE("display",8,10,12,21,22,27,31,39,41,45,46,48);\r
-aWE("disposal",8);\r
-aWE("distanc",18,48);\r
-aWE("divid",18,40);\r
-aWE("do",49);\r
-aWE("don",5);\r
-aWE("edg",0,4,5,6,8,11,12,18,25,26,27,28,32,33,34,40,48);\r
-aWE("edit",23);\r
-aWE("element",4,5,8,9,10,12,13,18,19,21,25,27,29,30,31,32,36,39,40,41,49,48);\r
-aWE("encapsulat",17);\r
-aWE("end",4,11,18,32,40);\r
-aWE("ent",24);\r
-aWE("entiti",0,1,2,3,5,6,49,42);\r
-aWE("entity",5);\r
-aWE("equal",12,18);\r
-aWE("equilateral",12);\r
-aWE("etc",8);\r
-aWE("every",48);\r
-aWE("exampl",5,42);\r
-aWE("export",24,25);\r
-aWE("exportation",24);\r
-aWE("extend",48);\r
-aWE("fac",1,2,4,5,6,25,28,29,32,33,34,48);\r
-aWE("factor",40);\r
-aWE("fil",24);\r
-aWE("final",14);\r
-aWE("find",24);\r
-aWE("first",40);\r
-aWE("fix",5);\r
-aWE("follow",4,5,6,8,11,12,16,17,18,21,22,28,29,30,33,37,40,45);\r
-aWE("format",24,25);\r
-aWE("four",5,48);\r
-aWE("fre",5,25);\r
-aWE("function",5);\r
-aWE("functionality",5,24);\r
-aWE("generat",4,5,8,25,28,32,33,37,49);\r
-aWE("generation",14);\r
-aWE("geom",5,25);\r
-aWE("geometric",5,8);\r
-aWE("geometrical",0,1,2,3,4,5,6,16,17,18,25,28,29,30,33,40,49,42);\r
-aWE("ghs3d",49);\r
-aWE("given",11,26);\r
-aWE("global",16);\r
-aWE("group",25);\r
-aWE("h",48);\r
-aWE("h1",12);\r
-aWE("h2",12);\r
-aWE("half",48);\r
-aWE("hav",26,32,49);\r
-aWE("height",12,48);\r
-aWE("help",8);\r
-aWE("her",5,7,9,13,15,19,20,36,38,47);\r
-aWE("hexahedron",3,5,6,30);\r
-aWE("high",5);\r
-aWE("hyp",16,17);\r
-aWE("hypothes",0,1,2,3,4,6,11,16,17,18,23,25,28,29,30,33,35,40,49,42);\r
-aWE("hypothesi",4,11,18,26,28,29,30,32,33,34,40,49);\r
-aWE("i",3);\r
-aWE("icon",37);\r
-aWE("id",21,22);\r
-aWE("if",5,34);\r
-aWE("imp",5);\r
-aWE("import",24,25);\r
-aWE("importation",24);\r
-aWE("includ",5);\r
-aWE("indicat",48);\r
-aWE("info",45);\r
-aWE("information",5,45);\r
-aWE("initial",37);\r
-aWE("interest",5);\r
-aWE("introduction",25);\r
-aWE("invers",5);\r
-aWE("inversion",19);\r
-aWE("item",4,6,24);\r
-aWE("j",3);\r
-aWE("join",39);\r
-aWE("k",3);\r
-aWE("kind",6);\r
-aWE("l",48);\r
-aWE("largest",12);\r
-aWE("last",40);\r
-aWE("launch",37);\r
-aWE("length",4,8,11,12,25,26,27,28,33,40,48);\r
-aWE("les",49);\r
-aWE("level",4);\r
-aWE("lik",21,22,37);\r
-aWE("lin",5,18,39);\r
-aWE("lk",11);\r
-aWE("local",17,25,33,34);\r
-aWE("location",18,24,40);\r
-aWE("longest",12);\r
-aWE("look",21,22,37);\r
-aWE("low",5);\r
-aWE("main",4,6,37);\r
-aWE("manag",4);\r
-aWE("map",1);\r
-aWE("max",4,25,29,30);\r
-aWE("maximum",18,29,30,39);\r
-aWE("mean",5);\r
-aWE("meaningful",5);\r
-aWE("measur",48);\r
-aWE("mefisto",2);\r
-aWE("menu",0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46);\r
-aWE("mesh",0,1,2,3,4,5,6,7,8,10,12,14,16,17,18,21,22,24,25,26,27,28,29,30,31,32,33,37,39,40,41,49,42,45,46,48);\r
-aWE("minimum",8,25,31);\r
-aWE("mod",46);\r
-aWE("model",5,25);\r
-aWE("modification",5,7,25);\r
-aWE("modul",5,6,25,37);\r
-aWE("mov",25);\r
-aWE("multi",25);\r
-aWE("multipli",12);\r
-aWE("nam",11,18,24,28,29,30,33,40);\r
-aWE("nb",33);\r
-aWE("ne",49);\r
-aWE("need",49);\r
-aWE("netgen",49,42);\r
-aWE("new",37);\r
-aWE("nod",5,9,10,12,18,20,22,25,28,33,36,39,40,41,48);\r
-aWE("normal",48);\r
-aWE("notic",5);\r
-aWE("numb",4,5,25,33);\r
-aWE("number",21,22);\r
-aWE("object",0,1,2,3,4,6,14,16,17,28,29,30,33,49,42,45,46);\r
-aWE("ok",24);\r
-aWE("on",4,5,6,16,17,34,40,49);\r
-aWE("onto",34);\r
-aWE("operation",25);\r
-aWE("opposit",4,34,39);\r
-aWE("option",5);\r
-aWE("ord",5);\r
-aWE("orientation",13);\r
-aWE("origin",48);\r
-aWE("own",5);\r
-aWE("paramet",5);\r
-aWE("parameter",4,26,32);\r
-aWE("parametric",5);\r
-aWE("particularity",5);\r
-aWE("perfect",12);\r
-aWE("perform",25);\r
-aWE("plan",48);\r
-aWE("planar",48);\r
-aWE("platform",37);\r
-aWE("point",5,28,33,48);\r
-aWE("pop",46);\r
-aWE("position",5);\r
-aWE("possibl",4);\r
-aWE("present",5);\r
-aWE("presentation",8);\r
-aWE("preset",4);\r
-aWE("previou",40);\r
-aWE("previous",16,17,25);\r
-aWE("procedur",12);\r
-aWE("produc",5);\r
-aWE("product",48);\r
-aWE("progression",11);\r
-aWE("projection",48);\r
-aWE("propagat",34);\r
-aWE("propagation",4,34);\r
-aWE("properti",38,46,47);\r
-aWE("quad",48);\r
-aWE("quadrangl",1,5,6,10,12,27,29,31,39);\r
-aWE("quadrangular",34);\r
-aWE("quality",8,10,12,25,27,31,39,41,48);\r
-aWE("quantity",4);\r
-aWE("ratio",8,12,25,41,48);\r
-aWE("reassign",35);\r
-aWE("referenc",5,8);\r
-aWE("refin",4);\r
-aWE("reflect",39);\r
-aWE("regular",11);\r
-aWE("relat",37);\r
-aWE("relation",5);\r
-aWE("relationship",5);\r
-aWE("remain",12);\r
-aWE("remov",36);\r
-aWE("repeat",12);\r
-aWE("represent",4,5,28,33,41);\r
-aWE("representation",5);\r
-aWE("restrict",5);\r
-aWE("result",4);\r
-aWE("retain",12);\r
-aWE("retriev",5);\r
-aWE("right",46);\r
-aWE("rough",4);\r
-aWE("run",37);\r
-aWE("s",12);\r
-aWE("salom",25,37);\r
-aWE("sam",5,33,34);\r
-aWE("scalar",8,38);\r
-aWE("se",5);\r
-aWE("search",24);\r
-aWE("segment",4,11,18,25,26,28,33,40);\r
-aWE("select",0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46);\r
-aWE("sens",5);\r
-aWE("separat",41);\r
-aWE("set",5,6,11,18,25,28,29,30,33,34,37,40,46);\r
-aWE("shad",46);\r
-aWE("shap",4,5,12);\r
-aWE("shortest",12,48);\r
-aWE("should",37);\r
-aWE("shown",8);\r
-aWE("shrink",46);\r
-aWE("sid",12,31,39);\r
-aWE("similar",11);\r
-aWE("simpl",5);\r
-aWE("skew",8,25,39);\r
-aWE("smesh",4,5,6,8,21,22,24,25,37,43,46);\r
-aWE("so",4,12,18,40,41);\r
-aWE("spac",5);\r
-aWE("specifi",18,40,49);\r
-aWE("split",11,28,33);\r
-aWE("standard",24,37);\r
-aWE("start",4,11,37,40);\r
-aWE("step",14);\r
-aWE("study",37);\r
-aWE("sub",24);\r
-aWE("submesh",4,17);\r
-aWE("surfac",5,49);\r
-aWE("surround",5);\r
-aWE("t",5);\r
-aWE("taken",4);\r
-aWE("tap",8,25,41);\r
-aWE("tetrahedron",5,6,30,49,42);\r
-aWE("text",7,9,13,15,19,20,36,38,47);\r
-aWE("them",18,40);\r
-aWE("thre",5,46);\r
-aWE("toolbar",12,14,16,17,27,37,39,41,45,48);\r
-aWE("topic",7,9,13,15,19,20,36,38,47);\r
-aWE("topological",5);\r
-aWE("topology",5);\r
-aWE("triangl",2,5,6,10,12,27,29,31,39,41);\r
-aWE("triangulator",26);\r
-aWE("two",5,12,31,41);\r
-aWE("typ",5,7,9,13,15,19,20,36,38,47);\r
-aWE("u",5);\r
-aWE("unles",34);\r
-aWE("unv",24);\r
-aWE("up",11,46);\r
-aWE("updat",37,44);\r
-aWE("us",0,1,2,3,5,6,16,17,18,28,33,40,49,42,43);\r
-aWE("usag",8);\r
-aWE("v",5);\r
-aWE("valu",8,11,12,18,31,39);\r
-aWE("vector",48);\r
-aWE("vertex",5);\r
-aWE("view",10,12,21,22,27,31,37,39,41,44,45,46,48);\r
-aWE("visual",8);\r
-aWE("visualization",46,47);\r
-aWE("volum",3,4,5,6,25,30,49,42);\r
-aWE("vtk",37);\r
-aWE("warp",8,25,48);\r
-aWE("way",5);\r
-aWE("whil",49);\r
-aWE("will",4,5,6,10,11,12,16,17,18,21,22,24,27,28,29,30,31,33,34,37,39,40,41,45,48);\r
-aWE("window",37);\r
-aWE("wir",0,6,26);\r
-aWE("wirefram",46);\r
-aWE("word",33);\r
-aWE("work",37);\r
-aWE("x",5,48);\r
-aWE("y",5);\r
-aWE("your",4,5,8,10,11,12,14,17,18,21,22,24,27,28,29,30,31,33,39,40,41,45,46,48);\r
-aWE("z",5);\r
+aWE("0",6,47);\r
+aWE("0d",6);\r
+aWE("1",10,11,12,13,14,15,20,21,23,24,25,26,27,28,0,29,32,36,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64);\r
+aWE("1d",1,5,6,7,12,0,30,34,31,40,66,50);\r
+aWE("2",10,11,13,14,15,20,21,23,24,25,26,27,28,0,29,32,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64);\r
+aWE("2d",2,3,6,7,11,13,0,30,34,31,37,65,66,47,64);\r
+aWE("3",6,11,13,14,21,23,24,0,29,65,41,42,43,66,45,47,48,49,56,57,64);\r
+aWE("3d",4,6,7,10,14,20,21,23,24,25,26,0,30,41,42,43,66,47,49,53,54,56,57);\r
+aWE("3rd",6);\r
+aWE("4",6,11,13,21,24,65,47,48,52,64);\r
+aWE("5th",6);\r
+aWE("abl",41);\r
+aWE("abov",49);\r
+aWE("absent",58);\r
+aWE("abut",33,22,39);\r
+aWE("accord",9,11,13,32,37,65,48,49,52,64);\r
+aWE("account",5,65);\r
+aWE("ad",10,14,20,21,56,58);\r
+aWE("add",10,14,20,21,27,56);\r
+aWE("addition",21,30);\r
+aWE("additional",6,65,45,49);\r
+aWE("adjacent",24,37,35,38,42,47,56);\r
+aWE("adjust",49);\r
+aWE("advanc",53);\r
+aWE("again",41);\r
+aWE("algorithm",1,2,3,4,5,6,7,9,11,12,18,19,28,30,65,41,47,53,54);\r
+aWE("allow",5,12,14,20,21,29,30,36,35,38,65,40,44,47,49,51,55,56,58);\r
+aWE("along",0,65,49);\r
+aWE("already",28);\r
+aWE("alway",49);\r
+aWE("angl",9,30,37,66,44,48,64);\r
+aWE("anoth",40);\r
+aWE("any",6,24,65,49,53);\r
+aWE("ap",1,2,3,4,7,10,11,13,14,20,21,23,24,27,0,30,34,31,32,37,35,38,65,40,41,42,43,66,47,48,49,51,52,53,54,56,57,58,64);\r
+aWE("appear",5,7,10,12,14,18,19,20,21,23,24,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58);\r
+aWE("appli",11,13,18,19,28,32,33,22,37,39,41,48,49,52,64);\r
+aWE("application",9,65);\r
+aWE("apply",5,18,19);\r
+aWE("approximate",39);\r
+aWE("arcsin",64);\r
+aWE("area",5,9,11,30,49,52);\r
+aWE("arithmetic",5,12);\r
+aWE("around",66);\r
+aWE("aspect",9,13,30,49);\r
+aWE("assign",41,64);\r
+aWE("associat",10,25,26,28,41,42);\r
+aWE("automatic",65);\r
+aWE("automatical",14,21,24,65,56);\r
+aWE("availabl",41,47);\r
+aWE("averag",5,34,31,33,22,65,50,64);\r
+aWE("axi",0,66,44,51,64);\r
+aWE("bar",9,46);\r
+aWE("bas",5,11,30,64);\r
+aWE("basi",6,18,19);\r
+aWE("basic",5);\r
+aWE("becom",65);\r
+aWE("befor",45);\r
+aWE("begin",12,47);\r
+aWE("belong",47);\r
+aWE("berder",47);\r
+aWE("bisect",64);\r
+aWE("bisector",64);\r
+aWE("boolean",58);\r
+aWE("bord",47);\r
+aWE("border",30,47);\r
+aWE("both",49,58);\r
+aWE("bottom",45);\r
+aWE("bound",6,65);\r
+aWE("boundari",65);\r
+aWE("boundary",5,65,47,49);\r
+aWE("box",1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58);\r
+aWE("brows",5,7,10,15,17,18,19,20,27,28,41,42,43,61,62);\r
+aWE("build",0,34,31,65,66,50);\r
+aWE("built",65,49,53);\r
+aWE("button",10,11,13,14,15,18,19,20,21,23,24,27,28,0,29,32,37,65,41,42,43,66,44,47,48,49,51,52,55,56,57,58,61,64);\r
+aWE("cad",6);\r
+aWE("cal",65);\r
+aWE("calculat",9,13,34,31,52);\r
+aWE("calculation",5,11,32,37);\r
+aWE("cancel",20);\r
+aWE("careful",42);\r
+aWE("cas",24,65);\r
+aWE("cel",42,57);\r
+aWE("cent",49);\r
+aWE("centroid",49);\r
+aWE("centroidal",49);\r
+aWE("certain",65);\r
+aWE("chang",12,14,20,24,28,41);\r
+aWE("characteristic",9);\r
+aWE("characteriz",6);\r
+aWE("check",47);\r
+aWE("choic",5,65);\r
+aWE("choos",10,11,13,14,17,20,21,23,24,25,26,0,29,32,36,37,65,41,42,43,66,44,45,47,48,51,52,55,56,57,64);\r
+aWE("chos",17);\r
+aWE("chosen",5);\r
+aWE("click",1,2,3,4,5,7,10,11,12,13,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,34,31,32,33,22,37,35,38,39,65,40,41,42,43,66,45,47,48,49,50,52,53,54,56,57,58,61,62,64);\r
+aWE("clos",6,47);\r
+aWE("co",47);\r
+aWE("coincident",36);\r
+aWE("color",9,11,13,32,37,48,52,64);\r
+aWE("column",41);\r
+aWE("combin",32);\r
+aWE("common",23,57);\r
+aWE("compar",47);\r
+aWE("component",30,45);\r
+aWE("compos",5,6,7,9,25,33,22,39,48);\r
+aWE("comput",15,65,47);\r
+aWE("computation",15,18,19);\r
+aWE("condition",5);\r
+aWE("confirm",14,20,21,27,28,41,42,49,56,58);\r
+aWE("confirmation",20);\r
+aWE("conform",5,35,38,47);\r
+aWE("connect",21,49);\r
+aWE("connection",6,30);\r
+aWE("connectivity",16,65);\r
+aWE("consider",6,47);\r
+aWE("consist",9,11,13,17,18,19,20,32,33,22,37,39,52);\r
+aWE("constant",50);\r
+aWE("construct",17,18,19,50);\r
+aWE("construction",18,19);\r
+aWE("contain",6,7,14,18,19,20,21,29,65,41,49,56);\r
+aWE("content",20);\r
+aWE("continu",49);\r
+aWE("contour",6,47);\r
+aWE("contrast",56);\r
+aWE("control",9,11,13,30,32,37,48,52,64);\r
+aWE("converg",49);\r
+aWE("coordinat",6,10,24,65);\r
+aWE("copy",44,51,55);\r
+aWE("corn",64);\r
+aWE("corner",21,49,64);\r
+aWE("correspond",5,6,9,10,29,65,47);\r
+aWE("could",6);\r
+aWE("count",47);\r
+aWE("counterclockwis",65);\r
+aWE("creat",1,2,3,4,5,6,7,10,12,20,28,30,34,31,33,22,36,35,38,39,65,40,41,44,45,50,51,53,54,55,58,64);\r
+aWE("creation",6,20,65,45,58);\r
+aWE("criteria",30);\r
+aWE("criterion",11,13,32,37,48,52,64);\r
+aWE("cros",64);\r
+aWE("current",14,21,41,47,56);\r
+aWE("curv",6);\r
+aWE("cut",21,58);\r
+aWE("d",12);\r
+aWE("data",5,28);\r
+aWE("deal",6);\r
+aWE("default",45);\r
+aWE("defin",6,12,13,20,33,22,39,65,47,50);\r
+aWE("definit",6,9,14,17,20,21,30,39,41,42,56);\r
+aWE("definition",33,22,39);\r
+aWE("deflection",5);\r
+aWE("delet",42);\r
+aWE("deletion",30,42,57);\r
+aWE("depend",5,6,28);\r
+aWE("describ",6,65);\r
+aWE("description",65);\r
+aWE("desirabl",36);\r
+aWE("desktop",45);\r
+aWE("destin",6,9,30);\r
+aWE("detail",5);\r
+aWE("detect",36);\r
+aWE("diagonal",21,23,52);\r
+aWE("dialog",1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,47,49,50,51,53,54,55,56,57,58);\r
+aWE("dif",28);\r
+aWE("differ",50);\r
+aWE("differenc",47);\r
+aWE("different",5,10,20,47);\r
+aWE("dimension",6,0,66);\r
+aWE("direct",6,47,49);\r
+aWE("direction",65,64);\r
+aWE("discretiz",0,66);\r
+aWE("discretization",1,6,7);\r
+aWE("displac",24);\r
+aWE("display",9,11,13,14,18,19,21,24,25,26,32,37,48,49,52,56,61,62,64);\r
+aWE("disposal",9);\r
+aWE("distanc",65,64);\r
+aWE("distortion",49);\r
+aWE("divid",50);\r
+aWE("do",53);\r
+aWE("domain",65);\r
+aWE("don",6,41);\r
+aWE("doubl",41);\r
+aWE("e",65,47);\r
+aWE("easi",17);\r
+aWE("edg",1,5,6,7,9,10,12,13,17,20,21,23,24,30,34,31,32,33,22,35,38,39,65,40,47,49,50,56,57,64);\r
+aWE("edit",27,28,36,41);\r
+aWE("effect",56);\r
+aWE("eith",65,47);\r
+aWE("element",5,6,9,10,11,13,14,17,20,21,23,24,25,27,0,30,32,37,35,38,65,42,43,66,44,47,48,49,50,51,52,53,55,56,58,64);\r
+aWE("els",65);\r
+aWE("encapsulat",19);\r
+aWE("encounter",65);\r
+aWE("end",5,12,35,38,47,50,55);\r
+aWE("enough",47);\r
+aWE("ent",20,23,24,28,29,41,57);\r
+aWE("entiti",1,2,3,4,6,7,53,54);\r
+aWE("entity",6);\r
+aWE("equal",13,65,47,49);\r
+aWE("equilateral",13);\r
+aWE("etc",9);\r
+aWE("eventual",65);\r
+aWE("every",64);\r
+aWE("exampl",6,65,54);\r
+aWE("exceed",49);\r
+aWE("except",47);\r
+aWE("exist",14,20,21,27,65,56);\r
+aWE("export",29,30);\r
+aWE("exportation",29);\r
+aWE("extend",64);\r
+aWE("extrud",0,66);\r
+aWE("extrusion",0);\r
+aWE("fac",2,3,5,6,7,17,20,30,33,22,35,38,39,65,40,47,64);\r
+aWE("factor",50);\r
+aWE("far",47);\r
+aWE("fast",49);\r
+aWE("field",10,14,20,21,23,24,41,43,47,49,56,57);\r
+aWE("fifth",47);\r
+aWE("fil",20,29,65);\r
+aWE("fill",43,47);\r
+aWE("filt",14,20,21,56);\r
+aWE("final",15);\r
+aWE("find",29,65,47);\r
+aWE("first",65,47,50);\r
+aWE("fix",6,49);\r
+aWE("flag",65);\r
+aWE("fold",5,7,18,19);\r
+aWE("follow",5,6,7,9,10,12,13,14,18,19,20,21,23,24,25,26,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58,61);\r
+aWE("form",23,27,65,47);\r
+aWE("format",29,30);\r
+aWE("four",6,64);\r
+aWE("fre",6,30,47,49);\r
+aWE("function",6);\r
+aWE("functionality",6,29,36,47);\r
+aWE("generat",5,6,9,30,33,22,35,38,39,65,45,53);\r
+aWE("generation",15,0,65,66);\r
+aWE("geom",6,30);\r
+aWE("geometric",6,9);\r
+aWE("geometrical",1,2,3,4,5,6,7,18,19,20,30,33,22,39,65,44,49,50,51,53,54,55);\r
+aWE("geometry",20,49);\r
+aWE("get",65);\r
+aWE("ghs3d",53);\r
+aWE("given",12,34,31,47);\r
+aWE("global",18);\r
+aWE("good",49);\r
+aWE("got",65);\r
+aWE("group",14,17,20,21,27,30,36,56,58);\r
+aWE("h",64);\r
+aWE("h1",13);\r
+aWE("h2",13);\r
+aWE("half",64);\r
+aWE("hand",65);\r
+aWE("hav",20,34,31,35,38,65,53);\r
+aWE("height",13,64);\r
+aWE("help",9);\r
+aWE("henc",65);\r
+aWE("her",6,16,27,65,41,46,63);\r
+aWE("hexahedron",4,6,7,10);\r
+aWE("high",6);\r
+aWE("highlight",14,20,21,56);\r
+aWE("hold",65);\r
+aWE("hyp",18,19);\r
+aWE("hypothes",5,7,12,18,19,28,30,34,31,33,22,35,38,39,40,41,50,53);\r
+aWE("hypothesi",5,12,28,34,31,33,22,35,38,39,40,41,50,53);\r
+aWE("i",65,47);\r
+aWE("icon",27,42,45);\r
+aWE("id",14,20,21,23,24,25,26,0,66,47,49,56,57);\r
+aWE("if",6,20,0,65,40,42,66,47,49,56);\r
+aWE("imp",6);\r
+aWE("impli",65);\r
+aWE("import",29,30);\r
+aWE("importation",29);\r
+aWE("includ",6);\r
+aWE("index",65);\r
+aWE("indic",65);\r
+aWE("indicat",64);\r
+aWE("info",61);\r
+aWE("information",6,27,61);\r
+aWE("initial",45,51,58);\r
+aWE("input",5,28);\r
+aWE("insert",47);\r
+aWE("instead",65);\r
+aWE("intend",47);\r
+aWE("interest",6);\r
+aWE("intermediat",47);\r
+aWE("internal",65);\r
+aWE("intersect",65,58);\r
+aWE("intersection",65,58);\r
+aWE("introduction",30);\r
+aWE("invers",6,23);\r
+aWE("inversion",23);\r
+aWE("iso",65);\r
+aWE("isolin",65);\r
+aWE("item",5,7,10,14,17,21,23,24,27,28,0,29,36,65,41,43,66,44,47,49,51,55,56,57,58);\r
+aWE("iteration",49);\r
+aWE("iterativ",49);\r
+aWE("join",48);\r
+aWE("just",65,42);\r
+aWE("keep",49,51);\r
+aWE("key",65);\r
+aWE("kind",7);\r
+aWE("know",65);\r
+aWE("l",64);\r
+aWE("laplacian",49);\r
+aWE("largest",13);\r
+aWE("last",47,50);\r
+aWE("launch",45);\r
+aWE("lay",0,65,66);\r
+aWE("least",65,49);\r
+aWE("left",65);\r
+aWE("length",5,9,12,13,30,34,31,32,33,22,39,47,50,64);\r
+aWE("les",47,49,53);\r
+aWE("level",5);\r
+aWE("lik",10,20,25,26,41,45,47);\r
+aWE("limit",65,47,49);\r
+aWE("lin",6,0,65,66,48);\r
+aWE("link",47);\r
+aWE("list",14,20,21,56);\r
+aWE("lk",12);\r
+aWE("local",19,30,39,40);\r
+aWE("locat",65,47);\r
+aWE("location",24,29,49,50);\r
+aWE("longest",13);\r
+aWE("look",20,25,26,65,45);\r
+aWE("low",6);\r
+aWE("ly",65);\r
+aWE("main",5,7,14,21,65,45,56,58);\r
+aWE("manag",5);\r
+aWE("manual",20,65);\r
+aWE("map",65);\r
+aWE("max",5,30,49);\r
+aWE("maximum",48,49);\r
+aWE("mean",6);\r
+aWE("meaningful",6);\r
+aWE("measur",64);\r
+aWE("mefisto",3);\r
+aWE("menu",5,7,10,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,36,39,65,41,42,43,66,44,45,47,49,51,55,56,57,58,61,62);\r
+aWE("merg",36,47);\r
+aWE("mesh",1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,24,25,26,27,0,29,30,34,31,32,33,22,36,37,35,38,39,65,41,42,43,66,44,45,47,48,49,50,51,52,53,54,55,56,58,61,62,64);\r
+aWE("method",49);\r
+aWE("minimum",9,30,37,47);\r
+aWE("mod",62);\r
+aWE("model",6,30);\r
+aWE("modification",6,8,10,14,21,23,24,27,0,30,36,65,41,42,43,66,44,47,49,51,55,56,57);\r
+aWE("modify",14,21,27,56);\r
+aWE("modul",6,7,30,45);\r
+aWE("mov",24,30,41);\r
+aWE("multi",30);\r
+aWE("multipli",13);\r
+aWE("must",65,47);\r
+aWE("n",65,47);\r
+aWE("nam",12,20,27,28,29,33,22,39,41,50,58);\r
+aWE("nb",39);\r
+aWE("ne",53);\r
+aWE("need",53);\r
+aWE("neighbor",23,57);\r
+aWE("netgen",53,54);\r
+aWE("new",18,19,20,24,28,41,45,58);\r
+aWE("next",65);\r
+aWE("nod",6,10,11,13,14,17,20,24,26,0,30,33,22,36,39,65,42,43,66,47,48,49,50,52,64);\r
+aWE("nodal",65,49);\r
+aWE("normal",51,64);\r
+aWE("not",49);\r
+aWE("notic",6);\r
+aWE("numb",5,6,0,30,39,65,66,47,49);\r
+aWE("number",25,26);\r
+aWE("obey",47);\r
+aWE("object",1,2,3,4,5,7,10,15,17,18,19,20,27,28,33,22,39,65,41,42,43,44,53,54,55,61,62);\r
+aWE("objet",20);\r
+aWE("ok",10,14,20,21,23,24,27,28,0,29,41,42,43,66,47,49,56,57,58);\r
+aWE("on",5,6,7,18,19,21,23,0,65,40,42,66,47,49,50,51,53,55,56,58);\r
+aWE("onc",41,56);\r
+aWE("onto",65,40);\r
+aWE("operation",14,20,21,30,43,44,47,49,51,55,56,58);\r
+aWE("opposit",5,21,40,47,48);\r
+aWE("option",6,51,55);\r
+aWE("ord",6,14,65);\r
+aWE("orientation",14,21,56);\r
+aWE("origin",64);\r
+aWE("other",56);\r
+aWE("outsid",65);\r
+aWE("own",6);\r
+aWE("paramet",6,47);\r
+aWE("parameter",5,34,31,35,38,44,47);\r
+aWE("parametric",6,65);\r
+aWE("part",47,49);\r
+aWE("particularity",6);\r
+aWE("pattern",65);\r
+aWE("pattern_nam",65);\r
+aWE("perfect",13);\r
+aWE("perform",30,43,47,51,58);\r
+aWE("plac",47);\r
+aWE("plan",51,64);\r
+aWE("planar",64);\r
+aWE("platform",45);\r
+aWE("plu",0,66);\r
+aWE("point",6,33,22,39,65,66,44,47,51,55,64);\r
+aWE("pop",25,26,62);\r
+aWE("popup",28,41);\r
+aWE("position",6,65);\r
+aWE("possibl",5,65);\r
+aWE("pres",10,42,49);\r
+aWE("present",6,58);\r
+aWE("presentation",9);\r
+aWE("preserv",65);\r
+aWE("preset",5);\r
+aWE("preview",21,65);\r
+aWE("previou",50,56);\r
+aWE("previous",18,19,20,30,41);\r
+aWE("procedur",13,49);\r
+aWE("proces",49);\r
+aWE("produc",6,0,66,49);\r
+aWE("product",64);\r
+aWE("progression",12);\r
+aWE("project",65);\r
+aWE("projection",65,64);\r
+aWE("propagat",40);\r
+aWE("propagation",5,40);\r
+aWE("properti",20,46,62,63);\r
+aWE("pseudo",23);\r
+aWE("pul",49);\r
+aWE("quad",64);\r
+aWE("quadrangl",2,6,7,10,11,13,21,23,0,32,37,66,48);\r
+aWE("quadrangular",40);\r
+aWE("quality",9,11,13,30,32,37,48,52,64);\r
+aWE("quantity",5);\r
+aWE("quit",20);\r
+aWE("radio",14,20,21,44,47,51,55,56);\r
+aWE("ratio",9,13,30,49,52,64);\r
+aWE("reassign",41);\r
+aWE("recomput",41);\r
+aWE("reduc",49);\r
+aWE("reevaluat",49);\r
+aWE("refer",65);\r
+aWE("referenc",6,9,18,19);\r
+aWE("refin",5);\r
+aWE("reflect",65,48);\r
+aWE("regular",12);\r
+aWE("relat",45);\r
+aWE("relation",6);\r
+aWE("relationship",6);\r
+aWE("remain",13);\r
+aWE("remov",14,20,21,27,42,56);\r
+aWE("renam",28);\r
+aWE("renumb",43);\r
+aWE("renumber",43);\r
+aWE("reorient",14);\r
+aWE("repeat",13);\r
+aWE("replac",47);\r
+aWE("represent",5,6,33,22,39,52);\r
+aWE("representation",6);\r
+aWE("requir",23,24,28,41,57);\r
+aWE("rest",65,47);\r
+aWE("restrict",6);\r
+aWE("result",5,49,58);\r
+aWE("retain",13);\r
+aWE("retriev",6);\r
+aWE("revers",65);\r
+aWE("revert",14);\r
+aWE("revolution",0,66);\r
+aWE("revolv",66);\r
+aWE("right",17,24,25,26,28,41,62);\r
+aWE("rotat",0,66,44);\r
+aWE("rotation",66,44);\r
+aWE("rough",5);\r
+aWE("rul",47);\r
+aWE("run",45);\r
+aWE("s",13,35,38,40,50);\r
+aWE("salom",30,45);\r
+aWE("sam",6,39,40,47);\r
+aWE("scalar",9,46);\r
+aWE("se",6,27);\r
+aWE("seam",65);\r
+aWE("search",29);\r
+aWE("second",47);\r
+aWE("section",65);\r
+aWE("segment",5,12,30,34,31,33,22,39,50);\r
+aWE("select",1,2,3,4,5,7,10,12,14,15,17,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58,61,62);\r
+aWE("selection",14,20,21,56);\r
+aWE("sens",6);\r
+aWE("separat",52);\r
+aWE("sequenc",47);\r
+aWE("set",6,7,10,12,14,20,21,24,30,33,22,39,65,40,41,45,47,49,50,56,62);\r
+aWE("sew",47);\r
+aWE("shad",62);\r
+aWE("shall",5,7,10,14,21,23,24,0,36,65,66,44,47,51,55,56,57);\r
+aWE("shap",5,6,13,65,49);\r
+aWE("shift",10,42,49);\r
+aWE("shortest",13,64);\r
+aWE("should",20,0,65,41,66,44,45,47,49,58);\r
+aWE("shown",9,49);\r
+aWE("shrink",62);\r
+aWE("sid",13,37,47,48);\r
+aWE("similar",12);\r
+aWE("simpl",6,65);\r
+aWE("siz",49);\r
+aWE("skew",9,30,48);\r
+aWE("smesh",5,6,7,9,10,17,20,23,24,25,26,28,29,30,42,43,45,47,57,58,59,62);\r
+aWE("smooth",49);\r
+aWE("smp",65);\r
+aWE("so",5,13,65,47,50,52);\r
+aWE("sort",14,20,21,56);\r
+aWE("spac",6,65,44,55);\r
+aWE("specifi",65,42,47,49,50,53);\r
+aWE("specific",17);\r
+aWE("specify",10,21,0,65,42,66,44,49,51,55,58);\r
+aWE("split",12,33,22,39,47);\r
+aWE("standalon",20);\r
+aWE("standard",29,45);\r
+aWE("start",5,12,45,47,50,55);\r
+aWE("step",15,0,66);\r
+aWE("stor",65);\r
+aWE("structur",18,19);\r
+aWE("study",41,45);\r
+aWE("sub",29,36,65,44,47,51,55);\r
+aWE("submenu",10,42,43);\r
+aWE("submesh",5,14,17,19,20,21,0,41,66,49,56);\r
+aWE("supplementary",21);\r
+aWE("surfac",6,0,65,66,47,53);\r
+aWE("surround",6,49);\r
+aWE("swept",0,66);\r
+aWE("symmetrical",51);\r
+aWE("symmetry",51);\r
+aWE("t",6,65);\r
+aWE("tak",56);\r
+aWE("taken",5,17,20,65);\r
+aWE("tap",9,30,52);\r
+aWE("techniqu",49);\r
+aWE("tetrahedron",6,7,10,53,54);\r
+aWE("text",16,46,63);\r
+aWE("th",65,47);\r
+aWE("them",10,0,36,42,66,47,49,50);\r
+aWE("thre",6,47,51,62);\r
+aWE("thu",41);\r
+aWE("toleranc",36,66);\r
+aWE("tool",58);\r
+aWE("toolbar",13,14,15,18,19,21,23,24,27,0,32,65,42,43,66,45,48,49,52,56,57,61,64);\r
+aWE("topic",16,46,63);\r
+aWE("topological",6,47);\r
+aWE("topology",6);\r
+aWE("toward",49);\r
+aWE("transform",24);\r
+aWE("transformation",36,44,47,51,55);\r
+aWE("translat",55);\r
+aWE("translation",55);\r
+aWE("triangl",3,6,7,10,11,13,23,0,32,37,66,48,52,56,57);\r
+aWE("triangulator",34,31);\r
+aWE("two",6,13,21,23,37,65,41,47,52,55,57,58);\r
+aWE("typ",5,6,10,16,17,20,28,0,42,66,46,47,63);\r
+aWE("typical",49);\r
+aWE("u",6,47);\r
+aWE("unassign",41);\r
+aWE("uniform",49);\r
+aWE("union",56,57,58);\r
+aWE("unit",47,56,57,58);\r
+aWE("unles",40);\r
+aWE("unv",29);\r
+aWE("up",12,25,26,47,62);\r
+aWE("updat",45,49,60);\r
+aWE("us",1,2,3,4,6,7,18,19,0,33,22,36,39,65,41,66,47,49,50,53,54,58,59);\r
+aWE("usag",9);\r
+aWE("usual",47,49);\r
+aWE("v",6);\r
+aWE("valu",9,12,13,28,37,48);\r
+aWE("vector",0,66,44,51,55,64);\r
+aWE("versa",41);\r
+aWE("vertex",6,65);\r
+aWE("vertic",65);\r
+aWE("vic",41);\r
+aWE("view",10,11,13,14,20,21,23,24,25,26,0,32,37,41,42,43,66,45,47,48,49,52,56,57,60,61,62,64);\r
+aWE("visual",9);\r
+aWE("visualization",62,63);\r
+aWE("volum",4,5,6,7,20,30,53,54);\r
+aWE("vtk",45);\r
+aWE("walk",65);\r
+aWE("warp",9,30,64);\r
+aWE("way",6,65,58);\r
+aWE("weight",49);\r
+aWE("well",65);\r
+aWE("whil",42,53);\r
+aWE("whol",0,66,49);\r
+aWE("whos",14,20,21,56);\r
+aWE("will",5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,0,29,32,33,22,37,39,65,40,41,42,43,66,45,47,48,49,50,52,56,58,61,64);\r
+aWE("window",45);\r
+aWE("wir",1,7,34,31);\r
+aWE("wirefram",62);\r
+aWE("within",65,47);\r
+aWE("word",39);\r
+aWE("work",45);\r
+aWE("would",10,41,47);\r
+aWE("x",6,64);\r
+aWE("y",6);\r
+aWE("your",5,6,9,10,11,12,13,14,15,17,19,20,24,25,26,27,28,29,32,33,22,36,37,39,65,41,42,43,44,48,49,50,51,52,55,61,62,64);\r
+aWE("z",6);\r
+aWE("zero",65);\r
\r
//-->\r
</script>\r
<?xml version='1.0' encoding='ISO-8859-1' ?>\r
<ftswdata>\r
-<key name="0"> 5, </key>\r
-<key name="0d"> 5, </key>\r
-<key name="1"> 10,11,12,14,21,22,24,27,31,39,41,45,46,48, </key>\r
-<key name="1d"> 0,4,5,6,11,18,25,26,34,40, </key>\r
-<key name="2"> 10,12,14,21,22,24,27,31,39,41,45,46,48, </key>\r
-<key name="2d"> 1,2,5,6,10,12,25,26,29,31,48, </key>\r
-<key name="3"> 5,10,12,24,37,39,48, </key>\r
-<key name="3d"> 3,5,6,25,30,49,42, </key>\r
-<key name="3rd"> 5, </key>\r
-<key name="4"> 5,10,12,39,41,48, </key>\r
-<key name="5th"> 5, </key>\r
-<key name="abut"> 28,33, </key>\r
-<key name="accord"> 8,10,12,27,31,39,41,48, </key>\r
-<key name="account"> 4, </key>\r
-<key name="ad"> 9, </key>\r
-<key name="addition"> 25, </key>\r
-<key name="additional"> 5,37, </key>\r
-<key name="adjacent"> 31,32, </key>\r
-<key name="advanc"> 49, </key>\r
-<key name="algorithm"> 0,1,2,3,4,5,6,8,10,11,16,17,25,29,30,35,49,42, </key>\r
-<key name="allow"> 4,11,24,25,32,34, </key>\r
-<key name="angl"> 8,25,31,39,48, </key>\r
-<key name="anoth"> 34, </key>\r
-<key name="any"> 5,49, </key>\r
-<key name="ap"> 0,1,2,3,6,10,12,25,27,31,39,41,49,42,48, </key>\r
-<key name="appear"> 4,6,11,16,17,18,28,29,30,33,37,40, </key>\r
-<key name="appli"> 10,12,27,28,29,30,31,33,39,41,48, </key>\r
-<key name="application"> 8, </key>\r
-<key name="apply"> 4,16,17, </key>\r
-<key name="approximate"> 33, </key>\r
-<key name="arcsin"> 48, </key>\r
-<key name="area"> 4,8,10,25,29,30,41, </key>\r
-<key name="arithmetic"> 4,11, </key>\r
-<key name="aspect"> 8,12,25, </key>\r
-<key name="assign"> 48, </key>\r
-<key name="averag"> 4,26,28,40,48, </key>\r
-<key name="axi"> 48, </key>\r
-<key name="bar"> 8,38, </key>\r
-<key name="bas"> 4,10,25,48, </key>\r
-<key name="basi"> 5, </key>\r
-<key name="basic"> 4, </key>\r
-<key name="befor"> 37, </key>\r
-<key name="begin"> 11, </key>\r
-<key name="bisect"> 48, </key>\r
-<key name="bisector"> 48, </key>\r
-<key name="border"> 25, </key>\r
-<key name="bottom"> 37, </key>\r
-<key name="bound"> 5, </key>\r
-<key name="boundary"> 4, </key>\r
-<key name="box"> 11,16,17,18,24,28,29,30,33,37,40, </key>\r
-<key name="brows"> 14,45,46, </key>\r
-<key name="build"> 18,26,40, </key>\r
-<key name="built"> 49, </key>\r
-<key name="button"> 10,12,14,16,17,24,27,31,39,41,45,48, </key>\r
-<key name="cad"> 5, </key>\r
-<key name="calculat"> 8,12,26,41, </key>\r
-<key name="calculation"> 4,10,27,31, </key>\r
-<key name="chang"> 11,13, </key>\r
-<key name="characteristic"> 8, </key>\r
-<key name="characteriz"> 5, </key>\r
-<key name="choic"> 4, </key>\r
-<key name="choos"> 10,12,24,27,31,37,39,41,48, </key>\r
-<key name="chosen"> 29,30, </key>\r
-<key name="click"> 0,1,2,3,4,6,10,11,12,14,16,17,18,24,27,28,29,30,31,33,37,39,40,41,49,42,45,46,48, </key>\r
-<key name="clos"> 5, </key>\r
-<key name="color"> 8,10,12,27,31,39,41,48, </key>\r
-<key name="combin"> 27, </key>\r
-<key name="component"> 25,37, </key>\r
-<key name="compos"> 4,5,6,8,21,28,29,30,33,39, </key>\r
-<key name="comput"> 14, </key>\r
-<key name="computation"> 14,16,17, </key>\r
-<key name="condition"> 4, </key>\r
-<key name="conform"> 4,32, </key>\r
-<key name="connect"> 18, </key>\r
-<key name="connection"> 5,25, </key>\r
-<key name="connectivity"> 15, </key>\r
-<key name="consider"> 5, </key>\r
-<key name="consist"> 8,10,12,16,17,27,28,29,30,31,33,41, </key>\r
-<key name="constant"> 40, </key>\r
-<key name="construct"> 16,17,18,40, </key>\r
-<key name="construction"> 16,17, </key>\r
-<key name="contain"> 5,6,24, </key>\r
-<key name="contour"> 5, </key>\r
-<key name="control"> 8,10,12,25,27,31,39,41,48, </key>\r
-<key name="coordinat"> 5, </key>\r
-<key name="corn"> 48, </key>\r
-<key name="corner"> 48, </key>\r
-<key name="correspond"> 5,8,24, </key>\r
-<key name="could"> 5, </key>\r
-<key name="creat"> 0,1,2,3,4,5,6,11,18,25,28,29,30,33,37,40,49,42,48, </key>\r
-<key name="creation"> 5,37, </key>\r
-<key name="criteria"> 25, </key>\r
-<key name="criterion"> 10,12,27,31,39,41,48, </key>\r
-<key name="cros"> 48, </key>\r
-<key name="curv"> 5,18, </key>\r
-<key name="d"> 11, </key>\r
-<key name="deal"> 5, </key>\r
-<key name="default"> 37, </key>\r
-<key name="defin"> 5,11,12,18,28,29,30,33,40, </key>\r
-<key name="definit"> 5,8,25,33, </key>\r
-<key name="definition"> 28,29,30,33, </key>\r
-<key name="deflection"> 4,18, </key>\r
-<key name="deletion"> 25, </key>\r
-<key name="depend"> 4,5,29,30, </key>\r
-<key name="describ"> 5, </key>\r
-<key name="desktop"> 37, </key>\r
-<key name="destin"> 5,8,25, </key>\r
-<key name="detail"> 4, </key>\r
-<key name="diagonal"> 19,41, </key>\r
-<key name="dialog"> 11,16,17,18,24,28,29,30,33,40, </key>\r
-<key name="differ"> 40, </key>\r
-<key name="different"> 4, </key>\r
-<key name="dimension"> 5, </key>\r
-<key name="direct"> 5, </key>\r
-<key name="direction"> 48, </key>\r
-<key name="discretization"> 0,5,6, </key>\r
-<key name="displac"> 20, </key>\r
-<key name="display"> 8,10,12,21,22,27,31,39,41,45,46,48, </key>\r
-<key name="disposal"> 8, </key>\r
-<key name="distanc"> 18,48, </key>\r
-<key name="divid"> 18,40, </key>\r
-<key name="do"> 49, </key>\r
-<key name="don"> 5, </key>\r
-<key name="edg"> 0,4,5,6,8,11,12,18,25,26,27,28,32,33,34,40,48, </key>\r
-<key name="edit"> 23, </key>\r
-<key name="element"> 4,5,8,9,10,12,13,18,19,21,25,27,29,30,31,32,36,39,40,41,49,48, </key>\r
-<key name="encapsulat"> 17, </key>\r
-<key name="end"> 4,11,18,32,40, </key>\r
-<key name="ent"> 24, </key>\r
-<key name="entiti"> 0,1,2,3,5,6,49,42, </key>\r
-<key name="entity"> 5, </key>\r
-<key name="equal"> 12,18, </key>\r
-<key name="equilateral"> 12, </key>\r
-<key name="etc"> 8, </key>\r
-<key name="every"> 48, </key>\r
-<key name="exampl"> 5,42, </key>\r
-<key name="export"> 24,25, </key>\r
-<key name="exportation"> 24, </key>\r
-<key name="extend"> 48, </key>\r
-<key name="fac"> 1,2,4,5,6,25,28,29,32,33,34,48, </key>\r
-<key name="factor"> 40, </key>\r
-<key name="fil"> 24, </key>\r
-<key name="final"> 14, </key>\r
-<key name="find"> 24, </key>\r
-<key name="first"> 40, </key>\r
-<key name="fix"> 5, </key>\r
-<key name="follow"> 4,5,6,8,11,12,16,17,18,21,22,28,29,30,33,37,40,45, </key>\r
-<key name="format"> 24,25, </key>\r
-<key name="four"> 5,48, </key>\r
-<key name="fre"> 5,25, </key>\r
-<key name="function"> 5, </key>\r
-<key name="functionality"> 5,24, </key>\r
-<key name="generat"> 4,5,8,25,28,32,33,37,49, </key>\r
-<key name="generation"> 14, </key>\r
-<key name="geom"> 5,25, </key>\r
-<key name="geometric"> 5,8, </key>\r
-<key name="geometrical"> 0,1,2,3,4,5,6,16,17,18,25,28,29,30,33,40,49,42, </key>\r
-<key name="ghs3d"> 49, </key>\r
-<key name="given"> 11,26, </key>\r
-<key name="global"> 16, </key>\r
-<key name="group"> 25, </key>\r
-<key name="h"> 48, </key>\r
-<key name="h1"> 12, </key>\r
-<key name="h2"> 12, </key>\r
-<key name="half"> 48, </key>\r
-<key name="hav"> 26,32,49, </key>\r
-<key name="height"> 12,48, </key>\r
-<key name="help"> 8, </key>\r
-<key name="her"> 5,7,9,13,15,19,20,36,38,47, </key>\r
-<key name="hexahedron"> 3,5,6,30, </key>\r
-<key name="high"> 5, </key>\r
-<key name="hyp"> 16,17, </key>\r
-<key name="hypothes"> 0,1,2,3,4,6,11,16,17,18,23,25,28,29,30,33,35,40,49,42, </key>\r
-<key name="hypothesi"> 4,11,18,26,28,29,30,32,33,34,40,49, </key>\r
-<key name="i"> 3, </key>\r
-<key name="icon"> 37, </key>\r
-<key name="id"> 21,22, </key>\r
-<key name="if"> 5,34, </key>\r
-<key name="imp"> 5, </key>\r
-<key name="import"> 24,25, </key>\r
-<key name="importation"> 24, </key>\r
-<key name="includ"> 5, </key>\r
-<key name="indicat"> 48, </key>\r
-<key name="info"> 45, </key>\r
-<key name="information"> 5,45, </key>\r
-<key name="initial"> 37, </key>\r
-<key name="interest"> 5, </key>\r
-<key name="introduction"> 25, </key>\r
-<key name="invers"> 5, </key>\r
-<key name="inversion"> 19, </key>\r
-<key name="item"> 4,6,24, </key>\r
-<key name="j"> 3, </key>\r
-<key name="join"> 39, </key>\r
-<key name="k"> 3, </key>\r
-<key name="kind"> 6, </key>\r
-<key name="l"> 48, </key>\r
-<key name="largest"> 12, </key>\r
-<key name="last"> 40, </key>\r
-<key name="launch"> 37, </key>\r
-<key name="length"> 4,8,11,12,25,26,27,28,33,40,48, </key>\r
-<key name="les"> 49, </key>\r
-<key name="level"> 4, </key>\r
-<key name="lik"> 21,22,37, </key>\r
-<key name="lin"> 5,18,39, </key>\r
-<key name="lk"> 11, </key>\r
-<key name="local"> 17,25,33,34, </key>\r
-<key name="location"> 18,24,40, </key>\r
-<key name="longest"> 12, </key>\r
-<key name="look"> 21,22,37, </key>\r
-<key name="low"> 5, </key>\r
-<key name="main"> 4,6,37, </key>\r
-<key name="manag"> 4, </key>\r
-<key name="map"> 1, </key>\r
-<key name="max"> 4,25,29,30, </key>\r
-<key name="maximum"> 18,29,30,39, </key>\r
-<key name="mean"> 5, </key>\r
-<key name="meaningful"> 5, </key>\r
-<key name="measur"> 48, </key>\r
-<key name="mefisto"> 2, </key>\r
-<key name="menu"> 0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46, </key>\r
-<key name="mesh"> 0,1,2,3,4,5,6,7,8,10,12,14,16,17,18,21,22,24,25,26,27,28,29,30,31,32,33,37,39,40,41,49,42,45,46,48, </key>\r
-<key name="minimum"> 8,25,31, </key>\r
-<key name="mod"> 46, </key>\r
-<key name="model"> 5,25, </key>\r
-<key name="modification"> 5,7,25, </key>\r
-<key name="modul"> 5,6,25,37, </key>\r
-<key name="mov"> 25, </key>\r
-<key name="multi"> 25, </key>\r
-<key name="multipli"> 12, </key>\r
-<key name="nam"> 11,18,24,28,29,30,33,40, </key>\r
-<key name="nb"> 33, </key>\r
-<key name="ne"> 49, </key>\r
-<key name="need"> 49, </key>\r
-<key name="netgen"> 49,42, </key>\r
-<key name="new"> 37, </key>\r
-<key name="nod"> 5,9,10,12,18,20,22,25,28,33,36,39,40,41,48, </key>\r
-<key name="normal"> 48, </key>\r
-<key name="notic"> 5, </key>\r
-<key name="numb"> 4,5,25,33, </key>\r
-<key name="number"> 21,22, </key>\r
-<key name="object"> 0,1,2,3,4,6,14,16,17,28,29,30,33,49,42,45,46, </key>\r
-<key name="ok"> 24, </key>\r
-<key name="on"> 4,5,6,16,17,34,40,49, </key>\r
-<key name="onto"> 34, </key>\r
-<key name="operation"> 25, </key>\r
-<key name="opposit"> 4,34,39, </key>\r
-<key name="option"> 5, </key>\r
-<key name="ord"> 5, </key>\r
-<key name="orientation"> 13, </key>\r
-<key name="origin"> 48, </key>\r
-<key name="own"> 5, </key>\r
-<key name="paramet"> 5, </key>\r
-<key name="parameter"> 4,26,32, </key>\r
-<key name="parametric"> 5, </key>\r
-<key name="particularity"> 5, </key>\r
-<key name="perfect"> 12, </key>\r
-<key name="perform"> 25, </key>\r
-<key name="plan"> 48, </key>\r
-<key name="planar"> 48, </key>\r
-<key name="platform"> 37, </key>\r
-<key name="point"> 5,28,33,48, </key>\r
-<key name="pop"> 46, </key>\r
-<key name="position"> 5, </key>\r
-<key name="possibl"> 4, </key>\r
-<key name="present"> 5, </key>\r
-<key name="presentation"> 8, </key>\r
-<key name="preset"> 4, </key>\r
-<key name="previou"> 40, </key>\r
-<key name="previous"> 16,17,25, </key>\r
-<key name="procedur"> 12, </key>\r
-<key name="produc"> 5, </key>\r
-<key name="product"> 48, </key>\r
-<key name="progression"> 11, </key>\r
-<key name="projection"> 48, </key>\r
-<key name="propagat"> 34, </key>\r
-<key name="propagation"> 4,34, </key>\r
-<key name="properti"> 38,46,47, </key>\r
-<key name="quad"> 48, </key>\r
-<key name="quadrangl"> 1,5,6,10,12,27,29,31,39, </key>\r
-<key name="quadrangular"> 34, </key>\r
-<key name="quality"> 8,10,12,25,27,31,39,41,48, </key>\r
-<key name="quantity"> 4, </key>\r
-<key name="ratio"> 8,12,25,41,48, </key>\r
-<key name="reassign"> 35, </key>\r
-<key name="referenc"> 5,8, </key>\r
-<key name="refin"> 4, </key>\r
-<key name="reflect"> 39, </key>\r
-<key name="regular"> 11, </key>\r
-<key name="relat"> 37, </key>\r
-<key name="relation"> 5, </key>\r
-<key name="relationship"> 5, </key>\r
-<key name="remain"> 12, </key>\r
-<key name="remov"> 36, </key>\r
-<key name="repeat"> 12, </key>\r
-<key name="represent"> 4,5,28,33,41, </key>\r
-<key name="representation"> 5, </key>\r
-<key name="restrict"> 5, </key>\r
-<key name="result"> 4, </key>\r
-<key name="retain"> 12, </key>\r
-<key name="retriev"> 5, </key>\r
-<key name="right"> 46, </key>\r
-<key name="rough"> 4, </key>\r
-<key name="run"> 37, </key>\r
-<key name="s"> 12, </key>\r
-<key name="salom"> 25,37, </key>\r
-<key name="sam"> 5,33,34, </key>\r
-<key name="scalar"> 8,38, </key>\r
-<key name="se"> 5, </key>\r
-<key name="search"> 24, </key>\r
-<key name="segment"> 4,11,18,25,26,28,33,40, </key>\r
-<key name="select"> 0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46, </key>\r
-<key name="sens"> 5, </key>\r
-<key name="separat"> 41, </key>\r
-<key name="set"> 5,6,11,18,25,28,29,30,33,34,37,40,46, </key>\r
-<key name="shad"> 46, </key>\r
-<key name="shap"> 4,5,12, </key>\r
-<key name="shortest"> 12,48, </key>\r
-<key name="should"> 37, </key>\r
-<key name="shown"> 8, </key>\r
-<key name="shrink"> 46, </key>\r
-<key name="sid"> 12,31,39, </key>\r
-<key name="similar"> 11, </key>\r
-<key name="simpl"> 5, </key>\r
-<key name="skew"> 8,25,39, </key>\r
-<key name="smesh"> 4,5,6,8,21,22,24,25,37,43,46, </key>\r
-<key name="so"> 4,12,18,40,41, </key>\r
-<key name="spac"> 5, </key>\r
-<key name="specifi"> 18,40,49, </key>\r
-<key name="split"> 11,28,33, </key>\r
-<key name="standard"> 24,37, </key>\r
-<key name="start"> 4,11,37,40, </key>\r
-<key name="step"> 14, </key>\r
-<key name="study"> 37, </key>\r
-<key name="sub"> 24, </key>\r
-<key name="submesh"> 4,17, </key>\r
-<key name="surfac"> 5,49, </key>\r
-<key name="surround"> 5, </key>\r
-<key name="t"> 5, </key>\r
-<key name="taken"> 4, </key>\r
-<key name="tap"> 8,25,41, </key>\r
-<key name="tetrahedron"> 5,6,30,49,42, </key>\r
-<key name="text"> 7,9,13,15,19,20,36,38,47, </key>\r
-<key name="them"> 18,40, </key>\r
-<key name="thre"> 5,46, </key>\r
-<key name="toolbar"> 12,14,16,17,27,37,39,41,45,48, </key>\r
-<key name="topic"> 7,9,13,15,19,20,36,38,47, </key>\r
-<key name="topological"> 5, </key>\r
-<key name="topology"> 5, </key>\r
-<key name="triangl"> 2,5,6,10,12,27,29,31,39,41, </key>\r
-<key name="triangulator"> 26, </key>\r
-<key name="two"> 5,12,31,41, </key>\r
-<key name="typ"> 5,7,9,13,15,19,20,36,38,47, </key>\r
-<key name="u"> 5, </key>\r
-<key name="unles"> 34, </key>\r
-<key name="unv"> 24, </key>\r
-<key name="up"> 11,46, </key>\r
-<key name="updat"> 37,44, </key>\r
-<key name="us"> 0,1,2,3,5,6,16,17,18,28,33,40,49,42,43, </key>\r
-<key name="usag"> 8, </key>\r
-<key name="v"> 5, </key>\r
-<key name="valu"> 8,11,12,18,31,39, </key>\r
-<key name="vector"> 48, </key>\r
-<key name="vertex"> 5, </key>\r
-<key name="view"> 10,12,21,22,27,31,37,39,41,44,45,46,48, </key>\r
-<key name="visual"> 8, </key>\r
-<key name="visualization"> 46,47, </key>\r
-<key name="volum"> 3,4,5,6,25,30,49,42, </key>\r
-<key name="vtk"> 37, </key>\r
-<key name="warp"> 8,25,48, </key>\r
-<key name="way"> 5, </key>\r
-<key name="whil"> 49, </key>\r
-<key name="will"> 4,5,6,10,11,12,16,17,18,21,22,24,27,28,29,30,31,33,34,37,39,40,41,45,48, </key>\r
-<key name="window"> 37, </key>\r
-<key name="wir"> 0,6,26, </key>\r
-<key name="wirefram"> 46, </key>\r
-<key name="word"> 33, </key>\r
-<key name="work"> 37, </key>\r
-<key name="x"> 5,48, </key>\r
-<key name="y"> 5, </key>\r
-<key name="your"> 4,5,8,10,11,12,14,17,18,21,22,24,27,28,29,30,31,33,39,40,41,45,46,48, </key>\r
-<key name="z"> 5, </key>\r
+<key name="0"> 6,47, </key>\r
+<key name="0d"> 6, </key>\r
+<key name="1"> 10,11,12,13,14,15,20,21,23,24,25,26,27,28,0,29,32,36,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64, </key>\r
+<key name="1d"> 1,5,6,7,12,0,30,34,31,40,66,50, </key>\r
+<key name="2"> 10,11,13,14,15,20,21,23,24,25,26,27,28,0,29,32,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64, </key>\r
+<key name="2d"> 2,3,6,7,11,13,0,30,34,31,37,65,66,47,64, </key>\r
+<key name="3"> 6,11,13,14,21,23,24,0,29,65,41,42,43,66,45,47,48,49,56,57,64, </key>\r
+<key name="3d"> 4,6,7,10,14,20,21,23,24,25,26,0,30,41,42,43,66,47,49,53,54,56,57, </key>\r
+<key name="3rd"> 6, </key>\r
+<key name="4"> 6,11,13,21,24,65,47,48,52,64, </key>\r
+<key name="5th"> 6, </key>\r
+<key name="abl"> 41, </key>\r
+<key name="abov"> 49, </key>\r
+<key name="absent"> 58, </key>\r
+<key name="abut"> 33,22,39, </key>\r
+<key name="accord"> 9,11,13,32,37,65,48,49,52,64, </key>\r
+<key name="account"> 5,65, </key>\r
+<key name="ad"> 10,14,20,21,56,58, </key>\r
+<key name="add"> 10,14,20,21,27,56, </key>\r
+<key name="addition"> 21,30, </key>\r
+<key name="additional"> 6,65,45,49, </key>\r
+<key name="adjacent"> 24,37,35,38,42,47,56, </key>\r
+<key name="adjust"> 49, </key>\r
+<key name="advanc"> 53, </key>\r
+<key name="again"> 41, </key>\r
+<key name="algorithm"> 1,2,3,4,5,6,7,9,11,12,18,19,28,30,65,41,47,53,54, </key>\r
+<key name="allow"> 5,12,14,20,21,29,30,36,35,38,65,40,44,47,49,51,55,56,58, </key>\r
+<key name="along"> 0,65,49, </key>\r
+<key name="already"> 28, </key>\r
+<key name="alway"> 49, </key>\r
+<key name="angl"> 9,30,37,66,44,48,64, </key>\r
+<key name="anoth"> 40, </key>\r
+<key name="any"> 6,24,65,49,53, </key>\r
+<key name="ap"> 1,2,3,4,7,10,11,13,14,20,21,23,24,27,0,30,34,31,32,37,35,38,65,40,41,42,43,66,47,48,49,51,52,53,54,56,57,58,64, </key>\r
+<key name="appear"> 5,7,10,12,14,18,19,20,21,23,24,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58, </key>\r
+<key name="appli"> 11,13,18,19,28,32,33,22,37,39,41,48,49,52,64, </key>\r
+<key name="application"> 9,65, </key>\r
+<key name="apply"> 5,18,19, </key>\r
+<key name="approximate"> 39, </key>\r
+<key name="arcsin"> 64, </key>\r
+<key name="area"> 5,9,11,30,49,52, </key>\r
+<key name="arithmetic"> 5,12, </key>\r
+<key name="around"> 66, </key>\r
+<key name="aspect"> 9,13,30,49, </key>\r
+<key name="assign"> 41,64, </key>\r
+<key name="associat"> 10,25,26,28,41,42, </key>\r
+<key name="automatic"> 65, </key>\r
+<key name="automatical"> 14,21,24,65,56, </key>\r
+<key name="availabl"> 41,47, </key>\r
+<key name="averag"> 5,34,31,33,22,65,50,64, </key>\r
+<key name="axi"> 0,66,44,51,64, </key>\r
+<key name="bar"> 9,46, </key>\r
+<key name="bas"> 5,11,30,64, </key>\r
+<key name="basi"> 6,18,19, </key>\r
+<key name="basic"> 5, </key>\r
+<key name="becom"> 65, </key>\r
+<key name="befor"> 45, </key>\r
+<key name="begin"> 12,47, </key>\r
+<key name="belong"> 47, </key>\r
+<key name="berder"> 47, </key>\r
+<key name="bisect"> 64, </key>\r
+<key name="bisector"> 64, </key>\r
+<key name="boolean"> 58, </key>\r
+<key name="bord"> 47, </key>\r
+<key name="border"> 30,47, </key>\r
+<key name="both"> 49,58, </key>\r
+<key name="bottom"> 45, </key>\r
+<key name="bound"> 6,65, </key>\r
+<key name="boundari"> 65, </key>\r
+<key name="boundary"> 5,65,47,49, </key>\r
+<key name="box"> 1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58, </key>\r
+<key name="brows"> 5,7,10,15,17,18,19,20,27,28,41,42,43,61,62, </key>\r
+<key name="build"> 0,34,31,65,66,50, </key>\r
+<key name="built"> 65,49,53, </key>\r
+<key name="button"> 10,11,13,14,15,18,19,20,21,23,24,27,28,0,29,32,37,65,41,42,43,66,44,47,48,49,51,52,55,56,57,58,61,64, </key>\r
+<key name="cad"> 6, </key>\r
+<key name="cal"> 65, </key>\r
+<key name="calculat"> 9,13,34,31,52, </key>\r
+<key name="calculation"> 5,11,32,37, </key>\r
+<key name="cancel"> 20, </key>\r
+<key name="careful"> 42, </key>\r
+<key name="cas"> 24,65, </key>\r
+<key name="cel"> 42,57, </key>\r
+<key name="cent"> 49, </key>\r
+<key name="centroid"> 49, </key>\r
+<key name="centroidal"> 49, </key>\r
+<key name="certain"> 65, </key>\r
+<key name="chang"> 12,14,20,24,28,41, </key>\r
+<key name="characteristic"> 9, </key>\r
+<key name="characteriz"> 6, </key>\r
+<key name="check"> 47, </key>\r
+<key name="choic"> 5,65, </key>\r
+<key name="choos"> 10,11,13,14,17,20,21,23,24,25,26,0,29,32,36,37,65,41,42,43,66,44,45,47,48,51,52,55,56,57,64, </key>\r
+<key name="chos"> 17, </key>\r
+<key name="chosen"> 5, </key>\r
+<key name="click"> 1,2,3,4,5,7,10,11,12,13,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,34,31,32,33,22,37,35,38,39,65,40,41,42,43,66,45,47,48,49,50,52,53,54,56,57,58,61,62,64, </key>\r
+<key name="clos"> 6,47, </key>\r
+<key name="co"> 47, </key>\r
+<key name="coincident"> 36, </key>\r
+<key name="color"> 9,11,13,32,37,48,52,64, </key>\r
+<key name="column"> 41, </key>\r
+<key name="combin"> 32, </key>\r
+<key name="common"> 23,57, </key>\r
+<key name="compar"> 47, </key>\r
+<key name="component"> 30,45, </key>\r
+<key name="compos"> 5,6,7,9,25,33,22,39,48, </key>\r
+<key name="comput"> 15,65,47, </key>\r
+<key name="computation"> 15,18,19, </key>\r
+<key name="condition"> 5, </key>\r
+<key name="confirm"> 14,20,21,27,28,41,42,49,56,58, </key>\r
+<key name="confirmation"> 20, </key>\r
+<key name="conform"> 5,35,38,47, </key>\r
+<key name="connect"> 21,49, </key>\r
+<key name="connection"> 6,30, </key>\r
+<key name="connectivity"> 16,65, </key>\r
+<key name="consider"> 6,47, </key>\r
+<key name="consist"> 9,11,13,17,18,19,20,32,33,22,37,39,52, </key>\r
+<key name="constant"> 50, </key>\r
+<key name="construct"> 17,18,19,50, </key>\r
+<key name="construction"> 18,19, </key>\r
+<key name="contain"> 6,7,14,18,19,20,21,29,65,41,49,56, </key>\r
+<key name="content"> 20, </key>\r
+<key name="continu"> 49, </key>\r
+<key name="contour"> 6,47, </key>\r
+<key name="contrast"> 56, </key>\r
+<key name="control"> 9,11,13,30,32,37,48,52,64, </key>\r
+<key name="converg"> 49, </key>\r
+<key name="coordinat"> 6,10,24,65, </key>\r
+<key name="copy"> 44,51,55, </key>\r
+<key name="corn"> 64, </key>\r
+<key name="corner"> 21,49,64, </key>\r
+<key name="correspond"> 5,6,9,10,29,65,47, </key>\r
+<key name="could"> 6, </key>\r
+<key name="count"> 47, </key>\r
+<key name="counterclockwis"> 65, </key>\r
+<key name="creat"> 1,2,3,4,5,6,7,10,12,20,28,30,34,31,33,22,36,35,38,39,65,40,41,44,45,50,51,53,54,55,58,64, </key>\r
+<key name="creation"> 6,20,65,45,58, </key>\r
+<key name="criteria"> 30, </key>\r
+<key name="criterion"> 11,13,32,37,48,52,64, </key>\r
+<key name="cros"> 64, </key>\r
+<key name="current"> 14,21,41,47,56, </key>\r
+<key name="curv"> 6, </key>\r
+<key name="cut"> 21,58, </key>\r
+<key name="d"> 12, </key>\r
+<key name="data"> 5,28, </key>\r
+<key name="deal"> 6, </key>\r
+<key name="default"> 45, </key>\r
+<key name="defin"> 6,12,13,20,33,22,39,65,47,50, </key>\r
+<key name="definit"> 6,9,14,17,20,21,30,39,41,42,56, </key>\r
+<key name="definition"> 33,22,39, </key>\r
+<key name="deflection"> 5, </key>\r
+<key name="delet"> 42, </key>\r
+<key name="deletion"> 30,42,57, </key>\r
+<key name="depend"> 5,6,28, </key>\r
+<key name="describ"> 6,65, </key>\r
+<key name="description"> 65, </key>\r
+<key name="desirabl"> 36, </key>\r
+<key name="desktop"> 45, </key>\r
+<key name="destin"> 6,9,30, </key>\r
+<key name="detail"> 5, </key>\r
+<key name="detect"> 36, </key>\r
+<key name="diagonal"> 21,23,52, </key>\r
+<key name="dialog"> 1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,47,49,50,51,53,54,55,56,57,58, </key>\r
+<key name="dif"> 28, </key>\r
+<key name="differ"> 50, </key>\r
+<key name="differenc"> 47, </key>\r
+<key name="different"> 5,10,20,47, </key>\r
+<key name="dimension"> 6,0,66, </key>\r
+<key name="direct"> 6,47,49, </key>\r
+<key name="direction"> 65,64, </key>\r
+<key name="discretiz"> 0,66, </key>\r
+<key name="discretization"> 1,6,7, </key>\r
+<key name="displac"> 24, </key>\r
+<key name="display"> 9,11,13,14,18,19,21,24,25,26,32,37,48,49,52,56,61,62,64, </key>\r
+<key name="disposal"> 9, </key>\r
+<key name="distanc"> 65,64, </key>\r
+<key name="distortion"> 49, </key>\r
+<key name="divid"> 50, </key>\r
+<key name="do"> 53, </key>\r
+<key name="domain"> 65, </key>\r
+<key name="don"> 6,41, </key>\r
+<key name="doubl"> 41, </key>\r
+<key name="e"> 65,47, </key>\r
+<key name="easi"> 17, </key>\r
+<key name="edg"> 1,5,6,7,9,10,12,13,17,20,21,23,24,30,34,31,32,33,22,35,38,39,65,40,47,49,50,56,57,64, </key>\r
+<key name="edit"> 27,28,36,41, </key>\r
+<key name="effect"> 56, </key>\r
+<key name="eith"> 65,47, </key>\r
+<key name="element"> 5,6,9,10,11,13,14,17,20,21,23,24,25,27,0,30,32,37,35,38,65,42,43,66,44,47,48,49,50,51,52,53,55,56,58,64, </key>\r
+<key name="els"> 65, </key>\r
+<key name="encapsulat"> 19, </key>\r
+<key name="encounter"> 65, </key>\r
+<key name="end"> 5,12,35,38,47,50,55, </key>\r
+<key name="enough"> 47, </key>\r
+<key name="ent"> 20,23,24,28,29,41,57, </key>\r
+<key name="entiti"> 1,2,3,4,6,7,53,54, </key>\r
+<key name="entity"> 6, </key>\r
+<key name="equal"> 13,65,47,49, </key>\r
+<key name="equilateral"> 13, </key>\r
+<key name="etc"> 9, </key>\r
+<key name="eventual"> 65, </key>\r
+<key name="every"> 64, </key>\r
+<key name="exampl"> 6,65,54, </key>\r
+<key name="exceed"> 49, </key>\r
+<key name="except"> 47, </key>\r
+<key name="exist"> 14,20,21,27,65,56, </key>\r
+<key name="export"> 29,30, </key>\r
+<key name="exportation"> 29, </key>\r
+<key name="extend"> 64, </key>\r
+<key name="extrud"> 0,66, </key>\r
+<key name="extrusion"> 0, </key>\r
+<key name="fac"> 2,3,5,6,7,17,20,30,33,22,35,38,39,65,40,47,64, </key>\r
+<key name="factor"> 50, </key>\r
+<key name="far"> 47, </key>\r
+<key name="fast"> 49, </key>\r
+<key name="field"> 10,14,20,21,23,24,41,43,47,49,56,57, </key>\r
+<key name="fifth"> 47, </key>\r
+<key name="fil"> 20,29,65, </key>\r
+<key name="fill"> 43,47, </key>\r
+<key name="filt"> 14,20,21,56, </key>\r
+<key name="final"> 15, </key>\r
+<key name="find"> 29,65,47, </key>\r
+<key name="first"> 65,47,50, </key>\r
+<key name="fix"> 6,49, </key>\r
+<key name="flag"> 65, </key>\r
+<key name="fold"> 5,7,18,19, </key>\r
+<key name="follow"> 5,6,7,9,10,12,13,14,18,19,20,21,23,24,25,26,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58,61, </key>\r
+<key name="form"> 23,27,65,47, </key>\r
+<key name="format"> 29,30, </key>\r
+<key name="four"> 6,64, </key>\r
+<key name="fre"> 6,30,47,49, </key>\r
+<key name="function"> 6, </key>\r
+<key name="functionality"> 6,29,36,47, </key>\r
+<key name="generat"> 5,6,9,30,33,22,35,38,39,65,45,53, </key>\r
+<key name="generation"> 15,0,65,66, </key>\r
+<key name="geom"> 6,30, </key>\r
+<key name="geometric"> 6,9, </key>\r
+<key name="geometrical"> 1,2,3,4,5,6,7,18,19,20,30,33,22,39,65,44,49,50,51,53,54,55, </key>\r
+<key name="geometry"> 20,49, </key>\r
+<key name="get"> 65, </key>\r
+<key name="ghs3d"> 53, </key>\r
+<key name="given"> 12,34,31,47, </key>\r
+<key name="global"> 18, </key>\r
+<key name="good"> 49, </key>\r
+<key name="got"> 65, </key>\r
+<key name="group"> 14,17,20,21,27,30,36,56,58, </key>\r
+<key name="h"> 64, </key>\r
+<key name="h1"> 13, </key>\r
+<key name="h2"> 13, </key>\r
+<key name="half"> 64, </key>\r
+<key name="hand"> 65, </key>\r
+<key name="hav"> 20,34,31,35,38,65,53, </key>\r
+<key name="height"> 13,64, </key>\r
+<key name="help"> 9, </key>\r
+<key name="henc"> 65, </key>\r
+<key name="her"> 6,16,27,65,41,46,63, </key>\r
+<key name="hexahedron"> 4,6,7,10, </key>\r
+<key name="high"> 6, </key>\r
+<key name="highlight"> 14,20,21,56, </key>\r
+<key name="hold"> 65, </key>\r
+<key name="hyp"> 18,19, </key>\r
+<key name="hypothes"> 5,7,12,18,19,28,30,34,31,33,22,35,38,39,40,41,50,53, </key>\r
+<key name="hypothesi"> 5,12,28,34,31,33,22,35,38,39,40,41,50,53, </key>\r
+<key name="i"> 65,47, </key>\r
+<key name="icon"> 27,42,45, </key>\r
+<key name="id"> 14,20,21,23,24,25,26,0,66,47,49,56,57, </key>\r
+<key name="if"> 6,20,0,65,40,42,66,47,49,56, </key>\r
+<key name="imp"> 6, </key>\r
+<key name="impli"> 65, </key>\r
+<key name="import"> 29,30, </key>\r
+<key name="importation"> 29, </key>\r
+<key name="includ"> 6, </key>\r
+<key name="index"> 65, </key>\r
+<key name="indic"> 65, </key>\r
+<key name="indicat"> 64, </key>\r
+<key name="info"> 61, </key>\r
+<key name="information"> 6,27,61, </key>\r
+<key name="initial"> 45,51,58, </key>\r
+<key name="input"> 5,28, </key>\r
+<key name="insert"> 47, </key>\r
+<key name="instead"> 65, </key>\r
+<key name="intend"> 47, </key>\r
+<key name="interest"> 6, </key>\r
+<key name="intermediat"> 47, </key>\r
+<key name="internal"> 65, </key>\r
+<key name="intersect"> 65,58, </key>\r
+<key name="intersection"> 65,58, </key>\r
+<key name="introduction"> 30, </key>\r
+<key name="invers"> 6,23, </key>\r
+<key name="inversion"> 23, </key>\r
+<key name="iso"> 65, </key>\r
+<key name="isolin"> 65, </key>\r
+<key name="item"> 5,7,10,14,17,21,23,24,27,28,0,29,36,65,41,43,66,44,47,49,51,55,56,57,58, </key>\r
+<key name="iteration"> 49, </key>\r
+<key name="iterativ"> 49, </key>\r
+<key name="join"> 48, </key>\r
+<key name="just"> 65,42, </key>\r
+<key name="keep"> 49,51, </key>\r
+<key name="key"> 65, </key>\r
+<key name="kind"> 7, </key>\r
+<key name="know"> 65, </key>\r
+<key name="l"> 64, </key>\r
+<key name="laplacian"> 49, </key>\r
+<key name="largest"> 13, </key>\r
+<key name="last"> 47,50, </key>\r
+<key name="launch"> 45, </key>\r
+<key name="lay"> 0,65,66, </key>\r
+<key name="least"> 65,49, </key>\r
+<key name="left"> 65, </key>\r
+<key name="length"> 5,9,12,13,30,34,31,32,33,22,39,47,50,64, </key>\r
+<key name="les"> 47,49,53, </key>\r
+<key name="level"> 5, </key>\r
+<key name="lik"> 10,20,25,26,41,45,47, </key>\r
+<key name="limit"> 65,47,49, </key>\r
+<key name="lin"> 6,0,65,66,48, </key>\r
+<key name="link"> 47, </key>\r
+<key name="list"> 14,20,21,56, </key>\r
+<key name="lk"> 12, </key>\r
+<key name="local"> 19,30,39,40, </key>\r
+<key name="locat"> 65,47, </key>\r
+<key name="location"> 24,29,49,50, </key>\r
+<key name="longest"> 13, </key>\r
+<key name="look"> 20,25,26,65,45, </key>\r
+<key name="low"> 6, </key>\r
+<key name="ly"> 65, </key>\r
+<key name="main"> 5,7,14,21,65,45,56,58, </key>\r
+<key name="manag"> 5, </key>\r
+<key name="manual"> 20,65, </key>\r
+<key name="map"> 65, </key>\r
+<key name="max"> 5,30,49, </key>\r
+<key name="maximum"> 48,49, </key>\r
+<key name="mean"> 6, </key>\r
+<key name="meaningful"> 6, </key>\r
+<key name="measur"> 64, </key>\r
+<key name="mefisto"> 3, </key>\r
+<key name="menu"> 5,7,10,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,36,39,65,41,42,43,66,44,45,47,49,51,55,56,57,58,61,62, </key>\r
+<key name="merg"> 36,47, </key>\r
+<key name="mesh"> 1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,24,25,26,27,0,29,30,34,31,32,33,22,36,37,35,38,39,65,41,42,43,66,44,45,47,48,49,50,51,52,53,54,55,56,58,61,62,64, </key>\r
+<key name="method"> 49, </key>\r
+<key name="minimum"> 9,30,37,47, </key>\r
+<key name="mod"> 62, </key>\r
+<key name="model"> 6,30, </key>\r
+<key name="modification"> 6,8,10,14,21,23,24,27,0,30,36,65,41,42,43,66,44,47,49,51,55,56,57, </key>\r
+<key name="modify"> 14,21,27,56, </key>\r
+<key name="modul"> 6,7,30,45, </key>\r
+<key name="mov"> 24,30,41, </key>\r
+<key name="multi"> 30, </key>\r
+<key name="multipli"> 13, </key>\r
+<key name="must"> 65,47, </key>\r
+<key name="n"> 65,47, </key>\r
+<key name="nam"> 12,20,27,28,29,33,22,39,41,50,58, </key>\r
+<key name="nb"> 39, </key>\r
+<key name="ne"> 53, </key>\r
+<key name="need"> 53, </key>\r
+<key name="neighbor"> 23,57, </key>\r
+<key name="netgen"> 53,54, </key>\r
+<key name="new"> 18,19,20,24,28,41,45,58, </key>\r
+<key name="next"> 65, </key>\r
+<key name="nod"> 6,10,11,13,14,17,20,24,26,0,30,33,22,36,39,65,42,43,66,47,48,49,50,52,64, </key>\r
+<key name="nodal"> 65,49, </key>\r
+<key name="normal"> 51,64, </key>\r
+<key name="not"> 49, </key>\r
+<key name="notic"> 6, </key>\r
+<key name="numb"> 5,6,0,30,39,65,66,47,49, </key>\r
+<key name="number"> 25,26, </key>\r
+<key name="obey"> 47, </key>\r
+<key name="object"> 1,2,3,4,5,7,10,15,17,18,19,20,27,28,33,22,39,65,41,42,43,44,53,54,55,61,62, </key>\r
+<key name="objet"> 20, </key>\r
+<key name="ok"> 10,14,20,21,23,24,27,28,0,29,41,42,43,66,47,49,56,57,58, </key>\r
+<key name="on"> 5,6,7,18,19,21,23,0,65,40,42,66,47,49,50,51,53,55,56,58, </key>\r
+<key name="onc"> 41,56, </key>\r
+<key name="onto"> 65,40, </key>\r
+<key name="operation"> 14,20,21,30,43,44,47,49,51,55,56,58, </key>\r
+<key name="opposit"> 5,21,40,47,48, </key>\r
+<key name="option"> 6,51,55, </key>\r
+<key name="ord"> 6,14,65, </key>\r
+<key name="orientation"> 14,21,56, </key>\r
+<key name="origin"> 64, </key>\r
+<key name="other"> 56, </key>\r
+<key name="outsid"> 65, </key>\r
+<key name="own"> 6, </key>\r
+<key name="paramet"> 6,47, </key>\r
+<key name="parameter"> 5,34,31,35,38,44,47, </key>\r
+<key name="parametric"> 6,65, </key>\r
+<key name="part"> 47,49, </key>\r
+<key name="particularity"> 6, </key>\r
+<key name="pattern"> 65, </key>\r
+<key name="pattern_nam"> 65, </key>\r
+<key name="perfect"> 13, </key>\r
+<key name="perform"> 30,43,47,51,58, </key>\r
+<key name="plac"> 47, </key>\r
+<key name="plan"> 51,64, </key>\r
+<key name="planar"> 64, </key>\r
+<key name="platform"> 45, </key>\r
+<key name="plu"> 0,66, </key>\r
+<key name="point"> 6,33,22,39,65,66,44,47,51,55,64, </key>\r
+<key name="pop"> 25,26,62, </key>\r
+<key name="popup"> 28,41, </key>\r
+<key name="position"> 6,65, </key>\r
+<key name="possibl"> 5,65, </key>\r
+<key name="pres"> 10,42,49, </key>\r
+<key name="present"> 6,58, </key>\r
+<key name="presentation"> 9, </key>\r
+<key name="preserv"> 65, </key>\r
+<key name="preset"> 5, </key>\r
+<key name="preview"> 21,65, </key>\r
+<key name="previou"> 50,56, </key>\r
+<key name="previous"> 18,19,20,30,41, </key>\r
+<key name="procedur"> 13,49, </key>\r
+<key name="proces"> 49, </key>\r
+<key name="produc"> 6,0,66,49, </key>\r
+<key name="product"> 64, </key>\r
+<key name="progression"> 12, </key>\r
+<key name="project"> 65, </key>\r
+<key name="projection"> 65,64, </key>\r
+<key name="propagat"> 40, </key>\r
+<key name="propagation"> 5,40, </key>\r
+<key name="properti"> 20,46,62,63, </key>\r
+<key name="pseudo"> 23, </key>\r
+<key name="pul"> 49, </key>\r
+<key name="quad"> 64, </key>\r
+<key name="quadrangl"> 2,6,7,10,11,13,21,23,0,32,37,66,48, </key>\r
+<key name="quadrangular"> 40, </key>\r
+<key name="quality"> 9,11,13,30,32,37,48,52,64, </key>\r
+<key name="quantity"> 5, </key>\r
+<key name="quit"> 20, </key>\r
+<key name="radio"> 14,20,21,44,47,51,55,56, </key>\r
+<key name="ratio"> 9,13,30,49,52,64, </key>\r
+<key name="reassign"> 41, </key>\r
+<key name="recomput"> 41, </key>\r
+<key name="reduc"> 49, </key>\r
+<key name="reevaluat"> 49, </key>\r
+<key name="refer"> 65, </key>\r
+<key name="referenc"> 6,9,18,19, </key>\r
+<key name="refin"> 5, </key>\r
+<key name="reflect"> 65,48, </key>\r
+<key name="regular"> 12, </key>\r
+<key name="relat"> 45, </key>\r
+<key name="relation"> 6, </key>\r
+<key name="relationship"> 6, </key>\r
+<key name="remain"> 13, </key>\r
+<key name="remov"> 14,20,21,27,42,56, </key>\r
+<key name="renam"> 28, </key>\r
+<key name="renumb"> 43, </key>\r
+<key name="renumber"> 43, </key>\r
+<key name="reorient"> 14, </key>\r
+<key name="repeat"> 13, </key>\r
+<key name="replac"> 47, </key>\r
+<key name="represent"> 5,6,33,22,39,52, </key>\r
+<key name="representation"> 6, </key>\r
+<key name="requir"> 23,24,28,41,57, </key>\r
+<key name="rest"> 65,47, </key>\r
+<key name="restrict"> 6, </key>\r
+<key name="result"> 5,49,58, </key>\r
+<key name="retain"> 13, </key>\r
+<key name="retriev"> 6, </key>\r
+<key name="revers"> 65, </key>\r
+<key name="revert"> 14, </key>\r
+<key name="revolution"> 0,66, </key>\r
+<key name="revolv"> 66, </key>\r
+<key name="right"> 17,24,25,26,28,41,62, </key>\r
+<key name="rotat"> 0,66,44, </key>\r
+<key name="rotation"> 66,44, </key>\r
+<key name="rough"> 5, </key>\r
+<key name="rul"> 47, </key>\r
+<key name="run"> 45, </key>\r
+<key name="s"> 13,35,38,40,50, </key>\r
+<key name="salom"> 30,45, </key>\r
+<key name="sam"> 6,39,40,47, </key>\r
+<key name="scalar"> 9,46, </key>\r
+<key name="se"> 6,27, </key>\r
+<key name="seam"> 65, </key>\r
+<key name="search"> 29, </key>\r
+<key name="second"> 47, </key>\r
+<key name="section"> 65, </key>\r
+<key name="segment"> 5,12,30,34,31,33,22,39,50, </key>\r
+<key name="select"> 1,2,3,4,5,7,10,12,14,15,17,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58,61,62, </key>\r
+<key name="selection"> 14,20,21,56, </key>\r
+<key name="sens"> 6, </key>\r
+<key name="separat"> 52, </key>\r
+<key name="sequenc"> 47, </key>\r
+<key name="set"> 6,7,10,12,14,20,21,24,30,33,22,39,65,40,41,45,47,49,50,56,62, </key>\r
+<key name="sew"> 47, </key>\r
+<key name="shad"> 62, </key>\r
+<key name="shall"> 5,7,10,14,21,23,24,0,36,65,66,44,47,51,55,56,57, </key>\r
+<key name="shap"> 5,6,13,65,49, </key>\r
+<key name="shift"> 10,42,49, </key>\r
+<key name="shortest"> 13,64, </key>\r
+<key name="should"> 20,0,65,41,66,44,45,47,49,58, </key>\r
+<key name="shown"> 9,49, </key>\r
+<key name="shrink"> 62, </key>\r
+<key name="sid"> 13,37,47,48, </key>\r
+<key name="similar"> 12, </key>\r
+<key name="simpl"> 6,65, </key>\r
+<key name="siz"> 49, </key>\r
+<key name="skew"> 9,30,48, </key>\r
+<key name="smesh"> 5,6,7,9,10,17,20,23,24,25,26,28,29,30,42,43,45,47,57,58,59,62, </key>\r
+<key name="smooth"> 49, </key>\r
+<key name="smp"> 65, </key>\r
+<key name="so"> 5,13,65,47,50,52, </key>\r
+<key name="sort"> 14,20,21,56, </key>\r
+<key name="spac"> 6,65,44,55, </key>\r
+<key name="specifi"> 65,42,47,49,50,53, </key>\r
+<key name="specific"> 17, </key>\r
+<key name="specify"> 10,21,0,65,42,66,44,49,51,55,58, </key>\r
+<key name="split"> 12,33,22,39,47, </key>\r
+<key name="standalon"> 20, </key>\r
+<key name="standard"> 29,45, </key>\r
+<key name="start"> 5,12,45,47,50,55, </key>\r
+<key name="step"> 15,0,66, </key>\r
+<key name="stor"> 65, </key>\r
+<key name="structur"> 18,19, </key>\r
+<key name="study"> 41,45, </key>\r
+<key name="sub"> 29,36,65,44,47,51,55, </key>\r
+<key name="submenu"> 10,42,43, </key>\r
+<key name="submesh"> 5,14,17,19,20,21,0,41,66,49,56, </key>\r
+<key name="supplementary"> 21, </key>\r
+<key name="surfac"> 6,0,65,66,47,53, </key>\r
+<key name="surround"> 6,49, </key>\r
+<key name="swept"> 0,66, </key>\r
+<key name="symmetrical"> 51, </key>\r
+<key name="symmetry"> 51, </key>\r
+<key name="t"> 6,65, </key>\r
+<key name="tak"> 56, </key>\r
+<key name="taken"> 5,17,20,65, </key>\r
+<key name="tap"> 9,30,52, </key>\r
+<key name="techniqu"> 49, </key>\r
+<key name="tetrahedron"> 6,7,10,53,54, </key>\r
+<key name="text"> 16,46,63, </key>\r
+<key name="th"> 65,47, </key>\r
+<key name="them"> 10,0,36,42,66,47,49,50, </key>\r
+<key name="thre"> 6,47,51,62, </key>\r
+<key name="thu"> 41, </key>\r
+<key name="toleranc"> 36,66, </key>\r
+<key name="tool"> 58, </key>\r
+<key name="toolbar"> 13,14,15,18,19,21,23,24,27,0,32,65,42,43,66,45,48,49,52,56,57,61,64, </key>\r
+<key name="topic"> 16,46,63, </key>\r
+<key name="topological"> 6,47, </key>\r
+<key name="topology"> 6, </key>\r
+<key name="toward"> 49, </key>\r
+<key name="transform"> 24, </key>\r
+<key name="transformation"> 36,44,47,51,55, </key>\r
+<key name="translat"> 55, </key>\r
+<key name="translation"> 55, </key>\r
+<key name="triangl"> 3,6,7,10,11,13,23,0,32,37,66,48,52,56,57, </key>\r
+<key name="triangulator"> 34,31, </key>\r
+<key name="two"> 6,13,21,23,37,65,41,47,52,55,57,58, </key>\r
+<key name="typ"> 5,6,10,16,17,20,28,0,42,66,46,47,63, </key>\r
+<key name="typical"> 49, </key>\r
+<key name="u"> 6,47, </key>\r
+<key name="unassign"> 41, </key>\r
+<key name="uniform"> 49, </key>\r
+<key name="union"> 56,57,58, </key>\r
+<key name="unit"> 47,56,57,58, </key>\r
+<key name="unles"> 40, </key>\r
+<key name="unv"> 29, </key>\r
+<key name="up"> 12,25,26,47,62, </key>\r
+<key name="updat"> 45,49,60, </key>\r
+<key name="us"> 1,2,3,4,6,7,18,19,0,33,22,36,39,65,41,66,47,49,50,53,54,58,59, </key>\r
+<key name="usag"> 9, </key>\r
+<key name="usual"> 47,49, </key>\r
+<key name="v"> 6, </key>\r
+<key name="valu"> 9,12,13,28,37,48, </key>\r
+<key name="vector"> 0,66,44,51,55,64, </key>\r
+<key name="versa"> 41, </key>\r
+<key name="vertex"> 6,65, </key>\r
+<key name="vertic"> 65, </key>\r
+<key name="vic"> 41, </key>\r
+<key name="view"> 10,11,13,14,20,21,23,24,25,26,0,32,37,41,42,43,66,45,47,48,49,52,56,57,60,61,62,64, </key>\r
+<key name="visual"> 9, </key>\r
+<key name="visualization"> 62,63, </key>\r
+<key name="volum"> 4,5,6,7,20,30,53,54, </key>\r
+<key name="vtk"> 45, </key>\r
+<key name="walk"> 65, </key>\r
+<key name="warp"> 9,30,64, </key>\r
+<key name="way"> 6,65,58, </key>\r
+<key name="weight"> 49, </key>\r
+<key name="well"> 65, </key>\r
+<key name="whil"> 42,53, </key>\r
+<key name="whol"> 0,66,49, </key>\r
+<key name="whos"> 14,20,21,56, </key>\r
+<key name="will"> 5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,0,29,32,33,22,37,39,65,40,41,42,43,66,45,47,48,49,50,52,56,58,61,64, </key>\r
+<key name="window"> 45, </key>\r
+<key name="wir"> 1,7,34,31, </key>\r
+<key name="wirefram"> 62, </key>\r
+<key name="within"> 65,47, </key>\r
+<key name="word"> 39, </key>\r
+<key name="work"> 45, </key>\r
+<key name="would"> 10,41,47, </key>\r
+<key name="x"> 6,64, </key>\r
+<key name="y"> 6, </key>\r
+<key name="your"> 5,6,9,10,11,12,13,14,15,17,19,20,24,25,26,27,28,29,32,33,22,36,37,39,65,41,42,43,44,48,49,50,51,52,55,61,62,64, </key>\r
+<key name="z"> 6, </key>\r
+<key name="zero"> 65, </key>\r
\r
</ftswdata> \r
<script LANGUAGE="JavaScript" SRC="whtdata.js"></script>\r
<script language="javascript">\r
<!--\r
- aTE(1,59,"SMESH module");\r
+ aTE(1,72,"SMESH module");\r
aTE(2,0,"Introduction to SMESH","files/introduction_to_smesh.htm");\r
aTE(2,0,"Running SMESH module","files/running_smesh_module.htm");\r
aTE(1,28,"Creating meshes");\r
aTE(1,3,"3D meshing algorithms");\r
aTE(2,0,"Hexahedron meshing algorithm","files/3d_meshing_algorithm.htm");\r
aTE(2,0,"Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
- aTE(2,0,"Tetrahedron (GHS3D) meshing algorithm","tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
+ aTE(2,0,"Tetrahedron (GHS3D) meshing algorithm","files/tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
aTE(2,0,"Constructing meshes","files/constructing_meshes.htm");\r
aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");\r
aTE(2,0,"Computing meshes","files/computing_meshes.htm");\r
aTE(1,2,"Editing meshes");\r
aTE(2,0,"Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
- aTE(2,0,"Editing hypotheses","files/editing_hypotheses.htm");\r
+ aTE(2,0,"Editing hypotheses and algorithms","files/editing_hypotheses.htm");\r
aTE(1,8,"Quality controls");\r
aTE(2,0,"About quality controls","files/about_quality_controls.htm");\r
aTE(2,0,"Length of edges","files/length_of_edges.htm");\r
aTE(2,0,"Minimum angle","files/minimum_angle.htm");\r
aTE(2,0,"Warping","files/warp.htm");\r
aTE(2,0,"Skew angle","files/skew.htm");\r
- aTE(1,6,"Modifying meshes");\r
- aTE(2,0,"About modification of meshes","files/about_modification_of_meshes.htm");\r
+ aTE(1,4,"Grouping elements");\r
+ aTE(2,0,"Creating groups","files/creating_groups.htm");\r
+ aTE(2,0,"Editing groups","files/editing_groups.htm");\r
+ aTE(2,0,"Using operations on groups","files/using_operations_on_groups.htm");\r
+ aTE(2,0,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
+ aTE(1,19,"Modifying meshes");\r
aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
- aTE(2,0,"Displacing nodes","files/displacing_nodes.htm");\r
- aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
+ aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
+ aTE(1,5,"Transforming meshes");\r
+ aTE(2,0,"Translation","files/translation.htm");\r
+ aTE(2,0,"Rotation","files/rotation.htm");\r
+ aTE(2,0,"Symmetry","files/symmetry.htm");\r
+ aTE(2,0,"Sewing meshes","files/sewing_meshes.htm");\r
+ aTE(2,0,"Merging nodes","files/merging_nodes.htm");\r
+ aTE(2,0,"Moving nodes","files/displacing_nodes.htm");\r
aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");\r
+ aTE(2,0,"Uniting two triangles","files/uniting_two_triangles.htm");\r
+ aTE(2,0,"Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
+ aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
+ aTE(2,0,"Cutting quadrangles","files/cutting_quadrangles.htm");\r
+ aTE(2,0,"Smoothing","files/smoothing.htm");\r
+ aTE(2,0,"Extrusion","extrusion.htm");\r
+ aTE(2,0,"Revolution","revolution.htm");\r
+ aTE(2,0,"Pattern mapping","pattern_mapping.htm");\r
aTE(1,3,"Mesh info");\r
aTE(2,0,"Viewing mesh info","files/viewing_mesh_info.htm");\r
aTE(2,0,"Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
aTE(2,0,"Displaying elements numbers","files/displaying_elements_numbers.htm");\r
- aTE(1,4,"Setting SMESH preferences");\r
- aTE(2,0,"Visualization modes","files/visualization_modes.htm");\r
- aTE(2,0,"Visualization properties","files/visualization_properties.htm");\r
- aTE(2,0,"View update","files/view_update.htm");\r
- aTE(2,0,"Scalar Bar properties","files/scalar_bar_properties.htm");\r
\r
//-->\r
</script>\r
<book name="3D meshing algorithms" >\r
<item name="Hexahedron meshing algorithm" url="files/3d_meshing_algorithm.htm" />\r
<item name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
- <item name="Tetrahedron (GHS3D) meshing algorithm" url="tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
+ <item name="Tetrahedron (GHS3D) meshing algorithm" url="files/tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
</book>\r
</book>\r
<item name="Constructing meshes" url="files/constructing_meshes.htm" />\r
</book>\r
<book name="Editing meshes" >\r
<item name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
- <item name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
+ <item name="Editing hypotheses and algorithms" url="files/editing_hypotheses.htm" />\r
</book>\r
<book name="Quality controls" >\r
<item name="About quality controls" url="files/about_quality_controls.htm" />\r
<item name="Warping" url="files/warp.htm" />\r
<item name="Skew angle" url="files/skew.htm" />\r
</book>\r
+ <book name="Grouping elements" >\r
+ <item name="Creating groups" url="files/creating_groups.htm" />\r
+ <item name="Editing groups" url="files/editing_groups.htm" />\r
+ <item name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
+ <item name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
+ </book>\r
<book name="Modifying meshes" >\r
- <item name="About modification of meshes" url="files/about_modification_of_meshes.htm" />\r
<item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
<item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
- <item name="Displacing nodes" url="files/displacing_nodes.htm" />\r
- <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
+ <item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
+ <book name="Transforming meshes" >\r
+ <item name="Translation" url="files/translation.htm" />\r
+ <item name="Rotation" url="files/rotation.htm" />\r
+ <item name="Symmetry" url="files/symmetry.htm" />\r
+ <item name="Sewing meshes" url="files/sewing_meshes.htm" />\r
+ <item name="Merging nodes" url="files/merging_nodes.htm" />\r
+ </book>\r
+ <item name="Moving nodes" url="files/displacing_nodes.htm" />\r
<item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
+ <item name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
+ <item name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
+ <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
+ <item name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
+ <item name="Smoothing" url="files/smoothing.htm" />\r
+ <item name="Extrusion" url="extrusion.htm" />\r
+ <item name="Revolution" url="revolution.htm" />\r
+ <item name="Pattern mapping" url="pattern_mapping.htm" />\r
</book>\r
<book name="Mesh info" >\r
<item name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
<item name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
<item name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
</book>\r
- <book name="Setting SMESH preferences" >\r
- <item name="Visualization modes" url="files/visualization_modes.htm" />\r
- <item name="Visualization properties" url="files/visualization_properties.htm" />\r
- <item name="View update" url="files/view_update.htm" />\r
- <item name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
- </book>\r
</book>\r
\r
</tocdata>\r
<p class="ftsbody">\r
\r
\r
-<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/length_from_edges.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>10</b></a> </nobr><br><nobr>2d <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><nobr>3d <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>6</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
+<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/length_from_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>2d <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../files/length_from_edges.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> <a href="../pattern_mapping.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>3d <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/displaying_elements_numbers.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>17</b></a> <a href="../files/uniting_two_triangles.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_A"></a><a name="subkey_AB"></a>abutting <a href="../files/local_length_hypothesis.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>according <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>account</b></a> <br><a name="bms_AD"></a><a name="subkey_AD"></a><a href="../files/adding_nodes_and_elements.htm"><b>adding</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>addition</b></a> <br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>adjacent <a href="../files/minimum_angle.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>advance</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algorithm <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>12</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>12</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_AN"></a><a name="subkey_AN"></a>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a href="../files/skew.htm"><b>angles</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>application</b></a> <br><nobr>applied <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><nobr>apply <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/number_of_segments_hypothesis.htm"><b>approximately</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AS"></a><a name="subkey_AS"></a>aspect <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>assigned</b></a> <br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a name="bms_AX"></a><a name="subkey_AX"></a><a href="../files/warp.htm"><b>axis</b></a> <br>\r
+<a name="bm_A"></a><a name="subkey_AB"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>able</b></a> <br><a href="../files/smoothing.htm"><b>above</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><nobr>abutting <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>according <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>account <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>added <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>adding</b></a> <br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>additionally <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>adjacent <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>advance</b></a> <br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>again</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algorithm <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/editing_hypotheses.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>12</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/merging_nodes.htm"><b>10</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> </nobr><br><nobr>along <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>already</b></a> <br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AN"></a><a name="subkey_AN"></a>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/skew.htm"><b>angles</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/editing_hypotheses.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/deflection_1d.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/running_smesh_module.htm"><b>17</b></a> <a href="../files/rotation.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>21</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>22</b></a> <a href="../files/merging_nodes.htm"><b>23</b></a> <a href="../files/local_length_hypothesis.htm"><b>24</b></a> <a href="../files/using_operations_on_groups.htm"><b>25</b></a> <a href="../files/uniting_two_triangles.htm"><b>26</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>27</b></a> <a href="../files/translation.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>30</b></a> <a href="../files/smoothing.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> <a href="../pattern_mapping.htm"><b>33</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>appeared</b></a> <br><nobr>application <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>applied <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>apply <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../extrusion.htm"><b>10</b></a> <a href="../files/length_from_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/cutting_quadrangles.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>21</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>22</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>23</b></a> <a href="../files/minimum_angle.htm"><b>24</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>25</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>26</b></a> <a href="../files/length_of_edges.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>31</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>32</b></a> <a href="../files/taper.htm"><b>33</b></a> <a href="../files/symmetry.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../revolution.htm"><b>37</b></a> <a href="../pattern_mapping.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/number_of_segments_hypothesis.htm"><b>approximately</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../revolution.htm"><b>around</b></a> <br><nobr><a name="bms_AS"></a><a name="subkey_AS"></a>aspect <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assign</b></a> <br><a href="../files/warp.htm"><b>assigned</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assigning</b></a> <br><nobr>associated <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> </nobr><br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../pattern_mapping.htm"><b>automatic</b></a> <br><nobr>automatically <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>available <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_AX"></a><a name="subkey_AX"></a>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br>\r
<br><br>\r
-<nobr><a name="bm_B"></a><a name="subkey_BA"></a>bar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><nobr>based <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>basis</b></a> <br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../files/running_smesh_module.htm"><b>before</b></a> <br><a href="../files/arithmetic_1d.htm"><b>beginning</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/introduction_to_smesh.htm"><b>borders</b></a> <br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../files/about_hypotheses.htm"><b>boundary</b></a> <br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_BR"></a><a name="subkey_BR"></a>browser <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/length_from_edges.htm"><b>builds</b></a> <br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>built</b></a> <br><nobr>button <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/skew.htm"><b>11</b></a> <a href="../files/warp.htm"><b>12</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a name="bms_CH"></a><a name="subkey_CH"></a><a href="../files/arithmetic_1d.htm"><b>changes</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><a href="../files/about_hypotheses.htm"><b>choice</b></a> <br><nobr>choose <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/running_smesh_module.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>chosen <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CL"></a><a name="subkey_CL"></a>click <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>9</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>12</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>13</b></a> <a href="../files/local_length_hypothesis.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_meshes.htm"><b>19</b></a> <a href="../files/visualization_modes.htm"><b>20</b></a> <a href="../files/viewing_mesh_info.htm"><b>21</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/running_smesh_module.htm"><b>26</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>27</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>28</b></a> <a href="../files/warp.htm"><b>29</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>clicking</b></a> <br><a href="../files/about_meshes.htm"><b>closed</b></a> <br><nobr><a name="bms_CO"></a><a name="subkey_CO"></a>colored <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>compose <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>computation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>compute</b></a> <br><a href="../files/computing_meshes.htm"><b>computing</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/deflection_1d.htm"><b>connecting</b></a> <br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/connectivity.htm"><b>connectivity</b></a> <br><a href="../files/about_meshes.htm"><b>considered</b></a> <br><nobr>consisting <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>constant</b></a> <br><nobr>construct <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>constructed <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>construction <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>containing</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>contains</b></a> <br><a href="../files/about_meshes.htm"><b>contour</b></a> <br><nobr>control <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>controls <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>coordinates</b></a> <br><a href="../files/warp.htm"><b>corner</b></a> <br><a href="../files/warp.htm"><b>corners</b></a> <br><nobr>corresponding <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>could</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_B"></a><a name="subkey_BA"></a>bar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><nobr>based <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>basis <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../pattern_mapping.htm"><b>become</b></a> <br><a href="../files/running_smesh_module.htm"><b>before</b></a> <br><nobr>beginning <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>belong</b></a> <br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><a href="../files/sewing_meshes.htm"><b>border</b></a> <br><nobr>borders <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>both <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../pattern_mapping.htm"><b>bound</b></a> <br><a href="../pattern_mapping.htm"><b>boundaries</b></a> <br><nobr>boundary <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/rotation.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>26</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../files/local_length_hypothesis.htm"><b>33</b></a> <a href="../files/using_operations_on_groups.htm"><b>34</b></a> <a href="../files/uniting_two_triangles.htm"><b>35</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>36</b></a> <a href="../files/translation.htm"><b>37</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>38</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>39</b></a> <a href="../files/symmetry.htm"><b>40</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>41</b></a> <a href="../files/smoothing.htm"><b>42</b></a> <a href="../revolution.htm"><b>43</b></a> <a href="../pattern_mapping.htm"><b>44</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0">\r
<p class="ftsbody" align="center"><a href="whlstf0.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody">\r
-<nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>16</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>17</b></a> </nobr><br><nobr>created <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/warp.htm"><b>creating</b></a> <br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>criteria</b></a> <br><nobr>criterion <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/warp.htm"><b>cross</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>curve <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bms_BR"></a><a name="subkey_BR"></a>browser <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>10</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>11</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/visualization_modes.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../extrusion.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>builds <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>built <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>button <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/rotation.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../files/length_of_edges.htm"><b>22</b></a> <a href="../files/viewing_mesh_info.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_two_triangles.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> <a href="../files/translation.htm"><b>27</b></a> <a href="../files/taper.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/smoothing.htm"><b>30</b></a> <a href="../files/skew.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> <a href="../pattern_mapping.htm"><b>33</b></a> <a href="../files/warp.htm"><b>34</b></a> </nobr><br><nobr>buttons <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../files/running_smesh_module.htm"><b>default</b></a> <br><nobr>define <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>defined <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>definite <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>definition <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>deflection <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>deletion</b></a> <br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>described</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>dialog <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>different</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>differs</b></a> <br><a href="../files/about_meshes.htm"><b>dimension</b></a> <br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/warp.htm"><b>direction</b></a> <br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displacing</b></a> <br><nobr>display <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>displayed <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>displaying <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>disposal</b></a> <br><nobr>distance <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>divided <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>does</b></a> <br><a href="../files/about_meshes.htm"><b>don</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_E"></a><a name="subkey_ED"></a>edge <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr>edges <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>editing</b></a> <br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>elements <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/displaying_elements_numbers.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/deflection_1d.htm"><b>14</b></a> <a href="../files/taper.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/skew.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>19</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/warp.htm"><b>21</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><nobr>end <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>ending</b></a> <br><nobr>ends <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>enter</b></a> <br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>entity</b></a> <br><nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ET"></a><a name="subkey_ET"></a><a href="../files/about_quality_controls.htm"><b>etc</b></a> <br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../files/warp.htm"><b>every</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>export <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_F"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>factor</b></a> <br><a name="bms_FI"></a><a name="subkey_FI"></a><a href="../files/importing_and_exporting_meshes.htm"><b>file</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><a href="../files/computing_meshes.htm"><b>final</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>find</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>first</b></a> <br><a href="../files/about_meshes.htm"><b>fixed</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>following <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/viewing_mesh_info.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/running_smesh_module.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> </nobr><br><nobr>follows <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>functionality <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> </nobr><br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>generates</b></a> <br><a href="../files/computing_meshes.htm"><b>generation</b></a> <br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>17</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>18</b></a> </nobr><br><a name="bms_GH"></a><a name="subkey_GH"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>ghs3d</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/constructing_meshes.htm"><b>global</b></a> <br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/introduction_to_smesh.htm"><b>grouping</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>groups</b></a> <br>\r
-<br><br>\r
-<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><nobr>having <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><nobr>here <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/visualization_properties.htm"><b>8</b></a> <a href="../files/scalar_bar_properties.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> </nobr><br><nobr>hexahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/max._element_volume_hypothsis.htm"><b>hexahedrons</b></a> <br><a name="bms_HI"></a><a name="subkey_HI"></a><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr><a name="bms_HY"></a><a name="subkey_HY"></a>hyp <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypotheses <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/deflection_1d.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>16</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>17</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>18</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>19</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> </nobr><br><nobr>hypothesis <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_from_edges.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>8</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>12</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a href="../pattern_mapping.htm"><b>called</b></a> <br><a href="../files/creating_groups.htm"><b>cancel</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>careful</b></a> <br><a href="../files/displacing_nodes.htm"><b>case</b></a> <br><a href="../pattern_mapping.htm"><b>cases</b></a> <br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>center</b></a> <br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../pattern_mapping.htm"><b>certain</b></a> <br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><a href="../files/sewing_meshes.htm"><b>check</b></a> <br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>choose <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displaying_elements_numbers.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/rotation.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/minimum_angle.htm"><b>19</b></a> <a href="../files/merging_nodes.htm"><b>20</b></a> <a href="../files/length_of_edges.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../files/translation.htm"><b>24</b></a> <a href="../files/taper.htm"><b>25</b></a> <a href="../files/symmetry.htm"><b>26</b></a> <a href="../files/skew.htm"><b>27</b></a> <a href="../revolution.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> </nobr><br><nobr>choosing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_groups_of_specific_elements.htm"><b>chose</b></a> <br><a href="../files/about_hypotheses.htm"><b>chosen</b></a> <br><nobr><a name="bms_CL"></a><a name="subkey_CL"></a>click <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/about_meshing_algorithms.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>10</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>11</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>12</b></a> <a href="../extrusion.htm"><b>13</b></a> <a href="../files/length_from_edges.htm"><b>14</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>15</b></a> <a href="../files/editing_hypotheses.htm"><b>16</b></a> <a href="../files/editing_groups.htm"><b>17</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>18</b></a> <a href="../files/displaying_elements_numbers.htm"><b>19</b></a> <a href="../files/displacing_nodes.htm"><b>20</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>21</b></a> <a href="../files/deflection_1d.htm"><b>22</b></a> <a href="../files/cutting_quadrangles.htm"><b>23</b></a> <a href="../files/creating_groups.htm"><b>24</b></a> <a href="../files/constructing_submeshes.htm"><b>25</b></a> <a href="../files/constructing_meshes.htm"><b>26</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>27</b></a> <a href="../files/sewing_meshes.htm"><b>28</b></a> <a href="../files/running_smesh_module.htm"><b>29</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>30</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>31</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>32</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>33</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>34</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>35</b></a> <a href="../files/minimum_angle.htm"><b>36</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>37</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>38</b></a> <a href="../files/local_length_hypothesis.htm"><b>39</b></a> <a href="../files/length_of_edges.htm"><b>40</b></a> <a href="../files/visualization_modes.htm"><b>41</b></a> <a href="../files/viewing_mesh_info.htm"><b>42</b></a> <a href="../files/using_operations_on_groups.htm"><b>43</b></a> <a href="../files/uniting_two_triangles.htm"><b>44</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>45</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>46</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>47</b></a> <a href="../files/taper.htm"><b>48</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>49</b></a> <a href="../files/smoothing.htm"><b>50</b></a> <a href="../files/skew.htm"><b>51</b></a> <a href="../revolution.htm"><b>52</b></a> <a href="../pattern_mapping.htm"><b>53</b></a> <a href="../files/warp.htm"><b>54</b></a> </nobr><br><nobr>clicking <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>close</b></a> <br><nobr>closed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CO"></a><a name="subkey_CO"></a><a href="../files/sewing_meshes.htm"><b>co</b></a> <br><a href="../files/merging_nodes.htm"><b>coincident</b></a> <br><nobr>colored <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>column</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>columns</b></a> <br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>common <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>compare</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>compose</b></a> <br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> </nobr><br><nobr>computation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>compute</b></a> <br><nobr>computed <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>computing</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>confirm <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>confirmation</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>connect</b></a> <br><nobr>connected <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>connectivity <a href="../files/connectivity.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>considered <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>consisting <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>constant</b></a> <br><nobr>construct <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>constructed <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>construction <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>containing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> </nobr><br><nobr>contains <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>content</b></a> <br><a href="../files/smoothing.htm"><b>continues</b></a> <br><nobr>contour <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/uniting_a_set_of_triangles.htm"><b>contrast</b></a> <br><nobr>control <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>controls <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/smoothing.htm"><b>converge</b></a> <br><nobr>coordinates <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>copy <a href="../files/rotation.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>corner</b></a> <br><nobr>corners <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>corresponding <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>could</b></a> <br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0">\r
<p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody">\r
-\r
-\r
-<a name="bm_I"></a><a name="subkey_I{"></a><a href="../files/3d_meshing_algorithm.htm"><b>i</b></a> <br><a name="bms_IC"></a><a name="subkey_IC"></a><a href="../files/running_smesh_module.htm"><b>icon</b></a> <br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../files/about_meshes.htm"><b>including</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>infos</b></a> <br><a href="../files/running_smesh_module.htm"><b>initial</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><a href="../files/about_meshes.htm"><b>inverse</b></a> <br><a href="../files/diagonal_iversion_of_elements.htm"><b>inversion</b></a> <br><a name="bms_IT"></a><a name="subkey_IT"></a><a href="../files/importing_and_exporting_meshes.htm"><b>item</b></a> <br><nobr>items <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_J"></a><a name="subkey_J{"></a><a href="../files/3d_meshing_algorithm.htm"><b>j</b></a> <br><a name="bms_JO"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br>\r
-<br><br>\r
-<a name="bm_K"></a><a name="subkey_K{"></a><a href="../files/3d_meshing_algorithm.htm"><b>k</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../files/about_meshing_algorithms.htm"><b>kinds</b></a> <br>\r
-<br><br>\r
-<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>last</b></a> <br><a href="../files/running_smesh_module.htm"><b>launching</b></a> <br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>length <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/length_from_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>less</b></a> <br><a href="../files/about_hypotheses.htm"><b>level</b></a> <br><nobr><a name="bms_LI"></a><a name="subkey_LI"></a>like <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br><a href="../files/skew.htm"><b>lines</b></a> <br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>local <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><nobr>look <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>lower</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>mapping</b></a> <br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>maximum <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><a href="../files/2d_meshing_algorithm.htm"><b>mefisto</b></a> <br><nobr>menu <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/deflection_1d.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>21</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>22</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>23</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>mesh <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/length_from_edges.htm"><b>12</b></a> <a href="../files/introduction_to_smesh.htm"><b>13</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>14</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>15</b></a> <a href="../files/displaying_elements_numbers.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_meshes.htm"><b>19</b></a> <a href="../files/visualization_modes.htm"><b>20</b></a> <a href="../files/viewing_mesh_info.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>25</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>26</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>27</b></a> <a href="../files/warp.htm"><b>28</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><nobr>meshes <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/viewing_mesh_info.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> </nobr><br><nobr>meshing <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/length_of_edges.htm"><b>13</b></a> <a href="../files/introduction_to_smesh.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>18</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>19</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> </nobr><br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a name="bms_MO"></a><a name="subkey_MO"></a><a href="../files/visualization_modes.htm"><b>mode</b></a> <br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../files/visualization_modes.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/about_modification_of_meshes.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>moving</b></a> <br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../files/introduction_to_smesh.htm"><b>multi</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_N"></a><a name="subkey_NA"></a>name <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> </nobr><br><a name="bms_NB"></a><a name="subkey_NB"></a><a href="../files/number_of_segments_hypothesis.htm"><b>nb</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>need</b></a> <br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>needs</b></a> <br><nobr>netgen <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>1</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>new</b></a> <br><a name="bms_NO"></a><a name="subkey_NO"></a><a href="../files/about_meshes.htm"><b>node</b></a> <br><nobr>nodes <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><a href="../files/warp.htm"><b>normal</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>numbering <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr>numbers <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_O"></a><a name="subkey_OB"></a>object <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/visualization_modes.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>8</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>9</b></a> </nobr><br><a name="bms_OK"></a><a name="subkey_OK"></a><a href="../files/importing_and_exporting_meshes.htm"><b>ok</b></a> <br><nobr><a name="bms_ON"></a><a name="subkey_ON"></a>one <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>7</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>onto</b></a> <br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../files/introduction_to_smesh.htm"><b>operations</b></a> <br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>options</b></a> <br><a name="bms_OR"></a><a name="subkey_OR"></a><a href="../files/about_meshes.htm"><b>order</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>orientation</b></a> <br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
+<nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/deflection_1d.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/running_smesh_module.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>18</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>19</b></a> <a href="../files/local_length_hypothesis.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>23</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>24</b></a> <a href="../files/symmetry.htm"><b>25</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>26</b></a> </nobr><br><nobr>created <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr>creating <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>criteria</b></a> <br><nobr>criterion <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/warp.htm"><b>cross</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>current <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>currently <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>curve</b></a> <br><nobr>cut <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>cutted</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>cutting</b></a> <br>\r
<br><br>\r
-<a name="bm_P"></a><a name="subkey_PA"></a><a href="../files/about_meshes.htm"><b>parameter</b></a> <br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>parametric</b></a> <br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/warp.htm"><b>planar</b></a> <br><a href="../files/warp.htm"><b>plane</b></a> <br><a href="../files/running_smesh_module.htm"><b>platform</b></a> <br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>pop</b></a> <br><a href="../files/about_meshes.htm"><b>position</b></a> <br><a href="../files/about_hypotheses.htm"><b>possible</b></a> <br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/about_quality_controls.htm"><b>presentation</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>previous</b></a> <br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>procedure</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../files/warp.htm"><b>projection</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>propagate</b></a> <br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>properties <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> <a href="../files/scalar_bar_properties.htm"><b>3</b></a> </nobr><br>\r
+<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><nobr><a name="bms_DA"></a><a name="subkey_DA"></a>data <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../files/running_smesh_module.htm"><b>default</b></a> <br><nobr>define <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>defined <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>definite <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><nobr>definition <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>deflection</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>deleted</b></a> <br><nobr>deletion <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describe</b></a> <br><nobr>described <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describes</b></a> <br><a href="../pattern_mapping.htm"><b>description</b></a> <br><a href="../files/merging_nodes.htm"><b>desirable</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><a href="../files/merging_nodes.htm"><b>detect</b></a> <br><nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr>dialog <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/rotation.htm"><b>22</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>23</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>24</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>25</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>26</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/merging_nodes.htm"><b>29</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>30</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>31</b></a> <a href="../files/local_length_hypothesis.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_two_triangles.htm"><b>34</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>35</b></a> <a href="../files/translation.htm"><b>36</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>37</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>38</b></a> <a href="../files/symmetry.htm"><b>39</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>40</b></a> <a href="../files/smoothing.htm"><b>41</b></a> <a href="../revolution.htm"><b>42</b></a> <a href="../pattern_mapping.htm"><b>43</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>differ</b></a> <br><a href="../files/sewing_meshes.htm"><b>difference</b></a> <br><nobr>different <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>differs</b></a> <br><nobr>dimension <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/sewing_meshes.htm"><b>directed</b></a> <br><nobr>direction <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>directly</b></a> <br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr>discretized <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displace</b></a> <br><a href="../files/displacing_nodes.htm"><b>displaced</b></a> <br><nobr>display <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displaying_elements_numbers.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>displayed <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/viewing_mesh_info.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> <a href="../files/taper.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>displaying <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>disposal</b></a> <br><nobr>distance <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><a href="../files/about_meshes.htm"><b>don</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>done</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>double</b></a> <br>\r
<br><br>\r
-<a name="bm_Q"></a><a name="subkey_QU"></a><a href="../files/warp.htm"><b>quad</b></a> <br><nobr>quadrangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><nobr>quadrangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>quadrangular</b></a> <br><nobr>quality <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../files/constructing_groups_of_specific_elements.htm"><b>easily</b></a> <br><nobr><a name="bms_ED"></a><a name="subkey_ED"></a>edge <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/uniting_two_triangles.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../files/warp.htm"><b>16</b></a> </nobr><br><nobr>edges <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>16</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>17</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>18</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>19</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>20</b></a> <a href="../files/local_length_hypothesis.htm"><b>21</b></a> <a href="../files/length_of_edges.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../files/warp.htm"><b>27</b></a> </nobr><br><nobr>edit <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>edited</b></a> <br><nobr>editing <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> </nobr><br><a name="bms_EF"></a><a name="subkey_EF"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>effect</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>11</b></a> <a href="../files/minimum_angle.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../files/skew.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> </nobr><br><nobr>elements <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_elements_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/rotation.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>22</b></a> <a href="../files/length_of_edges.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>25</b></a> <a href="../files/translation.htm"><b>26</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>27</b></a> <a href="../files/taper.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>30</b></a> <a href="../files/smoothing.htm"><b>31</b></a> <a href="../files/skew.htm"><b>32</b></a> <a href="../revolution.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../files/warp.htm"><b>35</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>else</b></a> <br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><a href="../pattern_mapping.htm"><b>encountered</b></a> <br><nobr>end <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>ending <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>ends</b></a> <br><a href="../files/sewing_meshes.htm"><b>enough</b></a> <br><nobr>enter <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> </nobr><br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>entity</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0">\r
<p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody">\r
-\r
-\r
-<nobr><a name="bm_R"></a><a name="subkey_RA"></a>ratio <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>reassigning</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><a href="../files/skew.htm"><b>reflects</b></a> <br><a href="../files/arithmetic_1d.htm"><b>regular</b></a> <br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>removing</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><a href="../files/about_hypotheses.htm"><b>resulting</b></a> <br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a name="bms_RI"></a><a name="subkey_RI"></a><a href="../files/visualization_modes.htm"><b>right</b></a> <br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../files/running_smesh_module.htm"><b>run</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
-<br><br>\r
-<a name="bm_S"></a><a name="subkey_S{"></a><a href="../files/aspect_ratio.htm"><b>s</b></a> <br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../files/importing_and_exporting_meshes.htm"><b>search</b></a> <br><a href="../files/about_meshes.htm"><b>see</b></a> <br><nobr>segment <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>segments <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> </nobr><br><nobr>select <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/deflection_1d.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>23</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>24</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>selected</b></a> <br><nobr>selecting <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><nobr>set <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>12</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>13</b></a> </nobr><br><nobr>setting <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><a name="bms_SH"></a><a name="subkey_SH"></a><a href="../files/visualization_modes.htm"><b>shading</b></a> <br><nobr>shape <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>should</b></a> <br><a href="../files/about_quality_controls.htm"><b>shown</b></a> <br><a href="../files/visualization_modes.htm"><b>shrink</b></a> <br><a name="bms_SI"></a><a name="subkey_SI"></a><a href="../files/aspect_ratio.htm"><b>side</b></a> <br><nobr>sides <a href="../files/minimum_angle.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>similar</b></a> <br><a href="../files/about_meshes.htm"><b>simple</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displaying_elements_numbers.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/using_smesh_module.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> </nobr><br><a name="bms_SP"></a><a name="subkey_SP"></a><a href="../files/about_meshes.htm"><b>space</b></a> <br><nobr>specified <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr>split <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standard <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>start <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>starting</b></a> <br><a href="../files/computing_meshes.htm"><b>step</b></a> <br><a href="../files/running_smesh_module.htm"><b>study</b></a> <br><a name="bms_SU"></a><a name="subkey_SU"></a><a href="../files/importing_and_exporting_meshes.htm"><b>sub</b></a> <br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>surrounding</b></a> <br>\r
+<nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ET"></a><a name="subkey_ET"></a><a href="../files/about_quality_controls.htm"><b>etc</b></a> <br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><a href="../files/sewing_meshes.htm"><b>except</b></a> <br><nobr>existing <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>export <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><nobr>extruded <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../extrusion.htm"><b>extrusion</b></a> <br>\r
<br><br>\r
-<a name="bm_T"></a><a name="subkey_T{"></a><a href="../files/about_meshes.htm"><b>t</b></a> <br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/about_hypotheses.htm"><b>taken</b></a> <br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_TE"></a><a name="subkey_TE"></a>tetrahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>3</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>4</b></a> </nobr><br><a href="../files/max._element_volume_hypothsis.htm"><b>tetrahedrons</b></a> <br><nobr>text <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/visualization_properties.htm"><b>7</b></a> <a href="../files/scalar_bar_properties.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>them <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TO"></a><a name="subkey_TO"></a>toolbar <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/running_smesh_module.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><nobr>topic <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/visualization_properties.htm"><b>7</b></a> <a href="../files/scalar_bar_properties.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><nobr><a name="bms_TR"></a><a name="subkey_TR"></a>triangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><nobr>triangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> </nobr><br><a href="../files/length_from_edges.htm"><b>triangulator</b></a> <br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/visualization_properties.htm"><b>8</b></a> <a href="../files/scalar_bar_properties.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>types</b></a> <br>\r
+<nobr><a name="bm_F"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>factor</b></a> <br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../files/smoothing.htm"><b>faster</b></a> <br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/uniting_two_triangles.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> </nobr><br><nobr>fields <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>fifth</b></a> <br><nobr>file <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><nobr>fill <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>filled</b></a> <br><nobr>filter <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>final</b></a> <br><nobr>find <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><nobr>first <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../pattern_mapping.htm"><b>flag</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>folder <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>following <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../extrusion.htm"><b>8</b></a> <a href="../files/editing_hypotheses.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/deflection_1d.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/running_smesh_module.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../files/local_length_hypothesis.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/symmetry.htm"><b>32</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>33</b></a> <a href="../files/smoothing.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> <a href="../pattern_mapping.htm"><b>36</b></a> </nobr><br><nobr>follows <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/running_smesh_module.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>formed</b></a> <br><nobr>forming <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>forms</b></a> <br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>functionality <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
<br><br>\r
-<a name="bm_U"></a><a name="subkey_U{"></a><a href="../files/about_meshes.htm"><b>u</b></a> <br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><a href="../files/view_update.htm"><b>update</b></a> <br><a href="../files/running_smesh_module.htm"><b>updated</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/using_smesh_module.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>generates</b></a> <br><nobr>generation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_submeshes.htm"><b>11</b></a> <a href="../files/constructing_meshes.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>14</b></a> <a href="../files/local_length_hypothesis.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>17</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> </nobr><br><nobr>geometry <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GH"></a><a name="subkey_GH"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>ghs3d</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/constructing_meshes.htm"><b>global</b></a> <br><a name="bms_GO"></a><a name="subkey_GO"></a><a href="../files/smoothing.htm"><b>good</b></a> <br><a href="../pattern_mapping.htm"><b>got</b></a> <br><nobr><a name="bms_GR"></a><a name="subkey_GR"></a>group <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>grouping</b></a> <br><nobr>groups <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>values <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_VE"></a><a name="subkey_VE"></a><a href="../files/warp.htm"><b>vector</b></a> <br><a href="../files/about_meshes.htm"><b>vertex</b></a> <br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>view <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../files/view_update.htm"><b>2</b></a> </nobr><br><nobr>viewer <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>viewing</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr>visualization <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_VT"></a><a name="subkey_VT"></a><a href="../files/running_smesh_module.htm"><b>vtk</b></a> <br>\r
+<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><a href="../pattern_mapping.htm"><b>hands</b></a> <br><nobr>having <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><a href="../pattern_mapping.htm"><b>hence</b></a> <br><nobr>here <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/connectivity.htm"><b>3</b></a> <a href="../files/scalar_bar_properties.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/visualization_properties.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>hexahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>hexahedrons</b></a> <br><a name="bms_HI"></a><a name="subkey_HI"></a><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../pattern_mapping.htm"><b>holds</b></a> <br><nobr><a name="bms_HY"></a><a name="subkey_HY"></a>hyp <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypotheses <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/editing_hypotheses.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../files/local_length_hypothesis.htm"><b>16</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>17</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>18</b></a> </nobr><br><nobr>hypothesis <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/editing_hypotheses.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>14</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_W"></a><a name="subkey_WA"></a><a href="../files/warp.htm"><b>warp</b></a> <br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>way</b></a> <br><a name="bms_WH"></a><a name="subkey_WH"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>while</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> </nobr><br><nobr>ids <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../pattern_mapping.htm"><b>implies</b></a> <br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../files/about_meshes.htm"><b>including</b></a> <br><a href="../pattern_mapping.htm"><b>index</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../pattern_mapping.htm"><b>indices</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>infos</b></a> <br><nobr>initial <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr>input <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><a href="../pattern_mapping.htm"><b>instead</b></a> <br><a href="../files/sewing_meshes.htm"><b>intended</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/sewing_meshes.htm"><b>intermediate</b></a> <br><a href="../pattern_mapping.htm"><b>internal</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersect</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersected</b></a> <br><nobr>intersection <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><nobr>inverse <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>inversion</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0">\r
<p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody">\r
-<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/deflection_1d.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/taper.htm"><b>19</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/warp.htm"><b>25</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>wireframe</b></a> <br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/number_of_segments_hypothesis.htm"><b>words</b></a> <br><a href="../files/running_smesh_module.htm"><b>work</b></a> <br>\r
+<a name="bms_IS"></a><a name="subkey_IS"></a><a href="../pattern_mapping.htm"><b>iso</b></a> <br><a href="../pattern_mapping.htm"><b>isoline</b></a> <br><a href="../pattern_mapping.htm"><b>isolines</b></a> <br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/merging_nodes.htm"><b>15</b></a> <a href="../files/using_operations_on_groups.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> </nobr><br><nobr>items <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iteration</b></a> <br><a href="../files/smoothing.htm"><b>iterations</b></a> <br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br>\r
+<a name="bm_J"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../files/about_meshes.htm"><b>y</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/length_of_edges.htm"><b>12</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/constructing_submeshes.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> </nobr><br>\r
+<nobr><a name="bm_K"></a><a name="subkey_KE"></a>keep <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../files/about_meshing_algorithms.htm"><b>kinds</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br>\r
<br><br>\r
-<a name="bm_Z"></a><a name="subkey_Z{"></a><a href="../files/about_meshes.htm"><b>z</b></a> <br><br><br></p>\r
+<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/smoothing.htm"><b>laplacian</b></a> <br><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><nobr>last <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>launching</b></a> <br><a href="../pattern_mapping.htm"><b>lay</b></a> <br><nobr>lays <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>left</b></a> <br><nobr>length <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/length_from_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/length_of_edges.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>less <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>level</b></a> <br><nobr><a name="bms_LI"></a><a name="subkey_LI"></a>like <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> </nobr><br><a href="../files/smoothing.htm"><b>limit</b></a> <br><nobr>limited <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>lines <a href="../extrusion.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>link</b></a> <br><a href="../files/sewing_meshes.htm"><b>linked</b></a> <br><a href="../files/sewing_meshes.htm"><b>links</b></a> <br><nobr>list <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>local <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>located <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/smoothing.htm"><b>locations</b></a> <br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><nobr>look <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../files/about_meshes.htm"><b>lower</b></a> <br><a name="bms_LY"></a><a name="subkey_LY"></a><a href="../pattern_mapping.htm"><b>lying</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../pattern_mapping.htm"><b>manual</b></a> <br><nobr>manually <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mapped</b></a> <br><a href="../pattern_mapping.htm"><b>mapping</b></a> <br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><nobr>maximum <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><a href="../files/2d_meshing_algorithm.htm"><b>mefisto</b></a> <br><nobr>menu <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displaying_elements_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../files/visualization_modes.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/symmetry.htm"><b>32</b></a> <a href="../files/smoothing.htm"><b>33</b></a> <a href="../revolution.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>merge <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>merged</b></a> <br><a href="../files/sewing_meshes.htm"><b>merges</b></a> <br><nobr>merging <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> </nobr><br><nobr>mesh <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/about_quality_controls.htm"><b>6</b></a> <a href="../files/about_meshes.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/displacing_nodes.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/cutting_quadrangles.htm"><b>18</b></a> <a href="../files/creating_groups.htm"><b>19</b></a> <a href="../files/constructing_submeshes.htm"><b>20</b></a> <a href="../files/constructing_meshes.htm"><b>21</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/rotation.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/minimum_angle.htm"><b>30</b></a> <a href="../files/merging_nodes.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/local_length_hypothesis.htm"><b>34</b></a> <a href="../files/length_of_edges.htm"><b>35</b></a> <a href="../files/visualization_modes.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> <a href="../files/using_operations_on_groups.htm"><b>38</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>39</b></a> <a href="../files/translation.htm"><b>40</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>41</b></a> <a href="../files/taper.htm"><b>42</b></a> <a href="../files/symmetry.htm"><b>43</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>44</b></a> <a href="../files/smoothing.htm"><b>45</b></a> <a href="../files/skew.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> <a href="../pattern_mapping.htm"><b>48</b></a> <a href="../files/warp.htm"><b>49</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>12</b></a> <a href="../files/visualization_modes.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../files/smoothing.htm"><b>15</b></a> </nobr><br><nobr>meshing <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/displaying_elements_numbers.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/minimum_angle.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>19</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> </nobr><br><a href="../files/smoothing.htm"><b>method</b></a> <br><a href="../files/smoothing.htm"><b>methods</b></a> <br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><a name="bms_MO"></a><a name="subkey_MO"></a><a href="../files/visualization_modes.htm"><b>mode</b></a> <br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../files/visualization_modes.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> </nobr><br><nobr>modify <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>moving <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> </nobr><br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../files/introduction_to_smesh.htm"><b>multi</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br><nobr>must <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_N"></a><a name="subkey_N{"></a>n <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/local_length_hypothesis.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> </nobr><br><a name="bms_NB"></a><a name="subkey_NB"></a><a href="../files/number_of_segments_hypothesis.htm"><b>nb</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>need</b></a> <br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>needs</b></a> <br><nobr>neighboring <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><nobr>netgen <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>new <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>next</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>>></b></a>\r
+\r
</body>\r
\r
</html>\r
--- /dev/null
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal; text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0" marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodal <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>node <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>nodes <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> </nobr><br><nobr>normal <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>note</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>numbering <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr>numbers <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_O"></a><a name="subkey_OB"></a><a href="../files/sewing_meshes.htm"><b>obey</b></a> <br><nobr>object <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../pattern_mapping.htm"><b>21</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/using_operations_on_groups.htm"><b>15</b></a> <a href="../files/uniting_two_triangles.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> </nobr><br><nobr><a name="bms_ON"></a><a name="subkey_ON"></a>once <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>one <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/symmetry.htm"><b>16</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> </nobr><br><nobr>ones <a href="../extrusion.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>onto <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_OP"></a><a name="subkey_OP"></a>operation <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> </nobr><br><nobr>operations <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>options <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_OR"></a><a name="subkey_OR"></a>order <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>orientation <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OT"></a><a name="subkey_OT"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>others</b></a> <br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../pattern_mapping.htm"><b>outside</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_P"></a><a name="subkey_PA"></a>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>parametric <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>part <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a href="../pattern_mapping.htm"><b>pattern</b></a> <br><a href="../pattern_mapping.htm"><b>pattern_name</b></a> <br><a href="../pattern_mapping.htm"><b>patterns</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><nobr>perform <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/sewing_meshes.htm"><b>place</b></a> <br><a href="../files/sewing_meshes.htm"><b>placed</b></a> <br><a href="../files/warp.htm"><b>planar</b></a> <br><nobr>plane <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>platform</b></a> <br><nobr>plus <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>pop <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><nobr>popup <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>position <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>positions</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><a href="../files/about_quality_controls.htm"><b>presentation</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../pattern_mapping.htm"><b>preserved</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><a href="../files/smoothing.htm"><b>press</b></a> <br><nobr>pressed <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>preview <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>previous <a href="../files/uniting_a_set_of_triangles.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><nobr>procedure <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>process</b></a> <br><a href="../files/smoothing.htm"><b>produce</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><nobr>produces <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../pattern_mapping.htm"><b>projected</b></a> <br><a href="../pattern_mapping.htm"><b>projecting</b></a> <br><nobr>projection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>propagate</b></a> <br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>properties <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> <a href="../files/visualization_modes.htm"><b>4</b></a> </nobr><br><a name="bms_PS"></a><a name="subkey_PS"></a><a href="../files/diagonal_iversion_of_elements.htm"><b>pseudo</b></a> <br><a name="bms_PU"></a><a name="subkey_PU"></a><a href="../files/smoothing.htm"><b>pulls</b></a> <br>\r
+<br><br>\r
+<a name="bm_Q"></a><a name="subkey_QU"></a><a href="../files/warp.htm"><b>quad</b></a> <br><nobr>quadrangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> </nobr><br><nobr>quadrangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>quadrangular</b></a> <br><nobr>quality <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br><a href="../files/creating_groups.htm"><b>quit</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_R"></a><a name="subkey_RA"></a>radio <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../files/translation.htm"><b>7</b></a> <a href="../files/symmetry.htm"><b>8</b></a> </nobr><br><nobr>ratio <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>reassigning</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>recompute</b></a> <br><a href="../files/smoothing.htm"><b>reduce</b></a> <br><a href="../files/smoothing.htm"><b>reevaluated</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>references <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>refers</b></a> <br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><nobr>reflects <a href="../files/skew.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>regular</b></a> <br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><nobr>remove <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/removing_nodes_and_elements.htm"><b>removing</b></a> <br><a href="../files/editing_hypotheses.htm"><b>rename</b></a> <br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumbering</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reoriented</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><a href="../files/sewing_meshes.htm"><b>replaced</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>required <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</b></a> </nobr><br><nobr>rest <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>results</b></a> <br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a href="../pattern_mapping.htm"><b>reverse</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reverting</b></a> <br><nobr>revolution <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>>></b></a>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
--- /dev/null
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal; text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0" marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> </nobr><br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../files/rotation.htm"><b>rotate</b></a> <br><nobr>rotated <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>rotation <a href="../files/rotation.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../files/sewing_meshes.htm"><b>rule</b></a> <br><a href="../files/running_smesh_module.htm"><b>run</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../pattern_mapping.htm"><b>seam</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>search</b></a> <br><a href="../files/sewing_meshes.htm"><b>second</b></a> <br><a href="../pattern_mapping.htm"><b>section</b></a> <br><a href="../pattern_mapping.htm"><b>sections</b></a> <br><nobr>see <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>segment</b></a> <br><nobr>segments <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> </nobr><br><nobr>select <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>9</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>10</b></a> <a href="../extrusion.htm"><b>11</b></a> <a href="../files/length_from_edges.htm"><b>12</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>13</b></a> <a href="../files/editing_hypotheses.htm"><b>14</b></a> <a href="../files/editing_groups.htm"><b>15</b></a> <a href="../files/displacing_nodes.htm"><b>16</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>17</b></a> <a href="../files/deflection_1d.htm"><b>18</b></a> <a href="../files/cutting_quadrangles.htm"><b>19</b></a> <a href="../files/creating_groups.htm"><b>20</b></a> <a href="../files/constructing_submeshes.htm"><b>21</b></a> <a href="../files/constructing_meshes.htm"><b>22</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/running_smesh_module.htm"><b>25</b></a> <a href="../files/rotation.htm"><b>26</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>27</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>28</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>29</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>30</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>31</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../files/local_length_hypothesis.htm"><b>36</b></a> <a href="../files/visualization_modes.htm"><b>37</b></a> <a href="../files/viewing_mesh_info.htm"><b>38</b></a> <a href="../files/using_operations_on_groups.htm"><b>39</b></a> <a href="../files/uniting_two_triangles.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../files/translation.htm"><b>42</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>43</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>44</b></a> <a href="../files/symmetry.htm"><b>45</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>46</b></a> <a href="../files/smoothing.htm"><b>47</b></a> <a href="../revolution.htm"><b>48</b></a> <a href="../pattern_mapping.htm"><b>49</b></a> </nobr><br><nobr>selected <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>selecting <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><nobr>selection <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequence</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequences</b></a> <br><nobr>set <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/running_smesh_module.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/local_length_hypothesis.htm"><b>16</b></a> <a href="../files/visualization_modes.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../pattern_mapping.htm"><b>21</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sew</b></a> <br><a href="../files/sewing_meshes.htm"><b>sewing</b></a> <br><a name="bms_SH"></a><a name="subkey_SH"></a><a href="../files/visualization_modes.htm"><b>shading</b></a> <br><nobr>shall <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/rotation.htm"><b>10</b></a> <a href="../files/merging_nodes.htm"><b>11</b></a> <a href="../files/uniting_two_triangles.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> </nobr><br><nobr>shape <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shift <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>should <a href="../extrusion.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>shown <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>shrink</b></a> <br><nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>sides <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>similar</b></a> <br><nobr>simple <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/displaying_elements_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/running_smesh_module.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/visualization_modes.htm"><b>19</b></a> <a href="../files/using_smesh_module.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> </nobr><br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><a href="../files/smoothing.htm"><b>smoothing</b></a> <br><a href="../pattern_mapping.htm"><b>smp</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>sort <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SP"></a><a name="subkey_SP"></a>space <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_groups_of_specific_elements.htm"><b>specific</b></a> <br><nobr>specified <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> </nobr><br><nobr>specifies <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>specify <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>specifying <a href="../files/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> </nobr><br><nobr>split <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> </nobr><br><a name="bms_ST"></a><a name="subkey_ST"></a><a href="../files/creating_groups.htm"><b>standalone</b></a> <br><nobr>standard <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>start <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>starting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>step</b></a> <br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>stored</b></a> <br><nobr>structure <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>study <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../files/translation.htm"><b>5</b></a> <a href="../files/symmetry.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>submenu <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr>submesh <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>supplementary</b></a> <br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>surfaces</b></a> <br><nobr>surrounding <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SW"></a><a name="subkey_SW"></a>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a name="bms_SY"></a><a name="subkey_SY"></a><a href="../files/symmetry.htm"><b>symmetrical</b></a> <br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><a href="../files/symmetry.htm"><b>symmetry</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>take</b></a> <br><nobr>taken <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><nobr>tetrahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>5</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>tetrahedrons</b></a> <br><nobr>text <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>th <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>them <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>thus</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>>></b></a>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
--- /dev/null
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal; text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0" marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_TO"></a><a name="subkey_TO"></a>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>tool</b></a> <br><nobr>toolbar <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../files/uniting_two_triangles.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/skew.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><nobr>topic <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/sewing_meshes.htm"><b>topologically</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><a href="../files/smoothing.htm"><b>toward</b></a> <br><nobr><a name="bms_TR"></a><a name="subkey_TR"></a>transformation <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../files/translation.htm"><b>translate</b></a> <br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../files/translation.htm"><b>translation</b></a> <br><nobr>triangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>triangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/skew.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>triangulator <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/connectivity.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/scalar_bar_properties.htm"><b>10</b></a> <a href="../files/visualization_properties.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>types <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_U"></a><a name="subkey_U{"></a>u <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassign</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassigning</b></a> <br><a href="../files/smoothing.htm"><b>uniform</b></a> <br><nobr>union <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>united <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>uniting <a href="../files/uniting_two_triangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/visualization_modes.htm"><b>4</b></a> </nobr><br><a href="../files/view_update.htm"><b>update</b></a> <br><nobr>updated <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>upper</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../files/local_length_hypothesis.htm"><b>13</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>14</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> </nobr><br><nobr>user <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_smesh_module.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>usually <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>values <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>vector <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>versa</b></a> <br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>vertices</b></a> <br><a name="bms_VI"></a><a name="subkey_VI"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>vice</b></a> <br><nobr>view <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../files/view_update.htm"><b>2</b></a> </nobr><br><nobr>viewer <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>6</b></a> <a href="../files/displaying_elements_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/running_smesh_module.htm"><b>13</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>16</b></a> <a href="../files/minimum_angle.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../files/visualization_modes.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../revolution.htm"><b>25</b></a> <a href="../files/warp.htm"><b>26</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>viewing</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr>visualization <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> </nobr><br><a name="bms_VT"></a><a name="subkey_VT"></a><a href="../files/running_smesh_module.htm"><b>vtk</b></a> <br>\r
+<br><br>\r
+<a name="bm_W"></a><a name="subkey_WA"></a><a href="../pattern_mapping.htm"><b>walking</b></a> <br><a href="../files/warp.htm"><b>warp</b></a> <br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>way <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../files/smoothing.htm"><b>weighted</b></a> <br><a href="../pattern_mapping.htm"><b>well</b></a> <br><nobr><a name="bms_WH"></a><a name="subkey_WH"></a>while <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>whole <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>whose <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/about_meshing_algorithms.htm"><b>6</b></a> <a href="../files/about_meshes.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_hypotheses.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>21</b></a> <a href="../files/sewing_meshes.htm"><b>22</b></a> <a href="../files/running_smesh_module.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>26</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/local_length_hypothesis.htm"><b>30</b></a> <a href="../files/length_of_edges.htm"><b>31</b></a> <a href="../files/viewing_mesh_info.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>34</b></a> <a href="../files/taper.htm"><b>35</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>36</b></a> <a href="../files/smoothing.htm"><b>37</b></a> <a href="../files/skew.htm"><b>38</b></a> <a href="../revolution.htm"><b>39</b></a> <a href="../pattern_mapping.htm"><b>40</b></a> <a href="../files/warp.htm"><b>41</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>wireframe</b></a> <br><nobr>within <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/number_of_segments_hypothesis.htm"><b>words</b></a> <br><a href="../files/running_smesh_module.htm"><b>work</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../files/about_meshes.htm"><b>y</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/about_quality_controls.htm"><b>7</b></a> <a href="../files/about_meshes.htm"><b>8</b></a> <a href="../files/about_hypotheses.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_hypotheses.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/minimum_angle.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../files/local_length_hypothesis.htm"><b>27</b></a> <a href="../files/length_of_edges.htm"><b>28</b></a> <a href="../files/visualization_modes.htm"><b>29</b></a> <a href="../files/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/taper.htm"><b>32</b></a> <a href="../files/symmetry.htm"><b>33</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../pattern_mapping.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Z"></a><a name="subkey_Z{"></a><a href="../files/about_meshes.htm"><b>z</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf0.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf0.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf1.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf1.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf2.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_K" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf4.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a> <a href="whlstf4.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf2.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf2.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf2.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf2.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf2.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf4.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf4.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf4.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf4.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf4.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf4.htm#bms_LY" target="ftslist" title="search letter LY"><b>LY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf2.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf2.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf2.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf2.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf4.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf4.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf4.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf4.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_N" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf2.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf2.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf2.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf2.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf4.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf4.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf4.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf5.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf5.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf2.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf2.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf2.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf2.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf2.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf5.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf5.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf5.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf5.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf5.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf5.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf5.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf2.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf2.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf2.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf2.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf5.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf5.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf5.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf5.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf5.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf5.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf3.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf3.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf3.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf3.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf5.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf6.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf6.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf6.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf3.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf3.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf3.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf3.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf3.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf3.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf3.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf3.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf3.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf3.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf3.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf6.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf6.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf6.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf6.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf6.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf6.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf6.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf6.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf6.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf6.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf6.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf6.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf6.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf3.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf3.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf3.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf3.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf3.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf3.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf3.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf6.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf6.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf6.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf7.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf7.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf7.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf7.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf3.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf3.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf3.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf7.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf7.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf7.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf0.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf0.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf0.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf1.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf1.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf1.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf2.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf2.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf3.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf3.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf3.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf3.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf3.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf7.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf7.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf7.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf7.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf7.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf3.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf4.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf4.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf7.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf7.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf7.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf7.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf4.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf7.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
--- /dev/null
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal; text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0" marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_Z"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf7.htm#bms_ZE" target="ftslist" title="search letter ZE"><b>ZE</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf1.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf1.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf1.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf2.htm#bms_DA" target="ftslist" title="search letter DA"><b>DA</b></a> <a href="whlstf2.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf2.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf2.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_E" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf1.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf1.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf1.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf1.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf1.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf1.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf2.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf2.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf2.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf2.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf2.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf2.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf3.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf3.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf3.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf3.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_F" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf1.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf1.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf1.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf1.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_F" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf3.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf3.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf3.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf3.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf3.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf1.htm#bms_GH" target="ftslist" title="search letter GH"><b>GH</b></a> <a href="whlstf1.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf1.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf1.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf3.htm#bms_GH" target="ftslist" title="search letter GH"><b>GH</b></a> <a href="whlstf3.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf3.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf3.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf3.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf1.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf1.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf1.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf1.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf3.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf3.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf3.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf3.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf3.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf2.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf2.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf2.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf2.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf2.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf2.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf3.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf3.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf3.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf3.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf3.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf4.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf4.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0">\r
\r
-<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_J" target="ftslist" title="search letter J "><b>J </b></a> <a href="whlstf2.htm#bms_JO" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf4.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt1.htm#10" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a href="../files/about_modification_of_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About modification of meshes</a></nobr><br>\r
- <nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
- <nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
- <nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displacing nodes</a></nobr><br>\r
- <nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
- <nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt1.htm#10" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a href="../files/creating_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Creating groups</a></nobr><br>\r
+ <nobr><a href="../files/editing_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing groups</a></nobr><br>\r
+ <nobr><a href="../files/using_operations_on_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using operations on groups</a></nobr><br>\r
+ <nobr><a href="../files/constructing_groups_of_specific_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing groups of specific elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing mesh info</a></nobr><br>\r
- <nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying nodes numbers</a></nobr><br>\r
- <nobr><a href="../files/displaying_elements_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying elements numbers</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+ <nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
+ <nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
+ <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
+ <nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
+ <nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
+ <nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
+ <nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
+ <nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
+ <nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
+ <nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
+ <nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
+ <nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
+ <nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt1.htm#12" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
- <nobr><a href="../files/visualization_modes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Visualization modes</a></nobr><br>\r
- <nobr><a href="../files/visualization_properties.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Visualization properties</a></nobr><br>\r
- <nobr><a href="../files/view_update.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> View update</a></nobr><br>\r
- <nobr><a href="../files/scalar_bar_properties.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Scalar Bar properties</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+ <nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
+ <nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
+ <nobr><a name="12"></a><a href="whlstt11.htm#12" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
+ <nobr><a href="../files/translation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Translation</a></nobr><br>\r
+ <nobr><a href="../files/rotation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Rotation</a></nobr><br>\r
+ <nobr><a href="../files/symmetry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Symmetry</a></nobr><br>\r
+ <nobr><a href="../files/sewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Sewing meshes</a></nobr><br>\r
+ <nobr><a href="../files/merging_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging nodes</a></nobr><br>\r
+ <nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
+ <nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
+ <nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
+ <nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
+ <nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
+ <nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
+ <nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
+ <nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
+ <nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
+ <nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
--- /dev/null
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal; text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0" marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+ <nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+ <nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+ <nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+ <nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+ <nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt1.htm#13" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+ <nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing mesh info</a></nobr><br>\r
+ <nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying nodes numbers</a></nobr><br>\r
+ <nobr><a href="../files/displaying_elements_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying elements numbers</a></nobr><br>\r
+</p>\r
+\r
+</td></tr>\r
+<tr><td>\r
+<p><img src="whexpbar.gif" > <p>\r
+</td></tr>\r
+</table>\r
+</body>\r
+\r
+</html>\r
+\r
<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a name="7"></a><a href="whlstt4.htm#7" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
<nobr><a href="../files/3d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Hexahedron meshing algorithm</a></nobr><br>\r
<nobr><a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (Netgen) meshing algorithm</a></nobr><br>\r
- <nobr><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (GHS3D) meshing algorithm</a></nobr><br>\r
+ <nobr><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (GHS3D) meshing algorithm</a></nobr><br>\r
<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt1.htm#8" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Reassigning hypotheses and algorithms</a></nobr><br>\r
- <nobr><a href="../files/editing_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing hypotheses</a></nobr><br>\r
+ <nobr><a href="../files/editing_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing hypotheses and algorithms</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<nobr><a href="../files/minimum_angle.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Minimum angle</a></nobr><br>\r
<nobr><a href="../files/warp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Warping</a></nobr><br>\r
<nobr><a href="../files/skew.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Skew angle</a></nobr><br>\r
- <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
- <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
- <nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+ <nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+ <nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+ <nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
</p>\r
\r
</td></tr>\r
<a href="whlstfl13.htm#subkey_N" target="_self"title="search letter N"><b>N</b></a> \r
<a href="whlstfl14.htm#subkey_O" target="_self"title="search letter O"><b>O</b></a> \r
<a href="whlstfl15.htm#subkey_P" target="_self"title="search letter P"><b>P</b></a> \r
- <a href="whlstf2.htm#bm_Q" target="ftslist"title="search letter Q" ><b>Q</b></a> \r
+ <a href="whlstf5.htm#bm_Q" target="ftslist"title="search letter Q" ><b>Q</b></a> \r
<a href="whlstfl16.htm#subkey_R" target="_self"title="search letter R"><b>R</b></a> \r
<a href="whlstfl17.htm#subkey_S" target="_self"title="search letter S"><b>S</b></a> \r
<a href="whlstfl18.htm#subkey_T" target="_self"title="search letter T"><b>T</b></a> \r
<a href="whlstfl19.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> \r
<a href="whlstfl20.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> \r
<a href="whlstfl21.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
- <a href="whlstf4.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
+ <a href="whlstf7.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
<a href="whlstfl22.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
- <a href="whlstf4.htm#bm_Z" target="ftslist"title="search letter Z" ><b>Z</b></a> \r
+ <a href="whlstfl23.htm#subkey_Z" target="_self"title="search letter Z"><b>Z</b></a> \r
</p>\r
\r
<body>\r
<table>\r
<tr><td> Start Page </td><td>smesh.htm</td></tr>\r
<tr><td> Skin Name </td><td>Default</td></tr>\r
-<tr><td> Generating Time </td><td>16:04 09/24/2004</td></tr>\r
+<tr><td> Generating Time </td><td>18:32 11/11/2004</td></tr>\r
<tr><td> Language ID </td><td>1033</td></tr>\r
<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
<tr><td> Compile Build Version </td><td>10.00.949</td></tr>\r
// Author : Sergey ANIKIN, OCC
// $Header$
+
#ifndef _SMESH_GROUP_IDL_
#define _SMESH_GROUP_IDL_
module SMESH
{
/*!
- * SMESH_Group: interface of group object
+ * SMESH_Group: base interface of group object
*/
- interface SMESH_Group : SALOME::GenericObj
+ interface SMESH_GroupBase : SALOME::GenericObj, SMESH_IDSource
{
/*!
* Sets group name
*/
boolean IsEmpty();
- /*!
- * Clears the group's contents
- */
- void Clear();
-
/*!
* returns true if the group contains an element with ID == <elem_id>
*/
boolean Contains( in long elem_id );
- /*!
- * Adds elements to the group
- */
- long Add( in long_array elem_ids );
-
/*!
* Returns ID of an element at position <elem_index>
*/
*/
long_array GetListOfID();
- /*!
- * Removes elements from the group
- */
- long Remove( in long_array elem_ids );
-
/*!
* Returns the mesh object this group belongs to
*/
SMESH_Mesh GetMesh();
};
+
+ /*!
+ * SMESH_Group: interface of group object
+ */
+ interface SMESH_Group : SMESH_GroupBase
+ {
+ /*!
+ * Clears the group's contents
+ */
+ void Clear();
+
+ /*!
+ * Adds elements to the group
+ */
+ long Add( in long_array elem_ids );
+
+ /*!
+ * Removes elements from the group
+ */
+ long Remove( in long_array elem_ids );
+
+ };
+ /*!
+ * SMESH_Group: interface of group object linked to geometry
+ */
+ interface SMESH_GroupOnGeom : SMESH_GroupBase
+ {
+ GEOM::GEOM_Object GetShape();
+ };
+
};
typedef sequence<log_block> log_array;
+
+ interface SMESH_IDSource
+ {
+ /*!
+ * Returns a sequence of all element IDs
+ */
+ long_array GetIDs();
+ };
+
+ interface SMESH_GroupBase;
interface SMESH_Group;
+ interface SMESH_GroupOnGeom;
interface SMESH_subMesh;
interface SMESH_MeshEditor;
- interface SMESH_Mesh : SALOME::GenericObj
+ interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
{
/*!
* Associate a Shape to a Mesh created with NewEmpty
// SMESH_subMesh NewEmpty()
// raises (SALOME::SALOME_Exception);
+ /*!
+ * Get geom shape to mesh. A result may be nil
+ */
+ GEOM::GEOM_Object GetShapeToMesh()
+ raises (SALOME::SALOME_Exception);
+
/*!
* Remove a submesh
*/
/*!
* Create a group from geometry group
*/
- SMESH_Group CreateGroupFromGEOM( in ElementType elem_type,
- in string name,
- in GEOM::GEOM_Object theGEOMGroup )
+ SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
+ in string name,
+ in GEOM::GEOM_Object theGeomObject )
raises (SALOME::SALOME_Exception);
/*!
* Remove a group
*/
- void RemoveGroup(in SMESH_Group aGroup)
+ void RemoveGroup(in SMESH_GroupBase aGroup)
raises (SALOME::SALOME_Exception);
/*!
* Remove group with its contents
*/
- void RemoveGroupWithContents( in SMESH_Group aGroup )
+ void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
raises (SALOME::SALOME_Exception);
/*!
* New group is created. All mesh elements that are
* present in initial groups are added to the new one
*/
- SMESH_Group UnionGroups( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )
+ SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
+ in SMESH_GroupBase aGroup2,
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
* New group is created. All mesh elements that are
* present in both initial groups are added to the new one.
*/
- SMESH_Group IntersectGroups( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )
+ SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
+ in SMESH_GroupBase aGroup2,
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
* New group is created. All mesh elements that are present in
* main group but do not present in tool group are added to the new one
*/
- SMESH_Group CutGroups( in SMESH_Group aMainGroup, in SMESH_Group aToolGroup, in string name )
+ SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
+ in SMESH_GroupBase aToolGroup,
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
string Dump();
};
- interface SMESH_subMesh : SALOME::GenericObj
+ interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
{
/*!
*
long_array GetNodesId()
raises (SALOME::SALOME_Exception);
+ /*!
+ * Get geom shape the submesh is dedicated to
+ */
+ GEOM::GEOM_Object GetSubShape()
+ raises (SALOME::SALOME_Exception);
+
/*!
* Get SMESH_Mesh which stores nodes coordinates & elements definition
*/
boolean DeleteDiag(in long NodeID1, in long NodeID2);
boolean Reorient(in long_array IDsOfElements);
+
+ boolean ReorientObject(in SMESH_IDSource theObject);
boolean TriToQuad(in long_array IDsOfElements,
in NumericalFunctor Criterion,
in double MaxAngle);
-
+
+ boolean TriToQuadObject(in SMESH_IDSource theObject,
+ in NumericalFunctor Criterion,
+ in double MaxAngle);
+
boolean QuadToTri(in long_array IDsOfElements,
in NumericalFunctor Criterion);
boolean SplitQuad(in long_array IDsOfElements,
in boolean Diag13);
+ boolean SplitQuadObject(in SMESH_IDSource theObject,
+ in boolean Diag13);
+
enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
boolean Smooth(in long_array IDsOfElements,
in double MaxAspectRatio,
in Smooth_Method Method);
+ boolean SmoothObject(in SMESH_IDSource theObject,
+ in long_array IDsOfFixedNodes,
+ in long MaxNbOfIterations,
+ in double MaxAspectRatio,
+ in Smooth_Method Method);
+
void RenumberNodes();
void RenumberElements();
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
+
+ void RotationSweepObject(in SMESH_IDSource theObject,
+ in AxisStruct Axix,
+ in double AngleInRadians,
+ in long NbOfSteps,
+ in double Tolerance);
void ExtrusionSweep(in long_array IDsOfElements,
in DirStruct StepVector,
in long NbOfSteps);
+ void ExtrusionSweepObject(in SMESH_IDSource theObject,
+ in DirStruct StepVector,
+ in long NbOfSteps);
+
enum MirrorType { POINT, AXIS, PLANE };
void Mirror (in long_array IDsOfElements,
in MirrorType theMirrorType,
in boolean Copy);
+ void MirrorObject (in SMESH_IDSource theObject,
+ in AxisStruct Mirror,
+ in MirrorType theMirrorType,
+ in boolean Copy);
+
void Translate (in long_array IDsOfElements,
in DirStruct Vector,
in boolean Copy);
+ void TranslateObject (in SMESH_IDSource theObject,
+ in DirStruct Vector,
+ in boolean Copy);
+
void Rotate (in long_array IDsOfElements,
in AxisStruct Axis,
in double AngleInRadians,
in boolean Copy);
+ void RotateObject (in SMESH_IDSource theObject,
+ in AxisStruct Axis,
+ in double AngleInRadians,
+ in boolean Copy);
+
void FindCoincidentNodes (in double Tolerance,
out array_of_long_array GroupsOfNodes);
void MergeEqualElements();
- boolean SewFreeBorders (in long FirstNodeID1,
- in long SecondNodeID1,
- in long LastNodeID1,
- in long FirstNodeID2,
- in long SecondNodeID2,
- in long LastNodeID2);
-
- boolean SewConformFreeBorders (in long FirstNodeID1,
- in long SecondNodeID1,
- in long LastNodeID1,
- in long FirstNodeID2,
- in long SecondNodeID2);
-
- boolean SewBorderToSide (in long FirstNodeIDOnFreeBorder,
- in long SecondNodeIDOnFreeBorder,
- in long LastNodeIDOnFreeBorder,
- in long FirstNodeIDOnSide,
- in long LastNodeIDOnSide);
-
- boolean SewSideElements (in long_array IDsOfSide1Elements,
- in long_array IDsOfSide2Elements,
- in long NodeID1OfSide1ToMerge,
- in long NodeID1OfSide2ToMerge,
- in long NodeID2OfSide1ToMerge,
- in long NodeID2OfSide2ToMerge);
+ enum Sew_Error {
+ SEW_OK,
+ SEW_BORDER1_NOT_FOUND,
+ SEW_BORDER2_NOT_FOUND,
+ SEW_BOTH_BORDERS_NOT_FOUND,
+ SEW_BAD_SIDE_NODES,
+ SEW_VOLUMES_TO_SPLIT,
+ // for SewSideElements() only:
+ SEW_DIFF_NB_OF_ELEMENTS,
+ SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
+ SEW_BAD_SIDE1_NODES,
+ SEW_BAD_SIDE2_NODES
+ };
+
+ Sew_Error SewFreeBorders (in long FirstNodeID1,
+ in long SecondNodeID1,
+ in long LastNodeID1,
+ in long FirstNodeID2,
+ in long SecondNodeID2,
+ in long LastNodeID2);
+
+ Sew_Error SewConformFreeBorders (in long FirstNodeID1,
+ in long SecondNodeID1,
+ in long LastNodeID1,
+ in long FirstNodeID2,
+ in long SecondNodeID2);
+
+ Sew_Error SewBorderToSide (in long FirstNodeIDOnFreeBorder,
+ in long SecondNodeIDOnFreeBorder,
+ in long LastNodeIDOnFreeBorder,
+ in long FirstNodeIDOnSide,
+ in long LastNodeIDOnSide);
+
+ Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
+ in long_array IDsOfSide2Elements,
+ in long NodeID1OfSide1ToMerge,
+ in long NodeID1OfSide2ToMerge,
+ in long NodeID2OfSide1ToMerge,
+ in long NodeID2OfSide2ToMerge);
};
};
<component-username>Mesh</component-username>
<component-type>MESH</component-type>
<component-author>NRI</component-author>
- <component-version> 1.0</component-version>
+ <component-version>2.1.0</component-version>
<component-comment>New Mesh component</component-comment>
<component-multistudy>1</component-multistudy>
<component-icone>ModuleMesh.png</component-icone>
//=============================================================================
list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
(const map <int, SMESHDS_SubMesh*>& theSubMeshes,
- const list<SMESHDS_Group*>& theGroups,
+ const list<SMESHDS_GroupBase*>& theGroups,
const bool doGroupOfNodes,
const bool doGroupOfEdges,
const bool doGroupOfFaces,
map<int, SMESHDS_SubMesh*>::const_iterator aSMIter = theSubMeshes.begin();
for (; aSMIter != theSubMeshes.end(); aSMIter++)
{
+ if ( aSMIter->second->IsComplexSubmesh() )
+ continue; // submesh containing other submeshs
list<DriverMED_FamilyPtr> aSMFams = SplitByType((*aSMIter).second, (*aSMIter).first);
list<DriverMED_FamilyPtr>::iterator aSMFamsIter = aSMFams.begin();
for (; aSMFamsIter != aSMFams.end(); aSMFamsIter++)
}
// Process groups
- list<SMESHDS_Group*>::const_iterator aGroupsIter = theGroups.begin();
+ list<SMESHDS_GroupBase*>::const_iterator aGroupsIter = theGroups.begin();
for (; aGroupsIter != theGroups.end(); aGroupsIter++)
{
DriverMED_FamilyPtr aFam2 (new DriverMED_Family);
//=============================================================================
/*!
- * Initialize the tool by SMESHDS_Group
+ * Initialize the tool by SMESHDS_GroupBase
*/
//=============================================================================
-void DriverMED_Family::Init (SMESHDS_Group* group)
+void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
{
// Elements
myElements.clear();
- group->InitIterator();
- while (group->More())
+ SMDS_ElemIteratorPtr elemIt = theGroup->GetElements();
+ while (elemIt->more())
{
- myElements.insert(group->Next());
+ myElements.insert(elemIt->next());
}
// Type
- myType = group->GetType();
+ myType = theGroup->GetType();
// Groups list
myGroupNames.clear();
- myGroupNames.insert(string(group->GetStoreName()));
+ myGroupNames.insert(string(theGroup->GetStoreName()));
}
//=============================================================================
#define _INCLUDE_DRIVERMED_FAMILY
#include "SMDS_Mesh.hxx"
-#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupBase.hxx"
#include "SMESHDS_SubMesh.hxx"
#include "MEDA_Wrapper.hxx"
// Methods for groups storing to MED
static std::list<DriverMED_FamilyPtr> MakeFamilies (const std::map <int, SMESHDS_SubMesh*>& theSubMeshes,
- const std::list<SMESHDS_Group*>& theGroups,
+ const std::list<SMESHDS_GroupBase*>& theGroups,
const bool doGroupOfNodes,
const bool doGroupOfEdges,
const bool doGroupOfFaces,
const MED::TStringSet& GetGroupNames () const { return myGroupNames; }
private:
- void Init (SMESHDS_Group* group);
- // Initialize the tool by SMESHDS_Group
+ void Init (SMESHDS_GroupBase* group);
+ // Initialize the tool by SMESHDS_GroupBase
static std::list<DriverMED_FamilyPtr> SplitByType (SMESHDS_SubMesh* theSubMesh,
const int theId);
{
const set<const SMDS_MeshElement *>& anElements = aFamily->GetElements();
set<const SMDS_MeshElement *>::iterator anElemsIter = anElements.begin();
+ const SMDS_MeshElement * element = 0;
for (; anElemsIter != anElements.end(); anElemsIter++)
{
- theGroup->SMDS_MeshGroup::Add(*anElemsIter);
+ element = *anElemsIter;
+ theGroup->SMDSGroup().Add(element);
}
+ if ( element )
+ theGroup->SetType( element->GetType() );
}
}
}
myMeshName = theMeshName;
}
-void DriverMED_W_SMESHDS_Mesh::AddGroup(SMESHDS_Group* theGroup)
+void DriverMED_W_SMESHDS_Mesh::AddGroup(SMESHDS_GroupBase* theGroup)
{
myGroups.push_back(theGroup);
}
#include <map>
class SMESHDS_Mesh;
-class SMESHDS_Group;
+class SMESHDS_GroupBase;
class SMESHDS_SubMesh;
class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
/*! functions to prepare adding one mesh
*/
void SetMeshName(const std::string& theMeshName);
- void AddGroup(SMESHDS_Group* theGroup);
+ void AddGroup(SMESHDS_GroupBase * theGroup);
void AddAllSubMeshes();
void AddSubMesh(SMESHDS_SubMesh* theSubMesh, int theID);
private:
std::string myMeshName;
- std::list<SMESHDS_Group*> myGroups;
+ std::list<SMESHDS_GroupBase*> myGroups;
bool myAllSubMeshes;
std::map<int,SMESHDS_SubMesh*> mySubMeshes;
bool myDoGroupOfNodes;
// function : SMESH_GroupObj
// purpose : Constructor
//=================================================================================
-SMESH_GroupObj::SMESH_GroupObj( SMESH::SMESH_Group_ptr theGroup,
- SMESH_MeshObj* theMeshObj )
+SMESH_GroupObj::SMESH_GroupObj( SMESH::SMESH_GroupBase_ptr theGroup,
+ SMESH_MeshObj* theMeshObj )
: SMESH_SubMeshObj( theMeshObj ),
- myGroupServer( SMESH::SMESH_Group::_duplicate(theGroup) )
+ myGroupServer( SMESH::SMESH_GroupBase::_duplicate(theGroup) )
{
if ( MYDEBUG ) MESSAGE("SMESH_GroupObj - theGroup->_is_nil() = "<<theGroup->_is_nil());
myGroupServer->Register();
class SMESH_GroupObj: public SMESH_SubMeshObj
{
public:
- SMESH_GroupObj( SMESH::SMESH_Group_ptr, SMESH_MeshObj* );
+ SMESH_GroupObj( SMESH::SMESH_GroupBase_ptr, SMESH_MeshObj* );
virtual ~SMESH_GroupObj();
virtual int GetNbEntities( const SMESH::ElementType) const;
private:
- SMESH::SMESH_Group_var myGroupServer;
+ SMESH::SMESH_GroupBase_var myGroupServer;
};
// Module : SMESH
// $Header$
-#include <SMESH_Group.hxx>
-#include <SMESH_Mesh.hxx>
-#include <SMESHDS_Group.hxx>
+#include "SMESH_Group.hxx"
+#include "SMESH_Mesh.hxx"
+#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
//=============================================================================
/*!
SMESH_Group::SMESH_Group (int theID,
const SMESH_Mesh* theMesh,
const SMDSAbs_ElementType theType,
- const char* theName)
+ const char* theName,
+ const TopoDS_Shape& theShape)
: myName(theName)
{
- myGroupDS = new SMESHDS_Group (theID,
- const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
- theType);
+ if ( theShape.IsNull() )
+ myGroupDS = new SMESHDS_Group (theID,
+ const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
+ theType);
+ else
+ myGroupDS = new SMESHDS_GroupOnGeom (theID,
+ const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
+ theType,
+ theShape);
}
//=============================================================================
#include <SMDSAbs_ElementType.hxx>
#include <string>
+#include <TopoDS_Shape.hxx>
-class SMESHDS_Group;
+class SMESHDS_GroupBase;
class SMESH_Mesh;
class SMESH_Group
SMESH_Group (int theID,
const SMESH_Mesh* theMesh,
const SMDSAbs_ElementType theType,
- const char* theName);
+ const char* theName,
+ const TopoDS_Shape& theShape = TopoDS_Shape());
~SMESH_Group ();
void SetName (const char* theName) { myName = theName; }
const char* GetName () const { return myName.c_str(); }
- SMESHDS_Group * GetGroupDS () { return myGroupDS; }
+ SMESHDS_GroupBase * GetGroupDS () { return myGroupDS; }
private:
SMESH_Group (const SMESH_Group& theOther);
SMESH_Group& operator = (const SMESH_Group& theOther);
// prohibited assign operator
- SMESHDS_Group * myGroupDS;
- std::string myName;
+ SMESHDS_GroupBase * myGroupDS;
+ std::string myName;
};
SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId );
if ( aGroup ) {
if(MYDEBUG) MESSAGE("MEDToMesh - group added: "<<it->c_str());
- SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
- aGroupDS->SetStoreName( it->c_str() );
- myReader.GetGroup( aGroupDS );
+ SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( aGroup->GetGroupDS() );
+ if ( aGroupDS ) {
+ aGroupDS->SetStoreName( it->c_str() );
+ myReader.GetGroup( aGroupDS );
+ }
}
}
return (int) status;
Unexpect aCatch(SalomeException);
if(MYDEBUG) MESSAGE("SMESH_Mesh::AddHypothesis");
- if ( _myMeshDS->IsGroupOfSubShapes( aSubShape ))
+ SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+ SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
+ if ( subMeshDS && subMeshDS->IsComplexSubmesh() )
{
// return the worst but not fatal state of all group memebers
SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
}
- SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
if(MYDEBUG) SCRUTE( anHyp->GetName() );
int event;
Unexpect aCatch(SalomeException);
if(MYDEBUG) MESSAGE("SMESH_Mesh::RemoveHypothesis");
- if ( _myMeshDS->IsGroupOfSubShapes( aSubShape ))
+ SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+ SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
+ if ( subMeshDS && subMeshDS->IsComplexSubmesh() )
{
// return the worst but not fatal state of all group memebers
SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
if (sc->mapHypothesis.find(anHypId) == sc->mapHypothesis.end())
throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
- SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
int hypType = anHyp->GetType();
if(MYDEBUG) SCRUTE(hypType);
SMESH_subMesh *aSubMesh;
int index = _myMeshDS->ShapeToIndex(aSubShape);
+ // for submeshes on GEOM Group
+ if ( !index && aSubShape.ShapeType() == TopAbs_COMPOUND ) {
+ TopoDS_Iterator it( aSubShape );
+ if ( it.More() )
+ index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );
+ }
+
if (_mapSubMesh.find(index) != _mapSubMesh.end())
{
aSubMesh = _mapSubMesh[index];
}
for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
- SMESH_Group* aGroup = it->second;
- SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
- aGroupDS->SetStoreName( aGroup->GetName() );
- myWriter.AddGroup( aGroupDS );
+ SMESH_Group* aGroup = it->second;
+ SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
+ if ( aGroupDS ) {
+ aGroupDS->SetStoreName( aGroup->GetName() );
+ myWriter.AddGroup( aGroupDS );
+ }
}
myWriter.Perform();
SMESH_Group* SMESH_Mesh::AddGroup (const SMDSAbs_ElementType theType,
const char* theName,
- int& theId)
+ int& theId,
+ const TopoDS_Shape& theShape)
{
if (_mapGroup.find(_groupId) != _mapGroup.end())
return NULL;
theId = _groupId;
- SMESH_Group* aGroup = new SMESH_Group (theId, this, theType, theName);
+ SMESH_Group* aGroup = new SMESH_Group (theId, this, theType, theName, theShape);
GetMeshDS()->AddGroup( aGroup->GetGroupDS() );
_mapGroup[_groupId++] = aGroup;
return aGroup;
SMESH_Group* AddGroup (const SMDSAbs_ElementType theType,
const char* theName,
- int& theId);
+ int& theId,
+ const TopoDS_Shape& theShape=TopoDS_Shape());
SMESH_Group* GetGroup (const int theGroupID);
#include "SMDS_FaceOfNodes.hxx"
#include "SMDS_VolumeTool.hxx"
#include "SMESHDS_Group.hxx"
+#include "SMESHDS_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
#include "utilities.h"
const SMDS_MeshElement* elemInGroups,
SMESHDS_Mesh * aMesh)
{
- const set<SMESHDS_Group*>& groups = aMesh->GetGroups();
- set<SMESHDS_Group*>::const_iterator grIt = groups.begin();
+ const set<SMESHDS_GroupBase*>& groups = aMesh->GetGroups();
+ set<SMESHDS_GroupBase*>::const_iterator grIt = groups.begin();
for ( ; grIt != groups.end(); grIt++ ) {
- if ( (*grIt)->SMDS_MeshGroup::Contains( elemInGroups ))
- (*grIt)->SMDS_MeshGroup::Add( elemToAdd );
+ SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *grIt );
+ if ( group && group->SMDSGroup().Contains( elemInGroups ))
+ group->SMDSGroup().Add( elemToAdd );
}
}
set<int> checkedId1; // ids of tried 2-nd nodes
Standard_Real leastDist = DBL_MAX; // dist of the 4-th node from 123 plane
const Standard_Real tol = 1.e-6; // tolerance to find nodes in plane
- int iMin, iMax, iLoop1 = 0;
+ int iMin, iLoop1 = 0;
// Loop to try the 2-nd nodes
}
}
-//=======================================================================
-//function : isOppFaceInd
-//purpose :
-//=======================================================================
-
-static bool isOppFaceInd(int iMin, int iMax)
-{
- return ( iMax - iMin == 1 && iMax % 2 );
-}
-
//=======================================================================
//function : MergeNodes
//purpose : In each group, the cdr of nodes are substituted by the first one
return true;
}
+//=======================================================================
+//function : CheckFreeBorderNodes
+//purpose : Return true if the tree nodes are on a free border
+//=======================================================================
+
+bool SMESH_MeshEditor::CheckFreeBorderNodes(const SMDS_MeshNode* theNode1,
+ const SMDS_MeshNode* theNode2,
+ const SMDS_MeshNode* theNode3)
+{
+ list< const SMDS_MeshNode* > nodes;
+ list< const SMDS_MeshElement* > faces;
+ return findFreeBorder( theNode1, theNode2, theNode3, nodes, faces);
+}
+
//=======================================================================
//function : SewFreeBorder
//purpose :
//=======================================================================
-bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
- const SMDS_MeshNode* theBordSecondNode,
- const SMDS_MeshNode* theBordLastNode,
- const SMDS_MeshNode* theSideFirstNode,
- const SMDS_MeshNode* theSideSecondNode,
- const SMDS_MeshNode* theSideThirdNode,
- bool theSideIsFreeBorder)
+SMESH_MeshEditor::Sew_Error
+ SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
+ const SMDS_MeshNode* theBordSecondNode,
+ const SMDS_MeshNode* theBordLastNode,
+ const SMDS_MeshNode* theSideFirstNode,
+ const SMDS_MeshNode* theSideSecondNode,
+ const SMDS_MeshNode* theSideThirdNode,
+ bool theSideIsFreeBorder)
{
MESSAGE("::SewFreeBorder()");
+ Sew_Error aResult = SEW_OK;
// ====================================
// find side nodes and elements
list< const SMDS_MeshElement* > eSide[ 2 ];
list< const SMDS_MeshNode* >::iterator nIt[ 2 ];
list< const SMDS_MeshElement* >::iterator eIt[ 2 ];
- SMDS_ElemIteratorPtr invElemIt;
// Free border 1
// --------------
if (!findFreeBorder(theBordFirstNode,theBordSecondNode,theBordLastNode,
nSide[0], eSide[0])) {
MESSAGE(" Free Border 1 not found " );
- return false;
+ aResult = SEW_BORDER1_NOT_FOUND;
}
if (theSideIsFreeBorder)
{
if (!findFreeBorder(theSideFirstNode, theSideSecondNode, theSideThirdNode,
nSide[1], eSide[1])) {
MESSAGE(" Free Border 2 not found " );
- return false;
+ aResult = ( aResult != SEW_OK ? SEW_BOTH_BORDERS_NOT_FOUND : SEW_BORDER2_NOT_FOUND );
}
}
- else
+ if ( aResult != SEW_OK )
+ return aResult;
+
+ if (!theSideIsFreeBorder)
{
// Side 2
// --------------
checkedLinkIDs.clear();
gp_XYZ prevXYZ( prevSideNode->X(), prevSideNode->Y(), prevSideNode->Z() );
- invElemIt = prevSideNode->GetInverseElementIterator();
+ SMDS_ElemIteratorPtr invElemIt
+ = prevSideNode->GetInverseElementIterator();
while ( invElemIt->more() ) { // loop on inverse elements on the Side 2
const SMDS_MeshElement* elem = invElemIt->next();
// prepare data for a loop on links, of a face or a volume
if ( !sideNode ) {
MESSAGE(" Cant find path by links of the Side 2 ");
- return false;
+ return SEW_BAD_SIDE_NODES;
}
sideNodes.push_back( sideNode );
sideElems.push_back( sideElem );
if ( hasVolumes && sideNodes.size () != bordNodes.size() ) {
MESSAGE("VOLUME SPLITTING IS FORBIDDEN");
- return false; // volume splitting is forbidden
+ return SEW_VOLUMES_TO_SPLIT; // volume splitting is forbidden
}
} // end nodes search on the side 2
gp_XYZ segment (nCur->X() - nPrev->X(),
nCur->Y() - nPrev->Y(),
nCur->Z() - nPrev->Z());
- double segmentLen = segment.SquareModulus();
+ double segmentLen = segment.Modulus();
bordLength += segmentLen;
param[ iBord ][ iNode ] = bordLength;
nPrev = nCur;
MergeNodes ( nodeGroupsToMerge );
- return true;
+ return aResult;
}
//=======================================================================
//purpose :
//=======================================================================
-bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
- set<const SMDS_MeshElement*>& theSide2,
- const SMDS_MeshNode* theFirstNode1,
- const SMDS_MeshNode* theFirstNode2,
- const SMDS_MeshNode* theSecondNode1,
- const SMDS_MeshNode* theSecondNode2)
+SMESH_MeshEditor::Sew_Error
+ SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
+ set<const SMDS_MeshElement*>& theSide2,
+ const SMDS_MeshNode* theFirstNode1,
+ const SMDS_MeshNode* theFirstNode2,
+ const SMDS_MeshNode* theSecondNode1,
+ const SMDS_MeshNode* theSecondNode2)
{
MESSAGE ("::::SewSideElements()");
+ if ( theSide1.size() != theSide2.size() )
+ return SEW_DIFF_NB_OF_ELEMENTS;
+
+ Sew_Error aResult = SEW_OK;
// Algo:
// 1. Build set of faces representing each side
// 2. Find which nodes of the side 1 to merge with ones on the side 2
while ( tmpFaceIt->more() )
aTmpFacesMesh.RemoveElement( tmpFaceIt->next() );
MESSAGE("Diff nb of faces");
- return false;
+ return SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
}
// ============================================================
if (faceSet->find( f ) != faceSet->end() && // f is in face set
! fMap.insert( f ).second ) // f encounters twice
{
+ if ( face[ iSide ] ) {
+ MESSAGE( "2 faces per link " );
+ aResult = iSide ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES;
+ break;
+ }
face[ iSide ] = f;
faceSet->erase( f );
// get face nodes and find ones of a link
faceNodes[ iSide ][ iNode++ ] = n;
}
faceNodes[ iSide ][ iNode ] = faceNodes[ iSide ][ 0 ];
- break;
}
}
}
}
// check similarity of elements of the sides
- if (( face[0] && !face[1] ) || ( !face[0] && face[1] )) {
+ if (aResult == SEW_OK && ( face[0] && !face[1] ) || ( !face[0] && face[1] )) {
MESSAGE("Correspondent face not found on side " << ( face[0] ? 1 : 0 ));
+ if ( nReplaceMap.size() == 2 ) // faces on input nodes not found
+ aResult = ( face[0] ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES );
+ else
+ aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
break; // do not return because it s necessary to remove tmp faces
}
int nbNodes = face[0]->NbNodes();
if ( nbNodes != face[1]->NbNodes() ) {
MESSAGE("Diff nb of face nodes");
+ aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
break; // do not return because it s necessary to remove tmp faces
}
bool reverse[] = { false, false }; // order of notLinkNodes of quadrangle
} // 2 faces found
} // loop on link lists
- bool Ok = ( linkIt[0] == linkList[0].end() ); // all links preocessed
+ if ( aResult == SEW_OK &&
+ ( linkIt[0] != linkList[0].end() ||
+ !faceSetPtr[0]->empty() || !faceSetPtr[1]->empty() )) {
+ MESSAGE( (linkIt[0] != linkList[0].end()) <<" "<< (faceSetPtr[0]->empty()) <<
+ " " << (faceSetPtr[1]->empty()));
+ aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
+ }
// ====================================================================
// 3. Replace nodes in elements of the side 1 and remove replaced nodes
while ( tmpFaceIt->more() )
aTmpFacesMesh.RemoveElement( tmpFaceIt->next() );
- if ( !Ok || nReplaceMap.size() == 2 ) {
- MESSAGE(( Ok ? "No similar faces found" : " " ));
- return false;
- }
+ if ( aResult != SEW_OK)
+ return aResult;
+
list< int > nodeIDsToRemove/*, elemIDsToRemove*/;
// loop on nodes replacement map
TNodeNodeMap::iterator nReplaceMapIt = nReplaceMap.begin(), nnIt;
Remove( nodeIDsToRemove, true );
- return true;
+ return aResult;
}
// Remove all but one of elements built on the same nodes.
// Return nb of successfully merged groups.
- bool SewFreeBorder (const SMDS_MeshNode* theBorderFirstNode,
- const SMDS_MeshNode* theBorderSecondNode,
- const SMDS_MeshNode* theBorderLastNode,
- const SMDS_MeshNode* theSide2FirstNode,
- const SMDS_MeshNode* theSide2SecondNode,
- const SMDS_MeshNode* theSide2ThirdNode = 0,
- bool theSide2IsFreeBorder = true);
+ static bool CheckFreeBorderNodes(const SMDS_MeshNode* theNode1,
+ const SMDS_MeshNode* theNode2,
+ const SMDS_MeshNode* theNode3 = 0);
+ // Return true if the three nodes are on a free border
+
+ enum Sew_Error {
+ SEW_OK,
+ // for SewFreeBorder()
+ SEW_BORDER1_NOT_FOUND,
+ SEW_BORDER2_NOT_FOUND,
+ SEW_BOTH_BORDERS_NOT_FOUND,
+ SEW_BAD_SIDE_NODES,
+ SEW_VOLUMES_TO_SPLIT,
+ // for SewSideElements()
+ SEW_DIFF_NB_OF_ELEMENTS,
+ SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
+ SEW_BAD_SIDE1_NODES,
+ SEW_BAD_SIDE2_NODES
+ };
+
+
+ Sew_Error SewFreeBorder (const SMDS_MeshNode* theBorderFirstNode,
+ const SMDS_MeshNode* theBorderSecondNode,
+ const SMDS_MeshNode* theBorderLastNode,
+ const SMDS_MeshNode* theSide2FirstNode,
+ const SMDS_MeshNode* theSide2SecondNode,
+ const SMDS_MeshNode* theSide2ThirdNode = 0,
+ bool theSide2IsFreeBorder = true);
// Sew the free border to the side2 by replacing nodes in
// elements on the free border with nodes of the elements
// of the side 2. If nb of links in the free border and
// the 2 free borders are sewn link by link and no additional
// nodes are inserted.
// Return false, if sewing failed.
-
- bool SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
- std::set<const SMDS_MeshElement*>& theSide2,
- const SMDS_MeshNode* theFirstNode1ToMerge,
- const SMDS_MeshNode* theFirstNode2ToMerge,
- const SMDS_MeshNode* theSecondNode1ToMerge,
- const SMDS_MeshNode* theSecondNode2ToMerge);
+
+ Sew_Error SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
+ std::set<const SMDS_MeshElement*>& theSide2,
+ const SMDS_MeshNode* theFirstNode1ToMerge,
+ const SMDS_MeshNode* theFirstNode2ToMerge,
+ const SMDS_MeshNode* theSecondNode1ToMerge,
+ const SMDS_MeshNode* theSecondNode2ToMerge);
// Sew two sides of a mesh. Nodes belonging to theSide1 are
// merged with nodes of elements of theSide2.
// Number of elements in theSide1 and in theSide2 must be
{
if ( theListOfList.size() > 2 ) {
// keep the car
- list < T > & aFront = theListOfList.front();
+ //list < T > & aFront = theListOfList.front();
// sort the whole list
TSizeCmp< T > SizeCmp;
theListOfList.sort( SizeCmp );
prevP->myInitU = totalDist;
for ( pIt++; pIt != ePoints.end(); pIt++ ) {
TPoint* p = *pIt;
- totalDist += ( p->myInitUV - prevP->myInitUV ).SquareModulus();
+ totalDist += ( p->myInitUV - prevP->myInitUV ).Modulus();
p->myInitU = totalDist;
prevP = p;
}
static bool intersectIsolines(const gp_XY& uv11, const gp_XY& uv12, const double r1,
const gp_XY& uv21, const gp_XY& uv22, const double r2,
- gp_XY& resUV)
+ gp_XY& resUV,
+ bool& isDeformed)
{
gp_XY loc1 = uv11 * ( 1 - r1 ) + uv12 * r1;
gp_XY loc2 = uv21 * ( 1 - r2 ) + uv22 * r2;
-// resUV = 0.5 * ( loc1 + loc2 );
- double len1 = ( uv11 - uv12 ).SquareModulus();
- double len2 = ( uv21 - uv22 ).SquareModulus();
- resUV = loc1 * len2 / ( len1 + len2 ) + loc2 * len1 / ( len1 + len2 );
+ resUV = 0.5 * ( loc1 + loc2 );
+ isDeformed = ( loc1 - loc2 ).SquareModulus() > 1e-8;
+// double len1 = ( uv11 - uv12 ).Modulus();
+// double len2 = ( uv21 - uv22 ).Modulus();
+// resUV = loc1 * len2 / ( len1 + len2 ) + loc2 * len1 / ( len1 + len2 );
// return true;
bool SMESH_Pattern::compUVByIsoIntersection (const list< list< TPoint* > >& theBndPoints,
const gp_XY& theInitUV,
- gp_XY& theUV )
+ gp_XY& theUV,
+ bool & theIsDeformed )
{
// compute UV by intersection of 2 iso lines
//gp_Lin2d isoLine[2];
//gp_Lin2d iso( UV[0], UV[0] - UV[1] );
double r =
(initUV[0]-theInitUV).Modulus() / (initUV[0]-initUV[1]).Modulus();
- gp_Pnt2d isoLoc = UV[0] * ( 1 - r ) + UV[1] * r;
+ //gp_Pnt2d isoLoc = UV[0] * ( 1 - r ) + UV[1] * r;
//isoLine[ iIso ] = iso.Normal( isoLoc );
uv1[ iIso ] = UV[0];
uv2[ iIso ] = UV[1];
ratio[ iIso ] = r;
}
if ( !intersectIsolines( uv1[0], uv2[0], ratio[0],
- uv1[1], uv2[1], ratio[1], theUV )) {
+ uv1[1], uv2[1], ratio[1], theUV, theIsDeformed )) {
MESSAGE(" Cant intersect isolines for a point "<<theInitUV.X()<<", "<<theInitUV.Y());
return setErrorCode( ERR_APPLF_BAD_TOPOLOGY );
}
return true;
}
+
// ==========================================================
// structure representing a node of a grid of iso-poly-lines
// ==========================================================
struct TIsoNode {
+ bool myIsMovable;
gp_XY myInitUV;
gp_XY myUV;
- gp_XY* myPrevUV[2];
- gp_XY* myNextUV[2];
double myRatio[2];
- TIsoNode(double initU, double initV): myInitUV( initU, initV ), myUV( 1e100, 1e100 )
- { myPrevUV[0] = myPrevUV[1] = myNextUV[0] = myNextUV[1] = 0; }
+ gp_Dir2d myDir[2]; // boundary tangent dir for boundary nodes, iso dir for internal ones
+ TIsoNode* myNext[4]; // order: (iDir=0,isForward=0), (1,0), (0,1), (1,1)
+ TIsoNode* myBndNodes[4]; // order: (iDir=0,i=0), (1,0), (0,1), (1,1)
+ TIsoNode(double initU, double initV):
+ myInitUV( initU, initV ), myUV( 1e100, 1e100 ), myIsMovable(true)
+ { myNext[0] = myNext[1] = myNext[2] = myNext[3] = 0; }
bool IsUVComputed() const
{ return myUV.X() != 1e100; }
bool IsMovable() const
- { return myPrevUV[0] && myPrevUV[1] && myNextUV[0] && myNextUV[1]; }
+ { return myIsMovable && myNext[0] && myNext[1] && myNext[2] && myNext[3]; }
void SetNotMovable()
- { myPrevUV[0] = 0; }
+ { myIsMovable = false; }
+ void SetBoundaryNode(TIsoNode* node, int iDir, int i)
+ { myBndNodes[ iDir + i * 2 ] = node; }
+ TIsoNode* GetBoundaryNode(int iDir, int i)
+ { return myBndNodes[ iDir + i * 2 ]; }
+ void SetNext(TIsoNode* node, int iDir, int isForward)
+ { myNext[ iDir + isForward * 2 ] = node; }
+ TIsoNode* GetNext(int iDir, int isForward)
+ { return myNext[ iDir + isForward * 2 ]; }
};
+//=======================================================================
+//function : getNextNode
+//purpose :
+//=======================================================================
+
+static inline TIsoNode* getNextNode(const TIsoNode* node, int dir )
+{
+ TIsoNode* n = node->myNext[ dir ];
+ if ( n && !n->IsUVComputed()/* && node->IsMovable()*/ ) {
+ n = 0;//node->myBndNodes[ dir ];
+// MESSAGE("getNextNode: use bnd for node "<<
+// node->myInitUV.X()<<" "<<node->myInitUV.Y());
+ }
+ return n;
+}
+//=======================================================================
+//function : checkQuads
+//purpose : check if newUV destortes quadrangles around node,
+// and if ( crit == FIX_OLD ) fix newUV in this case
+//=======================================================================
+
+enum { CHECK_NEW_IN, CHECK_NEW_OK, FIX_OLD };
+
+static bool checkQuads (const TIsoNode* node,
+ gp_XY& newUV,
+ const bool reversed,
+ const int crit = FIX_OLD,
+ double fixSize = 0.)
+{
+ gp_XY oldUV = node->myUV, oldUVFixed[4], oldUVImpr[4];
+ int nbOldFix = 0, nbOldImpr = 0;
+ double newBadRate = 0, oldBadRate = 0;
+ bool newIsOk = true, newIsIn = true, oldIsIn = true, oldIsOk = true;
+ int i, dir1 = 0, dir2 = 3;
+ for ( ; dir1 < 4; dir1++, dir2++ ) // loop on 4 quadrangles around <node>
+ {
+ if ( dir2 > 3 ) dir2 = 0;
+ TIsoNode* n[3];
+ // walking counterclockwise around a quad,
+ // nodes are in the order: node, n[0], n[1], n[2]
+ n[0] = getNextNode( node, dir1 );
+ n[2] = getNextNode( node, dir2 );
+ if ( !n[0] || !n[2] ) continue;
+ n[1] = getNextNode( n[0], dir2 );
+ if ( !n[1] ) n[1] = getNextNode( n[2], dir1 );
+ bool isTriangle = ( !n[1] );
+ if ( reversed ) {
+ TIsoNode* tmp = n[0]; n[0] = n[2]; n[2] = tmp;
+ }
+// if ( fixSize != 0 ) {
+// cout<<"NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<node->myUV.X()<<" "<<node->myUV.Y()<<endl;
+// cout<<"\t0: "<<n[0]->myInitUV.X()<<" "<<n[0]->myInitUV.Y()<<" UV: "<<n[0]->myUV.X()<<" "<<n[0]->myUV.Y()<<endl;
+// cout<<"\t1: "<<n[1]->myInitUV.X()<<" "<<n[1]->myInitUV.Y()<<" UV: "<<n[1]->myUV.X()<<" "<<n[1]->myUV.Y()<<endl;
+// cout<<"\t2: "<<n[2]->myInitUV.X()<<" "<<n[2]->myInitUV.Y()<<" UV: "<<n[2]->myUV.X()<<" "<<n[2]->myUV.Y()<<endl;
+// }
+ // check if a quadrangle is degenerated
+ if ( !isTriangle &&
+ ((( n[0]->myUV - n[1]->myUV ).SquareModulus() <= DBL_MIN ) ||
+ (( n[2]->myUV - n[1]->myUV ).SquareModulus() <= DBL_MIN )))
+ isTriangle = true;
+ if ( isTriangle &&
+ ( n[0]->myUV - n[2]->myUV ).SquareModulus() <= DBL_MIN )
+ continue;
+
+ // find min size of the diagonal node-n[1]
+ double minDiag = fixSize;
+ if ( minDiag == 0. ) {
+ double maxLen2 = ( node->myUV - n[0]->myUV ).SquareModulus();
+ if ( !isTriangle ) {
+ maxLen2 = Max( maxLen2, ( n[0]->myUV - n[1]->myUV ).SquareModulus() );
+ maxLen2 = Max( maxLen2, ( n[1]->myUV - n[2]->myUV ).SquareModulus() );
+ }
+ maxLen2 = Max( maxLen2, ( n[2]->myUV - node->myUV ).SquareModulus() );
+ minDiag = sqrt( maxLen2 ) * PI / 60.; // ~ maxLen * Sin( 3 deg )
+ }
+
+ // check if newUV is behind 3 dirs: n[0]-n[1], n[1]-n[2] and n[0]-n[2]
+ // ( behind means "to the right of")
+ // it is OK if
+ // 1. newUV is not behind 01 and 12 dirs
+ // 2. or newUV is not behind 02 dir and n[2] is convex
+ bool newIn[3] = { true, true, true }, newOk[3] = { true, true, true };
+ bool wasIn[3] = { true, true, true }, wasOk[3] = { true, true, true };
+ gp_Vec2d moveVec[3], outVec[3];
+ for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+ {
+ bool isDiag = ( i == 2 );
+ if ( isDiag && newOk[0] && newOk[1] && !isTriangle )
+ break;
+ gp_Vec2d sideDir;
+ if ( isDiag )
+ sideDir = gp_Vec2d( n[0]->myUV, n[2]->myUV );
+ else
+ sideDir = gp_Vec2d( n[i]->myUV, n[i+1]->myUV );
+
+ gp_Vec2d outDir( sideDir.Y(), -sideDir.X() ); // to the right
+ outDir.Normalize();
+ gp_Vec2d newDir( n[i]->myUV, newUV );
+ gp_Vec2d oldDir( n[i]->myUV, oldUV );
+ outVec[i] = outDir;
+ if ( newIsOk ) newOk[i] = ( outDir * newDir < -minDiag );
+ if ( newIsIn ) newIn[i] = ( outDir * newDir < 0 );
+ if ( crit == FIX_OLD ) {
+ wasIn[i] = ( outDir * oldDir < 0 );
+ wasOk[i] = ( outDir * oldDir < -minDiag );
+ if ( !newOk[i] )
+ newBadRate += outDir * newDir;
+ if ( !wasOk[i] )
+ oldBadRate += outDir * oldDir;
+ // push node inside
+ if ( !wasOk[i] ) {
+ double oldDist = - outDir * oldDir;//, l2 = outDir * newDir;
+ // double r = ( l1 - minDiag ) / ( l1 + l2 );
+ // moveVec[i] = r * gp_Vec2d( node->myUV, newUV );
+ moveVec[i] = ( oldDist - minDiag ) * outDir;
+ }
+ }
+ }
+
+ // check if n[2] is convex
+ bool convex = true;
+ if ( !isTriangle )
+ convex = ( outVec[0] * gp_Vec2d( n[1]->myUV, n[2]->myUV ) < 0 );
+
+ bool isNewOk = ( newOk[0] && newOk[1] ) || ( newOk[2] && convex );
+ bool isNewIn = ( newIn[0] && newIn[1] ) || ( newIn[2] && convex );
+ newIsOk = ( newIsOk && isNewOk );
+ newIsIn = ( newIsIn && isNewIn );
+
+ if ( crit != FIX_OLD ) {
+ if ( crit == CHECK_NEW_OK && !newIsOk ) break;
+ if ( crit == CHECK_NEW_IN && !newIsIn ) break;
+ continue;
+ }
+
+ bool isOldIn = ( wasIn[0] && wasIn[1] ) || ( wasIn[2] && convex );
+ bool isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
+ oldIsIn = ( oldIsIn && isOldIn );
+ oldIsOk = ( oldIsOk && isOldIn );
+
+
+ if ( !isOldIn ) { // node is outside a quadrangle
+ // move newUV inside a quadrangle
+//MESSAGE("Quad "<< dir1 << " WAS IN " << wasIn[0]<<" "<<wasIn[1]<<" "<<wasIn[2]);
+ // node and newUV are outside: push newUV inside
+ gp_XY uv;
+ if ( convex || isTriangle ) {
+ uv = 0.5 * ( n[0]->myUV + n[2]->myUV ) - minDiag * outVec[2].XY();
+ }
+ else {
+ gp_Vec2d out = outVec[0].Normalized() + outVec[1].Normalized();
+ double outSize = out.Magnitude();
+ if ( outSize > DBL_MIN )
+ out /= outSize;
+ else
+ out.SetCoord( -outVec[1].Y(), outVec[1].X() );
+ uv = n[1]->myUV - minDiag * out.XY();
+ }
+ oldUVFixed[ nbOldFix++ ] = uv;
+ //node->myUV = newUV;
+ }
+ else if ( !isOldOk ) {
+ // try to fix old UV: move node inside as less as possible
+//MESSAGE("Quad "<< dir1 << " old is BAD, try to fix old, minDiag: "<< minDiag);
+ gp_XY uv1, uv2 = node->myUV;
+ for ( i = isTriangle ? 2 : 0; i < 3; i++ ) // mark not computed vectors
+ if ( wasOk[i] )
+ moveVec[ i ].SetCoord( 1, 2e100); // not use this vector
+ while ( !isOldOk ) {
+ // find the least moveVec
+ int i, iMin = 4;
+ double minMove2 = 1e100;
+ for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+ {
+ if ( moveVec[i].Coord(1) < 1e100 ) {
+ double move2 = moveVec[i].SquareMagnitude();
+ if ( move2 < minMove2 ) {
+ minMove2 = move2;
+ iMin = i;
+ }
+ }
+ }
+ if ( iMin == 4 ) {
+ break;
+ }
+ // move node to newUV
+ uv1 = node->myUV + moveVec[ iMin ].XY();
+ uv2 += moveVec[ iMin ].XY();
+ moveVec[ iMin ].SetCoord( 1, 2e100); // not use this vector more
+ // check if uv1 is ok
+ for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+ wasOk[i] = ( outVec[i] * gp_Vec2d( n[i]->myUV, uv1 ) < -minDiag );
+ isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
+ if ( isOldOk )
+ oldUVImpr[ nbOldImpr++ ] = uv1;
+ else {
+ // check if uv2 is ok
+ for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+ wasOk[i] = ( outVec[i] * gp_Vec2d( n[i]->myUV, uv2 ) < -minDiag );
+ isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
+ if ( isOldOk )
+ oldUVImpr[ nbOldImpr++ ] = uv2;
+ }
+ }
+ }
+
+ } // loop on 4 quadrangles around <node>
+
+ if ( crit == CHECK_NEW_OK )
+ return newIsOk;
+ if ( crit == CHECK_NEW_IN )
+ return newIsIn;
+
+ if ( newIsOk )
+ return true;
+
+ if ( oldIsOk )
+ newUV = oldUV;
+ else {
+ if ( oldIsIn && nbOldImpr ) {
+// MESSAGE(" Try to improve UV, init: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<
+// " uv: "<<oldUV.X()<<" "<<oldUV.Y() );
+ gp_XY uv = oldUVImpr[ 0 ];
+ for ( int i = 1; i < nbOldImpr; i++ )
+ uv += oldUVImpr[ i ];
+ uv /= nbOldImpr;
+ if ( checkQuads( node, uv, reversed, CHECK_NEW_OK )) {
+ newUV = uv;
+ return false;
+ }
+ else {
+ //MESSAGE(" Cant improve UV, uv: "<<uv.X()<<" "<<uv.Y());
+ }
+ }
+ if ( !oldIsIn && nbOldFix ) {
+// MESSAGE(" Try to fix UV, init: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<
+// " uv: "<<oldUV.X()<<" "<<oldUV.Y() );
+ gp_XY uv = oldUVFixed[ 0 ];
+ for ( int i = 1; i < nbOldFix; i++ )
+ uv += oldUVFixed[ i ];
+ uv /= nbOldFix;
+ if ( checkQuads( node, uv, reversed, CHECK_NEW_IN )) {
+ newUV = uv;
+ return false;
+ }
+ else {
+ //MESSAGE(" Cant fix UV, uv: "<<uv.X()<<" "<<uv.Y());
+ }
+ }
+ if ( newIsIn && oldIsIn )
+ newUV = ( newBadRate < oldBadRate ) ? newUV : oldUV;
+ else if ( !newIsIn )
+ newUV = oldUV;
+ }
+
+ return false;
+}
+
//=======================================================================
//function : compUVByElasticIsolines
//purpose : compute UV as nodes of iso-poly-lines consisting of
// segments keeping relative size as in the pattern
//=======================================================================
-
+//#define DEB_COMPUVBYELASTICISOLINES
bool SMESH_Pattern::
compUVByElasticIsolines(const list< list< TPoint* > >& theBndPoints,
const list< TPoint* >& thePntToCompute)
{
+//cout << "============================== KEY POINTS =============================="<<endl;
+// list< int >::iterator kpIt = myKeyPointIDs.begin();
+// for ( ; kpIt != myKeyPointIDs.end(); kpIt++ ) {
+// TPoint& p = myPoints[ *kpIt ];
+// cout << "INIT: " << p.myInitUV.X() << " " << p.myInitUV.Y() <<
+// " UV: " << p.myUV.X() << " " << p.myUV.Y() << endl;
+// }
+//cout << "=============================="<<endl;
+
// Define parameters of iso-grid nodes in U and V dir
set< double > paramSet[ 2 ];
list< list< TPoint* > >::const_iterator pListIt;
list< TPoint* >::const_iterator pIt;
-// for ( pListIt = theBndPoints.begin(); pListIt != theBndPoints.end(); pListIt++ ) {
-// const list< TPoint* > & pList = * pListIt;
-// for ( pIt = pList.begin(); pIt != pList.end(); pIt++ ) {
-// paramSet[0].insert( (*pIt)->myInitUV.X() );
-// paramSet[1].insert( (*pIt)->myInitUV.Y() );
-// }
-// }
+ for ( pListIt = theBndPoints.begin(); pListIt != theBndPoints.end(); pListIt++ ) {
+ const list< TPoint* > & pList = * pListIt;
+ for ( pIt = pList.begin(); pIt != pList.end(); pIt++ ) {
+ paramSet[0].insert( (*pIt)->myInitUV.X() );
+ paramSet[1].insert( (*pIt)->myInitUV.Y() );
+ }
+ }
for ( pIt = thePntToCompute.begin(); pIt != thePntToCompute.end(); pIt++ ) {
paramSet[0].insert( (*pIt)->myInitUV.X() );
paramSet[1].insert( (*pIt)->myInitUV.Y() );
set< double > & params = paramSet[ iDir ];
double range = ( *params.rbegin() - *params.begin() );
double toler = range / 1e6;
- double maxSegment = range / params.size() / 2.;
tol[ iDir ] = toler;
-
+// double maxSegment = range / params.size() / 2.;
+//
// set< double >::iterator parIt = params.begin();
// double prevPar = *parIt;
// for ( parIt++; parIt != params.end(); parIt++ )
// {
// double segLen = (*parIt) - prevPar;
// if ( segLen < toler )
-// params.erase( prevPar ); // unite
+// ;//params.erase( prevPar ); // unite
// else if ( segLen > maxSegment )
// params.insert( prevPar + 0.5 * segLen ); // split
// prevPar = (*parIt);
set< double >::iterator par0It = params0.begin();
for ( ; par0It != params0.end(); par0It++ )
{
- TIsoLine & isoLine0 = isoMap[0][ *par0It ]; // isoline with const U
+ TIsoLine & isoLine0 = isoMap[0][ *par0It ]; // vertical isoline with const U
set< double > & params1 = paramSet[ 1 ];
set< double >::iterator par1It = params1.begin();
for ( ; par1It != params1.end(); par1It++ )
}
}
- // Compute intersections of boundaries with iso-lines
+ // Compute intersections of boundaries with iso-lines:
+ // only boundary nodes will have computed UV so far
- Bnd_Box2d uvBox;
+ Bnd_Box2d uvBnd;
list< list< TPoint* > >::const_iterator bndIt = theBndPoints.begin();
+ list< TIsoNode* > bndNodes; // nodes corresponding to outer theBndPoints
for ( ; bndIt != theBndPoints.end(); bndIt++ )
{
const list< TPoint* > & bndPoints = * bndIt;
for ( ; pIt != bndPoints.end(); pIt++ )
{
TPoint* point = *pIt;
- uvBox.Add( gp_Pnt2d( point->myUV ));
for ( iDir = 0; iDir < 2; iDir++ )
{
const int iCoord = iDir + 1;
}
TIsoNode * node;
if ( Abs( nodePar - otherPar ) <= toler )
- node = (*nIt);
+ node = ( nIt == isoLine.end() ) ? isoLine.back() : (*nIt);
else {
nodes.push_back( TIsoNode( initUV.X(), initUV.Y() ) );
node = & nodes.back();
isoLine.insert( nIt, node );
}
+ node->SetNotMovable();
node->myUV = uv;
- }
- }
+ uvBnd.Add( gp_Pnt2d( uv ));
+// cout << "bnd: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<node->myUV.X()<<" "<<node->myUV.Y()<<endl;
+ // tangent dir
+ gp_XY tgt( point->myUV - prevP->myUV );
+ if ( ::IsEqual( r, 1. ))
+ node->myDir[ 0 ] = tgt;
+ else if ( ::IsEqual( r, 0. ))
+ node->myDir[ 1 ] = tgt;
+ else
+ node->myDir[ 1 ] = node->myDir[ 0 ] = tgt;
+ // keep boundary nodes corresponding to boundary points
+ if ( bndIt == theBndPoints.begin() && ::IsEqual( r, 1. ))
+ if ( bndNodes.empty() || bndNodes.back() != node )
+ bndNodes.push_back( node );
+ } // loop on isolines
+ } // loop on 2 directions
prevP = point;
} // loop on boundary points
} // loop on boundaries
- // Connect XY of nodes and mark not movable nodes out of the boundary
+ // Define orientation
+ // find the point with the least X
+ double leastX = DBL_MAX;
+ TIsoNode * leftNode;
+ list < TIsoNode >::iterator nodeIt = nodes.begin();
+ for ( ; nodeIt != nodes.end(); nodeIt++ ) {
+ TIsoNode & node = *nodeIt;
+ if ( node.IsUVComputed() && node.myUV.X() < leastX ) {
+ leastX = node.myUV.X();
+ leftNode = &node;
+ }
+// if ( node.IsUVComputed() ) {
+// cout << "bndNode INIT: " << node.myInitUV.X()<<" "<<node.myInitUV.Y()<<" UV: "<<
+// node.myUV.X()<<" "<<node.myUV.Y()<<endl<<
+// " dir0: "<<node.myDir[0].X()<<" "<<node.myDir[0].Y() <<
+// " dir1: "<<node.myDir[1].X()<<" "<<node.myDir[1].Y() << endl;
+// }
+ }
+ bool reversed = ( leftNode->myDir[0].Y() + leftNode->myDir[1].Y() > 0 );
+ //SCRUTE( reversed );
+
+ // Prepare internal nodes:
+ // 1. connect nodes
+ // 2. compute ratios
+ // 3. find boundary nodes for each node
+ // 4. remove nodes out of the boundary
for ( iDir = 0; iDir < 2; iDir++ )
{
- const int iCoord = 2 - iDir;
+ const int iCoord = 2 - iDir; // coord changing along an isoline
map < double, TIsoLine >& isos = isoMap[ iDir ];
map < double, TIsoLine >::iterator isoIt = isos.begin();
for ( ; isoIt != isos.end(); isoIt++ )
{
TIsoLine & isoLine = (*isoIt).second;
bool firstCompNodeFound = false;
- TIsoLine::iterator lastCompNodePos, nPrevIt, nIt, nNextIt;
+ TIsoLine::iterator lastCompNodePos, nPrevIt, nIt, nNextIt, nIt2;
nPrevIt = nIt = nNextIt = isoLine.begin();
nIt++;
nNextIt++; nNextIt++;
while ( nIt != isoLine.end() )
{
- // connect prev - cur for internal nodes
+ // 1. connect prev - cur
TIsoNode* node = *nIt, * prevNode = *nPrevIt;
- if ( !node->IsUVComputed() )
- node->myPrevUV[ iDir ] = & prevNode->myUV;
- if ( !prevNode->IsUVComputed() )
- prevNode->myNextUV[ iDir ] = & node->myUV;
- // compute ratio
+ if ( !firstCompNodeFound && prevNode->IsUVComputed() ) {
+ firstCompNodeFound = true;
+ lastCompNodePos = nPrevIt;
+ }
+ if ( firstCompNodeFound ) {
+ node->SetNext( prevNode, iDir, 0 );
+ prevNode->SetNext( node, iDir, 1 );
+ }
+ // 2. compute ratio
if ( nNextIt != isoLine.end() ) {
double par1 = prevNode->myInitUV.Coord( iCoord );
double par2 = node->myInitUV.Coord( iCoord );
double par3 = (*nNextIt)->myInitUV.Coord( iCoord );
node->myRatio[ iDir ] = ( par2 - par1 ) / ( par3 - par1 );
- nNextIt++;
- }
- // mark not movable before the boundary
- if ( !firstCompNodeFound ) {
- if ( !prevNode->IsUVComputed() )
- prevNode->SetNotMovable();
- else
- firstCompNodeFound = true;
}
+ // 3. find boundary nodes
if ( node->IsUVComputed() )
lastCompNodePos = nIt;
+ else if ( firstCompNodeFound && nNextIt != isoLine.end() ) {
+ TIsoNode* bndNode1 = *lastCompNodePos, *bndNode2 = 0;
+ for ( nIt2 = nNextIt; nIt2 != isoLine.end(); nIt2++ )
+ if ( (*nIt2)->IsUVComputed() )
+ break;
+ if ( nIt2 != isoLine.end() ) {
+ bndNode2 = *nIt2;
+ node->SetBoundaryNode( bndNode1, iDir, 0 );
+ node->SetBoundaryNode( bndNode2, iDir, 1 );
+// cout << "--------------------------------------------------"<<endl;
+// cout << "bndNode1: " << bndNode1->myUV.X()<<" "<<bndNode1->myUV.Y()<<endl<<
+// " dir0: "<<bndNode1->myDir[0].X()<<" "<<bndNode1->myDir[0].Y() <<
+// " dir1: "<<bndNode1->myDir[1].X()<<" "<<bndNode1->myDir[1].Y() << endl;
+// cout << "bndNode2: " << bndNode2->myUV.X()<<" "<<bndNode2->myUV.Y()<<endl<<
+// " dir0: "<<bndNode2->myDir[0].X()<<" "<<bndNode2->myDir[0].Y() <<
+// " dir1: "<<bndNode2->myDir[1].X()<<" "<<bndNode2->myDir[1].Y() << endl;
+ }
+ }
nIt++; nPrevIt++;
- }
- // mark not movable after the boundary
- for ( nIt = ++lastCompNodePos; nIt != isoLine.end(); nIt++ )
- (*nIt)->SetNotMovable();
- }
- }
-
- // Compute starting UV of internal nodes by iso intersection
-
- map < double, TIsoLine >& isos = isoMap[ 0 ];
+ if ( nNextIt != isoLine.end() ) nNextIt++;
+ // 4. remove nodes out of the boundary
+ if ( !firstCompNodeFound )
+ isoLine.pop_front();
+ } // loop on isoLine nodes
+
+ // remove nodes after the boundary
+// for ( nIt = ++lastCompNodePos; nIt != isoLine.end(); nIt++ )
+// (*nIt)->SetNotMovable();
+ isoLine.erase( ++lastCompNodePos, isoLine.end() );
+ } // loop on isolines
+ } // loop on 2 directions
+
+ // Compute local isoline direction for internal nodes
+
+ /*
+ map < double, TIsoLine >& isos = isoMap[ 0 ]; // vertical isolines with const U
map < double, TIsoLine >::iterator isoIt = isos.begin();
for ( ; isoIt != isos.end(); isoIt++ )
{
for ( ; nIt != isoLine.end(); nIt++ )
{
TIsoNode* node = *nIt;
- if ( !node->IsUVComputed() && node->IsMovable() )
- if ( !compUVByIsoIntersection( theBndPoints, node->myInitUV, node->myUV ))
- node->myUV = node->myInitUV;
+ if ( node->IsUVComputed() || !node->IsMovable() )
+ continue;
+ gp_Vec2d aTgt[2], aNorm[2];
+ double ratio[2];
+ bool OK = true;
+ for ( iDir = 0; iDir < 2; iDir++ )
+ {
+ TIsoNode* bndNode1 = node->GetBoundaryNode( iDir, 0 );
+ TIsoNode* bndNode2 = node->GetBoundaryNode( iDir, 1 );
+ if ( !bndNode1 || !bndNode2 ) {
+ OK = false;
+ break;
+ }
+ const int iCoord = 2 - iDir; // coord changing along an isoline
+ double par1 = bndNode1->myInitUV.Coord( iCoord );
+ double par2 = node->myInitUV.Coord( iCoord );
+ double par3 = bndNode2->myInitUV.Coord( iCoord );
+ ratio[ iDir ] = ( par2 - par1 ) / ( par3 - par1 );
+
+ gp_Vec2d tgt1( bndNode1->myDir[0].XY() + bndNode1->myDir[1].XY() );
+ gp_Vec2d tgt2( bndNode2->myDir[0].XY() + bndNode2->myDir[1].XY() );
+ if ( bool( iDir ) == reversed ) tgt2.Reverse(); // along perpend. isoline
+ else tgt1.Reverse();
+//cout<<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" | "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
+
+ if ( ratio[ iDir ] < 0.5 )
+ aNorm[ iDir ] = gp_Vec2d( -tgt1.Y(), tgt1.X() ); // rotate tgt to the left
+ else
+ aNorm[ iDir ] = gp_Vec2d( -tgt2.Y(), tgt2.X() );
+ if ( iDir == 1 )
+ aNorm[ iDir ].Reverse(); // along iDir isoline
+
+ double angle = tgt1.Angle( tgt2 ); // [-PI, PI]
+ // maybe angle is more than |PI|
+ if ( Abs( angle ) > PI / 2. ) {
+ // check direction of the last but one perpendicular isoline
+ TIsoNode* prevNode = bndNode2->GetNext( iDir, 0 );
+ bndNode1 = prevNode->GetBoundaryNode( 1 - iDir, 0 );
+ bndNode2 = prevNode->GetBoundaryNode( 1 - iDir, 1 );
+ gp_Vec2d isoDir( bndNode1->myUV, bndNode2->myUV );
+ if ( isoDir * tgt2 < 0 )
+ isoDir.Reverse();
+ double angle2 = tgt1.Angle( isoDir );
+ //cout << " isoDir: "<< isoDir.X() <<" "<<isoDir.Y() << " ANGLE: "<< angle << " "<<angle2<<endl;
+ if (angle2 * angle < 0 && // check the sign of an angle close to PI
+ Abs ( Abs ( angle ) - PI ) <= PI / 180. ) {
+ //MESSAGE("REVERSE ANGLE");
+ angle = -angle;
+ }
+ if ( Abs( angle2 ) > Abs( angle ) ||
+ ( angle2 * angle < 0 && Abs( angle2 ) > Abs( angle - angle2 ))) {
+ //MESSAGE("Add PI");
+ // cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+ // cout <<"ISO: " << isoParam << " " << (*iso2It).first << endl;
+ // cout << "bndNode1: " << bndNode1->myUV.X()<<" "<<bndNode1->myUV.Y()<< endl;
+ // cout << "bndNode2: " << bndNode2->myUV.X()<<" "<<bndNode2->myUV.Y()<<endl;
+ // cout <<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
+ angle += ( angle < 0 ) ? 2. * PI : -2. * PI;
+ }
+ }
+ aTgt[ iDir ] = tgt1.Rotated( angle * ratio[ iDir ] ).XY();
+ } // loop on 2 dir
+
+ if ( OK ) {
+ for ( iDir = 0; iDir < 2; iDir++ )
+ {
+ aTgt[iDir].Normalize();
+ aNorm[1-iDir].Normalize();
+ double r = Abs ( ratio[iDir] - 0.5 ) * 2.0; // [0,1] - distance from the middle
+ r *= r;
+
+ node->myDir[iDir] = //aTgt[iDir];
+ aNorm[1-iDir] * r + aTgt[iDir] * ( 1. - r );
+ }
+// cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+// cout <<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" - "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
+// cout << " isoDir: "<< node->myDir[0].X() <<" "<<node->myDir[0].Y()<<" | "
+// << node->myDir[1].X() <<" "<<node->myDir[1].Y()<<endl;
+ }
+ } // loop on iso nodes
+ } // loop on isolines
+*/
+ // Find nodes to start computing UV from
+
+ list< TIsoNode* > startNodes;
+ list< TIsoNode* >::iterator nIt = bndNodes.end();
+ TIsoNode* node = *(--nIt);
+ TIsoNode* prevNode = *(--nIt);
+ for ( nIt = bndNodes.begin(); nIt != bndNodes.end(); nIt++ )
+ {
+ TIsoNode* nextNode = *nIt;
+ gp_Vec2d initTgt1( prevNode->myInitUV, node->myInitUV );
+ gp_Vec2d initTgt2( node->myInitUV, nextNode->myInitUV );
+ double initAngle = initTgt1.Angle( initTgt2 );
+ double angle = node->myDir[0].Angle( node->myDir[1] );
+ if ( reversed ) angle = -angle;
+ if ( initAngle > angle && initAngle - angle > PI / 2.1 ) {
+ // find a close internal node
+ TIsoNode* nClose = 0;
+ list< TIsoNode* > testNodes;
+ testNodes.push_back( node );
+ list< TIsoNode* >::iterator it = testNodes.begin();
+ for ( ; !nClose && it != testNodes.end(); it++ )
+ {
+ for (int i = 0; i < 4; i++ )
+ {
+ nClose = (*it)->myNext[ i ];
+ if ( nClose ) {
+ if ( !nClose->IsUVComputed() )
+ break;
+ else {
+ testNodes.push_back( nClose );
+ nClose = 0;
+ }
+ }
+ }
+ }
+ startNodes.push_back( nClose );
+// cout << "START: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<
+// node->myUV.X()<<" "<<node->myUV.Y()<<endl<<
+// "initAngle: " << initAngle << " angle: " << angle << endl;
+// cout <<" init tgt: " << initTgt1.X()<<" "<<initTgt1.Y()<<" | "<< initTgt2.X()<<" "<<initTgt2.Y()<<endl;
+// cout << " tgt: "<< node->myDir[ 0 ].X() <<" "<<node->myDir[ 0 ].Y()<<" | "<<
+// node->myDir[ 1 ].X() <<" "<<node->myDir[ 1 ].Y()<<endl;
+// cout << "CLOSE: "<<nClose->myInitUV.X()<<" "<<nClose->myInitUV.Y()<<endl;
}
+ prevNode = node;
+ node = nextNode;
}
+ // Compute starting UV of internal nodes
+
+ list < TIsoNode* > internNodes;
+ bool needIteration = true;
+ if ( startNodes.empty() ) {
+ MESSAGE( " Starting UV by compUVByIsoIntersection()");
+ needIteration = false;
+ map < double, TIsoLine >& isos = isoMap[ 0 ];
+ map < double, TIsoLine >::iterator isoIt = isos.begin();
+ for ( ; isoIt != isos.end(); isoIt++ )
+ {
+ TIsoLine & isoLine = (*isoIt).second;
+ TIsoLine::iterator nIt = isoLine.begin();
+ for ( ; !needIteration && nIt != isoLine.end(); nIt++ )
+ {
+ TIsoNode* node = *nIt;
+ if ( !node->IsUVComputed() && node->IsMovable() ) {
+ internNodes.push_back( node );
+ //bool isDeformed;
+ if ( !compUVByIsoIntersection(theBndPoints, node->myInitUV,
+ node->myUV, needIteration ))
+ node->myUV = node->myInitUV;
+ }
+ }
+ }
+ if ( needIteration )
+ for ( nIt = bndNodes.begin(); nIt != bndNodes.end(); nIt++ )
+ {
+ TIsoNode* node = *nIt, *nClose = 0;
+ list< TIsoNode* > testNodes;
+ testNodes.push_back( node );
+ list< TIsoNode* >::iterator it = testNodes.begin();
+ for ( ; !nClose && it != testNodes.end(); it++ )
+ {
+ for (int i = 0; i < 4; i++ )
+ {
+ nClose = (*it)->myNext[ i ];
+ if ( nClose ) {
+ if ( !nClose->IsUVComputed() && nClose->IsMovable() )
+ break;
+ else {
+ testNodes.push_back( nClose );
+ nClose = 0;
+ }
+ }
+ }
+ }
+ startNodes.push_back( nClose );
+ }
+ }
+
+ double aMin[2], aMax[2], step[2];
+ uvBnd.Get( aMin[0], aMin[1], aMax[0], aMax[1] );
+ double minUvSize = Min ( aMax[0]-aMin[0], aMax[1]-aMin[1] );
+ step[0] = minUvSize / paramSet[ 0 ].size() / 10;
+ step[1] = minUvSize / paramSet[ 1 ].size() / 10;
+//cout << "STEPS: " << step[0] << " " << step[1]<< endl;
+
+ for ( nIt = startNodes.begin(); nIt != startNodes.end(); nIt++ )
+ {
+ TIsoNode* prevN[2], *node = *nIt;
+ if ( node->IsUVComputed() || !node->IsMovable() )
+ continue;
+ gp_XY newUV( 0, 0 ), sumDir( 0, 0 );
+ int nbComp = 0, nbPrev = 0;
+ for ( iDir = 0; iDir < 2; iDir++ )
+ {
+ TIsoNode* prevNode1 = 0, *prevNode2 = 0;
+ TIsoNode* n = node->GetNext( iDir, 0 );
+ if ( n->IsUVComputed() )
+ prevNode1 = n;
+ else
+ startNodes.push_back( n );
+ n = node->GetNext( iDir, 1 );
+ if ( n->IsUVComputed() )
+ prevNode2 = n;
+ else
+ startNodes.push_back( n );
+ if ( !prevNode1 ) {
+ prevNode1 = prevNode2;
+ prevNode2 = 0;
+ }
+ if ( prevNode1 ) nbPrev++;
+ if ( prevNode2 ) nbPrev++;
+ if ( prevNode1 ) {
+ gp_XY dir;
+ double prevPar = prevNode1->myInitUV.Coord( 2 - iDir );
+ double par = node->myInitUV.Coord( 2 - iDir );
+ bool isEnd = ( prevPar > par );
+// dir = node->myDir[ 1 - iDir ].XY() * ( isEnd ? -1. : 1. );
+ //cout << "__________"<<endl<< "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+ TIsoNode* bndNode = node->GetBoundaryNode( iDir, isEnd );
+ gp_XY tgt( bndNode->myDir[0].XY() + bndNode->myDir[1].XY() );
+ dir.SetCoord( 1, tgt.Y() * ( reversed ? 1 : -1 ));
+ dir.SetCoord( 2, tgt.X() * ( reversed ? -1 : 1 ));
+ //cout << "bndNode UV: " << bndNode->myUV.X()<<" "<<bndNode->myUV.Y()<< endl;
+ // cout << " tgt: "<< bndNode->myDir[ 0 ].X() <<" "<<bndNode->myDir[ 0 ].Y()<<" | "<<
+ // bndNode->myDir[ 1 ].X() <<" "<<bndNode->myDir[ 1 ].Y()<<endl;
+ //cout << "prevNode UV: " << prevNode1->myUV.X()<<" "<<prevNode1->myUV.Y()<<
+ //" par: " << prevPar << endl;
+ // cout <<" tgt: " << tgt.X()<<" "<<tgt.Y()<<endl;
+ //cout << " DIR: "<< dir.X() <<" "<<dir.Y()<<endl;
+ if ( prevNode2 ) {
+ //cout << "____2next______"<<endl<< "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+ gp_XY & uv1 = prevNode1->myUV;
+ gp_XY & uv2 = prevNode2->myUV;
+// dir = ( uv2 - uv1 );
+// double len = dir.Modulus();
+// if ( len > DBL_MIN )
+// dir /= len * 0.5;
+ double r = node->myRatio[ iDir ];
+ newUV += uv1 * ( 1 - r ) + uv2 * r;
+ }
+ else {
+ newUV += prevNode1->myUV + dir * step[ iDir ];
+ }
+ sumDir += dir;
+ prevN[ iDir ] = prevNode1;
+ nbComp++;
+ }
+ }
+ newUV /= nbComp;
+ node->myUV = newUV;
+ //cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+
+ // check if a quadrangle is not distorted
+ if ( nbPrev > 1 ) {
+ //int crit = ( nbPrev == 4 ) ? FIX_OLD : CHECK_NEW_IN;
+ if ( !checkQuads( node, newUV, reversed, FIX_OLD, step[0] + step[1] )) {
+ //cout <<" newUV: " << node->myUV.X() << " "<<node->myUV.Y() << " nbPrev: "<<nbPrev<< endl;
+ // cout << "_FIX_INIT_ fixedUV: " << newUV.X() << " "<<newUV.Y() << endl;
+ node->myUV = newUV;
+ }
+ }
+ internNodes.push_back( node );
+ }
+
// Move nodes
- static int maxNbIter = 100; // -1
- //maxNbIter++;
- maxNbIter = ( maxNbIter < 0 ) ? 100 : -1;
-
+ static int maxNbIter = 100;
+#ifdef DEB_COMPUVBYELASTICISOLINES
+// maxNbIter++;
+ bool useNbMoveNode = 0;
+ static int maxNbNodeMove = 100;
+ maxNbNodeMove++;
+ int nbNodeMove = 0;
+ if ( !useNbMoveNode )
+ maxNbIter = ( maxNbIter < 0 ) ? 100 : -1;
+#endif
double maxMove;
int nbIter = 0;
do {
+ if ( !needIteration) break;
+#ifdef DEB_COMPUVBYELASTICISOLINES
if ( nbIter >= maxNbIter ) break;
+#endif
maxMove = 0.0;
- list < TIsoNode >::iterator nIt = nodes.begin();
- for ( ; nIt != nodes.end(); nIt++ ) {
- TIsoNode & node = *nIt;
- if ( node.IsMovable() )
+ list < TIsoNode* >::iterator nIt = internNodes.begin();
+ for ( ; nIt != internNodes.end(); nIt++ ) {
+#ifdef DEB_COMPUVBYELASTICISOLINES
+ if (useNbMoveNode )
+ cout << nbNodeMove <<" =================================================="<<endl;
+#endif
+ TIsoNode * node = *nIt;
+ // make lines
+ //gp_Lin2d line[2];
+ gp_XY loc[2];
+ for ( iDir = 0; iDir < 2; iDir++ )
{
- gp_Lin2d line[2];
- gp_XY location[2];
- bool lineFound = true;
- for ( iDir = 0; iDir < 2; iDir++ )
- {
- // make a line
- gp_XY uv1( *node.myPrevUV[ iDir ] ), uv2( *node.myNextUV[ iDir ] );
- gp_XY dUV( uv2 - uv1 );
- if ( dUV.SquareModulus() <= DBL_MIN * DBL_MIN ) {
- lineFound = false;
- break;
- }
- double r = node.myRatio[ iDir ];
- gp_Lin2d l( uv1, dUV );
- gp_XY loc = uv1 * ( 1 - r ) + uv2 * r;
- location[ iDir ] = loc;
- line[ iDir ] = l/*.Normal( loc )*/;
- }
- // intersect the 2 lines and move a node
- gp_XY newUV;
- if (lineFound &&
- intersectIsolines (*node.myPrevUV[0], *node.myNextUV[0], node.myRatio[0],
- *node.myPrevUV[0], *node.myNextUV[0], node.myRatio[0],
- newUV ) &&
- !uvBox.IsOut( newUV ) )
- {
- maxMove = Max( maxMove, ( newUV - node.myUV ).SquareModulus());
- node.myUV = newUV;
- }
+ gp_XY & uv1 = node->GetNext( iDir, 0 )->myUV;
+ gp_XY & uv2 = node->GetNext( iDir, 1 )->myUV;
+ double r = node->myRatio[ iDir ];
+ loc[ iDir ] = uv1 * ( 1 - r ) + uv2 * r;
+// line[ iDir ].SetLocation( loc[ iDir ] );
+// line[ iDir ].SetDirection( node->myDir[ iDir ] );
}
- }
+ // define ratio
+ double locR[2] = { 0, 0 };
+ for ( iDir = 0; iDir < 2; iDir++ )
+ {
+ const int iCoord = 2 - iDir; // coord changing along an isoline
+ TIsoNode* bndNode1 = node->GetBoundaryNode( iDir, 0 );
+ TIsoNode* bndNode2 = node->GetBoundaryNode( iDir, 1 );
+ double par1 = bndNode1->myInitUV.Coord( iCoord );
+ double par2 = node->myInitUV.Coord( iCoord );
+ double par3 = bndNode2->myInitUV.Coord( iCoord );
+ double r = ( par2 - par1 ) / ( par3 - par1 );
+ r = Abs ( r - 0.5 ) * 2.0; // [0,1] - distance from the middle
+ locR[ iDir ] = ( 1 - r * r ) * 0.25;
+ }
+ //locR[0] = locR[1] = 0.25;
+ // intersect the 2 lines and move a node
+ //IntAna2d_AnaIntersection inter( line[0], line[1] );
+ if ( /*inter.IsDone() && inter.NbPoints() ==*/ 1 )
+ {
+// double intR = 1 - locR[0] - locR[1];
+// gp_XY newUV = inter.Point(1).Value().XY();
+// if ( !checkQuads( node, newUV, reversed, CHECK_NEW_IN ))
+// newUV = ( locR[0] * loc[0] + locR[1] * loc[1] ) / ( 1 - intR );
+// else
+// newUV = intR * newUV + locR[0] * loc[0] + locR[1] * loc[1];
+ gp_XY newUV = 0.5 * ( loc[0] + loc[1] );
+ // avoid parallel isolines intersection
+ checkQuads( node, newUV, reversed );
+
+ maxMove = Max( maxMove, ( newUV - node->myUV ).SquareModulus());
+ node->myUV = newUV;
+ } // intersection found
+#ifdef DEB_COMPUVBYELASTICISOLINES
+ if (useNbMoveNode && ++nbNodeMove >= maxNbNodeMove ) break;
+#endif
+ } // loop on internal nodes
+#ifdef DEB_COMPUVBYELASTICISOLINES
+ if (useNbMoveNode && nbNodeMove >= maxNbNodeMove ) break;
+#endif
} while ( maxMove > 1e-8 && nbIter++ < maxNbIter );
MESSAGE( "compUVByElasticIsolines(): Nb iterations " << nbIter << " dist: " << sqrt( maxMove ));
+ if ( nbIter >= maxNbIter && sqrt(maxMove) > minUvSize * 0.05 ) {
+ MESSAGE( "compUVByElasticIsolines() failed: "<<sqrt(maxMove)<<">"<<minUvSize * 0.05);
+#ifndef DEB_COMPUVBYELASTICISOLINES
+ return false;
+#endif
+ }
+
// Set computed UV to points
-
+
for ( pIt = thePntToCompute.begin(); pIt != thePntToCompute.end(); pIt++ ) {
TPoint* point = *pIt;
- gp_XY oldUV = point->myUV;
+ //gp_XY oldUV = point->myUV;
double minDist = DBL_MAX;
list < TIsoNode >::iterator nIt = nodes.begin();
for ( ; nIt != nodes.end(); nIt++ ) {
list< list< TPoint* > >& theEdgesPointsList )
{
TopoDS_Face F = TopoDS::Face( myShape );
- int iE, nbEdgeInWire = (*theFromWire).size();
int iW, nbWires = 0;
TListOfEdgesList::iterator wlIt = theFromWire;
while ( wlIt++ != theToWire )
// Recompute key-point UVs by isolines intersection,
// compute CG of key-points for each wire and bnd boxes of GCs
+ bool aBool;
gp_XY orig( gp::Origin2d().XY() );
vector< gp_XY > vGcVec( nbWires, orig ), gcVec( nbWires, orig );
Bnd_Box2d bndBox, vBndBox;
{
list< TPoint* > & ePoints = getShapePoints( eID++ );
TPoint* p = ePoints.front();
- if ( !compUVByIsoIntersection( theEdgesPointsList, p->myInitUV, p->myUV )) {
+ if ( !compUVByIsoIntersection( theEdgesPointsList, p->myInitUV, p->myUV, aBool )) {
MESSAGE("cant sortSameSizeWires()");
return false;
}
{
list< TPoint* > & ePoints = getShapePoints( eID++ );
computeUVOnEdge( *eIt, ePoints );
+ edgesPoints.insert( edgesPoints.end(), ePoints.begin(), (--ePoints.end()));
}
// put wire back to theWireList
wlIt = wirePos++;
{
// compute UV of inner edge-points using the method for in-face points
// and devide eList into a list of separate wires
+ bool aBool;
list< list< TopoDS_Edge > > wireList;
list<TopoDS_Edge>::iterator eIt = elIt;
list<int>::iterator nbEIt = nbVertexInWires.begin();
pIt = ePoints.begin();
for ( pIt++; pIt != ePoints.end(); pIt++ ) {
TPoint* p = (*pIt);
- if ( !compUVByIsoIntersection( edgesPointsList, p->myInitUV, p->myUV )) {
+ if ( !compUVByIsoIntersection( edgesPointsList, p->myInitUV, p->myUV, aBool )) {
MESSAGE("cant Apply(face)");
return false;
}
if ( !loc.IsIdentity() )
aTrsf.Transforms( point->myXYZ.ChangeCoord() );
}
- }
-
- // Compute UV and XYZ of in-face points by intersection of 2 iso lines
+ }
+
+ // Compute UV and XYZ of in-face points
+ // try to use a simple algo
list< TPoint* > & fPoints = getShapePoints( face );
- for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
- {
- TPoint * point = *pIt;
- if ( !compUVByIsoIntersection( edgesPointsList, point->myInitUV, point->myUV )) {
+ bool isDeformed = false;
+ for ( pIt = fPoints.begin(); !isDeformed && pIt != fPoints.end(); pIt++ )
+ if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
+ (*pIt)->myUV, isDeformed )) {
MESSAGE("cant Apply(face)");
return false;
}
+ // try to use a complex algo if it is a difficult case
+ if ( isDeformed && !compUVByElasticIsolines( edgesPointsList, fPoints ))
+ {
+ for ( ; pIt != fPoints.end(); pIt++ ) // continue with the simple algo
+ if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
+ (*pIt)->myUV, isDeformed )) {
+ MESSAGE("cant Apply(face)");
+ return false;
+ }
}
-// compUVByElasticIsolines( edgesPointsList, fPoints );
-
Handle(Geom_Surface) aSurface = BRep_Tool::Surface( face, loc );
const gp_Trsf & aTrsf = loc.Transformation();
for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
void SMESH_Pattern::arrangeBoundaries (list< list< TPoint* > >& boundaryList)
{
- int nbBoundaries = boundaryList.size();
- if ( nbBoundaries < 2 ) return;
-
typedef list< list< TPoint* > >::iterator TListOfListIt;
TListOfListIt bndIt;
-
- // sort boundaries by nb of key-points
- if ( nbBoundaries > 2 )
- {
- // move boundaries in tmp list
- list< list< TPoint* > > tmpList;
- tmpList.splice( tmpList.begin(), boundaryList, boundaryList.begin(), boundaryList.end());
- // make a map nb-key-points to boundary-position-in-tmpList,
- // boundary-positions get ordered in it
- typedef map< int, TListOfListIt > TNbKpBndPosMap;
- TNbKpBndPosMap nbKpBndPosMap;
- bndIt = tmpList.begin();
- list< int >::iterator nbKpIt = myNbKeyPntInBoundary.begin();
- for ( ; nbKpIt != myNbKeyPntInBoundary.end(); nbKpIt++, bndIt++ ) {
- int nb = *nbKpIt * nbBoundaries;
- while ( nbKpBndPosMap.find ( nb ) != nbKpBndPosMap.end() )
- nb++;
- nbKpBndPosMap.insert( TNbKpBndPosMap::value_type( nb, bndIt ));
- }
- // move boundaries back to boundaryList
- TNbKpBndPosMap::iterator nbKpBndPosIt = nbKpBndPosMap.begin();
- for ( ; nbKpBndPosIt != nbKpBndPosMap.end(); nbKpBndPosIt++ ) {
- TListOfListIt & bndPos2 = (*nbKpBndPosIt).second;
- TListOfListIt bndPos1 = bndPos2++;
- boundaryList.splice( boundaryList.end(), tmpList, bndPos1, bndPos2 );
- }
- }
-
- // Look for the outer boundary: the one with the point with the least X
- double leastX = DBL_MAX;
list< TPoint* >::iterator pIt;
- TListOfListIt outerBndPos;
- for ( bndIt = boundaryList.begin(); bndIt != boundaryList.end(); bndIt++ )
+
+ int nbBoundaries = boundaryList.size();
+ if ( nbBoundaries > 1 )
{
- list< TPoint* >& boundary = (*bndIt);
- for ( pIt = boundary.begin(); pIt != boundary.end(); pIt++)
+ // sort boundaries by nb of key-points
+ if ( nbBoundaries > 2 )
{
- TPoint* point = *pIt;
- if ( point->myInitXYZ.X() < leastX ) {
- leastX = point->myInitXYZ.X();
- outerBndPos = bndIt;
+ // move boundaries in tmp list
+ list< list< TPoint* > > tmpList;
+ tmpList.splice( tmpList.begin(), boundaryList, boundaryList.begin(), boundaryList.end());
+ // make a map nb-key-points to boundary-position-in-tmpList,
+ // boundary-positions get ordered in it
+ typedef map< int, TListOfListIt > TNbKpBndPosMap;
+ TNbKpBndPosMap nbKpBndPosMap;
+ bndIt = tmpList.begin();
+ list< int >::iterator nbKpIt = myNbKeyPntInBoundary.begin();
+ for ( ; nbKpIt != myNbKeyPntInBoundary.end(); nbKpIt++, bndIt++ ) {
+ int nb = *nbKpIt * nbBoundaries;
+ while ( nbKpBndPosMap.find ( nb ) != nbKpBndPosMap.end() )
+ nb++;
+ nbKpBndPosMap.insert( TNbKpBndPosMap::value_type( nb, bndIt ));
+ }
+ // move boundaries back to boundaryList
+ TNbKpBndPosMap::iterator nbKpBndPosIt = nbKpBndPosMap.begin();
+ for ( ; nbKpBndPosIt != nbKpBndPosMap.end(); nbKpBndPosIt++ ) {
+ TListOfListIt & bndPos2 = (*nbKpBndPosIt).second;
+ TListOfListIt bndPos1 = bndPos2++;
+ boundaryList.splice( boundaryList.end(), tmpList, bndPos1, bndPos2 );
+ }
+ }
+
+ // Look for the outer boundary: the one with the point with the least X
+ double leastX = DBL_MAX;
+ TListOfListIt outerBndPos;
+ for ( bndIt = boundaryList.begin(); bndIt != boundaryList.end(); bndIt++ )
+ {
+ list< TPoint* >& boundary = (*bndIt);
+ for ( pIt = boundary.begin(); pIt != boundary.end(); pIt++)
+ {
+ TPoint* point = *pIt;
+ if ( point->myInitXYZ.X() < leastX ) {
+ leastX = point->myInitXYZ.X();
+ outerBndPos = bndIt;
+ }
}
}
- }
- if ( outerBndPos != boundaryList.begin() )
- boundaryList.splice( boundaryList.begin(), boundaryList, outerBndPos, ++outerBndPos );
+ if ( outerBndPos != boundaryList.begin() )
+ boundaryList.splice( boundaryList.begin(), boundaryList, outerBndPos, ++outerBndPos );
+ } // if nbBoundaries > 1
// Check boundaries orientation and re-fill myKeyPointIDs
// find points next to the point with the least X
TPoint* p = *xpIt, *pPrev, *pNext;
if ( p == boundary.front() )
- pPrev = boundary.back();
+ pPrev = *(++boundary.rbegin());
else {
xpIt--;
pPrev = *xpIt;
xpIt++;
}
if ( p == boundary.back() )
- pNext = boundary.front();
+ pNext = *(++boundary.begin());
else {
xpIt++;
pNext = *xpIt;
if ( keyPointSet.find( point ) == keyPointSet.end() ) // inside-edge point
{
edgePoints.push_back( point );
- edgeLength += ( point->myInitUV - prevP->myInitUV ).SquareModulus();
+ edgeLength += ( point->myInitUV - prevP->myInitUV ).Modulus();
point->myInitU = edgeLength;
}
else // a key-point
// treat points on the edge which ends up: compute U [0,1]
edgePoints.push_back( point );
if ( edgePoints.size() > 2 ) {
- edgeLength += ( point->myInitUV - prevP->myInitUV ).SquareModulus();
+ edgeLength += ( point->myInitUV - prevP->myInitUV ).Modulus();
list< TPoint* >::iterator epIt = edgePoints.begin();
for ( ; epIt != edgePoints.end(); epIt++ )
(*epIt)->myInitU /= edgeLength;
bool compUVByIsoIntersection (const list< list< TPoint* > >& boundaryPoints,
const gp_XY& theInitUV,
- gp_XY& theUV );
+ gp_XY& theUV,
+ bool & theIsDeformed);
// compute UV by intersection of iso-lines found by points on edges
bool compUVByElasticIsolines(const list< list< TPoint* > >& boundaryPoints,
SMESHDS_Command.cxx \
SMESHDS_SubMesh.cxx \
SMESHDS_Mesh.cxx \
- SMESHDS_Group.cxx
+ SMESHDS_GroupBase.cxx \
+ SMESHDS_Group.cxx \
+ SMESHDS_GroupOnGeom.cxx
LIB_CLIENT_IDL =
LIB_SERVER_IDL =
SMESHDS_Command.hxx \
SMESHDS_CommandType.hxx \
SMESHDS_SubMesh.hxx \
- SMESHDS_Group.hxx
+ SMESHDS_GroupBase.hxx \
+ SMESHDS_Group.hxx \
+ SMESHDS_GroupOnGeom.hxx
# additionnal information to compil and link file
CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
//
//
// File : SMESHDS_Group.cxx
-// Author : Michael Sazonov, OCC
// Module : SMESH
// $Header$
-#include <SMESHDS_Group.hxx>
-#include <SMESHDS_Mesh.hxx>
+#include "SMESHDS_Group.hxx"
+#include "SMESHDS_Mesh.hxx"
using namespace std;
SMESHDS_Group::SMESHDS_Group (const int theID,
const SMESHDS_Mesh* theMesh,
const SMDSAbs_ElementType theType)
- : SMDS_MeshGroup(theMesh,theType),
- myID(theID), myStoreName(""),
- myCurIndex(0), myCurID(0)
+ : SMESHDS_GroupBase(theID,theMesh,theType),
+ myGroup(theMesh,theType)
{
}
+//=======================================================================
+//function : Extent
+//purpose :
+//=======================================================================
+
+int SMESHDS_Group::Extent()
+{
+ return myGroup.Extent();
+}
+
+//=======================================================================
+//function : IsEmpty
+//purpose :
+//=======================================================================
+
+bool SMESHDS_Group::IsEmpty()
+{
+ return myGroup.IsEmpty();
+}
+
//=============================================================================
/*!
*
*/
//=============================================================================
-bool SMESHDS_Group::Contains (const int theID) const
+bool SMESHDS_Group::Contains (const int theID)
{
const SMDS_MeshElement* aElem = findInMesh (theID);
if (aElem)
- return SMDS_MeshGroup::Contains(aElem);
+ return myGroup.Contains(aElem);
return false;
}
bool SMESHDS_Group::Add (const int theID)
{
const SMDS_MeshElement* aElem = findInMesh (theID);
- if (!aElem || SMDS_MeshGroup::Contains(aElem))
+ if (!aElem || myGroup.Contains(aElem))
return false;
- SMDS_MeshGroup::Add (aElem);
+
+ if (myGroup.IsEmpty())
+ SetType( aElem->GetType() );
+
+ myGroup.Add (aElem);
return true;
}
bool SMESHDS_Group::Remove (const int theID)
{
const SMDS_MeshElement* aElem = findInMesh (theID);
- if (!aElem || !SMDS_MeshGroup::Contains(aElem))
+ if (!aElem || !myGroup.Contains(aElem))
return false;
- SMDS_MeshGroup::Remove (aElem);
+ myGroup.Remove (aElem);
return true;
}
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
+//=======================================================================
+//function : Clear
+//purpose :
+//=======================================================================
-int SMESHDS_Group::GetID (const int theIndex)
+void SMESHDS_Group::Clear()
{
- if (theIndex < 1 || theIndex > Extent())
- return -1;
- if (myCurIndex < 1 || myCurIndex > theIndex) {
- InitIterator();
- myCurIndex = 0;
- myCurID = -1;
- }
- while (myCurIndex < theIndex && More()) {
- myCurIndex++;
- myCurID = Next()->GetID();
- }
- return myCurID;
+ myGroup.Clear();
}
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
+// =====================
+// class MyGroupIterator
+// =====================
-const SMDS_MeshElement* SMESHDS_Group::findInMesh (const int theID) const
+class MyGroupIterator: public SMDS_ElemIterator
{
- SMDSAbs_ElementType aType = GetType();
- const SMDS_MeshElement* aElem = NULL;
- if (aType == SMDSAbs_Node) {
- aElem = GetMesh()->FindNode(theID);
- }
- else if (aType != SMDSAbs_All) {
- aElem = GetMesh()->FindElement(theID);
- if (aElem && aType != aElem->GetType())
- aElem = NULL;
+ const SMDS_MeshGroup& myGroup;
+ public:
+ MyGroupIterator(const SMDS_MeshGroup& group): myGroup(group) { myGroup.InitIterator(); }
+ bool more() { return myGroup.More(); }
+ const SMDS_MeshElement* next() { return myGroup.Next(); }
+};
+
+//=======================================================================
+//function : GetElements
+//purpose :
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMESHDS_Group::GetElements()
+{
+ return SMDS_ElemIteratorPtr( new MyGroupIterator ( myGroup ));
+}
+
+//=======================================================================
+//function : SetType
+//purpose :
+//=======================================================================
+
+void SMESHDS_Group::SetType(SMDSAbs_ElementType theType)
+{
+ if ( myGroup.IsEmpty() || GetType() == SMDSAbs_All ) {
+ SMESHDS_GroupBase::SetType( theType );
+ myGroup.SetType ( theType );
}
- return aElem;
+ else
+ SMESHDS_GroupBase::SetType( myGroup.GetType() );
}
+
//
//
// File : SMESHDS_Group.hxx
-// Author : Michael Sazonov (OCC)
// Module : SMESH
// $Header$
#ifndef _SMESHDS_Group_HeaderFile
#define _SMESHDS_Group_HeaderFile
-#include <SMDS_MeshGroup.hxx>
#include <string>
+#include "SMESHDS_GroupBase.hxx"
+#include "SMDS_MeshGroup.hxx"
class SMESHDS_Mesh;
-class SMESHDS_Group : public SMDS_MeshGroup
+class SMESHDS_Group : public SMESHDS_GroupBase
{
public:
const SMESHDS_Mesh* theMesh,
const SMDSAbs_ElementType theType);
- int GetID() const { return myID; }
+ virtual void SetType(SMDSAbs_ElementType theType);
- void SetStoreName (const char* theName)
- { myStoreName = theName; }
+ virtual int Extent();
- const char* GetStoreName () const
- { return myStoreName.c_str(); }
+ virtual bool IsEmpty();
- bool Contains (const int theID) const;
+ virtual bool Contains (const int theID);
- bool Add (const int theID);
- bool Remove (const int theID);
+ virtual SMDS_ElemIteratorPtr GetElements();
- int GetID (const int theIndex);
- // use it for iterations 1..Extent() as alternative to parent's
- // InitIterator(), More(), Next()
+ bool SMESHDS_Group::Add (const int theID);
- private:
- SMESHDS_Group (const SMESHDS_Group& theOther);
- // prohibited copy constructor
- SMESHDS_Group& operator = (const SMESHDS_Group& theOther);
- // prohibited assign operator
+ bool SMESHDS_Group::Remove (const int theID);
+
+ void Clear();
- const SMDS_MeshElement* findInMesh (const int theID) const;
+ SMDS_MeshGroup& SMDSGroup() { return myGroup; }
+
+ private:
- int myID;
- std::string myStoreName;
- int myCurIndex;
- int myCurID;
+ SMDS_MeshGroup myGroup;
};
--- /dev/null
+// SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
+//
+// Copyright (C) 2004 CEA
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESHDS_Group.cxx
+// Module : SMESH
+// $Header$
+
+#include "SMESHDS_GroupBase.hxx"
+#include "SMESHDS_Mesh.hxx"
+
+#include "utilities.h"
+
+using namespace std;
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+SMESHDS_GroupBase::SMESHDS_GroupBase (const int theID,
+ const SMESHDS_Mesh* theMesh,
+ const SMDSAbs_ElementType theType):
+ myID(theID), myMesh(theMesh), myType(theType), myStoreName(""),
+ myCurIndex(0), myCurID(0)
+{
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+int SMESHDS_GroupBase::GetID (const int theIndex)
+{
+ if (myCurIndex < 1 || myCurIndex > theIndex) {
+ myIterator = GetElements();
+ myCurIndex = 0;
+ myCurID = -1;
+ }
+ while (myCurIndex < theIndex && myIterator->more()) {
+ myCurIndex++;
+ myCurID = myIterator->next()->GetID();
+ }
+ return myCurIndex == theIndex ? myCurID : -1;
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+const SMDS_MeshElement* SMESHDS_GroupBase::findInMesh (const int theID) const
+{
+ SMDSAbs_ElementType aType = GetType();
+ const SMDS_MeshElement* aElem = NULL;
+ if (aType == SMDSAbs_Node) {
+ aElem = GetMesh()->FindNode(theID);
+ }
+ else if (aType != SMDSAbs_All) {
+ aElem = GetMesh()->FindElement(theID);
+ if (aElem && aType != aElem->GetType())
+ aElem = NULL;
+ }
+ return aElem;
+}
+
+//=======================================================================
+//function : Extent
+//purpose :
+//=======================================================================
+
+int SMESHDS_GroupBase::Extent()
+{
+ SMDS_ElemIteratorPtr it = GetElements();
+ int nb = 0;
+ if ( it )
+ for ( ; it->more(); it->next() )
+ nb++;
+ return nb;
+}
+
+//=======================================================================
+//function : IsEmpty
+//purpose :
+//=======================================================================
+
+bool SMESHDS_GroupBase::IsEmpty()
+{
+ SMDS_ElemIteratorPtr it = GetElements();
+ return ( !it || !it->more() );
+}
+
+//=======================================================================
+//function : Contains
+//purpose :
+//=======================================================================
+
+bool SMESHDS_GroupBase::Contains (const int theID)
+{
+ SMDS_ElemIteratorPtr it = GetElements();
+ bool contains = false;
+ if ( it )
+ while ( !contains && it->more() )
+ contains = ( it->next()->GetID() == theID );
+ return contains;
+}
+
+//=======================================================================
+//function : SetType
+//purpose :
+//=======================================================================
+
+void SMESHDS_GroupBase::SetType(SMDSAbs_ElementType theType)
+{
+ myType = theType;
+}
--- /dev/null
+// SMESH SMESHDS : management of mesh data and SMESH document
+//
+// Copyright (C) 2004 CEA
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESHDS_Group.hxx
+// Module : SMESH
+// $Header$
+
+#ifndef _SMESHDS_GroupBase_HeaderFile
+#define _SMESHDS_GroupBase_HeaderFile
+
+#include <string>
+#include "SMDSAbs_ElementType.hxx"
+#include "SMDS_MeshElement.hxx"
+
+class SMESHDS_Mesh;
+
+class SMESHDS_GroupBase
+{
+ public:
+
+ SMESHDS_GroupBase (const int theID,
+ const SMESHDS_Mesh* theMesh,
+ const SMDSAbs_ElementType theType);
+
+ int GetID() const { return myID; }
+
+ const SMESHDS_Mesh* GetMesh() const { return myMesh; }
+
+ virtual void SetType(SMDSAbs_ElementType theType);
+
+ SMDSAbs_ElementType GetType() const { return myType; }
+
+ void SetStoreName (const char* theName) { myStoreName = theName; }
+
+ const char* GetStoreName () const { return myStoreName.c_str(); }
+
+ virtual int Extent();
+
+ virtual bool IsEmpty();
+
+ virtual bool Contains (const int theID);
+
+ virtual SMDS_ElemIteratorPtr GetElements() = 0;
+
+ int GetID (const int theIndex);
+ // use it for iterations 1..Extent()
+
+ virtual ~SMESHDS_GroupBase() {}
+
+ protected:
+ const SMDS_MeshElement* findInMesh (const int theID) const;
+
+ private:
+ SMESHDS_GroupBase (const SMESHDS_GroupBase& theOther);
+ // prohibited copy constructor
+ SMESHDS_GroupBase& operator = (const SMESHDS_GroupBase& theOther);
+ // prohibited assign operator
+
+ int myID;
+ const SMESHDS_Mesh* myMesh;
+ SMDSAbs_ElementType myType;
+ std::string myStoreName;
+ // for GetID()
+ int myCurIndex;
+ int myCurID;
+ SMDS_ElemIteratorPtr myIterator;
+
+};
+
+#endif
--- /dev/null
+// SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
+//
+// Copyright (C) 2004 CEA
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESHDS_GroupOnGeom.cxx
+// Module : SMESH
+// $Header$
+
+#include "SMESHDS_GroupOnGeom.hxx"
+#include "SMESHDS_Mesh.hxx"
+#include "utilities.h"
+
+using namespace std;
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+SMESHDS_GroupOnGeom::SMESHDS_GroupOnGeom (const int theID,
+ const SMESHDS_Mesh* theMesh,
+ const SMDSAbs_ElementType theType,
+ const TopoDS_Shape& theShape)
+ : SMESHDS_GroupBase(theID,theMesh,theType), myShape(theShape)
+{
+ SMESHDS_Mesh* aMesh = const_cast<SMESHDS_Mesh*>(theMesh);
+ mySubMesh = aMesh->MeshElements( aMesh->AddCompoundSubmesh( theShape ));
+}
+
+// =====================
+// class MyGroupIterator
+// =====================
+
+class MyIterator: public SMDS_ElemIterator
+{
+ SMDSAbs_ElementType myType;
+ SMDS_ElemIteratorPtr myElemIt;
+ SMDS_NodeIteratorPtr myNodeIt;
+ const SMDS_MeshElement* myElem;
+ public:
+ MyIterator(SMDSAbs_ElementType type, const SMESHDS_SubMesh* subMesh)
+ : myType(type), myElem(0)
+ {
+ if ( subMesh )
+ if ( myType == SMDSAbs_Node )
+ myNodeIt = subMesh->GetNodes();
+ else {
+ myElemIt = subMesh->GetElements();
+ next();
+ }
+ }
+ bool more()
+ {
+ if ( myType == SMDSAbs_Node && myNodeIt )
+ return myNodeIt->more();
+ return ( myElem != 0 );
+ }
+ const SMDS_MeshElement* next()
+ {
+ if ( myType == SMDSAbs_Node && myNodeIt )
+ return myNodeIt->next();
+ const SMDS_MeshElement* res = myElem;
+ myElem = 0;
+ while ( myElemIt && myElemIt->more() ) {
+ myElem = myElemIt->next();
+ if ( myElem && myElem->GetType() == myType )
+ break;
+ else
+ myElem = 0;
+ }
+ return res;
+ }
+};
+
+//=======================================================================
+//function : GetElements
+//purpose :
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMESHDS_GroupOnGeom::GetElements()
+{
+ return SMDS_ElemIteratorPtr( new MyIterator ( GetType(), mySubMesh ));
+}
+
+//=======================================================================
+//function : Contains
+//purpose :
+//=======================================================================
+
+bool SMESHDS_GroupOnGeom::Contains (const int theID)
+{
+ return mySubMesh->Contains( findInMesh( theID ));
+}
--- /dev/null
+// SMESH SMESHDS : management of mesh data and SMESH document
+//
+// Copyright (C) 2004 CEA
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESHDS_GroupOnGeom.hxx
+// Module : SMESH
+// $Header$
+
+#ifndef _SMESHDS_GroupOnGeom_HeaderFile
+#define _SMESHDS_GroupOnGeom_HeaderFile
+
+#include "SMESHDS_GroupBase.hxx"
+#include <TopoDS_Shape.hxx>
+
+class SMESHDS_SubMesh;
+
+class SMESHDS_GroupOnGeom: public SMESHDS_GroupBase
+{
+ public:
+
+ SMESHDS_GroupOnGeom (const int theID,
+ const SMESHDS_Mesh* theMesh,
+ const SMDSAbs_ElementType theType,
+ const TopoDS_Shape& theShape);
+
+ TopoDS_Shape GetShape() const { return myShape; }
+
+ virtual bool Contains (const int theID);
+
+ virtual SMDS_ElemIteratorPtr GetElements();
+
+ private:
+
+ TopoDS_Shape myShape;
+ const SMESHDS_SubMesh* mySubMesh;
+};
+
+#endif
//=======================================================================
static void removeFromContainers (map<int,SMESHDS_SubMesh*> & theSubMeshes,
- set<SMESHDS_Group*>& theGroups,
+ set<SMESHDS_GroupBase*>& theGroups,
list<const SMDS_MeshElement *> & theElems,
const bool isNode)
{
// Element can belong to several groups
if ( !theGroups.empty() )
{
- set<SMESHDS_Group*>::iterator GrIt = theGroups.begin();
+ set<SMESHDS_GroupBase*>::iterator GrIt = theGroups.begin();
for ( ; GrIt != theGroups.end(); GrIt++ )
{
- SMESHDS_Group* group = *GrIt;
- if ( group->IsEmpty() ) continue;
+ SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *GrIt );
+ if ( !group || group->IsEmpty() ) continue;
list<const SMDS_MeshElement *>::iterator elIt = theElems.begin();
for ( ; elIt != theElems.end(); elIt++ )
{
- (*GrIt)->SMDS_MeshGroup::Remove( *elIt );
+ group->SMDSGroup().Remove( *elIt );
if ( group->IsEmpty() ) break;
}
}
//=======================================================================
//function : IsGroupOfSubShapes
-//purpose :
+//purpose : return true if at least one subshape of theShape is a subshape
+// of myShape or theShape == myShape
//=======================================================================
-bool SMESHDS_Mesh::IsGroupOfSubShapes (const TopoDS_Shape& aSubShape) const
+bool SMESHDS_Mesh::IsGroupOfSubShapes (const TopoDS_Shape& theShape) const
{
- if ( aSubShape.ShapeType() != TopAbs_COMPOUND || myShape.IsSame( aSubShape ))
- return false;
+ if ( myShape.IsSame( theShape ))
+ return true;
- for ( TopoDS_Iterator it( aSubShape ); it.More(); it.Next() )
- if ( !myIndexToShape.Contains( it.Value() ))
- return false;
-
- return true;
+ for ( TopoDS_Iterator it( theShape ); it.More(); it.Next() ) {
+ if (myIndexToShape.Contains( it.Value() ) ||
+ IsGroupOfSubShapes( it.Value() ))
+ return true;
+ }
+
+ return false;
}
///////////////////////////////////////////////////////////////////////////////
//function : NewSubMesh
//purpose :
//=======================================================================
-void SMESHDS_Mesh::NewSubMesh(int Index)
+SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
{
- if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
- {
- SMESHDS_SubMesh* SM = new SMESHDS_SubMesh();
- myShapeIndexToSubMesh[Index]=SM;
- }
+ SMESHDS_SubMesh* SM = 0;
+ if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
+ {
+ SM = new SMESHDS_SubMesh();
+ myShapeIndexToSubMesh[Index]=SM;
+ }
+ else
+ SM = myShapeIndexToSubMesh[Index];
+ return SM;
+}
+
+//=======================================================================
+//function : AddCompoundSubmesh
+//purpose :
+//=======================================================================
+
+int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
+ TopAbs_ShapeEnum type)
+{
+ int aMainIndex = 0;
+ if ( IsGroupOfSubShapes( S ))
+ {
+ aMainIndex = myIndexToShape.Add( S );
+ bool all = ( type == TopAbs_SHAPE );
+ if ( all ) // corresponding simple submesh may exist
+ aMainIndex = -aMainIndex;
+ //MESSAGE("AddCompoundSubmesh index = " << aMainIndex );
+ SMESHDS_SubMesh * aNewSub = NewSubMesh( aMainIndex );
+ if ( !aNewSub->IsComplexSubmesh() ) // is empty
+ {
+ int shapeType = all ? myShape.ShapeType() : type;
+ int typeLimit = all ? TopAbs_VERTEX : type;
+ for ( ; shapeType <= typeLimit; shapeType++ )
+ {
+ TopExp_Explorer exp( S, TopAbs_ShapeEnum( shapeType ));
+ for ( ; exp.More(); exp.Next() )
+ {
+ int index = myIndexToShape.FindIndex( exp.Current() );
+ if ( index )
+ aNewSub->AddSubMesh( NewSubMesh( index ));
+ }
+ }
+ }
+ }
+ return aMainIndex;
}
//=======================================================================
MESSAGE("myShape is NULL");
int index = myIndexToShape.FindIndex(S);
- if ( index == 0 && IsGroupOfSubShapes( S ))
- {
- index = myIndexToShape.Add( S );
- SMESHDS_SubMesh* aSubMesh = new SMESHDS_SubMesh;
- myShapeIndexToSubMesh[index] = aSubMesh;
-
- for ( TopoDS_Iterator it( S ); it.More(); it.Next() )
- {
- int subIndex = myIndexToShape.FindIndex( it.Value() );
- NewSubMesh( subIndex );
- aSubMesh->AddSubMesh( MeshElements( subIndex ));
- }
- }
return index;
}
namespace gstd = std;
#endif
-class SMESHDS_Group;
+class SMESHDS_GroupBase;
class SMESHDS_Mesh:public SMDS_Mesh{
public:
int ShapeToIndex(const TopoDS_Shape & aShape);
TopoDS_Shape IndexToShape(int ShapeIndex);
- void NewSubMesh(int Index);
+ SMESHDS_SubMesh * NewSubMesh(int Index);
+ int AddCompoundSubmesh(const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
void SetNodeInVolume(const SMDS_MeshNode * aNode, int Index);
void SetNodeOnFace(SMDS_MeshNode * aNode, int Index);
void SetNodeOnEdge(SMDS_MeshNode * aNode, int Index);
void SetNodeOnVertex(SMDS_MeshNode * aNode, int Index);
void SetMeshElementOnShape(const SMDS_MeshElement * anElt, int Index);
- void AddGroup (SMESHDS_Group* theGroup) { myGroups.insert(theGroup); }
- void RemoveGroup (SMESHDS_Group* theGroup) { myGroups.erase(theGroup); }
+ void AddGroup (SMESHDS_GroupBase* theGroup) { myGroups.insert(theGroup); }
+ void RemoveGroup (SMESHDS_GroupBase* theGroup) { myGroups.erase(theGroup); }
int GetNbGroups() const { return myGroups.size(); }
- const set<SMESHDS_Group*>& GetGroups() const { return myGroups; }
+ const set<SMESHDS_GroupBase*>& GetGroups() const { return myGroups; }
bool IsGroupOfSubShapes (const TopoDS_Shape& aSubShape) const;
TopoDS_Shape myShape;
TopTools_IndexedMapOfShape myIndexToShape;
map<int,SMESHDS_SubMesh*> myShapeIndexToSubMesh;
- set<SMESHDS_Group*> myGroups;
+ set<SMESHDS_GroupBase*> myGroups;
SMESHDS_Script* myScript;
};
//=======================================================================
void SMESHDS_SubMesh::AddElement(const SMDS_MeshElement * ME)
{
- myElements.insert(ME);
+ if ( !IsComplexSubmesh() )
+ myElements.insert(ME);
}
//=======================================================================
//=======================================================================
bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * ME)
{
- if ( NbElements() )
+ if ( !IsComplexSubmesh() && NbElements() )
return myElements.erase(ME);
return false;
//=======================================================================
void SMESHDS_SubMesh::AddNode(const SMDS_MeshNode * N)
{
- myNodes.insert(N);
+ if ( !IsComplexSubmesh() )
+ myNodes.insert(N);
}
//=======================================================================
bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N)
{
- if ( NbNodes() )
+ if ( !IsComplexSubmesh() && NbNodes() )
return myNodes.erase(N);
return false;
//=======================================================================
int SMESHDS_SubMesh::NbElements() const
{
- if ( mySubMeshes.empty() )
+ if ( !IsComplexSubmesh() )
return myElements.size();
int nbElems = 0;
int SMESHDS_SubMesh::NbNodes() const
{
- if ( mySubMeshes.empty() )
+ if ( !IsComplexSubmesh() )
return myNodes.size();
int nbElems = 0;
{
public:
MyIterator (const set<const SMESHDS_SubMesh*>& theSubMeshes)
- : mySubMeshes( theSubMeshes ), mySubIt( theSubMeshes.begin() ) {}
+ : mySubMeshes( theSubMeshes ), mySubIt( theSubMeshes.begin() ), myMore(false)
+ {}
bool more()
{
while (( !myElemIt.get() || !myElemIt->more() ) &&
myElemIt = getElements(*mySubIt);
mySubIt++;
}
- return myElemIt.get() && myElemIt->more();
+ myMore = myElemIt.get() && myElemIt->more();
+ return myMore;
}
VALUE next()
{
- if ( more() )
- return myElemIt->next();
- return 0;
+ VALUE elem = 0;
+ if ( myMore )
+ elem = myElemIt->next();
+ return elem;
}
protected:
virtual boost::shared_ptr< SMDS_Iterator<VALUE> >
getElements(const SMESHDS_SubMesh*) const = 0;
private:
+ bool myMore;
const set<const SMESHDS_SubMesh*>& mySubMeshes;
set<const SMESHDS_SubMesh*>::const_iterator mySubIt;
boost::shared_ptr< SMDS_Iterator<VALUE> > myElemIt;
SMDS_ElemIteratorPtr SMESHDS_SubMesh::GetElements() const
{
- if ( mySubMeshes.empty() )
- return SMDS_ElemIteratorPtr(new MySetIterator<SMDS_MeshElement>(myElements));
+ if ( IsComplexSubmesh() )
+ return SMDS_ElemIteratorPtr( new MyElemIterator( mySubMeshes ));
- return SMDS_ElemIteratorPtr( new MyElemIterator( mySubMeshes ));
+ return SMDS_ElemIteratorPtr(new MySetIterator<SMDS_MeshElement>(myElements));
}
//=======================================================================
SMDS_NodeIteratorPtr SMESHDS_SubMesh::GetNodes() const
{
- if ( mySubMeshes.empty() )
- return SMDS_NodeIteratorPtr(new MySetIterator<SMDS_MeshNode>(myNodes));
+ if ( IsComplexSubmesh() )
+ return SMDS_NodeIteratorPtr( new MyNodeIterator( mySubMeshes ));
- return SMDS_NodeIteratorPtr( new MyNodeIterator( mySubMeshes ));
+ return SMDS_NodeIteratorPtr(new MySetIterator<SMDS_MeshNode>(myNodes));
}
//=======================================================================
//purpose : check if elem or node is in
//=======================================================================
-bool SMESHDS_SubMesh::Contains(const SMDS_MeshElement * ME)
+bool SMESHDS_SubMesh::Contains(const SMDS_MeshElement * ME) const
{
+ // DO NOT TRY TO FIND A REMOVED ELEMENT !!
if ( !ME )
return false;
- // DO NOT TRY TO FIND A REMOVED ELEMENT !!
- if ( ME->GetType() == SMDSAbs_Node ) {
+ if ( IsComplexSubmesh() )
+ {
+ set<const SMESHDS_SubMesh*>::const_iterator aSubIt = mySubMeshes.begin();
+ for ( ; aSubIt != mySubMeshes.end(); aSubIt++ )
+ if ( (*aSubIt)->Contains( ME ))
+ return true;
+ return false;
+ }
+
+ if ( ME->GetType() == SMDSAbs_Node )
+ {
const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( ME );
return ( myNodes.find( n ) != myNodes.end() );
}
class SMESHDS_SubMesh
{
public:
+
+ bool IsComplexSubmesh() const { return !mySubMeshes.empty(); }
+
+ // if !IsComplexSubmesh()
void AddElement(const SMDS_MeshElement * ME);
bool RemoveElement(const SMDS_MeshElement * ME); // ret true if ME was in
void AddNode(const SMDS_MeshNode * ME);
bool RemoveNode(const SMDS_MeshNode * ME); // ret true if ME was in
- bool Contains(const SMDS_MeshElement * ME); // check if elem or node is in
+ // if IsComplexSubmesh()
+ void AddSubMesh( const SMESHDS_SubMesh* theSubMesh );
+ bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh );
+ bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const;
+
+ // for both types
int NbElements() const;
SMDS_ElemIteratorPtr GetElements() const;
int NbNodes() const;
SMDS_NodeIteratorPtr GetNodes() const;
-
- // child sub-meshes
- void AddSubMesh( const SMESHDS_SubMesh* theSubMesh );
- bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh );
- bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const;
+ bool Contains(const SMDS_MeshElement * ME) const; // check if elem or node is in
private:
//const SMDS_Mesh * myMesh;
LIB = libSMESHFiltersSelection.la
LIB_SRC = SMESH_TypeFilter.cxx \
- SMESH_NumberFilter.cxx
+ SMESH_NumberFilter.cxx \
+ SMESH_LogicalFilter.cxx
LIB_CLIENT_IDL = SALOME_Exception.idl \
GEOM_Gen.idl \
EXPORT_HEADERS= SMESH_Type.h \
SMESH_TypeFilter.hxx \
Handle_SMESH_TypeFilter.hxx \
- SMESH_NumberFilter.hxx
+ SMESH_NumberFilter.hxx \
+ SMESH_LogicalFilter.hxx
# additionnal information to compil and link file
CPPFLAGS += $(OCC_INCLUDES) $(QT_INCLUDES) $(PYTHON_INCLUDES) $(VTK_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
--- /dev/null
+// SALOME SALOMEGUI : implementation of desktop and GUI kernel
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_LogicalFilter.cxx
+// Author : Sergey LITONIN
+// Module : SMESH
+
+#include "SMESH_LogicalFilter.hxx"
+
+/*
+ Class : SMESH_LogicalFilter
+ Description : Filter for combaining several filters with logical operation (OR or AND)
+*/
+
+IMPLEMENT_STANDARD_HANDLE( SMESH_LogicalFilter, SALOME_Filter )
+IMPLEMENT_STANDARD_RTTIEXT( SMESH_LogicalFilter, SALOME_Filter )
+
+//=======================================================================
+// name : SMESH_LogicalFilter::SMESH_LogicalFilter
+// Purpose : Constructor
+//=======================================================================
+SMESH_LogicalFilter::SMESH_LogicalFilter( const SMESH_ListOfFilter& theFilters,
+ const int theLogOp )
+{
+ myFilters = theFilters;
+ myLogOp = theLogOp;
+}
+
+//=======================================================================
+// name : SMESH_LogicalFilter::~SMESH_LogicalFilter
+// Purpose : Destructor
+//=======================================================================
+SMESH_LogicalFilter::~SMESH_LogicalFilter()
+{
+}
+
+//=======================================================================
+// name : SMESH_LogicalFilter::IsOk
+// Purpose : Verify validity of entry object
+//=======================================================================
+Standard_Boolean SMESH_LogicalFilter::IsOk( const Handle(SALOME_InteractiveObject)& theIO ) const
+{
+ SMESH_ListOfFilter::Iterator anIter( myFilters );
+ for ( ; anIter.More(); anIter.Next() )
+ {
+ Handle(SALOME_Filter) aFilter = anIter.Value();
+ if ( !aFilter.IsNull() )
+ {
+ if ( myLogOp == LO_OR && anIter.Value()->IsOk( theIO ) )
+ return true;
+ if ( myLogOp == LO_AND && !anIter.Value()->IsOk( theIO ) )
+ return false;
+ }
+ }
+
+ return myLogOp == LO_OR ? false : true;
+}
+
+//=======================================================================
+// name : SMESH_LogicalFilter::SetFilters
+// Purpose : Set new list of filters. Old wilters are removed
+//=======================================================================
+void SMESH_LogicalFilter::SetFilters( const SMESH_ListOfFilter& theFilters )
+{
+ myFilters = theFilters;
+}
+
+//=======================================================================
+// name : SMESH_LogicalFilter::SetLogOp
+// Purpose : Set logical operation
+//=======================================================================
+void SMESH_LogicalFilter::SetLogOp( const int theLogOp )
+{
+ myLogOp = theLogOp;
+}
+
+//=======================================================================
+// name : SMESH_LogicalFilter::GetFilters
+// Purpose : Get list of filters
+//=======================================================================
+const SMESH_ListOfFilter& SMESH_LogicalFilter::GetFilters() const
+{
+ return myFilters;
+}
+
+//=======================================================================
+// name : SMESH_LogicalFilter::GetLogOp
+// Purpose : Get logical operation
+//=======================================================================
+int SMESH_LogicalFilter::GetLogOp() const
+{
+ return myLogOp;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+// SALOME SALOMEGUI : implementation of desktop and GUI kernel
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SMESH_LogicalFilter.hxx
+// Author : Sergey LITONIN
+// Module : SMESH
+
+#ifndef _SMESH_LogicalFilter_HeaderFile
+#define _SMESH_LogicalFilter_HeaderFile
+
+#include "SALOME_Filter.hxx"
+
+#include <Standard_DefineHandle.hxx>
+#include <NCollection_StdBase.hxx>
+#include <NCollection_DefineList.hxx>
+
+DEFINE_STANDARD_HANDLE( SMESH_LogicalFilter, SALOME_Filter )
+
+DEFINE_BASECOLLECTION( SMESH_FilterColl, Handle(SALOME_Filter) )
+DEFINE_LIST( SMESH_ListOfFilter, SMESH_FilterColl, Handle(SALOME_Filter) )
+
+
+/*
+ Class : SMESH_LogicalFilter
+ Description : Filter for combaining several filters with logical operation (OR or AND)
+*/
+
+class SMESH_LogicalFilter : public SALOME_Filter
+{
+public:
+
+ enum { LO_OR, LO_AND, LO_UNDEFINED };
+
+public:
+
+ SMESH_LogicalFilter( const SMESH_ListOfFilter&, const int );
+
+
+ virtual ~SMESH_LogicalFilter();
+ virtual Standard_Boolean IsOk( const Handle(SALOME_InteractiveObject)& ) const;
+
+ void SetFilters( const SMESH_ListOfFilter& );
+ void SetLogOp( const int );
+ const SMESH_ListOfFilter& GetFilters() const;
+ int GetLogOp() const;
+
+private:
+
+ SMESH_ListOfFilter myFilters;
+ int myLogOp;
+
+public:
+ DEFINE_STANDARD_RTTI( SMESH_LogicalFilter )
+};
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
MED.idl \
SMESH_Filter.idl \
SMESH_Pattern.idl \
- SALOME_GenericObj.idl
+ SALOME_GenericObj.idl \
+ SALOME_Comm.idl
LIB_SERVER_IDL =
// Remove object(s) from data structures
SALOMEDS::SObject_var obj = aStudy->FindObjectID(IObject->getEntry());
if(!obj->_is_nil()){
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group ::_narrow(obj->GetObject());
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(obj->GetObject());
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(obj->GetObject());
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(obj->GetObject());
if ( !aGroup->_is_nil() ) { // DELETE GROUP
SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
{
if(checkLock(aStudy)) break;
EmitSignalDeactivateDialog();
+ SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil();
SALOME_Selection *Sel = SALOME_Selection::Selection(myActiveStudy->getSelection());
int nbSel = Sel->IObjectCount();
if (nbSel == 1) {
// check if mesh is selected
- SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(Sel->firstIObject());
- if (!aMesh->_is_nil()) {
- SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, aMesh);
- aDlg->show();
- }
+ aMesh = SMESH::GetMeshByIO(Sel->firstIObject());
}
+ SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, aMesh);
+ aDlg->show();
break;
}
SALOME_Selection *Sel = SALOME_Selection::Selection(myActiveStudy->getSelection());
SALOME_ListIO IOs; IOs = Sel->StoredIObjects(); // list copy
SALOME_ListIteratorOfListIO It (IOs);
+ int nbSelectedGroups = 0;
for ( ; It.More(); It.Next() )
{
SMESH::SMESH_Group_var aGroup =
SMESH::IObjectToInterface<SMESH::SMESH_Group>(It.Value());
if (!aGroup->_is_nil()) {
+ nbSelectedGroups++;
SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, aGroup);
aDlg->show();
}
}
+ if (nbSelectedGroups == 0)
+ {
+ SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, SMESH::SMESH_Group::_nil());
+ aDlg->show();
+ }
break;
}
myActiveStudy->renameIObject( IObject, newName );
// if current object is group update group's name
- SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IObject);
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IObject);
if (!aGroup->_is_nil() )
aGroup->SetName( newName.latin1() );
}
SALOMEDS::SObject_var SO = aStudy->FindObjectID( Sel->firstIObject()->getEntry() );
if ( !SO->_is_nil() ) {
CORBA::Object_var aObject = SO->GetObject();
- SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( aObject );
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( aObject );
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aObject );
+ SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( aObject );
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( aObject );
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( aObject );
if ( !aMesh->_is_nil() || !aSubMesh->_is_nil() || !aGroup->_is_nil() ) {
::Control( theCommandID );
break;
popup->removeItem( 705 ); // Edit hypothesis
popup->removeItem( 706 ); // ...
}
+ SMESH::SMESH_GroupOnGeom_var aGeomGroup =
+ SMESH::SMESH_GroupOnGeom::_narrow( SO->GetObject() );
+ if ( !aGeomGroup->_is_nil() ) // group linked on geometry
+ popup->removeItem( 803 ); // EDIT GROUP
+
SMESH_Actor* ac = SMESH::FindActorByEntry(IObject->getEntry());
// if object has actor
if ( ac && studyFrame->getTypeView() == VIEW_VTK ) {
SMESH::SMESH_subMesh_var aSubMeshObj = SMESH::SMESH_subMesh::_narrow( anObject );
if ( !aSubMeshObj->_is_nil() && ( aSubMeshObj->GetNumberOfNodes(false) > 0 || aSubMeshObj->GetNumberOfElements() > 0 ) )
bDisplay = true;
- SMESH::SMESH_Group_var aGroupObj = SMESH::SMESH_Group::_narrow( anObject );
+ SMESH::SMESH_GroupBase_var aGroupObj = SMESH::SMESH_GroupBase::_narrow( anObject );
if ( !aGroupObj->_is_nil() && aGroupObj->Size() > 0 )
bDisplay = true;
}
* Purpose: ensures that the actor for the given <theIO> exists in the active VTK view
*/
//=============================================================================
-void SMESHGUI::BuildPresentation(const Handle(SALOME_InteractiveObject) & theIO)
+void SMESHGUI::BuildPresentation( const Handle(SALOME_InteractiveObject) & theIO,
+ QAD_ViewFrame* )
{
if(theIO->hasEntry()){
QAD_Study* aStudy = SMESHGUI::GetSMESHGUI()->GetActiveStudy();
virtual void DefinePopup ( QString & theContext, QString & theParent, QString & theObject );
virtual bool CustomPopup ( QAD_Desktop* parent, QPopupMenu* popup, const QString & theContext,
const QString & theParent, const QString & theObject );
- virtual void BuildPresentation ( const Handle(SALOME_InteractiveObject)& theIO );
+ virtual void BuildPresentation ( const Handle(SALOME_InteractiveObject)& theIO,
+ QAD_ViewFrame* = 0 );
virtual void SupportedViewType (int* buffer, int bufferSize);
virtual void Deactivate ();
#include "SMESHGUI_GEOMGenUtils.h"
#include "SMESHGUI_HypothesesUtils.h"
+#include "GEOMBase.h"
+
#include "QAD_Application.h"
#include "QAD_Desktop.h"
#include "QAD_MessageBox.h"
else {
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO) ;
- if( myGeomShape->_is_nil() ) {
- aString = "";
+ if( myGeomShape->_is_nil() || !GEOMBase::IsShape( myGeomShape ) )
+ {
+ myGeomShape = GEOM::GEOM_Object::_nil();
+ aString = "";
}
if ( !myMesh->_is_nil() ) {
SALOMEDS::SObject_var aMeshSO = SMESH::FindSObject( myMesh );
myBlockSelection = true;
- QValueList<SMESH::SMESH_Group_var>::iterator anIter;
+ QValueList<SMESH::SMESH_GroupBase_var>::iterator anIter;
for ( anIter = myListGrp.begin(); anIter != myListGrp.end(); ++anIter )
{
SMESH::SMESH_Mesh_ptr aMesh = (*anIter)->GetMesh();
SALOME_ListIteratorOfListIO anIter( aListIO );
for( ; anIter.More(); anIter.Next() )
{
- SMESH::SMESH_Group_var aGroup =
- SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIter.Value() );
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Value() );
if ( !aGroup->_is_nil() )
{
aNames.append( aGroup->GetName() );
QListBox* myListBox;
SALOME_Selection* mySelection;
- QValueList<SMESH::SMESH_Group_var> myListGrp;
- bool myBlockSelection;
+ QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
+ bool myBlockSelection;
};
#include "SMESHGUI_SpinBox.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_IdValidator.h"
#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
#include "SMDS_Mesh.hxx"
-#include <TopoDS.hxx>
-#include <gp_Lin.hxx>
-#include <gp_Vec.hxx>
-#include <BRepAdaptor_Curve.hxx>
-
#include "QAD_Application.h"
#include "QAD_Desktop.h"
#include "QAD_MessageBox.h"
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qradiobutton.h>
+#include <qcheckbox.h>
#include <qlayout.h>
#include <qspinbox.h>
#include <qvalidator.h>
// Controls for elements selection
TextLabelElements = new QLabel( GroupArguments, "TextLabelElements" );
TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+ TextLabelElements->setFixedWidth(74);
GroupArgumentsLayout->addWidget( TextLabelElements, 0, 0 );
SelectElementsButton = new QPushButton( GroupArguments, "SelectElementsButton" );
LineEditElements->setValidator( new SMESHGUI_IdValidator( this, "validator" ));
GroupArgumentsLayout->addMultiCellWidget( LineEditElements, 0, 0, 2, 7 );
+ // Control for the whole mesh selection
+ CheckBoxMesh = new QCheckBox( GroupArguments, "CheckBoxMesh" );
+ CheckBoxMesh->setText( tr( "SMESH_SELECT_WHOLE_MESH" ) );
+ GroupArgumentsLayout->addMultiCellWidget( CheckBoxMesh, 1, 1, 0, 7 );
+
// Controls for vector selection
TextLabelVector = new QLabel( GroupArguments, "TextLabelVector" );
TextLabelVector->setText( tr( "SMESH_VECTOR" ) );
- GroupArgumentsLayout->addWidget( TextLabelVector, 1, 0 );
+ GroupArgumentsLayout->addWidget( TextLabelVector, 2, 0 );
TextLabelDx = new QLabel( GroupArguments, "TextLabelDx" );
TextLabelDx->setText( tr( "SMESH_DX" ) );
- GroupArgumentsLayout->addWidget( TextLabelDx, 1, 2 );
+ GroupArgumentsLayout->addWidget( TextLabelDx, 2, 2 );
SpinBox_Dx = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dx");
- GroupArgumentsLayout->addWidget( SpinBox_Dx, 1, 3 );
+ GroupArgumentsLayout->addWidget( SpinBox_Dx, 2, 3 );
TextLabelDy = new QLabel( GroupArguments, "TextLabelDy" );
TextLabelDy->setText( tr( "SMESH_DY" ) );
- GroupArgumentsLayout->addWidget( TextLabelDy, 1, 4 );
+ GroupArgumentsLayout->addWidget( TextLabelDy, 2, 4 );
SpinBox_Dy = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dy");
- GroupArgumentsLayout->addWidget( SpinBox_Dy, 1, 5 );
+ GroupArgumentsLayout->addWidget( SpinBox_Dy, 2, 5 );
TextLabelDz = new QLabel( GroupArguments, "TextLabelDz" );
TextLabelDz->setText( tr( "SMESH_DZ" ) );
- GroupArgumentsLayout->addWidget( TextLabelDz, 1, 6 );
+ GroupArgumentsLayout->addWidget( TextLabelDz, 2, 6 );
SpinBox_Dz = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dz");
- GroupArgumentsLayout->addWidget( SpinBox_Dz, 1, 7 );
+ GroupArgumentsLayout->addWidget( SpinBox_Dz, 2, 7 );
// Controls for nb. steps defining
TextLabelNbSteps = new QLabel( GroupArguments, "TextLabelNbSteps" );
TextLabelNbSteps->setText( tr( "SMESH_NUMBEROFSTEPS" ) );
- GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 2, 2, 0, 1 );
+ GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 3, 3, 0, 1 );
SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
- GroupArgumentsLayout->addMultiCellWidget( SpinBox_NbSteps, 2, 2, 2, 7 );
+ GroupArgumentsLayout->addMultiCellWidget( SpinBox_NbSteps, 3, 3, 2, 7 );
SMESHGUI_ExtrusionDlgLayout->addWidget( GroupArguments, 1, 0 );
mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
+ // Costruction of the logical filter
+ SMESH_ListOfFilter aListOfFilters;
+ Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ if ( !aMeshOrSubMeshFilter.IsNull() )
+ aListOfFilters.Append( aMeshOrSubMeshFilter );
+ Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+ if ( !aSmeshGroupFilter.IsNull() )
+ aListOfFilters.Append( aSmeshGroupFilter );
+
+ myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
+
Init();
/* signals and slots connections */
connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
connect( LineEditElements, SIGNAL( textChanged( const QString& )),
SLOT( onTextChange( const QString& )));
-
+ connect( CheckBoxMesh, SIGNAL( toggled( bool )),
+ SLOT( onSelectMesh( bool )));
+
/* Move widget on the botton right corner of main widget */
int x, y ;
mySMESHGUI->DefineDlgPosition( this, x, y ) ;
// function : Init()
// purpose :
//=================================================================================
-void SMESHGUI_ExtrusionDlg::Init()
+void SMESHGUI_ExtrusionDlg::Init( bool ResetControls )
{
myBusy = false;
-
- SpinBox_NbSteps->setValue(1);
- myEditCurrentArgument = LineEditElements;
- LineEditElements->setFocus();
+ LineEditElements->clear();
+ myElementsId = "";
myNbOkElements = 0 ;
+
+ buttonOk->setEnabled( false );
+ buttonApply->setEnabled( false );
+
myActor = 0;
myMesh = SMESH::SMESH_Mesh::_nil();
- SpinBox_Dx->SetValue(0);
- SpinBox_Dy->SetValue(0);
- SpinBox_Dz->SetValue(0);
-
- SelectionIntoArgument();
+ if( ResetControls )
+ {
+ SpinBox_NbSteps->setValue(1);
+ SpinBox_Dx->SetValue(0);
+ SpinBox_Dy->SetValue(0);
+ SpinBox_Dz->SetValue(0);
+
+ CheckBoxMesh->setChecked(false);
+ onSelectMesh( false );
+ }
}
void SMESHGUI_ExtrusionDlg::ConstructorsClicked(int constructorId)
{
disconnect(mySelection, 0, this, 0);
- mySelection->ClearIObjects();
- mySelection->ClearFilters();
- myNbOkElements = 0 ;
- myEditCurrentArgument = LineEditElements;
- LineEditElements->setText("");
- LineEditElements->setFocus();
switch(constructorId)
{
case 0 :
{
GroupArguments->setTitle( tr( "EXTRUSION_1D" ) );
- QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+ if ( !CheckBoxMesh->isChecked() )
+ QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
break;
}
case 1 :
{
GroupArguments->setTitle( tr( "EXTRUSION_2D" ) );
- QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ if ( !CheckBoxMesh->isChecked() )
+ QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
break;
}
}
+
+ myEditCurrentArgument = LineEditElements;
+ LineEditElements->setFocus();
+
+ if (CheckBoxMesh->isChecked())
+ onSelectMesh(true);
+
connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
}
if ( myNbOkElements)
{
- QStringList aListElementsId = QStringList::split( " ", LineEditElements->text(), false);
+ QStringList aListElementsId = QStringList::split( " ", myElementsId, false);
SMESH::long_array_var anElementsId = new SMESH::long_array;
mySelection->ClearIObjects();
SMESH::UpdateView();
- Init();
+ Init( false);
+ ConstructorsClicked( GetConstructorId() );
}
}
//=================================================================================
void SMESHGUI_ExtrusionDlg::ClickOnOk()
{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
+ ClickOnApply();
+ ClickOnCancel();
}
void SMESHGUI_ExtrusionDlg::onTextChange(const QString& theNewText)
{
QLineEdit* send = (QLineEdit*)sender();
-
+
if ( myBusy ) return;
myBusy = true;
aMesh = myActor->GetObject()->GetMesh();
if ( aMesh ) {
-
mySelection->ClearIObjects();
mySelection->AddIObject( myActor->getIO() );
myNbOkElements++;
}
}
+ myElementsId = theNewText;
}
}
if ( myBusy ) return;
// clear
-
myActor = 0;
QString aString = "";
myBusy = true;
myEditCurrentArgument->setText( aString );
+ myNbOkElements = 0;
+ buttonOk->setEnabled( false );
+ buttonApply->setEnabled( false );
myBusy = false;
if ( !GroupButtons->isEnabled() ) // inactive
return;
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+ myMesh = SMESH::GetMeshByIO(IO);
+ if(myMesh->_is_nil())
+ return;
+ myActor = SMESH::FindActorByObject(myMesh);
+ if (!myActor)
+ return;
if (myEditCurrentArgument == LineEditElements)
{
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-
- myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
-
- // get selected elements
int aNbElements = 0;
+ myElementsId = "";
- aNbElements = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
+ if (CheckBoxMesh->isChecked())
+ {
+ SMESH::GetNameOfSelectedIObjects(mySelection, aString);
+
+ int aConstructorId = GetConstructorId();
+
+ if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
+ {
+ // get IDs from mesh
+ SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
+ if (!aSMDSMesh)
+ return;
+
+ if (aConstructorId == 0)
+ {
+ SMDS_EdgeIteratorPtr anIter = aSMDSMesh->edgesIterator();
+
+ while ( anIter->more() )
+ {
+ const SMDS_MeshEdge * edge = anIter->next();
+ if ( edge ) {
+ myElementsId += QString(" %1").arg(edge->GetID());
+ aNbElements++;
+ }
+ }
+ }
+ else if (aConstructorId == 1)
+ {
+ SMDS_FaceIteratorPtr anIter = aSMDSMesh->facesIterator();
+ while ( anIter->more() )
+ {
+ const SMDS_MeshFace * face = anIter->next();
+ if ( face ) {
+ myElementsId += QString(" %1").arg(face->GetID());
+ aNbElements++;
+ }
+ }
+ }
+ }
+ else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
+ {
+ // get submesh
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
+
+ // get IDs from submesh
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ if (aConstructorId == 0)
+ anElementsIds = aSubMesh->GetElementsByType(SMESH::EDGE);
+ else if (aConstructorId == 1)
+ anElementsIds = aSubMesh->GetElementsByType(SMESH::FACE);
+
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbElements = anElementsIds->length();
+ }
+ else // GROUP
+ {
+ // get smesh group
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+ if (aGroup->_is_nil())
+ return;
+
+ if ( (aConstructorId == 0 && aGroup->GetType()!= SMESH::EDGE) ||
+ (aConstructorId == 1 && aGroup->GetType()!= SMESH::FACE) )
+ return;
+
+ // get IDs from smesh group
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ anElementsIds = aGroup->GetListOfID();
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbElements = anElementsIds->length();
+ }
+ }
+ else
+ {
+ aNbElements = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
+ myElementsId = aString;
+ }
if(aNbElements < 1)
return ;
+
+ myNbOkElements = true;
}
myBusy = true;
// OK
- if (myEditCurrentArgument == LineEditElements )
- myNbOkElements = true;
-
if(myNbOkElements)
{
buttonOk->setEnabled( true );
void SMESHGUI_ExtrusionDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+
disconnect( mySelection, 0, this, 0 );
mySelection->ClearIObjects();
mySelection->ClearFilters();
if(send == SelectElementsButton) {
myEditCurrentArgument = LineEditElements;
- int aConstructorId = GetConstructorId();
- if (aConstructorId == 0)
- QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
- else if (aConstructorId == 1)
- QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ if (CheckBoxMesh->isChecked())
+ {
+ QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+ }
+ else
+ {
+ int aConstructorId = GetConstructorId();
+ if (aConstructorId == 0)
+ QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+ else if (aConstructorId == 1)
+ QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ }
}
myEditCurrentArgument->setFocus();
mySMESHGUI->ResetState() ;
mySMESHGUI->SetActiveDialogBox(0) ;
}
- return ;
}
if ( GroupConstructors->isEnabled() )
return ;
ActivateThisDialog() ;
- return ;
}
}
+//=======================================================================
+//function : onSelectMesh
+//purpose :
+//=======================================================================
+void SMESHGUI_ExtrusionDlg::onSelectMesh ( bool toSelectMesh )
+{
+ if (toSelectMesh)
+ TextLabelElements->setText( tr( "SMESH_NAME" ) );
+ else
+ TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+
+ if (myEditCurrentArgument != LineEditElements)
+ {
+ LineEditElements->clear();
+ return;
+ }
+
+ mySelection->ClearFilters() ;
+
+ if (toSelectMesh)
+ {
+ QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+ LineEditElements->setReadOnly(true);
+ }
+ else
+ {
+ int aConstructorId = GetConstructorId();
+ if (aConstructorId == 0)
+ QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+ else if (aConstructorId == 0)
+ QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+
+ LineEditElements->setReadOnly(false);
+ onTextChange(LineEditElements->text());
+ }
+
+ SelectionIntoArgument();
+}
+
+
//=================================================================================
// function : GetConstructorId()
// purpose :
#define DIALOGBOX_EXTRUSION_H
#include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
+
// QT Includes
#include <qdialog.h>
class QLineEdit;
class QPushButton;
class QRadioButton;
+class QCheckBox;
class QSpinBox;
class SMESHGUI_SpinBox;
class SMESHGUI;
private:
- void Init() ;
+ void Init( bool ResetControls = true ) ;
void closeEvent( QCloseEvent* e ) ;
void enterEvent ( QEvent * ) ; /* mouse enter the QWidget */
void hideEvent ( QHideEvent * ); /* ESC key */
SMESHGUI* mySMESHGUI ; /* Current SMESHGUI object */
SALOME_Selection* mySelection ; /* User shape selection */
+ QString myElementsId;
int myNbOkElements ; /* to check when elements are defined */
+
QLineEdit* myEditCurrentArgument; /* Current LineEdit */
bool myBusy;
SMESH::SMESH_Mesh_var myMesh;
SMESH_Actor* myActor;
-
+ Handle(SMESH_LogicalFilter) myMeshOrSubMeshOrGroupFilter;
+
QButtonGroup* GroupConstructors;
QRadioButton* RadioButton1;
QRadioButton* RadioButton2;
QLabel* TextLabelElements;
QPushButton* SelectElementsButton;
QLineEdit* LineEditElements;
+ QCheckBox* CheckBoxMesh;
QLabel* TextLabelVector;
QLabel* TextLabelDx;
SMESHGUI_SpinBox* SpinBox_Dx;
void DeactivateActiveDialog() ;
void ActivateThisDialog() ;
void onTextChange(const QString&);
+ void onSelectMesh(bool toSelectMesh);
protected:
QGridLayout* SMESHGUI_ExtrusionDlgLayout;
}
// process group
- SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIter.Key() );
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Key() );
if ( !aGroup->_is_nil() )
{
if ( aGroup->GetType() == theType && aGroup->GetMesh()->GetId() == myMesh->GetId() )
#include "SMESHGUI_GEOMGenUtils.h"
#include "SMESHGUI_Utils.h"
+#include CORBA_CLIENT_HEADER(SMESH_Mesh)
namespace SMESH{
}
- GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh(SALOMEDS::SObject_ptr theSObject)
+ GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh(SALOMEDS::SObject_ptr theMeshOrSubmesh)
{
- if(!theSObject->_is_nil()) {
- using namespace SALOMEDS;
- SObject_var aSubSObject;
- static int Tag_RefOnShape = 1;
- if(theSObject->FindSubObject(Tag_RefOnShape,aSubSObject)){
- SObject_var aGeomSObject;
- if(aSubSObject->ReferencedObject(aGeomSObject)){
- return SObjectToInterface<GEOM::GEOM_Object>(aGeomSObject);
- }
+ if(!theMeshOrSubmesh->_is_nil()) {
+ CORBA::Object_var Obj = theMeshOrSubmesh->GetObject();
+ if ( !CORBA::is_nil( Obj ) ) {
+ SMESH::SMESH_Mesh_var aMesh =
+ SObjectToInterface<SMESH::SMESH_Mesh>( theMeshOrSubmesh );
+ if ( !aMesh->_is_nil() )
+ return aMesh->GetShapeToMesh();
+ SMESH::SMESH_subMesh_var aSubmesh =
+ SObjectToInterface<SMESH::SMESH_subMesh>( theMeshOrSubmesh );
+ if ( !aSubmesh->_is_nil() )
+ return aSubmesh->GetSubShape();
}
}
return GEOM::GEOM_Object::_nil();
}
-
+
}
#include "SMESHGUI.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_GroupUtils.h"
#include "SMESHGUI_FilterUtils.h"
#include "SMESHGUI_GEOMGenUtils.h"
#include <qimage.h>
#include <qpixmap.h>
#include <qmemarray.h>
+#include <qwidgetstack.h>
// STL includes
#include <vector>
{
if ( !name ) setName( "SMESHGUI_GroupDlg" );
initDialog(theSel, true);
- init(theMesh);
-
+ if (!theMesh->_is_nil())
+ init(theMesh);
+ else {
+ mySelectSubMesh->setEnabled(false);
+ mySelectGroup->setEnabled(false);
+ myGeomGroupBtn->setEnabled(false);
+ myGeomGroupLine->setEnabled(false);
+ }
+
/* Move widget on the botton right corner of main widget */
int x, y ;
mySMESHGUI->DefineDlgPosition(this, x, y);
{
if ( !name ) setName( "SMESHGUI_GroupDlg" );
initDialog(theSel, false);
- init(theGroup);
-
+ if (!theGroup->_is_nil())
+ init(theGroup);
+ else {
+ mySelectSubMesh->setEnabled(false);
+ mySelectGroup->setEnabled(false);
+ }
+
/* Move widget on the botton right corner of main widget */
int x, y ;
mySMESHGUI->DefineDlgPosition(this, x, y);
void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
{
myFilterDlg = 0;
+ myCreate = create;
+ myCurrentLineEdit = 0;
QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "SMESH",tr("ICON_SELECT")));
if (create)
setCaption( tr( "SMESH_CREATE_GROUP_TITLE" ) );
- else
+ else
setCaption( tr( "SMESH_EDIT_GROUP_TITLE" ) );
+
setSizeGripEnabled( TRUE );
- QVBoxLayout* aMainLayout = new QVBoxLayout(this, 11, 6);
+ QGridLayout* aMainLayout = new QGridLayout(this, 7, 3, 11, 6);
+ /***************************************************************/
+ QLabel* meshGroupLab = new QLabel(this, "mesh/group label");
+ if (create)
+ meshGroupLab->setText(tr("SMESH_MESH"));
+ else
+ meshGroupLab->setText(tr("SMESH_GROUP"));
+ myMeshGroupBtn = new QPushButton(this, "mesh/group button");
+ myMeshGroupBtn->setPixmap(image0);
+ myMeshGroupLine = new QLineEdit(this, "mesh/group line");
+ myMeshGroupLine->setReadOnly(true);
+
/***************************************************************/
myTypeGroup = new QButtonGroup(1, Qt::Vertical, this, "Group types");
myTypeGroup->setTitle(tr("SMESH_ELEMENTS_TYPE"));
myTypeId = -1;
/***************************************************************/
- QHBox* aNameBox = new QHBox(this, "name box");
- QLabel* aName = new QLabel(aNameBox, "name label");
+ QLabel* aName = new QLabel(this, "name label");
aName->setText(tr("SMESH_NAME"));
aName->setMinimumSize(50,0);
- myName = new QLineEdit(aNameBox, "name");
-
+ myName = new QLineEdit(this, "name");
+
+ /***************************************************************/
+ myGrpTypeGroup = new QButtonGroup(1, Qt::Vertical, this, "Type of group");
+ myGrpTypeGroup->setTitle(tr("SMESH_GROUP_TYPE"));
+ myGrpTypeGroup->setExclusive(true);
+ QRadioButton* rb1 = new QRadioButton( tr("SMESH_GROUP_STANDALONE"), myGrpTypeGroup);
+ QRadioButton* rb2 = new QRadioButton( tr("SMESH_GROUP_GEOMETRY"), myGrpTypeGroup);
+ myGrpTypeGroup->setEnabled(create);
+ myGrpTypeId = -1;
+
/***************************************************************/
- QGroupBox* aContentBox = new QGroupBox(1, Qt::Horizontal, this, "content box");
+ myWGStack = new QWidgetStack( this, "widget stack");
+ QWidget* wg1 = new QFrame( myWGStack, "first widget" );
+ QWidget* wg2 = new QFrame( myWGStack, "second widget" );
+
+ /***************************************************************/
+ QGroupBox* aContentBox = new QGroupBox(1, Qt::Horizontal, wg1, "content box");
aContentBox->setTitle(tr("SMESH_CONTENT"));
QFrame* aContent = new QFrame(aContentBox, "content");
QGridLayout* aLayout = new QGridLayout(aContent, 7, 4);
aLabel->setText(tr("SMESH_ID_ELEMENTS"));
myElements = new QListBox(aContent, "elements list");
myElements->setSelectionMode(QListBox::Extended);
- // myElements->setMinimumHeight(150);
myFilter = new QPushButton(aContent, "filter");
myFilter->setText(tr("SMESH_BUT_FILTER"));
aLayout->setRowStretch(2, 1);
aLayout->setRowStretch(5, 1);
- aContentBox->setMinimumHeight(aContent->sizeHint().height() +
- aContentBox->sizeHint().height());
-
/***************************************************************/
- QGroupBox* aSelectBox = new QGroupBox(3, Qt::Horizontal, this, "select box");
+ QGroupBox* aSelectBox = new QGroupBox(3, Qt::Horizontal, wg1, "select box");
aSelectBox->setTitle(tr("SMESH_SELECT_FROM"));
mySelectSubMesh = new QCheckBox(aSelectBox, "submesh checkbox");
myGroupLine->setReadOnly(true);
onSelectGroup(false);
- mySelectGeomGroup = new QCheckBox(aSelectBox, "geometry group checkbox");
- mySelectGeomGroup->setText(tr("SMESH_GEOM_GROUP"));
- mySelectGeomGroup->setMinimumSize(50, 0);
- mySelectGeomGroup->setEnabled(create);
- myGeomGroupBtn = new QPushButton(aSelectBox, "geometry group button");
+ /***************************************************************/
+ QGridLayout* wg1Layout = new QGridLayout( wg1, 3, 1, 0, 6 );
+ wg1Layout->addWidget(aContentBox, 0, 0);
+ wg1Layout->addWidget(aSelectBox, 1, 0);
+ wg1Layout->setRowStretch(2, 5);
+
+ /***************************************************************/
+ QLabel* geomObject = new QLabel(wg2, "geometry object label");
+ geomObject->setText(tr("SMESH_OBJECT_GEOM"));
+ myGeomGroupBtn = new QPushButton(wg2, "geometry group button");
myGeomGroupBtn->setText("");
myGeomGroupBtn->setPixmap(image0);
- myGeomGroupLine = new QLineEdit(aSelectBox, "geometry group line");
- myGeomGroupLine->setReadOnly(true);
+ myGeomGroupLine = new QLineEdit(wg2, "geometry group line");
+ myGeomGroupLine->setReadOnly(true); //VSR ???
onSelectGeomGroup(false);
- aSelectBox->setMinimumHeight(137);
- aSelectBox->setMinimumWidth(305);
+ /***************************************************************/
+ QGridLayout* wg2Layout = new QGridLayout( wg2, 2, 3, 0, 6 );
+ wg2Layout->addWidget(geomObject, 0, 0);
+ wg2Layout->addWidget(myGeomGroupBtn, 0, 1);
+ wg2Layout->addWidget(myGeomGroupLine,0, 2);
+ wg2Layout->setRowStretch(1, 5);
+
+ /***************************************************************/
+ QVBoxLayout* dumb = new QVBoxLayout(myWGStack);
+ dumb->addWidget(wg1);
+ dumb->addWidget(wg2);
+ myWGStack->addWidget( wg1, myGrpTypeGroup->id(rb1) );
+ myWGStack->addWidget( wg2, myGrpTypeGroup->id(rb2) );
/***************************************************************/
QFrame* aButtons = new QFrame(this, "button box");
aBtnLayout->addWidget(aCloseBtn);
/***************************************************************/
- aMainLayout->addWidget(myTypeGroup);
- aMainLayout->addWidget(aNameBox);
- aMainLayout->addWidget(aContentBox);
- aMainLayout->addWidget(aSelectBox);
- aMainLayout->addWidget(aButtons);
+ aMainLayout->addWidget(meshGroupLab, 0, 0);
+ aMainLayout->addWidget(myMeshGroupBtn, 0, 1);
+ aMainLayout->addWidget(myMeshGroupLine, 0, 2);
+ aMainLayout->addMultiCellWidget(myTypeGroup, 1, 1, 0, 2);
+ aMainLayout->addWidget(aName, 2, 0);
+ aMainLayout->addWidget(myName, 2, 2);
+ aMainLayout->addMultiCellWidget(myGrpTypeGroup, 3, 3, 0, 2);
+ aMainLayout->addMultiCellWidget(myWGStack, 4, 4, 0, 2);
+ aMainLayout->setRowStretch( 5, 5 );
+ aMainLayout->addMultiCellWidget(aButtons, 6, 6, 0, 2);
/* signals and slots connections */
+ connect(myMeshGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
+
+ connect(myGrpTypeGroup, SIGNAL(clicked(int)), this, SLOT(onGrpTypeChanged(int)));
+
connect(myTypeGroup, SIGNAL(clicked(int)), this, SLOT(onTypeChanged(int)));
connect(myName, SIGNAL(textChanged(const QString&)), this, SLOT(onNameChanged(const QString&)));
connect(mySelectSubMesh, SIGNAL(toggled(bool)), this, SLOT(onSelectSubMesh(bool)));
connect(mySelectGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectGroup(bool)));
- connect(mySelectGeomGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectGeomGroup(bool)));
connect(mySubMeshBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
connect(myGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
connect(myGeomGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
-
connect(aOKBtn, SIGNAL(clicked()), this, SLOT(onOK()));
connect(aApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(onClose()));
mySMESHGUI->SetState(800);
mySelectionMode = -1;
+ myMeshFilter = new SMESH_TypeFilter(MESH);
mySubMeshFilter = new SMESH_TypeFilter(SUBMESH);
myGroupFilter = new SMESH_TypeFilter(GROUP);
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(onClose()));
connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(onObjectSelectionChanged()));
+ myGrpTypeGroup->setButton(myGrpTypeGroup->id(rb1)); // VSR !!!
+ onGrpTypeChanged(myGrpTypeGroup->id(rb1)); // VSR!!!
+
+ if (myMesh->_is_nil() )
+ myTypeGroup->setButton(0);
+
updateButtons();
}
//=================================================================================
SMESHGUI_GroupDlg::~SMESHGUI_GroupDlg()
{
- // no need to delete child widgets, Qt does it all for us
+ // no need to delete child widgets, Qt does it all for us
if ( myFilterDlg != 0 )
{
myFilterDlg->reparent( 0, QPoint() );
/* init data from current selection */
myMesh = SMESH::SMESH_Mesh::_duplicate(theMesh);
myGroup = SMESH::SMESH_Group::_nil();
-
+
myActor = SMESH::FindActorByObject(myMesh);
SMESH::SetPickable(myActor);
+
+ QString aName = mySelection->firstIObject()->getName();
+ myMeshGroupLine->setText(aName) ;
+ myMeshGroupLine->home( false );
+
+ myCurrentLineEdit = 0;
myTypeGroup->setButton(0);
onTypeChanged(0);
if ( !myActor )
myActor = SMESH::FindActorByObject(myGroup);
SMESH::SetPickable(myActor);
-
+
int aType = 0;
switch(theGroup->GetType()) {
case SMESH::NODE: aType= 0; break;
case SMESH::FACE: aType = 2; break;
case SMESH::VOLUME: aType = 3; break;
}
- myTypeGroup->setButton(aType);
- onTypeChanged(aType);
-
+
myName->setText(myGroup->GetName());
myName->home(false);
+ myMeshGroupLine->setText(myGroup->GetName());
+ myCurrentLineEdit = 0;
+ myTypeGroup->setButton(aType);
+ myElements->clear();
+ setSelectionMode(aType);
+ myTypeId = aType;
+
+ myIdList.clear();
if (!theGroup->IsEmpty()) {
SMESH::long_array_var anElements = myGroup->GetListOfID();
int k = anElements->length();
//=================================================================================
void SMESHGUI_GroupDlg::updateButtons()
{
- bool enable = !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0;
+ bool enable;
+
+ if (myGrpTypeId == 0)
+ enable = !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0;
+ else if (myGrpTypeId == 1)
+ enable = !myName->text().stripWhiteSpace().isEmpty() && !CORBA::is_nil( myGeomGroup );
QPushButton* aBtn;
aBtn = (QPushButton*) child("ok", "QPushButton");
if (aBtn) aBtn->setEnabled(enable);
//=================================================================================
// function : onTypeChanged()
-// purpose : Radio button management
+// purpose : Group elements type radio button management
//=================================================================================
void SMESHGUI_GroupDlg::onTypeChanged(int id)
{
myTypeId = id;
}
+//=================================================================================
+// function : onGrpTypeChanged()
+// purpose : Group type radio button management
+//=================================================================================
+void SMESHGUI_GroupDlg::onGrpTypeChanged(int id)
+{
+ if (myGrpTypeId != id) {
+ myWGStack->raiseWidget( id );
+ onSelectGeomGroup(id == 1);
+ }
+ myGrpTypeId = id;
+}
+
//=================================================================================
// function : setSelectionMode()
// purpose : Radio button management
mySelection->AddFilter(mySubMeshFilter);
else if (theMode == 5)
mySelection->AddFilter(myGroupFilter);
+ else if (theMode == 6)
+ mySelection->AddFilter(myMeshFilter);
}
mySelectionMode = theMode;
}
{
if (mySMESHGUI->ActiveStudyLocked())
return false;
- if (!myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0) {
+
+ if ( myGrpTypeId == 0 && !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0) {
mySelection->ClearIObjects();
if (myGroup->_is_nil()) {
SMESH::ElementType aType = SMESH::ALL;
myGroup = SMESH::AddGroup(myMesh, aType, myName->text());
myGroup->Add(anIdList.inout());
-
- //Add reference to geometry group if it is neccessary
- if (!CORBA::is_nil( myGeomGroup ))
- {
- SALOMEDS::Study_var aStudy = SMESH::GetActiveStudyDocument();
- SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
- SALOMEDS::SObject_var aGeomGroupSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myGeomGroup) );
- SALOMEDS::SObject_var aMeshGroupSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myGroup) );
- SALOMEDS::SObject_var aReference = aStudyBuilder->NewObject(aMeshGroupSO);
- aStudyBuilder->Addreference(aReference, aGeomGroupSO);
- }
/* init for next operation */
myName->setText("");
QValueList<int> aAddList;
QValueList<int>::iterator anIt;
QListBoxItem* anItem;
+
for (anItem = myElements->firstItem(); anItem != 0; anItem = anItem->next()) {
int anId = anItem->text().toInt();
if ((anIt = myIdList.find(anId)) == myIdList.end())
mySelection->ClearIObjects();
return true;
}
+ else if (myGrpTypeId == 1 && !myName->text().stripWhiteSpace().isEmpty() && !CORBA::is_nil( myGeomGroup ))
+ {
+ SMESH::ElementType aType = SMESH::ALL;
+ switch(myTypeId) {
+ case 0: aType = SMESH::NODE; break;
+ case 1: aType = SMESH::EDGE; break;
+ case 2: aType = SMESH::FACE; break;
+ case 3: aType = SMESH::VOLUME; break;
+ }
+
+ SALOMEDS::Study_var aStudy = SMESH::GetActiveStudyDocument();
+ GEOM::GEOM_IGroupOperations_var aGroupOp = SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
+
+ SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = myMesh->CreateGroupFromGEOM(aType, myName->text(),myGeomGroup);
+
+ mySMESHGUI->GetActiveStudy()->updateObjBrowser(true);
+ mySelection->ClearIObjects();
+ /* init for next operation */
+ myName->setText("");
+ return true;
+ }
+
return false;
}
myCurrentLineEdit->setText("") ;
QString aString = "";
- if (myCurrentLineEdit == myGeomGroupLine)
+ if (myCurrentLineEdit == myMeshGroupLine)
+ {
+ mySelectSubMesh->setEnabled(false);
+ mySelectGroup->setEnabled(false);
+ myGroupLine->setText("");
+ mySubMeshLine->setText("");
+
+ myGeomGroupBtn->setEnabled(false);
+ myGeomGroupLine->setEnabled(false);
+ myGeomGroupLine->setText("");
+ if (!myCreate)
+ myName->setText("");
+
+ myElements->clear();
+
+ if(aNbSel != 1)
+ {
+ myGroup = SMESH::SMESH_Group::_nil();
+ myMesh = SMESH::SMESH_Mesh::_nil();
+ busy = false;
+ return;
+ }
+ Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+
+ if (myCreate)
+ {
+ myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
+ if(myMesh->_is_nil())
+ return;
+ myGroup = SMESH::SMESH_Group::_nil();
+
+ myActor = SMESH::FindActorByObject(myMesh);
+ SMESH::SetPickable(myActor);
+
+ aString = mySelection->firstIObject()->getName();
+ myMeshGroupLine->setText(aString) ;
+ myMeshGroupLine->home( false );
+
+ mySelectSubMesh->setEnabled(true);
+ mySelectGroup->setEnabled(true);
+ myGeomGroupBtn->setEnabled(true);
+ myGeomGroupLine->setEnabled(true);
+ updateButtons();
+ }
+ else
+ {
+ SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
+ if(aGroup->_is_nil())
+ return;
+ busy = false;
+ myCurrentLineEdit = 0;
+ init(aGroup);
+ busy = true;
+ mySelectSubMesh->setEnabled(true);
+ mySelectGroup->setEnabled(true);
+ myGeomGroupBtn->setEnabled(true);
+ myGeomGroupLine->setEnabled(true);
+ }
+ myCurrentLineEdit = 0;
+ busy = false;
+ if (!myCreate)
+ return;
+
+ if (myTypeId == -1)
+ onTypeChanged(0);
+ else
+ {
+ myElements->clear();
+ setSelectionMode(myTypeId);
+ }
+
+ return;
+ }
+ else if (myCurrentLineEdit == myGeomGroupLine)
{
+
if(aNbSel != 1)
{
myGeomGroup = GEOM::GEOM_Object::_nil();
busy = false;
return;
}
+
Standard_Boolean testResult = Standard_False;
myGeomGroup = GEOMBase::ConvertIOinGEOMObject(mySelection->firstIObject(), testResult );
// Check if the object is a geometry group
- if(!testResult || CORBA::is_nil( myGeomGroup ) || myGeomGroup->GetType() != 37)
+ if(!testResult || CORBA::is_nil( myGeomGroup ))
{
myGeomGroup = GEOM::GEOM_Object::_nil();
busy = false;
SALOMEDS::Study_var aStudy = SMESH::GetActiveStudyDocument();
GEOM::GEOM_IGroupOperations_var anOp = SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
// The main shape of the group
- GEOM::GEOM_Object_var aGroupMainShape = anOp->GetMainShape( myGeomGroup );
+ GEOM::GEOM_Object_var aGroupMainShape;
+ if( myGeomGroup->GetType() == 37 )
+ aGroupMainShape = anOp->GetMainShape( myGeomGroup );
+ else
+ aGroupMainShape = GEOM::GEOM_Object::_duplicate(myGeomGroup);
SALOMEDS::SObject_var aGroupMainShapeSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(aGroupMainShape) );
// The mesh SObject
SALOMEDS::SObject_var aMeshSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myMesh) );
SALOMEDS::SObject_var anObj, aRef;
bool isRefOrSubShape = false;
-
if ( aMeshSO->FindSubObject( 1, anObj ) && anObj->ReferencedObject( aRef )) {
if ( strcmp( aRef->GetID(), aGroupMainShapeSO->GetID() ) == 0 )
isRefOrSubShape = true;
aFather = aFather->GetFather();
}
}
- if ( !isRefOrSubShape )
- {
- myGeomGroup = GEOM::GEOM_Object::_nil();
- busy = false;
- return;
- }
}
+ if ( !isRefOrSubShape )
+ {
+ myGeomGroup = GEOM::GEOM_Object::_nil();
+ busy = false;
+ return;
+ }
}
if (aNbSel >= 1) {
myCurrentLineEdit->setText(aString) ;
myCurrentLineEdit->home( false );
+
+ updateButtons();
}
else {
if (aNbSel == 1) {
if (mySelectGroup->isChecked()) {
mySelectGroup->setChecked(false);
}
- else if (mySelectGeomGroup->isChecked()) {
- mySelectGeomGroup->setChecked(false);
- }
+ //VSR: else if (mySelectGeomGroup->isChecked()) {
+ //VSR: mySelectGeomGroup->setChecked(false);
+ //VSR: }
myCurrentLineEdit = mySubMeshLine;
setSelectionMode(4);
}
if (mySelectSubMesh->isChecked()) {
mySelectSubMesh->setChecked(false);
}
- else if (mySelectGeomGroup->isChecked()) {
- mySelectGeomGroup->setChecked(false);
- }
myCurrentLineEdit = myGroupLine;
setSelectionMode(5);
}
mySelectGroup->setChecked(false);
}
myCurrentLineEdit = myGeomGroupLine;
- setSelectionMode(6);
+ setSelectionMode(7);
}
else {
myGeomGroupLine->setText("");
if (myTypeId != -1)
setSelectionMode(myTypeId);
}
- myGeomGroupBtn->setEnabled(on);
- myGeomGroupLine->setEnabled(on);
}
{
QPushButton* send = (QPushButton*)sender();
myCurrentLineEdit = 0;
- if (send == mySubMeshBtn) {
+ if (send == myMeshGroupBtn) {
+ myCurrentLineEdit = myMeshGroupLine;
+ if (myCreate)
+ setSelectionMode(6);
+ else
+ setSelectionMode(5);
+ onObjectSelectionChanged();
+ }
+ else if (send == mySubMeshBtn) {
myCurrentLineEdit = mySubMeshLine;
onObjectSelectionChanged();
}
}
else if (send == myGeomGroupBtn) {
myCurrentLineEdit = myGeomGroupLine;
+ setSelectionMode(7);
onObjectSelectionChanged();
}
}
void SMESHGUI_GroupDlg::onAdd()
{
int aNbSel = mySelection->IObjectCount();
- if (aNbSel == 0 || !myActor) return;
+ if (aNbSel == 0 || !myActor || myMesh->_is_nil()) return;
busy = true;
}
}
- mySelectGeomGroup->setChecked(false);
+ //VSR: mySelectGeomGroup->setChecked(false);
busy = false;
onListSelectionChanged();
}
class QListBox;
class QPushButton;
class QCheckBox;
+class QWidgetStack;
class SMESHGUI;
class SMESH_Actor;
class SMESHGUI_FilterDlg;
private slots:
void onTypeChanged(int id);
+ void onGrpTypeChanged(int id);
void onOK();
void onClose();
SMESHGUI* mySMESHGUI ; /* Current SMESHGUI object */
SALOME_Selection* mySelection ; /* User shape selection */
SMESH_Actor* myActor; /* Current mesh actor */
+ int myGrpTypeId ; /* Current group type id : standalone or group on geometry */
int myTypeId ; /* Current type id = radio button id */
QLineEdit* myCurrentLineEdit; /* Current LineEdit */
+ QPushButton* myMeshGroupBtn;
+ QLineEdit* myMeshGroupLine;
+
QButtonGroup* myTypeGroup;
QLineEdit* myName;
+
+ QButtonGroup* myGrpTypeGroup;
+
+ QWidgetStack* myWGStack;
QListBox* myElements;
QPushButton* myFilter;
+
QCheckBox* mySelectSubMesh;
QPushButton* mySubMeshBtn;
QLineEdit* mySubMeshLine;
GEOM::GEOM_Object_var myGeomGroup;
int mySelectionMode;
+ Handle(SMESH_TypeFilter) myMeshFilter;
Handle(SMESH_TypeFilter) mySubMeshFilter;
Handle(SMESH_TypeFilter) myGroupFilter;
SMESHGUI_FilterDlg* myFilterDlg;
+
+ bool myCreate;
};
#endif // DIALOGBOX_GROUP_H
aSMESHGUI->SetActiveDialogBox( ( QDialog* )this ) ;
myFocusWg = myEdit1;
- myGroup1 = SMESH::SMESH_Group::_nil();
- myGroup2 = SMESH::SMESH_Group::_nil();
+ myGroup1 = SMESH::SMESH_GroupBase::_nil();
+ myGroup2 = SMESH::SMESH_GroupBase::_nil();
// selection and SMESHGUI
connect( mySelection, SIGNAL( currentSelectionChanged() ), SLOT( onSelectionDone() ) );
void SMESHGUI_GroupOpDlg::onSelectionDone()
{
if ( myFocusWg == myEdit1 )
- myGroup1 = SMESH::SMESH_Group::_nil();
+ myGroup1 = SMESH::SMESH_GroupBase::_nil();
else
- myGroup2 = SMESH::SMESH_Group::_nil();
+ myGroup2 = SMESH::SMESH_GroupBase::_nil();
myFocusWg->setText( "" );
if ( mySelection->IObjectCount() == 1 )
{
- SMESH::SMESH_Group_var aGroup =
- SMESH::IObjectToInterface<SMESH::SMESH_Group>( mySelection->firstIObject() );
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( mySelection->firstIObject() );
if ( !aGroup->_is_nil() )
{
QLineEdit* myFocusWg;
- SMESH::SMESH_Group_var myGroup1;
- SMESH::SMESH_Group_var myGroup2;
+ SMESH::SMESH_GroupBase_var myGroup1;
+ SMESH::SMESH_GroupBase_var myGroup2;
};
#include "SMESHGUI_SMESHGenUtils.h"
#include "SMESHGUI_HypothesesUtils.h"
+#include "GEOMBase.h"
+
#include "QAD_Application.h"
#include "QAD_Desktop.h"
#include "QAD_MessageBox.h"
this->move( x, y ) ;
this->show() ;
- LineEdit_NameMesh->setText( tr( "SMESH_OBJECT_MESH" ) );
+ LineEdit_NameMesh->setText( GetDefaultMeshName() );
LineEdit_NameMesh->setFocus() ;
myEditCurrentArgument = LineEditC1A1 ;
mySelection->ClearFilters() ;
}
// commit transaction
op->finish();
+ LineEdit_NameMesh->setText( GetDefaultMeshName() );
return true;
}
{
QString aString = "";
- int nbSel = SMESH::GetNameOfSelectedIObjects(mySelection, aString) ;
+ int nbSel = SMESH::GetNameOfSelectedIObjects( mySelection, aString );
- if ( myEditCurrentArgument == LineEditC1A1 ) {
+ if ( myEditCurrentArgument == LineEditC1A1 )
+ {
// geom shape
- if ( nbSel != 1 ) {
+ if ( nbSel != 1 )
+ {
myGeomShape = GEOM::GEOM_Object::_nil();
aString = "";
}
- else {
- Standard_Boolean testResult ;
+ else
+ {
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
- myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO) ;
- if( myGeomShape->_is_nil() ) {
- aString = "";
+ myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>( IO ) ;
+ if ( myGeomShape->_is_nil() || !GEOMBase::IsShape( myGeomShape ) )
+ {
+ myGeomShape = GEOM::GEOM_Object::_nil();
+ aString = "";
}
}
}
buttonApply->setEnabled( isEnabled );
}
+//=================================================================================
+// function : GetDefaultMeshName()
+// purpose : Generates default mesh name(Mesh_1, Mesh_2, etc.)
+//=================================================================================
+QString SMESHGUI_InitMeshDlg::GetDefaultMeshName()
+{
+ SALOMEDS::Study_var aStudy = QAD_Application::getDesktop()->getActiveStudy()->getStudyDocument();
+ int aNumber = 0;
+ QString aMeshName;
+ SALOMEDS::SObject_var obj;
+
+ do
+ {
+ aMeshName = QString(tr("SMESH_OBJECT_MESH")) +"_"+QString::number(++aNumber);
+ obj = aStudy->FindObject(aMeshName);
+ }
+ while (!obj->_is_nil());
+ return aMeshName;
+}
void Init( SALOME_Selection* Sel ) ;
void UpdateControlState();
+ QString SMESHGUI_InitMeshDlg::GetDefaultMeshName();
private:
SMESHGUI* mySMESHGUI ;
mySubMeshNbVolumes->setNum( (int)( aSubMesh->GetElementsByType( SMESH::VOLUME )->length() ) );
return;
}
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( anObject );
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( anObject );
if ( !aGroup->_is_nil() ) {
myWGStack->raiseWidget( myGroupWidget );
setCaption( tr( "SMESH_MESHINFO_TITLE" ) + " [" + tr("SMESH_GROUP") +"]" );
SMESH_Mesh_var aMesh = SMESH_Mesh::_narrow(anObj);
if(!CORBA::is_nil(aMesh))
return aMesh;
- SMESH_Group_var aGroup = SMESH_Group::_narrow(anObj);
+ SMESH_GroupBase_var aGroup = SMESH_GroupBase::_narrow(anObj);
if(!CORBA::is_nil(aGroup))
return aGroup->GetMesh();
SMESH_subMesh_var aSubMesh = SMESH_subMesh::_narrow(anObj);
}
else
{
- SMESH::SMESH_Group_var aGroup =
- SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIO );
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIO );
if ( !aGroup->_is_nil() )
myMesh = aGroup->GetMesh();
}
if ( nbSel == 1 ) {
myActor = SMESH::FindActorByEntry(mySelection->firstIObject()->getEntry());
- //myActor = SMESH::FindActorByObject( myMesh );
+ if (!myActor)
+ myActor = SMESH::FindActorByObject( myMesh );
VTKViewer_InteractorStyleSALOME* aStyle = SMESH::GetInteractorStyle();
Handle(VTKViewer_Filter) aFilter1 = aStyle->GetFilter( myFilterType );
Handle(VTKViewer_Filter) aFilter2 = aStyle->GetFilter( SMESHGUI_FaceFilter );
SALOME_ListIteratorOfListIO anIter( mySelection->StoredIObjects() );
for ( ; anIter.More(); anIter.Next() )
{
- SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIter.Value() );
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Value() );
if ( !aGroup->_is_nil() && aGroup->GetType() == SMESH::FACE )
{
if ( aGroup->GetMesh()->GetId() == myMesh->GetId() )
myMesh->_is_nil() ||
mySelection->IObjectCount() != 1 ||
(SMESH::IObjectToInterface<SMESH::SMESH_subMesh>( mySelection->firstIObject() )->_is_nil() &&
- SMESH::IObjectToInterface<SMESH::SMESH_Group>( mySelection->firstIObject() )->_is_nil() &&
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( mySelection->firstIObject() )->_is_nil() &&
SMESH::IObjectToInterface<SMESH::SMESH_Mesh>( mySelection->firstIObject() )->_is_nil()) )
myAddBtn->setEnabled( false );
else
#include "SMESHGUI_SpinBox.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_IdValidator.h"
#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
#include "SMDS_Mesh.hxx"
#include "QAD_Application.h"
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qradiobutton.h>
+#include <qcheckbox.h>
#include <qlayout.h>
#include <qspinbox.h>
#include <qvalidator.h>
// Controls for elements selection
TextLabelElements = new QLabel( GroupArguments, "TextLabelElements" );
TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+ TextLabelElements->setFixedWidth(74);
GroupArgumentsLayout->addWidget( TextLabelElements, 0, 0 );
SelectElementsButton = new QPushButton( GroupArguments, "SelectElementsButton" );
LineEditElements->setValidator( new SMESHGUI_IdValidator( this, "validator" ));
GroupArgumentsLayout->addWidget( LineEditElements, 0, 2 );
+ // Control for the whole mesh selection
+ CheckBoxMesh = new QCheckBox( GroupArguments, "CheckBoxMesh" );
+ CheckBoxMesh->setText( tr( "SMESH_SELECT_WHOLE_MESH" ) );
+ GroupArgumentsLayout->addMultiCellWidget( CheckBoxMesh, 1, 1, 0, 3 );
+
// Controls for axis defining
GroupAxis = new QGroupBox( GroupArguments, "GroupAxis" );
GroupAxis->setTitle( tr( "SMESH_AXIS" ) );
SpinBox_DZ = new SMESHGUI_SpinBox( GroupAxis, "SpinBox_DZ");
GroupAxisLayout->addWidget( SpinBox_DZ, 1, 7 );
- GroupArgumentsLayout->addMultiCellWidget( GroupAxis, 1, 1, 0, 3 );
+ GroupArgumentsLayout->addMultiCellWidget( GroupAxis, 2, 2, 0, 3 );
// Controls for angle defining
TextLabelAngle = new QLabel( GroupArguments, "TextLabelAngle" );
TextLabelAngle->setText( tr( "SMESH_ANGLE" ) );
- GroupArgumentsLayout->addMultiCellWidget( TextLabelAngle, 2, 2, 0, 1 );
+ GroupArgumentsLayout->addMultiCellWidget( TextLabelAngle, 3, 3, 0, 1 );
SpinBox_Angle = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Angle");
- GroupArgumentsLayout->addWidget( SpinBox_Angle, 2, 2 );
+ GroupArgumentsLayout->addWidget( SpinBox_Angle, 3, 2 );
// Controls for nb. steps defining
TextLabelNbSteps = new QLabel( GroupArguments, "TextLabelNbSteps" );
TextLabelNbSteps->setText( tr( "SMESH_NUMBEROFSTEPS" ) );
- GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 3, 3, 0, 1 );
+ GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 4, 4, 0, 1 );
SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
- GroupArgumentsLayout->addWidget( SpinBox_NbSteps, 3, 2 );
+ GroupArgumentsLayout->addWidget( SpinBox_NbSteps, 4, 2 );
// Controls for tolerance defining
TextLabelTolerance = new QLabel( GroupArguments, "TextLabelTolerance" );
TextLabelTolerance->setText( tr( "SMESH_TOLERANCE" ) );
- GroupArgumentsLayout->addMultiCellWidget( TextLabelTolerance, 4, 4, 0, 1 );
+ GroupArgumentsLayout->addMultiCellWidget( TextLabelTolerance, 5, 5, 0, 1 );
SpinBox_Tolerance = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Tolerance");
- GroupArgumentsLayout->addWidget( SpinBox_Tolerance, 4, 2 );
+ GroupArgumentsLayout->addWidget( SpinBox_Tolerance, 5, 2 );
SMESHGUI_RevolutionDlgLayout->addWidget( GroupArguments, 1, 0 );
mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
-
+
+ // Costruction of the logical filter
+ SMESH_ListOfFilter aListOfFilters;
+ Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ if ( !aMeshOrSubMeshFilter.IsNull() )
+ aListOfFilters.Append( aMeshOrSubMeshFilter );
+ Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+ if ( !aSmeshGroupFilter.IsNull() )
+ aListOfFilters.Append( aSmeshGroupFilter );
+
+ myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
+
Init();
/* signals and slots connections */
connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
connect( LineEditElements, SIGNAL( textChanged( const QString& )),
SLOT( onTextChange( const QString& )));
+ connect( CheckBoxMesh, SIGNAL( toggled( bool )),
+ SLOT( onSelectMesh( bool )));
/* Move widget on the botton right corner of main widget */
int x, y ;
// function : Init()
// purpose :
//=================================================================================
-void SMESHGUI_RevolutionDlg::Init()
+void SMESHGUI_RevolutionDlg::Init( bool ResetControls )
{
- myBusy = false;
-
- SpinBox_X->SetValue(0.0);
- SpinBox_Y->SetValue(0.0);
- SpinBox_Z->SetValue(0.0);
- SpinBox_DX->SetValue(0.0);
- SpinBox_DY->SetValue(0.0);
- SpinBox_DZ->SetValue(0.0);
-
- SpinBox_Angle->SetValue(45);
- SpinBox_NbSteps->setValue(1);
- SpinBox_Tolerance->SetValue(1e-05);
+ myBusy = false;
- myEditCurrentArgument = (QWidget*)LineEditElements;
- LineEditElements->setFocus();
+ myEditCurrentArgument = 0;
+ LineEditElements->clear();
+ myElementsId = "";
myNbOkElements = 0 ;
+
myActor = 0;
myMesh = SMESH::SMESH_Mesh::_nil();
-
- SelectionIntoArgument();
+
+ if( ResetControls )
+ {
+ SpinBox_X->SetValue(0.0);
+ SpinBox_Y->SetValue(0.0);
+ SpinBox_Z->SetValue(0.0);
+ SpinBox_DX->SetValue(0.0);
+ SpinBox_DY->SetValue(0.0);
+ SpinBox_DZ->SetValue(0.0);
+
+ SpinBox_Angle->SetValue(45);
+ SpinBox_NbSteps->setValue(1);
+ SpinBox_Tolerance->SetValue(1e-05);
+
+ CheckBoxMesh->setChecked(false);
+ onSelectMesh( false );
+ }
}
void SMESHGUI_RevolutionDlg::ConstructorsClicked(int constructorId)
{
disconnect(mySelection, 0, this, 0);
- mySelection->ClearIObjects();
- mySelection->ClearFilters();
- myNbOkElements = 0 ;
- myEditCurrentArgument = (QWidget*)LineEditElements;
- LineEditElements->setText("");
- LineEditElements->setFocus();
+ Selection_Mode aSelMode = ActorSelection;
+
switch(constructorId)
{
case 0 :
{
GroupArguments->setTitle( tr( "REVOLUTION_1D" ) );
- QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+ aSelMode = EdgeSelection;
break;
}
case 1 :
{
GroupArguments->setTitle( tr( "REVOLUTION_2D" ) );
- QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ aSelMode = FaceSelection;
break;
}
}
+
+ if (myEditCurrentArgument != (QWidget*)LineEditElements)
+ SMESH::SetPointRepresentation(false);
+
+ if (!CheckBoxMesh->isChecked())
+ QAD_Application::getDesktop()->SetSelectionMode( aSelMode, true );
+
+ myEditCurrentArgument = (QWidget*)LineEditElements;
+ LineEditElements->setFocus();
+
+ if (CheckBoxMesh->isChecked())
+ onSelectMesh(true);
+
connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
}
if ( myNbOkElements && IsAxisOk())
{
- QStringList aListElementsId = QStringList::split( " ", LineEditElements->text(), false);
+ QStringList aListElementsId = QStringList::split( " ", myElementsId, false);
SMESH::long_array_var anElementsId = new SMESH::long_array;
mySelection->ClearIObjects();
SMESH::UpdateView();
- Init();
+ Init( false);
+ ConstructorsClicked( GetConstructorId() );
}
}
//=================================================================================
void SMESHGUI_RevolutionDlg::ClickOnOk()
{
- this->ClickOnApply() ;
- this->ClickOnCancel() ;
+ ClickOnApply() ;
+ ClickOnCancel() ;
}
aMesh = myActor->GetObject()->GetMesh();
if ( aMesh ) {
-
mySelection->ClearIObjects();
mySelection->AddIObject( myActor->getIO() );
myNbOkElements++;
}
}
+ myElementsId = theNewText;
}
}
if ( myBusy ) return;
// clear
-
myActor = 0;
QString aString = "";
myBusy = true;
if (myEditCurrentArgument == (QWidget*)LineEditElements)
- LineEditElements->setText( aString );
+ {
+ LineEditElements->setText( aString );
+ myNbOkElements = 0;
+ buttonOk->setEnabled( false );
+ buttonApply->setEnabled( false );
+ }
myBusy = false;
if ( !GroupButtons->isEnabled() ) // inactive
return;
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
- myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
-
- if (myMesh->_is_nil() || !myActor)
+ myMesh = SMESH::GetMeshByIO(IO);
+ if(myMesh->_is_nil())
+ return;
+ myActor = SMESH::FindActorByObject(myMesh);
+ if (!myActor)
return;
int aNbUnits = 0;
if (myEditCurrentArgument == (QWidget*)LineEditElements)
{
- buttonOk->setEnabled( false );
- buttonApply->setEnabled( false );
-
- // get selected elements
- aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString);
- if(aNbUnits < 1)
+ myElementsId = "";
+
+ if (CheckBoxMesh->isChecked())
+ {
+ SMESH::GetNameOfSelectedIObjects(mySelection, aString);
+
+ int aConstructorId = GetConstructorId();
+
+ if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
+ {
+ // get IDs from mesh
+ SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
+ if (!aSMDSMesh)
+ return;
+
+ if (aConstructorId == 0)
+ {
+ SMDS_EdgeIteratorPtr anIter = aSMDSMesh->edgesIterator();
+
+ while ( anIter->more() )
+ {
+ const SMDS_MeshEdge * edge = anIter->next();
+ if ( edge ) {
+ myElementsId += QString(" %1").arg(edge->GetID());
+ aNbUnits++;
+ }
+ }
+ }
+ else if (aConstructorId == 1)
+ {
+ SMDS_FaceIteratorPtr anIter = aSMDSMesh->facesIterator();
+ while ( anIter->more() )
+ {
+ const SMDS_MeshFace * face = anIter->next();
+ if ( face ) {
+ myElementsId += QString(" %1").arg(face->GetID());
+ aNbUnits++;
+ }
+ }
+ }
+ }
+ else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
+ {
+ // get submesh
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
+
+ // get IDs from submesh
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ if (aConstructorId == 0)
+ anElementsIds = aSubMesh->GetElementsByType(SMESH::EDGE);
+ else if (aConstructorId == 1)
+ anElementsIds = aSubMesh->GetElementsByType(SMESH::FACE);
+
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbUnits = anElementsIds->length();
+ }
+ else // GROUP
+ {
+ // get smesh group
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+ if (aGroup->_is_nil())
+ return;
+
+ if ( (aConstructorId == 0 && aGroup->GetType()!= SMESH::EDGE) ||
+ (aConstructorId == 1 && aGroup->GetType()!= SMESH::FACE) )
+ return;
+
+ // get IDs from smesh group
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ anElementsIds = aGroup->GetListOfID();
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbUnits = anElementsIds->length();
+ }
+ }
+ else
+ {
+ aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
+ myElementsId = aString;
+ }
+
+ if(aNbUnits < 1)
return ;
- LineEditElements->setText( aString );
+
+ myNbOkElements = true;
}
else
{
}
}
- // OK
+ myBusy = true;
if (myEditCurrentArgument == (QWidget*)LineEditElements)
- myNbOkElements = true;
+ LineEditElements->setText( aString );
+ myBusy = false;
+ // OK
if(myNbOkElements && IsAxisOk())
{
buttonOk->setEnabled( true );
void SMESHGUI_RevolutionDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
+
disconnect( mySelection, 0, this, 0 );
mySelection->ClearIObjects();
mySelection->ClearFilters();
if(send == SelectElementsButton) {
myEditCurrentArgument = (QWidget*)LineEditElements;
SMESH::SetPointRepresentation(false);
- int aConstructorId = GetConstructorId();
- if (aConstructorId == 0)
- QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
- else if (aConstructorId == 1)
- QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ if (CheckBoxMesh->isChecked())
+ {
+ QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+ }
+ else
+ {
+ int aConstructorId = GetConstructorId();
+ if (aConstructorId == 0)
+ QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+ else if (aConstructorId == 1)
+ QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ }
}
else if (send == SelectPointButton)
{
mySMESHGUI->ResetState() ;
mySMESHGUI->SetActiveDialogBox(0) ;
}
- return ;
}
if ( GroupConstructors->isEnabled() )
return ;
ActivateThisDialog() ;
- return ;
}
}
}
+
+//=======================================================================
+//function : onSelectMesh
+//purpose :
+//=======================================================================
+void SMESHGUI_RevolutionDlg::onSelectMesh ( bool toSelectMesh )
+{
+ if (toSelectMesh)
+ TextLabelElements->setText( tr( "SMESH_NAME" ) );
+ else
+ TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+
+ if (myEditCurrentArgument != LineEditElements)
+ {
+ LineEditElements->clear();
+ return;
+ }
+
+ mySelection->ClearFilters() ;
+ SMESH::SetPointRepresentation(false);
+
+ if (toSelectMesh)
+ {
+ QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+ LineEditElements->setReadOnly(true);
+ }
+ else
+ {
+ int aConstructorId = GetConstructorId();
+ if (aConstructorId == 0)
+ QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+ else if (aConstructorId == 0)
+ QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+
+ LineEditElements->setReadOnly(false);
+ onTextChange(LineEditElements->text());
+ }
+
+ SelectionIntoArgument();
+}
#define DIALOGBOX_REVOLUTION_H
#include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
// QT Includes
#include <qdialog.h>
class QLineEdit;
class QPushButton;
class QRadioButton;
+class QCheckBox;
class QSpinBox;
class SMESHGUI_SpinBox;
class SMESHGUI;
private:
- void Init() ;
+ void Init( bool ResetControls = true ) ;
void closeEvent( QCloseEvent* e ) ;
void enterEvent ( QEvent * ) ; /* mouse enter the QWidget */
void hideEvent ( QHideEvent * ); /* ESC key */
SMESHGUI* mySMESHGUI ; /* Current SMESHGUI object */
SALOME_Selection* mySelection ; /* User shape selection */
int myNbOkElements ; /* to check when elements are defined */
+ QString myElementsId;
QWidget* myEditCurrentArgument; /* Current argument */
bool myBusy;
SMESH::SMESH_Mesh_var myMesh;
SMESH_Actor* myActor;
-
+ Handle(SMESH_LogicalFilter) myMeshOrSubMeshOrGroupFilter;
+
QButtonGroup* GroupConstructors;
QRadioButton* RadioButton1;
QRadioButton* RadioButton2;
QLabel* TextLabelElements;
QPushButton* SelectElementsButton;
QLineEdit* LineEditElements;
-
+ QCheckBox* CheckBoxMesh;
+
QLabel* TextLabelPoint;
QPushButton* SelectPointButton;
QLabel* TextLabelX;
void ActivateThisDialog() ;
void onTextChange(const QString&);
void onVectorChanged();
-
+ void onSelectMesh(bool toSelectMesh);
+
protected:
QGridLayout* SMESHGUI_RevolutionDlgLayout;
QGridLayout* GroupConstructorsLayout;
#include "SMESHGUI_SpinBox.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_IdValidator.h"
#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
#include "SMDS_Mesh.hxx"
#include "QAD_Application.h"
mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
- myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ // Costruction of the logical filter
+ SMESH_ListOfFilter aListOfFilters;
+ Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ if ( !aMeshOrSubMeshFilter.IsNull() )
+ aListOfFilters.Append( aMeshOrSubMeshFilter );
+ Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+ if ( !aSmeshGroupFilter.IsNull() )
+ aListOfFilters.Append( aSmeshGroupFilter );
+
+ myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
Init();
/* signals and slots connections */
return;
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
- myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
+ myMesh = SMESH::GetMeshByIO( mySelection->firstIObject() );
+ if(myMesh->_is_nil())
+ return;
+ myActor = SMESH::FindActorByObject(myMesh);
+ if (!myActor)
+ return;
int aNbUnits = 0;
{
myElementsId = "";
- // get selected elements
if (CheckBoxMesh->isChecked())
{
SMESH::GetNameOfSelectedIObjects(mySelection, aString);
- if(!myMesh->_is_nil())
+
+ if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
{
- if (!myActor)
- return;
-
// get IDs from mesh
SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
if (!aSMDSMesh)
return;
+
for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++ )
{
const SMDS_MeshElement * e = aSMDSMesh->FindElement( i );
}
}
}
- else
+ else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
{
- // get IDs from submesh
+ // get submesh
SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(aSubMesh->_is_nil())
- return;
-
- myMesh = aSubMesh->GetFather();
- if(myMesh->_is_nil())
- return;
-
- myActor = SMESH::FindActorByObject(myMesh);
- if (!myActor)
- return;
+ // get IDs from submesh
SMESH::long_array_var anElementsIds = new SMESH::long_array;
anElementsIds = aSubMesh->GetElementsId();
for ( int i = 0; i < anElementsIds->length(); i++ )
myElementsId += QString(" %1").arg(anElementsIds[i]);
aNbUnits = anElementsIds->length();
- }
- }
- else
- {
- if(myMesh->_is_nil())
+ }
+ else // GROUP
{
- // get submesh
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(!aSubMesh->_is_nil())
- myMesh = aSubMesh->GetFather(); // get mesh from submesh
- else
- {
- // get group
- SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
- if ( !aGroup->_is_nil() )
- myMesh = aGroup->GetMesh(); // get mesh from group
- }
-
- if(myMesh->_is_nil())
+ // get smesh group
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+ if (aGroup->_is_nil())
return;
- // get mesh actor
- myActor = SMESH::FindActorByObject(myMesh);
+ // get IDs from smesh group
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ anElementsIds = aGroup->GetListOfID();
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbUnits = anElementsIds->length();
}
-
- if (!myActor)
- return;
-
+ }
+ else
+ {
aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
myElementsId = aString;
}
if (CheckBoxMesh->isChecked())
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
}
else
QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
if (toSelectMesh)
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter);
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
LineEditElements->setReadOnly(true);
}
else
#define DIALOGBOX_ROTATION_H
#include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
// QT Includes
#include <qdialog.h>
bool myBusy;
SMESH::SMESH_Mesh_var myMesh;
SMESH_Actor* myActor;
- Handle(SMESH_TypeFilter) myMeshOrSubMeshFilter;
+ Handle(SMESH_LogicalFilter) myMeshOrSubMeshOrGroupFilter;
QButtonGroup* GroupConstructors;
QRadioButton* RadioButton1;
QApplication::setOverrideCursor(Qt::waitCursor);
int aConstructorId = GetConstructorId();
+ SMESH::SMESH_MeshEditor::Sew_Error anError;
if (aConstructorId == 0)
- aResult = aMeshEditor->SewFreeBorders(LineEdit1->text().toLong(),
+ anError = aMeshEditor->SewFreeBorders(LineEdit1->text().toLong(),
LineEdit2->text().toLong(),
LineEdit3->text().toLong(),
LineEdit4->text().toLong(),
LineEdit5->text().toLong(),
LineEdit6->text().toLong());
else if (aConstructorId == 1)
- aResult = aMeshEditor->SewConformFreeBorders(LineEdit1->text().toLong(),
+ anError = aMeshEditor->SewConformFreeBorders(LineEdit1->text().toLong(),
LineEdit2->text().toLong(),
LineEdit3->text().toLong(),
LineEdit4->text().toLong(),
LineEdit5->text().toLong());
else if (aConstructorId == 2)
- aResult = aMeshEditor->SewBorderToSide(LineEdit1->text().toLong(),
+ anError = aMeshEditor->SewBorderToSide(LineEdit1->text().toLong(),
LineEdit2->text().toLong(),
LineEdit3->text().toLong(),
LineEdit4->text().toLong(),
for ( int i = 0; i < aListElementsId2.count(); i++ )
anElementsId2[i] = aListElementsId2[i].toInt();
- aResult = aMeshEditor->SewSideElements(anElementsId1.inout(),
+ anError = aMeshEditor->SewSideElements(anElementsId1.inout(),
anElementsId2.inout(),
LineEdit2->text().toLong(),
LineEdit5->text().toLong(),
LineEdit3->text().toLong(),
LineEdit6->text().toLong());
}
-
+ aResult = ( anError == SMESH::SMESH_MeshEditor::SEW_OK );
+
if (toMerge && aResult)
aMeshEditor->MergeEqualElements();
QApplication::restoreOverrideCursor();
- }
+
+ if ( !aResult ) {
+ QString msg = tr(QString("ERROR_%1").arg(anError));
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"),msg,tr("SMESH_BUT_OK"));
+ }
+ }
catch( ... )
{
}
#include "SMESHGUI_SpinBox.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_IdValidator.h"
#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
#include "SMDS_Mesh.hxx"
#include "QAD_Application.h"
mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
- myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ // Costruction of the logical filter
+ SMESH_ListOfFilter aListOfFilters;
+ Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ if ( !aMeshOrSubMeshFilter.IsNull() )
+ aListOfFilters.Append( aMeshOrSubMeshFilter );
+ Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+ if ( !aSmeshGroupFilter.IsNull() )
+ aListOfFilters.Append( aSmeshGroupFilter );
+
+ myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
Init();
/* signals and slots connections */
aMesh = myActor->GetObject()->GetMesh();
if ( aMesh ) {
-
mySelection->ClearIObjects();
mySelection->AddIObject( myActor->getIO() );
// clear
myActor = 0;
-
+ QString aString = "";
+
myBusy = true;
- myEditCurrentArgument->setText( "" );
+ if (myEditCurrentArgument == (QWidget*)LineEditElements)
+ {
+ LineEditElements->setText( aString );
+ myNbOkElements = 0;
+ buttonOk->setEnabled( false );
+ buttonApply->setEnabled( false );
+ }
myBusy = false;
if ( !GroupButtons->isEnabled() ) // inactive
return;
- buttonOk->setEnabled( false );
- buttonApply->setEnabled( false );
-
// get selected mesh
- QString aString = "";
-
+
int nbSel = mySelection->IObjectCount();
if(nbSel != 1)
return;
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-
- myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
+ myMesh = SMESH::GetMeshByIO(IO);
+ if(myMesh->_is_nil())
+ return;
+ myActor = SMESH::FindActorByObject(myMesh);
+ if (!myActor)
+ return;
- // get selected elements/nodes
-
int aNbUnits = 0;
if (myEditCurrentArgument == LineEditElements)
if (CheckBoxMesh->isChecked())
{
SMESH::GetNameOfSelectedIObjects(mySelection, aString);
- if(!myMesh->_is_nil())
+
+ if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
{
- if (!myActor)
- return;
-
// get IDs from mesh
SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
if (!aSMDSMesh)
return;
+
for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++ )
{
const SMDS_MeshElement * e = aSMDSMesh->FindElement( i );
}
}
}
- else
+ else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
{
// get submesh
SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(aSubMesh->_is_nil())
- return;
- myMesh = aSubMesh->GetFather();
- if(myMesh->_is_nil())
+ // get IDs from submesh
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ anElementsIds = aSubMesh->GetElementsId();
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbUnits = anElementsIds->length();
+ }
+ else // GROUP
+ {
+ // get smesh group
+ SMESH::SMESH_GroupBase_var aGroup
+ = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+ if (aGroup->_is_nil())
return;
- myActor = SMESH::FindActorByObject(myMesh);
- if (!myActor)
- return;
-
+ // get IDs from smesh group
SMESH::long_array_var anElementsIds = new SMESH::long_array;
- anElementsIds = aSubMesh->GetElementsId();
+ anElementsIds = aGroup->GetListOfID();
for ( int i = 0; i < anElementsIds->length(); i++ )
myElementsId += QString(" %1").arg(anElementsIds[i]);
aNbUnits = anElementsIds->length();
}
}
- else if(!myMesh->_is_nil() && myActor)
+ else
{
aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
myElementsId = aString;
myNbOkNodes = 0;
aNbUnits = SMESH::GetNameOfSelectedNodes(mySelection, aString) ;
}
-
+
if(aNbUnits < 1)
return ;
myBusy = false;
// OK
-
if (myEditCurrentArgument == LineEditElements)
myNbOkElements = true;
else if (myEditCurrentArgument == LineEditNodes)
if (CheckBoxMesh->isChecked())
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
}
else
QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
//=======================================================================
void SMESHGUI_SmoothingDlg::onSelectMesh ( bool toSelectMesh )
{
+ if (toSelectMesh)
+ TextLabelElements->setText( tr( "SMESH_NAME" ) );
+ else
+ TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+
+ if (myEditCurrentArgument != LineEditElements)
+ {
+ LineEditElements->clear();
+ return;
+ }
+
mySelection->ClearFilters() ;
+ SMESH::SetPointRepresentation(false);
if (toSelectMesh)
{
- TextLabelElements->setText( tr( "SMESH_NAME" ) );
-
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter);
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
LineEditElements->setReadOnly(true);
}
else
{
- TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
-
QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
LineEditElements->setReadOnly(false);
onTextChange(LineEditElements->text());
#define DIALOGBOX_SMOOTHING_H
#include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
// QT Includes
#include <qdialog.h>
bool myBusy;
SMESH::SMESH_Mesh_var myMesh;
SMESH_Actor* myActor;
- Handle(SMESH_TypeFilter) myMeshOrSubMeshFilter;
+ Handle(SMESH_LogicalFilter) myMeshOrSubMeshOrGroupFilter;
QButtonGroup* GroupConstructors;
QRadioButton* Constructor1;
#include "SMESHGUI.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_IdValidator.h"
#include "SMESHGUI_SpinBox.h"
#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
#include "SMDS_Mesh.hxx"
#include "QAD_Application.h"
mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
- myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ // Costruction of the logical filter
+ SMESH_ListOfFilter aListOfFilters;
+ Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ if ( !aMeshOrSubMeshFilter.IsNull() )
+ aListOfFilters.Append( aMeshOrSubMeshFilter );
+ Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+ if ( !aSmeshGroupFilter.IsNull() )
+ aListOfFilters.Append( aSmeshGroupFilter );
+
+ myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
Init();
/* signals and slots connections */
return;
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
- myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
+ myMesh = SMESH::GetMeshByIO( mySelection->firstIObject() );
+ if(myMesh->_is_nil())
+ return;
+ myActor = SMESH::FindActorByObject(myMesh);
+ if (!myActor)
+ return;
int aNbUnits = 0;
{
myElementsId = "";
- // get selected elements
if (CheckBoxMesh->isChecked())
{
SMESH::GetNameOfSelectedIObjects(mySelection, aString);
- if(!myMesh->_is_nil())
+
+ if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
{
- if (!myActor)
- return;
-
// get IDs from mesh
SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
if (!aSMDSMesh)
return;
+
for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++ )
{
const SMDS_MeshElement * e = aSMDSMesh->FindElement( i );
}
}
}
- else
+ else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
{
- // get IDs from submesh
+ // get submesh
SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(aSubMesh->_is_nil())
- return;
-
- myMesh = aSubMesh->GetFather();
- if(myMesh->_is_nil())
- return;
-
- myActor = SMESH::FindActorByObject(myMesh);
- if (!myActor)
- return;
+ // get IDs from submesh
SMESH::long_array_var anElementsIds = new SMESH::long_array;
anElementsIds = aSubMesh->GetElementsId();
for ( int i = 0; i < anElementsIds->length(); i++ )
myElementsId += QString(" %1").arg(anElementsIds[i]);
aNbUnits = anElementsIds->length();
- }
- }
- else
- {
- if(myMesh->_is_nil())
+ }
+ else // GROUP
{
- // get submesh
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(!aSubMesh->_is_nil())
- myMesh = aSubMesh->GetFather(); // get mesh from submesh
- else
- {
- // get group
- SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
- if ( !aGroup->_is_nil() )
- myMesh = aGroup->GetMesh(); // get mesh from group
- }
-
- if(myMesh->_is_nil())
+ // get smesh group
+ SMESH::SMESH_GroupBase_var aGroup
+ = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+ if (aGroup->_is_nil())
return;
- // get mesh actor
- myActor = SMESH::FindActorByObject(myMesh);
+ // get IDs from smesh group
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ anElementsIds = aGroup->GetListOfID();
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbUnits = anElementsIds->length();
}
-
- if (!myActor)
- return;
-
+ }
+ else
+ {
aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
myElementsId = aString;
}
if (CheckBoxMesh->isChecked())
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
}
else
QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
if (toSelectMesh)
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter);
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
LineEditElements->setReadOnly(true);
}
else
#define DIALOGBOX_SYMMETRY_H
#include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
// QT Includes
#include <qdialog.h>
bool myBusy;
SMESH::SMESH_Mesh_var myMesh;
SMESH_Actor* myActor;
- Handle(SMESH_TypeFilter) myMeshOrSubMeshFilter;
+ Handle(SMESH_LogicalFilter) myMeshOrSubMeshOrGroupFilter;
QButtonGroup* GroupConstructors;
QRadioButton* RadioButton1;
#include "SMESHGUI.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_IdValidator.h"
#include "SMESHGUI_SpinBox.h"
#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
#include "SMDS_Mesh.hxx"
#include "QAD_Application.h"
mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
- myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
-
+ // Costruction of the logical filter
+ SMESH_ListOfFilter aListOfFilters;
+ Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+ if ( !aMeshOrSubMeshFilter.IsNull() )
+ aListOfFilters.Append( aMeshOrSubMeshFilter );
+ Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+ if ( !aSmeshGroupFilter.IsNull() )
+ aListOfFilters.Append( aSmeshGroupFilter );
+
+ myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
+
Init();
/* signals and slots connections */
aMesh = myActor->GetObject()->GetMesh();
if ( aMesh ) {
-
mySelection->ClearIObjects();
mySelection->AddIObject( myActor->getIO() );
return;
Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
- myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
-
+ myMesh = SMESH::GetMeshByIO(IO);
+ if(myMesh->_is_nil())
+ return;
+ myActor = SMESH::FindActorByObject(myMesh);
+ if (!myActor)
+ return;
+
int aNbUnits = 0;
if (myEditCurrentArgument == (QWidget*)LineEditElements)
if (CheckBoxMesh->isChecked())
{
SMESH::GetNameOfSelectedIObjects(mySelection, aString);
- if(!myMesh->_is_nil())
+
+ if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
{
- if (!myActor)
- return;
-
// get IDs from mesh
SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
if (!aSMDSMesh)
}
}
}
- else
+ else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
{
// get submesh
SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(aSubMesh->_is_nil())
- return;
-
- myMesh = aSubMesh->GetFather();
- if(myMesh->_is_nil())
- return;
- myActor = SMESH::FindActorByObject(myMesh);
- if (!myActor)
- return;
-
// get IDs from submesh
SMESH::long_array_var anElementsIds = new SMESH::long_array;
anElementsIds = aSubMesh->GetElementsId();
myElementsId += QString(" %1").arg(anElementsIds[i]);
aNbUnits = anElementsIds->length();
}
- }
- else
- {
- if(myMesh->_is_nil())
+ else // GROUP
{
- // get submesh
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
- if(!aSubMesh->_is_nil())
- myMesh = aSubMesh->GetFather(); // get mesh from submesh
- else
- {
- // get group
- SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
- if ( !aGroup->_is_nil() )
- myMesh = aGroup->GetMesh(); // get mesh from group
- }
-
- if(myMesh->_is_nil())
+ // get smesh group
+ SMESH::SMESH_GroupBase_var aGroup =
+ SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+ if (aGroup->_is_nil())
return;
- // get mesh actor
- myActor = SMESH::FindActorByObject(myMesh);
+ // get IDs from smesh group
+ SMESH::long_array_var anElementsIds = new SMESH::long_array;
+ anElementsIds = aGroup->GetListOfID();
+ for ( int i = 0; i < anElementsIds->length(); i++ )
+ myElementsId += QString(" %1").arg(anElementsIds[i]);
+ aNbUnits = anElementsIds->length();
}
-
- if (!myActor)
- return;
-
+ }
+ else
+ {
aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
myElementsId = aString;
}
double x = n->X();
double y = n->Y();
double z = n->Z();
-
+
if (myEditCurrentArgument == (QWidget*)SpinBox1_1)
{
SpinBox1_1->SetValue(x);
myBusy = false;
// OK
-
if(myNbOkElements)
{
buttonOk->setEnabled( true );
if (CheckBoxMesh->isChecked())
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
}
else
QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
if (toSelectMesh)
{
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
- mySelection->AddFilter(myMeshOrSubMeshFilter);
+ mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
LineEditElements->setReadOnly(true);
}
else
#define DIALOGBOX_TRANSLATION_H
#include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
// QT Includes
#include <qdialog.h>
bool myBusy;
SMESH::SMESH_Mesh_var myMesh;
SMESH_Actor* myActor;
- Handle(SMESH_TypeFilter) myMeshOrSubMeshFilter;
+ Handle(SMESH_LogicalFilter) myMeshOrSubMeshOrGroupFilter;
QButtonGroup* GroupConstructors;
QRadioButton* RadioButton1;
return aVisualObj;
}
//Try narrow to SMESH_Group interafce
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow(anObj);
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObj);
if(!aGroup->_is_nil()){
SALOMEDS::SObject_var aFatherSObj = aSObj->GetFather();
if(aFatherSObj->_is_nil()) return aVisualObj;
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"POT-Creation-Date: 2002-05-28 10:46:48 AM CEST\n"
-"PO-Revision-Date: 2004-04-23 13:04+0400\n"
+"PO-Revision-Date: 2004-10-20 17:25+0400\n"
"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
#Select whole mesh or submesh
msgid "SMESH_SELECT_WHOLE_MESH"
-msgstr "Select whole mesh or submesh"
+msgstr "Select whole mesh, submesh or group"
#Smoothing
msgid "SMESH_SMOOTHING"
msgid "SMESH_GROUP"
msgstr "Group"
+#Group type
+msgid "SMESH_GROUP_TYPE"
+msgstr "Group type"
+
+#Group type: standalone
+msgid "SMESH_GROUP_STANDALONE"
+msgstr "Standalone group"
+
+#Group type: geometry
+msgid "SMESH_GROUP_GEOMETRY"
+msgstr "Group on geometry"
+
#Geometry group
msgid "SMESH_GEOM_GROUP"
msgstr "Geometry group"
msgid "SMESHGUI_SewingDlg::LAST_NODE_ID"
msgstr "Last Node ID"
+msgid "SMESHGUI_SewingDlg::ERROR_1"
+msgstr "Free Border1 not found by the selected nodes"
+
+msgid "SMESHGUI_SewingDlg::ERROR_2"
+msgstr "Free Border2 not found by the selected nodes"
+
+msgid "SMESHGUI_SewingDlg::ERROR_3"
+msgstr "Free Border1 and Border2 not found by the selected nodes"
+
+msgid "SMESHGUI_SewingDlg::ERROR_4"
+msgstr "No path from the first side node to the last side node have been found"
+
+msgid "SMESHGUI_SewingDlg::ERROR_5"
+msgstr "Not allowed to splite volumes on the side!"
+
+msgid "SMESHGUI_SewingDlg::ERROR_6"
+msgstr "Different number of elements selected on the sides"
+
+msgid "SMESHGUI_SewingDlg::ERROR_7"
+msgstr "Element sets are topologically different or given nodes are inconvenient"
+
+msgid "SMESHGUI_SewingDlg::ERROR_8"
+msgstr "Nodes on the side 1 are either not linked or not laying on the element set boundary"
+
+msgid "SMESHGUI_SewingDlg::ERROR_9"
+msgstr "Nodes on the side 2 are either not linked or not laying on the element set boundary"
+
+
#----------------------------------------------------
#Coincident nodes
LIB_SRC = \
SMESH_Gen_i.cxx \
+ SMESH_Gen_i_1.cxx \
SMESH_Mesh_i.cxx \
SMESH_MEDMesh_i.cxx \
SMESH_MEDFamily_i.cxx \
SALOME_Component.idl SALOME_Exception.idl \
SMESH_Filter.idl SMESH_Group.idl SMESH_Pattern.idl
-LIB_CLIENT_IDL = SALOMEDS.idl GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl SALOME_GenericObj.idl
+LIB_CLIENT_IDL = SALOMEDS.idl GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl SALOME_GenericObj.idl SALOME_Comm.idl
# Executables targets
BIN = SMESHEngine
#include "SMESHDS_Document.hxx"
#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
#include "SMESH_Group.hxx"
#include "SMDS_EdgePosition.hxx"
static int MYDEBUG = 0;
#endif
-// Tags definition ===========================================================
-// Top level
-long Tag_HypothesisRoot = 1; // hypotheses root
-long Tag_AlgorithmsRoot = 2; // algorithms root
-// Mesh/Submesh
-long Tag_RefOnShape = 1; // references to shape
-long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
-long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
-// Mesh only
-long Tag_SubMeshOnVertex = 4; // sub-meshes roots by type
-long Tag_SubMeshOnEdge = 5; // ...
-long Tag_SubMeshOnWire = 6; // ...
-long Tag_SubMeshOnFace = 7; // ...
-long Tag_SubMeshOnShell = 8; // ...
-long Tag_SubMeshOnSolid = 9; // ...
-long Tag_SubMeshOnCompound = 10; // ...
-long Tag_NodeGroups = 11; // Group roots by type
-long Tag_EdgeGroups = 12; // ...
-long Tag_FaceGroups = 13; // ...
-long Tag_VolumeGroups = 14; // ...
-// ===========================================================================
-
// Static variables definition
CORBA::ORB_var SMESH_Gen_i::myOrb;
PortableServer::POA_var SMESH_Gen_i::myPoa;
SALOME_LifeCycleCORBA* SMESH_Gen_i::myLCC = NULL;
SMESH_Gen_i* SMESH_Gen_i::mySMESHGen = NULL;
-//=============================================================================
-/*!
- * FindMaxChildTag [ static internal ]
- *
- * Finds maximum child tag for the given object
- */
-//=============================================================================
-
-static long FindMaxChildTag( SALOMEDS::SObject_ptr theSObject )
-{
- long aTag = 0;
- if ( !theSObject->_is_nil() ) {
- SALOMEDS::Study_var aStudy = theSObject->GetStudy();
- if ( !aStudy->_is_nil() ) {
- SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator( theSObject );
- for ( ; anIter->More(); anIter->Next() ) {
- long nTag = anIter->Value()->Tag();
- if ( nTag > aTag )
- aTag = nTag;
- }
- }
- }
- return aTag;
-}
-
-//=============================================================================
-/*!
- * Get...Tag [ static ]
- *
- * Methods which determine SMESH data model structure
- */
-//=============================================================================
-
-long SMESH_Gen_i::GetHypothesisRootTag()
-{
- return Tag_HypothesisRoot;
-}
-
-long SMESH_Gen_i::GetAlgorithmsRootTag()
-{
- return Tag_AlgorithmsRoot;
-}
-
-long SMESH_Gen_i::GetRefOnShapeTag()
-{
- return Tag_RefOnShape;
-}
-
-long SMESH_Gen_i::GetRefOnAppliedHypothesisTag()
-{
- return Tag_RefOnAppliedHypothesis;
-}
-
-long SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag()
-{
- return Tag_RefOnAppliedAlgorithms;
-}
-
-long SMESH_Gen_i::GetSubMeshOnVertexTag()
-{
- return Tag_SubMeshOnVertex;
-}
-
-long SMESH_Gen_i::GetSubMeshOnEdgeTag()
-{
- return Tag_SubMeshOnEdge;
-}
-
-long SMESH_Gen_i::GetSubMeshOnFaceTag()
-{
- return Tag_SubMeshOnFace;
-}
-
-long SMESH_Gen_i::GetSubMeshOnSolidTag()
-{
- return Tag_SubMeshOnSolid;
-}
-
-long SMESH_Gen_i::GetSubMeshOnCompoundTag()
-{
- return Tag_SubMeshOnCompound;
-}
-
-long SMESH_Gen_i::GetSubMeshOnWireTag()
-{
- return Tag_SubMeshOnWire;
-}
-
-long SMESH_Gen_i::GetSubMeshOnShellTag()
-{
- return Tag_SubMeshOnShell;
-}
-
-long SMESH_Gen_i::GetNodeGroupsTag()
-{
- return Tag_NodeGroups;
-}
-
-long SMESH_Gen_i::GetEdgeGroupsTag()
-{
- return Tag_EdgeGroups;
-}
-
-long SMESH_Gen_i::GetFaceGroupsTag()
-{
- return Tag_FaceGroups;
-}
-
-long SMESH_Gen_i::GetVolumeGroupsTag()
-{
- return Tag_VolumeGroups;
-}
-
//=============================================================================
/*!
* GetServant [ static ]
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "Create Hypothesis <" << theHypName << "> from " << theLibName);
- // get study context
- StudyContext* myStudyContext = GetCurrentStudyContext();
-
// create a new hypothesis object servant
SMESH_Hypothesis_i* myHypothesis_i = 0;
SMESH::SMESH_Hypothesis_var hypothesis_i;
// create a new hypothesis object, store its ref. in studyContext
if(MYDEBUG) MESSAGE("Create Hypothesis " << theHypName);
myHypothesis_i =
- myHypCreatorMap[string(theHypName)]->Create
- (myPoa, myCurrentStudy->StudyId(), &myGen);
+ myHypCreatorMap[string(theHypName)]->Create (myPoa, GetCurrentStudyID(), &myGen);
// _CS_gbo Explicit activation (no longer made in the constructor).
myHypothesis_i->Activate();
myHypothesis_i->SetLibName(theLibName); // for persistency assurance
// activate the CORBA servant of hypothesis
hypothesis_i = SMESH::SMESH_Hypothesis::_narrow( myHypothesis_i->_this() );
- string iorString = GetORB()->object_to_string( hypothesis_i );
- int nextId = myStudyContext->addObject( iorString );
- if(MYDEBUG) MESSAGE( "Add hypo to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+ int nextId = RegisterObject( hypothesis_i );
+ if(MYDEBUG) MESSAGE( "Add hypo to map with id = "<< nextId );
return hypothesis_i._retn();
}
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::createMesh" );
- // get current study
- StudyContext* myStudyContext = GetCurrentStudyContext();
-
// Get or create the GEOM_Client instance
try {
// create a new mesh object servant, store it in a map in study context
- SMESH_Mesh_i* meshServant = new SMESH_Mesh_i( GetPOA(),
- this,
- myCurrentStudy->StudyId() );
+ SMESH_Mesh_i* meshServant = new SMESH_Mesh_i( GetPOA(), this, GetCurrentStudyID() );
// create a new mesh object
- meshServant->SetImpl( myGen.CreateMesh( myCurrentStudy->StudyId() ) );
+ meshServant->SetImpl( myGen.CreateMesh( GetCurrentStudyID() ));
// activate the CORBA servant of Mesh
- SMESH::SMESH_Mesh_var mesh = meshServant->_this();
- string iorString = GetORB()->object_to_string( mesh );
- int nextId = myStudyContext->addObject( iorString );
- if(MYDEBUG) MESSAGE( "Add mesh to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+ SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( meshServant->_this() );
+ int nextId = RegisterObject( mesh );
+ if(MYDEBUG) MESSAGE( "Add mesh to map with id = "<< nextId);
return mesh._retn();
}
catch (SALOME_Exception& S_ex) {
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SetCurrentStudy" );
myCurrentStudy = SALOMEDS::Study::_duplicate( theStudy );
// create study context, if it doesn't exist and set current study
- int studyId = myCurrentStudy->StudyId();
+ int studyId = GetCurrentStudyID();
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SetCurrentStudy: study Id = " << studyId );
if ( myStudyContextMap.find( studyId ) == myStudyContextMap.end() ) {
myStudyContextMap[ studyId ] = new StudyContext;
SALOMEDS::Study_ptr SMESH_Gen_i::GetCurrentStudy()
{
- if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetCurrentStudy: study Id = " << myCurrentStudy->StudyId() );
+ if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetCurrentStudy: study Id = " << GetCurrentStudyID() );
return SALOMEDS::Study::_duplicate( myCurrentStudy );
}
//=============================================================================
StudyContext* SMESH_Gen_i::GetCurrentStudyContext()
{
- ASSERT( !CORBA::is_nil( myCurrentStudy ) )
- ASSERT( myStudyContextMap.find( myCurrentStudy->StudyId() ) != myStudyContextMap.end() );
- return myStudyContextMap[ myCurrentStudy->StudyId() ];
+ if ( !CORBA::is_nil( myCurrentStudy ) &&
+ myStudyContextMap.find( GetCurrentStudyID() ) != myStudyContextMap.end() )
+ return myStudyContextMap[ myCurrentStudy->StudyId() ];
+ else
+ return 0;
}
//=============================================================================
throw ( SALOME::SALOME_Exception )
{
Unexpect aCatch(SALOME_SalomeException);
- ASSERT( !CORBA::is_nil( myCurrentStudy ) );
// Create hypothesis/algorithm
SMESH::SMESH_Hypothesis_var hyp = this->createHypothesis( theHypName, theLibName );
// Publish hypothesis/algorithm in the study
- if ( this->CanPublishInStudy( hyp ) ) {
- this->PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), hyp, "" );
- }
+ if ( CanPublishInStudy( hyp ) )
+ PublishHypothesis( myCurrentStudy, hyp );
+
return hyp._retn();
}
{
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
- ASSERT( !CORBA::is_nil( myCurrentStudy ) );
// create mesh
SMESH::SMESH_Mesh_var mesh = this->createMesh();
- // publish mesh in the study
- if ( this->CanPublishInStudy( mesh ) ) {
- this->PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), mesh.in(), "" );
- }
// set shape
SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( mesh ).in() );
ASSERT( meshServant );
meshServant->SetShape( theShapeObject );
+ // publish mesh in the study
+ if ( CanPublishInStudy( mesh ) )
+ PublishMesh( myCurrentStudy, mesh.in() );
return mesh._retn();
}
-
+
//=============================================================================
/*!
* SMESH_Gen_i::CreateMeshFromUNV
{
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromUNV" );
- ASSERT( !CORBA::is_nil( myCurrentStudy ) );
SMESH::SMESH_Mesh_var aMesh = createMesh();
string aFileName; // = boost::filesystem::path(theFileName).leaf();
// publish mesh in the study
- if ( CanPublishInStudy( aMesh ) ) {
- PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), aMesh.in(), aFileName.c_str() );
- }
+ if ( CanPublishInStudy( aMesh ) )
+ PublishMesh( myCurrentStudy, aMesh.in(), aFileName.c_str() );
+
SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
ASSERT( aServant );
aServant->ImportUNVFile( theFileName );
{
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
- ASSERT( !CORBA::is_nil( myCurrentStudy ) );
// Retrieve mesh names from the file
DriverMED_R_SMESHDS_Mesh myReader;
SMESH::SMESH_Mesh_var mesh = createMesh();
// publish mesh in the study
- if ( CanPublishInStudy( mesh ) ) {
- PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), mesh.in(), (*it).c_str() );
- }
+ if ( CanPublishInStudy( mesh ) )
+ PublishMesh( myCurrentStudy, mesh.in(), (*it).c_str() );
// Read mesh data (groups are published automatically by ImportMEDFile())
SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( mesh ).in() );
meshServant->ImportMEDFile( theFileName, (*it).c_str() );
if (status1 > theStatus)
theStatus = status1;
-
+
aResult[i++] = SMESH::SMESH_Mesh::_duplicate( mesh );
}
}
{
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromSTL" );
- ASSERT( !CORBA::is_nil( myCurrentStudy ) );
SMESH::SMESH_Mesh_var aMesh = createMesh();
string aFileName; // = boost::filesystem::path(theFileName).leaf();
// publish mesh in the study
- if ( CanPublishInStudy( aMesh ) ) {
+ if ( CanPublishInStudy( aMesh ) )
PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), aMesh.in(), aFileName.c_str() );
- }
+
SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
ASSERT( aServant );
aServant->ImportSTLFile( theFileName );
ASSERT( meshServant );
if ( meshServant ) {
// get local TopoDS_Shape
- TopoDS_Shape myLocShape = GetShapeReader()->GetShape( GetGeomEngine(), theShapeObject );
+ TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
// call implementation
::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
return myGen.CheckAlgoState( myLocMesh, myLocShape );
try
{
- if ( !myShapeReader )
- myShapeReader = new GEOM_Client( GetContainerRef() );
- ASSERT(myShapeReader);
- TopoDS_Shape myMainShape = GetShapeReader()->GetShape(GetGeomEngine(),theMainShapeObject);
+ TopoDS_Shape myMainShape = GeomObjectToShape(theMainShapeObject);
TopTools_IndexedMapOfShape myIndexToShape;
TopExp::MapShapes(myMainShape,myIndexToShape);
THROW_SALOME_CORBA_EXCEPTION ("bad shape object reference", \
SALOME::BAD_PARAM );
- TopoDS_Shape locShape = GetShapeReader()->GetShape(GetGeomEngine(),aShapeObject);
+ TopoDS_Shape locShape = GeomObjectToShape(aShapeObject);
for (TopExp_Explorer exp(locShape,TopAbs_FACE); exp.More(); exp.Next())
{
const TopoDS_Face& F = TopoDS::Face(exp.Current());
ASSERT( meshServant );
if ( meshServant ) {
// get local TopoDS_Shape
- TopoDS_Shape myLocShape = GetShapeReader()->GetShape( GetGeomEngine(), theShapeObject );
- // call implementarion compute
+ TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
+ // call implementation compute
::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
return myGen.Compute( myLocMesh, myLocShape);
}
aGroup->CreateOnDisk();
SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( myGroupsBranch );
- int grpNb = 0;
for ( ; it->More(); it->Next() ) {
SALOMEDS::SObject_var mySObject = it->Value();
CORBA::Object_var aSubObject = SObjectToObject( mySObject );
if ( !CORBA::is_nil( aSubObject ) ) {
- SMESH_Group_i* myGroupImpl = dynamic_cast<SMESH_Group_i*>( GetServant( aSubObject ).in() );
+ SMESH_GroupBase_i* myGroupImpl =
+ dynamic_cast<SMESH_GroupBase_i*>( GetServant( aSubObject ).in() );
if ( !myGroupImpl )
continue;
if ( myLocMesh.GetGroup( myGroupImpl->GetLocalID() ) ) {
if(MYDEBUG) MESSAGE( "VSR - SMESH_Gen_i::Save(): saving group with StoreName = "
<< grpName << " to MED file" );
- SMESHDS_Group* aGrpDS = myLocMesh.GetGroup( myGroupImpl->GetLocalID() )->GetGroupDS();
- aGrpDS->SetStoreName( grpName );
+ SMESHDS_GroupBase* aGrpBaseDS =
+ myLocMesh.GetGroup( myGroupImpl->GetLocalID() )->GetGroupDS();
+ aGrpBaseDS->SetStoreName( grpName );
// Pass SMESHDS_Group to MED writer
- myWriter.AddGroup( aGrpDS );
+ SMESHDS_Group* aGrpDS = dynamic_cast<SMESHDS_Group*>( aGrpBaseDS );
+ if ( aGrpDS )
+ myWriter.AddGroup( aGrpDS );
+
+ // write reference on a shape if exists
+ SMESHDS_GroupOnGeom* aGeomGrp =
+ dynamic_cast<SMESHDS_GroupOnGeom*>( aGrpBaseDS );
+ if ( aGeomGrp ) {
+ SALOMEDS::SObject_var mySubRef, myShape;
+ if (mySObject->FindSubObject( GetRefOnShapeTag(), mySubRef ) &&
+ mySubRef->ReferencedObject( myShape ))
+ {
+ string myRefOnObject = myShape->GetID();
+ if ( myRefOnObject.length() > 0 ) {
+ char aRefName[ 30 ];
+ sprintf( aRefName, "Ref on shape %d", anId);
+ aSize[ 0 ] = myRefOnObject.length() + 1;
+ aDataset = new HDFdataset(aRefName, aGroup, HDF_STRING, aSize, 1);
+ aDataset->CreateOnDisk();
+ aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
+ aDataset->CloseOnDisk();
+ }
+ }
+ }
}
}
}
for ( ; itSubM != aSubMeshes.end() ; itSubM++ )
{
SMESHDS_SubMesh* aSubMesh = (*itSubM).second;
+ if ( aSubMesh->IsComplexSubmesh() )
+ continue; // submesh containing other submeshs
int nbNodes = aSubMesh->NbNodes();
if ( nbNodes == 0 ) continue;
for ( ; itSM != pListSM->end(); itSM++ )
{
SMESHDS_SubMesh* aSubMesh = (*itSM);
+ if ( aSubMesh->IsComplexSubmesh() )
+ continue; // submesh containing other submeshs
SMDS_NodeIteratorPtr itNode = aSubMesh->GetNodes();
// loop on nodes in aSubMesh
if ( !CORBA::is_nil( shapeObject ) ) {
aShapeObject = GEOM::GEOM_Object::_narrow( shapeObject );
if ( !aShapeObject->_is_nil() )
- myNewMeshImpl->setShape( aShapeObject );
+ myNewMeshImpl->SetShape( aShapeObject );
}
}
}
// Recompute State (as computed sub-meshes are restored from MED)
if ( !aShapeObject->_is_nil() ) {
MESSAGE("JFA - Compute State Engine ...");
- TopoDS_Shape myLocShape = GetShapeReader()->GetShape( GetGeomEngine(), aShapeObject );
- myNewMeshImpl->GetImpl().GetSubMesh(myLocShape)->ComputeStateEngine(SMESH_subMesh::SUBMESH_RESTORED);
+ TopoDS_Shape myLocShape = GeomObjectToShape( aShapeObject );
+ myNewMeshImpl->GetImpl().GetSubMesh(myLocShape)->ComputeStateEngine
+ (SMESH_subMesh::SUBMESH_RESTORED);
MESSAGE("JFA - Compute State Engine finished");
}
char* nameFromFile = new char[ size ];
aDataset->ReadFromDisk( nameFromFile );
aDataset->CloseOnDisk();
-
+
+ // Try to find a shape reference
+ TopoDS_Shape aShape;
+ char aRefName[ 30 ];
+ sprintf( aRefName, "Ref on shape %d", subid);
+ if ( aGroup->ExistInternalObject( aRefName ) ) {
+ // load mesh "Ref on shape" - it's an entry to SObject
+ aDataset = new HDFdataset( aRefName, aGroup );
+ aDataset->OpenOnDisk();
+ size = aDataset->GetSize();
+ char* refFromFile = new char[ size ];
+ aDataset->ReadFromDisk( refFromFile );
+ aDataset->CloseOnDisk();
+ if ( strlen( refFromFile ) > 0 ) {
+ SALOMEDS::SObject_var shapeSO = myCurrentStudy->FindObjectID( refFromFile );
+ CORBA::Object_var shapeObject = SObjectToObject( shapeSO );
+ if ( !CORBA::is_nil( shapeObject ) ) {
+ aShapeObject = GEOM::GEOM_Object::_narrow( shapeObject );
+ if ( !aShapeObject->_is_nil() )
+ aShape = GeomObjectToShape( aShapeObject );
+ }
+ }
+ }
// Create group servant
- SMESH::SMESH_Group_var aNewGroup = SMESH::SMESH_Group::_duplicate
- ( myNewMeshImpl->createGroup( (SMESH::ElementType)(ii - GetNodeGroupsTag() + 1),
- nameFromFile ) );
+ SMESH::ElementType type = (SMESH::ElementType)(ii - GetNodeGroupsTag() + 1);
+ SMESH::SMESH_GroupBase_var aNewGroup = SMESH::SMESH_GroupBase::_duplicate
+ ( myNewMeshImpl->createGroup( type, nameFromFile, aShape ) );
// Obtain a SMESHDS_Group object
if ( aNewGroup->_is_nil() )
continue;
int newSubId = myStudyContext->findId( iorSubString );
myStudyContext->mapOldToNew( subid, newSubId );
- SMESH_Group_i* aGroupImpl = dynamic_cast<SMESH_Group_i*>( GetServant( aNewGroup ).in() );
+ SMESH_GroupBase_i* aGroupImpl =
+ dynamic_cast<SMESH_GroupBase_i*>( GetServant( aNewGroup ).in() );
if ( !aGroupImpl )
continue;
if ( !aLocalGroup )
continue;
- SMESHDS_Group* aGroupDS = aLocalGroup->GetGroupDS();
- aGroupDS->SetStoreName( name_dataset );
+ SMESHDS_GroupBase* aGroupBaseDS = aLocalGroup->GetGroupDS();
+ aGroupBaseDS->SetStoreName( name_dataset );
// Fill group with contents from MED file
- myReader.GetGroup( aGroupDS );
+ SMESHDS_Group* aGrp = dynamic_cast<SMESHDS_Group*>( aGroupBaseDS );
+ if ( aGrp )
+ myReader.GetGroup( aGrp );
}
}
aGroup->CloseOnDisk();
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::Close" );
// Clear study contexts data
- int studyId = myCurrentStudy->StudyId();
+ int studyId = GetCurrentStudyID();
if ( myStudyContextMap.find( studyId ) != myStudyContextMap.end() ) {
delete myStudyContextMap[ studyId ];
myStudyContextMap.erase( studyId );
*/
//=============================================================================
-char* SMESH_Gen_i::IORToLocalPersistentID( SALOMEDS::SObject_ptr theSObject,
+char* SMESH_Gen_i::IORToLocalPersistentID( SALOMEDS::SObject_ptr /*theSObject*/,
const char* IORString,
- CORBA::Boolean isMultiFile,
- CORBA::Boolean isASCII )
+ CORBA::Boolean /*isMultiFile*/,
+ CORBA::Boolean /*isASCII*/ )
{
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::IORToLocalPersistentID" );
StudyContext* myStudyContext = GetCurrentStudyContext();
- if ( strcmp( IORString, "" ) != 0 ) {
+ if ( myStudyContext && strcmp( IORString, "" ) != 0 ) {
int anId = myStudyContext->findId( IORString );
if ( anId ) {
if(MYDEBUG) MESSAGE( "VSR " << anId )
*/
//=============================================================================
-char* SMESH_Gen_i::LocalPersistentIDToIOR( SALOMEDS::SObject_ptr theSObject,
+char* SMESH_Gen_i::LocalPersistentIDToIOR( SALOMEDS::SObject_ptr /*theSObject*/,
const char* aLocalPersistentID,
- CORBA::Boolean isMultiFile,
- CORBA::Boolean isASCII )
+ CORBA::Boolean /*isMultiFile*/,
+ CORBA::Boolean /*isASCII*/ )
{
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::LocalPersistentIDToIOR(): id = " << aLocalPersistentID );
StudyContext* myStudyContext = GetCurrentStudyContext();
- if ( strcmp( aLocalPersistentID, "" ) != 0 ) {
+ if ( myStudyContext && strcmp( aLocalPersistentID, "" ) != 0 ) {
int anId = atoi( aLocalPersistentID );
return CORBA::string_dup( myStudyContext->getIORbyOldId( anId ).c_str() );
}
return CORBA::string_dup( "" );
}
-//=============================================================================
-/*!
- * SMESH_Gen_i::CanPublishInStudy
- *
- * Returns true if object can be published in the study
- */
-//=============================================================================
-
-bool SMESH_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
-{
- SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(theIOR);
- if( !aMesh->_is_nil() )
- return true;
-
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(theIOR);
- if( !aSubMesh->_is_nil() )
- return true;
-
- SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow(theIOR);
- if( !aHyp->_is_nil() )
- return true;
-
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow(theIOR);
- if( !aGroup->_is_nil() )
- return true;
-
- return false;
-}
-
-//=============================================================================
-/*!
- * SMESH_Gen_i::PublishInStudy
- *
- * Publish object in the study
- */
-//=============================================================================
+//=======================================================================
+//function : RegisterObject
+//purpose :
+//=======================================================================
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
- SALOMEDS::SObject_ptr theSObject,
- CORBA::Object_ptr theIOR,
- const char* theName)
-throw (SALOME::SALOME_Exception)
+int SMESH_Gen_i::RegisterObject(CORBA::Object_ptr theObject)
{
- Unexpect aCatch(SALOME_SalomeException);
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy()" );
- SALOMEDS::SObject_var aSO;
-
- SALOMEDS::SComponent_var father =
- SALOMEDS::SComponent::_narrow( theStudy->FindComponent( ComponentDataType() ) );
- SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
-
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributePixMap_var aPixmap;
-
- if ( father->_is_nil() ) {
- SALOME_ModuleCatalog::ModuleCatalog_var aCat =
- SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") );
- if ( CORBA::is_nil( aCat ) )
- return aSO._retn();
-
- SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( ComponentDataType() );
- if ( CORBA::is_nil( aComp ) )
- return aSO._retn();
-
- father = aStudyBuilder->NewComponent( ComponentDataType() );
- anAttr = aStudyBuilder->FindOrCreateAttribute( father, "AttributeName" );
- aName = SALOMEDS::AttributeName::_narrow( anAttr );
- aName ->SetValue( aComp->componentusername() );
- anAttr = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPixmap ->SetPixMap( "ICON_OBJBROWSER_SMESH" );
- aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() );
- }
-
- if ( father->_is_nil() )
- return aSO._retn();
-
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- TCollection_AsciiString anObjName("obj");
-
- // Publishing a mesh
- SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( theIOR );
- if( !aMesh->_is_nil() ) {
- // Find correct free tag
- long aTag = FindMaxChildTag( father.in() );
- if ( aTag <= GetAlgorithmsRootTag() )
- aTag = GetAlgorithmsRootTag() + 1;
- else
- aTag++;
- // Add New Mesh
- SALOMEDS::SObject_var newMesh = aStudyBuilder->NewObjectToTag( father, aTag );
- anAttr = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPixmap ->SetPixMap( "ICON_SMESH_TREE_MESH" );
- anAttr = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributeIOR" );
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR ->SetValue( GetORB()->object_to_string( aMesh ) );
- aSO = SALOMEDS::SObject::_narrow( newMesh );
- anObjName = TCollection_AsciiString( "Mesh" );
- }
-
- // Publishing a sub-mesh
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( theIOR );
- if( aSO->_is_nil() && !aSubMesh->_is_nil() ) {
- // try to obtain a parent mesh's SObject
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing submesh..." );
- SALOMEDS::SObject_var aParentSO;
- SMESH::SMESH_Mesh_var aParentMesh;
- SMESH_subMesh_i* aServant = dynamic_cast<SMESH_subMesh_i*>( GetServant( aSubMesh ).in() );
- if ( aServant != NULL ) {
- aParentMesh = aServant->_mesh_i->_this();
- if ( !aParentMesh->_is_nil() ) {
- aParentSO = theStudy->FindObjectIOR( GetORB()->object_to_string( aParentMesh ) );
- }
- }
-
- // Find submesh sub-tree tag
- if ( !aParentSO->_is_nil() ) {
- long aRootTag = GetSubMeshOnVertexTag();
- char* aRootName = "";
-
- SMESH_Mesh_i* aMeshServant = aServant->_mesh_i;
- if ( aMeshServant->_mapSubMesh.find( aServant->GetId() ) != aMeshServant->_mapSubMesh.end() ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): local submesh found" )
- SMESH_subMesh* aLocalSubMesh = aMeshServant->_mapSubMesh[aServant->GetId()];
- switch ( aLocalSubMesh->GetSubShape().ShapeType() ) {
- case TopAbs_VERTEX:
- aRootTag = GetSubMeshOnVertexTag();
- aRootName = "SubMeshes on Vertex";
- break;
- case TopAbs_EDGE:
- aRootTag = GetSubMeshOnEdgeTag();
- aRootName = "SubMeshes on Edge";
- break;
- case TopAbs_WIRE:
- aRootTag = GetSubMeshOnWireTag();
- aRootName = "SubMeshes on Wire";
- break;
- case TopAbs_FACE:
- aRootTag = GetSubMeshOnFaceTag();
- aRootName = "SubMeshes on Face";
- break;
- case TopAbs_SHELL:
- aRootTag = GetSubMeshOnShellTag();
- aRootName = "SubMeshes on Shell";
- break;
- case TopAbs_SOLID:
- aRootTag = GetSubMeshOnSolidTag();
- aRootName = "SubMeshes on Solid";
- break;
- default:
- aRootTag = GetSubMeshOnCompoundTag();
- aRootName = "SubMeshes on Compound";
- break;
- }
- }
- else {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): local submesh NOT found" );
- }
-
- // Find or create submesh root
- SALOMEDS::SObject_var aRootSO;
- if ( !aParentSO->FindSubObject ( aRootTag, aRootSO ) ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): creating submesh root..." );
- aRootSO = aStudyBuilder->NewObjectToTag( aParentSO, aRootTag );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeName" );
- aName = SALOMEDS::AttributeName::_narrow( anAttr );
- aName ->SetValue( aRootName );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeSelectable" );
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
- aSelAttr ->SetSelectable( false );
- }
-
- // Add new submesh to corresponding sub-tree
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): adding submesh to study..." );
- SALOMEDS::SObject_var newMesh = aStudyBuilder->NewObject( aRootSO );
- anAttr = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPixmap ->SetPixMap( "ICON_SMESH_TREE_MESH" );
- anAttr = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributeIOR" );
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR ->SetValue( GetORB()->object_to_string( aSubMesh ) );
- aSO = SALOMEDS::SObject::_narrow( newMesh );
- anObjName = TCollection_AsciiString( "SubMesh" );
- }
- else {
- if(MYDEBUG) SCRUTE( aParentSO->_is_nil() );
- }
- }
-
- // Publishing a hypothesis or algorithm
- SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( theIOR );
- if( aSO->_is_nil() && !aHyp->_is_nil() ) {
- //Find or Create Hypothesis root
- SALOMEDS::SObject_var HypothesisRoot;
- Standard_Integer aRootTag =
- SMESH::SMESH_Algo::_narrow( theIOR )->_is_nil() ? GetHypothesisRootTag() : GetAlgorithmsRootTag();
-
- if ( !father->FindSubObject ( aRootTag, HypothesisRoot ) ) {
- HypothesisRoot = aStudyBuilder->NewObjectToTag( father, aRootTag );
- anAttr = aStudyBuilder->FindOrCreateAttribute( HypothesisRoot, "AttributeName" );
- aName = SALOMEDS::AttributeName::_narrow( anAttr );
- aName ->SetValue( aRootTag == GetHypothesisRootTag() ? "Hypotheses" : "Algorithms" );
- anAttr = aStudyBuilder->FindOrCreateAttribute( HypothesisRoot, "AttributeSelectable" );
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
- aSelAttr ->SetSelectable( false );
- anAttr = aStudyBuilder->FindOrCreateAttribute( HypothesisRoot, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPixmap ->SetPixMap( aRootTag == GetHypothesisRootTag() ? "ICON_SMESH_TREE_HYPO" : "ICON_SMESH_TREE_ALGO" );
- }
-
- // Add New Hypothesis
- string aPmName;
- SALOMEDS::SObject_var newHypo = aStudyBuilder->NewObject( HypothesisRoot );
- anAttr = aStudyBuilder->FindOrCreateAttribute( newHypo, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPmName = ( aRootTag == GetHypothesisRootTag() ? "ICON_SMESH_TREE_HYPO_" : "ICON_SMESH_TREE_ALGO_" );
- aPmName += aHyp->GetName();
- aPixmap ->SetPixMap( aPmName.c_str() );
- anAttr = aStudyBuilder->FindOrCreateAttribute( newHypo, "AttributeIOR" );
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR ->SetValue( GetORB()->object_to_string( aHyp ) );
- aSO = SALOMEDS::SObject::_narrow( newHypo );
- anObjName = TCollection_AsciiString( aHyp->GetName() );
- }
-
- // Publishing a group
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow(theIOR);
- if( aSO->_is_nil() && !aGroup->_is_nil() ) {
- // try to obtain a parent mesh's SObject
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group..." );
- SALOMEDS::SObject_var aParentSO;
- SMESH::SMESH_Mesh_var aParentMesh;
- SMESH_Group_i* aServant = dynamic_cast<SMESH_Group_i*>( GetServant( aGroup ).in() );
- if ( aServant != NULL ) {
- aParentMesh = SMESH::SMESH_Mesh::_narrow( GetPOA()->servant_to_reference( aServant->GetMeshServant() ) );
- if ( !aParentMesh->_is_nil() ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: refernce to mesh is OK" );
- string anIOR = GetORB()->object_to_string( aParentMesh );
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: mesh IOR = "<<anIOR.c_str() );
- aParentSO = theStudy->FindObjectIOR( anIOR.c_str() );
- }
- }
-
- // Find proper group sub-tree tag
- if ( !aParentSO->_is_nil() ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: parent mesh found" );
- int aType = (int)aGroup->GetType();
- const char* aRootNames[] = { "Compound Groups", "Groups of Nodes", "Groups of Edges", "Groups of Faces", "Groups of Volumes" };
-
- // Currently, groups with heterogenous content are not supported
- if ( aType != SMESH::ALL ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: group type OK" );
- long aRootTag = GetNodeGroupsTag() + aType - 1;
-
- // Find or create groups root
- SALOMEDS::SObject_var aRootSO;
- if ( !aParentSO->FindSubObject ( aRootTag, aRootSO ) ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): creating groups root..." )
- aRootSO = aStudyBuilder->NewObjectToTag( aParentSO, aRootTag );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeName" );
- aName = SALOMEDS::AttributeName::_narrow( anAttr );
- aName ->SetValue( aRootNames[aType] );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeSelectable" );
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
- aSelAttr ->SetSelectable( false );
- }
-
- // Add new group to corresponding sub-tree
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): adding group to study..." )
- SALOMEDS::SObject_var aGroupSO = aStudyBuilder->NewObject( aRootSO );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aGroupSO, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPixmap ->SetPixMap( "ICON_SMESH_TREE_GROUP" );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aGroupSO, "AttributeIOR" );
- anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
- anIOR ->SetValue( GetORB()->object_to_string( aGroup ) );
- aSO = SALOMEDS::SObject::_narrow( aGroupSO );
- anObjName = TCollection_AsciiString( "Group" );
- }
- }
- }
-
- // Setting SObject's name
- if ( !aSO->_is_nil() ) {
- if ( strlen( theName ) == 0 )
- anObjName += TCollection_AsciiString( "_" ) + TCollection_AsciiString( aSO->Tag() );
- else
- anObjName = TCollection_AsciiString( (char*)theName );
- anAttr = aStudyBuilder->FindOrCreateAttribute( aSO, "AttributeName" );
- aName = SALOMEDS::AttributeName::_narrow( anAttr );
- aName ->SetValue( anObjName.ToCString() );
- if(MYDEBUG) MESSAGE ("********** SMESH_Gen_i: \"" << anObjName.ToCString() << "\" PUBLISHED");
+ StudyContext* myStudyContext = GetCurrentStudyContext();
+ if ( myStudyContext && !CORBA::is_nil( theObject )) {
+ string iorString = GetORB()->object_to_string( theObject );
+ return myStudyContext->addObject( iorString );
}
-
- if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): COMPLETED" )
- return aSO._retn();
+ return 0;
}
//=============================================================================
static PortableServer::ServantBase_var GetServant( CORBA::Object_ptr theObject );
// Get CORBA object corresponding to the SALOMEDS::SObject
static CORBA::Object_var SObjectToObject( SALOMEDS::SObject_ptr theSObject );
-
+ // Get the SALOMEDS::SObject corresponding to a CORBA object
+ static SALOMEDS::SObject_ptr ObjectToSObject(SALOMEDS::Study_ptr theStudy,
+ CORBA::Object_ptr theObject);
+ // Get GEOM Object correspoding to TopoDS_Shape
+ GEOM::GEOM_Object_ptr ShapeToGeomObject (const TopoDS_Shape& theShape );
+ // Get TopoDS_Shape correspoding to GEOM_Object
+ TopoDS_Shape GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject);
+
// Default constructor
SMESH_Gen_i();
// Standard constructor
static long GetFaceGroupsTag();
static long GetVolumeGroupsTag();
+ // publishing methods
+ SALOMEDS::SComponent_ptr PublishComponent(SALOMEDS::Study_ptr theStudy);
+ SALOMEDS::SObject_ptr PublishMesh (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ const char* theName = 0);
+ SALOMEDS::SObject_ptr PublishHypothesis (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Hypothesis_ptr theHyp,
+ const char* theName = 0);
+ SALOMEDS::SObject_ptr PublishSubMesh (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ SMESH::SMESH_subMesh_ptr theSubMesh,
+ GEOM::GEOM_Object_ptr theShapeObject,
+ const char* theName = 0);
+ SALOMEDS::SObject_ptr PublishGroup (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ SMESH::SMESH_GroupBase_ptr theGroup,
+ GEOM::GEOM_Object_ptr theShapeObject,
+ const char* theName = 0);
+ bool AddHypothesisToShape(SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ GEOM::GEOM_Object_ptr theShapeObject,
+ SMESH::SMESH_Hypothesis_ptr theHyp);
+ bool RemoveHypothesisFromShape(SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ GEOM::GEOM_Object_ptr theShapeObject,
+ SMESH::SMESH_Hypothesis_ptr theHyp);
+ SALOMEDS::SObject_ptr GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ GEOM::GEOM_Object_ptr theShape);
+ static void SetName(SALOMEDS::SObject_ptr theSObject,
+ const char* theName,
+ const char* theDefaultName = 0);
+
// Get study context
StudyContext* GetCurrentStudyContext();
-
+
+ // Register an object in a StudyContext; return object id
+ int RegisterObject(CORBA::Object_ptr theObject);
+
+ // Get current study ID
+ int GetCurrentStudyID()
+ { return myCurrentStudy->_is_nil() ? -1 : myCurrentStudy->StudyId(); }
+
private:
// Create hypothesis of given type
SMESH::SMESH_Hypothesis_ptr createHypothesis( const char* theHypName,
--- /dev/null
+// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+// File : SMESH_Gen_i_1.cxx
+// Created : Thu Oct 21 17:24:06 2004
+// Author : Edward AGAPOV (eap)
+// Module : SMESH
+// $Header:
+
+#include "SMESH_Gen_i.hxx"
+
+#include "SMESH_Mesh_i.hxx"
+#include "SMESH_Hypothesis_i.hxx"
+#include "SMESH_Algo_i.hxx"
+#include "SMESH_Group_i.hxx"
+
+#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
+
+#include "utilities.h"
+#include "Utils_ExceptHandlers.hxx"
+
+#include <TCollection_AsciiString.hxx>
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+// Tags definition ===========================================================
+// Top level
+long Tag_HypothesisRoot = 1; // hypotheses root
+long Tag_AlgorithmsRoot = 2; // algorithms root
+// Mesh/Submesh
+long Tag_RefOnShape = 1; // references to shape
+long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
+long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
+// Mesh only
+long Tag_SubMeshOnVertex = 4; // sub-meshes roots by type
+long Tag_SubMeshOnEdge = 5; // ...
+long Tag_SubMeshOnWire = 6; // ...
+long Tag_SubMeshOnFace = 7; // ...
+long Tag_SubMeshOnShell = 8; // ...
+long Tag_SubMeshOnSolid = 9; // ...
+long Tag_SubMeshOnCompound = 10; // ...
+long Tag_NodeGroups = 11; // Group roots by type
+long Tag_EdgeGroups = 12; // ...
+long Tag_FaceGroups = 13; // ...
+long Tag_VolumeGroups = 14; // ...
+// ===========================================================================
+
+//=============================================================================
+/*!
+ * Get...Tag [ static ]
+ *
+ * Methods which determine SMESH data model structure
+ */
+//=============================================================================
+
+long SMESH_Gen_i::GetHypothesisRootTag()
+{
+ return Tag_HypothesisRoot;
+}
+
+long SMESH_Gen_i::GetAlgorithmsRootTag()
+{
+ return Tag_AlgorithmsRoot;
+}
+
+long SMESH_Gen_i::GetRefOnShapeTag()
+{
+ return Tag_RefOnShape;
+}
+
+long SMESH_Gen_i::GetRefOnAppliedHypothesisTag()
+{
+ return Tag_RefOnAppliedHypothesis;
+}
+
+long SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag()
+{
+ return Tag_RefOnAppliedAlgorithms;
+}
+
+long SMESH_Gen_i::GetSubMeshOnVertexTag()
+{
+ return Tag_SubMeshOnVertex;
+}
+
+long SMESH_Gen_i::GetSubMeshOnEdgeTag()
+{
+ return Tag_SubMeshOnEdge;
+}
+
+long SMESH_Gen_i::GetSubMeshOnFaceTag()
+{
+ return Tag_SubMeshOnFace;
+}
+
+long SMESH_Gen_i::GetSubMeshOnSolidTag()
+{
+ return Tag_SubMeshOnSolid;
+}
+
+long SMESH_Gen_i::GetSubMeshOnCompoundTag()
+{
+ return Tag_SubMeshOnCompound;
+}
+
+long SMESH_Gen_i::GetSubMeshOnWireTag()
+{
+ return Tag_SubMeshOnWire;
+}
+
+long SMESH_Gen_i::GetSubMeshOnShellTag()
+{
+ return Tag_SubMeshOnShell;
+}
+
+long SMESH_Gen_i::GetNodeGroupsTag()
+{
+ return Tag_NodeGroups;
+}
+
+long SMESH_Gen_i::GetEdgeGroupsTag()
+{
+ return Tag_EdgeGroups;
+}
+
+long SMESH_Gen_i::GetFaceGroupsTag()
+{
+ return Tag_FaceGroups;
+}
+
+long SMESH_Gen_i::GetVolumeGroupsTag()
+{
+ return Tag_VolumeGroups;
+}
+
+//=============================================================================
+/*!
+ * SMESH_Gen_i::CanPublishInStudy
+ *
+ * Returns true if object can be published in the study
+ */
+//=============================================================================
+
+bool SMESH_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
+{
+ if(MYDEBUG) MESSAGE("CanPublishInStudy");
+ SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(theIOR);
+ if( !aMesh->_is_nil() )
+ return true;
+
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(theIOR);
+ if( !aSubMesh->_is_nil() )
+ return true;
+
+ SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow(theIOR);
+ if( !aHyp->_is_nil() )
+ return true;
+
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(theIOR);
+ if( !aGroup->_is_nil() )
+ return true;
+
+ if(MYDEBUG) MESSAGE("CanPublishInStudy--CANT");
+ return false;
+}
+
+//=======================================================================
+//function : ObjectToSObject
+//purpose :
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::ObjectToSObject(SALOMEDS::Study_ptr theStudy,
+ CORBA::Object_ptr theObject)
+{
+ SALOMEDS::SObject_var aSO;
+ if ( !CORBA::is_nil( theStudy ) && !CORBA::is_nil( theObject ))
+ aSO = theStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( theObject ) );
+ return aSO._retn();
+}
+
+//=======================================================================
+//function : objectToServant
+//purpose :
+//=======================================================================
+
+template<typename T> static inline T* objectToServant( CORBA::Object_ptr theIOR )
+{
+ return dynamic_cast<T*>( SMESH_Gen_i::GetServant( theIOR ).in() );
+}
+
+//=======================================================================
+//function : ShapeToGeomObject
+//purpose :
+//=======================================================================
+
+GEOM::GEOM_Object_ptr SMESH_Gen_i::ShapeToGeomObject (const TopoDS_Shape& theShape )
+{
+ GEOM::GEOM_Object_var aShapeObj;
+ if ( !theShape.IsNull() ) {
+ GEOM_Client* aClient = GetShapeReader();
+ TCollection_AsciiString IOR;
+ if ( aClient && aClient->Find( theShape, IOR ))
+ aShapeObj = GEOM::GEOM_Object::_narrow
+ ( GetORB()->string_to_object( IOR.ToCString() ) );
+ }
+ return aShapeObj._retn();
+}
+
+//=======================================================================
+//function : GeomObjectToShape
+//purpose :
+//=======================================================================
+
+TopoDS_Shape SMESH_Gen_i::GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject)
+{
+ TopoDS_Shape S;
+ if ( !theGeomObject->_is_nil() ) {
+ GEOM_Client* aClient = GetShapeReader();
+ GEOM::GEOM_Gen_var aGeomEngine = GetGeomEngine();
+ if ( aClient && !aGeomEngine->_is_nil () )
+ S = aClient->GetShape( aGeomEngine, theGeomObject );
+ }
+ return S;
+}
+
+//=======================================================================
+//function : publish
+//purpose :
+//=======================================================================
+
+static SALOMEDS::SObject_ptr publish(SALOMEDS::Study_ptr theStudy,
+ CORBA::Object_ptr theIOR,
+ SALOMEDS::SObject_ptr theFatherObject,
+ const int theTag = 0,
+ const char* thePixMap = 0,
+ const bool theSelectable = true)
+{
+ SALOMEDS::SObject_var SO = SMESH_Gen_i::ObjectToSObject( theStudy, theIOR );
+ SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
+ if ( SO->_is_nil() ) {
+ if ( theTag == 0 )
+ SO = aStudyBuilder->NewObject( theFatherObject );
+ else if ( !theFatherObject->FindSubObject( theTag, SO ))
+ SO = aStudyBuilder->NewObjectToTag( theFatherObject, theTag );
+ }
+
+ SALOMEDS::GenericAttribute_var anAttr;
+ if ( !CORBA::is_nil( theIOR )) {
+ anAttr = aStudyBuilder->FindOrCreateAttribute( SO, "AttributeIOR" );
+ SALOMEDS::AttributeIOR::_narrow(anAttr)->SetValue
+ ( SMESH_Gen_i::GetORB()->object_to_string( theIOR ) );
+ }
+ if ( thePixMap ) {
+ anAttr = aStudyBuilder->FindOrCreateAttribute( SO, "AttributePixMap" );
+ SALOMEDS::AttributePixMap::_narrow( anAttr )->SetPixMap( thePixMap );
+ }
+ if ( !theSelectable ) {
+ anAttr = aStudyBuilder->FindOrCreateAttribute( SO, "AttributeSelectable" );
+ SALOMEDS::AttributeSelectable::_narrow( anAttr )->SetSelectable( false );
+ }
+ return SO._retn();
+}
+
+//=======================================================================
+//function : setName
+//purpose :
+//=======================================================================
+
+void SMESH_Gen_i::SetName(SALOMEDS::SObject_ptr theSObject,
+ const char* theName,
+ const char* theDefaultName)
+{
+ if ( !theSObject->_is_nil() ) {
+ SALOMEDS::StudyBuilder_var aStudyBuilder = theSObject->GetStudy()->NewBuilder();
+ SALOMEDS::GenericAttribute_var anAttr =
+ aStudyBuilder->FindOrCreateAttribute( theSObject, "AttributeName" );
+ SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow( anAttr );
+ if ( theName && strlen( theName ) != 0 )
+ aNameAttr->SetValue( theName );
+ else {
+ CORBA::String_var curName = CORBA::string_dup( aNameAttr->Value() );
+ if ( strlen( curName ) == 0 ) {
+ TCollection_AsciiString aName( (char*) theDefaultName );
+ aName += TCollection_AsciiString("_") + TCollection_AsciiString( theSObject->Tag() );
+ aNameAttr->SetValue( aName.ToCString() );
+ }
+ }
+ }
+}
+
+//=======================================================================
+//function : addReference
+//purpose :
+//=======================================================================
+
+static void addReference (SALOMEDS::Study_ptr theStudy,
+ SALOMEDS::SObject_ptr theSObject,
+ CORBA::Object_ptr theToObject,
+ int theTag = 0)
+{
+ SALOMEDS::SObject_var aToObjSO = SMESH_Gen_i::ObjectToSObject( theStudy, theToObject );
+ if ( !aToObjSO->_is_nil() && !theSObject->_is_nil() ) {
+ SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
+ SALOMEDS::SObject_var aReferenceSO;
+ if ( !theTag ) {
+ bool isReferred = false;
+ SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator( theSObject );
+ for ( ; !isReferred && anIter->More(); anIter->Next() ) {
+ if ( anIter->Value()->ReferencedObject( aReferenceSO ) &&
+ strcmp( aReferenceSO->GetID(), aToObjSO->GetID() ) == 0 )
+ isReferred = true;
+ }
+ if ( !isReferred ) {
+ aReferenceSO = aStudyBuilder->NewObject( theSObject );
+ aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
+ }
+ }
+ else {
+ if ( !theSObject->FindSubObject( theTag, aReferenceSO ))
+ aReferenceSO = aStudyBuilder->NewObjectToTag( theSObject, theTag );
+ aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
+ }
+ }
+}
+
+//=============================================================================
+/*!
+ * SMESH_Gen_i::PublishInStudy
+ *
+ * Publish object in the study
+ */
+//=============================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
+ SALOMEDS::SObject_ptr theSObject,
+ CORBA::Object_ptr theIOR,
+ const char* theName)
+ throw (SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ SALOMEDS::SObject_var aSO;
+ if ( CORBA::is_nil( theStudy ) || CORBA::is_nil( theIOR ))
+ return aSO._retn();
+ if(MYDEBUG) MESSAGE("PublishInStudy");
+
+ // Publishing a mesh
+ SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( theIOR );
+ if( !aMesh->_is_nil() )
+ aSO = PublishMesh( theStudy, aMesh, theName );
+
+ // Publishing a sub-mesh
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( theIOR );
+ if( aSO->_is_nil() && !aSubMesh->_is_nil() ) {
+ GEOM::GEOM_Object_var aShapeObject = aSubMesh->GetSubShape();
+ aMesh = aSubMesh->GetFather();
+ aSO = PublishSubMesh( theStudy, aMesh, aSubMesh, aShapeObject, theName );
+ }
+
+ // Publishing a hypothesis or algorithm
+ SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( theIOR );
+ if ( aSO->_is_nil() && !aHyp->_is_nil() )
+ aSO = PublishHypothesis( theStudy, aHyp );
+
+ // Publishing a group
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(theIOR);
+ if ( aSO->_is_nil() && !aGroup->_is_nil() ) {
+ GEOM::GEOM_Object_var aShapeObject;
+ aMesh = aGroup->GetMesh();
+ aSO = PublishGroup( theStudy, aMesh, aGroup, aShapeObject, theName );
+ }
+ if(MYDEBUG) MESSAGE("PublishInStudy_END");
+
+ return aSO._retn();
+}
+
+//=======================================================================
+//function : PublishComponent
+//purpose :
+//=======================================================================
+
+SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent(SALOMEDS::Study_ptr theStudy)
+{
+ if ( CORBA::is_nil( theStudy ))
+ return SALOMEDS::SComponent::_nil();
+ if(MYDEBUG) MESSAGE("PublishComponent");
+
+ SALOMEDS::SComponent_var father =
+ SALOMEDS::SComponent::_narrow( theStudy->FindComponent( ComponentDataType() ) );
+ if ( !CORBA::is_nil( father ) )
+ return father._retn();
+
+ SALOME_ModuleCatalog::ModuleCatalog_var aCat =
+ SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") );
+ if ( CORBA::is_nil( aCat ) )
+ return father._retn();
+
+ SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( ComponentDataType() );
+ if ( CORBA::is_nil( aComp ) )
+ return father._retn();
+
+ SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributePixMap_var aPixmap;
+
+ father = aStudyBuilder->NewComponent( ComponentDataType() );
+ aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() );
+ anAttr = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" );
+ aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
+ aPixmap ->SetPixMap( "ICON_OBJBROWSER_SMESH" );
+ SetName( father, aComp->componentusername(), "MESH" );
+ if(MYDEBUG) MESSAGE("PublishComponent--END");
+
+ return father._retn();
+}
+
+//=============================================================================
+/*!
+ * findMaxChildTag [ static internal ]
+ *
+ * Finds maximum child tag for the given object
+ */
+//=============================================================================
+
+static long findMaxChildTag( SALOMEDS::SObject_ptr theSObject )
+{
+ long aTag = 0;
+ if ( !theSObject->_is_nil() ) {
+ SALOMEDS::Study_var aStudy = theSObject->GetStudy();
+ if ( !aStudy->_is_nil() ) {
+ SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator( theSObject );
+ for ( ; anIter->More(); anIter->Next() ) {
+ long nTag = anIter->Value()->Tag();
+ if ( nTag > aTag )
+ aTag = nTag;
+ }
+ }
+ }
+ return aTag;
+}
+
+//=======================================================================
+//function : PublishMesh
+//purpose :
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishMesh (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ const char* theName)
+{
+ if ( CORBA::is_nil( theStudy ) ||
+ CORBA::is_nil( theMesh ))
+ return SALOMEDS::SComponent::_nil();
+ if(MYDEBUG) MESSAGE("PublishMesh--IN");
+
+ // find or publish a mesh
+
+ SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+ if ( aMeshSO->_is_nil() )
+ {
+ SALOMEDS::SComponent_var father = PublishComponent( theStudy );
+ if ( father->_is_nil() )
+ return aMeshSO._retn();
+
+ // Find correct free tag
+ long aTag = findMaxChildTag( father.in() );
+ if ( aTag <= GetAlgorithmsRootTag() )
+ aTag = GetAlgorithmsRootTag() + 1;
+ else
+ aTag++;
+
+ aMeshSO = publish (theStudy, theMesh, father, aTag, "ICON_SMESH_TREE_MESH" );
+ if ( aMeshSO->_is_nil() )
+ return aMeshSO._retn();
+ }
+ SetName( aMeshSO, theName, "Mesh" );
+
+ // Add shape reference
+
+ GEOM::GEOM_Object_var aShapeObject = theMesh->GetShapeToMesh();
+ if ( !CORBA::is_nil( aShapeObject )) {
+ addReference( theStudy, aMeshSO, aShapeObject, GetRefOnShapeTag() );
+
+ // Publish global hypotheses
+
+ SMESH::ListOfHypothesis * hypList = theMesh->GetHypothesisList( aShapeObject );
+ if ( hypList )
+ for ( int i = 0; i < hypList->length(); i++ ) {
+ SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( (*hypList)[ i ]);
+ PublishHypothesis( theStudy, aHyp );
+ AddHypothesisToShape( theStudy, theMesh, aShapeObject, aHyp );
+ }
+ }
+
+ // Publish submeshes
+
+ SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
+ if ( !mesh_i )
+ return aMeshSO._retn();
+ map<int, SMESH_subMesh_i*>& subMap = mesh_i->_mapSubMesh_i;
+ map<int, SMESH_subMesh_i*>::iterator subIt = subMap.begin();
+ for ( ; subIt != subMap.end(); subIt++ ) {
+ SMESH::SMESH_subMesh_ptr aSubMesh = (*subIt).second->_this();
+ if ( !CORBA::is_nil( aSubMesh )) {
+ aShapeObject = aSubMesh->GetSubShape();
+ PublishSubMesh( theStudy, theMesh, aSubMesh, aShapeObject );
+ }
+ }
+
+ // Publish groups
+ const map<int, SMESH::SMESH_GroupBase_ptr>& grMap = mesh_i->getGroups();
+ map<int, SMESH::SMESH_GroupBase_ptr>::const_iterator it = grMap.begin();
+ for ( ; it != grMap.end(); it++ )
+ {
+ SMESH::SMESH_GroupBase_ptr aGroup = (*it).second;
+ if ( !aGroup->_is_nil() ) {
+ GEOM::GEOM_Object_var aShapeObj;
+ SMESH::SMESH_GroupOnGeom_var aGeomGroup =
+ SMESH::SMESH_GroupOnGeom::_narrow( aGroup );
+ if ( !aGeomGroup->_is_nil() )
+ aShapeObj = aGeomGroup->GetShape();
+ PublishGroup( theStudy, theMesh, aGroup, aShapeObj );
+ }
+ }
+
+ if(MYDEBUG) MESSAGE("PublishMesh_END");
+ return aMeshSO._retn();
+}
+
+//=======================================================================
+//function : PublishSubMesh
+//purpose :
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishSubMesh (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ SMESH::SMESH_subMesh_ptr theSubMesh,
+ GEOM::GEOM_Object_ptr theShapeObject,
+ const char* theName)
+{
+ if (theStudy->_is_nil() || theMesh->_is_nil() ||
+ theSubMesh->_is_nil() || theShapeObject->_is_nil() )
+ return SALOMEDS::SObject::_nil();
+
+ SALOMEDS::SObject_var aSubMeshSO = ObjectToSObject( theStudy, theSubMesh );
+ if ( aSubMeshSO->_is_nil() )
+ {
+ SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+ if ( aMeshSO->_is_nil() ) {
+ aMeshSO = PublishMesh( theStudy, theMesh );
+ if ( aMeshSO->_is_nil())
+ return SALOMEDS::SObject::_nil();
+ }
+ // Find submesh sub-tree tag
+ long aRootTag;
+ char* aRootName = "";
+ switch ( theShapeObject->GetShapeType() ) {
+ case GEOM::VERTEX:
+ aRootTag = GetSubMeshOnVertexTag();
+ aRootName = "SubMeshes on Vertex";
+ break;
+ case GEOM::EDGE:
+ aRootTag = GetSubMeshOnEdgeTag();
+ aRootName = "SubMeshes on Edge";
+ break;
+ case GEOM::WIRE:
+ aRootTag = GetSubMeshOnWireTag();
+ aRootName = "SubMeshes on Wire";
+ break;
+ case GEOM::FACE:
+ aRootTag = GetSubMeshOnFaceTag();
+ aRootName = "SubMeshes on Face";
+ break;
+ case GEOM::SHELL:
+ aRootTag = GetSubMeshOnShellTag();
+ aRootName = "SubMeshes on Shell";
+ break;
+ case GEOM::SOLID:
+ aRootTag = GetSubMeshOnSolidTag();
+ aRootName = "SubMeshes on Solid";
+ break;
+ default:
+ aRootTag = GetSubMeshOnCompoundTag();
+ aRootName = "SubMeshes on Compound";
+ break;
+ }
+
+ // Find or create submesh root
+ SALOMEDS::SObject_var aRootSO = publish (theStudy, CORBA::Object::_nil(),
+ aMeshSO, aRootTag, 0, false );
+ SetName( aRootSO, aRootName );
+
+ // Add new submesh to corresponding sub-tree
+ aSubMeshSO = publish (theStudy, theSubMesh, aRootSO, 0, "ICON_SMESH_TREE_MESH");
+ if ( aSubMeshSO->_is_nil() )
+ return aSubMeshSO._retn();
+ }
+ SetName( aSubMeshSO, theName, "SubMesh" );
+
+ // Add reference to theShapeObject
+
+ addReference( theStudy, aSubMeshSO, theShapeObject, 1 );
+
+ // Publish hypothesis
+
+ SMESH::ListOfHypothesis * hypList = theMesh->GetHypothesisList( theShapeObject );
+ if ( hypList )
+ for ( int i = 0; i < hypList->length(); i++ ) {
+ SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( (*hypList)[ i ]);
+ PublishHypothesis( theStudy, aHyp );
+ AddHypothesisToShape( theStudy, theMesh, theShapeObject, aHyp );
+ }
+
+ return aSubMeshSO._retn();
+}
+
+//=======================================================================
+//function : PublishGroup
+//purpose :
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishGroup (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ SMESH::SMESH_GroupBase_ptr theGroup,
+ GEOM::GEOM_Object_ptr theShapeObject,
+ const char* theName)
+{
+ if (theStudy->_is_nil() || theMesh->_is_nil() || theGroup->_is_nil() )
+ return SALOMEDS::SObject::_nil();
+
+ SALOMEDS::SObject_var aGroupSO = ObjectToSObject( theStudy, theGroup );
+ if ( aGroupSO->_is_nil() )
+ {
+ SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+ if ( aMeshSO->_is_nil() ) {
+ aMeshSO = PublishInStudy( theStudy, SALOMEDS::SObject::_nil(), theMesh, "");
+ if ( aMeshSO->_is_nil())
+ return SALOMEDS::SObject::_nil();
+ }
+ int aType = (int)theGroup->GetType();
+ const char* aRootNames[] = {
+ "Compound Groups", "Groups of Nodes",
+ "Groups of Edges", "Groups of Faces", "Groups of Volumes" };
+
+ // Currently, groups with heterogenous content are not supported
+ if ( aType != SMESH::ALL ) {
+ long aRootTag = GetNodeGroupsTag() + aType - 1;
+
+ // Find or create groups root
+ SALOMEDS::SObject_var aRootSO = publish (theStudy, CORBA::Object::_nil(),
+ aMeshSO, aRootTag, 0, false );
+ if ( aType < 5 )
+ SetName( aRootSO, aRootNames[aType] );
+
+ // Add new group to corresponding sub-tree
+ aGroupSO = publish (theStudy, theGroup, aRootSO, 0, "ICON_SMESH_TREE_GROUP" );
+ }
+ if ( aGroupSO->_is_nil() )
+ return aGroupSO._retn();
+ }
+
+ SetName( aGroupSO, theName, "Group" );
+
+ //Add reference to geometry
+ if ( !theShapeObject->_is_nil() )
+ addReference( theStudy, aGroupSO, theShapeObject, 1 );
+
+ return aGroupSO._retn();
+}
+
+//=======================================================================
+//function : PublishHypothesis
+//purpose :
+//=======================================================================
+
+SALOMEDS::SObject_ptr
+ SMESH_Gen_i::PublishHypothesis (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Hypothesis_ptr theHyp,
+ const char* theName)
+{
+ if(MYDEBUG) MESSAGE("PublishHypothesis")
+ if (theStudy->_is_nil() || theHyp->_is_nil())
+ return SALOMEDS::SObject::_nil();
+
+ SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
+ if ( aHypSO->_is_nil() )
+ {
+ SALOMEDS::SComponent_var father = PublishComponent( theStudy );
+ if ( father->_is_nil() )
+ return aHypSO._retn();
+
+ //Find or Create Hypothesis root
+ bool isAlgo = ( !SMESH::SMESH_Algo::_narrow( theHyp )->_is_nil() );
+ int aRootTag = isAlgo ? GetAlgorithmsRootTag() : GetHypothesisRootTag();
+ SALOMEDS::SObject_var aRootSO =
+ publish (theStudy, CORBA::Object::_nil(),father, aRootTag,
+ isAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO", false);
+ SetName( aRootSO, isAlgo ? "Algorithms" : "Hypotheses" );
+
+ // Add New Hypothesis
+ string aPmName = isAlgo ? "ICON_SMESH_TREE_ALGO_" : "ICON_SMESH_TREE_HYPO_";
+ aPmName += theHyp->GetName();
+ aHypSO = publish( theStudy, theHyp, aRootSO, 0, aPmName.c_str() );
+ }
+
+ if ( !aHypSO->_is_nil() ) {
+ CORBA::String_var aHypName = CORBA::string_dup( theHyp->GetName() );
+ SetName( aHypSO, theName, aHypName );
+ }
+
+ if(MYDEBUG) MESSAGE("PublishHypothesis--END")
+ return aHypSO._retn();
+}
+
+//=======================================================================
+//function : GetMeshOrSubmeshByShape
+//purpose :
+//=======================================================================
+
+SALOMEDS::SObject_ptr
+ SMESH_Gen_i::GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ GEOM::GEOM_Object_ptr theShape)
+{
+ if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape")
+ SALOMEDS::SObject_var aMeshOrSubMesh;
+ if ( theShape->_is_nil() || theMesh->_is_nil() )
+ return aMeshOrSubMesh._retn();
+
+ TopoDS_Shape aShape = GeomObjectToShape( theShape );
+ SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
+
+ if ( !aShape.IsNull() && mesh_i && mesh_i->GetImpl().GetMeshDS() ) {
+ SMESHDS_Mesh* meshDS = mesh_i->GetImpl().GetMeshDS();
+ if ( aShape.IsSame( meshDS->ShapeToMesh() ))
+ aMeshOrSubMesh = ObjectToSObject( theStudy, theMesh );
+ else {
+ int shapeID = meshDS->ShapeToIndex( aShape );
+ SMESH::SMESH_subMesh_var aSubMesh = mesh_i->getSubMesh(shapeID);
+ if ( !aSubMesh->_is_nil() )
+ aMeshOrSubMesh = ObjectToSObject( theStudy, aSubMesh );
+ }
+ }
+ if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape--END")
+ return aMeshOrSubMesh._retn();
+}
+
+//=======================================================================
+//function : AddHypothesisToShape
+//purpose :
+//=======================================================================
+
+bool SMESH_Gen_i::AddHypothesisToShape(SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ GEOM::GEOM_Object_ptr theShape,
+ SMESH::SMESH_Hypothesis_ptr theHyp)
+{
+ if(MYDEBUG) MESSAGE("AddHypothesisToShape")
+ if (theStudy->_is_nil() || theMesh->_is_nil() ||
+ theHyp->_is_nil() || theShape->_is_nil() )
+ return false;
+
+ SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+ if ( aMeshSO->_is_nil() )
+ aMeshSO = PublishMesh( theStudy, theMesh );
+ SALOMEDS::SObject_var aHypSO = PublishHypothesis( theStudy, theHyp );
+ if ( aMeshSO->_is_nil() || aHypSO->_is_nil())
+ return false;
+
+ // Find a mesh or submesh refering to theShape
+ SALOMEDS::SObject_var aMeshOrSubMesh =
+ GetMeshOrSubmeshByShape( theStudy, theMesh, theShape );
+ if ( aMeshOrSubMesh->_is_nil() )
+ return false;
+
+ //Find or Create Applied Hypothesis root
+ bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( theHyp )->_is_nil();
+ SALOMEDS::SObject_var AHR =
+ publish (theStudy, CORBA::Object::_nil(), aMeshOrSubMesh,
+ aIsAlgo ? GetRefOnAppliedAlgorithmsTag() : GetRefOnAppliedHypothesisTag(),
+ aIsAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO", false);
+ SetName( AHR, aIsAlgo ? "Applied algorithms" : "Applied hypotheses" );
+ if ( AHR->_is_nil() )
+ return false;
+
+ addReference( theStudy, AHR, theHyp );
+ if(MYDEBUG) MESSAGE("AddHypothesisToShape--END")
+ return true;
+}
+
+//=======================================================================
+//function : RemoveHypothesisFromShape
+//purpose :
+//=======================================================================
+
+bool SMESH_Gen_i::RemoveHypothesisFromShape(SALOMEDS::Study_ptr theStudy,
+ SMESH::SMESH_Mesh_ptr theMesh,
+ GEOM::GEOM_Object_ptr theShape,
+ SMESH::SMESH_Hypothesis_ptr theHyp)
+{
+ if (theStudy->_is_nil() || theMesh->_is_nil() ||
+ theHyp->_is_nil() || theShape->_is_nil() )
+ return false;
+
+ SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
+ if ( aHypSO->_is_nil() )
+ return false;
+
+ // Find a mesh or submesh refering to theShape
+ SALOMEDS::SObject_var aMeshOrSubMesh =
+ GetMeshOrSubmeshByShape( theStudy, theMesh, theShape );
+ if ( aMeshOrSubMesh->_is_nil() )
+ return false;
+
+ // Find and remove a reference to aHypSO
+ SALOMEDS::SObject_var aRef, anObj;
+ CORBA::String_var anID = CORBA::string_dup( aHypSO->GetID() );
+ SALOMEDS::ChildIterator_var it = theStudy->NewChildIterator( aMeshOrSubMesh );
+ for ( it->InitEx( true ); it->More(); it->Next() ) {
+ anObj = it->Value();
+ if (anObj->ReferencedObject( aRef ) && strcmp( aRef->GetID(), anID ) == 0 ) {
+ theStudy->NewBuilder()->RemoveObject( anObj );
+ break;
+ }
+ }
+ return true;
+}
+
// Module : SMESH
// $Header$
+
#include "SMESH_Group_i.hxx"
#include "SMESH_Mesh_i.hxx"
#include "SMESH_Gen_i.hxx"
-#include <SMESH_Group.hxx>
-#include <SMESHDS_Group.hxx>
-#include <SMDSAbs_ElementType.hxx>
-#include <utilities.h>
+#include "SMESH_Group.hxx"
+#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
+#include "SMDSAbs_ElementType.hxx"
+#include "utilities.h"
//=============================================================================
/*!
*/
//=============================================================================
-SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
+SMESH_GroupBase_i::SMESH_GroupBase_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
: SALOME::GenericObj_i( thePOA ),
myMeshServant( theMeshServant ),
myLocalID( theLocalID )
thePOA->activate_object( this );
}
+SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
+: SMESH_GroupBase_i( thePOA, theMeshServant, theLocalID )
+{
+}
+
+SMESH_GroupOnGeom_i::SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
+: SMESH_GroupBase_i( thePOA, theMeshServant, theLocalID )
+{
+}
//=============================================================================
/*!
*/
//=============================================================================
-SMESH_Group_i::~SMESH_Group_i()
+SMESH_GroupBase_i::~SMESH_GroupBase_i()
{
- MESSAGE("~SMESH_Group_i;" );
+ MESSAGE("~SMESH_GroupBase_i;" );
if ( myMeshServant )
myMeshServant->removeGroup(myLocalID);
}
+//=======================================================================
+//function : GetSmeshGroup
+//purpose :
+//=======================================================================
+
+::SMESH_Group* SMESH_GroupBase_i::GetSmeshGroup() const
+{
+ if ( myMeshServant ) {
+ ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
+ return aMesh.GetGroup(myLocalID);
+ }
+ return 0;
+}
+
+//=======================================================================
+//function : GetGroupDS
+//purpose :
+//=======================================================================
+
+SMESHDS_GroupBase* SMESH_GroupBase_i::GetGroupDS() const
+{
+ ::SMESH_Group* aGroup = GetSmeshGroup();
+ if ( aGroup )
+ return aGroup->GetGroupDS();
+ return 0;
+}
//=============================================================================
/*!
*/
//=============================================================================
-void SMESH_Group_i::SetName( const char* theName )
+void SMESH_GroupBase_i::SetName( const char* theName )
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- aGroup->SetName(theName);
-
- // Update group name in a study
- SALOMEDS::Study_var aStudy = myMeshServant->GetGen()->GetCurrentStudy();
- if ( !aStudy->_is_nil() ) {
- SALOMEDS::SObject_var aGroupSO = aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( _this() ) );
- if ( !aGroupSO->_is_nil() ) {
- SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
- aBuilder->SetName( aGroupSO, theName );
- }
- }
- return;
- }
+ ::SMESH_Group* aGroup = GetSmeshGroup();
+ if (aGroup) {
+ aGroup->SetName(theName);
+
+ // Update group name in a study
+ SMESH_Gen_i* aGen = myMeshServant->GetGen();
+ aGen->SetName( aGen->ObjectToSObject( aGen->GetCurrentStudy(), _this() ), theName );
+ return;
}
MESSAGE("can't set name of a vague group");
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-char* SMESH_Group_i::GetName()
+char* SMESH_GroupBase_i::GetName()
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup)
- return CORBA::string_dup (aGroup->GetName());
- }
+ ::SMESH_Group* aGroup = GetSmeshGroup();
+ if (aGroup)
+ return CORBA::string_dup (aGroup->GetName());
MESSAGE("get name of a vague group");
return CORBA::string_dup( "NO_NAME" );
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-SMESH::ElementType SMESH_Group_i::GetType()
+SMESH::ElementType SMESH_GroupBase_i::GetType()
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- SMDSAbs_ElementType aSMDSType = aGroup->GetGroupDS()->GetType();
- SMESH::ElementType aType;
- switch (aSMDSType) {
- case SMDSAbs_Node: aType = SMESH::NODE; break;
- case SMDSAbs_Edge: aType = SMESH::EDGE; break;
- case SMDSAbs_Face: aType = SMESH::FACE; break;
- case SMDSAbs_Volume: aType = SMESH::VOLUME; break;
- default: aType = SMESH::ALL; break;
- }
- return aType;
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS) {
+ SMDSAbs_ElementType aSMDSType = aGroupDS->GetType();
+ SMESH::ElementType aType;
+ switch (aSMDSType) {
+ case SMDSAbs_Node: aType = SMESH::NODE; break;
+ case SMDSAbs_Edge: aType = SMESH::EDGE; break;
+ case SMDSAbs_Face: aType = SMESH::FACE; break;
+ case SMDSAbs_Volume: aType = SMESH::VOLUME; break;
+ default: aType = SMESH::ALL; break;
}
+ return aType;
}
MESSAGE("get type of a vague group");
return SMESH::ALL;
*/
//=============================================================================
-CORBA::Long SMESH_Group_i::Size()
+CORBA::Long SMESH_GroupBase_i::Size()
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- int aSize = aGroup->GetGroupDS()->Extent();
- return aSize;
- }
- }
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ return aGroupDS->Extent();
MESSAGE("get size of a vague group");
return 0;
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-CORBA::Boolean SMESH_Group_i::IsEmpty()
+CORBA::Boolean SMESH_GroupBase_i::IsEmpty()
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- bool isEmpty = aGroup->GetGroupDS()->IsEmpty();
- return isEmpty;
- }
- }
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ return aGroupDS->IsEmpty();
MESSAGE("checking IsEmpty of a vague group");
return true;
}
-
//=============================================================================
/*!
*
void SMESH_Group_i::Clear()
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- // a SMDS group forgets its type after clearing, so we must re-set it
- SMDSAbs_ElementType aSMDSType = aGroup->GetGroupDS()->GetType();
- aGroup->GetGroupDS()->Clear();
- aGroup->GetGroupDS()->SetType(aSMDSType);
- return;
- }
+ SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
+ if (aGroupDS) {
+ aGroupDS->Clear();
+ return;
}
MESSAGE("attempt to clear a vague group");
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-CORBA::Boolean SMESH_Group_i::Contains( CORBA::Long theID )
+CORBA::Boolean SMESH_GroupBase_i::Contains( CORBA::Long theID )
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- bool res = aGroup->GetGroupDS()->Contains(theID);
- return res;
- }
- }
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ return aGroupDS->Contains(theID);
MESSAGE("attempt to check contents of a vague group");
return false;
}
-
//=============================================================================
/*!
*
CORBA::Long SMESH_Group_i::Add( const SMESH::long_array& theIDs )
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
- int nbAdd = 0;
- for (int i = 0; i < theIDs.length(); i++) {
- int anID = (int) theIDs[i];
- if (aGroupDS->Add(anID))
- nbAdd++;
- }
- return nbAdd;
+ SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
+ if (aGroupDS) {
+ int nbAdd = 0;
+ for (int i = 0; i < theIDs.length(); i++) {
+ int anID = (int) theIDs[i];
+ if (aGroupDS->Add(anID))
+ nbAdd++;
}
+ return nbAdd;
}
MESSAGE("attempt to add elements to a vague group");
return 0;
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-CORBA::Long SMESH_Group_i::GetID( CORBA::Long theIndex )
+CORBA::Long SMESH_GroupBase_i::GetID( CORBA::Long theIndex )
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- int anID = aGroup->GetGroupDS()->GetID(theIndex);
- return anID;
- }
- }
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ return aGroupDS->GetID(theIndex);
MESSAGE("attempt to iterate on a vague group");
return -1;
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-SMESH::long_array* SMESH_Group_i::GetListOfID()
+SMESH::long_array* SMESH_GroupBase_i::GetListOfID()
{
SMESH::long_array_var aRes = new SMESH::long_array();
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
- int aSize = aGroupDS->Extent();
- aRes->length(aSize);
- for (int i = 0; i < aSize; i++)
- aRes[i] = aGroupDS->GetID(i+1);
- return aRes._retn();
- }
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS) {
+ int aSize = aGroupDS->Extent();
+ aRes->length(aSize);
+ for (int i = 0; i < aSize; i++)
+ aRes[i] = aGroupDS->GetID(i+1);
+ return aRes._retn();
}
MESSAGE("get list of IDs of a vague group");
return aRes._retn();
}
-
//=============================================================================
/*!
*
CORBA::Long SMESH_Group_i::Remove( const SMESH::long_array& theIDs )
{
- if ( myMeshServant ) {
- ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
- ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
- if (aGroup) {
- // a SMDS group forgets its type after clearing, so we must re-set it
- // if the group becomes empty
- SMDSAbs_ElementType aSMDSType = aGroup->GetGroupDS()->GetType();
- SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
- int nbDel = 0;
- for (int i = 0; i < theIDs.length(); i++) {
- int anID = (int) theIDs[i];
- if (aGroupDS->Remove(anID))
- nbDel++;
- }
- if (aGroupDS->IsEmpty())
- aGroupDS->SetType(aSMDSType);
- return nbDel;
+ SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
+ if (aGroupDS) {
+ int nbDel = 0;
+ for (int i = 0; i < theIDs.length(); i++) {
+ int anID = (int) theIDs[i];
+ if (aGroupDS->Remove(anID))
+ nbDel++;
}
+ return nbDel;
}
MESSAGE("attempt to remove elements from a vague group");
return 0;
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-SMESH::SMESH_Mesh_ptr SMESH_Group_i::GetMesh()
+SMESH::SMESH_Mesh_ptr SMESH_GroupBase_i::GetMesh()
{
- MESSAGE("SMESH_Group_i::GetMesh(): mesh servant = " << myMeshServant );
SMESH::SMESH_Mesh_var aMesh;
if ( myMeshServant )
aMesh = SMESH::SMESH_Mesh::_narrow( myMeshServant->_this() );
return aMesh._retn();
}
-
//=============================================================================
/*!
*
*/
//=============================================================================
-int SMESH_Group_i::GetLocalID()
+SMESH::long_array* SMESH_GroupBase_i::GetIDs()
+{
+ SMESH::long_array_var aResult = GetListOfID();
+ return aResult._retn();
+}
+
+//=======================================================================
+//function : GetShape
+//purpose :
+//=======================================================================
+
+GEOM::GEOM_Object_ptr SMESH_GroupOnGeom_i::GetShape()
{
- return myLocalID;
+ GEOM::GEOM_Object_var aGeomObj;
+ SMESHDS_GroupOnGeom* aGroupDS = dynamic_cast<SMESHDS_GroupOnGeom*>( GetGroupDS() );
+ if ( aGroupDS ) {
+ SMESH_Gen_i* aGen = GetMeshServant()->GetGen();
+ aGeomObj = aGen->ShapeToGeomObject( aGroupDS->GetShape() );
+ }
+ return aGeomObj._retn();
}
+
// Module : SMESH
// $Header$
+
#ifndef SMESH_Group_i_HeaderFile
#define SMESH_Group_i_HeaderFile
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Group)
#include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_CLIENT_HEADER(GEOM_Gen)
#include "SALOME_GenericObj_i.hh"
class SMESH_Mesh_i;
-
-class SMESH_Group_i:
- public virtual POA_SMESH::SMESH_Group,
+class ::SMESH_Group;
+class SMESHDS_GroupBase;
+
+// ===========
+// Group Base
+// ===========
+class SMESH_GroupBase_i:
+ public virtual POA_SMESH::SMESH_GroupBase,
public virtual SALOME::GenericObj_i
{
-public:
- SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
- virtual ~SMESH_Group_i();
+ public:
+ SMESH_GroupBase_i(PortableServer::POA_ptr thePOA,
+ SMESH_Mesh_i* theMeshServant,
+ const int theLocalID );
+ virtual ~SMESH_GroupBase_i();
// CORBA interface implementation
- void SetName( const char* theName );
-
+ void SetName(const char* name);
char* GetName();
-
SMESH::ElementType GetType();
-
CORBA::Long Size();
-
CORBA::Boolean IsEmpty();
+ CORBA::Boolean Contains(CORBA::Long elem_id);
+ CORBA::Long GetID(CORBA::Long elem_index);
+ SMESH::long_array* GetListOfID();
+ SMESH::SMESH_Mesh_ptr GetMesh();
- void Clear();
+ // Inherited from SMESH_IDSource interface
+ virtual SMESH::long_array* GetIDs();
- CORBA::Boolean Contains( CORBA::Long theID );
+ // Internal C++ interface
+ int GetLocalID() const { return myLocalID; }
+ SMESH_Mesh_i* GetMeshServant() const { return myMeshServant; }
+ ::SMESH_Group* GetSmeshGroup() const;
+ SMESHDS_GroupBase* GetGroupDS() const;
- CORBA::Long Add( const SMESH::long_array& theIDs );
+private:
+ SMESH_Mesh_i* myMeshServant;
+ int myLocalID;
+};
- CORBA::Long GetID( CORBA::Long theIndex );
+// ======
+// Group
+// ======
- SMESH::long_array* GetListOfID();
+class SMESH_Group_i:
+ public SMESH_GroupBase_i,
+ public virtual POA_SMESH::SMESH_Group,
+ public virtual SALOME::GenericObj_i
+{
+ public:
+ SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
+ // CORBA interface implementation
+ void Clear();
+ CORBA::Long Add( const SMESH::long_array& theIDs );
CORBA::Long Remove( const SMESH::long_array& theIDs );
+};
- SMESH::SMESH_Mesh_ptr GetMesh();
-
- // Internal C++ interface
- int GetLocalID();
+// =========================
+// Group linked to geometry
+// =========================
- SMESH_Mesh_i* GetMeshServant() { return myMeshServant; }
+class SMESH_GroupOnGeom_i:
+ public SMESH_GroupBase_i,
+ public virtual POA_SMESH::SMESH_GroupOnGeom,
+ public virtual SALOME::GenericObj_i
+{
+ public:
+ SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
-private:
- SMESH_Mesh_i* myMeshServant;
- int myLocalID;
+ // CORBA interface implementation
+ GEOM::GEOM_Object_ptr GetShape();
};
-
#endif
SMESH_MEDFamily_i(int identifier, SMESH_subMesh_i* sm,
string name, string description, SALOME_MED::medEntityMesh entity );
SMESH_MEDFamily_i(const SMESH_MEDFamily_i & f);
-
+
+ // IDL Methods
+ void setProtocol(SALOME::TypeOfCommunication typ) {}
+ void release() {}
+ SALOME::Sender_ptr getSenderForNumber(long int) {return SALOME::Sender::_nil();}
+ SALOME::Sender_ptr getSenderForNumberIndex() {return SALOME::Sender::_nil();}
+
CORBA::Long getIdentifier()
throw (SALOME::SALOME_Exception);
CORBA::Long getNumberOfAttributes()
~SMESH_MEDMesh_i();
// IDL Methods
+ void setProtocol(SALOME::TypeOfCommunication typ) {}
+ void release() {}
+ SALOME::Sender_ptr getSenderForCoordinates(long int) {return SALOME::Sender::_nil();}
+ SALOME::Sender_ptr getSenderForConnectivity(long int, long int, long int, long int) {return SALOME::Sender::_nil();}
+
char *getName() throw(SALOME::SALOME_Exception);
CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
return true;
}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theObject)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ Reorient(anElementsId);
+}
+
//=============================================================================
/*!
*
*/
//=============================================================================
+CORBA::Boolean
+ SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr theObject,
+ SMESH::NumericalFunctor_ptr Criterion,
+ CORBA::Double MaxAngle)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ TriToQuad(anElementsId, Criterion, MaxAngle);
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
CORBA::Boolean
SMESH_MeshEditor_i::QuadToTri(const SMESH::long_array & IDsOfElements,
SMESH::NumericalFunctor_ptr Criterion)
*/
//=============================================================================
+CORBA::Boolean
+ SMESH_MeshEditor_i::SplitQuadObject(SMESH::SMESH_IDSource_ptr theObject,
+ CORBA::Boolean Diag13)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ SplitQuad(anElementsId, Diag13);
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
CORBA::Boolean
SMESH_MeshEditor_i::Smooth(const SMESH::long_array & IDsOfElements,
const SMESH::long_array & IDsOfFixedNodes,
*/
//=============================================================================
+CORBA::Boolean
+ SMESH_MeshEditor_i::SmoothObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::long_array & IDsOfFixedNodes,
+ CORBA::Long MaxNbOfIterations,
+ CORBA::Double MaxAspectRatio,
+ SMESH::SMESH_MeshEditor::Smooth_Method Method)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ return Smooth(anElementsId, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method);
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
void SMESH_MeshEditor_i::RenumberNodes()
{
GetMeshDS()->Renumber( true );
theNbOfSteps, theTolerance);
}
+//=======================================================================
+//function : RotationSweepObject
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::AxisStruct & theAxis,
+ CORBA::Double theAngleInRadians,
+ CORBA::Long theNbOfSteps,
+ CORBA::Double theTolerance)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ RotationSweep(anElementsId, theAxis, theAngleInRadians, theNbOfSteps, theTolerance);
+}
+
//=======================================================================
//function : ExtrusionSweep
//purpose :
anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
}
+
+//=======================================================================
+//function : ExtrusionSweepObject
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::DirStruct & theStepVector,
+ CORBA::Long theNbOfSteps)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ ExtrusionSweep(anElementsId, theStepVector, theNbOfSteps);
+}
+
//=======================================================================
//function : Mirror
//purpose :
anEditor.Transform (elements, aTrsf, theCopy);
}
+//=======================================================================
+//function : MirrorObject
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::AxisStruct & theAxis,
+ SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
+ CORBA::Boolean theCopy)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ Mirror(anElementsId, theAxis, theMirrorType, theCopy);
+}
+
//=======================================================================
//function : Translate
//purpose :
anEditor.Transform (elements, aTrsf, theCopy);
}
+//=======================================================================
+//function : TranslateObject
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::DirStruct & theVector,
+ CORBA::Boolean theCopy)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ Translate(anElementsId, theVector, theCopy);
+}
+
//=======================================================================
//function : Rotate
//purpose :
anEditor.Transform (elements, aTrsf, theCopy);
}
+//=======================================================================
+//function : RotateObject
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::AxisStruct & theAxis,
+ CORBA::Double theAngle,
+ CORBA::Boolean theCopy)
+{
+ SMESH::long_array_var anElementsId = theObject->GetIDs();
+ Rotate(anElementsId, theAxis, theAngle, theCopy);
+}
+
//=======================================================================
//function : FindCoincidentNodes
//purpose :
anEditor.MergeEqualElements();
}
+//=======================================================================
+//function : operator
+//purpose :
+//=======================================================================
+
+#define RETCASE(enm) case ::SMESH_MeshEditor::enm: return SMESH::SMESH_MeshEditor::enm;
+
+SMESH::SMESH_MeshEditor::Sew_Error convError( const::SMESH_MeshEditor::Sew_Error e )
+{
+ switch ( e ) {
+ RETCASE( SEW_OK );
+ RETCASE( SEW_BORDER1_NOT_FOUND );
+ RETCASE( SEW_BORDER2_NOT_FOUND );
+ RETCASE( SEW_BOTH_BORDERS_NOT_FOUND );
+ RETCASE( SEW_BAD_SIDE_NODES );
+ RETCASE( SEW_VOLUMES_TO_SPLIT );
+ RETCASE( SEW_DIFF_NB_OF_ELEMENTS );
+ RETCASE( SEW_TOPO_DIFF_SETS_OF_ELEMENTS );
+ RETCASE( SEW_BAD_SIDE1_NODES );
+ RETCASE( SEW_BAD_SIDE2_NODES );
+ }
+ return SMESH::SMESH_MeshEditor::SEW_OK;
+}
+
//=======================================================================
//function : SewFreeBorders
//purpose :
//=======================================================================
-CORBA::Boolean SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
- CORBA::Long SecondNodeID1,
- CORBA::Long LastNodeID1,
- CORBA::Long FirstNodeID2,
- CORBA::Long SecondNodeID2,
- CORBA::Long LastNodeID2)
+SMESH::SMESH_MeshEditor::Sew_Error
+ SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
+ CORBA::Long SecondNodeID1,
+ CORBA::Long LastNodeID1,
+ CORBA::Long FirstNodeID2,
+ CORBA::Long SecondNodeID2,
+ CORBA::Long LastNodeID2)
{
SMESHDS_Mesh* aMesh = GetMeshDS();
if (!aBorderFirstNode ||
!aBorderSecondNode||
- !aBorderLastNode ||
- !aSide2FirstNode ||
+ !aBorderLastNode)
+ return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
+ if (!aSide2FirstNode ||
!aSide2SecondNode ||
!aSide2ThirdNode)
- return false;
+ return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.SewFreeBorder (aBorderFirstNode,
- aBorderSecondNode,
- aBorderLastNode,
- aSide2FirstNode,
- aSide2SecondNode,
- aSide2ThirdNode,
- true);
+ return convError( anEditor.SewFreeBorder (aBorderFirstNode,
+ aBorderSecondNode,
+ aBorderLastNode,
+ aSide2FirstNode,
+ aSide2SecondNode,
+ aSide2ThirdNode,
+ true));
}
//=======================================================================
//purpose :
//=======================================================================
-CORBA::Boolean SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
- CORBA::Long SecondNodeID1,
- CORBA::Long LastNodeID1,
- CORBA::Long FirstNodeID2,
- CORBA::Long SecondNodeID2)
+SMESH::SMESH_MeshEditor::Sew_Error
+ SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
+ CORBA::Long SecondNodeID1,
+ CORBA::Long LastNodeID1,
+ CORBA::Long FirstNodeID2,
+ CORBA::Long SecondNodeID2)
{
SMESHDS_Mesh* aMesh = GetMeshDS();
if (!aBorderFirstNode ||
!aBorderSecondNode||
- !aBorderLastNode ||
- !aSide2FirstNode ||
+ !aBorderLastNode )
+ return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
+ if (!aSide2FirstNode ||
!aSide2SecondNode)
- return false;
+ return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.SewFreeBorder (aBorderFirstNode,
- aBorderSecondNode,
- aBorderLastNode,
- aSide2FirstNode,
- aSide2SecondNode,
- aSide2ThirdNode,
- true);
+ return convError( anEditor.SewFreeBorder (aBorderFirstNode,
+ aBorderSecondNode,
+ aBorderLastNode,
+ aSide2FirstNode,
+ aSide2SecondNode,
+ aSide2ThirdNode,
+ true ));
}
//=======================================================================
//purpose :
//=======================================================================
-CORBA::Boolean SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
- CORBA::Long SecondNodeIDOnFreeBorder,
- CORBA::Long LastNodeIDOnFreeBorder,
- CORBA::Long FirstNodeIDOnSide,
- CORBA::Long LastNodeIDOnSide)
+SMESH::SMESH_MeshEditor::Sew_Error
+ SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
+ CORBA::Long SecondNodeIDOnFreeBorder,
+ CORBA::Long LastNodeIDOnFreeBorder,
+ CORBA::Long FirstNodeIDOnSide,
+ CORBA::Long LastNodeIDOnSide)
{
SMESHDS_Mesh* aMesh = GetMeshDS();
if (!aBorderFirstNode ||
!aBorderSecondNode||
- !aBorderLastNode ||
- !aSide2FirstNode ||
+ !aBorderLastNode )
+ return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
+ if (!aSide2FirstNode ||
!aSide2SecondNode)
- return false;
+ return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE_NODES;
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.SewFreeBorder (aBorderFirstNode,
- aBorderSecondNode,
- aBorderLastNode,
- aSide2FirstNode,
- aSide2SecondNode,
- aSide2ThirdNode,
- false);
+ return convError( anEditor.SewFreeBorder (aBorderFirstNode,
+ aBorderSecondNode,
+ aBorderLastNode,
+ aSide2FirstNode,
+ aSide2SecondNode,
+ aSide2ThirdNode,
+ false));
}
//=======================================================================
//purpose :
//=======================================================================
-CORBA::Boolean SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
- const SMESH::long_array& IDsOfSide2Elements,
- CORBA::Long NodeID1OfSide1ToMerge,
- CORBA::Long NodeID1OfSide2ToMerge,
- CORBA::Long NodeID2OfSide1ToMerge,
- CORBA::Long NodeID2OfSide2ToMerge)
+SMESH::SMESH_MeshEditor::Sew_Error
+ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
+ const SMESH::long_array& IDsOfSide2Elements,
+ CORBA::Long NodeID1OfSide1ToMerge,
+ CORBA::Long NodeID1OfSide2ToMerge,
+ CORBA::Long NodeID2OfSide1ToMerge,
+ CORBA::Long NodeID2OfSide2ToMerge)
{
SMESHDS_Mesh* aMesh = GetMeshDS();
const SMDS_MeshNode* aSecondNode2ToMerge = aMesh->FindNode( NodeID2OfSide2ToMerge );
if (!aFirstNode1ToMerge ||
- !aFirstNode2ToMerge ||
- !aSecondNode1ToMerge||
+ !aFirstNode2ToMerge )
+ return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE1_NODES;
+ if (!aSecondNode1ToMerge||
!aSecondNode2ToMerge)
- return false;
+ return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE2_NODES;
set<const SMDS_MeshElement*> aSide1Elems, aSide2Elems;
for (int i = 0; i < IDsOfSide1Elements.length(); i++)
{
CORBA::Long index = IDsOfSide1Elements[i];
const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( !elem )
- return false;
- aSide1Elems.insert( elem );
+ if ( elem )
+ aSide1Elems.insert( elem );
}
for (int i = 0; i < IDsOfSide2Elements.length(); i++)
{
CORBA::Long index = IDsOfSide2Elements[i];
const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( !elem )
- return false;
- aSide2Elems.insert( elem );
+ if ( elem )
+ aSide2Elems.insert( elem );
}
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.SewSideElements (aSide1Elems, aSide2Elems,
- aFirstNode1ToMerge,
- aFirstNode2ToMerge,
- aSecondNode1ToMerge,
- aSecondNode2ToMerge);
+ return convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
+ aFirstNode1ToMerge,
+ aFirstNode2ToMerge,
+ aSecondNode1ToMerge,
+ aSecondNode2ToMerge));
}
-
CORBA::Boolean InverseDiag(CORBA::Long NodeID1, CORBA::Long NodeID2);
CORBA::Boolean DeleteDiag(CORBA::Long NodeID1, CORBA::Long NodeID2);
CORBA::Boolean Reorient(const SMESH::long_array & IDsOfElements);
+ CORBA::Boolean ReorientObject(SMESH::SMESH_IDSource_ptr theObject);
CORBA::Boolean TriToQuad(const SMESH::long_array & IDsOfElements,
SMESH::NumericalFunctor_ptr Criterion,
CORBA::Double MaxAngle);
+ CORBA::Boolean TriToQuadObject(SMESH::SMESH_IDSource_ptr theObject,
+ SMESH::NumericalFunctor_ptr Criterion,
+ CORBA::Double MaxAngle);
CORBA::Boolean QuadToTri(const SMESH::long_array & IDsOfElements,
SMESH::NumericalFunctor_ptr Criterion);
CORBA::Boolean SplitQuad(const SMESH::long_array & IDsOfElements,
CORBA::Boolean Diag13);
+ CORBA::Boolean SplitQuadObject(SMESH::SMESH_IDSource_ptr theObject,
+ CORBA::Boolean Diag13);
CORBA::Boolean Smooth(const SMESH::long_array & IDsOfElements,
const SMESH::long_array & IDsOfFixedNodes,
CORBA::Long MaxNbOfIterations,
CORBA::Double MaxAspectRatio,
SMESH::SMESH_MeshEditor::Smooth_Method Method);
+ CORBA::Boolean SmoothObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::long_array & IDsOfFixedNodes,
+ CORBA::Long MaxNbOfIterations,
+ CORBA::Double MaxAspectRatio,
+ SMESH::SMESH_MeshEditor::Smooth_Method Method);
+
void RenumberNodes();
void RenumberElements();
void RotationSweep(const SMESH::long_array & IDsOfElements,
- const SMESH::AxisStruct & Axis,
+ const SMESH::AxisStruct & Axis,
CORBA::Double AngleInRadians,
CORBA::Long NbOfSteps,
CORBA::Double Tolerance);
+ void RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::AxisStruct & Axis,
+ CORBA::Double AngleInRadians,
+ CORBA::Long NbOfSteps,
+ CORBA::Double Tolerance);
+
void ExtrusionSweep(const SMESH::long_array & IDsOfElements,
- const SMESH::DirStruct & StepVector,
+ const SMESH::DirStruct & StepVector,
CORBA::Long NbOfSteps);
-
+ void ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::DirStruct & StepVector,
+ CORBA::Long NbOfSteps);
+
void Mirror(const SMESH::long_array & IDsOfElements,
- const SMESH::AxisStruct & Axis,
+ const SMESH::AxisStruct & Axis,
SMESH::SMESH_MeshEditor::MirrorType MirrorType,
CORBA::Boolean Copy);
+ void MirrorObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::AxisStruct & Axis,
+ SMESH::SMESH_MeshEditor::MirrorType MirrorType,
+ CORBA::Boolean Copy);
void Translate(const SMESH::long_array & IDsOfElements,
const SMESH::DirStruct & Vector,
CORBA::Boolean Copy);
+ void TranslateObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::DirStruct & Vector,
+ CORBA::Boolean Copy);
void Rotate(const SMESH::long_array & IDsOfElements,
const SMESH::AxisStruct & Axis,
CORBA::Double Angle,
CORBA::Boolean Copy);
+ void RotateObject(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::AxisStruct & Axis,
+ CORBA::Double Angle,
+ CORBA::Boolean Copy);
void FindCoincidentNodes (CORBA::Double Tolerance,
SMESH::array_of_long_array_out GroupsOfNodes);
void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
void MergeEqualElements();
- CORBA::Boolean SewFreeBorders(CORBA::Long FirstNodeID1,
- CORBA::Long SecondNodeID1,
- CORBA::Long LastNodeID1,
- CORBA::Long FirstNodeID2,
- CORBA::Long SecondNodeID2,
- CORBA::Long LastNodeID2);
- CORBA::Boolean SewConformFreeBorders(CORBA::Long FirstNodeID1,
- CORBA::Long SecondNodeID1,
- CORBA::Long LastNodeID1,
- CORBA::Long FirstNodeID2,
- CORBA::Long SecondNodeID2);
- CORBA::Boolean SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
- CORBA::Long SecondNodeIDOnFreeBorder,
- CORBA::Long LastNodeIDOnFreeBorder,
- CORBA::Long FirstNodeIDOnSide,
- CORBA::Long LastNodeIDOnSide);
- CORBA::Boolean SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
- const SMESH::long_array& IDsOfSide2Elements,
- CORBA::Long NodeID1OfSide1ToMerge,
- CORBA::Long NodeID1OfSide2ToMerge,
- CORBA::Long NodeID2OfSide1ToMerge,
- CORBA::Long NodeID2OfSide2ToMerge);
+ SMESH::SMESH_MeshEditor::Sew_Error
+ SewFreeBorders(CORBA::Long FirstNodeID1,
+ CORBA::Long SecondNodeID1,
+ CORBA::Long LastNodeID1,
+ CORBA::Long FirstNodeID2,
+ CORBA::Long SecondNodeID2,
+ CORBA::Long LastNodeID2);
+ SMESH::SMESH_MeshEditor::Sew_Error
+ SewConformFreeBorders(CORBA::Long FirstNodeID1,
+ CORBA::Long SecondNodeID1,
+ CORBA::Long LastNodeID1,
+ CORBA::Long FirstNodeID2,
+ CORBA::Long SecondNodeID2);
+ SMESH::SMESH_MeshEditor::Sew_Error
+ SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
+ CORBA::Long SecondNodeIDOnFreeBorder,
+ CORBA::Long LastNodeIDOnFreeBorder,
+ CORBA::Long FirstNodeIDOnSide,
+ CORBA::Long LastNodeIDOnSide);
+ SMESH::SMESH_MeshEditor::Sew_Error
+ SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
+ const SMESH::long_array& IDsOfSide2Elements,
+ CORBA::Long NodeID1OfSide1ToMerge,
+ CORBA::Long NodeID1OfSide2ToMerge,
+ CORBA::Long NodeID2OfSide1ToMerge,
+ CORBA::Long NodeID2OfSide2ToMerge);
private:
SMESHDS_Mesh * GetMeshDS() { return _myMesh->GetMeshDS(); }
SMESH_Mesh_i::~SMESH_Mesh_i()
{
INFOS("~SMESH_Mesh_i");
- map<int, SMESH::SMESH_Group_ptr>::iterator it;
+ map<int, SMESH::SMESH_GroupBase_ptr>::iterator it;
for ( it = _mapGroups.begin(); it != _mapGroups.end(); it++ ) {
- SMESH_Group_i* aGroup = dynamic_cast<SMESH_Group_i*>( SMESH_Gen_i::GetServant( it->second ).in() );
+ SMESH_GroupBase_i* aGroup = dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( it->second ).in() );
if ( aGroup ) {
// this method is colled from destructor of group (PAL6331)
{
Unexpect aCatch(SALOME_SalomeException);
try {
- setShape( theShapeObject );
+ _impl->ShapeToMesh( _gen_i->GeomObjectToShape( theShapeObject ));
}
catch(SALOME_Exception & S_ex) {
THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
- }
-
- SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
- if ( aStudy->_is_nil() )
- return;
-
- // Create a reference to <theShape>
- SALOMEDS::SObject_var aMeshSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
- SALOMEDS::SObject_var aShapeSO = aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( theShapeObject ) );
-
- SALOMEDS::SObject_var anObj, aRef;
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
- long aTag = SMESH_Gen_i::GetRefOnShapeTag();
-
- if ( aMeshSO->FindSubObject( aTag, anObj ) ) {
- if ( anObj->ReferencedObject( aRef ) ) {
- if ( strcmp( aRef->GetID(), aShapeSO->GetID() ) == 0 ) {
- // Setting the same shape twice forbidden
- return;
- }
- }
}
- else {
- anObj = aBuilder->NewObjectToTag( aMeshSO, aTag );
- }
- aBuilder->Addreference( anObj, aShapeSO );
}
-//=============================================================================
-/*!
- * setShape
- *
- * Sets shape to the mesh implementation
- */
-//=============================================================================
+//=======================================================================
+//function : GetShapeToMesh
+//purpose :
+//=======================================================================
-bool SMESH_Mesh_i::setShape( GEOM::GEOM_Object_ptr theShapeObject )
+GEOM::GEOM_Object_ptr SMESH_Mesh_i::GetShapeToMesh()
+ throw (SALOME::SALOME_Exception)
{
- if ( theShapeObject->_is_nil() )
- return false;
-
- TopoDS_Shape aLocShape = _gen_i->GetShapeReader()->GetShape( SMESH_Gen_i::GetGeomEngine(), theShapeObject );
- _impl->ShapeToMesh( aLocShape );
- return true;
+ Unexpect aCatch(SALOME_SalomeException);
+ GEOM::GEOM_Object_var aShapeObj;
+ try {
+ TopoDS_Shape S = _impl->GetMeshDS()->ShapeToMesh();
+ if ( !S.IsNull() )
+ aShapeObj = _gen_i->ShapeToGeomObject( S );
+ }
+ catch(SALOME_Exception & S_ex) {
+ THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+ }
+ return aShapeObj._retn();
}
//=============================================================================
}
SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
- if ( aStudy->_is_nil() )
- return ConvertDriverMEDReadStatus(status);
-
- // publishing of the groups in the study (sub-meshes are out of scope of MED import)
- map<int, SMESH::SMESH_Group_ptr>::iterator it = _mapGroups.begin();
- for (; it != _mapGroups.end(); it++ ) {
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_duplicate( it->second );
- if ( _gen_i->CanPublishInStudy( aGroup ) )
- _gen_i->PublishInStudy( aStudy,
- SALOMEDS::SObject::_nil(),
- aGroup,
- aGroup->GetName() );
+ if ( !aStudy->_is_nil() ) {
+ // publishing of the groups in the study (sub-meshes are out of scope of MED import)
+ map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
+ for (; it != _mapGroups.end(); it++ ) {
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_duplicate( it->second );
+ _gen_i->PublishGroup( aStudy, _this(), aGroup,
+ GEOM::GEOM_Object::_nil(), aGroup->GetName());
+ }
}
return ConvertDriverMEDReadStatus(status);
}
_mapGroups[*it] = SMESH::SMESH_Group::_duplicate( aGroup );
// register CORBA object for persistence
- StudyContext* myStudyContext = _gen_i->GetCurrentStudyContext();
- string iorString = SMESH_Gen_i::GetORB()->object_to_string( aGroup );
- int nextId = myStudyContext->addObject( iorString );
- if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+ int nextId = _gen_i->RegisterObject( aGroup );
+ if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
}
return status;
Unexpect aCatch(SALOME_SalomeException);
SMESH_Hypothesis::Hypothesis_Status status = addHypothesis( aSubShapeObject, anHyp );
- if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
- SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-
- if ( !aStudy->_is_nil() ) {
- // Detect whether <aSubShape> refers to this mesh or its sub-mesh
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::SObject_var aMeshSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
- if ( aMeshSO->_is_nil() ) {
- SCRUTE( SMESH_Gen_i::GetORB()->object_to_string( _this() ));
- removeHypothesis( aSubShapeObject, anHyp );
- return SMESH::HYP_UNKNOWN_FATAL;
- }
- SALOMEDS::SObject_var aMorSM, aRef;
- CORBA::String_var aShapeIOR = CORBA::string_dup( SMESH_Gen_i::GetORB()->object_to_string( aSubShapeObject ) );
- SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator( aMeshSO );
-
- for ( it->InitEx( true ); it->More(); it->Next() ) {
- SALOMEDS::SObject_var anObj = it->Value();
- if ( anObj->ReferencedObject( aRef ) ) {
- if ( aRef->FindAttribute( anAttr, "AttributeIOR" ) ) {
- anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
- if ( strcmp( anIOR->Value(), aShapeIOR ) == 0 ) {
- aMorSM = anObj->GetFather();
- break;
- }
- }
- }
- }
-
- bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( anHyp )->_is_nil();
- SALOMEDS::SObject_var aHypSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( anHyp ) ) ) );
- if ( !aMorSM->_is_nil() && !aHypSO->_is_nil() ) {
- //Find or Create Applied Hypothesis root
- SALOMEDS::SObject_var AHR;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
- SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
- long aTag = aIsAlgo ? SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag() : SMESH_Gen_i::GetRefOnAppliedHypothesisTag();
-
- if ( !aMorSM->FindSubObject( aTag, AHR ) ) {
- AHR = aBuilder->NewObjectToTag( aMorSM, aTag );
- anAttr = aBuilder->FindOrCreateAttribute( AHR, "AttributeName" );
- aName = SALOMEDS::AttributeName::_narrow( anAttr );
- aName ->SetValue( aIsAlgo ? "Applied algorithms" : "Applied hypotheses" );
- anAttr = aBuilder->FindOrCreateAttribute( AHR, "AttributeSelectable" );
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
- aSelAttr ->SetSelectable( false );
- anAttr = aBuilder->FindOrCreateAttribute( AHR, "AttributePixMap" );
- aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
- aPixmap ->SetPixMap( aIsAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO" );
- }
+ if ( !SMESH_Hypothesis::IsStatusFatal(status) )
+ _gen_i->AddHypothesisToShape(_gen_i->GetCurrentStudy(), _this(),
+ aSubShapeObject, anHyp );
- SALOMEDS::SObject_var SO = aBuilder->NewObject( AHR );
- aBuilder->Addreference( SO, aHypSO );
- }
- }
- }
if(MYDEBUG) MESSAGE( " AddHypothesis(): status = " << status );
return ConvertHypothesisStatus(status);
//=============================================================================
SMESH_Hypothesis::Hypothesis_Status
- SMESH_Mesh_i::addHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
+ SMESH_Mesh_i::addHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr anHyp)
{
- if(MYDEBUG) MESSAGE("addHypothesis");
- // **** proposer liste de subShape (selection multiple)
+ if(MYDEBUG) MESSAGE("addHypothesis");
- if (CORBA::is_nil(aSubShapeObject))
- THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
- SALOME::BAD_PARAM);
+ if (CORBA::is_nil(aSubShapeObject))
+ THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
+ SALOME::BAD_PARAM);
- SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow(anHyp);
- if (CORBA::is_nil(myHyp))
- THROW_SALOME_CORBA_EXCEPTION("bad hypothesis reference",
- SALOME::BAD_PARAM);
+ SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow(anHyp);
+ if (CORBA::is_nil(myHyp))
+ THROW_SALOME_CORBA_EXCEPTION("bad hypothesis reference",
+ SALOME::BAD_PARAM);
- SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
- try
- {
- TopoDS_Shape myLocSubShape =
- _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
- int hypId = myHyp->GetId();
- status = _impl->AddHypothesis(myLocSubShape, hypId);
- if ( !SMESH_Hypothesis::IsStatusFatal(status) )
- _mapHypo[hypId] = myHyp;
- }
- catch(SALOME_Exception & S_ex)
- {
- THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
- }
- return status;
+ SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
+ try
+ {
+ TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape( aSubShapeObject);
+ int hypId = myHyp->GetId();
+ status = _impl->AddHypothesis(myLocSubShape, hypId);
+ if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
+ _mapHypo[hypId] = myHyp;
+ // assure there is a corresponding submesh
+ if ( !_impl->IsMainShape( myLocSubShape )) {
+ int shapeId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
+ if ( _mapSubMesh_i.find( shapeId ) == _mapSubMesh_i.end() )
+ createSubMesh( aSubShapeObject );
+ }
+ }
+ }
+ catch(SALOME_Exception & S_ex)
+ {
+ THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+ }
+ return status;
}
//=============================================================================
Unexpect aCatch(SALOME_SalomeException);
SMESH_Hypothesis::Hypothesis_Status status = removeHypothesis( aSubShapeObject, anHyp );
- if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
- SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-
- if ( !aStudy->_is_nil() ) {
- // Detect whether <aSubShape> refers to this mesh or its sub-mesh
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::SObject_var aMeshSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
- if ( aMeshSO->_is_nil() ) {
- SCRUTE( SMESH_Gen_i::GetORB()->object_to_string( _this() ));
- addHypothesis( aSubShapeObject, anHyp );
- return SMESH::HYP_UNKNOWN_FATAL;
- }
- SALOMEDS::SObject_var aMorSM, aRef;
- CORBA::String_var aShapeIOR = CORBA::string_dup( SMESH_Gen_i::GetORB()->object_to_string( aSubShapeObject ) );
- SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator( aMeshSO );
-
- for ( it->InitEx( true ); it->More(); it->Next() ) {
- SALOMEDS::SObject_var anObj = it->Value();
- if ( anObj->ReferencedObject( aRef ) ) {
- if ( aRef->FindAttribute( anAttr, "AttributeIOR" ) ) {
- anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
- if ( strcmp( anIOR->Value(), aShapeIOR ) == 0 ) {
- aMorSM = anObj->GetFather();
- break;
- }
- }
- }
- }
-
- bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( anHyp )->_is_nil();
- SALOMEDS::SObject_var aHypSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( anHyp ) ) ) );
- if ( !aMorSM->_is_nil() && !aHypSO->_is_nil() ) {
- // Remove a refernce to hypothesis or algorithm
- SALOMEDS::SObject_var AHR;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
- SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
- CORBA::String_var aHypIOR = CORBA::string_dup( SMESH_Gen_i::GetORB()->object_to_string( anHyp ) );
- long aTag = aIsAlgo ? SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag() : SMESH_Gen_i::GetRefOnAppliedHypothesisTag();
-
- if ( aMorSM->FindSubObject( aTag, AHR ) ) {
- SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator( AHR );
- for ( ; it->More(); it->Next() ) {
- SALOMEDS::SObject_var anObj = it->Value();
- if ( anObj->ReferencedObject( aRef ) ) {
- if ( aRef->FindAttribute( anAttr, "AttributeIOR" ) ) {
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- if ( strcmp( anIOR->Value(), aHypIOR ) == 0 ) {
- aBuilder->RemoveObject( anObj );
- break;
- }
- }
- }
- }
- }
- }
- }
- }
+ if ( !SMESH_Hypothesis::IsStatusFatal(status) )
+ _gen_i->RemoveHypothesisFromShape(_gen_i->GetCurrentStudy(), _this(),
+ aSubShapeObject, anHyp );
return ConvertHypothesisStatus(status);
}
-
//=============================================================================
/*!
*
SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
try
{
- TopoDS_Shape myLocSubShape =
- _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
+ TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
int hypId = myHyp->GetId();
status = _impl->RemoveHypothesis(myLocSubShape, hypId);
if ( !SMESH_Hypothesis::IsStatusFatal(status) )
throw(SALOME::SALOME_Exception)
{
Unexpect aCatch(SALOME_SalomeException);
- MESSAGE("GetHypothesisList");
+ if (MYDEBUG) MESSAGE("GetHypothesisList");
if (CORBA::is_nil(aSubShapeObject))
THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
SALOME::BAD_PARAM);
SMESH::ListOfHypothesis_var aList = new SMESH::ListOfHypothesis();
try {
- TopoDS_Shape myLocSubShape
- = _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
-
+ TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
const list<const SMESHDS_Hypothesis*>& aLocalList = _impl->GetHypothesisList( myLocSubShape );
int i = 0, n = aLocalList.size();
aList->length( n );
*/
//=============================================================================
SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShapeObject,
- const char* theName )
+ const char* theName )
throw(SALOME::SALOME_Exception)
{
Unexpect aCatch(SALOME_SalomeException);
THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
SALOME::BAD_PARAM);
- int subMeshId = 0;
+ SMESH::SMESH_subMesh_var subMesh;
+ SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(_this());
try {
- TopoDS_Shape myLocSubShape
- = _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
+ TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
//Get or Create the SMESH_subMesh object implementation
- ::SMESH_subMesh * mySubMesh = _impl->GetSubMesh(myLocSubShape);
- subMeshId = mySubMesh->GetId();
-
+ int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
+ subMesh = getSubMesh( subMeshId );
+
// create a new subMesh object servant if there is none for the shape
-
- if (_mapSubMesh.find(subMeshId) == _mapSubMesh.end()) {
- SMESH::SMESH_subMesh_var subMesh = createSubMesh( aSubShapeObject );
- if ( _gen_i->CanPublishInStudy( subMesh ) ) {
- SALOMEDS::SObject_var aSubmeshSO = _gen_i->PublishInStudy( _gen_i->GetCurrentStudy(),
- SALOMEDS::SObject::_nil(),
- subMesh,
- theName );
-
- // Add reference to <aSubShape> to the study
- SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy();
- SALOMEDS::SObject_var aShapeSO = aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( aSubShapeObject ) );
- if ( !aSubmeshSO->_is_nil() && !aShapeSO->_is_nil() ) {
- if(MYDEBUG) MESSAGE( "********** SMESH_Mesh_i::GetSubMesh(): adding shape reference..." )
- SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
- SALOMEDS::SObject_var SO = aBuilder->NewObjectToTag( aSubmeshSO, SMESH_Gen_i::GetRefOnShapeTag() );
- aBuilder->Addreference( SO, aShapeSO );
- if(MYDEBUG) MESSAGE( "********** SMESH_Mesh_i::GetSubMesh(): shape reference added" )
- }
- }
- }
+ if ( subMesh->_is_nil() )
+ subMesh = createSubMesh( aSubShapeObject );
+
+ if ( _gen_i->CanPublishInStudy( subMesh ))
+ _gen_i->PublishSubMesh (_gen_i->GetCurrentStudy(), aMesh,
+ subMesh, aSubShapeObject, theName );
}
catch(SALOME_Exception & S_ex) {
THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
}
-
- ASSERT(_mapSubMeshIor.find(subMeshId) != _mapSubMeshIor.end());
- return SMESH::SMESH_subMesh::_duplicate(_mapSubMeshIor[subMeshId]);
+ return subMesh;
}
-
//=============================================================================
/*!
*
SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
if ( !aStudy->_is_nil() ) {
// Remove submesh's SObject
- SALOMEDS::SObject_var anSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( theSubMesh ) ) ) );
+ SALOMEDS::SObject_var anSO = _gen_i->ObjectToSObject( aStudy, theSubMesh );
if ( !anSO->_is_nil() ) {
long aTag = SMESH_Gen_i::GetRefOnShapeTag();
SALOMEDS::SObject_var anObj, aRef;
//=============================================================================
SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroup( SMESH::ElementType theElemType,
- const char* theName )
+ const char* theName )
throw(SALOME::SALOME_Exception)
{
Unexpect aCatch(SALOME_SalomeException);
- SMESH::SMESH_Group_var aNewGroup = createGroup( theElemType, theName );
-
- // Groups should be put under separate roots according to their type (nodes, edges, faces, volumes)
- if ( _gen_i->CanPublishInStudy( aNewGroup ) ) {
- SALOMEDS::SObject_var aGroupSO = _gen_i->PublishInStudy( _gen_i->GetCurrentStudy(),
- SALOMEDS::SObject::_nil(),
- aNewGroup,
- theName );
- }
+ SMESH::SMESH_Group_var aNewGroup =
+ SMESH::SMESH_Group::_narrow( createGroup( theElemType, theName ));
+
+ _gen_i->PublishGroup( _gen_i->GetCurrentStudy(), _this(),
+ aNewGroup, GEOM::GEOM_Object::_nil(), theName);
return aNewGroup._retn();
}
*
*/
//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroupFromGEOM( SMESH::ElementType theElemType,
- const char* theName,
- GEOM::GEOM_Object_ptr theGEOMGroup)
+SMESH::SMESH_GroupOnGeom_ptr SMESH_Mesh_i::CreateGroupFromGEOM( SMESH::ElementType theElemType,
+ const char* theName,
+ GEOM::GEOM_Object_ptr theGeomObj)
throw(SALOME::SALOME_Exception)
{
Unexpect aCatch(SALOME_SalomeException);
-
- SMESH::SMESH_Group_var aNewGroup = createGroup( theElemType, theName );
-
- if ( CORBA::is_nil(theGEOMGroup) || theGEOMGroup->GetType() != 37 || CORBA::is_nil(aNewGroup))
- return aNewGroup._retn();
-
- GEOM::GEOM_IGroupOperations_var aGroupOp = SMESH_Gen_i::GetGeomEngine()->GetIGroupOperations(_studyId);
- SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-
- // Check if group constructed on the same shape as a mesh or on its child:
- GEOM::GEOM_Object_var aGroupMainShape = aGroupOp->GetMainShape( theGEOMGroup );
- SALOMEDS::SObject_var aGroupMainShapeSO =
- SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string(aGroupMainShape) ) );
- SALOMEDS::SObject_var aMeshSO =
- SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
-
- SALOMEDS::SObject_var anObj, aRef;
- bool isRefOrSubShape = false;
-
- if ( aMeshSO->FindSubObject( 1, anObj ) && anObj->ReferencedObject( aRef )) {
- if ( strcmp( aRef->GetID(), aGroupMainShapeSO->GetID() ) == 0 )
- isRefOrSubShape = true;
- else
- {
- SALOMEDS::SObject_var aFather = aGroupMainShapeSO->GetFather();
- SALOMEDS::SComponent_var aComponent = aGroupMainShapeSO->GetFatherComponent();
- while ( !isRefOrSubShape && strcmp( aFather->GetID(), aComponent->GetID() ) != 0 )
- {
- if (strcmp( aRef->GetID(), aFather->GetID() ) == 0)
- isRefOrSubShape = true;
- else
- aFather = aFather->GetFather();
- }
- }
- if ( !isRefOrSubShape )
- return aNewGroup._retn();
+ SMESH::SMESH_GroupOnGeom_var aNewGroup;
+
+ TopoDS_Shape aShape = _gen_i->GeomObjectToShape( theGeomObj );
+ if ( !aShape.IsNull() ) {
+ aNewGroup = SMESH::SMESH_GroupOnGeom::_narrow
+ ( createGroup( theElemType, theName, aShape ));
+ if ( _gen_i->CanPublishInStudy( aNewGroup ) )
+ _gen_i->PublishGroup( _gen_i->GetCurrentStudy(), _this(),
+ aNewGroup, theGeomObj, theName );
}
-
- // Detect type of the geometry group
- SMESH::ElementType aGEOMGroupType;
-
- SMESH::ElementType aGroupType = SMESH::ALL;
- switch(aGroupOp->GetType(theGEOMGroup))
- {
- case 7: aGEOMGroupType = SMESH::NODE; break;
- case 6: aGEOMGroupType = SMESH::EDGE; break;
- case 4: aGEOMGroupType = SMESH::FACE; break;
- case 2: aGEOMGroupType = SMESH::VOLUME; break;
- }
-
- if ( aGEOMGroupType == theElemType )
- {
- if ( !aStudy->_is_nil() )
- {
- SALOMEDS::SObject_var aGEOMGroupSO =
- SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string(theGEOMGroup) ) );
-
- if ( !aGEOMGroupSO->_is_nil() ) {
- // Construct filter
- SMESH::FilterManager_var aFilterMgr = _gen_i->CreateFilterManager();
- SMESH::Filter_var aFilter = aFilterMgr->CreateFilter();
- SMESH::BelongToGeom_var aBelongToGeom = aFilterMgr->CreateBelongToGeom();
- aBelongToGeom->SetGeom( theGEOMGroup );
- aBelongToGeom->SetShapeName( aGEOMGroupSO->GetName() );
- aBelongToGeom->SetElementType( theElemType );
- aFilter->SetPredicate( aBelongToGeom );
- SMESH::long_array_var anElements = aFilter->GetElementsId( _this() );
- aNewGroup->Add( anElements );
-
- // Groups should be put under separate roots according to their type (nodes, edges, faces, volumes)
- if ( _gen_i->CanPublishInStudy( aNewGroup ) )
- {
- SALOMEDS::SObject_var aGroupSO = _gen_i->PublishInStudy( _gen_i->GetCurrentStudy(),
- SALOMEDS::SObject::_nil(),
- aNewGroup,
- theName );
- if ( !aGroupSO->_is_nil() )
- {
- //Add reference to geometry group
- SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
- SALOMEDS::SObject_var aReference = aStudyBuilder->NewObject(aGroupSO);
- aStudyBuilder->Addreference(aReference, aGEOMGroupSO);
- }
- }
- }
- }
- }
-
+
return aNewGroup._retn();
}
//=============================================================================
*/
//=============================================================================
-void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_Group_ptr theGroup )
- throw (SALOME::SALOME_Exception)
+void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup )
+ throw (SALOME::SALOME_Exception)
{
if ( theGroup->_is_nil() )
return;
- SMESH_Group_i* aGroup = dynamic_cast<SMESH_Group_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
+ SMESH_GroupBase_i* aGroup =
+ dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
if ( !aGroup )
return;
SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
if ( !aStudy->_is_nil() ) {
// Remove group's SObject
- SALOMEDS::SObject_var aGroupSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( theGroup ) ) ) );
+ SALOMEDS::SObject_var aGroupSO = _gen_i->ObjectToSObject( aStudy, theGroup );
if ( !aGroupSO->_is_nil() )
aStudy->NewBuilder()->RemoveObject( aGroupSO );
}
* Remove group with its contents
*/
//=============================================================================
-void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_Group_ptr theGroup )
+void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
throw (SALOME::SALOME_Exception)
{
if ( theGroup->_is_nil() )
return;
- SMESH_Group_i* aGroup = dynamic_cast<SMESH_Group_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
+ SMESH_GroupBase_i* aGroup =
+ dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
if ( !aGroup )
return;
* present in initial groups are added to the new one
*/
//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups( SMESH::SMESH_Group_ptr theGroup1,
- SMESH::SMESH_Group_ptr theGroup2,
+SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
+ SMESH::SMESH_GroupBase_ptr theGroup2,
const char* theName )
throw (SALOME::SALOME_Exception)
{
* present in both initial groups are added to the new one.
*/
//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups( SMESH::SMESH_Group_ptr theGroup1,
- SMESH::SMESH_Group_ptr theGroup2,
+SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
+ SMESH::SMESH_GroupBase_ptr theGroup2,
const char* theName )
throw (SALOME::SALOME_Exception)
{
* main group but do not present in tool group are added to the new one
*/
//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_Group_ptr theGroup1,
- SMESH::SMESH_Group_ptr theGroup2,
+SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
+ SMESH::SMESH_GroupBase_ptr theGroup2,
const char* theName )
throw (SALOME::SALOME_Exception)
{
SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject )
{
- TopoDS_Shape myLocSubShape = _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), theSubShapeObject);
+ if(MYDEBUG) MESSAGE( "createSubMesh" );
+ TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(theSubShapeObject);
::SMESH_subMesh * mySubMesh = _impl->GetSubMesh(myLocSubShape);
- int subMeshId = mySubMesh->GetId();
+ int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
SMESH_subMesh_i *subMeshServant = new SMESH_subMesh_i(myPOA, _gen_i, this, subMeshId);
SMESH::SMESH_subMesh_var subMesh
= SMESH::SMESH_subMesh::_narrow(subMeshServant->_this());
_mapSubMesh[subMeshId] = mySubMesh;
_mapSubMesh_i[subMeshId] = subMeshServant;
- _mapSubMeshIor[subMeshId]
- = SMESH::SMESH_subMesh::_duplicate(subMesh);
+ _mapSubMeshIor[subMeshId] = SMESH::SMESH_subMesh::_duplicate(subMesh);
// register CORBA object for persistence
- StudyContext* myStudyContext = _gen_i->GetCurrentStudyContext();
- string iorString = SMESH_Gen_i::GetORB()->object_to_string( subMesh );
- int nextId = myStudyContext->addObject( iorString );
- if(MYDEBUG) MESSAGE( "Add submesh to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+ int nextId = _gen_i->RegisterObject( subMesh );
+ if(MYDEBUG) MESSAGE( "Add submesh to map with id = "<< nextId);
return subMesh._retn();
}
+//=======================================================================
+//function : getSubMesh
+//purpose :
+//=======================================================================
+
+SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::getSubMesh(int shapeID)
+{
+ map<int, SMESH::SMESH_subMesh_ptr>::iterator it = _mapSubMeshIor.find( shapeID );
+ if ( it == _mapSubMeshIor.end() )
+ return SMESH::SMESH_subMesh::_nil();
+
+ return SMESH::SMESH_subMesh::_duplicate( (*it).second );
+}
+
//=============================================================================
/*!
*/
//=============================================================================
-void SMESH_Mesh_i::removeSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh, GEOM::GEOM_Object_ptr theSubShapeObject )
+void SMESH_Mesh_i::removeSubMesh (SMESH::SMESH_subMesh_ptr theSubMesh,
+ GEOM::GEOM_Object_ptr theSubShapeObject )
{
MESSAGE("SMESH_Mesh_i::removeSubMesh()");
if ( theSubMesh->_is_nil() || theSubShapeObject->_is_nil() )
*/
//=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::createGroup( SMESH::ElementType theElemType, const char* theName )
+SMESH::SMESH_GroupBase_ptr SMESH_Mesh_i::createGroup (SMESH::ElementType theElemType,
+ const char* theName,
+ const TopoDS_Shape& theShape )
{
int anId;
- SMESH::SMESH_Group_var aGroup;
- if ( _impl->AddGroup( (SMDSAbs_ElementType)theElemType, theName, anId ) ) {
- SMESH_Group_i* aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, anId );
- aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
- _mapGroups[anId] = SMESH::SMESH_Group::_duplicate( aGroup );
+ SMESH::SMESH_GroupBase_var aGroup;
+ if ( _impl->AddGroup( (SMDSAbs_ElementType)theElemType, theName, anId, theShape )) {
+ SMESH_GroupBase_i* aGroupImpl;
+ if ( !theShape.IsNull() )
+ aGroupImpl = new SMESH_GroupOnGeom_i( SMESH_Gen_i::GetPOA(), this, anId );
+ else
+ aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, anId );
+ aGroup = SMESH::SMESH_GroupBase::_narrow( aGroupImpl->_this() );
+ _mapGroups[anId] = SMESH::SMESH_GroupBase::_duplicate( aGroup );
// register CORBA object for persistence
- StudyContext* myStudyContext = _gen_i->GetCurrentStudyContext();
- string iorString = SMESH_Gen_i::GetORB()->object_to_string( aGroup );
- int nextId = myStudyContext->addObject( iorString );
- if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+ int nextId = _gen_i->RegisterObject( aGroup );
+ if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
}
return aGroup._retn();
}
-
//=============================================================================
/*!
* SMESH_Mesh_i::removeGroup
void SMESH_Mesh_i::ExportMED(const char *file, CORBA::Boolean auto_groups) throw(SALOME::SALOME_Exception)
{
Unexpect aCatch(SALOME_SalomeException);
- SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
- if ( aStudy->_is_nil() )
- return;
- char* aMeshName = NULL;
- SALOMEDS::SObject_var aMeshSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
- if ( !aMeshSO->_is_nil() )
- {
+ char* aMeshName = "Mesh";
+ SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
+ if ( !aStudy->_is_nil() ) {
+ SALOMEDS::SObject_var aMeshSO = _gen_i->ObjectToSObject( aStudy, _this() );
+ if ( !aMeshSO->_is_nil() ) {
aMeshName = aMeshSO->GetName();
//SCRUTE(file);
//SCRUTE(aMeshName);
//SCRUTE(aMeshSO->GetID());
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
- SALOMEDS::AttributeExternalFileDef_var aFileName;
- anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeExternalFileDef");
- aFileName = SALOMEDS::AttributeExternalFileDef::_narrow(anAttr);
- ASSERT(!aFileName->_is_nil());
- aFileName->SetValue(file);
- SALOMEDS::AttributeFileType_var aFileType;
- anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeFileType");
- aFileType = SALOMEDS::AttributeFileType::_narrow(anAttr);
- ASSERT(!aFileType->_is_nil());
- aFileType->SetValue("FICHIERMED");
+
+ // asv : 27.10.04 : fix of 6903: check for StudyLocked before adding attributes
+ if ( !aStudy->GetProperties()->IsLocked() )
+ {
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
+ SALOMEDS::AttributeExternalFileDef_var aFileName;
+ anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeExternalFileDef");
+ aFileName = SALOMEDS::AttributeExternalFileDef::_narrow(anAttr);
+ ASSERT(!aFileName->_is_nil());
+ aFileName->SetValue(file);
+ SALOMEDS::AttributeFileType_var aFileType;
+ anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeFileType");
+ aFileType = SALOMEDS::AttributeFileType::_narrow(anAttr);
+ ASSERT(!aFileType->_is_nil());
+ aFileType->SetValue("FICHIERMED");
+ }
}
+ }
_impl->ExportMED( file, aMeshName, auto_groups );
}
_impl->Dump( os );
return CORBA::string_dup( os.str().c_str() );
}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+SMESH::long_array* SMESH_Mesh_i::GetIDs()
+{
+ SMESH::long_array_var aResult = new SMESH::long_array();
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ int aMinId = aSMESHDS_Mesh->MinElementID();
+ int aMaxId = aSMESHDS_Mesh->MaxElementID();
+
+ aResult->length(aMaxId - aMinId + 1);
+
+ for (int i = 0, id = aMinId; id <= aMaxId; id++ )
+ aResult[i++] = id;
+
+ return aResult._retn();
+}
#include "SALOME_GenericObj_i.hh"
class SMESH_Gen_i;
-class SMESH_Group_i;
+class SMESH_GroupBase_i;
#include <map>
void SetShape( GEOM::GEOM_Object_ptr theShapeObject )
throw (SALOME::SALOME_Exception);
+ GEOM::GEOM_Object_ptr GetShapeToMesh()
+ throw (SALOME::SALOME_Exception);
+
SMESH::Hypothesis_Status AddHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr anHyp)
throw (SALOME::SALOME_Exception);
SMESH::SMESH_Group_ptr CreateGroup( SMESH::ElementType theElemType, const char* theName )
throw (SALOME::SALOME_Exception);
- SMESH::SMESH_Group_ptr CreateGroupFromGEOM( SMESH::ElementType theElemType, const char* theName,
- GEOM::GEOM_Object_ptr theGEOMGroup )
- throw (SALOME::SALOME_Exception);
+ SMESH::SMESH_GroupOnGeom_ptr CreateGroupFromGEOM(SMESH::ElementType theElemType,
+ const char* theName,
+ GEOM::GEOM_Object_ptr theGeomObj )
+ throw (SALOME::SALOME_Exception);
- void RemoveGroup( SMESH::SMESH_Group_ptr theGroup )
+ void RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup )
throw (SALOME::SALOME_Exception);
- void RemoveGroupWithContents( SMESH::SMESH_Group_ptr theGroup )
+ void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
throw (SALOME::SALOME_Exception);
- SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_Group_ptr theGroup1,
- SMESH::SMESH_Group_ptr theGroup2,
+ SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
+ SMESH::SMESH_GroupBase_ptr theGroup2,
const char* theName )
throw (SALOME::SALOME_Exception);
- SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_Group_ptr theGroup1,
- SMESH::SMESH_Group_ptr theGroup2,
+ SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
+ SMESH::SMESH_GroupBase_ptr theGroup2,
const char* theName )
throw (SALOME::SALOME_Exception);
- SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_Group_ptr theGroup1,
- SMESH::SMESH_Group_ptr theGroup2,
- const char* theName )
+ SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
+ SMESH::SMESH_GroupBase_ptr theGroup2,
+ const char* theName )
throw (SALOME::SALOME_Exception);
// SMESH::string_array* GetLog(CORBA::Boolean clearAfterGet)
SMESH_Hypothesis::Hypothesis_Status removeHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr anHyp);
- bool setShape( GEOM::GEOM_Object_ptr theShapeObject );
-
int importMEDFile( const char* theFileName, const char* theMeshName );
SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
- void removeSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh, GEOM::GEOM_Object_ptr theSubShapeObject );
+ void removeSubMesh(SMESH::SMESH_subMesh_ptr theSubMesh,
+ GEOM::GEOM_Object_ptr theSubShapeObject );
- SMESH::SMESH_Group_ptr createGroup( SMESH::ElementType theElemType, const char* theName );
+ SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType theElemType,
+ const char* theName,
+ const TopoDS_Shape& theShape = TopoDS_Shape());
void removeGroup( const int theId );
+ SMESH::SMESH_subMesh_ptr getSubMesh(int shapeID);
+ // return an existing subMesh object for the shapeID. shapeID == submeshID.
+
+ const map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
+ // return an existing group object.
+
+ virtual SMESH::long_array* GetIDs();
+
map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
map<int, ::SMESH_subMesh*> _mapSubMesh; //NRI
int _id; // id given by creator (unique within the creator instance)
int _studyId;
map<int, SMESH::SMESH_subMesh_ptr> _mapSubMeshIor;
- map<int, SMESH::SMESH_Group_ptr> _mapGroups;
+ map<int, SMESH::SMESH_GroupBase_ptr> _mapGroups;
map<int, SMESH::SMESH_Hypothesis_ptr> _mapHypo;
};
return _localId;
}
+//=======================================================================
+//function : GetSubShape
+//purpose :
+//=======================================================================
+
+GEOM::GEOM_Object_ptr SMESH_subMesh_i::GetSubShape()
+ throw (SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ GEOM::GEOM_Object_var aShapeObj;
+ try {
+ if ( _mesh_i->_mapSubMesh.find( _localId ) != _mesh_i->_mapSubMesh.end()) {
+ TopoDS_Shape S = _mesh_i->_mapSubMesh[ _localId ]->GetSubShape();
+ if ( !S.IsNull() )
+ aShapeObj = _gen_i->ShapeToGeomObject( S );
+ }
+ }
+ catch(SALOME_Exception & S_ex) {
+ THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+ }
+ return aShapeObj._retn();
+}
+
//=============================================================================
/*!
*
return SALOME_MED::FAMILY::_nil();
}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+SMESH::long_array* SMESH_subMesh_i::GetIDs()
+{
+ SMESH::long_array_var aResult = GetElementsId();
+ return aResult._retn();
+}
SMESH::SMESH_Mesh_ptr GetFather()
throw (SALOME::SALOME_Exception);
+ GEOM::GEOM_Object_ptr GetSubShape()
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long GetId();
SALOME_MED::FAMILY_ptr GetFamily()
throw (SALOME::SALOME_Exception);
+ virtual SMESH::long_array* GetIDs();
+
SMESH_Mesh_i* _mesh_i; //NRI
protected:
SWIG_DEF = libSMESH_Swig.i
EXPORT_PYSCRIPTS = libSMESH_Swig.py \
+ meshpy.py \
batchmode_smesh.py \
batchmode_mefisto.py \
+ cube2pyGibi.py \
+ cube2geometry.py \
+ cube2partition.py \
+ grid4pyGibi.py \
+ grid4partition.py \
+ grid3partition.py \
+ grid17partition.py \
+ hole1geometry.py \
+ hole1partition.py \
+ hole1pyGibi.py \
+ hole2pyGibi.py \
+ cyl2geometry.py \
+ cyl2complementary.py \
SMESH_test0.py\
SMESH_test1.py \
SMESH_test2.py \
SMESH_test4.py \
SMESH_mechanic.py \
SMESH_mechanic_tetra.py \
+ SMESH_mechanic_editor.py \
SMESH_fixation.py \
SMESH_fixation_hexa.py \
SMESH_fixation_tetra.py \
SALOME_ModuleCatalog.idl \
SALOME_Component.idl \
SALOME_GenericObj.idl \
- MED.idl
+ MED.idl \
+ SALOME_Comm.idl
EXPORT_SHAREDPYSCRIPTS=SMESH_shared_modules.py
colis_cc = geompy.MakeCompound([colis, cc])
colis_cc = geompy.MakeTranslation(colis_cc, colis_center, 0.0, 0.0)
-colis_cc_multi = geompy.MakeMultiRotation1D(colis_cc, vz, 4)
+colis_cc_multi = geompy.MultiRotate1D(colis_cc, vz, 4)
# --
comp = geompy.MakeCompound( compGOs )
alveole = geompy.MakeCompound( [ comp, subshapes[8] ])
-
+
idalveole = geompy.addToStudy(alveole, "alveole")
print "Analysis of the geometry to mesh (right after the MakeCompound) :"
print "Number of faces : ", mesh.NbFaces()
print "Number of triangles : ", mesh.NbTriangles()
print "Number of volumes : ", mesh.NbVolumes()
- print "Number of tetrahedrons: ", mesh.NbTetras()
+ print "Number of tetrahedrons: ", mesh.NbTetras()
else:
print "problem when computing the mesh"
-
+
salome.sg.updateObjBrowser(1)
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#
#
#
hcccf = y2p - y1m
decf = []
for face in facef:
- decf.append(geompy.MakePrism(face,vcccf,hcccf))
+ decf.append(geompy.MakePrismVecH(face,vcccf,hcccf))
pc = geompy.MakeVertex(xc, 0., zc)
py2 = geompy.MakeVertex(xc, y2, zc)
faceFlanc = MakeFace([vf1,vf2,vf3,aShape])
-flanc1 = geompy.MakePrism(faceFlanc, vx, epaisseurFlanc)
+flanc1 = geompy.MakePrismVecH(faceFlanc, vx, epaisseurFlanc)
flanc2 = geompy.MakeCopy(flanc1)
flanc1 = geompy.MakeTranslation(flanc1, rayonConge, 0., 0.)
flanc2 = geompy.MakeTranslation(flanc2, longueurPlq - rayonConge - epaisseurFlanc, 0., 0.)
blocs.append(geompy.MakeBox(x2, y1, z3, x3h,y2, z4))
blocs.append(flanc1)
blocs.append(flanc2)
-
+
compbloc = geompy.MakeCompound(blocs)
idcomp = geompy.addToStudy(compbloc, "compbloc")
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#
#
#
# ---- define contigous arcs and segment to define a closed wire
p1 = geompy.MakeVertex( 100.0, 0.0, 0.0 )
p2 = geompy.MakeVertex( 50.0, 50.0, 0.0 )
-p3 = geompy.MakeVertex( 100.0, 100.0, 0.0 )
+p3 = geompy.MakeVertex( 100.0, 100.0, 0.0 )
arc1 = geompy.MakeArc( p1, p2, p3 )
p4 = geompy.MakeVertex( 170.0, 100.0, 0.0 )
pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
vz = geompy.MakeVector( pO, pz )
-prism1 = geompy.MakePrism( face1, vz, 100.0 )
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
Id_prism1 = geompy.addToStudy( prism1, "prism1" )
# ---- create two cylinders
Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
-# ---- cut with cyl1
+# ---- cut with cyl1
shape = geompy.MakeBoolean( prism1, cyl1, 2 )
# ---- fuse with cyl2 to obtain the final mechanic piece :)
smeshgui = salome.ImportComponentGUI("SMESH")
smeshgui.Init(salome.myStudyId)
-idmesh = salome.ObjectToID(mesh)
+idmesh = salome.ObjectToID(mesh)
smeshgui.SetName( idmesh, "Mesh_mechanic" )
print "-------------------------- NumberOfSegments"
mesh.AddHypothesis( shape_mesh, algoReg1D ) # Regular 1D/wire discretisation
mesh.AddHypothesis( shape_mesh, algoMef ) # MEFISTO 2D
-print "-------------------------- add hypothesis and algorithm to sub face 1"
+print "-------------------------- add hypothesis and algorithm to sub face 1"
submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
mesh.AddHypothesis( sub_face1, algoQuad ) # Quadrangle 2D
mesh.AddHypothesis( sub_face1, hypArea35 ) # max area
-print "-------------------------- add hypothesis and algorithm to sub face 2"
+print "-------------------------- add hypothesis and algorithm to sub face 2"
submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
mesh.AddHypothesis( sub_face2, algoQuad ) # Quadrangle 2D
mesh.AddHypothesis( sub_face2, hypArea35 ) # max area
-print "-------------------------- add hypothesis and algorith to sub face 3"
+print "-------------------------- add hypothesis and algorith to sub face 3"
submesh = mesh.GetSubMesh(sub_face3, "SubMeshFace3")
mesh.AddHypothesis( sub_face3, algoQuad ) # Quadrangle 2D
mesh.AddHypothesis( sub_face3, hypArea35 ) # max area
-print "-------------------------- add hypothesis and algorith to sub face 4"
+print "-------------------------- add hypothesis and algorith to sub face 4"
submesh = mesh.GetSubMesh(sub_face4, "SubMeshFace4")
--- /dev/null
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+# File : SMESH_withHole.py
+# Author : Lucien PIGNOLONI
+# Module : SMESH
+# $Header$
+
+#-------------------------------------------------------------------------
+
+import salome
+import geompy
+
+import StdMeshers
+
+import SMESH
+
+# ---------------------------- GEOM --------------------------------------
+
+# ---- define contigous arcs and segment to define a closed wire
+p1 = geompy.MakeVertex( 100.0, 0.0, 0.0 )
+p2 = geompy.MakeVertex( 50.0, 50.0, 0.0 )
+p3 = geompy.MakeVertex( 100.0, 100.0, 0.0 )
+arc1 = geompy.MakeArc( p1, p2, p3 )
+
+p4 = geompy.MakeVertex( 170.0, 100.0, 0.0 )
+seg1 = geompy.MakeVector( p3, p4 )
+
+p5 = geompy.MakeVertex( 200.0, 70.0, 0.0 )
+p6 = geompy.MakeVertex( 170.0, 40.0, 0.0 )
+arc2 = geompy.MakeArc( p4, p5, p6 )
+
+p7 = geompy.MakeVertex( 120.0, 30.0, 0.0 )
+arc3 = geompy.MakeArc( p6, p7, p1 )
+
+# ---- define a closed wire with arcs and segment
+List1 = []
+List1.append( arc1 )
+List1.append( seg1 )
+List1.append( arc2 )
+List1.append( arc3 )
+
+wire1 = geompy.MakeWire( List1 )
+Id_wire1 = geompy.addToStudy( wire1, "wire1" )
+
+# ---- define a planar face with wire
+WantPlanarFace = 1 #True
+face1 = geompy.MakeFace( wire1, WantPlanarFace )
+Id_face1 = geompy.addToStudy( face1, "face1" )
+
+# ---- create a shape by extrusion
+pO = geompy.MakeVertex( 0.0, 0.0, 0.0 )
+pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
+vz = geompy.MakeVector( pO, pz )
+
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
+Id_prism1 = geompy.addToStudy( prism1, "prism1" )
+
+# ---- create two cylinders
+pc1 = geompy.MakeVertex( 90.0, 50.0, -40.0 )
+pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
+
+radius = 20.0
+height = 180.0
+cyl1 = geompy.MakeCylinder( pc1, vz, radius, height )
+cyl2 = geompy.MakeCylinder( pc2, vz, radius, height )
+
+Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
+Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
+
+# ---- cut with cyl1
+shape = geompy.MakeBoolean( prism1, cyl1, 2 )
+
+# ---- fuse with cyl2 to obtain the final mechanic piece :)
+mechanic = geompy.MakeBoolean( shape, cyl2, 3 )
+Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
+
+# ---- explode on faces
+SubFaceL = geompy.SubShapeAllSorted(mechanic, geompy.ShapeType["FACE"])
+
+# ---- add a face sub shape in study to be meshed different
+sub_face1 = SubFaceL[0]
+name = geompy.SubShapeName( sub_face1, mechanic )
+
+Id_SubFace1 = geompy.addToStudyInFather( mechanic, sub_face1, name )
+
+# ---- add a face sub shape in study to be meshed different
+sub_face2 = SubFaceL[4]
+name = geompy.SubShapeName( sub_face2, mechanic )
+
+Id_SubFace2 = geompy.addToStudyInFather( mechanic, sub_face2, name )
+
+# ---- add a face sub shape in study to be meshed different
+sub_face3 = SubFaceL[5]
+name = geompy.SubShapeName( sub_face3, mechanic )
+
+Id_SubFace3 = geompy.addToStudyInFather( mechanic, sub_face3, name )
+
+# ---- add a face sub shape in study to be meshed different
+sub_face4 = SubFaceL[10]
+name = geompy.SubShapeName( sub_face4, mechanic )
+
+Id_SubFace4 = geompy.addToStudyInFather( mechanic, sub_face4, name )
+
+# ---------------------------- SMESH --------------------------------------
+
+# ---- launch SMESH, init a Mesh with shape 'mechanic'
+
+smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
+
+# -- Init --
+shape_mesh = salome.IDToObject( Id_mechanic )
+smesh.SetCurrentStudy(salome.myStudy)
+
+mesh = smesh.CreateMesh(shape_mesh)
+
+smeshgui = salome.ImportComponentGUI("SMESH")
+smeshgui.Init(salome.myStudyId)
+
+idmesh = salome.ObjectToID(mesh)
+smeshgui.SetName( idmesh, "Mesh_mechanic" )
+
+print "-------------------------- NumberOfSegments"
+
+numberOfSegment = 10
+
+hypNbSeg = smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
+hypNbSeg.SetNumberOfSegments( numberOfSegment )
+print hypNbSeg.GetName()
+print hypNbSeg.GetId()
+print hypNbSeg.GetNumberOfSegments()
+
+smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
+
+print "-------------------------- MaxElementArea"
+
+maxElementArea = 25
+
+hypArea25 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
+hypArea25.SetMaxElementArea( maxElementArea )
+print hypArea25.GetName()
+print hypArea25.GetId()
+print hypArea25.GetMaxElementArea()
+
+smeshgui.SetName(salome.ObjectToID(hypArea25), "MaxElementArea_25")
+
+print "-------------------------- MaxElementArea"
+
+maxElementArea = 35
+
+hypArea35 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
+hypArea35.SetMaxElementArea( maxElementArea )
+print hypArea35.GetName()
+print hypArea35.GetId()
+print hypArea35.GetMaxElementArea()
+
+smeshgui.SetName(salome.ObjectToID(hypArea35), "MaxElementArea_35")
+
+print "-------------------------- Regular_1D"
+
+algoReg1D = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
+listHyp = algoReg1D.GetCompatibleHypothesis()
+for hyp in listHyp:
+ print hyp
+print algoReg1D.GetName()
+print algoReg1D.GetId()
+
+smeshgui.SetName(salome.ObjectToID(algoReg1D), "Regular_1D")
+
+print "-------------------------- MEFISTO_2D"
+
+algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
+listHyp = algoMef.GetCompatibleHypothesis()
+for hyp in listHyp:
+ print hyp
+print algoMef.GetName()
+print algoMef.GetId()
+
+smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D")
+
+print "-------------------------- SMESH_Quadrangle_2D"
+
+algoQuad = smesh.CreateHypothesis( "Quadrangle_2D", "libStdMeshersEngine.so" )
+listHyp = algoQuad.GetCompatibleHypothesis()
+for hyp in listHyp:
+ print hyp
+print algoQuad.GetName()
+print algoQuad.GetId()
+
+smeshgui.SetName(salome.ObjectToID(algoQuad), "SMESH_Quadrangle_2D")
+
+print "-------------------------- add hypothesis to main shape"
+
+mesh.AddHypothesis( shape_mesh, hypNbSeg ) # nb segments
+mesh.AddHypothesis( shape_mesh, hypArea25 ) # max area
+
+mesh.AddHypothesis( shape_mesh, algoReg1D ) # Regular 1D/wire discretisation
+mesh.AddHypothesis( shape_mesh, algoMef ) # MEFISTO 2D
+
+print "-------------------------- add hypothesis and algorithm to sub face 1"
+
+submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
+
+mesh.AddHypothesis( sub_face1, algoQuad ) # Quadrangle 2D
+mesh.AddHypothesis( sub_face1, hypArea35 ) # max area
+
+print "-------------------------- add hypothesis and algorithm to sub face 2"
+
+submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
+
+mesh.AddHypothesis( sub_face2, algoQuad ) # Quadrangle 2D
+mesh.AddHypothesis( sub_face2, hypArea35 ) # max area
+
+print "-------------------------- add hypothesis and algorith to sub face 3"
+
+submesh = mesh.GetSubMesh(sub_face3, "SubMeshFace3")
+
+mesh.AddHypothesis( sub_face3, algoQuad ) # Quadrangle 2D
+mesh.AddHypothesis( sub_face3, hypArea35 ) # max area
+
+print "-------------------------- add hypothesis and algorith to sub face 4"
+
+submesh = mesh.GetSubMesh(sub_face4, "SubMeshFace4")
+
+mesh.AddHypothesis( sub_face4, algoQuad ) # Quadrangle 2D
+mesh.AddHypothesis( sub_face4, hypArea35 ) # max area
+
+print "-------------------------- compute the mesh of the mechanic piece"
+
+smesh.Compute(mesh, shape_mesh)
+
+print "Information about the Mesh_mechanic:"
+print "Number of nodes : ", mesh.NbNodes()
+print "Number of edges : ", mesh.NbEdges()
+print "Number of faces : ", mesh.NbFaces()
+print "Number of triangles : ", mesh.NbTriangles()
+print "Number of quadrangles : ", mesh.NbQuadrangles()
+print "Number of volumes : ", mesh.NbVolumes()
+print "Number of tetrahedrons: ", mesh.NbTetras()
+
+
+MeshEditor = mesh.GetMeshEditor()
+
+#1 cutting of quadrangles of the 'SubMeshFace2' submesh
+submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
+MeshEditor.SplitQuadObject(submesh, 1)
+
+#2 cutting of triangles of the group
+FacesTriToQuad = [2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422]
+GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group of faces (quad)")
+GroupTriToQuad.Add(FacesTriToQuad)
+MeshEditor.TriToQuadObject(GroupTriToQuad, None , 1.57)
+
+#3 extrusion of the group
+point = SMESH.PointStruct(0, 0, 5)
+vector = SMESH.DirStruct(point)
+MeshEditor.ExtrusionSweepObject(GroupTriToQuad, vector, 5)
+
+#4 mirror object
+MeshEditor.MirrorObject(mesh, SMESH.AxisStruct(0, 0, 0, 0, 0, 0), SMESH.SMESH_MeshEditor.POINT, 0)
+
+#5 mesh translation
+point = SMESH.PointStruct(10, 10, 10)
+vector = SMESH.DirStruct(point)
+MeshEditor.TranslateObject(mesh, vector, 0)
+
+#6 mesh rotation
+axisXYZ = SMESH.AxisStruct(0, 0, 0, 10, 10, 10)
+angle180 = 180*3.141/180
+MeshEditor.RotateObject(mesh, axisXYZ, angle180, 0)
+
+#7 group smoothing
+FacesSmooth = [864, 933, 941, 950, 1005, 1013]
+GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group of faces (smooth)")
+GroupSmooth.Add(FacesSmooth)
+MeshEditor.SmoothObject(GroupSmooth, [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)
+
+#8 rotation sweep object
+FacesRotate = [492, 493, 502, 503]
+GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group of faces (rotate)")
+GroupRotate.Add(FacesRotate)
+angle45 = 45*3.141/180
+axisXYZ = SMESH.AxisStruct(-38.3128, -73.3658, -133.321, -13.3402, -13.3265, 6.66632)
+MeshEditor.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5)
+
+#9 reorientation of the whole mesh
+submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
+MeshEditor.ReorientObject(submesh)
+
+salome.sg.updateObjBrowser(1)
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#
#
#
# ---- define contigous arcs and segment to define a closed wire
p1 = geompy.MakeVertex( 100.0, 0.0, 0.0 )
p2 = geompy.MakeVertex( 50.0, 50.0, 0.0 )
-p3 = geompy.MakeVertex( 100.0, 100.0, 0.0 )
+p3 = geompy.MakeVertex( 100.0, 100.0, 0.0 )
arc1 = geompy.MakeArc( p1, p2, p3 )
p4 = geompy.MakeVertex( 170.0, 100.0, 0.0 )
pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
vz = geompy.MakeVector( pO, pz )
-prism1 = geompy.MakePrism( face1, vz, 100.0 )
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
Id_prism1 = geompy.addToStudy( prism1, "prism1")
# ---- create two cylinders
Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
-# ---- cut with cyl1
+# ---- cut with cyl1
shape = geompy.MakeBoolean( prism1, cyl1, 2 )
# ---- fuse with cyl2 to obtain the final mechanic piece :)
mesh = smesh.CreateMesh(shape_mesh)
-idmesh = salome.ObjectToID(mesh)
+idmesh = salome.ObjectToID(mesh)
smeshgui.SetName( idmesh, "Mesh_mechanic_tetra" )
mesh.AddHypothesis( shape_mesh, hypNbSeg ) # nb segments
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Geometry
+# ========
+
+# Piece
+# -----
+
+# A small cube centered and put on a great cube
+
+ox = 0
+oy = 0
+oz = 0
+
+arete = 10
+
+# Points
+# ------
+
+blockPoint111 = MakeVertex(ox , oy, oz)
+blockPoint211 = MakeVertex(ox+arete, oy, oz)
+blockPoint112 = MakeVertex(ox , oy, oz+arete)
+blockPoint212 = MakeVertex(ox+arete, oy, oz+arete)
+
+# Faces
+# -----
+
+blockFace1 = MakeQuad4Vertices(blockPoint111, blockPoint211, blockPoint212, blockPoint112)
+
+# Solids
+# ------
+
+blockSolid11 = MakePrismVecH(blockFace1, MakeVectorDXDYDZ(0, 1, 0), arete)
+
+# Translations
+# ------------
+
+blockSolid21 = MakeTranslation(blockSolid11, arete, 0, 0)
+blockSolid31 = MakeTranslation(blockSolid21, arete, 0, 0)
+
+blockSolid12 = MakeTranslation(blockSolid11, 0, 0, arete)
+blockSolid22 = MakeTranslation(blockSolid12, arete, 0, 0)
+blockSolid32 = MakeTranslation(blockSolid22, arete, 0, 0)
+
+blockSolid13 = MakeTranslation(blockSolid12, 0, 0, arete)
+blockSolid23 = MakeTranslation(blockSolid13, arete, 0, 0)
+blockSolid33 = MakeTranslation(blockSolid23, arete, 0, 0)
+
+blockSolid111 = MakeTranslation(blockSolid22, 0, arete, 0)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(blockSolid11)
+c_l.append(blockSolid21)
+c_l.append(blockSolid31)
+c_l.append(blockSolid12)
+c_l.append(blockSolid22)
+c_l.append(blockSolid32)
+c_l.append(blockSolid13)
+c_l.append(blockSolid23)
+c_l.append(blockSolid33)
+c_l.append(blockSolid111)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Cubes2geometry")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Cubes2geometryHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# A small cube centered and put on a great cube
+
+# Geometry
+# --------
+
+g_ox = 0
+g_oy = 0
+g_oz = 0
+
+g_arete = 10
+
+g_trim = 1000
+
+# Points
+# ------
+
+v_arete2 = g_arete*2
+v_arete3 = g_arete*3
+
+v_1 = MakeVertex(g_ox , g_oy , g_oz )
+v_2 = MakeVertex(g_ox+v_arete3, g_oy+g_arete , g_oz+v_arete3)
+
+v_3 = MakeVertex(g_ox+g_arete , g_oy+g_arete , g_oz+g_arete )
+v_4 = MakeVertex(g_ox+v_arete2, g_oy+v_arete2, g_oz+v_arete2)
+
+# Solids
+# ------
+
+s_base = MakeBoxTwoPnt(v_1, v_2)
+s_haut = MakeBoxTwoPnt(v_3, v_4)
+
+# Partition
+# ---------
+
+p_dir1 = MakeVectorDXDYDZ(1, 0, 0)
+p_dir2 = MakeVectorDXDYDZ(0, 0, 1)
+
+p_tools = []
+p_tools.append(MakePlane(v_3, p_dir1, g_trim))
+p_tools.append(MakePlane(v_4, p_dir1, g_trim))
+p_tools.append(MakePlane(v_3, p_dir2, g_trim))
+p_tools.append(MakePlane(v_4, p_dir2, g_trim))
+
+p_element = MakePartition([s_base], p_tools, [], [], ShapeType["SOLID"])
+
+# Compound
+# --------
+
+c_element = SubShapeAll(p_element, ShapeType["SOLID"])
+c_element.append(s_haut)
+
+c_cpd = MakeCompound(c_element)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Study
+# -----
+
+piece_id = addToStudy(piece, "Cubes2partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Cubes2partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Geometry
+# ========
+
+# A small cube centered and put on a great cube
+
+# Points
+# ------
+
+greatPoint111 = MakeVertex( 0, 0, 0)
+greatPoint211 = MakeVertex(10, 0, 0)
+greatPoint311 = MakeVertex(20, 0, 0)
+greatPoint411 = MakeVertex(30, 0, 0)
+
+greatPoint121 = MakeVertex( 0, 10, 0)
+greatPoint221 = MakeVertex(10, 10, 0)
+greatPoint321 = MakeVertex(20, 10, 0)
+greatPoint421 = MakeVertex(30, 10, 0)
+
+greatPoint112 = MakeVertex( 0, 0, 10)
+greatPoint212 = MakeVertex(10, 0, 10)
+greatPoint312 = MakeVertex(20, 0, 10)
+greatPoint412 = MakeVertex(30, 0, 10)
+
+greatPoint122 = MakeVertex( 0, 10, 10)
+greatPoint222 = MakeVertex(10, 10, 10)
+greatPoint322 = MakeVertex(20, 10, 10)
+greatPoint422 = MakeVertex(30, 10, 10)
+
+greatPoint113 = MakeVertex( 0, 0, 20)
+greatPoint213 = MakeVertex(10, 0, 20)
+greatPoint313 = MakeVertex(20, 0, 20)
+greatPoint413 = MakeVertex(30, 0, 20)
+
+greatPoint123 = MakeVertex( 0, 10, 20)
+greatPoint223 = MakeVertex(10, 10, 20)
+greatPoint323 = MakeVertex(20, 10, 20)
+greatPoint423 = MakeVertex(30, 10, 20)
+
+greatPoint114 = MakeVertex( 0, 0, 30)
+greatPoint214 = MakeVertex(10, 0, 30)
+greatPoint314 = MakeVertex(20, 0, 30)
+greatPoint414 = MakeVertex(30, 0, 30)
+
+greatPoint124 = MakeVertex( 0, 10, 30)
+greatPoint224 = MakeVertex(10, 10, 30)
+greatPoint324 = MakeVertex(20, 10, 30)
+greatPoint424 = MakeVertex(30, 10, 30)
+
+
+smallPoint111 = greatPoint222
+smallPoint211 = greatPoint322
+smallPoint121 = MakeVertex(10, 20, 10)
+smallPoint221 = MakeVertex(20, 20, 10)
+
+smallPoint112 = greatPoint223
+smallPoint212 = greatPoint323
+smallPoint122 = MakeVertex(10, 20, 20)
+smallPoint222 = MakeVertex(20, 20, 20)
+
+# Edges
+# -----
+
+smallEdgeX11 = MakeEdge(smallPoint111, smallPoint211)
+smallEdgeX21 = MakeEdge(smallPoint121, smallPoint221)
+smallEdgeX12 = MakeEdge(smallPoint112, smallPoint212)
+smallEdgeX22 = MakeEdge(smallPoint122, smallPoint222)
+
+smallEdgeY11 = MakeEdge(smallPoint111, smallPoint121)
+smallEdgeY21 = MakeEdge(smallPoint211, smallPoint221)
+smallEdgeY12 = MakeEdge(smallPoint112, smallPoint122)
+smallEdgeY22 = MakeEdge(smallPoint212, smallPoint222)
+
+smallEdgeZ11 = MakeEdge(smallPoint111, smallPoint112)
+smallEdgeZ21 = MakeEdge(smallPoint211, smallPoint212)
+smallEdgeZ12 = MakeEdge(smallPoint121, smallPoint122)
+smallEdgeZ22 = MakeEdge(smallPoint221, smallPoint222)
+
+
+greatEdgeX111 = MakeEdge(greatPoint111, greatPoint211)
+greatEdgeX211 = MakeEdge(greatPoint211, greatPoint311)
+greatEdgeX311 = MakeEdge(greatPoint311, greatPoint411)
+greatEdgeX121 = MakeEdge(greatPoint121, greatPoint221)
+greatEdgeX221 = MakeEdge(greatPoint221, greatPoint321)
+greatEdgeX321 = MakeEdge(greatPoint321, greatPoint421)
+
+greatEdgeX112 = MakeEdge(greatPoint112, greatPoint212)
+greatEdgeX212 = MakeEdge(greatPoint212, greatPoint312)
+greatEdgeX312 = MakeEdge(greatPoint312, greatPoint412)
+greatEdgeX122 = MakeEdge(greatPoint122, greatPoint222)
+greatEdgeX222 = smallEdgeX11
+greatEdgeX322 = MakeEdge(greatPoint322, greatPoint422)
+
+greatEdgeX113 = MakeEdge(greatPoint113, greatPoint213)
+greatEdgeX213 = MakeEdge(greatPoint213, greatPoint313)
+greatEdgeX313 = MakeEdge(greatPoint313, greatPoint413)
+greatEdgeX123 = MakeEdge(greatPoint123, greatPoint223)
+greatEdgeX223 = smallEdgeX12
+greatEdgeX323 = MakeEdge(greatPoint323, greatPoint423)
+
+greatEdgeX114 = MakeEdge(greatPoint114, greatPoint214)
+greatEdgeX214 = MakeEdge(greatPoint214, greatPoint314)
+greatEdgeX314 = MakeEdge(greatPoint314, greatPoint414)
+greatEdgeX124 = MakeEdge(greatPoint124, greatPoint224)
+greatEdgeX224 = MakeEdge(greatPoint224, greatPoint324)
+greatEdgeX324 = MakeEdge(greatPoint324, greatPoint424)
+
+greatEdgeY11 = MakeEdge(greatPoint111, greatPoint121)
+greatEdgeY21 = MakeEdge(greatPoint211, greatPoint221)
+greatEdgeY31 = MakeEdge(greatPoint311, greatPoint321)
+greatEdgeY41 = MakeEdge(greatPoint411, greatPoint421)
+
+greatEdgeY12 = MakeEdge(greatPoint112, greatPoint122)
+greatEdgeY22 = MakeEdge(greatPoint212, greatPoint222)
+greatEdgeY32 = MakeEdge(greatPoint312, greatPoint322)
+greatEdgeY42 = MakeEdge(greatPoint412, greatPoint422)
+
+greatEdgeY13 = MakeEdge(greatPoint113, greatPoint123)
+greatEdgeY23 = MakeEdge(greatPoint213, greatPoint223)
+greatEdgeY33 = MakeEdge(greatPoint313, greatPoint323)
+greatEdgeY43 = MakeEdge(greatPoint413, greatPoint423)
+
+greatEdgeY14 = MakeEdge(greatPoint114, greatPoint124)
+greatEdgeY24 = MakeEdge(greatPoint214, greatPoint224)
+greatEdgeY34 = MakeEdge(greatPoint314, greatPoint324)
+greatEdgeY44 = MakeEdge(greatPoint414, greatPoint424)
+
+greatEdgeZ111 = MakeEdge(greatPoint111, greatPoint112)
+greatEdgeZ211 = MakeEdge(greatPoint211, greatPoint212)
+greatEdgeZ311 = MakeEdge(greatPoint311, greatPoint312)
+greatEdgeZ411 = MakeEdge(greatPoint411, greatPoint412)
+
+greatEdgeZ121 = MakeEdge(greatPoint121, greatPoint122)
+greatEdgeZ221 = MakeEdge(greatPoint221, greatPoint222)
+greatEdgeZ321 = MakeEdge(greatPoint321, greatPoint322)
+greatEdgeZ421 = MakeEdge(greatPoint421, greatPoint422)
+
+greatEdgeZ112 = MakeEdge(greatPoint112, greatPoint113)
+greatEdgeZ212 = MakeEdge(greatPoint212, greatPoint213)
+greatEdgeZ312 = MakeEdge(greatPoint312, greatPoint313)
+greatEdgeZ412 = MakeEdge(greatPoint412, greatPoint413)
+
+greatEdgeZ122 = MakeEdge(greatPoint122, greatPoint123)
+greatEdgeZ222 = smallEdgeZ11
+greatEdgeZ322 = smallEdgeZ21
+greatEdgeZ422 = MakeEdge(greatPoint422, greatPoint423)
+
+greatEdgeZ113 = MakeEdge(greatPoint113, greatPoint114)
+greatEdgeZ213 = MakeEdge(greatPoint213, greatPoint214)
+greatEdgeZ313 = MakeEdge(greatPoint313, greatPoint314)
+greatEdgeZ413 = MakeEdge(greatPoint413, greatPoint414)
+
+greatEdgeZ123 = MakeEdge(greatPoint123, greatPoint124)
+greatEdgeZ223 = MakeEdge(greatPoint223, greatPoint224)
+greatEdgeZ323 = MakeEdge(greatPoint323, greatPoint324)
+greatEdgeZ423 = MakeEdge(greatPoint423, greatPoint424)
+
+# Faces
+# -----
+
+smallFaceX1 = MakeQuad(smallEdgeY11, smallEdgeZ11, smallEdgeY12, smallEdgeZ12)
+smallFaceX2 = MakeQuad(smallEdgeY21, smallEdgeZ21, smallEdgeY22, smallEdgeZ22)
+smallFaceY1 = MakeQuad(smallEdgeX11, smallEdgeZ11, smallEdgeX12, smallEdgeZ21)
+smallFaceY2 = MakeQuad(smallEdgeX21, smallEdgeZ12, smallEdgeX22, smallEdgeZ22)
+smallFaceZ1 = MakeQuad(smallEdgeX11, smallEdgeY11, smallEdgeX21, smallEdgeY21)
+smallFaceZ2 = MakeQuad(smallEdgeX12, smallEdgeY12, smallEdgeX22, smallEdgeY22)
+
+
+greatFaceX11 = MakeQuad(greatEdgeY11, greatEdgeZ111, greatEdgeY12, greatEdgeZ121)
+greatFaceX21 = MakeQuad(greatEdgeY21, greatEdgeZ211, greatEdgeY22, greatEdgeZ221)
+greatFaceX31 = MakeQuad(greatEdgeY31, greatEdgeZ311, greatEdgeY32, greatEdgeZ321)
+greatFaceX41 = MakeQuad(greatEdgeY41, greatEdgeZ411, greatEdgeY42, greatEdgeZ421)
+
+greatFaceX12 = MakeQuad(greatEdgeY12, greatEdgeZ112, greatEdgeY13, greatEdgeZ122)
+greatFaceX22 = MakeQuad(greatEdgeY22, greatEdgeZ212, greatEdgeY23, greatEdgeZ222)
+greatFaceX32 = MakeQuad(greatEdgeY32, greatEdgeZ312, greatEdgeY33, greatEdgeZ322)
+greatFaceX42 = MakeQuad(greatEdgeY42, greatEdgeZ412, greatEdgeY43, greatEdgeZ422)
+
+greatFaceX13 = MakeQuad(greatEdgeY13, greatEdgeZ113, greatEdgeY14, greatEdgeZ123)
+greatFaceX23 = MakeQuad(greatEdgeY23, greatEdgeZ213, greatEdgeY24, greatEdgeZ223)
+greatFaceX33 = MakeQuad(greatEdgeY33, greatEdgeZ313, greatEdgeY34, greatEdgeZ323)
+greatFaceX43 = MakeQuad(greatEdgeY43, greatEdgeZ413, greatEdgeY44, greatEdgeZ423)
+
+greatFaceY111 = MakeQuad(greatEdgeX111, greatEdgeZ111, greatEdgeX112, greatEdgeZ211)
+greatFaceY211 = MakeQuad(greatEdgeX211, greatEdgeZ211, greatEdgeX212, greatEdgeZ311)
+greatFaceY311 = MakeQuad(greatEdgeX311, greatEdgeZ311, greatEdgeX312, greatEdgeZ411)
+greatFaceY121 = MakeQuad(greatEdgeX121, greatEdgeZ121, greatEdgeX122, greatEdgeZ221)
+greatFaceY221 = MakeQuad(greatEdgeX221, greatEdgeZ221, greatEdgeX222, greatEdgeZ321)
+greatFaceY321 = MakeQuad(greatEdgeX321, greatEdgeZ321, greatEdgeX322, greatEdgeZ421)
+
+greatFaceY112 = MakeQuad(greatEdgeX112, greatEdgeZ112, greatEdgeX113, greatEdgeZ212)
+greatFaceY212 = MakeQuad(greatEdgeX212, greatEdgeZ212, greatEdgeX213, greatEdgeZ312)
+greatFaceY312 = MakeQuad(greatEdgeX312, greatEdgeZ312, greatEdgeX313, greatEdgeZ412)
+greatFaceY122 = MakeQuad(greatEdgeX122, greatEdgeZ122, greatEdgeX123, greatEdgeZ222)
+greatFaceY222 = smallFaceY1
+greatFaceY322 = MakeQuad(greatEdgeX322, greatEdgeZ322, greatEdgeX323, greatEdgeZ422)
+
+greatFaceY113 = MakeQuad(greatEdgeX113, greatEdgeZ113, greatEdgeX114, greatEdgeZ213)
+greatFaceY213 = MakeQuad(greatEdgeX213, greatEdgeZ213, greatEdgeX214, greatEdgeZ313)
+greatFaceY313 = MakeQuad(greatEdgeX313, greatEdgeZ313, greatEdgeX314, greatEdgeZ413)
+greatFaceY123 = MakeQuad(greatEdgeX123, greatEdgeZ123, greatEdgeX124, greatEdgeZ223)
+greatFaceY223 = MakeQuad(greatEdgeX223, greatEdgeZ223, greatEdgeX224, greatEdgeZ323)
+greatFaceY323 = MakeQuad(greatEdgeX323, greatEdgeZ323, greatEdgeX324, greatEdgeZ423)
+
+greatFaceZ11 = MakeQuad(greatEdgeX111, greatEdgeY11, greatEdgeX121, greatEdgeY21)
+greatFaceZ21 = MakeQuad(greatEdgeX211, greatEdgeY21, greatEdgeX221, greatEdgeY31)
+greatFaceZ31 = MakeQuad(greatEdgeX311, greatEdgeY31, greatEdgeX321, greatEdgeY41)
+
+greatFaceZ12 = MakeQuad(greatEdgeX112, greatEdgeY12, greatEdgeX122, greatEdgeY22)
+greatFaceZ22 = MakeQuad(greatEdgeX212, greatEdgeY22, greatEdgeX222, greatEdgeY32)
+greatFaceZ32 = MakeQuad(greatEdgeX312, greatEdgeY32, greatEdgeX322, greatEdgeY42)
+
+greatFaceZ13 = MakeQuad(greatEdgeX113, greatEdgeY13, greatEdgeX123, greatEdgeY23)
+greatFaceZ23 = MakeQuad(greatEdgeX213, greatEdgeY23, greatEdgeX223, greatEdgeY33)
+greatFaceZ33 = MakeQuad(greatEdgeX313, greatEdgeY33, greatEdgeX323, greatEdgeY43)
+
+greatFaceZ14 = MakeQuad(greatEdgeX114, greatEdgeY14, greatEdgeX124, greatEdgeY24)
+greatFaceZ24 = MakeQuad(greatEdgeX214, greatEdgeY24, greatEdgeX224, greatEdgeY34)
+greatFaceZ34 = MakeQuad(greatEdgeX314, greatEdgeY34, greatEdgeX324, greatEdgeY44)
+
+# Solids
+# ------
+
+smallBlock = MakeHexa(smallFaceX1, smallFaceX2, smallFaceY1, smallFaceY2, smallFaceZ1, smallFaceZ2)
+
+greatBlock11 = MakeHexa(greatFaceX11, greatFaceX21, greatFaceY111, greatFaceY121, greatFaceZ11, greatFaceZ12)
+greatBlock21 = MakeHexa(greatFaceX21, greatFaceX31, greatFaceY211, greatFaceY221, greatFaceZ21, greatFaceZ22)
+greatBlock31 = MakeHexa(greatFaceX31, greatFaceX41, greatFaceY311, greatFaceY321, greatFaceZ31, greatFaceZ32)
+
+greatBlock12 = MakeHexa(greatFaceX12, greatFaceX22, greatFaceY112, greatFaceY122, greatFaceZ12, greatFaceZ13)
+greatBlock22 = MakeHexa(greatFaceX22, greatFaceX32, greatFaceY212, greatFaceY222, greatFaceZ22, greatFaceZ23)
+greatBlock32 = MakeHexa(greatFaceX32, greatFaceX42, greatFaceY312, greatFaceY322, greatFaceZ32, greatFaceZ33)
+
+greatBlock13 = MakeHexa(greatFaceX13, greatFaceX23, greatFaceY113, greatFaceY123, greatFaceZ13, greatFaceZ14)
+greatBlock23 = MakeHexa(greatFaceX23, greatFaceX33, greatFaceY213, greatFaceY223, greatFaceZ23, greatFaceZ24)
+greatBlock33 = MakeHexa(greatFaceX33, greatFaceX43, greatFaceY313, greatFaceY323, greatFaceZ33, greatFaceZ34)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(smallBlock)
+c_l.append(greatBlock11)
+c_l.append(greatBlock21)
+c_l.append(greatBlock31)
+c_l.append(greatBlock12)
+c_l.append(greatBlock22)
+c_l.append(greatBlock32)
+c_l.append(greatBlock13)
+c_l.append(greatBlock23)
+c_l.append(greatBlock33)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Cubes2pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Cubes2pyGibiHexa")
+
+# Get edges
+# ---------
+
+e_edges = SubShapeAllSorted(piece, ShapeType["EDGE"])
+
+# Create local hypothesis
+# -----------------------
+
+m_local=3
+
+m_i=10
+while m_i<18:
+ m_hexa.local(e_edges[m_i], m_local)
+ m_i=m_i+1
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# Create the hexahedrical block geometry of a holed parallelepipede.
+# The hole has a T form composed by 2 cylinders with different radius, and their axis are normal.
+# This piece is meshed in hexahedrical.
+
+gx = 0
+gy = 0
+gz = 0
+
+g_dx = 250
+g_dy = 200
+g_dz = 150
+
+g_rayonGrand = 70
+g_rayonPetit = 50
+
+g_trim = 1000
+
+# Geometry
+# ========
+
+# The parallelepipede
+# -------------------
+
+p_boite = MakeBox(gx-g_dx, gy-g_dy, gz-g_dz, gx+g_dx, gy+g_dy, gz+g_dz)
+
+# The great cylinder
+# ------------------
+
+g_base = MakeVertex(gx-g_dx, gy, gz)
+g_dir = MakeVectorDXDYDZ(1, 0, 0)
+g_cyl = MakeCylinder(g_base, g_dir, g_rayonGrand, g_dx*2)
+
+# The first hole
+# --------------
+
+b_boite = MakeCut(p_boite , g_cyl)
+
+# Partitioning
+# ------------
+
+p_base = MakeVertex(gx, gy, gz)
+
+p_tools = []
+
+p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0, 1 , 0 ), g_trim))
+p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0, g_dz, g_dy), g_trim))
+p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0, -g_dz, g_dy), g_trim))
+
+p_tools.append(MakePlane(MakeVertex(gx-g_rayonPetit, gy, gz), g_dir, g_trim))
+p_tools.append(MakePlane(MakeVertex(gx+g_rayonPetit, gy, gz), g_dir, g_trim))
+
+p_piece = MakePartition([b_boite], p_tools, [], [], ShapeType["SOLID"])
+
+# The small cylinder
+# ------------------
+
+c_cyl = MakeCylinder(p_base, MakeVectorDXDYDZ(0, 0, 1), g_rayonPetit, g_dz)
+
+# The second hole
+# ---------------
+
+d_element = SubShapeAllSorted(p_piece, ShapeType["SOLID"])
+
+d_element[ 8] = MakeCut(d_element[ 8], c_cyl)
+d_element[10] = MakeCut(d_element[10], c_cyl)
+
+# Compound
+# --------
+
+piece = MakeCompound(d_element)
+
+# Add piece in study
+# ------------------
+
+piece_id = addToStudy(piece, "BoxHoled2Cylinders")
+
+# Meshing
+# =======
+
+# Mesh with hexahedrons
+# ---------------------
+
+m_hexa=MeshHexa(piece, 4, "BoxHoled2CylindersHexa")
+
+# Compute mesh
+# ------------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# Creer la geometrie en bloc hexahedrique d'une piece en forme de T composee de 2 cylindres de diametre different dont les axes se coupent orthogonalement,
+# puis mailler en hexahedrique.
+
+cx = 0
+cy = 0
+cz = 0
+
+g_rayon = 100.0
+g_hauteur = 500
+
+p_rayon = 50.0
+p_hauteur = 500
+
+g_trim = 1000
+
+# Geometrie
+# =========
+
+cpd = []
+
+# Gros cylindre
+# -------------
+
+g_base = MakeVertex(cx, cy, cz)
+g_dir = MakeVectorDXDYDZ(0, 0, 1)
+t_hauteur = p_rayon+10.0
+
+g_cyl = MakeCylinder(g_base, g_dir, g_rayon, g_hauteur)
+
+g_coupe = MakeVectorDXDYDZ(1, 0, 0)
+
+g_tools = []
+g_tools.append(MakePlane(MakeVertex(cx+t_hauteur, cy, cz), g_coupe, g_trim))
+g_tools.append(MakePlane(MakeVertex(cx-t_hauteur, cy, cz), g_coupe, g_trim))
+
+g_partie = MakePartition([g_cyl], g_tools, [], [], ShapeType["SOLID"])
+g_bas, g_centre, g_haut = SubShapeAllSorted(g_partie, ShapeType["SOLID"])
+
+# Partie basse du gros cylindre
+# -----------------------------
+
+b_hauteur = 10
+b_base = 20
+
+b_boite = MakeBox(cx-t_hauteur, cy-b_base, cz, cx-t_hauteur-b_hauteur, cy+b_base, cz+g_hauteur)
+cpd.append(b_boite)
+
+b_cyl = MakeCut(g_bas, b_boite)
+
+b_tools = []
+b_tools.append(MakePlane(MakeVertex(cx-t_hauteur-b_hauteur, cy+b_base, cz), MakeVectorDXDYDZ( 1, 1, 0), g_trim))
+b_tools.append(MakePlane(MakeVertex(cx-t_hauteur-b_hauteur, cy-b_base, cz), MakeVectorDXDYDZ(-1, 1, 0), g_trim))
+
+b_partie = MakePartition([b_cyl], b_tools, [], [], ShapeType["SOLID"])
+b_element = SubShapeAll(b_partie, ShapeType["SOLID"])
+cpd = cpd + b_element
+
+# Partie haute du gros cylindre
+# -----------------------------
+
+h_plan = MakePlane(g_base, g_coupe, g_trim)
+
+cpd.append(MakeMirrorByPlane(b_boite, h_plan))
+
+for h in b_element:
+ h_symetrie = MakeMirrorByPlane(h, h_plan)
+ cpd.append(h_symetrie)
+
+# Petit cylindre
+# --------------
+
+z_arete = p_rayon/2
+x_arete = z_arete*t_hauteur*2/g_hauteur
+
+px = cx-x_arete
+py = cy-1.5*g_rayon
+pz = cz+g_hauteur/2
+
+p_base = MakeVertex(cx, py, pz)
+p_dir = MakeVectorDXDYDZ(0, 1, 0)
+p_cyl = MakeCylinder(p_base, p_dir, p_rayon, p_hauteur)
+
+p_boite = MakeBox(px, py, pz-z_arete, cx+x_arete, py+p_hauteur, pz+z_arete)
+
+# Partie interieure du petit cylindre
+# -----------------------------------
+
+i_cyl = MakeCommon(p_cyl, g_cyl)
+i_tuyau = MakeCut(i_cyl, p_boite)
+i_boite = MakeCommon(p_boite, g_cyl)
+
+# Partie exterieure du petit cylindre
+# -----------------------------------
+
+e_cyl0 = MakeCut(p_cyl, g_cyl)
+e_cyl = SubShapeAllSorted(e_cyl0, ShapeType["SOLID"])
+
+e_tuyau = MakeCut(e_cyl[1], p_boite)
+
+e_boite0 = MakeCut(p_boite, g_cyl)
+e_boite = SubShapeAllSorted(e_boite0, ShapeType["SOLID"])
+
+cpd.append(e_boite[1])
+
+# Partie centrale du gros cylindre
+# --------------------------------
+
+c_cyl = MakeCut(g_centre, p_cyl)
+
+# Partitionner
+# ------------
+
+p_tools = []
+p_tools.append(MakePlane(MakeVertex(px, py, pz-z_arete), MakeVectorDXDYDZ(-z_arete, 0, x_arete), g_trim))
+p_tools.append(MakePlane(MakeVertex(px, py, pz+z_arete), MakeVectorDXDYDZ( z_arete, 0, x_arete), g_trim))
+
+p_partie = MakePartition([e_tuyau], p_tools, [], [], ShapeType["SOLID"])
+p_element = SubShapeAll(p_partie, ShapeType["SOLID"])
+cpd = cpd + p_element
+
+q_partie = MakePartition([i_tuyau, c_cyl], p_tools, [], [], ShapeType["SOLID"])
+q_element = SubShapeAll(q_partie, ShapeType["SOLID"])
+
+q_element = q_element + [i_boite]
+
+q_tools = []
+q_tools.append(MakePlane(MakeVertex(cx, cy-b_base, cz), MakeVectorDXDYDZ(0, 1, 0), g_trim))
+q_tools.append(MakePlane(MakeVertex(cx, cy+b_base, cz), MakeVectorDXDYDZ(0, 1, 0), g_trim))
+
+r_element = []
+for e in q_element:
+ r_partie = MakePartition([e], q_tools, [], [], ShapeType["SOLID"])
+ r_element = r_element + SubShapeAll(r_partie, ShapeType["SOLID"])
+
+cpd = cpd + r_element
+
+# Compound
+# --------
+
+piece = MakeCompound(cpd)
+
+# Ajouter la piece dans l'etude
+# -----------------------------
+
+piece_id = addToStudy(piece, "T2Cylindres")
+
+# Maillage
+# ========
+
+# Mailler des hexahedres
+# ----------------------
+
+m_hexa=MeshHexa(piece, 4, "T2CylindresHexa")
+
+# Calculer le maillage
+# --------------------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# grid compound of 17 x 17 elements
+# an element is compound of 3 cylinders concentriques
+# an element is centered in a square of the grid
+# prisme the grid
+
+# Geometry
+# --------
+
+g_x = 0
+g_y = 0
+g_z = 0
+
+g_arete = 50
+g_hauteur = 30
+
+g_rayon1 = 20
+g_rayon2 = 30
+g_rayon3 = 40
+
+# The real value for CEA, but need 3 days for computing
+#g_grid = 17
+g_grid = 3
+
+g_trim = 1000
+
+# Solids
+# ------
+
+s_boite = MakeBox(g_x-g_arete, g_y-g_hauteur, g_z-g_arete, g_x+g_arete, g_y+g_hauteur, g_z+g_arete)
+
+s_pi4 = 3.141592653/4
+s_hauteur = 2*g_hauteur
+s_centre = MakeVertex(g_x, g_y-g_hauteur, g_z)
+s_dir = MakeVectorDXDYDZ(0, 1, 0)
+
+s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon3, s_hauteur)
+s_cyl1 = MakeRotation(s_cyl0, s_dir, s_pi4)
+
+s_blo1 = MakeCut(s_boite, s_cyl1)
+
+s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon2, s_hauteur)
+s_cyl2 = MakeRotation(s_cyl0, s_dir, s_pi4)
+
+s_blo2 = MakeCut(s_cyl1, s_cyl2)
+
+s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon1, s_hauteur)
+s_cyl3 = MakeRotation(s_cyl0, s_dir, s_pi4)
+
+s_blo3 = MakeCut(s_cyl2, s_cyl3)
+
+s_arete = g_rayon1/2
+
+s_blo4 = MakeBox(g_x-s_arete, g_y-g_hauteur, g_z-s_arete, g_x+s_arete, g_y+g_hauteur, g_z+s_arete)
+
+s_blo5 = MakeCut(s_cyl3, s_blo4)
+
+# Partition
+# ---------
+
+p_tools = []
+p_tools.append(MakePlane(s_centre, MakeVectorDXDYDZ( 1, 0, 1), g_trim))
+p_tools.append(MakePlane(s_centre, MakeVectorDXDYDZ(-1, 0, 1), g_trim))
+
+p_partie = MakePartition([s_blo1, s_blo2, s_blo3, s_blo5], p_tools, [], [], ShapeType["SOLID"])
+
+# Compound
+# --------
+
+c_cpd = SubShapeAll(p_partie, ShapeType["SOLID"])
+c_cpd.append(s_blo4)
+
+c_element = MakeCompound(c_cpd)
+
+# Grid
+# ----
+
+piece = MakeMultiTranslation2D(c_element, MakeVectorDXDYDZ(1, 0, 0), 2*g_arete, g_grid,
+ MakeVectorDXDYDZ(0, 0, 1), 2*g_arete, g_grid)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid17partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid17partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# grid compound of 3 x 3 elements
+# an element is compound of 3 cylinders concentriques
+# an element is centered in a square of the grid
+# the smaller cylinder is a hole
+
+# prisme the grid
+
+# Geometry
+# --------
+
+g_x = 0
+g_y = 0
+g_z = 0
+
+g_arete = 50
+g_hauteur = 30
+
+g_rayon1 = 20
+g_rayon2 = 30
+g_rayon3 = 40
+
+g_grid = 3
+
+g_trim = 1000
+
+# Element
+# -------
+
+e_boite = MakeBox(g_x-g_arete, g_y-g_hauteur, g_z-g_arete, g_x+g_arete, g_y+g_hauteur, g_z+g_arete)
+
+e_pi4 = 3.141592653/4
+e_hauteur = 2*g_hauteur
+e_centre = MakeVertex(g_x, g_y-g_hauteur, g_z)
+e_dir = MakeVectorDXDYDZ(0, 1, 0)
+
+e_cyl0 = MakeCylinder(e_centre, e_dir, g_rayon3, e_hauteur)
+e_cyl1 = MakeRotation(e_cyl0, e_dir, e_pi4)
+
+e_blo1 = MakeCut(e_boite, e_cyl1)
+
+e_cyl0 = MakeCylinder(e_centre, e_dir, g_rayon2, e_hauteur)
+e_cyl2 = MakeRotation(e_cyl0, e_dir, e_pi4)
+
+e_blo2 = MakeCut(e_cyl1, e_cyl2)
+
+e_cyl0 = MakeCylinder(e_centre, e_dir, g_rayon1, e_hauteur)
+e_cyl3 = MakeRotation(e_cyl0, e_dir, e_pi4)
+
+e_blo3 = MakeCut(e_cyl2, e_cyl3)
+
+# Partition
+# ---------
+
+p_tools = []
+p_tools.append(MakePlane(e_centre, MakeVectorDXDYDZ( 1, 0, 1), g_trim))
+p_tools.append(MakePlane(e_centre, MakeVectorDXDYDZ(-1, 0, 1), g_trim))
+
+p_element = MakePartition([e_blo1, e_blo2, e_blo3], p_tools, [], [], ShapeType["SOLID"])
+
+# Grid
+# ----
+
+piece = MakeMultiTranslation2D(p_element, MakeVectorDXDYDZ(1, 0, 0), 2*g_arete, g_grid,
+ MakeVectorDXDYDZ(0, 0, 1), 2*g_arete, g_grid)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid3partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid3partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# grid compound by a square with a cylinder on each vertex
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+arete = 50
+hauteur = 100
+rayon = 10
+
+g_trim = 1000
+
+# Box
+# ---
+
+piecePoint = MakeVertex(ox, oy, oz)
+
+pieceBox = MakeBoxTwoPnt(piecePoint, MakeVertex(ox+arete, oy+hauteur, oz+arete))
+
+# Cut by cylinders
+# ----------------
+
+dirUp = MakeVectorDXDYDZ(0, 1, 0)
+
+pieceCut1 = MakeCut(pieceBox , MakeCylinder(piecePoint , dirUp, rayon, hauteur))
+pieceCut2 = MakeCut(pieceCut1, MakeCylinder(MakeVertex(ox+arete, oy, oz ), dirUp, rayon, hauteur))
+pieceCut3 = MakeCut(pieceCut2, MakeCylinder(MakeVertex(ox , oy, oz+arete), dirUp, rayon, hauteur))
+pieceCut4 = MakeCut(pieceCut3, MakeCylinder(MakeVertex(ox+arete, oy, oz+arete), dirUp, rayon, hauteur))
+
+# Compound by make a partition of a solid
+# ---------------------------------------
+
+dir = MakeVectorDXDYDZ(-1, 0, 1)
+
+tools = []
+tools.append(MakePlane(MakeVertex(ox+rayon, oy, oz ), dir, g_trim))
+tools.append(MakePlane(MakeVertex(ox , oy, oz+rayon), dir, g_trim))
+
+piece = MakePartition([pieceCut4], tools, [], [], ShapeType["SOLID"])
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid4partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid4partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+import math
+
+# Piece
+# -----
+
+# grid compound by a square with a cylinder on each vertex
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+arete = 50
+hauteur = 100
+
+rayon = 10
+
+demi = rayon/2
+r3 = demi*math.sqrt(3)
+
+# Points
+# ------
+
+piecePoint111 = MakeVertex(ox+rayon , oy, oz)
+piecePoint211 = MakeVertex(ox+arete-rayon, oy, oz)
+piecePoint112 = MakeVertex(ox , oy, oz+rayon)
+piecePoint212 = MakeVertex(ox+arete , oy, oz+rayon)
+piecePoint113 = MakeVertex(ox , oy, oz+arete-rayon)
+piecePoint213 = MakeVertex(ox+arete , oy, oz+arete-rayon)
+piecePoint114 = MakeVertex(ox+rayon , oy, oz+arete)
+piecePoint214 = MakeVertex(ox+arete-rayon, oy, oz+arete)
+
+pieceCenter1 = MakeVertex(ox , oy, oz)
+pieceCenter2 = MakeVertex(ox+arete , oy, oz)
+pieceCenter3 = MakeVertex(ox , oy, oz+arete)
+pieceCenter4 = MakeVertex(ox+arete , oy, oz+arete)
+
+piecePass1 = MakeVertex(ox+demi , oy, oz+r3)
+piecePass2 = MakeVertex(ox+arete-demi , oy, oz+r3)
+piecePass3 = MakeVertex(ox+arete-demi , oy, oz+arete-r3)
+piecePass4 = MakeVertex(ox+demi , oy, oz+arete-r3)
+
+# Edges
+# -----
+
+pieceEdgeSquare1 = MakeEdge(piecePoint111, piecePoint211)
+pieceEdgeSquare2 = MakeEdge(piecePoint114, piecePoint214)
+pieceEdgeSquare3 = MakeEdge(piecePoint112, piecePoint113)
+pieceEdgeSquare4 = MakeEdge(piecePoint212, piecePoint213)
+
+pieceEdgeDiagonal1 = MakeEdge(piecePoint111, piecePoint213)
+pieceEdgeDiagonal2 = MakeEdge(piecePoint112, piecePoint214)
+
+pieceEdgeArc1 = MakeArc(piecePoint111, piecePass1, piecePoint112)
+pieceEdgeArc2 = MakeArc(piecePoint211, piecePass2, piecePoint212)
+pieceEdgeArc3 = MakeArc(piecePoint213, piecePass3, piecePoint214)
+pieceEdgeArc4 = MakeArc(piecePoint113, piecePass4, piecePoint114)
+
+# Faces
+# -----
+
+pieceFace1 = MakeQuad(pieceEdgeSquare1, pieceEdgeArc2, pieceEdgeSquare4, pieceEdgeDiagonal1)
+pieceFace2 = MakeQuad(pieceEdgeSquare2, pieceEdgeArc4, pieceEdgeSquare3, pieceEdgeDiagonal2)
+
+pieceFace3 = MakeQuad(pieceEdgeArc1, pieceEdgeDiagonal1, pieceEdgeArc3, pieceEdgeDiagonal2)
+
+# Solids
+# ------
+
+pieceVector = MakeVectorDXDYDZ(0, 1, 0)
+
+pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
+pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
+pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(pieceSolid1)
+c_l.append(pieceSolid2)
+c_l.append(pieceSolid3)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid4pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid4pyGibiHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# A holed cube
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+longueur1 = 30
+longueur2 = 70
+
+largeur1 = 30
+largeur2 = 50
+
+hauteur = 50
+
+rayon = 10
+
+# Triangular face
+# ---------------
+
+def triangle(p1, p2, p3):
+ l = []
+ l.append(MakeEdge(p1, p2))
+ l.append(MakeEdge(p2, p3))
+ l.append(MakeEdge(p3, p1))
+ w = MakeWire(l)
+ return MakeFace(w, 1)
+
+# Points
+# ------
+
+basePoint111 = MakeVertex(ox-longueur1, oy, oz-largeur1)
+basePoint211 = MakeVertex(ox+longueur2, oy, oz-largeur1)
+basePoint112 = MakeVertex(ox-longueur1, oy, oz+largeur2)
+basePoint212 = MakeVertex(ox+longueur2, oy, oz+largeur2)
+
+holePoint = MakeVertex(ox, oy, oz)
+
+# Faces
+# -----
+
+baseFace1 = triangle(basePoint111, basePoint211, holePoint)
+baseFace2 = triangle(basePoint211, basePoint212, holePoint)
+baseFace3 = triangle(basePoint212, basePoint112, holePoint)
+baseFace4 = triangle(basePoint112, basePoint111, holePoint)
+
+# Solids
+# ------
+
+baseVector = MakeVectorDXDYDZ(0, 1, 0)
+
+baseSolid1 = MakePrismVecH(baseFace1, baseVector, hauteur)
+baseSolid2 = MakePrismVecH(baseFace2, baseVector, hauteur)
+baseSolid3 = MakePrismVecH(baseFace3, baseVector, hauteur)
+baseSolid4 = MakePrismVecH(baseFace4, baseVector, hauteur)
+
+holeSolid = MakeCylinder(holePoint, baseVector, rayon, hauteur)
+
+# Boolean operations
+# ------------------
+
+baseHexa1 = MakeCut(baseSolid1, holeSolid)
+baseHexa2 = MakeCut(baseSolid2, holeSolid)
+baseHexa3 = MakeCut(baseSolid3, MakeRotation(holeSolid, baseVector, 3.141592653))
+baseHexa4 = MakeCut(baseSolid4, holeSolid)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(baseHexa1)
+c_l.append(baseHexa2)
+c_l.append(baseHexa3)
+c_l.append(baseHexa4)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole1geometry")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole1geometryHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+import math
+
+# Piece
+# -----
+
+# A holed cube at center for partitioning
+
+# Geometry
+# --------
+
+g_x = 0
+g_y = 0
+g_z = 0
+
+g_longueur = 50.0
+g_largeur = 40.0
+g_hauteur = 25.0
+
+g_rayon = 10
+
+g_trim = 1000
+
+# Box
+# ---
+
+b_boite = MakeBox(g_x-g_longueur, g_y-g_hauteur, g_z-g_largeur,
+ g_x+g_longueur, g_y+g_hauteur, g_z+g_largeur)
+
+# Cylinder
+# --------
+
+c_axe = MakeVectorDXDYDZ(0, 1, 0)
+
+c_cyl0 = MakeCylinder(MakeVertex(g_x, g_y-g_hauteur, g_z), c_axe, g_rayon, g_hauteur*2)
+c_cyl = MakeRotation(c_cyl0, c_axe, math.atan(g_longueur/g_largeur))
+
+c_piece = MakeCut(b_boite, c_cyl)
+
+# Partition
+# ---------
+
+p_centre = MakeVertex(g_x, g_y, g_z)
+
+p_tools = []
+p_tools.append(MakePlane(p_centre, MakeVectorDXDYDZ( g_largeur, 0, g_longueur), g_trim))
+p_tools.append(MakePlane(p_centre, MakeVectorDXDYDZ(-g_largeur, 0, g_longueur), g_trim))
+
+piece = MakePartition([c_piece], p_tools, [], [], ShapeType["SOLID"])
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole1partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole1partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+import math
+
+# Piece
+# -----
+
+# A centered holed cube
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+longueur = 100
+largeur = 80
+hauteur = 50
+
+rayon = 10
+
+# Points
+# ------
+
+basePoint111 = MakeVertex(ox , oy, oz)
+basePoint211 = MakeVertex(ox+longueur, oy, oz)
+basePoint112 = MakeVertex(ox , oy, oz+largeur)
+basePoint212 = MakeVertex(ox+longueur, oy, oz+largeur)
+
+cx = ox+longueur/2
+cy = oy
+cz = oz+largeur/2
+
+ll = longueur/largeur
+ll = ll*ll
+dx = rayon/math.sqrt(1+ll)
+dz = rayon/math.sqrt(1+1/ll)
+
+circlePoint1 = MakeVertex(cx-dx, cy, cz-dz)
+circlePoint2 = MakeVertex(cx+dx, cy, cz-dz)
+circlePoint3 = MakeVertex(cx+dx, cy, cz+dz)
+circlePoint4 = MakeVertex(cx-dx, cy, cz+dz)
+
+# Edges
+# -----
+
+squareEdge1 = MakeEdge(basePoint111, basePoint211)
+squareEdge2 = MakeEdge(basePoint211, basePoint212)
+squareEdge3 = MakeEdge(basePoint212, basePoint112)
+squareEdge4 = MakeEdge(basePoint112, basePoint111)
+
+diagEdge1 = MakeEdge(basePoint111, circlePoint1)
+diagEdge2 = MakeEdge(basePoint211, circlePoint2)
+diagEdge3 = MakeEdge(basePoint212, circlePoint3)
+diagEdge4 = MakeEdge(basePoint112, circlePoint4)
+
+arcEdge1 = MakeArc(circlePoint1, MakeVertex(cx , cy, cz-rayon), circlePoint2)
+arcEdge2 = MakeArc(circlePoint2, MakeVertex(cx+rayon, cy, cz ), circlePoint3)
+arcEdge3 = MakeArc(circlePoint3, MakeVertex(cx , cy, cz+rayon), circlePoint4)
+arcEdge4 = MakeArc(circlePoint4, MakeVertex(cx-rayon, cy, cz ), circlePoint1)
+
+# Faces
+# -----
+
+baseFace1 = MakeQuad(squareEdge1, diagEdge2, arcEdge1, diagEdge1)
+baseFace2 = MakeQuad(squareEdge2, diagEdge3, arcEdge2, diagEdge2)
+baseFace3 = MakeQuad(squareEdge3, diagEdge4, arcEdge3, diagEdge3)
+baseFace4 = MakeQuad(squareEdge4, diagEdge1, arcEdge4, diagEdge4)
+
+# Solids
+# ------
+
+baseVector = MakeVectorDXDYDZ(0, 1, 0)
+
+baseSolid1 = MakePrismVecH(baseFace1, baseVector, hauteur)
+baseSolid2 = MakePrismVecH(baseFace2, baseVector, hauteur)
+baseSolid3 = MakePrismVecH(baseFace3, baseVector, hauteur)
+baseSolid4 = MakePrismVecH(baseFace4, baseVector, hauteur)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(baseSolid1)
+c_l.append(baseSolid2)
+c_l.append(baseSolid3)
+c_l.append(baseSolid4)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole1pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole1pyGibiHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# A twice holed cube
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+longueur = 200
+largeur = 100
+hauteur = 80
+
+cylindre = 50
+
+rayon = 20
+
+# Points
+# ------
+
+piecePoint1 = MakeVertex(ox , oy, oz)
+piecePoint2 = MakeVertex(ox+longueur, oy, oz)
+piecePoint3 = MakeVertex(ox+longueur, oy, oz+largeur)
+piecePoint4 = MakeVertex(ox , oy, oz+largeur)
+
+cz = oz+largeur/2
+
+cylPoint1 = MakeVertex(ox+cylindre , oy, cz-rayon)
+cylPoint2 = MakeVertex(ox+longueur-cylindre, oy, cz-rayon)
+cylPoint3 = MakeVertex(ox+longueur-cylindre, oy, cz+rayon)
+cylPoint4 = MakeVertex(ox+cylindre , oy, cz+rayon)
+
+# Edges
+# -----
+
+pieceEdge1 = MakeEdge(piecePoint1, piecePoint4)
+pieceEdge2 = MakeEdge(piecePoint1, cylPoint1)
+pieceEdge3 = MakeEdge(piecePoint4, cylPoint4)
+
+pieceEdge4 = MakeEdge(piecePoint2, piecePoint3)
+pieceEdge5 = MakeEdge(piecePoint2, cylPoint2)
+pieceEdge6 = MakeEdge(piecePoint3, cylPoint3)
+
+pieceEdge7 = MakeEdge(cylPoint1, cylPoint2)
+pieceEdge8 = MakeEdge(cylPoint3, cylPoint4)
+
+cylEdge1 = MakeArc(cylPoint1, MakeVertex(ox+cylindre-rayon , oy, cz), cylPoint4)
+cylEdge2 = MakeArc(cylPoint1, MakeVertex(ox+cylindre+rayon , oy, cz), cylPoint4)
+cylEdge3 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre-rayon, oy, cz), cylPoint3)
+cylEdge4 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre+rayon, oy, cz), cylPoint3)
+
+# Faces
+# -----
+
+pieceFace1 = MakeQuad4Vertices(piecePoint1, piecePoint2, cylPoint2 , cylPoint1 )
+pieceFace2 = MakeQuad (pieceEdge1 , pieceEdge2 , cylEdge1 , pieceEdge3)
+pieceFace3 = MakeQuad4Vertices(piecePoint3, piecePoint4, cylPoint4 , cylPoint3 )
+pieceFace4 = MakeQuad (pieceEdge4 , pieceEdge5 , cylEdge4 , pieceEdge6)
+pieceFace5 = MakeQuad (pieceEdge7 , cylEdge3 , pieceEdge8, cylEdge2 )
+
+# Solids
+# ------
+
+pieceVector = MakeVectorDXDYDZ(0, 1, 0)
+
+pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
+pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
+pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
+pieceSolid4 = MakePrismVecH(pieceFace4, pieceVector, hauteur)
+pieceSolid5 = MakePrismVecH(pieceFace5, pieceVector, hauteur)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(pieceSolid1)
+c_l.append(pieceSolid2)
+c_l.append(pieceSolid3)
+c_l.append(pieceSolid4)
+c_l.append(pieceSolid5)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole2pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole2pyGibiHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
--- /dev/null
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+import geompy
+
+import salome
+
+import StdMeshers
+
+# Variables
+# ---------
+
+smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
+smesh.SetCurrentStudy(salome.myStudy)
+smeshgui = salome.ImportComponentGUI("SMESH")
+smeshgui.Init(salome.myStudyId)
+
+# Hexahedrical meshing
+#
+# Examples: cube2pyGibi.py, lines 270-295
+# cube2partition.py, lines 72-83
+# --------------------
+
+class MeshHexaImpl:
+ piece = 0
+ name = 0
+ mesh = 0
+ cpt = 0
+
+ # Sets algorithm and hypothesis for 1D discretization of the <shape>:
+ # - algorithm "Regular_1D"
+ # - hypothesis "NumberOfSegments" with number of segments <n>
+ # --------------------
+
+ def Mesh1D(self, shape, n):
+ hyp1D=smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
+ smeshgui.SetName(salome.ObjectToID(hyp1D), self.name+"/WireDiscretisation/"+str(self.cpt))
+ self.mesh.AddHypothesis(shape, hyp1D)
+
+ hyp=smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
+ hyp.SetNumberOfSegments(n)
+ smeshgui.SetName(salome.ObjectToID(hyp), self.name+"/Segments_"+str(n)+"/"+str(self.cpt))
+ self.mesh.AddHypothesis(shape, hyp)
+
+ self.cpt=self.cpt+1
+
+ # Constructor
+ #
+ # Creates mesh on the shape <piece>,
+ # sets GUI name of this mesh to <name>.
+ # Sets the following global algorithms and hypotheses:
+ # - for 1D discretization:
+ # - algorithm "Regular_1D"
+ # - hypothesis "NumberOfSegments" with number of segments <n>,
+ # - for 2D discretization:
+ # - algorithm "Quadrangle_2D"
+ # - for 3D discretization:
+ # - algorithm "Hexa_3D"
+ # --------------------
+
+ def __init__(self, piece, n, name):
+ self.piece = piece
+ self.name = name
+
+ self.mesh = smesh.CreateMesh(piece)
+ smeshgui.SetName(salome.ObjectToID(self.mesh), name)
+
+ self.Mesh1D(piece, n)
+
+ hyp2D=smesh.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so")
+ smeshgui.SetName(salome.ObjectToID(hyp2D), name+"/Quadrangle")
+ self.mesh.AddHypothesis(piece, hyp2D)
+
+ hyp3D=smesh.CreateHypothesis("Hexa_3D", "libStdMeshersEngine.so")
+ smeshgui.SetName(salome.ObjectToID(hyp3D), name+"/ijk")
+ self.mesh.AddHypothesis(piece, hyp3D)
+
+ # Creates sub-mesh of the mesh, created by constructor.
+ # This sub-mesh will be created on edge <edge>.
+ # Set algorithm and hypothesis for 1D discretization of the <edge>:
+ # - algorithm "Regular_1D"
+ # - hypothesis "NumberOfSegments" with number of segments <n>
+ # Note: the <edge> will be automatically published in study under the shape, given in constructor.
+ # --------------------
+
+ def local(self, edge, n):
+ geompy.addToStudyInFather(self.piece, edge, geompy.SubShapeName(edge, self.piece))
+ submesh = self.mesh.GetSubMesh(edge, self.name+"/SubMeshEdge/"+str(self.cpt))
+ self.Mesh1D(edge, n)
+
+ # Computes mesh, created by constructor.
+ # --------------------
+
+ def Compute(self):
+ smesh.Compute(self.mesh, self.piece)
+ salome.sg.updateObjBrowser(1)
+
+MeshHexa = MeshHexaImpl
#include "StdMeshers_Quadrangle_2D.hxx"
#include "SMESH_Gen.hxx"
#include "SMESH_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
#include "SMDS_MeshElement.hxx"
#include "SMDS_MeshNode.hxx"
#include "StdMeshers_MEFISTO_2D.hxx"
#include "SMESH_Gen.hxx"
#include "SMESH_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
#include "StdMeshers_MaxElementArea.hxx"
#include "StdMeshers_LengthFromEdges.hxx"
#include "StdMeshers_Quadrangle_2D.hxx"
#include "SMESH_Gen.hxx"
#include "SMESH_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
#include "SMDS_MeshElement.hxx"
#include "SMDS_MeshNode.hxx"
Unexpect aCatch(SalomeException);
//MESSAGE("StdMeshers_Quadrangle_2D::Compute");
SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
- SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
+ aMesh.GetSubMesh(aShape);
FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
if (!quad)
#include "SMESH_Mesh.hxx"
#include "Utils_SALOME_Exception.hxx"
+class SMDS_MeshNode;
+
typedef struct uvPtStruct
{
double param;
double v;
double x; // 2d parameter, normalized [0,1]
double y;
- const SMDS_MeshNode * node;
+ const SMDS_MeshNode * node;
} UVPtStruct;
typedef struct faceQuadStruct
#include "SMDS_MeshElement.hxx"
#include "SMDS_MeshNode.hxx"
#include "SMDS_EdgePosition.hxx"
+#include "SMESH_subMesh.hxx"
#include "utilities.h"
length / (1 - pow( alpha,_value[ NB_SEGMENTS_IND ]));
int i, NbPoints = (int) _value[ NB_SEGMENTS_IND ];
- for ( int i = 2; i < NbPoints; i++ )
+ for ( i = 2; i < NbPoints; i++ )
{
double param = factor * (1 - pow(alpha, i - 1));
theParams.push_back( param );
return false;
SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
- SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
+ aMesh.GetSubMesh(aShape);
const TopoDS_Edge & EE = TopoDS::Edge(aShape);
TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
LIB_CLIENT_IDL = \
SALOMEDS.idl SALOME_Exception.idl \
GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl \
- SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Group.idl
+ SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Group.idl \
+ SALOME_Comm.idl
# Executables targets
BIN =