X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fsalome%2Fgui%2FSMESH%2Finput%2Fsmeshpy_interface.doc;h=bbb287f2fb5433a0027ed990dacd3c64757a88e7;hb=a8c3e199b7fa1bf4ed5895a312cc5d5f6aee25e6;hp=17255212cd841c7ae21b152f24ace185123836b6;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070;p=modules%2Fsmesh.git diff --git a/doc/salome/gui/SMESH/input/smeshpy_interface.doc b/doc/salome/gui/SMESH/input/smeshpy_interface.doc index 17255212c..bbb287f2f 100644 --- a/doc/salome/gui/SMESH/input/smeshpy_interface.doc +++ b/doc/salome/gui/SMESH/input/smeshpy_interface.doc @@ -2,128 +2,96 @@ \page smeshpy_interface_page Python interface -\n Python package smesh defines several classes, destined for easy and -clear mesh creation and edition. - -\n Documentation for smesh package is available in two forms: - -\n The structured - documentation for smesh package, where all methods and - classes are grouped by their functionality, like it is done in the GUI documentation -\n and the \ref smeshDC "linear documentation for smesh package" - grouped only by classes, declared in the smesh.py file. - -\n The main page of the \ref smeshDC "linear documentation for smesh package" - contains a list of data structures and a list of - functions, provided by the package smesh.py. The first item in - the list of data structures (\ref smeshDC::smeshDC "class smesh") - also represents documentation for the methods of the package smesh.py itself. - -\n The package smesh.py provides an interface to create and handle - meshes. Use it to create an empty mesh or to import it from the data file. - -\n Once a mesh has been created, it is possible to manage it via its own - methods, described at \ref smeshDC::Mesh "class Mesh" documentation - (it is also accessible by the second item "class Mesh" in the list of data structures). - -\n Class Mesh allows assigning algorithms to a mesh. -\n Please note, that some algorithms, - included in the standard Salome installation are always available: - - REGULAR(1D), COMPOSITE(1D), MEFISTO(2D), Quadrangle(2D), Hexa(3D), etc. - -\n There are also some algorithms, which can be installed optionally, -\n some of them are based on open-source meshers: - - NETGEN(1D-2D,2D,1D-2D-3D,3D), - -\n others are based on commercial meshers: - - GHS3D(3D), BLSURF(2D). - -\n To add hypotheses, use the interfaces, provided by the assigned -algorithms. - -\n Below you can see an example of usage of the package smesh for 3d mesh generation. - -

Example of 3d mesh generation with NETGEN:

