Salome HOME
Merge branch 'V8_4_BR'
[modules/smesh.git] / doc / salome / gui / SMESH / input / extrusion.rst
1 .. _extrusion_page:
2
3 *********
4 Extrusion
5 *********
6
7 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".
8
9 .. image:: ../images/extrusion_box.png
10         :align: center
11
12 .. centered::
13         "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"
14
15 Any node, segment or 2D element can be extruded. Each type of elements is extruded into a corresponding type of result elements:
16
17 +----------------------+--------------------+
18 | **Extruded element** | **Result element** |
19 +======================+====================+
20 |Node                  | Segment            |
21 +----------------------+--------------------+
22 |Segment               | Quadrilateral      |
23 +----------------------+--------------------+
24 |Triangle              | Pentahedron        |
25 +----------------------+--------------------+
26 |Quadrilateral         | Hexahedron         |
27 +----------------------+--------------------+
28 |Polygon               | Polyhedron         |
29 +----------------------+--------------------+
30 |Hexagonal polygon     | Hexagonal prism    |
31 +----------------------+--------------------+
32
33
34 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).
35
36 .. image:: ../images/extru_rib_segs.png
37         :align: center
38
39 .. centered::
40         "Two triangles extruded: no vertical rib segments generated from nodes #2 and #3 as they are shared by both triangles"
41
42
43 **To use extrusion:**
44
45 #. From the **Modification** menu choose the **Extrusion** item or click **"Extrusion"** button in the toolbar. 
46
47         .. image:: ../images/image91.png
48                 :align: center
49
50         .. centered::
51                 **"Extrusion" button**
52
53         The following dialog will appear:
54
55         .. image:: ../images/extrusionalongaline1.png
56                 :align: center
57
58
59
60 #. In this dialog:
61
62         * Use *Selection* button to specify what you are going to  select at a given moment, **Nodes**, **Edges** or **Faces**.
63                 .. image:: ../images/image120.png
64                         :align: center
65
66                 .. centered::
67                         **"Selection" button**
68   
69         * Specify **Nodes**, **Edges** and **Faces**, which will be extruded, by one of following means:
70                 * **Select the whole mesh, sub-mesh or group** activating the corresponding check-box.
71                 * Choose mesh elements with the mouse in the 3D Viewer. It is possible to select a whole area with a mouse frame. 
72                 * Input the element IDs directly in **Node IDs**, **Edge IDs** and **Face IDs** fields. The selected elements will be highlighted in the viewer, if the mesh is shown there. 
73                 * Apply Filters. **Set filter** button allows to apply a filter to the selection of elements. See more about filters in the :ref:`filtering_elements`:"Selection filters" page. 
74
75         * If the **Extrusion to Distance** radio button is selected 
76                 * specify the translation vector by which the elements will be extruded.
77
78         * If the **Extrusion Along Vector** radio button is selected
79
80                 .. image:: ../images/extrusionalongaline2.png  
81                         :align: center
82     
83                 * specify the components of the **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),
84                 * specify the **Distance** of extrusion along the vector (it can be negative).
85     
86   
87
88         * If the **Extrusion By Normal** radio button is selected, every node of the selected faces is extruded along the *average* of the *normal* vectors to the faces sharing the node. (Nodes and edges cannot be extruded in this mode.)
89
90                 .. image:: ../images/extrusionalongaline3.png 
91                         :align: center
92     
93                 * Specify the **Distance** of extrusion (it can be negative),
94                 * Use **Along average normal** check-box to specify along which vector the distance is measured.
95                 * If it is *activated* the distance is measured along the average normal mentioned above. 
96                 * If it is *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 **Distance**.
97         
98                 The picture below shows a cross-section of a 2D mesh extruded with **Along average normal** activated (to the left) and deactivated (to the right). 
99
100                 .. image:: ../images/extrusionbynormal_alongavgnorm.png
101                         :align: center
102
103                 .. centered::
104                         "'Along average normal' activated (to the left) and deactivated (to the right)"
105
106
107
108                 * **Use only input elements** check-box specifies what elements will be used to compute the average normal.
109                         * If it is *activated* only selected faces, among faces sharing the node, are used to compute the average normal at the node. 
110                 * Else all faces sharing the node are used.
111
112         The picture below shows a cross-section of a 2D mesh the upper plane of which is extruded with **Use only input elements** activated (to the left) and deactivated (to the right). 
113
114         .. image:: ../images/extrusionbynormal_useonly.png
115                 :align: center
116
117         .. centered::
118                 "'Use only input elements' activated (to the left) and deactivated (to the right)"
119   
120   
121
122         * Specify the **Number of steps**.
123         * Optionally specify **Scale Factors**. Each scale factor in the list is applied to nodes of a corresponding extrusion step unless **Linear Variation of Scale Factors** is checked, is which case the scale factors are spread over all extrusion steps.
124                 * **Scaling Center** 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.
125                 * **Add** button adds a scale factor to the list.
126
127                 .. image:: ../images/add.png
128                         :align: center
129
130                 .. centered::
131                         **"Add" button**
132     
133                 * **Remove** button removes selected scale factors from the list.
134
135                 .. image:: ../images/remove.png
136                         :align: center
137
138                 .. centered::
139                         **"Remove" button**
140     
141   
142
143         * If you activate **Generate Groups** check-box, the **result elements** created from **selected elements** 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 *g_Faces* group (see figures below) then result hexahedra will be included in *g_Faces_extruded* group and a quadrangle created at the "top" of extruded mesh will be included in *g_Faces_top group*.  
144
145                 .. image:: ../images/extrusion_groups.png
146                         :align: center
147
148                 .. image:: ../images/extrusion_groups_res.png
149                         :align: center
150
151         This check-box is active only if there are some groups in the mesh.
152   
153
154
155 #. Click **Apply** or **Apply and Close**  button to confirm the operation.
156
157 .. _extrusion_struct:
158
159 Example: creation of a structured mesh from scratch
160 ###################################################
161
162 .. image:: ../images/image75.jpg
163         :align: center
164
165 .. centered::
166         "A node is extruded into a line of segments"
167
168 .. image:: ../images/image76.jpg
169         :align: center
170
171 .. centered::
172         "The line of segments is extruded into a quadrangle mesh"
173
174 .. image:: ../images/image77.jpg
175         :align: center
176
177 .. centered::
178         "The quadrangle mesh is revolved into a hexahedral mesh"
179
180
181 **See Also** a sample TUI Script of an :ref:`tui_extrusion` operation. 
182
183