X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=doc%2Fsalome%2Fgui%2FSMESH%2Finput%2Fsmeshpy_interface.doc;h=bbb287f2fb5433a0027ed990dacd3c64757a88e7;hp=b2b48795433139e409648bd3b7b45957bb352437;hb=a8c3e199b7fa1bf4ed5895a312cc5d5f6aee25e6;hpb=1067ffa6e7e5c394e3a1b17219d8b355a57607cd diff --git a/doc/salome/gui/SMESH/input/smeshpy_interface.doc b/doc/salome/gui/SMESH/input/smeshpy_interface.doc index b2b487954..bbb287f2f 100644 --- a/doc/salome/gui/SMESH/input/smeshpy_interface.doc +++ b/doc/salome/gui/SMESH/input/smeshpy_interface.doc @@ -7,126 +7,91 @@ 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, like it is done in the GUI documentation +classes are grouped by their functionality. - Linear documentation grouped only by classes, declared -in the \ref smesh and StdMeshersDC Python packages. +in the \ref smeshBuilder and \ref StdMeshersBuilder Python packages. -Python package \ref smesh 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 mesh is created, it is possible to manage it via its own -methods, described in \ref smesh.Mesh "class Mesh" documentation. - -Class \ref smesh.Mesh "Mesh" allows assigning algorithms to a mesh. -Please note that some algorithms, included in the standard SALOME -distribution are always available. Python package \ref StdMeshersDC -provides an interface for standard meshing algorithms included into -the SALOME %Mesh module distribution, like: -- REGULAR (1D) -- COMPOSITE (1D) -- MEFISTO (2D) -- Quadrangle (2D) -- Hexa(3D) -- etc ... +\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. -To add meshing hypotheses, it is possible to use the functions provided by the -algorithms interfaces. +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. -An example below demonstrates usage of the Python API for 3d mesh generation. +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:

- -\code -from geompy import * -import smesh - -### -# Geometry: an assembly of a box, a cylinder and a truncated cone -# meshed with tetrahedral -### - -# Define values -name = "ex21_lamp" -cote = 60 -section = 20 -size = 200 -radius_1 = 80 -radius_2 = 40 -height = 100 - -# Build a box -box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) - -# Build a cylinder -pt1 = MakeVertex(0, 0, cote/3) -di1 = MakeVectorDXDYDZ(0, 0, 1) -cyl = MakeCylinder(pt1, di1, section, size) - -# Build a truncated cone -pt2 = MakeVertex(0, 0, size) -cone = MakeCone(pt2, di1, radius_1, radius_2, height) - -# Fuse -box_cyl = MakeFuse(box, cyl) -piece = MakeFuse(box_cyl, cone) - -# Add to the study -addToStudy(piece, name) - -# Create a group of faces -group = CreateGroup(piece, ShapeType["FACE"]) -group_name = name + "_grp" -addToStudy(group, group_name) -group.SetName(group_name) - -# Add faces to the group -faces = SubShapeAllIDs(piece, ShapeType["FACE"]) -UnionIDs(group, faces) - -### -# Create a mesh -### - -# Define a mesh on a geometry -tetra = smesh.Mesh(piece, name) - -# Define 1D hypothesis -algo1d = tetra.Segment() -algo1d.LocalLength(10) - -# Define 2D hypothesis -algo2d = tetra.Triangle() -algo2d.LengthFromEdges() - -# Define 3D hypothesis -algo3d = tetra.Tetrahedron() -algo3d.MaxElementVolume(100) - -# Compute the mesh -tetra.Compute() - -# Create a groupe of faces -tetra.Group(group) - -\endcode +\tui_script{3dmesh.py} Examples of Python scripts for Mesh operations are available by the following links: - \subpage tui_creating_meshes_page -- \subpage tui_cartesian_algo -- \subpage tui_use_existing_faces -- \subpage tui_viewing_meshes_page - \subpage tui_defining_hypotheses_page -- \subpage tui_quality_controls_page -- \subpage tui_filters_page - \subpage tui_grouping_elements_page +- \subpage tui_filters_page - \subpage tui_modifying_meshes_page - \subpage tui_transforming_meshes_page -- \subpage tui_notebook_smesh_page +- \subpage tui_viewing_meshes_page +- \subpage tui_quality_controls_page - \subpage tui_measurements_page -- \subpage tui_generate_flat_elements_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 */