mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-24 16:30:34 +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
|
||||
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.
|
||||
|
||||
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 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
|
||||
<h2> Radial Quadrangle 1D2D example </h2>
|
||||
\code
|
||||
import salome
|
||||
import geompy
|
||||
import smesh
|
||||
import StdMeshers
|
||||
from smesh import *
|
||||
|
||||
SetCurrentStudy(salome.myStudy)
|
||||
|
||||
# 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.MakeFace(WirePath,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])
|
||||
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)
|
||||
Wire_discretisation = mesh.Segment()
|
||||
Nb_Segments = Wire_discretisation.NumberOfSegments(5)
|
||||
Nb_Segments.SetDistrType( 0 )
|
||||
radial_Quad_algo = mesh.Quadrangle(algo=RADIAL_QUAD)
|
||||
|
||||
# Define 2D parameters and Radial Quadrange hypothesis
|
||||
Number_of_Layers = smesh.CreateHypothesis('NumberOfLayers2D')
|
||||
Number_of_Layers.SetNumberOfLayers( 4 )
|
||||
mesh.AddHypothesis(Number_of_Layers)
|
||||
RadialQuadrangle_1D2D = smesh.CreateHypothesis('RadialQuadrangle_1D2D')
|
||||
mesh.AddHypothesis(RadialQuadrangle_1D2D)
|
||||
# The Radial Quadrange algorithm can work without any hypothesis
|
||||
# In this case it uses "Default Nb of Segments" preferences parameter to discretize edges
|
||||
mesh.Compute()
|
||||
|
||||
# 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()
|
||||
\endcode
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user