/*! \page tui_creating_meshes_page Creating Meshes \n First of all see \ref tui_creating_meshes_page "Example of 3d mesh generation", which is an example of good python script style for Mesh module. \n Other examples of python scripts will be also updated soon to use smesh package instead of direct usage of idl interface.

Construction of a Mesh

\code import geompy import smesh # create a box box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) idbox = geompy.addToStudy(box, "box") # create a mesh tetra = smesh.Mesh(box, "MeshBox") algo1D = tetra.Segment() algo1D.NumberOfSegments(7) algo2D = tetra.Triangle() algo2D.MaxElementArea(800.) algo3D = tetra.Tetrahedron(smesh.NETGEN) algo3D.MaxElementVolume(900.) # compute the mesh ret = tetra.Compute() if ret == 0: print "problem when computing the mesh" else: print "mesh computed" pass \endcode
\anchor tui_construction_submesh

Construction of a Submesh

\code from geompy import * import smesh # create a box box = MakeBoxDXDYDZ(10., 10., 10.) addToStudy(box, "Box") # select one edge of the box for definition of a local hypothesis p5 = MakeVertex(5., 0., 0.) EdgeX = GetEdgeNearPoint(box, p5) addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]") # create a hexahedral mesh on the box quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh") # create a regular 1D algorithm for the faces algo1D = quadra.Segment() # define "NumberOfSegments" hypothesis to cut # all the edges in a fixed number of segments algo1D.NumberOfSegments(4) # create a quadrangle 2D algorithm for the faces quadra.Quadrangle() # construct a submesh on the edge with a local hypothesis algo_local = quadra.Segment(EdgeX) # define "Arithmetic1D" hypothesis to cut the edge in several segments with increasing arithmetic length algo_local.Arithmetic1D(1, 4) # define "Propagation" hypothesis that propagates all other hypotheses # on all edges of the opposite side in case of quadrangular faces algo_local.Propagation() # compute the mesh quadra.Compute() \endcode
\anchor tui_editing_mesh

Editing of a mesh

\code import geompy import smesh def PrintMeshInfo(theMesh): aMesh = theMesh.GetMesh() print "Information about mesh:" print "Number of nodes : ", aMesh.NbNodes() print "Number of edges : ", aMesh.NbEdges() print "Number of faces : ", aMesh.NbFaces() print "Number of volumes : ", aMesh.NbVolumes() pass # create a box box = geompy.MakeBox(0., 0., 0., 20., 20., 20.) geompy.addToStudy(box, "box") # select one edge of the box for definition of a local hypothesis subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["EDGE"]) edge = subShapeList[0] name = geompy.SubShapeName(edge, box) geompy.addToStudyInFather(box, edge, name) # create a mesh tria = smesh.Mesh(box, "Mesh 2D") algo1D = tria.Segment() hyp1 = algo1D.NumberOfSegments(3) algo2D = tria.Triangle() hyp2 = algo2D.MaxElementArea(10.) # create a sub-mesh algo_local = tria.Segment(edge) hyp3 = algo_local.Arithmetic1D(1, 6) hyp4 = algo_local.Propagation() # compute the mesh tria.Compute() PrintMeshInfo(tria) # remove a local hypothesis mesh = tria.GetMesh() mesh.RemoveHypothesis(edge, hyp4) # compute the mesh tria.Compute() PrintMeshInfo(tria) # change the value of the 2D hypothesis hyp2.SetMaxElementArea(2.) # compute the mesh tria.Compute() PrintMeshInfo(tria) \endcode
\anchor tui_export_mesh

Export of a Mesh

\code import geompy import smesh # create a box box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) idbox = geompy.addToStudy(box, "box") # create a mesh tetra = smesh.Mesh(box, "MeshBox") algo1D = tetra.Segment() algo1D.NumberOfSegments(7) algo2D = tetra.Triangle() algo2D.MaxElementArea(800.) algo3D = tetra.Tetrahedron(smesh.NETGEN) algo3D.MaxElementVolume(900.) # compute the mesh tetra.Compute() # export the mesh in a MED file tetra.ExportMED("/tmp/meshMED.med", 0) \endcode */