- -\n from geompy import * -\n import smesh - -# Geometry -\n # an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral. - -# Define values -\n name = "ex21_lamp" -\n cote = 60 -\n section = 20 -\n size = 200 -\n radius_1 = 80 -\n radius_2 = 40 -\n height = 100 - -# Build a box -\n box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) - -# Build a cylinder -\n pt1 = MakeVertex(0, 0, cote/3) -\n di1 = MakeVectorDXDYDZ(0, 0, 1) -\n cyl = MakeCylinder(pt1, di1, section, size) - -# Build a truncated cone -\n pt2 = MakeVertex(0, 0, size) -\n cone = MakeCone(pt2, di1, radius_1, radius_2, height) - -# Fuse -\n box_cyl = MakeFuse(box, cyl) -\n piece = MakeFuse(box_cyl, cone) - -# Add in study -\n addToStudy(piece, name) - -# Create a group of faces -\n group = CreateGroup(piece, ShapeType["FACE"]) -\n group_name = name + "_grp" -\n addToStudy(group, group_name) -\n group.SetName(group_name) - -# Add faces in the group -\n faces = SubShapeAllIDs(piece, ShapeType["FACE"]) -\n UnionIDs(group, faces) - -# Create a mesh - -# Define a mesh on a geometry -\n tetra = smesh.Mesh(piece, name) - -# Define 1D hypothesis -\n algo1d = tetra.Segment() -\n algo1d.LocalLength(10) - -# Define 2D hypothesis -\n algo2d = tetra.Triangle() -\n algo2d.LengthFromEdges() - -# Define 3D hypothesis -\n algo3d = tetra.Tetrahedron(smesh.NETGEN) -\n algo3d.MaxElementVolume(100) - -# Compute the mesh -\n tetra.Compute() - -# Create a groupe of faces -\n tetra.Group(group) - -\n Examples of Python scripts for all Mesh operations are available by +Python API for SALOME %Mesh module defines several classes that can +be used for easy mesh creation and edition. + +Documentation for SALOME %Mesh module Python API is available in two forms: +- Structured documentation, where all methods and +classes are grouped by their functionality. +- Linear documentation grouped only by classes, declared +in the \ref smeshBuilder and \ref StdMeshersBuilder Python packages. + +\n With SALOME 7.2, the Python interface for %Mesh has been slightly modified to offer new functionality. +\n You may have to modify your scripts generated with SALOME 6 or older versions. +\n Please see \ref smesh_migration_page. + +Class \ref smeshBuilder.smeshBuilder "smeshBuilder" provides an interface to create and handle +meshes. It can be used to create an empty mesh or to import mesh from the data file. + +As soon as a mesh is created, it is possible to manage it via its own +methods, described in class \ref smeshBuilder.Mesh "Mesh" documentation. + +Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study. + +A usual workflow to generate a mesh on geometry is following: +
    +
  1. Create an instance of \ref smeshBuilder.smeshBuilder "smeshBuilder": +
    +      from salome.smesh import smeshBuilder
    +      smesh = smeshBuilder.New( salome.myStudy )
    +    
  2. +
  3. Create a \ref smeshBuilder.Mesh "mesh" object: +
    +      mesh = \ref smeshBuilder.smeshBuilder.Mesh "smesh.Mesh( geometry )" 
    +    
  4. +
  5. Create and assign \ref basic_meshing_algos_page "algorithms" by + calling corresponding methods of the mesh. If a sub-shape is + provided as an argument, a \ref constructing_submeshes_page "sub-mesh" + is implicitly created on this sub-shape: +
    +      regular1D = \ref smeshBuilder.Mesh.Segment "mesh.Segment"()
    +      mefisto   = \ref smeshBuilder.Mesh.Triangle "mesh.Triangle"( smeshBuilder.MEFISTO )
    +      # use other triangle algorithm on a face -- a sub-mesh appears in the mesh
    +      netgen    = \ref smeshBuilder.Mesh.Triangle "mesh.Triangle"( smeshBuilder.NETGEN_1D2D, face )
    +    
  6. +
  7. Create and assign \ref about_hypo_page "hypotheses" by calling + corresponding methods of algorithms: +
    +      segLen10 = \ref StdMeshersBuilder.StdMeshersBuilder_Segment.LocalLength "regular1D.LocalLength"( 10. )
    +      maxArea  = \ref StdMeshersBuilder.StdMeshersBuilder_Segment.LocalLength "mefisto.MaxElementArea"( 100. )
    +      netgen.SetMaxSize( 20. )
    +      netgen.SetFineness( smeshBuilder.VeryCoarse )
    +    
    +
  8. +
  9. \ref compute_anchor "Compute" the mesh (generate mesh nodes and elements): +
    +      \ref Mesh.Compute "mesh.Compute"()
    +    
    +
  10. +
+ +An easiest way to start with Python scripting is to do something in +GUI and then to get a corresponding Python script via + File > Dump Study menu item. Don't forget that you can get +all methods of any object in hand (e.g. a mesh group or a hypothesis) +by calling \a dir() Python built-in function. + +All methods of the Mesh Group can be found in \ref tui_create_standalone_group sample script. + +An example below demonstrates usage of the Python API for 3d mesh +generation and for retrieving information on mesh nodes and elements. + +\anchor example_3d_mesh +

Example of 3d mesh generation:

+\tui_script{3dmesh.py} + +Examples of Python scripts for Mesh operations are available by the following links: - - +- \subpage tui_creating_meshes_page +- \subpage tui_defining_hypotheses_page +- \subpage tui_grouping_elements_page +- \subpage tui_filters_page +- \subpage tui_modifying_meshes_page +- \subpage tui_transforming_meshes_page +- \subpage tui_viewing_meshes_page +- \subpage tui_quality_controls_page +- \subpage tui_measurements_page +- \subpage tui_work_on_objects_from_gui +- \subpage tui_notebook_smesh_page +- \subpage tui_cartesian_algo +- \subpage tui_use_existing_faces +- \subpage tui_prism_3d_algo +- \subpage tui_generate_flat_elements_page */