mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 18:30:35 +05:00
182 lines
7.5 KiB
Plaintext
182 lines
7.5 KiB
Plaintext
/*!
|
|
|
|
\page extrusion_page Extrusion
|
|
|
|
\n Extrusion is used to build mesh elements of plus one
|
|
dimension than the input ones. Boundary elements around generated
|
|
mesh of plus one dimension are additionally created. All created
|
|
elements can be automatically grouped. Extrusion can be used to create
|
|
a \ref extrusion_struct "structured mesh from scratch".
|
|
|
|
\image html extrusion_box.png "If you extrude several quadrangles, you get exactly the same mesh as if you meshed a geometrical box (except for that the initial quadrangles can be incorrectly oriented): quadrangles and segments are created on the boundary of the generated mesh"
|
|
|
|
<p>Any node, segment or 2D element can be extruded. Each type of
|
|
elements is extruded into a corresponding type of result elements:
|
|
<table>
|
|
<tr><td><b>Extruded element</b></td><td><b> Result element </b></td></tr>
|
|
<tr><td>Node </td><td> Segment </td></tr>
|
|
<tr><td>Segment </td><td> Quadrilateral </td></tr>
|
|
<tr><td>Triangle </td><td> Pentahedron </td></tr>
|
|
<tr><td>Quadrilateral </td><td> Hexahedron </td></tr>
|
|
<tr><td>Polygon </td><td> Polyhedron </td></tr>
|
|
<tr><td>Hexagonal polygon </td><td> Hexagonal prism </td></tr>
|
|
</table>
|
|
|
|
When 2D elements are extruded, in addition to 3D elements segments are
|
|
created on the ribs of the resulting 3D mesh. Free edges of input 2D elements
|
|
generate logically horizontal rib segments. Logically vertical rib
|
|
segments are generated from the nodes belonging to a sole input 2D element
|
|
(the figure below illustrates this rule).
|
|
|
|
\image html extru_rib_segs.png "Two triangles extruded: no vertical rib segments generated from nodes #2 and #3 as they are shared by both triangles"
|
|
|
|
<em>To use extrusion:</em>
|
|
<ol>
|
|
<li>From the \b Modification menu choose the \b Extrusion item or click
|
|
<em>"Extrusion"</em> button in the toolbar.
|
|
|
|
<center>
|
|
\image html image91.png
|
|
<em>"Extrusion" button</em>
|
|
</center>
|
|
|
|
The following dialog will appear:
|
|
|
|
\image html extrusionalongaline1.png
|
|
|
|
</li>
|
|
|
|
<li>In this dialog:
|
|
<ul>
|
|
<li>Use \a Selection button to specify what you are going to
|
|
select at a given moment, \b Nodes, \b Edges or \b Faces.
|
|
\image html image120.png
|
|
<center><em>"Selection" button</em></center>
|
|
</li>
|
|
<li>Specify \b Nodes, \b Edges and \b Faces, which will be extruded, by one
|
|
of following means:
|
|
<ul>
|
|
<li><b>Select the whole mesh, sub-mesh or group</b> activating the
|
|
corresponding check-box.</li>
|
|
<li>Choose mesh elements with the mouse in the 3D Viewer. It is
|
|
possible to select a whole area with a mouse frame.</li>
|
|
<li>Input the element IDs directly in <b>Node IDs</b>, <b>Edge
|
|
IDs</b> and <b>Face IDs</b> fields. The selected elements will
|
|
be highlighted in the viewer, if the mesh is shown there.</li>
|
|
<li>Apply Filters. <b>Set filter</b> button allows to apply a
|
|
filter to the selection of elements. See more about filters in
|
|
the \ref filtering_elements "Selection filters" page.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>If the <b>Extrusion to Distance</b> radio button is selected
|
|
<ul>
|
|
<li> specify the translation vector by which the elements will
|
|
be extruded.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>If the <b>Extrusion Along Vector</b> radio button is selected
|
|
\image html extrusionalongaline2.png
|
|
<ul>
|
|
<li>specify the components of the \b Vector along which the elements
|
|
will be extruded, either directly or by selecting the mesh face (the
|
|
normal to the face will define the vector),</li>
|
|
<li>specify the \b Distance of extrusion along the vector (it can
|
|
be negative).</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>If the <b>Extrusion By Normal</b> radio button is selected,
|
|
every node of the selected faces is extruded along the \a average
|
|
of the \a normal vectors to the faces sharing the node. (Nodes and
|
|
edges cannot be extruded in this mode.)
|
|
\image html extrusionalongaline3.png
|
|
<ul>
|
|
<li>Specify the \b Distance of extrusion (it can be negative),</li>
|
|
<li>Use <b>Along average normal</b> check-box to specify along
|
|
which vector the distance is measured.
|
|
<ul>
|
|
<li>If it is \a activated the distance is measured along the
|
|
average normal mentioned above. </li>
|
|
<li>If it is \a deactivated every node is extruded along the
|
|
average normal till its intersection with a virtual plane obtained
|
|
by translation of the face sharing the node along its own normal
|
|
by the \b Distance.</li>
|
|
</ul>
|
|
The picture below shows a cross-section of a 2D mesh extruded
|
|
with <b>Along average normal</b> activated (to the left) and
|
|
deactivated (to the right).
|
|
|
|
\image html extrusionbynormal_alongavgnorm.png "'Along average normal' activated (to the left) and deactivated (to the right)"
|
|
<p></li>
|
|
|
|
<li><b>Use only input elements</b> check-box specifies what
|
|
elements will be used to compute the average normal.<ul>
|
|
<li> If it is \a activated only selected faces, among faces
|
|
sharing the node, are used to compute the average normal at
|
|
the node. </li>
|
|
<li>Else all faces sharing the node are used.</li></ul>
|
|
|
|
The picture below shows a cross-section of a 2D mesh the upper
|
|
plane of which is extruded with <b>Use only input elements</b>
|
|
activated (to the left) and deactivated (to the right).
|
|
|
|
\image html extrusionbynormal_useonly.png "'Use only input elements' activated (to the left) and deactivated (to the right)"
|
|
<p></li>
|
|
</li>
|
|
</ul>
|
|
|
|
<li>Specify the <b>Number of steps</b>.</li>
|
|
|
|
<li>Optionally specify <b>Scale Factors</b>. Each scale factor in
|
|
the list is applied to nodes of a corresponding extrusion step
|
|
unless <b>Linear Variation of Scale Factors</b> is checked, is
|
|
which case the scale factors are spread over all extrusion steps.</li>
|
|
<ul>
|
|
<li><b>Scaling Center</b> can be defined either using spin boxes
|
|
or by picking a node in the Viewer or by picking a geometrical
|
|
vertex in the Object Browser.</li>
|
|
<li>\b Add button adds a scale factor to the list.
|
|
\image html add.png
|
|
<center><em>"Add" button</em></center>
|
|
</li>
|
|
<li>\b Remove button removes selected scale factors from the list.
|
|
\image html remove.png
|
|
<center><em>"Remove" button</em></center>
|
|
</li>
|
|
</ul>
|
|
|
|
<li>If you activate <b>Generate Groups</b> check-box, the <em>result elements</em>
|
|
created from <em>selected elements</em> contained in groups will be
|
|
included into new groups named by pattern "<old group
|
|
name>_extruded" and "<old group name>_top". For example if a
|
|
selected quadrangle is included in \a g_Faces group (see figures
|
|
below) then result hexahedra will be included in \a
|
|
g_Faces_extruded group and a quadrangle created at the "top" of
|
|
extruded mesh will be included in \a g_Faces_top group. <br>
|
|
\image html extrusion_groups.png
|
|
\image html extrusion_groups_res.png
|
|
<p> This check-box is active only if there are some groups in the mesh.
|
|
</li>
|
|
</ul>
|
|
|
|
<li>Click \b Apply or <b> Apply and Close</b> button to confirm the operation.</li>
|
|
</ol>
|
|
<p>
|
|
|
|
\anchor extrusion_struct
|
|
<h2>Example: creation of a structured mesh from scratch</h2>
|
|
|
|
\image html image75.jpg "A node is extruded into a line of segments"
|
|
<br>
|
|
\image html image76.jpg "The line of segments is extruded into a quadrangle mesh"
|
|
<br>
|
|
\image html image77.jpg "The quadrangle mesh is revolved into a hexahedral mesh"
|
|
|
|
|
|
<br><b>See Also</b> a sample TUI Script of an
|
|
\ref tui_extrusion "Extrusion" operation.
|
|
|
|
*/
|