Salome HOME
Merge remote-tracking branch 'origin/master'
[modules/smesh.git] / doc / salome / gui / SMESH / input / tui_filters.doc
1 /*!
2
3 \page tui_filters_page Filters usage
4
5 \tableofcontents
6
7 Filters allow picking only the mesh elements satisfying to a
8 specific condition or a set of conditions. Filters can be used to create
9 or edit mesh groups, remove elements from the mesh, control
10 mesh quality by different parameters, etc.
11
12 Several filtering criteria can be combined together by using logical
13 operators \a AND and \a OR. In addition, a filtering criterion can
14 be reverted using logical operator \a NOT.
15
16 Mesh filters can use the functionality of mesh quality controls to filter
17 mesh nodes / elements by a specific characteristic (Area, Length, etc).
18
19 This page provides a short description of the existing mesh filters,
20 describes required parameters and gives simple examples of usage in
21 Python scripts.
22
23 \sa \ref tui_quality_controls_page
24
25 \section filter_aspect_ratio Aspect ratio
26
27 filters 2D mesh elements (faces) according to the aspect ratio value:
28 - element type should be \a SMESH.FACE
29 - functor type should be \a SMESH.FT_AspectRatio
30 - threshold is floating point value (aspect ratio)
31
32 \tui_script{filters_ex01.py}
33
34 \sa \ref tui_aspect_ratio
35
36 \section filter_aspect_ratio_3d Aspect ratio 3D
37
38 filters 3D mesh elements (volumes) according to the aspect ratio value:
39 - element type is \a SMESH.VOLUME
40 - functor type is \a SMESH.FT_AspectRatio3D
41 - threshold is floating point value (aspect ratio)
42
43 \tui_script{filters_ex02.py}
44
45 \sa \ref tui_aspect_ratio_3d
46
47 \section filter_warping_angle Warping angle
48
49 filters 2D mesh elements (faces) according to the warping angle value:
50 - element type is \a SMESH.FACE
51 - functor type is \a SMESH.FT_Warping
52 - threshold is floating point value (warping angle)
53
54 \tui_script{filters_ex03.py}
55
56 \sa \ref tui_warping
57
58 \section filter_minimum_angle Minimum angle
59
60 filters 2D mesh elements (faces) according to the minimum angle value:
61 - element type is \a SMESH.FACE
62 - functor type is \a SMESH.FT_MinimumAngle
63 - threshold is floating point value (minimum angle)
64
65 \tui_script{filters_ex04.py}
66
67 \sa \ref tui_minimum_angle
68
69 \section filter_taper Taper
70
71 filters 2D mesh elements (faces) according to the taper value:
72 - element type is \a SMESH.FACE
73 - functor type is \a SMESH.FT_Taper
74 - threshold is floating point value (taper)
75
76 \tui_script{filters_ex05.py}
77
78 \sa \ref tui_taper
79
80 \section filter_skew Skew
81
82 filters 2D mesh elements (faces) according to the skew value:
83 - element type is \a SMESH.FACE
84 - functor type is \a SMESH.FT_Skew
85 - threshold is floating point value (skew)
86
87 \tui_script{filters_ex06.py}
88
89 \sa \ref tui_skew
90
91 \section filter_area Area
92
93 filters 2D mesh elements (faces) according to the area value:
94 - element type is \a SMESH.FACE
95 - functor type is \a SMESH.FT_Area
96 - threshold is floating point value (area)
97
98 \tui_script{filters_ex07.py}
99
100 \sa \ref tui_area
101
102 \section filter_volume Volume
103
104 filters 3D mesh elements (volumes) according to the volume value:
105 - element type is \a SMESH.VOLUME
106 - functor type is \a SMESH.FT_Volume3D
107 - threshold is floating point value (volume)
108
109 \tui_script{filters_ex08.py}
110
111 \sa \ref tui_volume
112
113 \section filter_free_borders Free borders
114
115 filters 1D mesh elements (edges) which represent free borders of a mesh:
116 - element type is \a SMESH.EDGE
117 - functor type is \a SMESH.FT_FreeBorders
118 - threshold value is not required
119
120 \tui_script{filters_ex09.py}
121
122 \sa \ref tui_free_borders
123
124 \section filter_free_edges Free edges
125
126 filters 2D mesh elements (faces) having edges (i.e. links between
127 nodes, not mesh segments) belonging to one face of mesh only:
128 - element type is \a SMESH.FACE
129 - functor type is \a SMESH.FT_FreeEdges
130 - threshold value is not required
131
132 \tui_script{filters_ex10.py}
133
134 \sa \ref tui_free_edges
135
136 \section filter_free_nodes Free nodes
137
138 filters free nodes:
139 - element type is \a SMESH.NODE
140 - functor type is \a SMESH.FT_FreeNodes
141 - threshold value is not required
142
143 \tui_script{filters_ex11.py}
144
145 \sa \ref tui_free_nodes
146
147 \section filter_free_faces Free faces
148
149 filters free faces:
150 - element type is \a SMESH.FACE
151 - functor type is \a SMESH.FT_FreeFaces
152 - threshold value is not required
153
154 \tui_script{filters_ex12.py}
155
156 \sa \ref tui_free_faces
157
158 \section filter_bare_border_faces Bare border faces
159
160 filters faces with bare borders:
161 - element type is \a SMESH.FACE
162 - functor type is \a SMESH.FT_BareBorderFace
163 - threshold value is not required
164
165 \tui_script{filters_ex13.py}
166
167 \sa \ref tui_bare_border_faces
168
169 \section filter_coplanar_faces Coplanar faces
170
171 filters coplanar faces:
172 - element type is \a SMESH.FACE
173 - functor type is \a SMESH.FT_CoplanarFaces
174 - threshold value is the face ID
175 - tolerance is in degrees
176
177 \tui_script{filters_ex14.py}
178
179 \section filter_over_constrained_faces Over-constrained faces
180
181 filters over-constrained faces:
182 - element type is \a SMESH.FACE
183 - functor type is \a SMESH.FT_OverConstrainedFace
184 - threshold value is not required
185
186 \tui_script{filters_ex15.py}
187
188 \sa \ref tui_over_constrained_faces
189
190 \section filter_double_elements Double edges, Double faces, Double volumes
191
192 filters mesh elements basing on the same set of nodes:
193 - element type is either \a SMESH.EDGE, \a SMESH.FACE or \a SMESH.VOLUME
194 - functor type is either \a SMESH.FT_EqualEdges, \a
195           SMESH.FT_EqualFaces or \a SMESH.FT_EqualVolumes,
196 - threshold value is not required
197
198 \tui_script{filters_ex16.py}
199
200
201 \section tui_double_nodes_control Double nodes
202
203 filters mesh nodes which are coincident with other nodes (within a given tolerance):
204 - element type is \a SMESH.NODE
205 - functor type is \a SMESH.FT_EqualNodes
206 - threshold value is not required
207 - default tolerance is 1.0e-7
208
209 \tui_script{filters_ex17.py}
210
211
212 \section filter_node_nb_conn Node connectivity number
213
214 filters nodes according to a number of elements of highest dimension connected to a node:
215 - element type should be \a SMESH.NODE
216 - functor type should be \a SMESH.FT_NodeConnectivityNumber
217 - threshold is an integer value (number of elements)
218
219 \tui_script{filters_node_nb_conn.py}
220
221
222 \section filter_borders_multiconnection Borders at multi-connection
223
224 filters 1D mesh elements (segments) according to the specified number of
225 connections (faces and volumes on whose border the segment lies):
226 - element type is \a SMESH.EDGE
227 - functor type is \a SMESH.FT_MultiConnection
228 - threshold is integer value (number of connections)
229
230 \tui_script{filters_ex18.py}
231
232 \sa \ref tui_borders_at_multiconnection
233
234 \section filter_borders_multiconnection_2d Borders at multi-connection 2D
235
236 filters 2D mesh elements (faces) with the specified maximal number of
237 faces connected to a border (link between nodes, not mesh segment):
238 - element type is \a SMESH.FACE
239 - functor type is \a SMESH.FT_MultiConnection2D
240 - threshold is integer value (number of connections)
241
242 \tui_script{filters_ex19.py}
243
244 \sa \ref tui_borders_at_multiconnection_2d
245
246 \section filter_length Length
247
248 filters 1D mesh elements (edges) according to the edge length value:
249 - element type should be \a SMESH.EDGE
250 - functor type should be \a SMESH.FT_Length
251 - threshold is floating point value (length)
252
253 \tui_script{filters_ex20.py}
254
255 \sa \ref tui_length_1d
256
257 \section filter_length_2d Length 2D
258
259 filters 2D mesh elements (faces) according to the maximum length of its
260 edges (links between nodes):
261 - element type should be \a SMESH.FACE
262 - functor type should be \a SMESH.FT_Length2D
263 - threshold is floating point value (edge length)
264
265 \tui_script{filters_ex21.py}
266
267 \sa \ref tui_length_2d
268
269 \section filter_max_element_length_2d Element Diameter 2D
270
271 filters 2D mesh elements (faces) according to the maximum length
272 of its edges and diagonals:
273 - element type should be \a SMESH.FACE
274 - functor type should be \a SMESH.FT_MaxElementLength2D
275 - threshold is floating point value (length)
276
277 \tui_script{filters_ex22.py}
278
279 \sa \ref tui_max_element_length_2d
280
281 \section filter_max_element_length_3d Element Diameter 3D
282
283 filters 3D mesh elements (volumes) according to the maximum length
284 of its edges and diagonals:
285 - element type should be \a SMESH.VOLUME
286 - functor type should be \a SMESH.FT_MaxElementLength3D
287 - threshold is floating point value (edge/diagonal length)
288
289 \tui_script{filters_ex23.py}
290
291 \sa \ref tui_max_element_length_3d
292
293 \section filter_bare_border_volumes Bare border volumes
294
295 filters 3D mesh elements with bare borders, i.e. having a facet not
296 shared with other volumes and without a face on it:
297 - element type is \a SMESH.VOLUME
298 - functor type is \a SMESH.FT_BareBorderVolume
299 - threshold value is not required
300
301 \tui_script{filters_ex24.py}
302
303 \sa \ref tui_bare_border_volumes
304
305 \section filter_over_constrained_volumes Over-constrained volumes
306
307 filters over-constrained volumes, whose all nodes are on the mesh boundary:
308 - element type is \a SMESH.VOLUME
309 - functor type is \a SMESH.FT_OverConstrainedVolume
310 - threshold value is not required
311
312 \tui_script{filters_ex25.py}
313
314 \sa \ref tui_over_constrained_faces
315
316 \section filter_belong_to_group Belong to Mesh Group
317
318 filters mesh entities (nodes or elements) included in a mesh group
319 defined by threshold value:
320 - element type can be any, from \a  SMESH.NODE to \a SMESH.BALL
321 - functor type should be \a SMESH.FT_BelongToMeshGroup
322 - threshold is mesh group object
323
324 \tui_script{filters_belong2group.py}
325
326 \section filter_belong_to_geom Belong to Geom
327
328 filters mesh entities (nodes or elements) which all nodes lie on the
329 shape defined by threshold value:
330 - element type can be any, from \a  SMESH.NODE to \a SMESH.BALL
331 - functor type should be \a SMESH.FT_BelongToGeom
332 - threshold is geometrical object
333 - tolerance is a distance between a node and the geometrical object;
334 it is used if an node is not associated to any geometry.
335
336 \tui_script{filters_ex26.py}
337
338 \section filter_lying_on_geom Lying on Geom
339
340 filters mesh entities (nodes or elements) at least one node of which lies on the
341 shape defined by threshold value:
342 - element type can be any, from \a  SMESH.NODE to \a SMESH.BALL
343 - functor type should be \a SMESH.FT_LyingOnGeom
344 - threshold is geometrical object
345 - tolerance is a distance between a node and the geometrical object;
346 it is used if an node is not associated to any geometry.
347
348 \tui_script{filters_ex27.py}
349
350 \section filter_belong_to_plane Belong to Plane
351
352 filters mesh entities (nodes or elements) which all nodes belong to the
353 plane defined by threshold value with the given tolerance:
354 - element type can be any except \a  SMESH.VOLUME
355 - functor type should be \a SMESH.FT_BelongToPlane
356 - threshold is geometrical object (plane)
357 - default tolerance is 1.0e-7
358
359 \tui_script{filters_ex28.py}
360
361 \section filter_belong_to_cylinder Belong to Cylinder
362
363 filters mesh entities (nodes or elements) which all nodes belong to the
364 cylindrical face defined by threshold value with the given tolerance:
365 - element type can be any except \a  SMESH.VOLUME
366 - functor type should be \a SMESH.FT_BelongToCylinder
367 - threshold is geometrical object (cylindrical face)
368 - default tolerance is 1.0e-7
369
370 \tui_script{filters_ex29.py}
371
372 \section filter_belong_to_surface Belong to Surface
373
374 filters mesh entities (nodes or elements) which all nodes belong to the
375 arbitrary surface defined by threshold value with the given tolerance:
376 - element type can be any except \a  SMESH.VOLUME
377 - functor type should be \a SMESH.FT_BelongToGenSurface
378 - threshold is geometrical object (arbitrary surface)
379 - default tolerance is 1.0e-7
380
381 \tui_script{filters_ex30.py}
382
383 \section filter_range_of_ids Range of IDs
384
385 filters mesh entities elements (nodes or elements) according to the
386 specified identifiers range:
387 - element type can be any, from \a  SMESH.NODE to \a SMESH.BALL
388 - functor type is \a SMESH.FT_RangeOfIds
389 - threshold is string listing required IDs and/or ranges of IDs, e.g."1,2,3,50-60,63,67,70-78"  
390
391 \tui_script{filters_ex31.py}
392
393 \section filter_bad_oriented_volume Badly oriented volume
394
395 filters 3D mesh elements (volumes), which are incorrectly oriented from
396 the point of view of MED convention. 
397 - element type should be \a SMESH.VOLUME
398 - functor type is \a SMESH.FT_BadOrientedVolume
399 - threshold is not required
400
401 \tui_script{filters_ex32.py}
402
403 \section filter_linear_or_quadratic Linear / quadratic
404
405 filters linear / quadratic mesh elements:
406 - element type should be either \a SMESH.EDGE, \a SMESH.FACE or \a SMESH.VOLUME
407 - functor type is \a SMESH.FT_LinearOrQuadratic
408 - threshold is not required
409 - if unary operator is set to SMESH.FT_LogicalNOT, the quadratic
410 elements are selected, otherwise (by default) linear elements are selected
411
412 \tui_script{filters_ex33.py}
413
414 \section filter_group_color Group color
415
416 filters mesh entities, belonging to the group with the color defined by the threshold value.
417 - element type can be any, from \a  SMESH.NODE to \a SMESH.BALL
418 - functor type is \a SMESH.FT_GroupColor
419 - threshold should be of SALOMEDS.Color type
420
421 \tui_script{filters_ex34.py}
422
423 \section filter_geom_type Geometry type
424
425 filters mesh elements by the geometric type defined with the threshold
426 value. The list of available geometric types depends on the element
427 entity type.
428 - element type can be any, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME, etc.
429 - functor type should be \a SMESH.FT_ElemGeomType
430 - threshold is either of smesh.GeometryType values. Type \a SMESH.GeometryType._items in the Python Console to see all geometric types.
431
432 \tui_script{filters_ex35.py}
433
434 \section filter_entity_type Entity type
435
436 filters mesh elements by the geometric type and number of nodes. 
437 - element type can be any, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME, etc.
438 - functor type should be \a SMESH.FT_EntityType
439 - threshold is either of SMESH.EntityType values. Type \a SMESH.EntityType._items in the Python Console to see all entity types.
440
441 \tui_script{filters_ex37.py}
442
443 \section filter_ball_diam Ball diameter
444
445 filters ball elements by diameter. 
446 - element type should be \a SMESH.BALL
447 - functor type should be \a SMESH.FT_BallDiameter
448 - threshold is floating point value (ball diameter)
449
450 \tui_script{filters_ex38.py}
451
452 \section filter_domain Elements of a domain
453
454 filters elements of a specified domain. 
455 - element type can be any, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME, etc.
456 - functor type should be \a SMESH.FT_ConnectedElements
457 - threshold is either (1) node ID or (2)  geometrical vertex or (3) 3 coordinates of a point.
458
459 \tui_script{filters_ex39.py}
460
461 \section combining_filters How to combine several criteria into a filter?
462
463 Several criteria can be combined into a filter.
464
465 Example :
466
467 \tui_script{filters_ex36.py}
468
469
470 */