Mantis issue 0021079: problems with Explode.

This commit is contained in:
jfa 2011-02-09 09:54:37 +00:00
parent ad52e520d5
commit 4ee6eebb26
4 changed files with 20 additions and 12 deletions

View 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

View 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(" : "(")

View File

@ -25,11 +25,12 @@
# 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

View 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