From 291fced1e65504dec040493fe7d328de48be5270 Mon Sep 17 00:00:00 2001 From: emv Date: Mon, 5 Dec 2016 15:52:36 +0300 Subject: [PATCH] 0028187: Add possibility to avoid creation of Internal parts in the result of Volume maker algorithm 1. The possibility to prevent addition of internal parts has been added into the following algorithms: - BOPAlgo_BuilderFace; - BOPAlgo_BuilderSolid; - BOPAlgo_MakerVolume. Setting the option to avoid internal parts for MakerVolume algorithm guarantees that the result solids will be manifold and not contain any internal parts. But it does not prevent from occurrence of the internal edges or vertices in the faces. 2. The Set/Get methods of the BOPAlgo_BuilderArea class have been made inline. 3. Draw command mkvolume has been updated to take into account the new option. 4. BRepOffset_MakeOffset::BuildShellsCompleteInter() has been modified to use the new option of BOPAlgo_MakerVolume to speed up the construction of the final result solid. 5. Documentation has been updated with new section dedicated to BOPAlgo_MakerVolume algorithm. 6. Test case for the issue. --- .../boolean_operations/boolean_operations.md | 74 ++++++++++++++++++ .../images/mkvolume_image001.png | Bin 0 -> 47222 bytes .../images/mkvolume_image002.png | Bin 0 -> 26320 bytes .../images/mkvolume_image003.png | Bin 0 -> 24216 bytes .../images/mkvolume_image004.png | Bin 0 -> 16205 bytes src/BOPAlgo/BOPAlgo_BuilderArea.cxx | 58 +------------- src/BOPAlgo/BOPAlgo_BuilderArea.hxx | 56 +++++++------ src/BOPAlgo/BOPAlgo_BuilderFace.cxx | 8 +- src/BOPAlgo/BOPAlgo_BuilderSolid.cxx | 3 + src/BOPAlgo/BOPAlgo_MakerVolume.cxx | 5 ++ src/BOPAlgo/BOPAlgo_MakerVolume.hxx | 58 +++++--------- src/BOPAlgo/BOPAlgo_MakerVolume.lxx | 7 +- src/BOPTest/BOPTest_BOPCommands.cxx | 13 ++- src/BRepOffset/BRepOffset_MakeOffset.cxx | 3 + tests/bugs/modalg_6/bug28187 | 21 +++++ 15 files changed, 182 insertions(+), 124 deletions(-) create mode 100644 dox/user_guides/boolean_operations/images/mkvolume_image001.png create mode 100644 dox/user_guides/boolean_operations/images/mkvolume_image002.png create mode 100644 dox/user_guides/boolean_operations/images/mkvolume_image003.png create mode 100644 dox/user_guides/boolean_operations/images/mkvolume_image004.png create mode 100644 tests/bugs/modalg_6/bug28187 diff --git a/dox/user_guides/boolean_operations/boolean_operations.md b/dox/user_guides/boolean_operations/boolean_operations.md index 590332e1d9..92c49aa231 100644 --- a/dox/user_guides/boolean_operations/boolean_operations.md +++ b/dox/user_guides/boolean_operations/boolean_operations.md @@ -1862,7 +1862,81 @@ Some aspects of building the result are described in the next paragraph | :---- | :---- | :------ | | 1 | Build the result of the operation using all information contained in *FaceInfo*, Common Block, Shared entities of the arguments, etc. | *BOPAlgo_Section:: BuildSection()* | +@section occt_algorithms_10b Volume Maker Algorithm +The Volume Maker algorithm has been designed for building the elementary volumes (solids) from a set of connected, intersecting, or nested shapes. The algorithm can also be useful for splitting solids into parts, or constructing new solid(s) from set of intersecting or connected faces or shells. +The algorithm creates only closed solids. In general case the result solids are non-manifold: fragments of the input shapes (wires, faces) located inside the solids are added as internal sub-shapes to these solids. +But the algorithm allows preventing the addition of the internal for solids parts into result. In this case the result solids will be manifold and not contain any internal parts. However, this option does not prevent from the occurrence of the internal edges or vertices in the faces.
+Non-closed faces, free wires etc. located outside of any solid are always excluded from the result. + +The Volume Maker algorithm is implemented in the class BOPAlgo_MakerVolume. It is based on the General Fuse (GF) algorithm. All the options of the GF algorithm such as possibility to run algorithm in parallel mode, fuzzy option, safe mode, glue options and history support are also available in this algorithm. + +The requirements for the arguments are the same as for the arguments of GF algorithm - they could be of any type, but each argument should be valid and not self-interfered. + +The algorithm allows disabling the calculation of intersections among the arguments. In this case the algorithm will run much faster, but the user should guarantee that the arguments do not interfere with each other, otherwise the result will be invalid (e.g. contain unexpected parts) or empty. +This option is useful e.g. for building a solid from the faces of one shell or from the shapes that have already been intersected. + +@subsection occt_algorithms_10b_1 Usage + +#### C++ Level +The usage of the algorithm on the API level: +~~~~ +BOPAlgo_MakerVolume aMV; +BOPCol_ListOfShape aLS = …; // arguments +Standard_Boolean bRunParallel = Standard_False; /* parallel or single mode (the default value is FALSE)*/ +Standard_Boolean bIntersect = Standard_True; /* intersect or not the arguments (the default value is TRUE)*/ +Standard_Real aTol = 0.0; /* fuzzy option (default value is 0)*/ +Standard_Boolean bSafeMode = Standard_False; /* protect or not the arguments from modification*/ +BOPAlgo_Glue aGlue = BOPAlgo_GlueOff; /* Glue option to speed up intersection of the arguments*/ +Standard_Boolean bAvoidInternalShapes = Standard_False; /* Avoid or not the internal for solids shapes in the result*/ +// +aMV.SetArguments(aLS); +aMV.SetRunParallel(bRunParallel); +aMV.SetIntersect(bIntersect); +aMV.SetFuzzyValue(aTol); +aMV.SetNonDestructive(bSafeMode); +aMV.SetGlue(aGlue); +aMV.SetAvoidInternalShapes(bAvoidInternalShapes); +// +aMV.Perform(); //perform the operation +if (aMV.ErrorStatus()) { //check error status + return; +} +// +const TopoDS_Shape& aResult = aMV.Shape(); // result of the operation +~~~~ + +#### Tcl Level +To use the algorithm in Draw the command mkvolume has been implemented. The usage of this command is following: +~~~~ +Usage: mkvolume r b1 b2 ... [-c] [-ni] [-ai] +Options: +-c - use this option to have input compounds considered as set of separate arguments (allows passing multiple arguments as one compound); +-ni - use this option to disable the intersection of the arguments; +-ai - use this option to avoid internal for solids shapes in the result. +~~~~ + +@subsection occt_algorithms_10b_2 Examples + +#### Example 1 +Creation of 9832 solids from sphere and set of 63 planes: + + + + + + +
@figure{/user_guides/boolean_operations/images/mkvolume_image001.png, "Arguments"}@figure{/user_guides/boolean_operations/images/mkvolume_image002.png, "Results"}
+ +#### Example 2 +Creating compartments on a ship defined by hull shell and a set of planes. The ship is divided on compartments by five transverse bulkheads and a deck – six compartments are created: + + + + + + +
@figure{/user_guides/boolean_operations/images/mkvolume_image003.png, "Arguments"}@figure{/user_guides/boolean_operations/images/mkvolume_image004.png, "Results"}
@section occt_algorithms_10 Algorithm Limitations diff --git a/dox/user_guides/boolean_operations/images/mkvolume_image001.png b/dox/user_guides/boolean_operations/images/mkvolume_image001.png new file mode 100644 index 0000000000000000000000000000000000000000..7f1b6bf50aacaa81d88f31695604a73d3bef34c1 GIT binary patch literal 47222 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

