Fix boolean operations (#17119)
* add BRepAlgoAPI wrapper files to CMakeList * introduce wrapper for BRepAlgoAPI_BooleanOperation and derivatives, set sensible default Fuzzyness for boolean operations * allow default fuzzyness to be set in settings - including off * backwards compatibility with OCCT 7.3.3 - removed newer paramateres from wrapper * added missing header * reverted src/Mod/Part/App/OpenCascadeAll.h to original state * implement some changes suggested by @wwmayer * removed unneeded destructor definitions * moved getDefaultFuzzyValue into its own helper class * removed unneeded references to base class default constructor * default to SetRunParallel(Standard_True) as suggested by @FlachyJoe * fixed license header as requested * Added new method to autocalculate fuzzyness to BooleanOperation base class and use it for those parts that do not call the obsolete constructor but also do not set precision * implemented static variable solution as suggested by @wwmayer * added helix for test case * Refactoring FCRepAlgoAPI to FCBRepAlgoAPI * Added Test Case (fuse cylinder with helix with different working and non-working Fuzzy values) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * increased default value of FuzzyBoolean and made tests more robust for compatibility with OCCT 7.3 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixes for FREECAD_USE_PCH - allow testing of FREECAD_USE_PCH on linux with cmake switch (default OFF) * removed surplus line - wasn't needed after all * included precompiled as instructed * set anti-corruption flag in boolean operations, ensures source shape is not damaged in OCCT 7.1 and higher * fix #17085 * disable subtests that were too specific for now * fixed all CLI tests - see comments in Pull Request https://github.com/FreeCAD/FreeCAD/pull/17119#issuecomment-2420772452 * Update src/Mod/PartDesign/PartDesignTests/TestTopologicalNamingProblem.py suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp suggested updated test by CalligaroV Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * Update tests/src/Mod/Part/App/TopoShapeExpansion.cpp Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com> * remove surplus tests from github suggestion interface bug * hide the BooleanFuzzy variable - can now be only set by manually editing the config file i in FCParamGroup "Boolean" <FCFloat Name="BooleanFuzzy" Value="10.000000000000"/> * Suggestion by @FlachyJoe - add validity checks to the base and tool shape in any direct boolean op --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Vincenzo Calligaro <vincenzo.calligaro@gmail.com>
This commit is contained in:
@@ -1444,7 +1444,7 @@ TEST_F(TopoShapeExpansionTest, makeElementBooleanCut)
|
||||
"Edge2",
|
||||
"Edge2;:M;CUT;:H2:7,E",
|
||||
"Edge3",
|
||||
"Edge3;:H2,E",
|
||||
"Edge3;:M;CUT;:H2:7,E",
|
||||
"Edge4",
|
||||
"Edge4;:M;CUT;:H2:7,E",
|
||||
"Edge6;:G(Edge12;K-1;:H2:4,E);CUT;:H1:1b,V",
|
||||
@@ -1467,9 +1467,9 @@ TEST_F(TopoShapeExpansionTest, makeElementBooleanCut)
|
||||
"Vertex1",
|
||||
"Vertex2",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;CUT;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex4;:M;CUT;:H2:7,V",
|
||||
"Vertex7",
|
||||
"Vertex8",
|
||||
}));
|
||||
@@ -1550,13 +1550,13 @@ TEST_F(TopoShapeExpansionTest, makeElementBooleanFuse)
|
||||
"Vertex2",
|
||||
"Vertex2;:H2,V",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;FUS;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex5",
|
||||
"Vertex4;:M;FUS;:H2:7,V",
|
||||
"Vertex5;:H2,V",
|
||||
"Vertex6",
|
||||
"Vertex5;:M;FUS;:H1:7,V",
|
||||
"Vertex6;:H2,V",
|
||||
"Vertex6;:M;FUS;:H1:7,V",
|
||||
"Vertex7",
|
||||
"Vertex7;:H2,V",
|
||||
"Vertex8",
|
||||
@@ -2021,13 +2021,13 @@ TEST_F(TopoShapeExpansionTest, makeElementFuse)
|
||||
"Vertex2",
|
||||
"Vertex2;:H2,V",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;FUS;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex5",
|
||||
"Vertex4;:M;FUS;:H2:7,V",
|
||||
"Vertex5;:H2,V",
|
||||
"Vertex6",
|
||||
"Vertex5;:M;FUS;:H1:7,V",
|
||||
"Vertex6;:H2,V",
|
||||
"Vertex6;:M;FUS;:H1:7,V",
|
||||
"Vertex7",
|
||||
"Vertex7;:H2,V",
|
||||
"Vertex8",
|
||||
@@ -2065,7 +2065,7 @@ TEST_F(TopoShapeExpansionTest, makeElementCut)
|
||||
"Edge2",
|
||||
"Edge2;:M;CUT;:H2:7,E",
|
||||
"Edge3",
|
||||
"Edge3;:H2,E",
|
||||
"Edge3;:M;CUT;:H2:7,E",
|
||||
"Edge4",
|
||||
"Edge4;:M;CUT;:H2:7,E",
|
||||
"Edge6;:G(Edge12;K-1;:H2:4,E);CUT;:H1:1b,V",
|
||||
@@ -2088,9 +2088,9 @@ TEST_F(TopoShapeExpansionTest, makeElementCut)
|
||||
"Vertex1",
|
||||
"Vertex2",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;CUT;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex4;:M;CUT;:H2:7,V",
|
||||
"Vertex7",
|
||||
"Vertex8",
|
||||
}));
|
||||
@@ -2546,13 +2546,13 @@ TEST_F(TopoShapeExpansionTest, makeElementTransformWithMap)
|
||||
"Vertex2",
|
||||
"Vertex2;:H2,V",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;FUS;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex5",
|
||||
"Vertex4;:M;FUS;:H2:7,V",
|
||||
"Vertex5;:H2,V",
|
||||
"Vertex6",
|
||||
"Vertex5;:M;FUS;:H1:7,V",
|
||||
"Vertex6;:H2,V",
|
||||
"Vertex6;:M;FUS;:H1:7,V",
|
||||
"Vertex7",
|
||||
"Vertex7;:H2,V",
|
||||
"Vertex8",
|
||||
@@ -2655,13 +2655,13 @@ TEST_F(TopoShapeExpansionTest, makeElementGTransformWithMap)
|
||||
"Vertex2",
|
||||
"Vertex2;:H2,V",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;FUS;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex5",
|
||||
"Vertex4;:M;FUS;:H2:7,V",
|
||||
"Vertex5;:H2,V",
|
||||
"Vertex6",
|
||||
"Vertex5;:M;FUS;:H1:7,V",
|
||||
"Vertex6;:H2,V",
|
||||
"Vertex6;:M;FUS;:H1:7,V",
|
||||
"Vertex7",
|
||||
"Vertex7;:H2,V",
|
||||
"Vertex8",
|
||||
@@ -3051,7 +3051,7 @@ TEST_F(TopoShapeExpansionTest, traceElement)
|
||||
"Edge2",
|
||||
"Edge2;:M;CUT;:H2:7,E",
|
||||
"Edge3",
|
||||
"Edge3;:H2,E",
|
||||
"Edge3;:M;CUT;:H2:7,E",
|
||||
"Edge4",
|
||||
"Edge4;:M;CUT;:H2:7,E",
|
||||
"Edge6;:G(Edge12;K-1;:H2:4,E);CUT;:H1:1b,V",
|
||||
@@ -3074,9 +3074,9 @@ TEST_F(TopoShapeExpansionTest, traceElement)
|
||||
"Vertex1",
|
||||
"Vertex2",
|
||||
"Vertex3",
|
||||
"Vertex3;:H2,V",
|
||||
"Vertex3;:M;CUT;:H2:7,V",
|
||||
"Vertex4",
|
||||
"Vertex4;:H2,V",
|
||||
"Vertex4;:M;CUT;:H2:7,V",
|
||||
"Vertex7",
|
||||
"Vertex8",
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user