* 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>
The cone features in Part and PartDesign automatically create a cylinder if top and bottom radius are identical. However, the algorithm
ignores the angle and always creates a full cylinder.
This is a stopgap measure, I don't know if the underlying issue is fully understood - but this prevents it from happening in the given test case.
By overriding the base for the pocket prism, which is a trick also applied by
TopoShape::makeElementPrismUntil() if the prism creation fails on first try, the bug where said prism goes to the wrong shape is avoided - this on its own would however break a pad in the inverse case, so we only do that when pocketing
* Loft Intelligence - Select the whole sketch if the selected shape is a component of a sketch that is not a vertex (Fix#16630)
In fa8f29aed4 FeatureLoft.cpp was refactured, dropping some functionality, mainly the ability to create lofts to entire sketches or other 2d shapes if a single component that was not a single vertex was selected as either the base shape or a section
the old code was:
1 auto getSectionShape =
2 [](App::DocumentObject* feature, const std::vector<std::string> &subs) -> TopoDS_Shape {
3 if (!feature ||
4 !feature->isDerivedFrom(Part::Feature::getClassTypeId()))
5 throw Base::TypeError("Loft: Invalid profile/section");
6
7 auto subName = subs.empty() ? "" : subs.front();
8
9 // only take the entire shape when we have a sketch selected, but
10 // not a point of the sketch
11 if (feature->isDerivedFrom(Part::Part2DObject::getClassTypeId()) &&
12 subName.compare(0, 6, "Vertex") != 0)
13 return static_cast<Part::Part2DObject*>(feature)->Shape.getValue();
14 else {
15 if(subName.empty())
16 throw Base::ValueError("No valid subelement linked in Part::Feature");
17 return static_cast<Part::Feature*>(feature)->Shape.getShape().getSubShape(subName.c_str());
18 }
19 };
this commit forward-ports the missing functionality provided by line 7-12 in above snippet
* Code cleanup as suggested by (#16791)
* [PD] fix Pad UpToFace and UpToShape
* specify struct pointers for Win
* Rename variables for MSVC compatibility - windows.h defines 'near' and 'far' as macros
* Add unit test
---------
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
* PartDesign: Prepare for clang-format
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Update to Toposhape versions and fix shapebinder references with test
* Update src/Mod/PartDesign/PartDesignTests/TestShapeBinder.py
---------
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>