M1#`b@z6!m%aVd2bofQdgdVtk{K(0($ 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 X(i0P_1EzNg00000NkvXXu0mjf@v?Pt literal 0 HcmV?d00001 diff --git a/dox/user_guides/boolean_operations/images/mkvolume_image003.png b/dox/user_guides/boolean_operations/images/mkvolume_image003.png new file mode 100644 index 0000000000000000000000000000000000000000..26d576efe469c55ad0ede58ce9c2d49ff3587c2d GIT binary patch literal 24216 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 w;G1rz0qCIpL{ReaeD%uZ*|Lz03;GIblJ_x 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 literal 0 HcmV?d00001 diff --git a/src/BOPAlgo/BOPAlgo_BuilderArea.cxx b/src/BOPAlgo/BOPAlgo_BuilderArea.cxx index 3acd2404d0..7b378ebadd 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderArea.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderArea.cxx @@ -17,10 +17,6 @@ #include -#include -#include -#include -#include //======================================================================= //function : @@ -33,7 +29,8 @@ BOPAlgo_BuilderArea::BOPAlgo_BuilderArea() myLoops(myAllocator), myLoopsInternal(myAllocator), myAreas(myAllocator), - myShapesToAvoid(100, myAllocator) + myShapesToAvoid(100, myAllocator), + myAvoidInternalShapes(Standard_False) { } //======================================================================= @@ -48,7 +45,8 @@ BOPAlgo_BuilderArea::BOPAlgo_BuilderArea myLoops(myAllocator), myLoopsInternal(myAllocator), myAreas(myAllocator), - myShapesToAvoid(100, myAllocator) + myShapesToAvoid(100, myAllocator), + myAvoidInternalShapes(Standard_False) { } //======================================================================= @@ -58,51 +56,3 @@ BOPAlgo_BuilderArea::BOPAlgo_BuilderArea BOPAlgo_BuilderArea::~BOPAlgo_BuilderArea() { } -//======================================================================= -//function : SetContext -//purpose : -//======================================================================= -void BOPAlgo_BuilderArea::SetContext - (const Handle(IntTools_Context)& theContext) -{ - myContext=theContext; -} -//======================================================================= -//function : SetShapes -//purpose : -//======================================================================= - void BOPAlgo_BuilderArea::SetShapes(const BOPCol_ListOfShape& theLF) -{ - BOPCol_ListIteratorOfListOfShape aIt; - // - myShapes.Clear(); - aIt.Initialize(theLF); - for(; aIt.More(); aIt.Next()) { - const TopoDS_Shape& aF=aIt.Value(); - myShapes.Append(aF); - } -} -//======================================================================= -//function : Shapes -//purpose : -//======================================================================= -const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Shapes()const -{ - return myShapes; -} -//======================================================================= -//function : Loops -//purpose : -//======================================================================= -const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Loops()const -{ - return myLoops; -} -//======================================================================= -//function : Areas -//purpose : -//======================================================================= - const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Areas()const -{ - return myAreas; -} diff --git a/src/BOPAlgo/BOPAlgo_BuilderArea.hxx b/src/BOPAlgo/BOPAlgo_BuilderArea.hxx index 78c1dcc723..fc134be63c 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderArea.hxx +++ b/src/BOPAlgo/BOPAlgo_BuilderArea.hxx @@ -37,24 +37,46 @@ public: DEFINE_STANDARD_ALLOC - - Standard_EXPORT void SetContext (const Handle(IntTools_Context)& theContext); - - Standard_EXPORT const BOPCol_ListOfShape& Shapes() const; -Standard_EXPORT void SetShapes(const BOPCol_ListOfShape& theLS); - - Standard_EXPORT const BOPCol_ListOfShape& Loops() const; - - Standard_EXPORT const BOPCol_ListOfShape& Areas() const; + //! Sets the context for the algorithms + Standard_EXPORT void SetContext (const Handle(IntTools_Context)& theContext) { + myContext = theContext; + } + //! Returns the input shapes + Standard_EXPORT const BOPCol_ListOfShape& Shapes() const { + return myShapes; + } + //! Sets the shapes for building areas + Standard_EXPORT void SetShapes(const BOPCol_ListOfShape& theLS) { + myShapes = theLS; + } + //! Returns the found loops + Standard_EXPORT const BOPCol_ListOfShape& Loops() const { + return myLoops; + } + + //! Returns the found areas + Standard_EXPORT const BOPCol_ListOfShape& Areas() const { + return myAreas; + } + + //! Defines the preventing of addition of internal parts into result. + //! The default value is FALSE, i.e. the internal parts are added into result. + Standard_EXPORT void SetAvoidInternalShapes(const Standard_Boolean theAvoidInternal) { + myAvoidInternalShapes = theAvoidInternal; + } + + //! Returns the AvoidInternalShapes flag + Standard_EXPORT Standard_Boolean IsAvoidInternalShapes() const { + return myAvoidInternalShapes; + } protected: - Standard_EXPORT BOPAlgo_BuilderArea(); -Standard_EXPORT virtual ~BOPAlgo_BuilderArea(); + Standard_EXPORT virtual ~BOPAlgo_BuilderArea(); Standard_EXPORT BOPAlgo_BuilderArea(const BOPCol_BaseAllocator& theAllocator); @@ -73,20 +95,10 @@ Standard_EXPORT virtual ~BOPAlgo_BuilderArea(); BOPCol_ListOfShape myLoopsInternal; BOPCol_ListOfShape myAreas; BOPCol_IndexedMapOfOrientedShape myShapesToAvoid; - + Standard_Boolean myAvoidInternalShapes; private: - - - - }; - - - - - - #endif // _BOPAlgo_BuilderArea_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx index 9737fe4445..6830e6b00c 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx @@ -56,11 +56,6 @@ #include #include -// -// -// -// -// // static Standard_Boolean IsGrowthWire(const TopoDS_Shape& , @@ -688,6 +683,9 @@ void GetWire(const TopoDS_Shape& aF, TopoDS_Shape& aW) void BOPAlgo_BuilderFace::PerformInternalShapes() { myErrorStatus=0; + if (myAvoidInternalShapes) { + return; + } // Standard_Integer aNbWI=myLoopsInternal.Extent(); if (!aNbWI) {// nothing to do diff --git a/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx b/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx index 44e1769c9b..eaf82582d7 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx @@ -751,6 +751,9 @@ void BOPAlgo_BuilderSolid::PerformAreas() void BOPAlgo_BuilderSolid::PerformInternalShapes() { myErrorStatus=0; + if (myAvoidInternalShapes) { + return; + } // Standard_Integer aNbFI=myLoopsInternal.Extent(); if (!aNbFI) {// nothing to do diff --git a/src/BOPAlgo/BOPAlgo_MakerVolume.cxx b/src/BOPAlgo/BOPAlgo_MakerVolume.cxx index a7639cc87b..6bda860bc3 100644 --- a/src/BOPAlgo/BOPAlgo_MakerVolume.cxx +++ b/src/BOPAlgo/BOPAlgo_MakerVolume.cxx @@ -270,6 +270,7 @@ void BOPAlgo_MakerVolume::BuildSolids(BOPCol_ListOfShape& theLSR) aBS.SetSolid(mySBox); aBS.SetShapes(myFaces); aBS.SetRunParallel(myRunParallel); + aBS.SetAvoidInternalShapes(myAvoidInternalShapes); aBS.Perform(); if (aBS.ErrorStatus()) { myErrorStatus = 103; @@ -339,6 +340,10 @@ void BOPAlgo_MakerVolume::BuildShape(const BOPCol_ListOfShape& theLSR) //======================================================================= void BOPAlgo_MakerVolume::FillInternalShapes(const BOPCol_ListOfShape& theLSR) { + if (myAvoidInternalShapes) { + return; + } + // UserBreak(); // Standard_Integer aNbSI; diff --git a/src/BOPAlgo/BOPAlgo_MakerVolume.hxx b/src/BOPAlgo/BOPAlgo_MakerVolume.hxx index 08ae2c177d..ce9e15cf98 100644 --- a/src/BOPAlgo/BOPAlgo_MakerVolume.hxx +++ b/src/BOPAlgo/BOPAlgo_MakerVolume.hxx @@ -118,97 +118,79 @@ public: //! Empty contructor. - BOPAlgo_MakerVolume(); -virtual ~BOPAlgo_MakerVolume(); - + BOPAlgo_MakerVolume(); + virtual ~BOPAlgo_MakerVolume(); //! Empty contructor. - BOPAlgo_MakerVolume(const BOPCol_BaseAllocator& theAllocator); - + BOPAlgo_MakerVolume(const BOPCol_BaseAllocator& theAllocator); //! Clears the data. - virtual void Clear() Standard_OVERRIDE; - + virtual void Clear() Standard_OVERRIDE; //! Sets the flag myIntersect: //! if is TRUE the shapes from will be intersected. //! if is FALSE no intersection will be done. - void SetIntersect (const Standard_Boolean bIntersect); - + void SetIntersect(const Standard_Boolean bIntersect); //! Returns the flag . - Standard_Boolean IsIntersect() const; - + Standard_Boolean IsIntersect() const; //! Returns the solid box . - const TopoDS_Solid& Box() const; - + const TopoDS_Solid& Box() const; //! Returns the processed faces . - const BOPCol_ListOfShape& Faces() const; - + const BOPCol_ListOfShape& Faces() const; + + //! Defines the preventing of addition of internal for solid parts into the result. + //! By default the internal parts are added into result. + Standard_EXPORT void SetAvoidInternalShapes(const Standard_Boolean theAvoidInternal) { + myAvoidInternalShapes = theAvoidInternal; + } + + //! Returns the AvoidInternalShapes flag + Standard_EXPORT Standard_Boolean IsAvoidInternalShapes() const { + return myAvoidInternalShapes; + } //! Performs the operation. Standard_EXPORT virtual void Perform() Standard_OVERRIDE; - - - protected: - - //! Checks the data. Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; - //! Performs the operation. Standard_EXPORT virtual void PerformInternal1 (const BOPAlgo_PaveFiller& thePF) Standard_OVERRIDE; - //! Collects all faces. Standard_EXPORT void CollectFaces(); - //! Makes solid box. Standard_EXPORT void MakeBox (BOPCol_MapOfShape& theBoxFaces); - //! Builds solids. Standard_EXPORT void BuildSolids (BOPCol_ListOfShape& theLSR); - //! Removes the covering box. Standard_EXPORT void RemoveBox (BOPCol_ListOfShape& theLSR, const BOPCol_MapOfShape& theBoxFaces); - //! Fills the solids with internal shapes. Standard_EXPORT void FillInternalShapes (const BOPCol_ListOfShape& theLSR); - //! Builds the result. Standard_EXPORT void BuildShape (const BOPCol_ListOfShape& theLSR); - Standard_Boolean myIntersect; Bnd_Box myBBox; TopoDS_Solid mySBox; BOPCol_ListOfShape myFaces; - + Standard_Boolean myAvoidInternalShapes; private: - - - - }; - #include - - - - #endif // _BOPAlgo_MakerVolume_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_MakerVolume.lxx b/src/BOPAlgo/BOPAlgo_MakerVolume.lxx index 5794e8f69e..47141ff7ed 100644 --- a/src/BOPAlgo/BOPAlgo_MakerVolume.lxx +++ b/src/BOPAlgo/BOPAlgo_MakerVolume.lxx @@ -19,7 +19,8 @@ inline BOPAlgo_MakerVolume::BOPAlgo_MakerVolume() : BOPAlgo_Builder(), - myIntersect(Standard_True) + myIntersect(Standard_True), + myAvoidInternalShapes(Standard_False) { } @@ -31,7 +32,8 @@ inline BOPAlgo_MakerVolume::BOPAlgo_MakerVolume (const Handle(NCollection_BaseAllocator)& theAllocator) : BOPAlgo_Builder(theAllocator), - myIntersect(Standard_True) + myIntersect(Standard_True), + myAvoidInternalShapes(Standard_False) { } @@ -55,6 +57,7 @@ inline void BOPAlgo_MakerVolume::Clear() myBBox = Bnd_Box(); mySBox.Nullify(); myFaces.Clear(); + myAvoidInternalShapes = Standard_False; } //======================================================================= diff --git a/src/BOPTest/BOPTest_BOPCommands.cxx b/src/BOPTest/BOPTest_BOPCommands.cxx index 8b68725f0d..2f7a1bbb26 100644 --- a/src/BOPTest/BOPTest_BOPCommands.cxx +++ b/src/BOPTest/BOPTest_BOPCommands.cxx @@ -106,7 +106,7 @@ static Standard_Integer mkvolume (Draw_Interpretor&, Standard_Integer, const c // theCommands.Add("bopcurves", "use bopcurves F1 F2 [-2d/-2d1/-2d2] [-p u1 v1 u2 v2]", __FILE__, bopcurves, g); - theCommands.Add("mkvolume", "make solids from set of shapes.\nmkvolume r b1 b2 ... [-c] [-ni]", + theCommands.Add("mkvolume", "make solids from set of shapes.\nmkvolume r b1 b2 ... [-c] [-ni] [-ai]", __FILE__, mkvolume , g); } @@ -726,17 +726,19 @@ Standard_Integer bopcurves (Draw_Interpretor& di, Standard_Integer mkvolume(Draw_Interpretor& di, Standard_Integer n, const char** a) { if (n < 3) { - di << "Usage: mkvolume r b1 b2 ... [-c] [-ni]\n"; + di << "Usage: mkvolume r b1 b2 ... [-c] [-ni] [-ai]\n"; di << "Options:\n"; di << " -c - use this option if the arguments are compounds\n"; di << " containing shapes that should be interfered;\n"; di << " -ni - use this option if the arguments should not be interfered;\n"; + di << " -ai - use this option to avoid internal for solids shapes in the result.\n"; return 1; } // const char* usage = "Type mkvolume without arguments for the usage of the command.\n"; // - Standard_Boolean bToIntersect, bRunParallel, bNonDestructive, bCompounds; + Standard_Boolean bToIntersect, bRunParallel, bNonDestructive; + Standard_Boolean bCompounds, bAvoidInternal; Standard_Integer i; Standard_Real aTol; TopoDS_Shape aS; @@ -749,6 +751,7 @@ Standard_Integer mkvolume(Draw_Interpretor& di, Standard_Integer n, const char** // bToIntersect = Standard_True; bCompounds = Standard_False; + bAvoidInternal = Standard_False; // for (i = 2; i < n; ++i) { aS = DBRep::Get(a[i]); @@ -762,6 +765,9 @@ Standard_Integer mkvolume(Draw_Interpretor& di, Standard_Integer n, const char** else if (!strcmp(a[i], "-ni")) { bToIntersect = Standard_False; } + else if (!strcmp(a[i], "-ai")) { + bAvoidInternal = Standard_True; + } } } // @@ -796,6 +802,7 @@ Standard_Integer mkvolume(Draw_Interpretor& di, Standard_Integer n, const char** aMV.SetRunParallel(bRunParallel); aMV.SetFuzzyValue(aTol); aMV.SetNonDestructive(bNonDestructive); + aMV.SetAvoidInternalShapes(bAvoidInternal); aMV.SetGlue(aGlue); // aMV.Perform(); diff --git a/src/BRepOffset/BRepOffset_MakeOffset.cxx b/src/BRepOffset/BRepOffset_MakeOffset.cxx index 9fea562ab3..f05b9a169b 100644 --- a/src/BRepOffset/BRepOffset_MakeOffset.cxx +++ b/src/BRepOffset/BRepOffset_MakeOffset.cxx @@ -4049,6 +4049,7 @@ Standard_Boolean BuildShellsCompleteInter(const BOPCol_ListOfShape& theLF, aMV1.SetArguments(theLF); // we need to intersect the faces to process the tangential faces aMV1.SetIntersect(Standard_True); + aMV1.SetAvoidInternalShapes(Standard_True); aMV1.Perform(); // Standard_Boolean bDone = (aMV1.ErrorStatus() == 0); @@ -4092,6 +4093,7 @@ Standard_Boolean BuildShellsCompleteInter(const BOPCol_ListOfShape& theLF, aMV2.SetArguments(aLF2); // no need to intersect this time aMV2.SetIntersect(Standard_False); + aMV2.SetAvoidInternalShapes(Standard_True); aMV2.Perform(); bDone = (aMV2.ErrorStatus() == 0); if (!bDone) { @@ -4136,6 +4138,7 @@ Standard_Boolean BuildShellsCompleteInter(const BOPCol_ListOfShape& theLF, BOPAlgo_MakerVolume aMV3; aMV3.SetArguments(aLF3); aMV3.SetIntersect(Standard_False); + aMV3.SetAvoidInternalShapes(Standard_True); aMV3.Perform(); bDone = (aMV3.ErrorStatus() == 0); if (!bDone) { diff --git a/tests/bugs/modalg_6/bug28187 b/tests/bugs/modalg_6/bug28187 new file mode 100644 index 0000000000..e249c91be8 --- /dev/null +++ b/tests/bugs/modalg_6/bug28187 @@ -0,0 +1,21 @@ +puts "========" +puts "OCC28187" +puts "========" +puts "" +################################################# +# Add possibility to avoid creation of Internal parts in the result of Volume maker algorithm +################################################# + +restore [locate_data_file bug28187_faces.brep] cf +vertex v1 1 1 1 +vertex v2 1 9 1 +edge e v1 v2 +compound v1 v2 e int_sh + +mkvolume result cf int_sh -c -ai + +checkshape result +checknbshapes result -vertex 16 -edge 22 -wire 10 -face 8 -shell 1 -solid 1 +checkprops result -v 750 -s 550 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file