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