mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-29 19:00:35 +05:00
0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm
This commit is contained in:
parent
cac74c04ae
commit
76fc32823a
BIN
doc/salome/gui/SMESH/images/prism_needs_hyps.png
Normal file
BIN
doc/salome/gui/SMESH/images/prism_needs_hyps.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 42 KiB |
@ -30,35 +30,43 @@ all the eight prisms in the stacks.
|
||||
|
||||
To use <em>3D extrusion</em> algorithm you need to assign algorithms
|
||||
and hypotheses of lower dimension as follows.
|
||||
(A sample picture below shows algorithms and hypotheses used to
|
||||
mesh a cylinder with prismatic volumes).
|
||||
|
||||
\image html prism_needs_hyps.png
|
||||
|
||||
\b Global algorithms and hypotheses to be chosen at
|
||||
\ref create_mesh_anchor "Creation of a mesh object" are:
|
||||
<ul>
|
||||
<li> 1D algorithm and hypothesis that will be applied for meshing
|
||||
(logically) vertical edges of the prism (these edges connect the top and
|
||||
base faces of prism).</li>
|
||||
(logically) vertical edges of the prism (these edges connect the top and
|
||||
base faces of prism). In the sample picture above these are
|
||||
"Regular_1D" algorithm and "Nb. Segments_1" hypothesis.</li>
|
||||
</ul>
|
||||
|
||||
\b Local algorithms and hypotheses to be chosen at
|
||||
\ref constructing_submeshes_page "Constructing sub-meshes" are:
|
||||
<ul>
|
||||
<li> 1D and 2D algorithms and hypotheses that will be applied for
|
||||
meshing the top and base prism faces. These faces can be meshed
|
||||
with any type of 2D elements: quadrangles, triangles, polygons or
|
||||
their mix. It's enough to define a sub-mesh on either top or base face
|
||||
only.</li>
|
||||
<li> Optionally you can define an 1D sub-mesh on some vertical edges
|
||||
of stacked prisms, which will override the global 1D hypothesis mentioned
|
||||
above. In the above picture, the vertical division is not equidistant
|
||||
on all the length because of a "Number Of Segments" hypothesis with
|
||||
Scale Factor=3 assigned to one of edges between the shifted stacks.
|
||||
<li> 1D and 2D algorithms and hypotheses that will be applied for
|
||||
meshing the top and base prism faces. These faces can be meshed
|
||||
with any type of 2D elements: quadrangles, triangles, polygons or
|
||||
their mix. It's enough to define a sub-mesh on either top or base
|
||||
face. In the sample picture above, "BLSURF" algorithm meshes
|
||||
"Face_1" base surface with triangles. (1D algorithm is not
|
||||
assigned as "BLSURF" does not require divided edges to create 2D mesh.)
|
||||
</li>
|
||||
<li> Optionally you can define an 1D sub-mesh on some vertical edges
|
||||
of stacked prisms, which will override the global 1D hypothesis mentioned
|
||||
above. In the picture above the picture of Object Browser, the
|
||||
vertical division is not equidistant on all the length because of
|
||||
a "Number Of Segments" hypothesis with Scale Factor=3 assigned to
|
||||
the highlighted edge.
|
||||
</li></ul>
|
||||
|
||||
\image html image157.gif "Prism with 3D extrusion meshing"
|
||||
\image html image157.gif
|
||||
|
||||
As you can see, the <em>3D extrusion</em> algorithm permits to build
|
||||
in the same 3D mesh such elements as hexahedrons, prisms and
|
||||
polyhedrons.
|
||||
Prism with 3D extrusion meshing. "Vertical" division is different on
|
||||
neighbor edges due to local 1D hypotheses assigned.
|
||||
|
||||
\sa a sample TUI Script of
|
||||
\ref tui_prism_3d_algo "Use 3D extrusion meshing algorithm".
|
||||
|
@ -54,25 +54,30 @@ bigQuad = geompy.GetFaceNearPoint( prisms, geompy.MakeVertex( 15,15,0 ), "bigQ
|
||||
|
||||
mesh = smesh.Mesh( prisms )
|
||||
|
||||
# vertical division
|
||||
# assign Global hypotheses
|
||||
|
||||
# 1D algorithm and hypothesis for vertical division
|
||||
mesh.Segment().NumberOfSegments(15)
|
||||
|
||||
# Extrusion 3D algo
|
||||
mesh.Prism()
|
||||
|
||||
# mesh smallQuad with quadrilaterals
|
||||
# assign Local hypotheses
|
||||
|
||||
# 1D and 2D algos and hyps to mesh smallQuad with quadrilaterals
|
||||
mesh.Segment(smallQuad).LocalLength( 3 )
|
||||
mesh.Quadrangle(smallQuad)
|
||||
|
||||
# mesh bigQuad with triangles
|
||||
# 1D and 2D algos and hyps to mesh bigQuad with triangles
|
||||
mesh.Segment(bigQuad).LocalLength( 3 )
|
||||
mesh.Triangle(bigQuad)
|
||||
|
||||
# compute the mesh
|
||||
mesh.Compute()
|
||||
|
||||
\endcode
|
||||
|
||||
The result mesh is shown below
|
||||
The result geometry and mesh is shown below
|
||||
\image html prism_tui_sample.png
|
||||
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user