From f3dc6a8a8422c7974576158bda95783d188dfbd6 Mon Sep 17 00:00:00 2001 From: jfa Date: Tue, 20 May 2008 07:50:41 +0000 Subject: [PATCH] NPAL18500: structured help for GEOM python interface. --- configure.ac | 1 + doc/salome/gui/GEOM/doxyfile.in | 4 +- doc/salome/gui/GEOM/doxyfile_py.in | 2 + doc/salome/gui/GEOM/doxyfile_tui.in | 49 + .../gui/GEOM/input/chamfer_operation.doc | 2 +- .../input/check_free_boundaries_operation.doc | 29 - .../GEOM/input/check_free_faces_operation.doc | 27 - doc/salome/gui/GEOM/input/geompy.doc | 4 +- doc/salome/gui/GEOM/input/index.doc | 2 - doc/salome/gui/GEOM/input/shapesonshape.doc | 29 +- .../gui/GEOM/input/transforming_geom_objs.doc | 2 - .../gui/GEOM/input/tui_boolean_operations.doc | 16 +- .../gui/GEOM/input/tui_complex_objs.doc | 6 +- .../gui/GEOM/input/tui_measurement_tools.doc | 25 +- doc/salome/gui/GEOM/input/tui_primitives.doc | 12 +- .../input/tui_transformation_operations.doc | 6 +- .../GEOM/input/using_measurement_tools.doc | 2 +- doc/salome/gui/Makefile.am | 6 +- src/GEOM_SWIG/geompyDC.py | 1592 ++++++++++------- 19 files changed, 1105 insertions(+), 711 deletions(-) create mode 100755 doc/salome/gui/GEOM/doxyfile_tui.in delete mode 100644 doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc delete mode 100644 doc/salome/gui/GEOM/input/check_free_faces_operation.doc diff --git a/configure.ac b/configure.ac index 19511df36..67e94462c 100644 --- a/configure.ac +++ b/configure.ac @@ -377,6 +377,7 @@ AC_OUTPUT([ \ ./doc/salome/gui/Makefile \ ./doc/salome/gui/GEOM/doxyfile \ ./doc/salome/gui/GEOM/doxyfile_py \ + ./doc/salome/gui/GEOM/doxyfile_tui \ ./doc/salome/tui/Makefile \ ./doc/salome/tui/GEOM/doxyfile \ ./doc/salome/tui/GEOM/sources/static/tree.js \ diff --git a/doc/salome/gui/GEOM/doxyfile.in b/doc/salome/gui/GEOM/doxyfile.in index 75b0c99aa..429144bf9 100755 --- a/doc/salome/gui/GEOM/doxyfile.in +++ b/doc/salome/gui/GEOM/doxyfile.in @@ -18,6 +18,7 @@ WARNINGS = YES #--------------------------------------------------------------------------- INPUT = @srcdir@/input FILE_PATTERNS = *.doc +EXCLUDE = IMAGE_PATH = @srcdir@/images #--------------------------------------------------------------------------- @@ -46,4 +47,5 @@ GENERATE_RTF = NO #--------------------------------------------------------------------------- #External reference options #--------------------------------------------------------------------------- -TAGFILES = geompy_doc.tag=./geompy_doc \ No newline at end of file +TAGFILES = geompy_doc.tag=./geompy_doc +ALLEXTERNALS = NO diff --git a/doc/salome/gui/GEOM/doxyfile_py.in b/doc/salome/gui/GEOM/doxyfile_py.in index 88df45eb8..26ae2c4db 100755 --- a/doc/salome/gui/GEOM/doxyfile_py.in +++ b/doc/salome/gui/GEOM/doxyfile_py.in @@ -80,6 +80,7 @@ EXAMPLE_RECURSIVE = NO INPUT = @top_srcdir@/src/GEOM_SWIG FILE_PATTERNS = geompyDC.py IMAGE_PATH = @srcdir@/images +EXAMPLE_PATH = @top_srcdir@/src/GEOM_SWIG RECURSIVE = NO #--------------------------------------------------------------------------- @@ -142,3 +143,4 @@ DOT_CLEANUP = YES #External reference options #--------------------------------------------------------------------------- GENERATE_TAGFILE = geompy_doc.tag +TAGFILES = tui_examples.tag=./.. diff --git a/doc/salome/gui/GEOM/doxyfile_tui.in b/doc/salome/gui/GEOM/doxyfile_tui.in new file mode 100755 index 000000000..0c4397caf --- /dev/null +++ b/doc/salome/gui/GEOM/doxyfile_tui.in @@ -0,0 +1,49 @@ +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Geometry Module Reference Manual v.@VERSION@" +OUTPUT_DIRECTORY = ./ +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +TAB_SIZE = 5 + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES + +#--------------------------------------------------------------------------- +#Input related options +#--------------------------------------------------------------------------- +INPUT = @srcdir@/input +FILE_PATTERNS = tui_*.doc +IMAGE_PATH = @srcdir@/images + +#--------------------------------------------------------------------------- +#HTML related options +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = ./ +HTML_HEADER = @srcdir@/static/header.html +HTML_FOOTER = @srcdir@/static/footer.html +#HTML_STYLESHEET = @srcdir@/static/doxygen.css +TOC_EXPAND = YES +DISABLE_INDEX = NO +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 300 + +#--------------------------------------------------------------------------- +#LaTeX related option +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +#RTF related options +#--------------------------------------------------------------------------- +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +#External reference options +#--------------------------------------------------------------------------- +GENERATE_TAGFILE = tui_examples.tag diff --git a/doc/salome/gui/GEOM/input/chamfer_operation.doc b/doc/salome/gui/GEOM/input/chamfer_operation.doc index 53e114094..890fd01a9 100644 --- a/doc/salome/gui/GEOM/input/chamfer_operation.doc +++ b/doc/salome/gui/GEOM/input/chamfer_operation.doc @@ -20,7 +20,7 @@ Dimension (radius) of the chamfer. \n In the algorithms below there exist two ways to define the \b Dimension of the Chamfer -\n Firstly the \b Dimension can be defined via \b D1 and \D2, which +\n Firstly the \b Dimension can be defined via \b D1 and \b D2, which represent the offset on the first and the second face forming the edge. \n Secondly the \b Dimension can be defined via \b D, which represents diff --git a/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc b/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc deleted file mode 100644 index f586dde4a..000000000 --- a/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc +++ /dev/null @@ -1,29 +0,0 @@ -/*! - -\page check_free_boundaries_operation_page Check Free Boundaries - -\n To Check Free Boundaries in the Main Menu select Repair - > Check Free Boundaries. - -\n This operation detects wires and edges that are not shared between -two faces and are considered a shape's boundary. This control highlights them. - -\n The \b Result will be a \b GEOM_Object. - -\n TUI Command: (NoError, ClosedWires, OpenWires) = -geompy.GetFreeBoundary(Shape), where \em Shape is a shape to be -checked, \em NoError is false if an error occurred while checking free -boundaries, \em ClosedWires is a list of closed free boundary wires, -\em OpenWires is a list of open free boundary wires. - -\image html repair9.png - -\n Example: - -\image html free_boudaries1.png - -\image html free_boudaries2.png - -Our TUI Scripts provide you with useful examples of the use of -\ref tui_check_free_boundaries "Repairing Operations". - -*/ diff --git a/doc/salome/gui/GEOM/input/check_free_faces_operation.doc b/doc/salome/gui/GEOM/input/check_free_faces_operation.doc deleted file mode 100644 index acf9d5428..000000000 --- a/doc/salome/gui/GEOM/input/check_free_faces_operation.doc +++ /dev/null @@ -1,27 +0,0 @@ -/*! - -\page check_free_faces_operation_page Check Free Faces - -\n To Check Free Faces in the Main Menu select Repair - > Check Free Faces. -\n This operation highlights all free faces from a given shape. A free -face is a face which is not shared between two objects of the shape. - -\n \b NOTE: This functionality works only in VTK viewer. - -\n The \b Result will be a \b GEOM_Object (a list of IDs of all free -faces, containing in the shape). -\n TUI Command: GetFreeFacesIDs(Shape), where \em Shape is -a shape to be checked. - -\image html repair10.png - -\n Example: - -\image html free_faces1.png - -\image html free_faces2.png - -Our TUI Scripts provide you with useful examples of the use of -\ref tui_check_free_faces "Repairing Operations". - -*/ diff --git a/doc/salome/gui/GEOM/input/geompy.doc b/doc/salome/gui/GEOM/input/geompy.doc index cde054cb5..eef0e9f87 100644 --- a/doc/salome/gui/GEOM/input/geompy.doc +++ b/doc/salome/gui/GEOM/input/geompy.doc @@ -2,6 +2,6 @@ \page geompy_page Python Interface geompy.py -\n Please, see \ref geompyDC::geompyDC "documentation for geompy.py" +\n Please, see documentation for geompy.py -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/index.doc b/doc/salome/gui/GEOM/input/index.doc index 09684f217..7af7738a4 100644 --- a/doc/salome/gui/GEOM/input/index.doc +++ b/doc/salome/gui/GEOM/input/index.doc @@ -102,8 +102,6 @@
  • \ref sewing_operation_page
  • \ref glue_faces_operation_page
  • \ref add_point_on_edge_operation_page
  • -
  • \ref check_free_boundaries_operation_page
  • -
  • \ref check_free_faces_operation_page
  • \ref change_orientation_operation_page
  • \ref remove_extra_edges_operation_page
  • diff --git a/doc/salome/gui/GEOM/input/shapesonshape.doc b/doc/salome/gui/GEOM/input/shapesonshape.doc index dd461836b..3e9e20494 100755 --- a/doc/salome/gui/GEOM/input/shapesonshape.doc +++ b/doc/salome/gui/GEOM/input/shapesonshape.doc @@ -8,23 +8,28 @@ To use this operation, select in the Main Menu Operations -> Get Shapes on Sh \image html shapesonshape.png -\n
  • Name is the name of the resulting group of shapes; -\n Shape for exploding is the shape that will be exploded; -\n Shape for checking is the reference shape; -\n Reconstruction Limit is the type of created sub-shapes: solid, shell, face, wire, edge, vertex; -\n State is the position of the created sub-shapes relatively the reference shapes: -
      \n IN - the created sub-shapes are located inside the reference shape; - \n OUT - the created sub-shapes are located outside the reference shape; - \n ON - the created sub-shapes lie on the reference shape; - \n ONIN - the created sub-shapes lie on the reference shape or are located inside it; - \n ONOUT - the created sub-shapes lie on the reference shape or are located outside it;
  • + Example: In the images below the box is the exploded shape and the cylinder is the reference shape. In the first image the edge IN the reference cylinder is highlighted in red, in the second the edges OUT of the reference cylinder are highlighted. -\image html shonshex1 -\image html shonshex2 +\image html shonshex1.png +\image html shonshex2.png */ diff --git a/doc/salome/gui/GEOM/input/transforming_geom_objs.doc b/doc/salome/gui/GEOM/input/transforming_geom_objs.doc index 43558490f..3daec5a37 100644 --- a/doc/salome/gui/GEOM/input/transforming_geom_objs.doc +++ b/doc/salome/gui/GEOM/input/transforming_geom_objs.doc @@ -45,8 +45,6 @@
  • \ref sewing_operation_page
  • \ref glue_faces_operation_page
  • \ref add_point_on_edge_operation_page
  • -
  • \ref check_free_boundaries_operation_page
  • -
  • \ref check_free_faces_operation_page
  • \ref change_orientation_operation_page
  • \ref remove_extra_edges_operation_page
  • diff --git a/doc/salome/gui/GEOM/input/tui_boolean_operations.doc b/doc/salome/gui/GEOM/input/tui_boolean_operations.doc index f88047f48..60563757c 100644 --- a/doc/salome/gui/GEOM/input/tui_boolean_operations.doc +++ b/doc/salome/gui/GEOM/input/tui_boolean_operations.doc @@ -24,20 +24,24 @@ cylinder = geompy.MakeCylinder(p1, v, radius1, height) sphere = geompy.MakeSphereR(40) # fuse -fuse = geompy.MakeFuse(cylinder, sphere) +fuse1 = geompy.MakeFuse(cylinder, sphere) +fuse2 = geompy.MakeBoolean(cylinder, sphere, 3) # add objects in the study id_cylinder = geompy.addToStudy(cylinder, "Cylinder") id_sphere = geompy.addToStudy(sphere, "Sphere") -id_fuse = geompy.addToStudy(fuse, "Fuse") +id_fuse1 = geompy.addToStudy(fuse1, "Fuse_1") +id_fuse2 = geompy.addToStudy(fuse2, "Fuse_2") # display results gg.createAndDisplayGO(id_cylinder) gg.setDisplayMode(id_cylinder,1) gg.createAndDisplayGO(id_sphere) gg.setDisplayMode(id_sphere,1) -gg.createAndDisplayGO(id_fuse) -gg.setDisplayMode(id_fuse,1) +gg.createAndDisplayGO(id_fuse1) +gg.setDisplayMode(id_fuse1,1) +gg.createAndDisplayGO(id_fuse2) +gg.setDisplayMode(id_fuse2,1) \endcode \anchor tui_common @@ -104,7 +108,7 @@ gg.createAndDisplayGO(id_cut) gg.setDisplayMode(id_cut,1) \endcode -\anchor tui_section +\anchor tui_section

    Section

    \code @@ -136,4 +140,4 @@ gg.createAndDisplayGO(id_section) gg.setDisplayMode(id_section,1) \endcode -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/tui_complex_objs.doc b/doc/salome/gui/GEOM/input/tui_complex_objs.doc index 29813a9a6..7df6ce213 100644 --- a/doc/salome/gui/GEOM/input/tui_complex_objs.doc +++ b/doc/salome/gui/GEOM/input/tui_complex_objs.doc @@ -45,12 +45,14 @@ face2 = geompy.MakeFace(wire2, isPlanarWanted) # create prisms prism1 = geompy.MakePrism(face2, p1, p5) prism2 = geompy.MakePrismVecH(face1, vector, 50) +prism3 = geompy.MakePrismVecH2Ways(face1, vector, 50) # add objects in the study id_face1 = geompy.addToStudy(face1,"Face1") id_face2 = geompy.addToStudy(face2,"Face2") id_prism1 = geompy.addToStudy(prism1,"Prism1") id_prism2 = geompy.addToStudy(prism2,"Prism2") +id_prism3 = geompy.addToStudy(prism3,"Prism3") # display cylinders gg.createAndDisplayGO(id_face1) @@ -61,6 +63,8 @@ gg.createAndDisplayGO(id_prism1) gg.setDisplayMode(id_prism1,1) gg.createAndDisplayGO(id_prism2) gg.setDisplayMode(id_prism2,1) +gg.createAndDisplayGO(id_prism3) +gg.setDisplayMode(id_prism3,1) \endcode \anchor tui_creation_revolution @@ -186,4 +190,4 @@ gg.createAndDisplayGO(id_pipe) gg.setDisplayMode(id_pipe,1) \endcode -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/tui_measurement_tools.doc b/doc/salome/gui/GEOM/input/tui_measurement_tools.doc index 27483708d..1b4941394 100644 --- a/doc/salome/gui/GEOM/input/tui_measurement_tools.doc +++ b/doc/salome/gui/GEOM/input/tui_measurement_tools.doc @@ -23,7 +23,7 @@ if IsEqual(coords[0], 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80 else : print "Coordinates of point must be (15, 23, 80), but returned (", print coords[0], ", ", coords[1], ", ", coords[2], ")" - pass + pass \endcode

    Basic Properties

    @@ -68,7 +68,7 @@ else: dy = math.sqrt((coords[1] - 15)*(coords[1] - 15)) dz = math.sqrt((coords[2] - 50)*(coords[2] - 50)) if dx > 1e-7 or dy > 1e-7 or dz > 1e-7: - print "But must be (50, 15, 50)" + print "But must be (50, 15, 50)" \endcode

    Inertia

    @@ -85,7 +85,7 @@ print " (", In[0], ", ", In[1], ", ", In[2], ")" print " (", In[3], ", ", In[4], ", ", In[5], ")" print " (", In[6], ", ", In[7], ", ", In[8], ")" print "Main moments of inertia of box 100x30x100:" -print " Ix = ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] +print " Ix = ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] \endcode

    Check Free Boundaries

    @@ -217,7 +217,7 @@ id_cut_without_f_2 = geompy.addToStudy(cut_without_f_2, "Cut without f_2") # display the results gg.createAndDisplayGO(id_cut_without_f_2) -gg.setDisplayMode(id_cut_without_f_2,1) +gg.setDisplayMode(id_cut_without_f_2,1) \endcode @@ -233,7 +233,7 @@ bb = geompy.BoundingBox(box) print "\nBounding Box of box 100x30x100:" print " Xmin = ", bb[0], ", Xmax = ", bb[1] print " Ymin = ", bb[2], ", Ymax = ", bb[3] -print " Zmin = ", bb[4], ", Zmax = ", bb[5] +print " Zmin = ", bb[4], ", Zmax = ", bb[5] \endcode

    Minimal Distance

    @@ -245,9 +245,9 @@ import geompy box1 = geompy.MakeBoxDXDYDZ(100,30,100) box2 = geompy.MakeBox(105,0,0,200,30,100) min_dist = geompy.MinDistance(box1,box2) -print "\nMinimal distance between box1 and box2 = ", min_dist +print "\nMinimal distance between box1 and box2 = ", min_dist \endcode - +

    Tolerance

    \code @@ -262,7 +262,7 @@ print " Face max. tolerance: ", Toler[1] print " Edge min. tolerance: ", Toler[2] print " Edge max. tolerance: ", Toler[3] print " Vertex min. tolerance: ", Toler[4] -print " Vertex max. tolerance: ", Toler[5] +print " Vertex max. tolerance: ", Toler[5] \endcode

    Angle

    @@ -309,7 +309,6 @@ if (math.fabs(Angle + 1.0) > 1e-6 or geompy.MeasuOp.IsDone()): \endcode -

    What Is

    \code @@ -319,7 +318,7 @@ import geompy box = geompy.MakeBoxDXDYDZ(100,30,100) Descr = geompy.WhatIs(box) print "\nBox 100x30x100 description:" -print Descr +print Descr \endcode

    Check Shape

    @@ -333,9 +332,9 @@ IsValid = geompy.CheckShape(box) if IsValid == 0: raise RuntimeError, "Invalid box created" else: - print "\nBox is valid" + print "\nBox is valid" \endcode - +

    Check Compound of Blocks

    \code @@ -357,7 +356,7 @@ IsValid = geompy.CheckCompoundOfBlocks(glue) if IsValid == 0: raise RuntimeError, "Invalid compound created" else: - print "\nCompound is valid" + print "\nCompound is valid" \endcode */ diff --git a/doc/salome/gui/GEOM/input/tui_primitives.doc b/doc/salome/gui/GEOM/input/tui_primitives.doc index 827825605..441ac464c 100644 --- a/doc/salome/gui/GEOM/input/tui_primitives.doc +++ b/doc/salome/gui/GEOM/input/tui_primitives.doc @@ -64,7 +64,7 @@ id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2") gg.createAndDisplayGO(id_cylinder1) gg.setDisplayMode(id_cylinder1,1) gg.createAndDisplayGO(id_cylinder2) -gg.setDisplayMode(id_cylinder2,1) +gg.setDisplayMode(id_cylinder2,1) \endcode \anchor tui_creation_sphere @@ -97,10 +97,10 @@ gg.setDisplayMode(id_sphere1,1) gg.createAndDisplayGO(id_sphere2) gg.setDisplayMode(id_sphere2,1) gg.createAndDisplayGO(id_sphere3) -gg.setDisplayMode(id_sphere3,1) +gg.setDisplayMode(id_sphere3,1) \endcode -\anchor tui_creation_torus +\anchor tui_creation_torus

    Creation of a Torus

    \code @@ -125,7 +125,7 @@ id_torus2 = geompy.addToStudy(torus2,"Torus2") gg.createAndDisplayGO(id_torus1) gg.setDisplayMode(id_torus1,1) gg.createAndDisplayGO(id_torus2) -gg.setDisplayMode(id_torus2,1) +gg.setDisplayMode(id_torus2,1) \endcode \anchor tui_creation_cone @@ -153,7 +153,7 @@ id_cone2 = geompy.addToStudy(cone2,"Cone2") gg.createAndDisplayGO(id_cone1) gg.setDisplayMode(id_cone1,1) gg.createAndDisplayGO(id_cone2) -gg.setDisplayMode(id_cone2,1) +gg.setDisplayMode(id_cone2,1) \endcode -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/tui_transformation_operations.doc b/doc/salome/gui/GEOM/input/tui_transformation_operations.doc index a05846a79..a4863b537 100644 --- a/doc/salome/gui/GEOM/input/tui_transformation_operations.doc +++ b/doc/salome/gui/GEOM/input/tui_transformation_operations.doc @@ -27,12 +27,14 @@ cylinder = geompy.MakeCylinder(p1, v, radius1, height) translation1 = geompy.MakeTranslationTwoPoints(cylinder, p1, p3) translation2 = geompy.MakeTranslation(cylinder, 40, 40, 0) translation3 = geompy.MakeTranslationVector(cylinder, vt) +translation4 = geompy.MakeTranslationVectorDistance(cylinder, vt, 200) # add objects in the study id_cylinder = geompy.addToStudy(cylinder, "Cylinder") id_translation1 = geompy.addToStudy(translation1, "Translation1") id_translation2 = geompy.addToStudy(translation2, "Translation2") id_translation3 = geompy.addToStudy(translation3, "Translation3") +id_translation4 = geompy.addToStudy(translation4, "Translation4") # display the results gg.createAndDisplayGO(id_cylinder) @@ -43,6 +45,8 @@ gg.createAndDisplayGO(id_translation2) gg.setDisplayMode(id_translation2,1) gg.createAndDisplayGO(id_translation3) gg.setDisplayMode(id_translation3,1) +gg.createAndDisplayGO(id_translation4) +gg.setDisplayMode(id_translation4,1) \endcode \anchor tui_rotation @@ -461,4 +465,4 @@ gg.createAndDisplayGO(id_chamfer_all) gg.setDisplayMode(id_chamfer_all,1) \endcode -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/using_measurement_tools.doc b/doc/salome/gui/GEOM/input/using_measurement_tools.doc index 047cc715a..4793b9299 100644 --- a/doc/salome/gui/GEOM/input/using_measurement_tools.doc +++ b/doc/salome/gui/GEOM/input/using_measurement_tools.doc @@ -87,7 +87,7 @@ returned.

    Normal to a Face

    \n Calculates the normal vector to the selected \b Face. The \b Point -is a point of the \Face, where the Normal should be calculated. +is a point of the \b Face, where the Normal should be calculated. \image html normaletoface.png diff --git a/doc/salome/gui/Makefile.am b/doc/salome/gui/Makefile.am index dec4ee81c..dc15d1047 100644 --- a/doc/salome/gui/Makefile.am +++ b/doc/salome/gui/Makefile.am @@ -35,6 +35,8 @@ doxygen=@DOXYGEN@ # usr_docs: cd ./GEOM; \ + echo "Running doxygen in directory: "`pwd`; \ + $(doxygen) ./doxyfile_tui; \ echo "Processing geompyDC.py file: "; \ $(doxygen) ./doxyfile_py; \ cd ./geompy_doc; \ @@ -43,7 +45,9 @@ usr_docs: sed 's/\([^s1e]\)geompyDC\|^geompyDC/\1geompy/g' $${filen} > ./tmp1; \ sed 's/geompy\.geompy/geompy/g' ./tmp1 > ./tmp; \ rm -f tmp1; \ - mv -f tmp $${filen}; \ + sed 's/geompy::geompy/geompy/g' ./tmp > ./tmp1; \ + rm -f tmp; \ + mv -f tmp1 $${filen}; \ done; \ cd ..; \ echo "Running doxygen in directory: "`pwd`; \ diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py index f425d9434..410727aab 100644 --- a/src/GEOM_SWIG/geompyDC.py +++ b/src/GEOM_SWIG/geompyDC.py @@ -17,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # # @@ -25,37 +25,79 @@ # Author : Paul RASCLE, EDF # Module : GEOM # $Header$ + """ \namespace geompy \brief Module geompy """ +## @defgroup l1_geompy_auxiliary Auxiliary data structures and methods + +## @defgroup l1_geompy_purpose All package methods, grouped by their purpose +## @{ +## @defgroup l2_import_export Importing/exporting geometrical objects +## @defgroup l2_creating Creating geometrical objects +## @{ +## @defgroup l3_basic_go Creating Basic Geometric Objects +## @{ +## @defgroup l4_curves Creating Curves + +## @} +## @defgroup l3_3d_primitives Creating 3D Primitives +## @defgroup l3_complex Creating Complex Objects +## @defgroup l3_groups Working with groups +## @defgroup l3_blocks Building by blocks +## @{ +## @defgroup l4_blocks_measure Check and Improve + +## @} +## @defgroup l3_sketcher Sketcher +## @defgroup l3_advanced Creating Advanced Geometrical Objects +## @{ +## @defgroup l4_decompose Decompose objects +## @defgroup l4_access Access to sub-shapes by their unique IDs inside the main shape +## @defgroup l4_obtain Access to subshapes by a criteria + +## @} + +## @} +## @defgroup l2_transforming Transforming geometrical objects +## @{ +## @defgroup l3_basic_op Basic Operations +## @defgroup l3_boolean Boolean Operations +## @defgroup l3_transform Transformation Operations +## @defgroup l3_local Local Operations (Fillet and Chamfer) +## @defgroup l3_blocks_op Blocks Operations +## @defgroup l3_healing Repairing Operations +## @defgroup l3_restore_ss Restore presentation parameters and a tree of subshapes + +## @} +## @defgroup l2_measure Using measurement tools + +## @} + import salome salome.salome_init() from salome import * import GEOM -# ----------------------------------------------------------------------------- -# enumeration ShapeType as a dictionary -# ----------------------------------------------------------------------------- - +## Enumeration ShapeType as a dictionary +# @ingroup l1_geompy_auxiliary ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8} -# ----------------------------------------------------------------------------- -# Raise an Error Function if Operation is Failed -# ----------------------------------------------------------------------------- +## Raise an Error, containing the Method_name, if Operation is Failed +## @ingroup l1_geompy_auxiliary def RaiseIfFailed (Method_name, Operation): - #NPAL18017#if Operation.IsDone() == 0: if Operation.IsDone() == 0 and Operation.GetErrorCode() != "NOT_FOUND_ANY": raise RuntimeError, Method_name + " : " + Operation.GetErrorCode() -# ----------------------------------------------------------------------------- -# enumeration shape_kind -# ----------------------------------------------------------------------------- - +## Kinds of shape enumeration +# @ingroup l1_geompy_auxiliary kind = GEOM.GEOM_IKindOfShape +## Information about closed/unclosed state of shell or wire +# @ingroup l1_geompy_auxiliary class info: UNKNOWN = 0 CLOSED = 1 @@ -63,12 +105,15 @@ class info: class geompyDC(GEOM._objref_GEOM_Gen): + + ## @addtogroup l1_geompy_auxiliary + ## @{ def __init__(self): GEOM._objref_GEOM_Gen.__init__(self) self.myBuilder = None self.myStudyId = 0 self.father = None - + self.BasicOp = None self.CurvesOp = None self.PrimOp = None @@ -111,11 +156,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): self.BlocksOp = self.GetIBlocksOperations (self.myStudyId) self.GroupOp = self.GetIGroupOperations (self.myStudyId) pass - + ## Get name for sub-shape aSubObj of shape aMainObj # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def SubShapeName(self,aSubObj, aMainObj): + # Example: see GEOM_TestAll.py + #aSubId = orb.object_to_string(aSubObj) #aMainId = orb.object_to_string(aMainObj) #index = gg.getIndexTopology(aSubId, aMainId) @@ -129,15 +176,16 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \param aShape the shape to be published # \param aName the name for the shape # \param doRestoreSubShapes if True, finds and publishes also - # sub-shapes of \a aShape, corresponding to its arguments + # sub-shapes of aShape, corresponding to its arguments # and published sub-shapes of arguments # \param theArgs,theFindMethod,theInheritFirstArg see geompy.RestoreSubShapes for # these arguments description # \return study entry of the published shape in form of string # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def addToStudy(self, aShape, aName, doRestoreSubShapes=False, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False): + # Example: see GEOM_TestAll.py try: aSObject = self.AddInStudy(self.myStudy, aShape, aName, None) if doRestoreSubShapes: @@ -150,8 +198,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Publish in study aShape with name aName as sub-object of previously published aFather # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def addToStudyInFather(self, aFather, aShape, aName): + # Example: see GEOM_TestAll.py try: aSObject = self.AddInStudy(myStudy, aShape, aName, aFather) except: @@ -159,6 +208,12 @@ class geompyDC(GEOM._objref_GEOM_Gen): return "" return aShape.GetStudyEntry() + # end of l1_geompy_auxiliary + ## @} + + ## @addtogroup l3_restore_ss + ## @{ + ## Publish sub-shapes, standing for arguments and sub-shapes of arguments # To be used from python scripts out of geompy.addToStudy (non-default usage) # \param theStudy the study, in which theObject is published already, @@ -168,7 +223,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): # If this list is empty, all operation arguments will be published # \param theFindMethod method to search subshapes, corresponding to arguments and # their subshapes. Value from enumeration GEOM::find_shape_method. - # \param theInheritFirstArg set properties of the first argument for \a theObject. + # \param theInheritFirstArg set properties of the first argument for theObject. # Do not publish subshapes in place of arguments, but only # in place of subshapes of the first argument, # because the whole shape corresponds to the first argument. @@ -179,28 +234,32 @@ class geompyDC(GEOM._objref_GEOM_Gen): # considered as True, not regarding really passed value. # \return True in case of success, False otherwise. # - # Example: see GEOM_TestAll.py + # @ref tui_restore_prs_params "Example" def RestoreSubShapes (self, theObject, theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False): + # Example: see GEOM_TestAll.py return self.RestoreSubShapesO(self.myStudy, theObject, theArgs, theFindMethod, theInheritFirstArg) - # ----------------------------------------------------------------------------- - # Basic primitives - # ----------------------------------------------------------------------------- - + # end of l3_restore_ss + ## @} + + ## @addtogroup l3_basic_go + ## @{ + ## Create point by three coordinates. # @param theX The X coordinate of the point. # @param theY The Y coordinate of the point. # @param theZ The Z coordinate of the point. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_point "Example" def MakeVertex(self,theX, theY, theZ): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ) RaiseIfFailed("MakePointXYZ", self.BasicOp) return anObj - + ## Create a point, distant from the referenced point # on the given distances along the coordinate axes. # @param theReference The referenced point. @@ -209,19 +268,21 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theZ Displacement from the referenced point along OZ axis. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_point "Example" def MakeVertexWithRef(self,theReference, theX, theY, theZ): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ) RaiseIfFailed("MakePointWithReference", self.BasicOp) return anObj - + ## Create a point, corresponding to the given parameter on the given curve. # @param theRefCurve The referenced curve. # @param theParameter Value of parameter on the referenced curve. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_point "Example" def MakeVertexOnCurve(self,theRefCurve, theParameter): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter) RaiseIfFailed("MakePointOnCurve", self.BasicOp) return anObj @@ -233,8 +294,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theVParameter Value of V-parameter on the referenced surface. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def MakeVertexOnSurface(self,theRefSurf, theUParameter, theVParameter): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter) RaiseIfFailed("MakePointOnSurface", self.BasicOp) return anObj @@ -243,78 +305,86 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRefLine1, theRefLine2 The referenced lines. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2) RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp) return anObj - + ## Create a tangent, corresponding to the given parameter on the given curve. # @param theRefCurve The referenced curve. # @param theParameter Value of parameter on the referenced curve. # @return New GEOM_Object, containing the created tangent. + # + # @ref tui_todo "Example" def MakeTangentOnCurve(self,theRefCurve, theParameter): anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter) RaiseIfFailed("MakeTangentOnCurve", self.BasicOp) return anObj - + ## Create a vector with the given components. # @param theDX X component of the vector. # @param theDY Y component of the vector. # @param theDZ Z component of the vector. # @return New GEOM_Object, containing the created vector. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_vector "Example" def MakeVectorDXDYDZ(self,theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ) RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp) return anObj - + ## Create a vector between two points. # @param thePnt1 Start point for the vector. # @param thePnt2 End point for the vector. # @return New GEOM_Object, containing the created vector. - - # Example: see GEOM_TestAll.py + # + # @ref tui_creation_vector "Example" def MakeVector(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2) RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp) return anObj - + ## Create a line, passing through the given point # and parrallel to the given direction # @param thePnt Point. The resulting line will pass through it. # @param theDir Direction. The resulting line will be parallel to it. # @return New GEOM_Object, containing the created line. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_line "Example" def MakeLine(self,thePnt, theDir): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeLine(thePnt, theDir) RaiseIfFailed("MakeLine", self.BasicOp) return anObj - + ## Create a line, passing through the given points # @param thePnt1 First of two points, defining the line. # @param thePnt2 Second of two points, defining the line. # @return New GEOM_Object, containing the created line. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_line "Example" def MakeLineTwoPnt(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2) RaiseIfFailed("MakeLineTwoPnt", self.BasicOp) return anObj - ## Create a line on two faces intersection. + ## Create a line on two faces intersection. # @param theFace1 First of two faces, defining the line. # @param theFace2 Second of two faces, defining the line. # @return New GEOM_Object, containing the created line. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def MakeLineTwoFaces(self, theFace1, theFace2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2) RaiseIfFailed("MakeLineTwoFaces", self.BasicOp) return anObj - + ## Create a plane, passing through the given point # and normal to the given vector. # @param thePnt Point, the plane has to pass through. @@ -322,12 +392,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theTrimSize Half size of a side of quadrangle face, representing the plane. # @return New GEOM_Object, containing the created plane. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_plane "Example" def MakePlane(self,thePnt, theVec, theTrimSize): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize) RaiseIfFailed("MakePlanePntVec", self.BasicOp) return anObj - + ## Create a plane, passing through the three given points # @param thePnt1 First of three points, defining the plane. # @param thePnt2 Second of three points, defining the plane. @@ -335,35 +406,38 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theTrimSize Half size of a side of quadrangle face, representing the plane. # @return New GEOM_Object, containing the created plane. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_plane "Example" def MakePlaneThreePnt(self,thePnt1, thePnt2, thePnt3, theTrimSize): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize) RaiseIfFailed("MakePlaneThreePnt", self.BasicOp) return anObj - + ## Create a plane, similar to the existing one, but with another size of representing face. # @param theFace Referenced plane or LCS(Marker). # @param theTrimSize New half size of a side of quadrangle face, representing the plane. # @return New GEOM_Object, containing the created plane. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_plane "Example" def MakePlaneFace(self,theFace, theTrimSize): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize) RaiseIfFailed("MakePlaneFace", self.BasicOp) return anObj - + ## Create a local coordinate system. # @param OX,OY,OZ Three coordinates of coordinate system origin. # @param XDX,XDY,XDZ Three components of OX direction # @param YDX,YDY,YDZ Three components of OY direction # @return New GEOM_Object, containing the created coordinate system. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def MakeMarker(self,OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ) RaiseIfFailed("MakeMarker", self.BasicOp) return anObj - + ## Create a local coordinate system. # @param theOrigin Point of coordinate system origin. # @param theXVec Vector of X direction @@ -384,53 +458,60 @@ class geompyDC(GEOM._objref_GEOM_Gen): OXOY[3], OXOY[4], OXOY[5], ) RaiseIfFailed("MakeMarker", self.BasicOp) return anObj - - # ----------------------------------------------------------------------------- - # Curves - # ----------------------------------------------------------------------------- - + + # end of l3_basic_go + ## @} + + ## @addtogroup l4_curves + ## @{ + ## Create an arc of circle, passing through three given points. # @param thePnt1 Start point of the arc. # @param thePnt2 Middle point of the arc. # @param thePnt3 End point of the arc. # @return New GEOM_Object, containing the created arc. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def MakeArc(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3) RaiseIfFailed("MakeArc", self.CurvesOp) return anObj - + ## Create an arc of circle from a center and 2 points. # @param thePnt1 Center of the arc # @param thePnt2 Start point of the arc. (Gives also the radius of the arc) # @param thePnt3 End point of the arc (Gives also a direction) + # @param theSense Orientation of the arc # @return New GEOM_Object, containing the created arc. # - # Example: see GEOM_TestAll.py - def MakeArcCenter(self,thePnt1, thePnt2, thePnt3,theSense): - anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3,theSense) + # @ref tui_todo "Example" + def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False): + # Example: see GEOM_TestAll.py + anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense) RaiseIfFailed("MakeArcCenter", self.CurvesOp) return anObj - + ## Create a circle with given center, normal vector and radius. # @param thePnt Circle center. # @param theVec Vector, normal to the plane of the circle. # @param theR Circle radius. # @return New GEOM_Object, containing the created circle. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_circle "Example" def MakeCircle(self,thePnt, theVec, theR): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR) RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp) return anObj - + ## Create a circle, passing through three given points # @param thePnt1,thePnt2,thePnt3 Points, defining the circle. # @return New GEOM_Object, containing the created circle. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_circle "Example" def MakeCircleThreePnt(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3) RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp) return anObj @@ -441,12 +522,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePnt1,thePnt2,thePnt3 Points, defining the circle. # @return New GEOM_Object, containing the created circle. # - # Example: see GEOM_example6.py + # @ref tui_todo "Example" def MakeCircleCenter2Pnt(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_example6.py anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3) RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp) return anObj - + ## Create an ellipse with given center, normal vector and radiuses. # @param thePnt Ellipse center. # @param theVec Vector, normal to the plane of the ellipse. @@ -454,44 +536,54 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRMinor Minor ellipse radius. # @return New GEOM_Object, containing the created ellipse. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_ellipse "Example" def MakeEllipse(self,thePnt, theVec, theRMajor, theRMinor): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor) RaiseIfFailed("MakeEllipse", self.CurvesOp) return anObj - + ## Create a polyline on the set of points. # @param thePoints Sequence of points for the polyline. # @return New GEOM_Object, containing the created polyline. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_curve "Example" def MakePolyline(self,thePoints): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakePolyline(thePoints) RaiseIfFailed("MakePolyline", self.CurvesOp) return anObj - + ## Create bezier curve on the set of points. # @param thePoints Sequence of points for the bezier curve. # @return New GEOM_Object, containing the created bezier curve. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_curve "Example" def MakeBezier(self,thePoints): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeSplineBezier(thePoints) RaiseIfFailed("MakeSplineBezier", self.CurvesOp) return anObj - + ## Create B-Spline curve on the set of points. # @param thePoints Sequence of points for the B-Spline curve. # @return New GEOM_Object, containing the created B-Spline curve. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_curve "Example" def MakeInterpol(self,thePoints): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeSplineInterpolation(thePoints) RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp) return anObj - + + # end of l4_curves + ## @} + + ## @addtogroup l3_sketcher + ## @{ + ## Create a sketcher (wire or face), following the textual description, - # passed through \a theCommand argument. \n + # passed through theCommand argument. \n # Edges of the resulting wire or face will be arcs of circles and/or linear segments. \n # Format of the description string have to be the following: # @@ -523,36 +615,42 @@ class geompyDC(GEOM._objref_GEOM_Gen): # OZ and OX directions of the working plane. # @return New GEOM_Object, containing the created wire. # - # Example: see GEOM_TestAll.py - def MakeSketcher(self,theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0]): + # @ref tui_sketcher_page "Example" + def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0]): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane) RaiseIfFailed("MakeSketcher", self.CurvesOp) return anObj - + ## Create a sketcher (wire or face), following the textual description, - # passed through \a theCommand argument. \n + # passed through theCommand argument. \n # For format of the description string see the previous method.\n # @param theCommand String, defining the sketcher in local # coordinates of the working plane. # @param theWorkingPlane Planar Face or LCS(Marker) of the working plane. # @return New GEOM_Object, containing the created wire. - def MakeSketcherOnPlane(self,theCommand, theWorkingPlane): + # + # @ref tui_sketcher_page "Example" + def MakeSketcherOnPlane(self, theCommand, theWorkingPlane): anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane) RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp) return anObj - - # ----------------------------------------------------------------------------- - # Create 3D Primitives - # ----------------------------------------------------------------------------- - + + # end of l3_sketcher + ## @} + + ## @addtogroup l3_3d_primitives + ## @{ + ## Create a box by coordinates of two opposite vertices. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_box "Example" def MakeBox(self,x1,y1,z1,x2,y2,z2): + # Example: see GEOM_TestAll.py pnt1 = self.MakeVertex(x1,y1,z1) pnt2 = self.MakeVertex(x2,y2,z2) return self.MakeBoxTwoPnt(pnt1,pnt2) - + ## Create a box with specified dimensions along the coordinate axes # and with edges, parallel to the coordinate axes. # Center of the box will be at point (DX/2, DY/2, DZ/2). @@ -561,24 +659,26 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theDZ Length of Box edges, parallel to OZ axis. # @return New GEOM_Object, containing the created box. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_box "Example" def MakeBoxDXDYDZ(self,theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ) RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp) return anObj - + ## Create a box with two specified opposite vertices, # and with edges, parallel to the coordinate axes # @param thePnt1 First of two opposite vertices. # @param thePnt2 Second of two opposite vertices. # @return New GEOM_Object, containing the created box. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_box "Example" def MakeBoxTwoPnt(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2) RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp) return anObj - + ## Create a cylinder with given base point, axis, radius and height. # @param thePnt Central point of cylinder base. # @param theAxis Cylinder axis. @@ -586,12 +686,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cylinder height. # @return New GEOM_Object, containing the created cylinder. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cylinder "Example" def MakeCylinder(self,thePnt, theAxis, theR, theH): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH) RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp) return anObj - + ## Create a cylinder with given radius and height at # the origin of coordinate system. Axis of the cylinder # will be collinear to the OZ axis of the coordinate system. @@ -599,30 +700,33 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cylinder height. # @return New GEOM_Object, containing the created cylinder. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cylinder "Example" def MakeCylinderRH(self,theR, theH): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeCylinderRH(theR, theH) RaiseIfFailed("MakeCylinderRH", self.PrimOp) return anObj - + ## Create a sphere with given center and radius. # @param thePnt Sphere center. # @param theR Sphere radius. # @return New GEOM_Object, containing the created sphere. # - # Example: see GEOM_TestAll.py - def MakeSpherePntR(self,thePnt, theR): + # @ref tui_creation_sphere "Example" + def MakeSpherePntR(self, thePnt, theR): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeSpherePntR(thePnt, theR) RaiseIfFailed("MakeSpherePntR", self.PrimOp) return anObj - + ## Create a sphere with given center and radius. # @param x,y,z Coordinates of sphere center. # @param theR Sphere radius. # @return New GEOM_Object, containing the created sphere. # - # Example: see GEOM_TestAll.py - def MakeSphere(self,x, y, z, theR): + # @ref tui_creation_sphere "Example" + def MakeSphere(self, x, y, z, theR): + # Example: see GEOM_TestAll.py point = self.MakeVertex(x, y, z) anObj = self.MakeSpherePntR(point, theR) return anObj @@ -631,12 +735,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theR Sphere radius. # @return New GEOM_Object, containing the created sphere. # - # Example: see GEOM_TestAll.py - def MakeSphereR(self,theR): + # @ref tui_creation_sphere "Example" + def MakeSphereR(self, theR): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeSphereR(theR) RaiseIfFailed("MakeSphereR", self.PrimOp) return anObj - + ## Create a cone with given base point, axis, height and radiuses. # @param thePnt Central point of the first cone base. # @param theAxis Cone axis. @@ -647,12 +752,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cone height. # @return New GEOM_Object, containing the created cone. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cone "Example" def MakeCone(self,thePnt, theAxis, theR1, theR2, theH): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH) RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp) return anObj - + ## Create a cone with given height and radiuses at # the origin of coordinate system. Axis of the cone will # be collinear to the OZ axis of the coordinate system. @@ -663,12 +769,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cone height. # @return New GEOM_Object, containing the created cone. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cone "Example" def MakeConeR1R2H(self,theR1, theR2, theH): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH) RaiseIfFailed("MakeConeR1R2H", self.PrimOp) return anObj - + ## Create a torus with given center, normal vector and radiuses. # @param thePnt Torus central point. # @param theVec Torus axis of symmetry. @@ -676,35 +783,44 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRMinor Torus minor radius. # @return New GEOM_Object, containing the created torus. # - # Example: see GEOM_TestAll.py - def MakeTorus(self,thePnt, theVec, theRMajor, theRMinor): + # @ref tui_creation_torus "Example" + def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor) RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp) return anObj - + ## Create a torus with given radiuses at the origin of coordinate system. # @param theRMajor Torus major radius. # @param theRMinor Torus minor radius. # @return New GEOM_Object, containing the created torus. # - # Example: see GEOM_TestAll.py - def MakeTorusRR(self,theRMajor, theRMinor): + # @ref tui_creation_torus "Example" + def MakeTorusRR(self, theRMajor, theRMinor): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor) RaiseIfFailed("MakeTorusRR", self.PrimOp) return anObj - + + # end of l3_3d_primitives + ## @} + + ## @addtogroup l3_complex + ## @{ + ## Create a shape by extrusion of the base shape along a vector, defined by two points. # @param theBase Base shape to be extruded. # @param thePoint1 First end of extrusion vector. # @param thePoint2 Second end of extrusion vector. # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py - def MakePrism(self,theBase, thePoint1, thePoint2): + # @ref tui_creation_prism "Example" + def MakePrism(self, theBase, thePoint1, thePoint2): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2) RaiseIfFailed("MakePrismTwoPnt", self.PrimOp) return anObj - + ## Create a shape by extrusion of the base shape along the vector, # i.e. all the space, transfixed by the base shape during its translation # along the vector on the given distance. @@ -713,8 +829,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Prism dimension along theVec. # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py - def MakePrismVecH(self,theBase, theVec, theH): + # @ref tui_creation_prism "Example" + def MakePrismVecH(self, theBase, theVec, theH): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH) RaiseIfFailed("MakePrismVecH", self.PrimOp) return anObj @@ -727,24 +844,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Prism dimension along theVec in forward direction. # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_prism "Example" def MakePrismVecH2Ways(self, theBase, theVec, theH): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH) RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp) return anObj - - ## Create a shape by extrusion of the base shape along - # the path shape. The path shape can be a wire or an edge. - # @param theBase Base shape to be extruded. - # @param thePath Path shape to extrude the base shape along it. - # @return New GEOM_Object, containing the created pipe. - # - # Example: see GEOM_TestAll.py - def MakePipe(self,theBase, thePath): - anObj = self.PrimOp.MakePipe(theBase, thePath) - RaiseIfFailed("MakePipe", self.PrimOp) - return anObj - + ## Create a shape by revolution of the base shape around the axis # on the given angle, i.e. all the space, transfixed by the base # shape during its rotation around the axis on the given angle. @@ -753,17 +859,41 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theAngle Rotation angle in radians. # @return New GEOM_Object, containing the created revolution. # - # Example: see GEOM_TestAll.py - def MakeRevolution(self,theBase, theAxis, theAngle): + # @ref tui_creation_revolution "Example" + def MakeRevolution(self, theBase, theAxis, theAngle): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle) RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp) return anObj + ## The Same Revolution but in both ways forward&backward. def MakeRevolution2Ways(self, theBase, theAxis, theAngle): anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle) RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp) return anObj - + + ## Create a filling from the given compound of contours. + # @param theShape the compound of contours + # @param theMinDeg a minimal degree of BSpline surface to create + # @param theMaxDeg a maximal degree of BSpline surface to create + # @param theTol2D a 2d tolerance to be reached + # @param theTol3D a 3d tolerance to be reached + # @param theNbIter a number of iteration of approximation algorithm + # @param isApprox if True, BSpline curves are generated in the process + # of surface construction. By default it is False, that means + # the surface is created using Besier curves. The usage of + # Approximation makes the algorithm work slower, but allows + # building the surface for rather complex cases + # @return New GEOM_Object, containing the created filling surface. + # + # @ref tui_creation_filling "Example" + def MakeFilling(self, theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox=0): + # Example: see GEOM_TestAll.py + anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, + theTol2D, theTol3D, theNbIter, isApprox) + RaiseIfFailed("MakeFilling", self.PrimOp) + return anObj + ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices. # @param theSeqSections - set of specified sections. # @param theModeSolid - mode defining building solid or shell @@ -771,12 +901,26 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRuled - mode defining type of the result surfaces (ruled or smoothed). # @return New GEOM_Object, containing the created shell or solid. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def MakeThruSections(self,theSeqSections,theModeSolid,thePreci,theRuled): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled) RaiseIfFailed("MakeThruSections", self.PrimOp) return anObj - + + ## Create a shape by extrusion of the base shape along + # the path shape. The path shape can be a wire or an edge. + # @param theBase Base shape to be extruded. + # @param thePath Path shape to extrude the base shape along it. + # @return New GEOM_Object, containing the created pipe. + # + # @ref tui_creation_pipe "Example" + def MakePipe(self,theBase, thePath): + # Example: see GEOM_TestAll.py + anObj = self.PrimOp.MakePipe(theBase, thePath) + RaiseIfFailed("MakePipe", self.PrimOp) + return anObj + ## Create a shape by extrusion of the profile shape along # the path shape. The path shape can be a wire or an edge. # the several profiles can be specified in the several locations of path. @@ -787,10 +931,11 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePath - Path shape to extrude the base shape along it. # @param theWithContact - the mode defining that the section is translated to be in # contact with the spine. - # @param - WithCorrection - defining that the section is rotated to be - # orthogonal to the spine tangent in the correspondent point + # @param theWithCorrection - defining that the section is rotated to be + # orthogonal to the spine tangent in the correspondent point # @return New GEOM_Object, containing the created pipe. # + # @ref tui_todo "Example" def MakePipeWithDifferentSections(self, theSeqBases, theLocations, thePath, theWithContact, theWithCorrection): @@ -799,7 +944,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): theWithContact, theWithCorrection) RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp) return anObj - + ## Create a shape by extrusion of the profile shape along # the path shape. The path shape can be a shell or a face. # the several profiles can be specified in the several locations of path. @@ -813,10 +958,11 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePath - Path shape to extrude the base shape along it. # @param theWithContact - the mode defining that the section is translated to be in # contact with the spine. - # @param - WithCorrection - defining that the section is rotated to be - # orthogonal to the spine tangent in the correspondent point + # @param theWithCorrection - defining that the section is rotated to be + # orthogonal to the spine tangent in the correspondent point # @return New GEOM_Object, containing the created solids. # + # @ref tui_todo "Example" def MakePipeWithShellSections(self,theSeqBases, theSeqSubBases, theLocations, thePath, theWithContact, theWithCorrection): @@ -851,115 +997,132 @@ class geompyDC(GEOM._objref_GEOM_Gen): res.append(anObj) pass pass - + resc = self.MakeCompound(res) #resc = self.MakeSewing(res, 0.001) #print "resc: ",resc return resc - + ## Create solids between given sections # @param theSeqBases - list of sections (shell or face). # @param theLocations - list of corresponding vertexes # @return New GEOM_Object, containing the created solids. # + # @ref tui_todo "Example" def MakePipeShellsWithoutPath(self, theSeqBases, theLocations): anObj = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations) RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp) return anObj - - - # ----------------------------------------------------------------------------- - # Create base shapes - # ----------------------------------------------------------------------------- - + + # end of l3_complex + ## @} + + ## @addtogroup l3_advanced + ## @{ + ## Create a linear edge with specified ends. # @param thePnt1 Point for the first end of edge. # @param thePnt2 Point for the second end of edge. # @return New GEOM_Object, containing the created edge. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_edge "Example" def MakeEdge(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2) RaiseIfFailed("MakeEdge", self.ShapesOp) return anObj - + ## Create a wire from the set of edges and wires. # @param theEdgesAndWires List of edges and/or wires. # @return New GEOM_Object, containing the created wire. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_wire "Example" def MakeWire(self,theEdgesAndWires): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeWire(theEdgesAndWires) RaiseIfFailed("MakeWire", self.ShapesOp) return anObj - + ## Create a face on the given wire. # @param theWire closed Wire or Edge to build the face on. # @param isPlanarWanted If TRUE, only planar face will be built. # If impossible, NULL object will be returned. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_face "Example" def MakeFace(self,theWire, isPlanarWanted): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted) RaiseIfFailed("MakeFace", self.ShapesOp) return anObj - + ## Create a face on the given wires set. # @param theWires List of closed wires or edges to build the face on. # @param isPlanarWanted If TRUE, only planar face will be built. # If impossible, NULL object will be returned. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_face "Example" def MakeFaceWires(self,theWires, isPlanarWanted): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted) RaiseIfFailed("MakeFaceWires", self.ShapesOp) return anObj - + ## Shortcut to MakeFaceWires() # - # Example: see GEOM_TestOthers.py + # @ref tui_creation_face "Example" def MakeFaces(self,theWires, isPlanarWanted): + # Example: see GEOM_TestOthers.py anObj = self.MakeFaceWires(theWires, isPlanarWanted) return anObj - + ## Create a shell from the set of faces and shells. # @param theFacesAndShells List of faces and/or shells. # @return New GEOM_Object, containing the created shell. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_shell "Example" def MakeShell(self,theFacesAndShells): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeShell(theFacesAndShells) RaiseIfFailed("MakeShell", self.ShapesOp) return anObj - + ## Create a solid, bounded by the given shells. # @param theShells Sequence of bounding shells. # @return New GEOM_Object, containing the created solid. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_solid "Example" def MakeSolid(self,theShells): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeSolidShells(theShells) RaiseIfFailed("MakeSolidShells", self.ShapesOp) return anObj - + ## Create a compound of the given shapes. # @param theShapes List of shapes to put in compound. # @return New GEOM_Object, containing the created compound. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_compound "Example" def MakeCompound(self,theShapes): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeCompound(theShapes) RaiseIfFailed("MakeCompound", self.ShapesOp) return anObj - + + # end of l3_advanced + ## @} + + ## @addtogroup l2_measure + ## @{ + ## Gives quantity of faces in the given shape. # @param theShape Shape to count faces of. # @return Quantity of faces. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def NumberOfFaces(self,theShape): + # Example: see GEOM_TestOthers.py nb_faces = self.ShapesOp.NumberOfFaces(theShape) RaiseIfFailed("NumberOfFaces", self.ShapesOp) return nb_faces @@ -968,54 +1131,72 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to count edges of. # @return Quantity of edges. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def NumberOfEdges(self,theShape): + # Example: see GEOM_TestOthers.py nb_edges = self.ShapesOp.NumberOfEdges(theShape) RaiseIfFailed("NumberOfEdges", self.ShapesOp) return nb_edges - + + # end of l2_measure + ## @} + + ## @addtogroup l3_healing + ## @{ + ## Reverses an orientation the given shape. # @param theShape Shape to be reversed. # @return The reversed copy of theShape. # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def ChangeOrientation(self,theShape): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.ChangeOrientation(theShape) RaiseIfFailed("ChangeOrientation", self.ShapesOp) return anObj - + ## Shortcut to ChangeOrientation() # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def OrientationChange(self,theShape): + # Example: see GEOM_TestOthers.py anObj = self.ChangeOrientation(theShape) return anObj - + + # end of l3_healing + ## @} + + ## @addtogroup l4_obtain + ## @{ + ## Retrieve all free faces from the given shape. # Free face is a face, which is not shared between two shells of the shape. # @param theShape Shape to find free faces in. # @return List of IDs of all free faces, contained in theShape. # - # Example: see GEOM_TestOthers.py + # @ref tui_measurement_tools_page "Example" def GetFreeFacesIDs(self,theShape): + # Example: see GEOM_TestOthers.py anIDs = self.ShapesOp.GetFreeFacesIDs(theShape) RaiseIfFailed("GetFreeFacesIDs", self.ShapesOp) return anIDs - + ## Get all sub-shapes of theShape1 of the given type, shared with theShape2. # @param theShape1 Shape to find sub-shapes in. # @param theShape2 Shape to find shared sub-shapes with. # @param theShapeType Type of sub-shapes to be retrieved. # @return List of sub-shapes of theShape1, shared with theShape2. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetSharedShapes(self,theShape1, theShape2, theShapeType): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType) RaiseIfFailed("GetSharedShapes", self.ShapesOp) return aList - - ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively - # the specified plane by the certain way, defined through \a theState parameter. + + ## Find in theShape all sub-shapes of type theShapeType, + # situated relatively the specified plane by the certain way, + # defined through theState parameter. # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theAx1 Vector (or line, or linear edge), specifying normal @@ -1024,45 +1205,52 @@ class geompyDC(GEOM._objref_GEOM_Gen): # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetShapesOnPlane(self,theShape, theShapeType, theAx1, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState) RaiseIfFailed("GetShapesOnPlane", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetShapesOnPlaneIDs(self,theShape, theShapeType, theAx1, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState) RaiseIfFailed("GetShapesOnPlaneIDs", self.ShapesOp) return aList - - ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively - # the specified plane by the certain way, defined through \a theState parameter. + + ## Find in theShape all sub-shapes of type theShapeType, + # situated relatively the specified plane by the certain way, + # defined through theState parameter. # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theAx1 Vector (or line, or linear edge), specifying normal # direction of the plane to find shapes on. # @param thePnt Point specifying location of the plane to find shapes on. # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py - def GetShapesOnPlaneWithLocation(self,theShape, theShapeType, theAx1, thePnt, theState): - aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType, theAx1, thePnt, theState) + # @ref tui_todo "Example" + def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType, + theAx1, thePnt, theState) RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py - def GetShapesOnPlaneWithLocationIDs(self,theShape, theShapeType, theAx1, thePnt, theState): - aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType, theAx1, thePnt, theState) + # @ref tui_todo "Example" + def GetShapesOnPlaneWithLocationIDs(self, theShape, theShapeType, theAx1, thePnt, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType, + theAx1, thePnt, theState) RaiseIfFailed("GetShapesOnPlaneWithLocationIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified cylinder by the certain way, defined through \a theState parameter. # @param theShape Shape to find sub-shapes of. @@ -1074,20 +1262,22 @@ class geompyDC(GEOM._objref_GEOM_Gen): # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py - def GetShapesOnCylinder(self,theShape, theShapeType, theAxis, theRadius, theState): + # @ref tui_todo "Example" + def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState) RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py - def GetShapesOnCylinderIDs(self,theShape, theShapeType, theAxis, theRadius, theState): + # @ref tui_todo "Example" + def GetShapesOnCylinderIDs(self, theShape, theShapeType, theAxis, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState) RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified sphere by the certain way, defined through \a theState parameter. # @param theShape Shape to find sub-shapes of. @@ -1098,20 +1288,22 @@ class geompyDC(GEOM._objref_GEOM_Gen): # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetShapesOnSphere(self,theShape, theShapeType, theCenter, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState) RaiseIfFailed("GetShapesOnSphere", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetShapesOnSphereIDs(self,theShape, theShapeType, theCenter, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState) RaiseIfFailed("GetShapesOnSphereIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified quadrangle by the certain way, defined through \a theState parameter. # @param theShape Shape to find sub-shapes of. @@ -1121,44 +1313,55 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py - def GetShapesOnQuadrangle(self,theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState): - aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState) + # @ref tui_todo "Example" + def GetShapesOnQuadrangle(self, theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState) RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py - def GetShapesOnQuadrangleIDs(self,theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState): - aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState) + # @ref tui_todo "Example" + def GetShapesOnQuadrangleIDs(self, theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState) RaiseIfFailed("GetShapesOnQuadrangleIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified \a theBox by the certain way, defined through \a theState parameter. # @param theBox Shape for relative comparing. # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # + # @ref tui_todo "Example" def GetShapesOnBox(self,theBox, theShape, theShapeType, theState): aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState) RaiseIfFailed("GetShapesOnBox", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # def GetShapesOnBoxIDs(self,theBox, theShape, theShapeType, theState): aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState) RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, # situated relatively the specified \a theCheckShape by the # certain way, defined through \a theState parameter. @@ -1166,9 +1369,10 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # + # @ref tui_todo "Example" def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState): aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape, theShapeType, theState) @@ -1182,7 +1386,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): theShapeType, theState) RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp) return anObj - + ## Works like the above method, but returns list of sub-shapes indices # def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState): @@ -1190,19 +1394,20 @@ class geompyDC(GEOM._objref_GEOM_Gen): theShapeType, theState) RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp) return aList - + ## Get sub-shape(s) of theShapeWhere, which are # coincident with \a theShapeWhat or could be a part of it. # @param theShapeWhere Shape to find sub-shapes of. # @param theShapeWhat Shape, specifying what to find. # @return Group of all found sub-shapes or a single found sub-shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetInPlace(self,theShapeWhere, theShapeWhat): + # Example: see GEOM_TestOthers.py anObj = self.ShapesOp.GetInPlace(theShapeWhere, theShapeWhat) RaiseIfFailed("GetInPlace", self.ShapesOp) return anObj - + ## Get sub-shape(s) of \a theShapeWhere, which are # coincident with \a theShapeWhat or could be a part of it. # @@ -1217,8 +1422,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # building history of the ShapeWhere). # @return Group of all found sub-shapes or a single found sub-shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat): + # Example: see GEOM_TestOthers.py anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat) RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp) return anObj @@ -1229,83 +1435,97 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShapeWhat Shape, specifying what to find. # @return New GEOM_Object for found sub-shape. # + # @ref tui_todo "Example" def GetSame(self,theShapeWhere, theShapeWhat): anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat) RaiseIfFailed("GetSame", self.ShapesOp) return anObj - - # ----------------------------------------------------------------------------- - # Access to sub-shapes by their unique IDs inside the main shape. - # ----------------------------------------------------------------------------- - - ## Obtain a composite sub-shape of , composed from sub-shapes - # of , selected by their unique IDs inside + + # end of l4_obtain + ## @} + + ## @addtogroup l4_access + ## @{ + + ## Obtain a composite sub-shape of aShape, composed from sub-shapes + # of aShape, selected by their unique IDs inside aShape # - # Example: see GEOM_TestAll.py - def GetSubShape(self,aShape, ListOfID): + # @ref tui_todo "Example" + def GetSubShape(self, aShape, ListOfID): + # Example: see GEOM_TestAll.py anObj = self.AddSubShape(aShape,ListOfID) return anObj - - ## Obtain unique ID of sub-shape inside + + ## Obtain unique ID of sub-shape aSubShape inside aShape # - # Example: see GEOM_TestAll.py - def GetSubShapeID(self,aShape, aSubShape): + # @ref tui_todo "Example" + def GetSubShapeID(self, aShape, aSubShape): + # Example: see GEOM_TestAll.py anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape) RaiseIfFailed("GetSubShapeIndex", self.LocalOp) return anID - - # ----------------------------------------------------------------------------- - # Decompose objects - # ----------------------------------------------------------------------------- - + + # end of l4_access + ## @} + + ## @addtogroup l4_decompose Decompose objects + ## @{ + ## Explode a shape on subshapes of a given type. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of sub-shapes of type theShapeType, contained in theShape. # - # Example: see GEOM_TestAll.py - def SubShapeAll(self,aShape, aType): + # @ref tui_todo "Example" + def SubShapeAll(self, aShape, aType): + # Example: see GEOM_TestAll.py ListObj = self.ShapesOp.MakeExplode(aShape,aType,0) RaiseIfFailed("MakeExplode", self.ShapesOp) return ListObj - + ## Explode a shape on subshapes of a given type. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of IDs of sub-shapes. - def SubShapeAllIDs(self,aShape, aType): + # + # @ref tui_todo "Example" + def SubShapeAllIDs(self, aShape, aType): ListObj = self.ShapesOp.SubShapeAllIDs(aShape,aType,0) RaiseIfFailed("SubShapeAllIDs", self.ShapesOp) return ListObj - + ## Explode a shape on subshapes of a given type. # Sub-shapes will be sorted by coordinates of their gravity centers. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of sub-shapes of type theShapeType, contained in theShape. # - # Example: see GEOM_TestAll.py - def SubShapeAllSorted(self,aShape, aType): + # @ref tui_working_with_groups_page "Example" + def SubShapeAllSorted(self, aShape, aType): + # Example: see GEOM_TestAll.py ListObj = self.ShapesOp.MakeExplode(aShape,aType,1) RaiseIfFailed("MakeExplode", self.ShapesOp) return ListObj - + ## Explode a shape on subshapes of a given type. # Sub-shapes will be sorted by coordinates of their gravity centers. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of IDs of sub-shapes. - def SubShapeAllSortedIDs(self,aShape, aType): + # + # @ref tui_todo "Example" + def SubShapeAllSortedIDs(self, aShape, aType): ListIDs = self.ShapesOp.SubShapeAllIDs(aShape,aType,1) RaiseIfFailed("SubShapeAllIDs", self.ShapesOp) return ListIDs - - ## Obtain a compound of sub-shapes of , - # selected by they indices in list of all sub-shapes of type . + + ## Obtain a compound of sub-shapes of aShape, + # selected by they indices in list of all sub-shapes of type aType. # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type] # - # Example: see GEOM_TestAll.py - def SubShape(self,aShape, aType, ListOfInd): + # @ref tui_todo "Example" + def SubShape(self, aShape, aType, ListOfInd): + # Example: see GEOM_TestAll.py ListOfIDs = [] AllShapeList = self.SubShapeAll(aShape, aType) for ind in ListOfInd: @@ -1313,54 +1533,60 @@ class geompyDC(GEOM._objref_GEOM_Gen): anObj = self.GetSubShape(aShape, ListOfIDs) return anObj - ## Obtain a compound of sub-shapes of , - # selected by they indices in sorted list of all sub-shapes of type . + ## Obtain a compound of sub-shapes of aShape, + # selected by they indices in sorted list of all sub-shapes of type aType. # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type] # - # Example: see GEOM_TestAll.py + # @ref tui_todo "Example" def SubShapeSorted(self,aShape, aType, ListOfInd): + # Example: see GEOM_TestAll.py ListOfIDs = [] AllShapeList = self.SubShapeAllSorted(aShape, aType) for ind in ListOfInd: ListOfIDs.append(self.GetSubShapeID(aShape, AllShapeList[ind - 1])) anObj = self.GetSubShape(aShape, ListOfIDs) return anObj - - # ----------------------------------------------------------------------------- - # Healing operations - # ----------------------------------------------------------------------------- - + + # end of l4_decompose + ## @} + + ## @addtogroup l3_healing + ## @{ + ## Apply a sequence of Shape Healing operators to the given object. # @param theShape Shape to be processed. # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.). # @param theParameters List of names of parameters # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.). # @param theValues List of values of parameters, in the same order - # as parameters are listed in \a theParameters list. + # as parameters are listed in theParameters list. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_shape_processing "Example" def ProcessShape(self,theShape, theOperators, theParameters, theValues): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues) RaiseIfFailed("ProcessShape", self.HealOp) return anObj - + ## Remove faces from the given object (shape). # @param theObject Shape to be processed. # @param theFaces Indices of faces to be removed, if EMPTY then the method # removes ALL faces of the given object. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_suppress_faces "Example" def SuppressFaces(self,theObject, theFaces): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.SuppressFaces(theObject, theFaces) RaiseIfFailed("SuppressFaces", self.HealOp) return anObj ## Sewing of some shapes into single shape. # - # Example: see GEOM_TestHealing.py - def MakeSewing(self,ListShape, theTolerance): + # @ref tui_sewing "Example" + def MakeSewing(self, ListShape, theTolerance): + # Example: see GEOM_TestHealing.py comp = self.MakeCompound(ListShape) anObj = self.Sew(comp, theTolerance) return anObj @@ -1369,51 +1595,53 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theObject Shape to be processed. # @param theTolerance Required tolerance value. # @return New GEOM_Object, containing processed shape. - # - # Example: see MakeSewing() above - def Sew(self,theObject, theTolerance): + def Sew(self, theObject, theTolerance): + # Example: see MakeSewing() above anObj = self.HealOp.Sew(theObject, theTolerance) RaiseIfFailed("Sew", self.HealOp) return anObj - + ## Remove internal wires and edges from the given object (face). # @param theObject Shape to be processed. # @param theWires Indices of wires to be removed, if EMPTY then the method # removes ALL internal wires of the given object. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_suppress_internal_wires "Example" def SuppressInternalWires(self,theObject, theWires): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.RemoveIntWires(theObject, theWires) RaiseIfFailed("RemoveIntWires", self.HealOp) return anObj - + ## Remove internal closed contours (holes) from the given object. # @param theObject Shape to be processed. # @param theWires Indices of wires to be removed, if EMPTY then the method # removes ALL internal holes of the given object # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_suppress_holes "Example" def SuppressHoles(self,theObject, theWires): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.FillHoles(theObject, theWires) RaiseIfFailed("FillHoles", self.HealOp) return anObj - + ## Close an open wire. # @param theObject Shape to be processed. # @param theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape, - # if -1, then theObject itself is a wire. + # if -1, then theObject itself is a wire. # @param isCommonVertex If TRUE : closure by creation of a common vertex, # If FALS : closure by creation of an edge between ends. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_close_contour "Example" def CloseContour(self,theObject, theWires, isCommonVertex): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex) RaiseIfFailed("CloseContour", self.HealOp) return anObj - + ## Addition of a point to a given edge object. # @param theObject Shape to be processed. # @param theEdgeIndex Index of edge to be divided within theObject's shape, @@ -1424,28 +1652,33 @@ class geompyDC(GEOM._objref_GEOM_Gen): # if FALSE : \a theValue is treated as a length parameter [0..1] # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_add_point_on_edge "Example" def DivideEdge(self,theObject, theEdgeIndex, theValue, isByParameter): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter) RaiseIfFailed("DivideEdge", self.HealOp) return anObj - + ## Change orientation of the given object. # @param theObject Shape to be processed. # @update given shape + # + # @ref tui_todo "Example" def ChangeOrientationShell(self,theObject): theObject = self.HealOp.ChangeOrientation(theObject) RaiseIfFailed("ChangeOrientation", self.HealOp) pass - + ## Change orientation of the given object. # @param theObject Shape to be processed. # @return New GEOM_Object, containing processed shape. + # + # @ref tui_todo "Example" def ChangeOrientationShellCopy(self,theObject): anObj = self.HealOp.ChangeOrientationCopy(theObject) RaiseIfFailed("ChangeOrientationCopy", self.HealOp) return anObj - + ## Get a list of wires (wrapped in GEOM_Object-s), # that constitute a free boundary of the given shape. # @param theObject Shape to get free boundary of. @@ -1454,39 +1687,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # theClosedWires: Closed wires on the free boundary of the given shape. # theOpenWires: Open wires on the free boundary of the given shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_measurement_tools_page "Example" def GetFreeBoundary(self,theObject): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.GetFreeBoundary(theObject) RaiseIfFailed("GetFreeBoundary", self.HealOp) return anObj - - # ----------------------------------------------------------------------------- - # Create advanced objects - # ----------------------------------------------------------------------------- - - ## Create a copy of the given object - # - # Example: see GEOM_TestAll.py - def MakeCopy(self,theOriginal): - anObj = self.InsertOp.MakeCopy(theOriginal) - RaiseIfFailed("MakeCopy", self.InsertOp) - return anObj - - ## Create a filling from the given compound of contours. - # @param theShape the compound of contours - # @param theMinDeg a minimal degree of BSpline surface to create - # @param theMaxDeg a maximal degree of BSpline surface to create - # @param theTol2D a 2d tolerance to be reached - # @param theTol3D a 3d tolerance to be reached - # @param theNbIter a number of iteration of approximation algorithm - # @return New GEOM_Object, containing the created filling surface. - # - # Example: see GEOM_TestAll.py - def MakeFilling(self,theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox=0): - anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox) - RaiseIfFailed("MakeFilling", self.PrimOp) - return anObj - + ## Replace coincident faces in theShape by one face. # @param theShape Initial shape. # @param theTolerance Maximum distance between faces, which can be considered as coincident. @@ -1494,27 +1701,27 @@ class geompyDC(GEOM._objref_GEOM_Gen): # otherwise all initial shapes. # @return New GEOM_Object, containing a copy of theShape without coincident faces. # - # Example: see GEOM_Spanner.py + # @ref tui_glue_faces "Example" def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True): + # Example: see GEOM_Spanner.py anObj = self.ShapesOp.MakeGlueFaces(theShape, theTolerance, doKeepNonSolids) if anObj is None: raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode() return anObj - - + ## Find coincident faces in theShape for possible gluing. # @param theShape Initial shape. # @param theTolerance Maximum distance between faces, # which can be considered as coincident. # @return ListOfGO. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetGlueFaces(self, theShape, theTolerance): + # Example: see GEOM_Spanner.py anObj = self.ShapesOp.GetGlueFaces(theShape, theTolerance) RaiseIfFailed("GetGlueFaces", self.ShapesOp) return anObj - - + ## Replace coincident faces in theShape by one face # in compliance with given list of faces # @param theShape Initial shape. @@ -1526,18 +1733,24 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing a copy of theShape # without some faces. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def MakeGlueFacesByList(self, theShape, theTolerance, theFaces, doKeepNonSolids=True): + # Example: see GEOM_Spanner.py anObj = self.ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids) if anObj is None: raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode() return anObj - - + + # end of l3_healing + ## @} + + ## @addtogroup l3_boolean Boolean Operations + ## @{ + # ----------------------------------------------------------------------------- # Boolean (Common, Cut, Fuse, Section) # ----------------------------------------------------------------------------- - + ## Perform one of boolean operations on two given shapes. # @param theShape1 First argument for boolean operation. # @param theShape2 Second argument for boolean operation. @@ -1545,36 +1758,47 @@ class geompyDC(GEOM._objref_GEOM_Gen): # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_fuse "Example" def MakeBoolean(self,theShape1, theShape2, theOperation): + # Example: see GEOM_TestAll.py anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation) RaiseIfFailed("MakeBoolean", self.BoolOp) return anObj - + ## Shortcut to MakeBoolean(s1, s2, 1) # - # Example: see GEOM_TestOthers.py + # @ref tui_common "Example" def MakeCommon(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 1) ## Shortcut to MakeBoolean(s1, s2, 2) # - # Example: see GEOM_TestOthers.py + # @ref tui_cut "Example" def MakeCut(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 2) - + ## Shortcut to MakeBoolean(s1, s2, 3) # - # Example: see GEOM_TestOthers.py + # @ref tui_fuse "Example" def MakeFuse(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 3) - + ## Shortcut to MakeBoolean(s1, s2, 4) # - # Example: see GEOM_TestOthers.py + # @ref tui_section "Example" def MakeSection(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 4) - + + # end of l3_boolean + ## @} + + ## @addtogroup l3_basic_op + ## @{ + ## Perform partition operation. # @param ListShapes Shapes to be intersected. # @param ListTools Shapes to intersect theShapes. @@ -1601,17 +1825,18 @@ class geompyDC(GEOM._objref_GEOM_Gen): # # @return New GEOM_Object, containing the result shapes. # - # Example: see GEOM_TestAll.py + # @ref tui_partition "Example" def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[], KeepNonlimitShapes=0): + # Example: see GEOM_TestAll.py anObj = self.BoolOp.MakePartition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit, RemoveWebs, ListMaterials, KeepNonlimitShapes); RaiseIfFailed("MakePartition", self.BoolOp) return anObj - + ## Perform partition operation. # This method may be useful if it is needed to make a partition for # compound contains nonintersected shapes. Performance will be better @@ -1624,6 +1849,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): # # @return New GEOM_Object, containing the result shapes. # + # @ref tui_todo "Example" def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"], RemoveWebs=0, @@ -1634,34 +1860,38 @@ class geompyDC(GEOM._objref_GEOM_Gen): KeepNonlimitShapes); RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp) return anObj - + ## Shortcut to MakePartition() # - # Example: see GEOM_TestOthers.py + # @ref tui_partition "Example" def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[], KeepNonlimitShapes=0): + # Example: see GEOM_TestOthers.py anObj = self.MakePartition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit, RemoveWebs, ListMaterials, KeepNonlimitShapes); return anObj - + ## Perform partition of the Shape with the Plane # @param theShape Shape to be intersected. # @param thePlane Tool shape, to intersect theShape. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_partition "Example" def MakeHalfPartition(self,theShape, thePlane): + # Example: see GEOM_TestAll.py anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane) RaiseIfFailed("MakeHalfPartition", self.BoolOp) return anObj - - # ----------------------------------------------------------------------------- - # Transform objects - # ----------------------------------------------------------------------------- - + + # end of l3_basic_op + ## @} + + ## @addtogroup l3_transform + ## @{ + ## Translate the given object along the vector, specified # by its end points, creating its copy before the translation. # @param theObject The object to be translated. @@ -1669,32 +1899,35 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePoint2 End point of translation vector. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py + # @ref tui_translation "Example" def MakeTranslationTwoPoints(self,theObject, thePoint1, thePoint2): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2) RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp) return anObj - + ## Translate the given object along the vector, specified # by its components, creating its copy before the translation. # @param theObject The object to be translated. # @param theDX,theDY,theDZ Components of translation vector. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py + # @ref tui_translation "Example" def MakeTranslation(self,theObject, theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ) RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp) return anObj - + ## Translate the given object along the given vector, # creating its copy before the translation. # @param theObject The object to be translated. # @param theVector The translation vector. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py + # @ref tui_translation "Example" def MakeTranslationVector(self,theObject, theVector): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector) RaiseIfFailed("TranslateVectorCopy", self.TrsfOp) return anObj @@ -1706,12 +1939,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theDistance The translation distance. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py - def MakeTranslationVectorDistance(self,theObject, theVector, theDistance): + # @ref tui_translation "Example" + def MakeTranslationVectorDistance(self, theObject, theVector, theDistance): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1) RaiseIfFailed("TranslateVectorDistance", self.TrsfOp) return anObj - + ## Rotate the given object around the given axis # on the given angle, creating its copy before the rotatation. # @param theObject The object to be rotated. @@ -1719,74 +1953,80 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theAngle Rotation angle in radians. # @return New GEOM_Object, containing the rotated object. # - # Example: see GEOM_TestAll.py + # @ref tui_rotation "Example" def MakeRotation(self,theObject, theAxis, theAngle): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle) RaiseIfFailed("RotateCopy", self.TrsfOp) return anObj - + ## Rotate given object around vector perpendicular to plane # containing three points, creating its copy before the rotatation. # @param theObject The object to be rotated. # @param theCentPoint central point - the axis is the vector perpendicular to the plane # containing the three points. - # @param thePoint1 and thePoint2 - in a perpendicular plan of the axis. + # @param thePoint1,thePoint2 - in a perpendicular plane of the axis. # @return New GEOM_Object, containing the rotated object. # - # Example: see GEOM_TestAll.py + # @ref tui_rotation "Example" def MakeRotationThreePoints(self,theObject, theCentPoint, thePoint1, thePoint2): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2) RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp) return anObj - + ## Scale the given object by the factor, creating its copy before the scaling. # @param theObject The object to be scaled. # @param thePoint Center point for scaling. # @param theFactor Scaling factor value. # @return New GEOM_Object, containing the scaled shape. # - # Example: see GEOM_TestAll.py + # @ref tui_scale "Example" def MakeScaleTransform(self,theObject, thePoint, theFactor): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor) RaiseIfFailed("ScaleShapeCopy", self.TrsfOp) return anObj - + ## Create an object, symmetrical # to the given one relatively the given plane. # @param theObject The object to be mirrored. # @param thePlane Plane of symmetry. # @return New GEOM_Object, containing the mirrored shape. # - # Example: see GEOM_TestAll.py + # @ref tui_mirror "Example" def MakeMirrorByPlane(self,theObject, thePlane): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane) RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp) return anObj - + ## Create an object, symmetrical # to the given one relatively the given axis. # @param theObject The object to be mirrored. # @param theAxis Axis of symmetry. # @return New GEOM_Object, containing the mirrored shape. # - # Example: see GEOM_TestAll.py + # @ref tui_mirror "Example" def MakeMirrorByAxis(self,theObject, theAxis): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis) RaiseIfFailed("MirrorAxisCopy", self.TrsfOp) return anObj - + ## Create an object, symmetrical # to the given one relatively the given point. # @param theObject The object to be mirrored. # @param thePoint Point of symmetry. # @return New GEOM_Object, containing the mirrored shape. # - # Example: see GEOM_TestAll.py + # @ref tui_mirror "Example" def MakeMirrorByPoint(self,theObject, thePoint): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint) RaiseIfFailed("MirrorPointCopy", self.TrsfOp) return anObj - + ## Modify the Location of the given object by LCS, # creating its copy before the setting. # @param theObject The object to be displaced. @@ -1798,27 +2038,29 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theEndLCS Coordinate system to perform displacement to it. # @return New GEOM_Object, containing the displaced shape. # - # Example: see GEOM_TestAll.py + # @ref tui_modify_location "Example" def MakePosition(self,theObject, theStartLCS, theEndLCS): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS) RaiseIfFailed("PositionShapeCopy", self.TrsfOp) return anObj - + ## Create new object as offset of the given one. # @param theObject The base object for the offset. # @param theOffset Offset value. # @return New GEOM_Object, containing the offset object. # - # Example: see GEOM_TestAll.py + # @ref tui_offset "Example" def MakeOffset(self,theObject, theOffset): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset) RaiseIfFailed("OffsetShapeCopy", self.TrsfOp) return anObj - + # ----------------------------------------------------------------------------- # Patterns # ----------------------------------------------------------------------------- - + ## Translate the given object along the given vector a given number times # @param theObject The object to be translated. # @param theVector Direction of the translation. @@ -1827,12 +2069,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all # the shapes, obtained after each translation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_translation "Example" def MakeMultiTranslation1D(self,theObject, theVector, theStep, theNbTimes): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes) RaiseIfFailed("MultiTranslate1D", self.TrsfOp) return anObj - + ## Conseqently apply two specified translations to theObject specified number of times. # @param theObject The object to be translated. # @param theVector1 Direction of the first translation. @@ -1844,14 +2087,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all # the shapes, obtained after each translation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_translation "Example" def MakeMultiTranslation2D(self,theObject, theVector1, theStep1, theNbTimes1, theVector2, theStep2, theNbTimes2): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1, theVector2, theStep2, theNbTimes2) RaiseIfFailed("MultiTranslate2D", self.TrsfOp) return anObj - + ## Rotate the given object around the given axis a given number times. # Rotation angle will be 2*PI/theNbTimes. # @param theObject The object to be rotated. @@ -1860,12 +2104,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all the # shapes, obtained after each rotation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_rotation "Example" def MultiRotate1D(self,theObject, theAxis, theNbTimes): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes) RaiseIfFailed("MultiRotate1D", self.TrsfOp) return anObj - + ## Rotate the given object around the # given axis on the given angle a given number # times and multi-translate each rotation result. @@ -1880,53 +2125,56 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all the # shapes, obtained after each transformation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_rotation "Example" def MultiRotate2D(self,theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2) RaiseIfFailed("MultiRotate2D", self.TrsfOp) return anObj - + ## The same, as MultiRotate1D(), but axis is given by direction and point - # - # Example: see GEOM_TestOthers.py def MakeMultiRotation1D(self,aShape,aDir,aPoint,aNbTimes): + # Example: see GEOM_TestOthers.py aVec = self.MakeLine(aPoint,aDir) anObj = self.MultiRotate1D(aShape,aVec,aNbTimes) return anObj - + ## The same, as MultiRotate2D(), but axis is given by direction and point - # - # Example: see GEOM_TestOthers.py def MakeMultiRotation2D(self,aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2): + # Example: see GEOM_TestOthers.py aVec = self.MakeLine(aPoint,aDir) anObj = self.MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2) return anObj - - # ----------------------------------------------------------------------------- - # Local operations - # ----------------------------------------------------------------------------- - + + # end of l3_transform + ## @} + + ## @addtogroup l3_local + ## @{ + ## Perform a fillet on all edges of the given shape. # @param theShape Shape, to perform fillet on. # @param theR Fillet radius. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_fillet "Example" def MakeFilletAll(self,theShape, theR): + # Example: see GEOM_TestOthers.py anObj = self.LocalOp.MakeFilletAll(theShape, theR) RaiseIfFailed("MakeFilletAll", self.LocalOp) return anObj - + ## Perform a fillet on the specified edges/faces of the given shape # @param theShape Shape, to perform fillet on. # @param theR Fillet radius. - # @param theShapeType Type of shapes in . + # @param theShapeType Type of shapes in theListShapes. # @param theListShapes Global indices of edges/faces to perform fillet on. # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_fillet "Example" def MakeFillet(self,theShape, theR, theShapeType, theListShapes): + # Example: see GEOM_TestAll.py anObj = None if theShapeType == ShapeType["EDGE"]: anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes) @@ -1935,7 +2183,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes) RaiseIfFailed("MakeFilletFaces", self.LocalOp) return anObj - + ## The same that MakeFillet but with two Fillet Radius R1 and R2 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes): anObj = None @@ -1946,18 +2194,19 @@ class geompyDC(GEOM._objref_GEOM_Gen): anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes) RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp) return anObj - + ## Perform a symmetric chamfer on all edges of the given shape. # @param theShape Shape, to perform chamfer on. # @param theD Chamfer size along each face. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_chamfer "Example" def MakeChamferAll(self,theShape, theD): + # Example: see GEOM_TestOthers.py anObj = self.LocalOp.MakeChamferAll(theShape, theD) RaiseIfFailed("MakeChamferAll", self.LocalOp) return anObj - + ## Perform a chamfer on edges, common to the specified faces, # with distance D1 on the Face1 # @param theShape Shape, to perform chamfer on. @@ -1967,19 +2216,20 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_chamfer "Example" def MakeChamferEdge(self,theShape, theD1, theD2, theFace1, theFace2): + # Example: see GEOM_TestAll.py anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2) RaiseIfFailed("MakeChamferEdge", self.LocalOp) return anObj - + ## The Same that MakeChamferEdge but with params theD is chamfer lenght and # theAngle is Angle of chamfer (angle in radians) def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2): anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2) RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp) return anObj - + ## Perform a chamfer on all edges of the specified faces, # with distance D1 on the first specified face (if several for one edge) # @param theShape Shape, to perform chamfer on. @@ -1991,50 +2241,58 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_chamfer "Example" def MakeChamferFaces(self,theShape, theD1, theD2, theFaces): + # Example: see GEOM_TestAll.py anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces) RaiseIfFailed("MakeChamferFaces", self.LocalOp) return anObj - + ## The Same that MakeChamferFaces but with params theD is chamfer lenght and # theAngle is Angle of chamfer (angle in radians) def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces): anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces) RaiseIfFailed("MakeChamferFacesAD", self.LocalOp) return anObj - + ## Perform a chamfer on edges, # with distance D1 on the first specified face (if several for one edge) # @param theShape Shape, to perform chamfer on. - # @param theD1 and theD2 Chamfer size + # @param theD1,theD2 Chamfer size # @param theEdges Sequence of edges of \a theShape. # @return New GEOM_Object, containing the result shape. # - # Example: + # @ref tui_todo "Example" def MakeChamferEdges(self, theShape, theD1, theD2, theEdges): anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges) RaiseIfFailed("MakeChamferEdges", self.LocalOp) return anObj - + ## The Same that MakeChamferEdges but with params theD is chamfer lenght and # theAngle is Angle of chamfer (angle in radians) + # + # @ref tui_todo "Example" def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges): anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges) RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp) return anObj - + ## Shortcut to MakeChamferEdge() and MakeChamferFaces() - # - # Example: see GEOM_TestOthers.py def MakeChamfer(self,aShape,d1,d2,aShapeType,ListShape): + # Example: see GEOM_TestOthers.py anObj = None if aShapeType == ShapeType["EDGE"]: anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1]) else: anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape) return anObj - + + # end of l3_local + ## @} + + ## @addtogroup l3_basic_op + ## @{ + ## Perform an Archimde operation on the given shape with given parameters. # The object presenting the resulting face is returned. # @param theShape Shape to be put in water. @@ -2044,25 +2302,29 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing a section of \a theShape # by a plane, corresponding to water level. # - # Example: see GEOM_TestAll.py + # @ref tui_archimede "Example" def Archimede(self,theShape, theWeight, theWaterDensity, theMeshDeflection): + # Example: see GEOM_TestAll.py anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection) RaiseIfFailed("MakeArchimede", self.LocalOp) return anObj - - # ----------------------------------------------------------------------------- - # Information objects - # ----------------------------------------------------------------------------- - + + # end of l3_basic_op + ## @} + + ## @addtogroup l2_measure + ## @{ + ## Get point coordinates # @return [x, y, z] # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def PointCoordinates(self,Point): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.PointCoordinates(Point) RaiseIfFailed("PointCoordinates", self.MeasuOp) return aTuple - + ## Get summarized length of all wires, # area of surface and volume of the given shape. # @param theShape Shape to define properties of. @@ -2071,12 +2333,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # theSurfArea: Area of surface of the given shape. # theVolume: Volume of the given shape. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def BasicProperties(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetBasicProperties(theShape) RaiseIfFailed("GetBasicProperties", self.MeasuOp) return aTuple - + ## Get parameters of bounding box of the given shape # @param theShape Shape to obtain bounding box of. # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax] @@ -2084,30 +2347,33 @@ class geompyDC(GEOM._objref_GEOM_Gen): # Ymin,Ymax: Limits of shape along OY axis. # Zmin,Zmax: Limits of shape along OZ axis. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def BoundingBox(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetBoundingBox(theShape) RaiseIfFailed("GetBoundingBox", self.MeasuOp) return aTuple - + ## Get inertia matrix and moments of inertia of theShape. # @param theShape Shape to calculate inertia of. # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz] # I(1-3)(1-3): Components of the inertia matrix of the given shape. # Ix,Iy,Iz: Moments of inertia of the given shape. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def Inertia(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetInertia(theShape) RaiseIfFailed("GetInertia", self.MeasuOp) return aTuple - + ## Get minimal distance between the given shapes. # @param theShape1,theShape2 Shapes to find minimal distance between. # @return Value of the minimal distance between the given shapes. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def MinDistance(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2) RaiseIfFailed("GetMinDistance", self.MeasuOp) return aTuple[0] @@ -2116,8 +2382,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape1,theShape2 Shapes to find minimal distance between. # @return Value of the minimal distance between the given shapes. # - # Example: see GEOM_TestMeasures.py + # @ref tui_todo "Example" def MinDistanceComponents(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2) RaiseIfFailed("GetMinDistance", self.MeasuOp) aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]] @@ -2127,45 +2394,68 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape1,theShape2 Lines or linear edges to find angle between. # @return Value of the angle between the given shapes. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def GetAngle(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py anAngle = self.MeasuOp.GetAngle(theShape1, theShape2) RaiseIfFailed("GetAngle", self.MeasuOp) return anAngle - ## Methods for recieving radius of curvature of curves + ## @name Curve Curvature Measurement + # Methods for receiving radius of curvature of curves # in the given point - # - # Example: see GEOM_TestMeasures.py + ## @{ + + ## Measure curvature of a curve at a point, set by parameter. + # @ref tui_todo "Example" def CurveCurvatureByParam(self, theCurve, theParam): + # Example: see GEOM_TestMeasures.py aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam) RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp) return aCurv + + ## @details + # @ref tui_todo "Example" def CurveCurvatureByPoint(self, theCurve, thePoint): aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint) RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp) return aCurv + ## @} - ## Methods for recieving max and min radius of curvature of surfaces + ## @name Surface Curvature Measurement + # Methods for receiving max and min radius of curvature of surfaces # in the given point - # - # Example: see GEOM_TestMeasures.py + ## @{ + + ## @details + ## @ref tui_todo "Example" def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam): + # Example: see GEOM_TestMeasures.py aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam) RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp) return aSurf + + ## @details + ## @ref tui_todo "Example" def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint): aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint) RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp) return aSurf + + ## @details + ## @ref tui_todo "Example" def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam): aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam) RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp) return aSurf + + ## @details + ## @ref tui_todo "Example" def MinSurfaceCurvatureByPoint(self, theSurf, thePoint): aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint) RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp) return aSurf + ## @} ## Get min and max tolerances of sub-shapes of theShape # @param theShape Shape, to get tolerances of. @@ -2174,8 +2464,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # EdgeMin,EdgeMax: Min and max tolerances of the edges. # VertMin,VertMax: Min and max tolerances of the vertices. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def Tolerance(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetTolerance(theShape) RaiseIfFailed("GetTolerance", self.MeasuOp) return aTuple @@ -2184,34 +2475,37 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to be described. # @return Description of the given shape. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def WhatIs(self,theShape): + # Example: see GEOM_TestMeasures.py aDescr = self.MeasuOp.WhatIs(theShape) RaiseIfFailed("WhatIs", self.MeasuOp) return aDescr - + ## Get a point, situated at the centre of mass of theShape. # @param theShape Shape to define centre of mass of. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def MakeCDG(self,theShape): + # Example: see GEOM_TestMeasures.py anObj = self.MeasuOp.GetCentreOfMass(theShape) RaiseIfFailed("GetCentreOfMass", self.MeasuOp) return anObj - + ## Get a normale to the given face. If the point is not given, # the normale is calculated at the center of mass. # @param theFace Face to define normale of. # @param theOptionalPoint Point to compute the normale at. # @return New GEOM_Object, containing the created vector. # - # Example: see GEOM_TestMeasures.py + # @ref tui_todo "Example" def GetNormal(self, theFace, theOptionalPoint = None): + # Example: see GEOM_TestMeasures.py anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint) RaiseIfFailed("GetNormal", self.MeasuOp) return anObj - + ## Check a topology of the given shape. # @param theShape Shape to check validity of. # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, @@ -2219,8 +2513,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return TRUE, if the shape "seems to be valid". # If theShape is invalid, prints a description of problem. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def CheckShape(self,theShape, theIsCheckGeom = 0): + # Example: see GEOM_TestMeasures.py if theIsCheckGeom: (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape) RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp) @@ -2230,7 +2525,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): if IsValid == 0: print Status return IsValid - + ## Get position (LCS) of theShape. # # Origin of the LCS is situated at the shape's center of mass. @@ -2243,12 +2538,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction. # Xx,Xy,Xz: Coordinates of shape's LCS X direction. # - # Example: see GEOM_TestMeasures.py + # @ref tui_todo "Example" def GetPosition(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetPosition(theShape) RaiseIfFailed("GetPosition", self.MeasuOp) return aTuple - + ## Get kind of theShape. # # @param theShape Shape to get a kind of. @@ -2258,69 +2554,72 @@ class geompyDC(GEOM._objref_GEOM_Gen): # or \a theDoubles list depends on the kind of the shape. # The full list of possible outputs is: # - # geompy.kind.COMPOUND nb_solids nb_faces nb_edges nb_vertices - # geompy.kind.COMPSOLID nb_solids nb_faces nb_edges nb_vertices - # - # geompy.kind.SHELL geompy.info.CLOSED nb_faces nb_edges nb_vertices - # geompy.kind.SHELL geompy.info.UNCLOSED nb_faces nb_edges nb_vertices - # - # geompy.kind.WIRE geompy.info.CLOSED nb_edges nb_vertices - # geompy.kind.WIRE geompy.info.UNCLOSED nb_edges nb_vertices - # - # geompy.kind.SPHERE xc yc zc R - # geompy.kind.CYLINDER xb yb zb dx dy dz R H - # geompy.kind.BOX xc yc zc ax ay az - # geompy.kind.ROTATED_BOX xc yc zc zx zy zz xx xy xz ax ay az - # geompy.kind.TORUS xc yc zc dx dy dz R_1 R_2 - # geompy.kind.CONE xb yb zb dx dy dz R_1 R_2 H - # geompy.kind.POLYHEDRON nb_faces nb_edges nb_vertices - # geompy.kind.SOLID nb_faces nb_edges nb_vertices - # - # geompy.kind.SPHERE2D xc yc zc R - # geompy.kind.CYLINDER2D xb yb zb dx dy dz R H - # geompy.kind.TORUS2D xc yc zc dx dy dz R_1 R_2 - # geompy.kind.CONE2D xc yc zc dx dy dz R_1 R_2 H - # geompy.kind.DISK_CIRCLE xc yc zc dx dy dz R - # geompy.kind.DISK_ELLIPSE xc yc zc dx dy dz R_1 R_2 - # geompy.kind.POLYGON xo yo zo dx dy dz nb_edges nb_vertices - # geompy.kind.PLANE xo yo zo dx dy dz - # geompy.kind.PLANAR xo yo zo dx dy dz nb_edges nb_vertices - # geompy.kind.FACE nb_edges nb_vertices - # - # geompy.kind.CIRCLE xc yc zc dx dy dz R - # geompy.kind.ARC_CIRCLE xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2 - # geompy.kind.ELLIPSE xc yc zc dx dy dz R_1 R_2 - # geompy.kind.ARC_ELLIPSE xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2 - # geompy.kind.LINE xo yo zo dx dy dz - # geompy.kind.SEGMENT x1 y1 z1 x2 y2 z2 - # geompy.kind.EDGE nb_vertices - # - # geompy.kind.VERTEX x y z - # - # Example: see GEOM_TestMeasures.py + # - geompy.kind.COMPOUND nb_solids nb_faces nb_edges nb_vertices + # - geompy.kind.COMPSOLID nb_solids nb_faces nb_edges nb_vertices + # + # - geompy.kind.SHELL geompy.info.CLOSED nb_faces nb_edges nb_vertices + # - geompy.kind.SHELL geompy.info.UNCLOSED nb_faces nb_edges nb_vertices + # + # - geompy.kind.WIRE geompy.info.CLOSED nb_edges nb_vertices + # - geompy.kind.WIRE geompy.info.UNCLOSED nb_edges nb_vertices + # + # - geompy.kind.SPHERE xc yc zc R + # - geompy.kind.CYLINDER xb yb zb dx dy dz R H + # - geompy.kind.BOX xc yc zc ax ay az + # - geompy.kind.ROTATED_BOX xc yc zc zx zy zz xx xy xz ax ay az + # - geompy.kind.TORUS xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.CONE xb yb zb dx dy dz R_1 R_2 H + # - geompy.kind.POLYHEDRON nb_faces nb_edges nb_vertices + # - geompy.kind.SOLID nb_faces nb_edges nb_vertices + # + # - geompy.kind.SPHERE2D xc yc zc R + # - geompy.kind.CYLINDER2D xb yb zb dx dy dz R H + # - geompy.kind.TORUS2D xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.CONE2D xc yc zc dx dy dz R_1 R_2 H + # - geompy.kind.DISK_CIRCLE xc yc zc dx dy dz R + # - geompy.kind.DISK_ELLIPSE xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.POLYGON xo yo zo dx dy dz nb_edges nb_vertices + # - geompy.kind.PLANE xo yo zo dx dy dz + # - geompy.kind.PLANAR xo yo zo dx dy dz nb_edges nb_vertices + # - geompy.kind.FACE nb_edges nb_vertices + # + # - geompy.kind.CIRCLE xc yc zc dx dy dz R + # - geompy.kind.ARC_CIRCLE xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2 + # - geompy.kind.ELLIPSE xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.ARC_ELLIPSE xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2 + # - geompy.kind.LINE xo yo zo dx dy dz + # - geompy.kind.SEGMENT x1 y1 z1 x2 y2 z2 + # - geompy.kind.EDGE nb_vertices + # + # - geompy.kind.VERTEX x y z + # + # @ref tui_todo "Example" def KindOfShape(self,theShape): + # Example: see GEOM_TestMeasures.py aRoughTuple = self.MeasuOp.KindOfShape(theShape) RaiseIfFailed("KindOfShape", self.MeasuOp) - + aKind = aRoughTuple[0] anInts = aRoughTuple[1] aDbls = aRoughTuple[2] - + # Now there is no exception from this rule: aKindTuple = [aKind] + aDbls + anInts - + # If they are we will regroup parameters for such kind of shape. # For example: #if aKind == kind.SOME_KIND: # # SOME_KIND int int double int double double # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]] - + return aKindTuple - - # ----------------------------------------------------------------------------- - # Import/Export objects - # ----------------------------------------------------------------------------- - + + # end of l2_measure + ## @} + + ## @addtogroup l2_import_export + ## @{ + ## Import a shape from the BREP or IGES or STEP file # (depends on given format) with given name. # @param theFileName The file, containing the shape. @@ -2328,121 +2627,142 @@ class geompyDC(GEOM._objref_GEOM_Gen): # Available formats can be obtained with InsertOp.ImportTranslators() method. # @return New GEOM_Object, containing the imported shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def Import(self,theFileName, theFormatName): + # Example: see GEOM_TestOthers.py anObj = self.InsertOp.Import(theFileName, theFormatName) RaiseIfFailed("Import", self.InsertOp) return anObj - + ## Shortcut to Import() for BREP format # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def ImportBREP(self,theFileName): + # Example: see GEOM_TestOthers.py return self.Import(theFileName, "BREP") - + ## Shortcut to Import() for IGES format # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def ImportIGES(self,theFileName): + # Example: see GEOM_TestOthers.py return self.Import(theFileName, "IGES") - + ## Shortcut to Import() for STEP format # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def ImportSTEP(self,theFileName): + # Example: see GEOM_TestOthers.py return self.Import(theFileName, "STEP") - + ## Export the given shape into a file with given name. # @param theObject Shape to be stored in the file. # @param theFileName Name of the file to store the given shape in. # @param theFormatName Specify format for the shape storage. # Available formats can be obtained with InsertOp.ImportTranslators() method. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def Export(self,theObject, theFileName, theFormatName): + # Example: see GEOM_TestOthers.py self.InsertOp.Export(theObject, theFileName, theFormatName) if self.InsertOp.IsDone() == 0: raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode() pass pass - + ## Shortcut to Export() for BREP format # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def ExportBREP(self,theObject, theFileName): + # Example: see GEOM_TestOthers.py return self.Export(theObject, theFileName, "BREP") - + ## Shortcut to Export() for IGES format # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def ExportIGES(self,theObject, theFileName): + # Example: see GEOM_TestOthers.py return self.Export(theObject, theFileName, "IGES") - + ## Shortcut to Export() for STEP format # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def ExportSTEP(self,theObject, theFileName): + # Example: see GEOM_TestOthers.py return self.Export(theObject, theFileName, "STEP") - - # ----------------------------------------------------------------------------- - # Block operations - # ----------------------------------------------------------------------------- - + + # end of l2_import_export + ## @} + + ## @addtogroup l3_blocks + ## @{ + ## Create a quadrangle face from four edges. Order of Edges is not # important. It is not necessary that edges share the same vertex. # @param E1,E2,E3,E4 Edges for the face bound. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeQuad(self,E1, E2, E3, E4): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4) RaiseIfFailed("MakeQuad", self.BlocksOp) return anObj - + ## Create a quadrangle face on two edges. # The missing edges will be built by creating the shortest ones. # @param E1,E2 Two opposite edges for the face. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeQuad2Edges(self,E1, E2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeQuad2Edges(E1, E2) RaiseIfFailed("MakeQuad2Edges", self.BlocksOp) return anObj - + ## Create a quadrangle face with specified corners. # The missing edges will be built by creating the shortest ones. # @param V1,V2,V3,V4 Corner vertices for the face. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeQuad4Vertices(self,V1, V2, V3, V4): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4) RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp) return anObj - + ## Create a hexahedral solid, bounded by the six given faces. Order of # faces is not important. It is not necessary that Faces share the same edge. # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid. # @return New GEOM_Object, containing the created solid. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeHexa(self,F1, F2, F3, F4, F5, F6): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6) RaiseIfFailed("MakeHexa", self.BlocksOp) return anObj - + ## Create a hexahedral solid between two given faces. # The missing faces will be built by creating the smallest ones. # @param F1,F2 Two opposite faces for the hexahedral solid. # @return New GEOM_Object, containing the created solid. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeHexa2Faces(self,F1, F2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeHexa2Faces(F1, F2) RaiseIfFailed("MakeHexa2Faces", self.BlocksOp) return anObj - + + # end of l3_blocks + ## @} + + ## @addtogroup l3_blocks_op + ## @{ + ## Get a vertex, found in the given shape by its coordinates. # @param theShape Block or a compound of blocks. # @param theX,theY,theZ Coordinates of the sought vertex. @@ -2450,89 +2770,103 @@ class geompyDC(GEOM._objref_GEOM_Gen): # vertex and point with the given coordinates. # @return New GEOM_Object, containing the found vertex. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetPoint(self,theShape, theX, theY, theZ, theEpsilon): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon) RaiseIfFailed("GetPoint", self.BlocksOp) return anObj - + ## Get an edge, found in the given shape by two given vertices. # @param theShape Block or a compound of blocks. # @param thePoint1,thePoint2 Points, close to the ends of the desired edge. # @return New GEOM_Object, containing the found edge. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetEdge(self,theShape, thePoint1, thePoint2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2) RaiseIfFailed("GetEdge", self.BlocksOp) return anObj - + ## Find an edge of the given shape, which has minimal distance to the given point. # @param theShape Block or a compound of blocks. # @param thePoint Point, close to the desired edge. # @return New GEOM_Object, containing the found edge. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetEdgeNearPoint(self,theShape, thePoint): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint) RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp) return anObj - + ## Returns a face, found in the given shape by four given corner vertices. # @param theShape Block or a compound of blocks. - # @param thePoint1-thePoint4 Points, close to the corners of the desired face. + # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetFaceByPoints(self,theShape, thePoint1, thePoint2, thePoint3, thePoint4): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4) RaiseIfFailed("GetFaceByPoints", self.BlocksOp) return anObj - + ## Get a face of block, found in the given shape by two given edges. # @param theShape Block or a compound of blocks. # @param theEdge1,theEdge2 Edges, close to the edges of the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetFaceByEdges(self,theShape, theEdge1, theEdge2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2) RaiseIfFailed("GetFaceByEdges", self.BlocksOp) return anObj - + ## Find a face, opposite to the given one in the given block. # @param theBlock Must be a hexahedral solid. # @param theFace Face of \a theBlock, opposite to the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetOppositeFace(self,theBlock, theFace): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace) RaiseIfFailed("GetOppositeFace", self.BlocksOp) return anObj - + ## Find a face of the given shape, which has minimal distance to the given point. # @param theShape Block or a compound of blocks. # @param thePoint Point, close to the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetFaceNearPoint(self,theShape, thePoint): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint) RaiseIfFailed("GetFaceNearPoint", self.BlocksOp) return anObj - + ## Find a face of block, whose outside normale has minimal angle with the given vector. - # @param theShape Block or a compound of blocks. + # @param theBlock Block or a compound of blocks. # @param theVector Vector, close to the normale of the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py - def GetFaceByNormale(self,theBlock, theVector): + # @ref tui_todo "Example" + def GetFaceByNormale(self, theBlock, theVector): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector) RaiseIfFailed("GetFaceByNormale", self.BlocksOp) return anObj - + + # end of l3_blocks_op + ## @} + + ## @addtogroup l4_blocks_measure + ## @{ + ## Check, if the compound of blocks is given. # To be considered as a compound of blocks, the # given shape must satisfy the following conditions: @@ -2544,39 +2878,48 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return TRUE, if the given shape is a compound of blocks. # If theCompound is not valid, prints all discovered errors. # - # Example: see GEOM_Spanner.py + # @ref tui_measurement_tools_page "Example" def CheckCompoundOfBlocks(self,theCompound): + # Example: see GEOM_Spanner.py (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound) RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp) if IsValid == 0: Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors) print Descr return IsValid - + ## Remove all seam and degenerated edges from \a theShape. # Unite faces and edges, sharing one surface. It means that # this faces must have references to one C++ surface object (handle). # @param theShape The compound or single solid to remove irregular edges from. # @return Improved shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def RemoveExtraEdges(self,theShape): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.RemoveExtraEdges(theShape) RaiseIfFailed("RemoveExtraEdges", self.BlocksOp) return anObj - + ## Check, if the given shape is a blocks compound. # Fix all detected errors. # \note Single block can be also fixed by this method. - # @param theCompound The compound to check and improve. + # @param theShape The compound to check and improve. # @return Improved compound. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def CheckAndImprove(self,theShape): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.CheckAndImprove(theShape) RaiseIfFailed("CheckAndImprove", self.BlocksOp) return anObj - + + # end of l4_blocks_measure + ## @} + + ## @addtogroup l3_blocks_op + ## @{ + ## Get all the blocks, contained in the given compound. # @param theCompound The compound to explode. # @param theMinNbFaces If solid has lower number of faces, it is not a block. @@ -2584,42 +2927,46 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note If theMaxNbFaces = 0, the maximum number of faces is not restricted. # @return List of GEOM_Objects, containing the retrieved blocks. # - # Example: see GEOM_TestOthers.py + # @ref tui_explode_on_blocks "Example" def MakeBlockExplode(self,theCompound, theMinNbFaces, theMaxNbFaces): + # Example: see GEOM_TestOthers.py aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces) RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp) return aList - + ## Find block, containing the given point inside its volume or on boundary. # @param theCompound Compound, to find block in. # @param thePoint Point, close to the desired block. If the point lays on # boundary between some blocks, we return block with nearest center. # @return New GEOM_Object, containing the found block. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetBlockNearPoint(self,theCompound, thePoint): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint) RaiseIfFailed("GetBlockNearPoint", self.BlocksOp) return anObj - + ## Find block, containing all the elements, passed as the parts, or maximum quantity of them. # @param theCompound Compound, to find block in. # @param theParts List of faces and/or edges and/or vertices to be parts of the found block. # @return New GEOM_Object, containing the found block. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetBlockByParts(self,theCompound, theParts): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts) RaiseIfFailed("GetBlockByParts", self.BlocksOp) return anObj - + ## Return all blocks, containing all the elements, passed as the parts. # @param theCompound Compound, to find blocks in. # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks. # @return List of GEOM_Objects, containing the found blocks. # - # Example: see GEOM_Spanner.py + # @ref tui_todo "Example" def GetBlocksByParts(self,theCompound, theParts): + # Example: see GEOM_Spanner.py aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts) RaiseIfFailed("GetBlocksByParts", self.BlocksOp) return aList @@ -2633,12 +2980,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note Unique ID of sub-shape can be obtained, using method GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_Spanner.py + # @ref tui_multi_transformation "Example" def MakeMultiTransformation1D(self,Block, DirFace1, DirFace2, NbTimes): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes) RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp) return anObj - + ## Multi-transformate block and glue the result. # @param Block Hexahedral solid to be multi-transformed. # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation. @@ -2646,14 +2994,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param NbTimesU,NbTimesV Quantity of transformations to be done. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_Spanner.py + # @ref tui_multi_transformation "Example" def MakeMultiTransformation2D(self,Block, DirFace1U, DirFace2U, NbTimesU, DirFace1V, DirFace2V, NbTimesV): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU, DirFace1V, DirFace2V, NbTimesV) RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp) return anObj - + ## Build all possible propagation groups. # Propagation group is a set of all edges, opposite to one (main) # edge of this group directly or through other opposite edges. @@ -2661,74 +3010,83 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to build propagation groups on. # @return List of GEOM_Objects, each of them is a propagation group. # - # Example: see GEOM_TestOthers.py + # @ref tui_propagate "Example" def Propagate(self,theShape): + # Example: see GEOM_TestOthers.py listChains = self.BlocksOp.Propagate(theShape) RaiseIfFailed("Propagate", self.BlocksOp) return listChains - - # ----------------------------------------------------------------------------- - # Group operations - # ----------------------------------------------------------------------------- - + + # end of l3_blocks_op + ## @} + + ## @addtogroup l3_groups + ## @{ + ## Creates a new group which will store sub shapes of theMainShape # @param theMainShape is a GEOM object on which the group is selected # @param theShapeType defines a shape type of the group # @return a newly created GEOM group # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def CreateGroup(self,theMainShape, theShapeType): + # Example: see GEOM_TestOthers.py anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType) RaiseIfFailed("CreateGroup", self.GroupOp) return anObj - + ## Adds a sub object with ID theSubShapeId to the group # @param theGroup is a GEOM group to which the new sub shape is added # @param theSubShapeID is a sub shape ID in the main object. # \note Use method GetSubShapeID() to get an unique ID of the sub shape # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def AddObject(self,theGroup, theSubShapeID): + # Example: see GEOM_TestOthers.py self.GroupOp.AddObject(theGroup, theSubShapeID) RaiseIfFailed("AddObject", self.GroupOp) pass - + ## Removes a sub object with ID \a theSubShapeId from the group # @param theGroup is a GEOM group from which the new sub shape is removed # @param theSubShapeID is a sub shape ID in the main object. # \note Use method GetSubShapeID() to get an unique ID of the sub shape # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def RemoveObject(self,theGroup, theSubShapeID): + # Example: see GEOM_TestOthers.py self.GroupOp.RemoveObject(theGroup, theSubShapeID) RaiseIfFailed("RemoveObject", self.GroupOp) pass - + ## Adds to the group all the given shapes. No errors, if some shapes are alredy included. # @param theGroup is a GEOM group to which the new sub shapes are added. # @param theSubShapes is a list of sub shapes to be added. # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def UnionList (self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.UnionList(theGroup, theSubShapes) RaiseIfFailed("UnionList", self.GroupOp) pass - + ## Works like the above method, but argument # theSubShapes here is a list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def UnionIDs(self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.UnionIDs(theGroup, theSubShapes) RaiseIfFailed("UnionIDs", self.GroupOp) pass - + ## Removes from the group all the given shapes. No errors, if some shapes are not included. # @param theGroup is a GEOM group from which the sub-shapes are removed. # @param theSubShapes is a list of sub-shapes to be removed. # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def DifferenceList (self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.DifferenceList(theGroup, theSubShapes) RaiseIfFailed("DifferenceList", self.GroupOp) pass @@ -2736,43 +3094,49 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Works like the above method, but argument # theSubShapes here is a list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def DifferenceIDs(self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.DifferenceIDs(theGroup, theSubShapes) RaiseIfFailed("DifferenceIDs", self.GroupOp) pass - + ## Returns a list of sub objects ID stored in the group # @param theGroup is a GEOM group for which a list of IDs is requested # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetObjectIDs(self,theGroup): + # Example: see GEOM_TestOthers.py ListIDs = self.GroupOp.GetObjects(theGroup) RaiseIfFailed("GetObjects", self.GroupOp) return ListIDs - + ## Returns a type of sub objects stored in the group # @param theGroup is a GEOM group which type is returned. # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetType(self,theGroup): + # Example: see GEOM_TestOthers.py aType = self.GroupOp.GetType(theGroup) RaiseIfFailed("GetType", self.GroupOp) return aType - + ## Returns a main shape associated with the group # @param theGroup is a GEOM group for which a main shape object is requested # @return a GEOM object which is a main shape for theGroup # - # Example: see GEOM_TestOthers.py + # @ref tui_todo "Example" def GetMainShape(self,theGroup): + # Example: see GEOM_TestOthers.py anObj = self.GroupOp.GetMainShape(theGroup) RaiseIfFailed("GetMainShape", self.GroupOp) return anObj - + ## Create group of edges of theShape, whose length is in range [min_length, max_length]. # If include_min/max == 0, edges with length == min/max_length will not be included in result. - def GetEdgesByLength (self,theShape, min_length, max_length, include_min = 1, include_max = 1): + # + # @ref tui_todo "Example" + def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1): edges = self.SubShapeAll(theShape, ShapeType["EDGE"]) edges_in_range = [] for edge in edges: @@ -2785,19 +3149,21 @@ class geompyDC(GEOM._objref_GEOM_Gen): skip = 1 else: edges_in_range.append(edge) - + if len(edges_in_range) <= 0: print "No edges found by given criteria" return 0 - + group_edges = self.CreateGroup(theShape, ShapeType["EDGE"]) self.UnionList(group_edges, edges_in_range) - + return group_edges - + ## Create group of edges of selected shape, whose length is in range [min_length, max_length]. # If include_min/max == 0, edges with length == min/max_length will not be included in result. - def SelectEdges (self,min_length, max_length, include_min = 1, include_max = 1): + # + # @ref tui_todo "Example" + def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1): nb_selected = sg.SelectedCount() if nb_selected < 1: print "Select a shape before calling this function, please." @@ -2805,25 +3171,39 @@ class geompyDC(GEOM._objref_GEOM_Gen): if nb_selected > 1: print "Only one shape must be selected" return 0 - + id_shape = sg.getSelected(0) shape = IDToObject( id_shape ) - + group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max) - + left_str = " < " right_str = " < " if include_min: left_str = " <= " if include_max: right_str = " <= " - + self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length` + left_str + "length" + right_str + `max_length`) - + sg.updateObjBrowser(1) - + return group_edges - + + # end of l3_groups + ## @} + + ## Create a copy of the given object + # @ingroup l1_geompy_auxiliary + # + # @ref tui_todo "Example" + def MakeCopy(self,theOriginal): + # Example: see GEOM_TestAll.py + anObj = self.InsertOp.MakeCopy(theOriginal) + RaiseIfFailed("MakeCopy", self.InsertOp) + return anObj + ## Add Path to load python scripts from + # @ingroup l1_geompy_auxiliary def addPath(self,Path): if (sys.path.count(Path) < 1): sys.path.append(Path) -- 2.39.2