]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Mantis issue 0021079: problems with Explode.
authorjfa <jfa@opencascade.com>
Wed, 9 Feb 2011 09:54:37 +0000 (09:54 +0000)
committerjfa <jfa@opencascade.com>
Wed, 9 Feb 2011 09:54:37 +0000 (09:54 +0000)
doc/salome/gui/GEOM/input/creating_explode.doc
src/GEOMImpl/GEOMImpl_IShapesOperations.cxx
src/GEOM_SWIG/GEOM_TestAll.py
src/GEOM_SWIG/geompyDC.py

index 3c93bcacb502396cb99b0f77838d1860a5b09231..dfda1d3849522a43686f2ad6d02658979d8276c8 100644 (file)
@@ -15,6 +15,10 @@ obtain from it.
 \n Using <b>TUI Commands</b> you can perform this operation in a
 variety of ways:
 <ul>
+<li><em>geompy.ExtractShapes(Shape, Type, isSorted)</em> explodes a
+Shape on subshapes of a given Type and returns a List of sub-shapes.
+This method does not return the Shape itself if it matches the
+Type.</li>
 <li><em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
 subshapes of a given Type and returns a List of sub-shapes.</li>
 <li><em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
index 0eb0d4ac2771a67b5bd2da4292e8c070359b67f5..920d2c9433a2e851bec3c2867fb36428bd44b257 100644 (file)
@@ -990,7 +990,7 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode
   switch (theExplodeType) {
   case EXPLODE_NEW_EXCLUDE_MAIN:
     pd << "ExtractShapes(" << theShape << ", "
-       << TopAbs_ShapeEnum(theShapeType) << ", " << (isSorted ? "TRUE" : "FALSE") << ")";
+       << TopAbs_ShapeEnum(theShapeType) << ", " << (isSorted ? "True" : "False") << ")";
     break;
   case EXPLODE_NEW_INCLUDE_MAIN:
     pd << "SubShapeAll" << (isSorted ? "SortedCentres(" : "(")
index 3a69656ddba6caf108c3c89b1b69c3e129d52c2e..98d1de80011d12cb344eefc4319b147642bc18e9 100644 (file)
 #  File   : GEOM_usinggeom.py
 #  Author : Damien COQUERET, Open CASCADE
 #  Module : GEOM
+
 # ! Please, if you edit this example file, update also
 # ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
 # ! as some sequences of symbols from this example are used during
 # ! documentation generation to identify certain places of this file
-#
+
 def TestAll (geompy, math):
   import GEOM
   
@@ -39,8 +40,6 @@ def TestAll (geompy, math):
   mindeg = 2
   maxdeg = 5
   nbiter = 5
-  ShapeTypeFace = geompy.ShapeType["FACE"]
-  ShapeTypeEdge = geompy.ShapeType["EDGE"]
   WantPlanarFace = 1 #True
 
   radius  = 10.  #Double
@@ -166,7 +165,7 @@ def TestAll (geompy, math):
   Shell    = geompy.MakeShell([Face, Face1])         #(List of GEOM_Object_ptr)->GEOM_Object_ptr
 
   Prism1   = geompy.MakePrism(Face2, p0, pxyz)       #(3 GEOM_Object_ptr)->GEOM_Object_ptr
-  prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, ShapeTypeFace)
+  prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
   Shell1   = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
                                prism1_faces[3], prism1_faces[4],
                                prism1_faces[5], prism1_faces[2]])
@@ -231,7 +230,7 @@ def TestAll (geompy, math):
   Orientation = geompy.ChangeOrientation(Box)
 
   #IDList for Fillet/Chamfer
-  prism_edges = geompy.SubShapeAllSortedCentres(Prism, ShapeTypeEdge)
+  prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
 
   for anEdge in prism_edges:
     eid = geompy.GetSubShapeID(Prism, anEdge)
@@ -246,7 +245,7 @@ def TestAll (geompy, math):
   IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
   IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
 
-  prism_faces = geompy.SubShapeAllSortedCentres(Prism, ShapeTypeFace)
+  prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
 
   f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
   f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
@@ -255,9 +254,9 @@ def TestAll (geompy, math):
   
   #Local operations
   Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object_ptr, Double, ListOfLong)->GEOM_Object_ptr
-  Fillet   = geompy.MakeFillet (Prism, radius, ShapeTypeEdge,
+  Fillet   = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
                                 IDlist_e) #(GEOM_Object_ptr, Double, Short, ListOfLong)->GEOM_Object_ptr
-  Fillet2  = geompy.MakeFilletR1R2 (Prism, 7., 13., ShapeTypeEdge,
+  Fillet2  = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
                                     IDlist_e) #(GEOM_Object_ptr, Double, Double, Short, ListOfLong)->GEOM_Object_ptr
   Chamfer  = geompy.MakeChamferEdge(Prism, d1, d2,
                                     f_ind_1, f_ind_2) #(GEOM_Object_ptr, 2 Doubles, 2 Long)->GEOM_Object_ptr
index bb7efcfe1b6c5690853e2e40c0bbf9401b7049cd..3a97c58ed6a6056ffd37e321789bb8563f9f3fc7 100644 (file)
@@ -2229,10 +2229,15 @@ class geompyDC(GEOM._objref_GEOM_Gen):
             anObj = self.GetSubShape(aShape, ListOfIDs)
             return anObj
 
-        ## Extract shapes (excluding the main shape) of given type
-        #  @param aShape shape
-        #  @param aType  shape type
+        ## Extract shapes (excluding the main shape) of given type.
+        #  @param aShape The shape.
+        #  @param aType  The shape type.
+        #  @param isSorted Boolean flag to switch sorting on/off.
+        #  @return List of sub-shapes of type aType, contained in aShape.
+        #
+        #  @ref swig_FilletChamfer "Example"
         def ExtractShapes(self, aShape, aType, isSorted = False):
+            # Example: see GEOM_TestAll.py
             ListObj = self.ShapesOp.ExtractSubShapes(aShape, aType, isSorted)
             RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
             return ListObj