mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-31 00:20:33 +05:00
Mantis issue 0021079: problems with Explode.
This commit is contained in:
parent
ad52e520d5
commit
4ee6eebb26
@ -15,6 +15,10 @@ obtain from it.
|
|||||||
\n Using <b>TUI Commands</b> you can perform this operation in a
|
\n Using <b>TUI Commands</b> you can perform this operation in a
|
||||||
variety of ways:
|
variety of ways:
|
||||||
<ul>
|
<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
|
<li><em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
|
||||||
subshapes of a given Type and returns a List of sub-shapes.</li>
|
subshapes of a given Type and returns a List of sub-shapes.</li>
|
||||||
<li><em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
|
<li><em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
|
||||||
|
@ -990,7 +990,7 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode
|
|||||||
switch (theExplodeType) {
|
switch (theExplodeType) {
|
||||||
case EXPLODE_NEW_EXCLUDE_MAIN:
|
case EXPLODE_NEW_EXCLUDE_MAIN:
|
||||||
pd << "ExtractShapes(" << theShape << ", "
|
pd << "ExtractShapes(" << theShape << ", "
|
||||||
<< TopAbs_ShapeEnum(theShapeType) << ", " << (isSorted ? "TRUE" : "FALSE") << ")";
|
<< TopAbs_ShapeEnum(theShapeType) << ", " << (isSorted ? "True" : "False") << ")";
|
||||||
break;
|
break;
|
||||||
case EXPLODE_NEW_INCLUDE_MAIN:
|
case EXPLODE_NEW_INCLUDE_MAIN:
|
||||||
pd << "SubShapeAll" << (isSorted ? "SortedCentres(" : "(")
|
pd << "SubShapeAll" << (isSorted ? "SortedCentres(" : "(")
|
||||||
|
@ -25,11 +25,12 @@
|
|||||||
# File : GEOM_usinggeom.py
|
# File : GEOM_usinggeom.py
|
||||||
# Author : Damien COQUERET, Open CASCADE
|
# Author : Damien COQUERET, Open CASCADE
|
||||||
# Module : GEOM
|
# Module : GEOM
|
||||||
|
|
||||||
# ! Please, if you edit this example file, update also
|
# ! Please, if you edit this example file, update also
|
||||||
# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
|
# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
|
||||||
# ! as some sequences of symbols from this example are used during
|
# ! as some sequences of symbols from this example are used during
|
||||||
# ! documentation generation to identify certain places of this file
|
# ! documentation generation to identify certain places of this file
|
||||||
#
|
|
||||||
def TestAll (geompy, math):
|
def TestAll (geompy, math):
|
||||||
import GEOM
|
import GEOM
|
||||||
|
|
||||||
@ -39,8 +40,6 @@ def TestAll (geompy, math):
|
|||||||
mindeg = 2
|
mindeg = 2
|
||||||
maxdeg = 5
|
maxdeg = 5
|
||||||
nbiter = 5
|
nbiter = 5
|
||||||
ShapeTypeFace = geompy.ShapeType["FACE"]
|
|
||||||
ShapeTypeEdge = geompy.ShapeType["EDGE"]
|
|
||||||
WantPlanarFace = 1 #True
|
WantPlanarFace = 1 #True
|
||||||
|
|
||||||
radius = 10. #Double
|
radius = 10. #Double
|
||||||
@ -166,7 +165,7 @@ def TestAll (geompy, math):
|
|||||||
Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object_ptr)->GEOM_Object_ptr
|
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 = 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],
|
Shell1 = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
|
||||||
prism1_faces[3], prism1_faces[4],
|
prism1_faces[3], prism1_faces[4],
|
||||||
prism1_faces[5], prism1_faces[2]])
|
prism1_faces[5], prism1_faces[2]])
|
||||||
@ -231,7 +230,7 @@ def TestAll (geompy, math):
|
|||||||
Orientation = geompy.ChangeOrientation(Box)
|
Orientation = geompy.ChangeOrientation(Box)
|
||||||
|
|
||||||
#IDList for Fillet/Chamfer
|
#IDList for Fillet/Chamfer
|
||||||
prism_edges = geompy.SubShapeAllSortedCentres(Prism, ShapeTypeEdge)
|
prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
|
||||||
|
|
||||||
for anEdge in prism_edges:
|
for anEdge in prism_edges:
|
||||||
eid = geompy.GetSubShapeID(Prism, anEdge)
|
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[1]))
|
||||||
IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
|
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_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
|
||||||
f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
|
f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
|
||||||
@ -255,9 +254,9 @@ def TestAll (geompy, math):
|
|||||||
|
|
||||||
#Local operations
|
#Local operations
|
||||||
Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object_ptr, Double, ListOfLong)->GEOM_Object_ptr
|
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
|
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
|
IDlist_e) #(GEOM_Object_ptr, Double, Double, Short, ListOfLong)->GEOM_Object_ptr
|
||||||
Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
|
Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
|
||||||
f_ind_1, f_ind_2) #(GEOM_Object_ptr, 2 Doubles, 2 Long)->GEOM_Object_ptr
|
f_ind_1, f_ind_2) #(GEOM_Object_ptr, 2 Doubles, 2 Long)->GEOM_Object_ptr
|
||||||
|
@ -2229,10 +2229,15 @@ class geompyDC(GEOM._objref_GEOM_Gen):
|
|||||||
anObj = self.GetSubShape(aShape, ListOfIDs)
|
anObj = self.GetSubShape(aShape, ListOfIDs)
|
||||||
return anObj
|
return anObj
|
||||||
|
|
||||||
## Extract shapes (excluding the main shape) of given type
|
## Extract shapes (excluding the main shape) of given type.
|
||||||
# @param aShape shape
|
# @param aShape The shape.
|
||||||
# @param aType shape type
|
# @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):
|
def ExtractShapes(self, aShape, aType, isSorted = False):
|
||||||
|
# Example: see GEOM_TestAll.py
|
||||||
ListObj = self.ShapesOp.ExtractSubShapes(aShape, aType, isSorted)
|
ListObj = self.ShapesOp.ExtractSubShapes(aShape, aType, isSorted)
|
||||||
RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
|
RaiseIfFailed("ExtractSubShapes", self.ShapesOp)
|
||||||
return ListObj
|
return ListObj
|
||||||
|
Loading…
Reference in New Issue
Block a user