Mantis issue 0020853: EDF 1394 GEOM: Partition fails between 2 faces.

This commit is contained in:
jfa 2010-05-14 13:11:10 +00:00
parent 92cc19641a
commit 0c3ed0b725
5 changed files with 51 additions and 27 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -4,45 +4,66 @@
\n To produce a \b Partition in the <b>Main Menu</b> select <b>Operations - > Partition</b> \n To produce a \b Partition in the <b>Main Menu</b> select <b>Operations - > Partition</b>
\n This operation builds a compound by intersection of several shapes with a tool object or a plane. \n This operation builds a compound by intersection of several shapes
with a set of tool objects or with a plane.
\n The \b Result will be any \b GEOM_Object. \n The \b Result will be any \b GEOM_Object.
<br><h2>Intersection of two shapes.</h2> <br><h2>Intersection of two shapes.</h2>
\image html partition1.png
\n <b>Arguments:</b> Name + 2 lists of shapes (the shapes from the
first list will be intersected with the shapes from the second list) +
Resulting Type of shape.
\n As far as the intersection of two objects can produce any type of \n As far as the intersection of two objects can produce any type of
geometrical objects, <b>Resulting type</b> box allows choosing the geometrical objects, <b>Resulting type</b> box allows choosing the
preferrable result, i.e. a solid, a shell, a list of faces, etc. preferrable result, i.e. a solid, a shell, a list of faces, etc.
\n <b>TUI Command:</b> <em>geompy.MakePartition(ListOfShapes, \n<b>Resulting type</b> has to be equal or lower than the type of the
ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs, \em Objects. In other words, if the \em Objects don't contain any
ListOfMaterials),</em> where where \em ListOfShapes is a list of shapes to shape of this type, Partition fails.
be intersected and \em ListOfTools is a list of shapes to intersect the
shapes from ListOfShapes. <b>Keep shapes of lower type</b> checkbox manages standalone shapes of
\n Since the implementation of a new version of PartitionAlgo other type other than the \em Limit. If it is checked, lower dimension
parameters are ignored by the current functionality and remain there objects will be preserved, else they will be lost.
only to support the old scripts. \n For example, you do a partition of a box (Solid) and a face (Face)
\n <b>Arguments:</b> Name + 2 lists of shapes (the shapes from the without any tool. If you choose Resulting Type "Solid", you will
first list will be intersected with the shapes from the second list) + obtain a compound of two solids (let's the box will be splitted by the
reconstruction limit. face on two parts), but if you will also check <b>Keep shapes of lower
type</b> checkbox, you will obtain a compound of two solids and one
face (the face will have a hole where the original face lays inside
the box, see corresponding \ref partition_picture_3 "picture" below).
\n <b>Advanced option:</b> \n <b>Advanced option:</b>
\ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments".
\image html partition1.png \n <b>TUI Command:</b> <em>geompy.MakePartition(ListOfShapes,
ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs,
ListOfMaterials, KeepNonlimitShapes),</em> where where \em
ListOfShapes is a list of shapes to be intersected, \em ListOfTools is
a list of shapes to intersect the shapes from ListOfShapes, \em Limit
is a Type of resulting shapes and \em KeepNonlimitShapes is a flag
that allows to preserve standalone shapes of low dimension (than
Limit) in the result.
<b>Keep shapes of lower type</b> checkbox allows building geometrical objects. \n Since the implementation of a new version of PartitionAlgo other
Only lower type objects will be preserved without the upper ones. parameters are ignored by the current functionality and remain there
only to support the old scripts.
<br><h2>Intersection of a Shape and a Plane.</h2> <br><h2>Intersection of a Shape and a Plane.</h2>
\n <b>TUI Command:</b> <em> geompy.MakeHalfPartition(Shapes, \image html partition2.png
Plane),</em> where \em Shapes are a list of Shapes to be intersected
and \em Plane is a Tool shape, to intersect the \em Shapes.
\n <b>Arguments:</b> Name + a list of shapes which will be intersected \n <b>Arguments:</b> Name + a list of shapes which will be intersected
+ 1 cutting plane. + 1 cutting plane.
\n <b>Advanced option:</b> \n <b>Advanced option:</b>
\ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments".
\image html partition2.png \n <b>TUI Command:</b> <em> geompy.MakeHalfPartition(Shapes,
Plane),</em> where \em Shapes are a list of Shapes to be intersected
and \em Plane is a Tool shape, to intersect the \em Shapes.
\n <b>Example:</b> \n <b>Example:</b>
@ -50,6 +71,9 @@ and \em Plane is a Tool shape, to intersect the \em Shapes.
\image html partitionsn2.png "Result of intersection" \image html partitionsn2.png "Result of intersection"
\anchor partition_picture_3
\image html partitionsn3.png "Result of intersection of a box and a plane (both as \em Objects, no tools) with Resulting type \em Solid and checked \em Keep \em shapes \em of \em lower \em type"
Our <b>TUI Scripts</b> provide you with useful examples of the use of Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_partition "Basic Operations". \ref tui_partition "Basic Operations".

View File

@ -2180,10 +2180,10 @@ module GEOM
* \note Each compound from ListShapes and ListTools will be exploded in order * \note Each compound from ListShapes and ListTools will be exploded in order
* to avoid possible intersection between shapes from this compound. * to avoid possible intersection between shapes from this compound.
* \param theLimit Type of resulting shapes (corresponding to TopAbs_ShapeEnum). * \param theLimit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
# \param KeepNonlimitShapes: if this parameter == 0 - only shapes with * \param KeepNonlimitShapes: if this parameter == 0, then only shapes of
# type <= Limit are kept in the result, * target type (equal to Limit) are kept in the result,
# else - shapes with type > Limit are kept * else standalone shapes of lower dimension
# also (if they exist) * are kept also (if they exist).
* *
* After implementation new version of PartitionAlgo (October 2006) * After implementation new version of PartitionAlgo (October 2006)
* other parameters are ignored by current functionality. They are kept * other parameters are ignored by current functionality. They are kept

View File

@ -2375,10 +2375,10 @@ class geompyDC(GEOM._objref_GEOM_Gen):
# in order to avoid possible intersection between shapes from # in order to avoid possible intersection between shapes from
# this compound. # this compound.
# @param Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum). # @param Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
# @param KeepNonlimitShapes: if this parameter == 0 - only shapes with # @param KeepNonlimitShapes: if this parameter == 0, then only shapes of
# type <= Limit are kept in the result, # target type (equal to Limit) are kept in the result,
# else - shapes with type > Limit are kept # else standalone shapes of lower dimension
# also (if they exist) # are kept also (if they exist).
# #
# After implementation new version of PartitionAlgo (October 2006) # After implementation new version of PartitionAlgo (October 2006)
# other parameters are ignored by current functionality. They are kept # other parameters are ignored by current functionality. They are kept