mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-15 01:58:35 +05:00
0020431: EDF 1020 SMESH : Radial Mesh of a cylinder
* Algorith behavior has changed - default hyps have appeared
This commit is contained in:
parent
909e9e40a7
commit
a1802ee5a4
@ -8,9 +8,16 @@ following conditions: the face must be a full circle or a part of circle
|
|||||||
The resulting mesh consists of triangles (near the center point) and
|
The resulting mesh consists of triangles (near the center point) and
|
||||||
quadrangles.
|
quadrangles.
|
||||||
|
|
||||||
This algorithm requires the hypothesis indicating the number
|
This algorithm is optionally parametrized by the hypothesis indicating the number
|
||||||
of mesh layers along the radius. The distribution of layers can be set with any 1D Hypothesis.
|
of mesh layers along the radius. The distribution of layers can be set with any 1D Hypothesis.
|
||||||
|
|
||||||
|
If no own hypothesis of the algorithm is assigned, any local or global hypothesis is used
|
||||||
|
by the algorithm to discretize edges. Note that if the geometrical face has two radial edges,
|
||||||
|
they must be meshed with equal number of segments.
|
||||||
|
|
||||||
|
If no 1D hypothesis is assigned to an edge, "Default Number of Segments" preferences parameter
|
||||||
|
is used to discretize the edge.
|
||||||
|
|
||||||
\image html hypo_radquad_dlg.png
|
\image html hypo_radquad_dlg.png
|
||||||
|
|
||||||
\image html mesh_radquad_01.png "Radial Quadrangle 2D mesh on the top and the bottom faces of a cylinder"
|
\image html mesh_radquad_01.png "Radial Quadrangle 2D mesh on the top and the bottom faces of a cylinder"
|
||||||
|
@ -514,29 +514,36 @@ Mesh_1.Compute()
|
|||||||
\anchor tui_radial_quadrangle
|
\anchor tui_radial_quadrangle
|
||||||
<h2> Radial Quadrangle 1D2D example </h2>
|
<h2> Radial Quadrangle 1D2D example </h2>
|
||||||
\code
|
\code
|
||||||
import salome
|
from smesh import *
|
||||||
import geompy
|
|
||||||
import smesh
|
SetCurrentStudy(salome.myStudy)
|
||||||
import StdMeshers
|
|
||||||
|
|
||||||
# Create face from the wire and add to study
|
# Create face from the wire and add to study
|
||||||
WirePath = geompy.MakeSketcher("Sketcher:F 0 0:TT 20 0:R 90:C 20 90:WW", [0, 0, 0, 1, 0, 0, 0, 0, 1])
|
Face = geompy.MakeSketcher("Sketcher:F 0 0:TT 20 0:R 90:C 20 90:WF", [0, 0, 0, 1, 0, 0, 0, 0, 1])
|
||||||
Face = geompy.MakeFace(WirePath,1)
|
|
||||||
geompy.addToStudy(Face,"Face")
|
geompy.addToStudy(Face,"Face")
|
||||||
|
edges = geompy.SubShapeAllSorted(Face, geompy.ShapeType["EDGE"])
|
||||||
|
circle, radius1, radius2 = edges
|
||||||
|
geompy.addToStudyInFather(Face, radius1,"radius1")
|
||||||
|
geompy.addToStudyInFather(Face, radius2,"radius2")
|
||||||
|
geompy.addToStudyInFather(Face, circle,"circle")
|
||||||
|
|
||||||
# Define geometry for mesh, and 1D parameters
|
|
||||||
|
# Define geometry for mesh, and Radial Quadrange algorithm
|
||||||
mesh = smesh.Mesh(Face)
|
mesh = smesh.Mesh(Face)
|
||||||
Wire_discretisation = mesh.Segment()
|
radial_Quad_algo = mesh.Quadrangle(algo=RADIAL_QUAD)
|
||||||
Nb_Segments = Wire_discretisation.NumberOfSegments(5)
|
|
||||||
Nb_Segments.SetDistrType( 0 )
|
|
||||||
|
|
||||||
# Define 2D parameters and Radial Quadrange hypothesis
|
# The Radial Quadrange algorithm can work without any hypothesis
|
||||||
Number_of_Layers = smesh.CreateHypothesis('NumberOfLayers2D')
|
# In this case it uses "Default Nb of Segments" preferences parameter to discretize edges
|
||||||
Number_of_Layers.SetNumberOfLayers( 4 )
|
mesh.Compute()
|
||||||
mesh.AddHypothesis(Number_of_Layers)
|
|
||||||
RadialQuadrangle_1D2D = smesh.CreateHypothesis('RadialQuadrangle_1D2D')
|
|
||||||
mesh.AddHypothesis(RadialQuadrangle_1D2D)
|
|
||||||
|
|
||||||
|
# The Radial Quadrange uses global or local 1d hypotheses if no its own hypotheses assigned.
|
||||||
|
# Define global hypotheses to discretize radial edges and a local one for circular edge
|
||||||
|
global_Nb_Segments = mesh.Segment().NumberOfSegments(5)
|
||||||
|
local_Nb_Segments = mesh.Segment(circle).NumberOfSegments(10)
|
||||||
|
mesh.Compute()
|
||||||
|
|
||||||
|
# Define own parameters of Radial Quadrange algorithm
|
||||||
|
radial_Quad_algo.NumberOfLayers( 4 )
|
||||||
mesh.Compute()
|
mesh.Compute()
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user