From: jfa
-smesh.Mesh Class Reference
-
-
-Class to define a mesh. More...
-
-
-
-
-
-
-
-
-
-
-
- Public Member Functions
-
-
- def
- __init__
-
-
-
- Constructor.
-
-
-
- def
- SetMesh
-
-
-
- Method that inits the Mesh object from SMESH_Mesh
-interface.
-
-
-
- def
- GetMesh
-
-
-
- Method that returns the mesh.
-
-
-
- def
- GetName
-
-
-
- Get mesh name.
-
-
-
- def
- SetName
-
-
-
- Set name to mesh.
-
-
-
- def
- GetSubMesh
-
-
-
- Get the subMesh object associated to a
-subShape.
-
-
-
- def
- GetShape
-
-
-
- Method that returns the shape associated
-to the mesh.
-
-
-
- def
- SetShape
-
-
-
- Method that associates given shape to the
-mesh(entails the mesh recreation).
-
-
-
- def
- IsReadyToCompute
-
-
-
- Return true if hypotheses are defined
-well.
-
-
-
- def
- GetAlgoState
-
-
-
- Return errors of hypotheses definintion
-error list is empty if everything is OK.
-
-
-
- def
- GetGeometryByMeshElement
-
-
-
- Return geometrical object the given
-element is built on.
-
-
-
- def
- MeshDimension
-
-
-
- Returns mesh dimension depending on shape
-one.
-
-
-
- def
- Segment
-
-
-
- Creates a segment discretization 1D
-algorithm.
-
-
-
- def
- Triangle
-
-
-
- Creates a triangle 2D algorithm for faces.
-
-
-
-
- def
- Quadrangle
-
-
-
- Creates a quadrangle 2D algorithm for
-faces.
-
-
-
- def
- Tetrahedron
-
-
-
- Creates a tetrahedron 3D algorithm for
-solids.
-
-
-
- def
- Hexahedron
-
-
-
- Creates a hexahedron 3D algorithm for
-solids.
-
-
-
- def
- Netgen
-
-
-
- Deprecated, only for compatibility!
-
-
-
- def
- Compute
-
-
-
- Compute the mesh and return the status of
-the computation.
-
-
-
- def
- AutomaticTetrahedralization
-
-
-
- Compute tetrahedral mesh using
-AutomaticLength + MEFISTO + NETGEN The parameter fineness
-[0,-1] defines mesh fineness.
-
-
-
- def
- AutomaticHexahedralization
-
-
-
- Compute hexahedral mesh using
-AutomaticLength + Quadrangle + Hexahedron The parameter fineness
-[0,-1] defines mesh fineness.
-
-
-
- def
- GetHypothesisList
-
-
-
- Get the list of hypothesis added on a
-geom.
-
-
-
- def
- RemoveGlobalHypotheses
-
-
-
- Removes all global hypotheses.
-
-
-
- def
- Group
-
-
-
- Create a mesh group based on geometric
-object grp and give a name,
-
-if this parameter is not defined the name is the same as the geometric
-group name
-Note: Works like GroupOnGeom().
-
-
-
- def
- ExportToMED
-
-
-
- Deprecated, only for compatibility!
-Please, use ExportMED()
-method instead.
-
-
-
- def
- ExportMED
-
-
-
- Export the mesh in a file with the MED
-format.
-
-
-
- def
- ExportDAT
-
-
-
- Export the mesh in a file with the DAT
-format.
-
-
-
- def
- ExportUNV
-
-
-
- Export the mesh in a file with the UNV
-format.
-
-
-
- def
- ExportSTL
-
-
-
- Export the mesh in a file with the STL
-format.
-
-
-
- def
- CreateEmptyGroup
-
-
-
- Creates an empty mesh group.
-
-
-
- def
- GroupOnGeom
-
-
-
- Creates a mesh group based on geometric
-object grp and give a name,
-
-if this parameter is not defined the name is the same as the geometric
-group name.
-
-
- def
- MakeGroupByIds
-
-
-
- Create a mesh group by the given ids of
-elements.
-
-
-
- def
- MakeGroup
-
-
-
- Create a mesh group by the given
-conditions.
-
-
-
- def
- MakeGroupByCriterion
-
-
-
- Create a mesh group by the given
-criterion.
-
-
-
- def
- MakeGroupByCriteria
-
-
-
- Create a mesh group by the given
-criteria(list of criterions).
-
-
-
- def
- MakeGroupByFilter
-
-
-
- Create a mesh group by the given filter.
-
-
-
- def
- GetIdsFromFilter
-
-
-
- Pass mesh elements through the given
-filter and return ids.
-
-
-
- def
- GetFreeBorders
-
-
-
- Verify whether 2D mesh element has free
-edges(edges connected to one face only)
-
-Returns list of special structures(borders).
-
-
- def
- RemoveGroup
-
-
-
- Remove a group.
-
-
-
- def
- RemoveGroupWithContents
-
-
-
- Remove group with its contents.
-
-
-
- def
- GetGroups
-
-
-
- Get the list of groups existing in the
-mesh.
-
-
-
- def
- GetGroupNames
-
-
-
- Get the list of names of groups existing
-in the mesh.
-
-
-
- def
- UnionGroups
-
-
-
- Union of two groups New group is created.
-
-
-
- def
- IntersectGroups
-
-
-
- Intersection of two groups New group is
-created.
-
-
-
- def
- CutGroups
-
-
-
- Cut of two groups New group is created.
-
-
-
- def
- GetLog
-
-
-
- Get the log of nodes and elements added or
-removed since previous clear of the log.
-
-
-
- def
- ClearLog
-
-
-
- Clear the log of nodes and elements added
-or removed since previous clear.
-
-
-
- def
- GetId
-
-
-
- Get the internal Id.
-
-
-
- def
- GetStudyId
-
-
-
- Get the study Id.
-
-
-
- def
- HasDuplicatedGroupNamesMED
-
-
-
- Check group names for duplications.
-
-
-
- def
- GetMeshEditor
-
-
-
- Obtain instance of SMESH_MeshEditor.
-
-
-
- def
- GetMEDMesh
-
-
-
- Get MED Mesh.
-
-
-
- def
- NbNodes
-
-
-
- Returns number of nodes in mesh.
-
-
-
- def
- NbElements
-
-
-
- Returns number of elements in mesh.
-
-
-
- def
- NbEdges
-
-
-
- Returns number of edges in mesh.
-
-
-
- def
- NbEdgesOfOrder
-
-
-
- Returns number of edges with given order
-in mesh.
-
-
-
- def
- NbFaces
-
-
-
- Returns number of faces in mesh.
-
-
-
- def
- NbFacesOfOrder
-
-
-
- Returns number of faces with given order
-in mesh.
-
-
-
- def
- NbTriangles
-
-
-
- Returns number of triangles in mesh.
-
-
-
- def
- NbTrianglesOfOrder
-
-
-
- Returns number of triangles with given
-order in mesh.
-
-
-
- def
- NbQuadrangles
-
-
-
- Returns number of quadrangles in mesh.
-
-
-
- def
- NbQuadranglesOfOrder
-
-
-
- Returns number of quadrangles with given
-order in mesh.
-
-
-
- def
- NbPolygons
-
-
-
- Returns number of polygons in mesh.
-
-
-
- def
- NbVolumes
-
-
-
- Returns number of volumes in mesh.
-
-
-
- def
- NbVolumesOfOrder
-
-
-
- Returns number of volumes with given order
-in mesh.
-
-
-
- def
- NbTetras
-
-
-
- Returns number of tetrahedrons in mesh.
-
-
-
- def
- NbTetrasOfOrder
-
-
-
- Returns number of tetrahedrons with given
-order in mesh.
-
-
-
- def
- NbHexas
-
-
-
- Returns number of hexahedrons in mesh.
-
-
-
- def
- NbHexasOfOrder
-
-
-
- Returns number of hexahedrons with given
-order in mesh.
-
-
-
- def
- NbPyramids
-
-
-
- Returns number of pyramids in mesh.
-
-
-
- def
- NbPyramidsOfOrder
-
-
-
- Returns number of pyramids with given
-order in mesh.
-
-
-
- def
- NbPrisms
-
-
-
- Returns number of prisms in mesh.
-
-
-
- def
- NbPrismsOfOrder
-
-
-
- Returns number of prisms with given order
-in mesh.
-
-
-
- def
- NbPolyhedrons
-
-
-
- Returns number of polyhedrons in mesh.
-
-
-
- def
- NbSubMesh
-
-
-
- Returns number of submeshes in mesh.
-
-
-
- def
- GetElementsId
-
-
-
- Returns list of mesh elements ids.
-
-
-
- def
- GetElementsByType
-
-
-
- Returns list of ids of mesh elements with
-given type.
-
-
-
- def
- GetNodesId
-
-
-
- Returns list of mesh nodes ids.
-
-
-
- def
- GetElementType
-
-
-
- Returns type of mesh element.
-
-
-
- def
- GetSubMeshElementsId
-
-
-
- Returns list of submesh elements ids.
-
-
-
- def
- GetSubMeshNodesId
-
-
-
- Returns list of submesh nodes ids.
-
-
-
- def
- GetSubMeshElementType
-
-
-
- Returns list of ids of submesh elements
-with given type.
-
-
-
- def
- Dump
-
-
-
- Get mesh description.
-
-
-
- def
- GetNodeXYZ
-
-
-
- Get XYZ coordinates of node as list of
-double
-
-If there is not node for given ID - returns empty list.
-
-
- def
- GetNodeInverseElements
-
-
-
- For given node returns list of IDs of
-inverse elements
-
-If there is not node for given ID - returns empty list.
-
-
- def
- GetShapeID
-
-
-
- If given element is node returns IDs of
-shape from position
-
-If there is not node for given ID - returns -1.
-
-
- def
- GetShapeIDForElem
-
-
-
- For given element returns ID of result
-shape after FindShape() from SMESH_MeshEditor
-
-If there is not element for given ID - returns -1.
-
-
- def
- GetElemNbNodes
-
-
-
- Returns number of nodes for given element
-
-If there is not element for given ID - returns -1.
-
-
- def
- GetElemNode
-
-
-
- Returns ID of node by given index for
-given element
-
-If there is not element for given ID - returns -1
-If there is not node for given index - returns -2.
-
-
- def
- IsMediumNode
-
-
-
- Returns true if given node is medium node
-in given quadratic element.
-
-
-
- def
- IsMediumNodeOfAnyElem
-
-
-
- Returns true if given node is medium node
-in one of quadratic elements.
-
-
-
- def
- ElemNbEdges
-
-
-
- Returns number of edges for given element.
-
-
-
-
- def
- ElemNbFaces
-
-
-
- Returns number of faces for given element.
-
-
-
-
- def
- IsPoly
-
-
-
- Returns true if given element is polygon.
-
-
-
- def
- IsQuadratic
-
-
-
- Returns true if given element is
-quadratic.
-
-
-
- def
- BaryCenter
-
-
-
- Returns XYZ coordinates of bary center for
-given element as list of double
-
-If there is not element for given ID - returns empty list.
-
-
- def
- RemoveElements
-
-
-
- Removes elements from mesh by ids.
-
-
-
- def
- RemoveNodes
-
-
-
- Removes nodes from mesh by ids.
-
-
-
- def
- AddNode
-
-
-
- Add node to mesh by coordinates.
-
-
-
- def
- AddEdge
-
-
-
- Create edge both similar and quadratic
-(this is determed by number of given nodes).
-
-
-
- def
- AddFace
-
-
-
- Create face both similar and quadratic
-(this is determed by number of given nodes).
-
-
-
- def
- AddPolygonalFace
-
-
-
- Add polygonal face to mesh by list of
-nodes ids.
-
-
-
- def
- AddVolume
-
-
-
- Create volume both similar and quadratic
-(this is determed by number of given nodes).
-
-
-
- def
- AddPolyhedralVolume
-
-
-
- Create volume of many faces, giving nodes
-for each face.
-
-
-
- def
- AddPolyhedralVolumeByFaces
-
-
-
- Create volume of many faces, giving IDs of
-existing faces.
-
-
-
- def
- MoveNode
-
-
-
- Move node with given id.
-
-
-
- def
- InverseDiag
-
-
-
- Replace two neighbour triangles sharing
-Node1-Node2 link with ones built on the same 4 nodes but having other
-common link.
-
-
-
- def
- DeleteDiag
-
-
-
- Replace two neighbour triangles sharing
-Node1-Node2 link with a quadrangle built on the same 4 nodes.
-
-
-
- def
- Reorient
-
-
-
- Reorient elements by ids.
-
-
-
- def
- ReorientObject
-
-
-
- Reorient all elements of the object.
-
-
-
- def
- TriToQuad
-
-
-
- Fuse neighbour triangles into quadrangles.
-
-
-
-
- def
- TriToQuadObject
-
-
-
- Fuse neighbour triangles of the object
-into quadrangles.
-
-
-
- def
- QuadToTri
-
-
-
- Split quadrangles into triangles.
-
-
-
- def
- QuadToTriObject
-
-
-
- Split quadrangles into triangles.
-
-
-
- def
- SplitQuad
-
-
-
- Split quadrangles into triangles.
-
-
-
- def
- SplitQuadObject
-
-
-
- Split quadrangles into triangles.
-
-
-
- def
- BestSplit
-
-
-
- Find better splitting of the given
-quadrangle.
-
-
-
- def
- Smooth
-
-
-
- Smooth elements.
-
-
-
- def
- SmoothObject
-
-
-
- Smooth elements belong to given object.
-
-
-
- def
- SmoothParametric
-
-
-
- Parametric smooth the given elements.
-
-
-
- def
- SmoothParametricObject
-
-
-
- Parametric smooth elements belong to given
-object.
-
-
-
- def
- ConvertToQuadratic
-
-
-
- Converts all mesh to quadratic one,
-deletes old elements, replacing them with quadratic ones with the same
-id.
-
-
-
- def
- ConvertFromQuadratic
-
-
-
- Converts all mesh from quadratic to
-ordinary ones, deletes old quadratic elements,
-
-replacing them with ordinary mesh elements with the same id.
-
-
- def
- RenumberNodes
-
-
-
- Renumber mesh nodes.
-
-
-
- def
- RenumberElements
-
-
-
- Renumber mesh elements.
-
-
-
- def
- RotationSweep
-
-
-
- Generate new elements by rotation of the
-elements around the axis.
-
-
-
- def
- RotationSweepObject
-
-
-
- Generate new elements by rotation of the
-elements of object around the axis.
-
-
-
- def
- ExtrusionSweep
-
-
-
- Generate new elements by extrusion of the
-elements with given ids.
-
-
-
- def
- AdvancedExtrusion
-
-
-
- Generate new elements by extrusion of the
-elements with given ids.
-
-
-
- def
- ExtrusionSweepObject
-
-
-
- Generate new elements by extrusion of the
-elements belong to object.
-
-
-
- def
- ExtrusionSweepObject1D
-
-
-
- Generate new elements by extrusion of the
-elements belong to object.
-
-
-
- def
- ExtrusionSweepObject2D
-
-
-
- Generate new elements by extrusion of the
-elements belong to object.
-
-
-
- def
- ExtrusionAlongPath
-
-
-
- Generate new elements by extrusion of the
-given elements A path of extrusion must be a meshed edge.
-
-
-
- def
- ExtrusionAlongPathObject
-
-
-
- Generate new elements by extrusion of the
-elements belong to object A path of extrusion must be a meshed edge.
-
-
-
- def
- Mirror
-
-
-
- Symmetrical copy of mesh elements.
-
-
-
- def
- MirrorObject
-
-
-
- Symmetrical copy of object.
-
-
-
- def
- Translate
-
-
-
- Translates the elements.
-
-
-
- def
- TranslateObject
-
-
-
- Translates the object.
-
-
-
- def
- Rotate
-
-
-
- Rotates the elements.
-
-
-
- def
- RotateObject
-
-
-
- Rotates the object.
-
-
-
- def
- FindCoincidentNodes
-
-
-
- Find group of nodes close to each other
-within Tolerance.
-
-
-
- def
- MergeNodes
-
-
-
- Merge nodes.
-
-
-
- def
- MergeEqualElements
-
-
-
- Remove all but one of elements built on
-the same nodes.
-
-
-
- def
- SewFreeBorders
-
-
-
- Sew free borders.
-
-
-
- def
- SewConformFreeBorders
-
-
-
- Sew conform free borders.
-
-
-
- def
- SewBorderToSide
-
-
-
- Sew border to side.
-
-
-
- def
- SewSideElements
-
-
-
- Sew two sides of a mesh.
-
-
-
- def
- ChangeElemNodes
-
-
-
- Set new nodes for given element.
-
-
-
- def
- GetLastCreatedNodes
-
-
-
- If during last operation of MeshEditor
-some nodes were created this method returns list of it's IDs,
-
-if new nodes not created - returns empty list.
-
-
- def
- GetLastCreatedElems
-
-
-
- If during last operation of MeshEditor
-some elements were created this method returns list of it's IDs,
-
-if new elements not creared - returns empty list.
-
-
-
-
- Data Fields
-
-
-
- geom
-
-
-
- mesh
-
-
-
- editor
-
-
-
-
- Static Public Attributes
-
-
- int
- geom
-= 0
-
-
- int
- mesh
-= 0
-
-
-
-int
- editor
-= 0
-
-
-
|
-
- |
- Creates mesh on the shape geom(or the empty mesh if geom -equal to 0), sets GUI name of this mesh to name. -
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- The subMesh object gives access to nodes and elements IDs. |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- The returned geometrical object, if not nil, is either found -in the study or is published by this method with the given name -
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- If the optional algo parameter is not sets, this
-algorithm is REGULAR. If the optional geom parameter is not
-sets, this algorithm is global.
|
-
-
-
|
-
- |
- If the optional geom parameter is not sets, this
-algorithm is global.
|
-
-
-
|
-
- |
- If the optional geom parameter is not sets, this
-algorithm is global.
|
-
-
-
|
-
- |
- The parameter algo permits to choice the algorithm:
-NETGEN or GHS3D If the optional geom parameter is not sets,
-this algorithm is global.
|
-
-
-
|
-
- |
- If the optional geom parameter is not sets, this
-algorithm is global.
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- Export the mesh in a file with the MED format and choice the version -of MED format -
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- All mesh elements that are present in initial groups are added -to the new one - |
-
-
-
|
-
- |
- All mesh elements that are present in both initial groups are -added to the new one. - |
-
-
-
|
-
- |
- All mesh elements that are present in main group but do not -present in tool group are added to the new one - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- Must be used immediately after GetLog if clearAfterGet is -false. - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- Consider maximum group name length stored in MED file. - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- Nodes belonging to Side1 are merged with nodes of elements of -Side2. Number of elements in theSide1 and in theSide2 must be equal and -they should have similar node connectivity. The nodes to merge should -belong to sides borders and the first node should be linked to the -second. - |
-
-
-
|
-
- |
-
-
|
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
-
-
|
-
- |
- - - |
-
+
Public Member Functions | |
def | __init__ |
Constructor. | |
def | SetMesh |
Method that inits the Mesh object from SMESH_Mesh interface. | |
def | GetMesh |
Method that returns the mesh. | |
def | GetName |
Get mesh name. | |
def | SetName |
Set name to mesh. | |
def | GetSubMesh |
Get the subMesh object associated to a subShape. | |
def | GetShape |
Method that returns the shape associated to the mesh. | |
def | SetShape |
Method that associates given shape to the mesh(entails the mesh recreation). | |
def | IsReadyToCompute |
Return true if hypotheses are defined well. | |
def | GetAlgoState |
Return errors of hypotheses definintion error list is empty if everything is OK. | |
def | GetGeometryByMeshElement |
Return geometrical object the given element is built on. | |
def | MeshDimension |
Returns mesh dimension depending on shape one. | |
def | Segment |
Creates a segment discretization 1D algorithm. | |
def | Triangle |
Creates a triangle 2D algorithm for faces. | |
def | Quadrangle |
Creates a quadrangle 2D algorithm for faces. | |
def | Tetrahedron |
Creates a tetrahedron 3D algorithm for solids. | |
def | Hexahedron |
Creates a hexahedron 3D algorithm for solids. | |
def | Netgen |
Deprecated, only for compatibility! | |
def | Projection1D |
Creates a projection 1D algorithm for edges. | |
def | Projection2D |
Creates a projection 2D algorithm for faces. | |
def | Projection3D |
Creates a projection 3D algorithm for solids. | |
def | Prism |
Creates a 3D extrusion (Prism 3D) or RadialPrism 3D algorithm for solids. | |
def | Compute |
Compute the mesh and return the status of the computation. | |
def | AutomaticTetrahedralization |
Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN The parameter fineness [0,-1] defines mesh fineness. | |
def | AutomaticHexahedralization |
Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron The parameter fineness [0,-1] defines mesh fineness. | |
def | AddHypothesis |
Assign hypothesis. | |
def | GetHypothesisList |
Get the list of hypothesis added on a geom. | |
def | RemoveGlobalHypotheses |
Removes all global hypotheses. | |
def | Group |
Create a mesh group based on geometric object grp and give a name, + if this parameter is not defined the name is the same as the geometric group name + Note: Works like GroupOnGeom(). | |
def | ExportToMED |
Deprecated, only for compatibility! Please, use ExportMED() method instead. | |
def | ExportMED |
Export the mesh in a file with the MED format. | |
def | ExportDAT |
Export the mesh in a file with the DAT format. | |
def | ExportUNV |
Export the mesh in a file with the UNV format. | |
def | ExportSTL |
Export the mesh in a file with the STL format. | |
def | CreateEmptyGroup |
Creates an empty mesh group. | |
def | GroupOnGeom |
Creates a mesh group based on geometric object grp and give a name, + if this parameter is not defined the name is the same as the geometric group name. | |
def | MakeGroupByIds |
Create a mesh group by the given ids of elements. | |
def | MakeGroup |
Create a mesh group by the given conditions. | |
def | MakeGroupByCriterion |
Create a mesh group by the given criterion. | |
def | MakeGroupByCriteria |
Create a mesh group by the given criteria(list of criterions). | |
def | MakeGroupByFilter |
Create a mesh group by the given filter. | |
def | GetIdsFromFilter |
Pass mesh elements through the given filter and return ids. | |
def | GetFreeBorders |
Verify whether 2D mesh element has free edges(edges connected to one face only) + Returns list of special structures(borders). | |
def | RemoveGroup |
Remove a group. | |
def | RemoveGroupWithContents |
Remove group with its contents. | |
def | GetGroups |
Get the list of groups existing in the mesh. | |
def | GetGroupNames |
Get the list of names of groups existing in the mesh. | |
def | UnionGroups |
Union of two groups New group is created. | |
def | IntersectGroups |
Intersection of two groups New group is created. | |
def | CutGroups |
Cut of two groups New group is created. | |
def | GetLog |
Get the log of nodes and elements added or removed since previous clear of the log. | |
def | ClearLog |
Clear the log of nodes and elements added or removed since previous clear. | |
def | GetId |
Get the internal Id. | |
def | GetStudyId |
Get the study Id. | |
def | HasDuplicatedGroupNamesMED |
Check group names for duplications. | |
def | GetMeshEditor |
Obtain instance of SMESH_MeshEditor. | |
def | GetMEDMesh |
Get MED Mesh. | |
def | NbNodes |
Returns number of nodes in mesh. | |
def | NbElements |
Returns number of elements in mesh. | |
def | NbEdges |
Returns number of edges in mesh. | |
def | NbEdgesOfOrder |
Returns number of edges with given order in mesh. | |
def | NbFaces |
Returns number of faces in mesh. | |
def | NbFacesOfOrder |
Returns number of faces with given order in mesh. | |
def | NbTriangles |
Returns number of triangles in mesh. | |
def | NbTrianglesOfOrder |
Returns number of triangles with given order in mesh. | |
def | NbQuadrangles |
Returns number of quadrangles in mesh. | |
def | NbQuadranglesOfOrder |
Returns number of quadrangles with given order in mesh. | |
def | NbPolygons |
Returns number of polygons in mesh. | |
def | NbVolumes |
Returns number of volumes in mesh. | |
def | NbVolumesOfOrder |
Returns number of volumes with given order in mesh. | |
def | NbTetras |
Returns number of tetrahedrons in mesh. | |
def | NbTetrasOfOrder |
Returns number of tetrahedrons with given order in mesh. | |
def | NbHexas |
Returns number of hexahedrons in mesh. | |
def | NbHexasOfOrder |
Returns number of hexahedrons with given order in mesh. | |
def | NbPyramids |
Returns number of pyramids in mesh. | |
def | NbPyramidsOfOrder |
Returns number of pyramids with given order in mesh. | |
def | NbPrisms |
Returns number of prisms in mesh. | |
def | NbPrismsOfOrder |
Returns number of prisms with given order in mesh. | |
def | NbPolyhedrons |
Returns number of polyhedrons in mesh. | |
def | NbSubMesh |
Returns number of submeshes in mesh. | |
def | GetElementsId |
Returns list of mesh elements ids. | |
def | GetElementsByType |
Returns list of ids of mesh elements with given type. | |
def | GetNodesId |
Returns list of mesh nodes ids. | |
def | GetElementType |
Returns type of mesh element. | |
def | GetSubMeshElementsId |
Returns list of submesh elements ids. | |
def | GetSubMeshNodesId |
Returns list of submesh nodes ids. | |
def | GetSubMeshElementType |
Returns list of ids of submesh elements with given type. | |
def | Dump |
Get mesh description. | |
def | GetNodeXYZ |
Get XYZ coordinates of node as list of double + If there is not node for given ID - returns empty list. | |
def | GetNodeInverseElements |
For given node returns list of IDs of inverse elements + If there is not node for given ID - returns empty list. | |
def | GetShapeID |
If given element is node returns IDs of shape from position + If there is not node for given ID - returns -1. | |
def | GetShapeIDForElem |
For given element returns ID of result shape after FindShape() from SMESH_MeshEditor + If there is not element for given ID - returns -1. | |
def | GetElemNbNodes |
Returns number of nodes for given element + If there is not element for given ID - returns -1. | |
def | GetElemNode |
Returns ID of node by given index for given element + If there is not element for given ID - returns -1 + If there is not node for given index - returns -2. | |
def | IsMediumNode |
Returns true if given node is medium node in given quadratic element. | |
def | IsMediumNodeOfAnyElem |
Returns true if given node is medium node in one of quadratic elements. | |
def | ElemNbEdges |
Returns number of edges for given element. | |
def | ElemNbFaces |
Returns number of faces for given element. | |
def | IsPoly |
Returns true if given element is polygon. | |
def | IsQuadratic |
Returns true if given element is quadratic. | |
def | BaryCenter |
Returns XYZ coordinates of bary center for given element as list of double + If there is not element for given ID - returns empty list. | |
def | RemoveElements |
Removes elements from mesh by ids. | |
def | RemoveNodes |
Removes nodes from mesh by ids. | |
def | AddNode |
Add node to mesh by coordinates. | |
def | AddEdge |
Create edge both similar and quadratic (this is determed by number of given nodes). | |
def | AddFace |
Create face both similar and quadratic (this is determed by number of given nodes). | |
def | AddPolygonalFace |
Add polygonal face to mesh by list of nodes ids. | |
def | AddVolume |
Create volume both similar and quadratic (this is determed by number of given nodes). | |
def | AddPolyhedralVolume |
Create volume of many faces, giving nodes for each face. | |
def | AddPolyhedralVolumeByFaces |
Create volume of many faces, giving IDs of existing faces. | |
def | MoveNode |
Move node with given id. | |
def | FindNodeClosestTo |
Find a node closest to a point. | |
def | MeshToPassThroughAPoint |
Find a node closest to a point and move it to a point location. | |
def | InverseDiag |
Replace two neighbour triangles sharing Node1-Node2 link with ones built on the same 4 nodes but having other common link. | |
def | DeleteDiag |
Replace two neighbour triangles sharing Node1-Node2 link with a quadrangle built on the same 4 nodes. | |
def | Reorient |
Reorient elements by ids. | |
def | ReorientObject |
Reorient all elements of the object. | |
def | TriToQuad |
Fuse neighbour triangles into quadrangles. | |
def | TriToQuadObject |
Fuse neighbour triangles of the object into quadrangles. | |
def | QuadToTri |
Split quadrangles into triangles. | |
def | QuadToTriObject |
Split quadrangles into triangles. | |
def | SplitQuad |
Split quadrangles into triangles. | |
def | SplitQuadObject |
Split quadrangles into triangles. | |
def | BestSplit |
Find better splitting of the given quadrangle. | |
def | SplitQuadsNearTriangularFacets |
Split quafrangle faces near triangular facets of volumes. | |
def | SplitHexaToTetras |
Split hexahedrons into tetrahedrons. | |
def | SplitHexaToPrisms |
Split hexahedrons into prisms. | |
def | Smooth |
Smooth elements. | |
def | SmoothObject |
Smooth elements belong to given object. | |
def | SmoothParametric |
Parametric smooth the given elements. | |
def | SmoothParametricObject |
Parametric smooth elements belong to given object. | |
def | ConvertToQuadratic |
Converts all mesh to quadratic one, deletes old elements, replacing them with quadratic ones with the same id. | |
def | ConvertFromQuadratic |
Converts all mesh from quadratic to ordinary ones, deletes old quadratic elements, + replacing them with ordinary mesh elements with the same id. | |
def | RenumberNodes |
Renumber mesh nodes. | |
def | RenumberElements |
Renumber mesh elements. | |
def | RotationSweep |
Generate new elements by rotation of the elements around the axis. | |
def | RotationSweepObject |
Generate new elements by rotation of the elements of object around the axis. | |
def | ExtrusionSweep |
Generate new elements by extrusion of the elements with given ids. | |
def | AdvancedExtrusion |
Generate new elements by extrusion of the elements with given ids. | |
def | ExtrusionSweepObject |
Generate new elements by extrusion of the elements belong to object. | |
def | ExtrusionSweepObject1D |
Generate new elements by extrusion of the elements belong to object. | |
def | ExtrusionSweepObject2D |
Generate new elements by extrusion of the elements belong to object. | |
def | ExtrusionAlongPath |
Generate new elements by extrusion of the given elements A path of extrusion must be a meshed edge. | |
def | ExtrusionAlongPathObject |
Generate new elements by extrusion of the elements belong to object A path of extrusion must be a meshed edge. | |
def | Mirror |
Symmetrical copy of mesh elements. | |
def | MirrorObject |
Symmetrical copy of object. | |
def | Translate |
Translates the elements. | |
def | TranslateObject |
Translates the object. | |
def | Rotate |
Rotates the elements. | |
def | RotateObject |
Rotates the object. | |
def | FindCoincidentNodes |
Find group of nodes close to each other within Tolerance. | |
def | FindCoincidentNodesOnPart |
Find group of nodes close to each other within Tolerance. | |
def | MergeNodes |
Merge nodes. | |
def | FindEqualElements |
Find elements built on the same nodes. | |
def | MergeElements |
Merge elements in each given group. | |
def | MergeEqualElements |
Remove all but one of elements built on the same nodes. | |
def | SewFreeBorders |
Sew free borders. | |
def | SewConformFreeBorders |
Sew conform free borders. | |
def | SewBorderToSide |
Sew border to side. | |
def | SewSideElements |
Sew two sides of a mesh. | |
def | ChangeElemNodes |
Set new nodes for given element. | |
def | GetLastCreatedNodes |
If during last operation of MeshEditor some nodes were created this method returns list of it's IDs, + if new nodes not created - returns empty list. | |
def | GetLastCreatedElems |
If during last operation of MeshEditor some elements were created this method returns list of it's IDs, + if new elements not creared - returns empty list. | |
Data Fields | |
geom | |
mesh | |
editor | |
Static Public Attributes | |
int | geom = 0 |
int | mesh = 0 |
int | editor = 0 |
+
+
+
|
+
+ + | +
+
+ +Creates mesh on the shape geom(or the empty mesh if geom equal to 0), sets GUI name of this mesh to name.
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+
+The subMesh object gives access to nodes and elements IDs. |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +The returned geometrical object, if not nil, is either found in the study or is published by this method with the given name
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+
+If the optional algo parameter is not sets, this algorithm is REGULAR. If the optional geom parameter is not sets, this algorithm is global.
|
+
+
+
|
+
+ + | +
+
+
+If the optional geom parameter is not sets, this algorithm is global.
|
+
+
+
|
+
+ + | +
+
+
+If the optional geom parameter is not sets, this algorithm is global.
|
+
+
+
|
+
+ + | +
+
+
+The parameter algo permits to choice the algorithm: NETGEN or GHS3D If the optional geom parameter is not sets, this algorithm is global.
|
+
+
+
|
+
+ + | +
+
+
+If the optional geom parameter is not sets, this algorithm is global.
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +If the optional geom parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on geom subshape.
|
+
+
+
|
+
+ + | +
+
+ +If the optional geom parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on geom subshape.
|
+
+
+
|
+
+ + | +
+
+ +If the optional geom parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on geom subshape.
|
+
+
+
|
+
+ + | +
+
+ +If the optional geom parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on geom subshape.
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +Export the mesh in a file with the MED format and choice the version of MED format
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +All mesh elements that are present in initial groups are added to the new one |
+
+
+
|
+
+ + | +
+
+ +All mesh elements that are present in both initial groups are added to the new one. |
+
+
+
|
+
+ + | +
+
+ +All mesh elements that are present in main group but do not present in tool group are added to the new one |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +Must be used immediately after GetLog if clearAfterGet is false. |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +Consider maximum group name length stored in MED file. |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +Use pattern mapping functionality for splitting.
|
+
+
+
|
+
+ + | +
+
+ +Use pattern mapping functionality for splitting.
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ +Nodes belonging to Side1 are merged with nodes of elements of Side2. Number of elements in theSide1 and in theSide2 must be equal and they should have similar node connectivity. The nodes to merge should belong to sides borders and the first node should be linked to the second. |
+
+
+
|
+
+ + | +
+
+ +
|
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+
+
+
|
+
+ + | +
+
+ + |
+