Reverts PR #17438
The PR experienced sever performance issues when the file contained
objects with errors. This PR removes the physical properties attributes
and its associated calculations.
It retains changes to the material filter funtions which were not
affected by the errors.
Neither in #18332 nor in any of the referenced issues a reason is given why the placement of the coordinate axes must be changed.
Only doing it to make the client code look more consistent is not a valid reason.
This change breaks forward and backward compatibility and with #18717 we already have a hard to solve issue. Furthermore, at this
point of time it's not even clear what other collateral damage the change may cause.
So, this commit hides all the implementation details of the DatumElement and restores the original placement for the axes.
This commit makes the line migration code obsolete
The default display type of quantity objects is fixed point resulting
in insufficient accuracy when changing unit systems, or when the values
are small. This fix changes the default format from 'Fixed' to the more
apt 'Default' format. This allows the displayed values to scale as
appropriate.
Fixes#18149
We could make `GeomCurve::createArc(...) = 0`, but then it needs to be
implemented in many subclasses which cannot be incomplete. It is implemented for
some of them, but others may need additional work (e.g. offsets), and would need
some exception throwing similar to what is now used.
Most of App::Origin is moved into this sub class of App::Origin.
Add App::Point. Change graphics of the planes/axis.
Remove scale-by-content behavior and make it fixed size on screen.
Add dynamic attributes to report the physical attributes of a part that
are automatically recalculaated when the shape or material changes.
These values are accessible from the part data display and as attributes
within Python
In ../src/Mod/Part/App/Geom2d/ sixteen out of seventeen XML
files needed repair as per the GitHub issue. Tabbing in those
sixteen files set to 4-spaces no-tab-chars. Other minor
changes as needed.
* fix#17468 recursively unpack compounds for boolean fuse
* fix and into &&, add ctest case for multifuse with compounds and recursive compounds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* remove unneeded duplicated code - allow Part::Common to be created with a single object (compound or shape) - will result in Unity and possibly a warning message
* prevent endless loop in case of endless recursive compounds as suggested in chat
* Update src/Mod/Part/App/FeaturePartFuse.cpp
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
* implemented suggestion by wwmayer
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
* increase tolerance on helical shapes to avoid crash
fix#17113fix#9377fix#11083
* added test cases for additive and subtractive helix
* fixed whitespace issue, reduced turncount for speed
* relaxed large scale testcases for OCCT 7.3 and below, work around windows CI error #17394
* Further reduce max size in test for buggy Ubuntu OCCT
* 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.
Write all XML attributes of the Geometry element into a single line.
Currently the XML output looks:
<Geometry type="Part::GeomLineSegment"
id="-1" migrated="1">
With the fix it will be:
<Geometry type="Part::GeomLineSegment" id="-1" migrated="1">
A loft or pocket only makes sense if the segments used for it have some minimum separation. Having the shapes identical causes segfaults in OCCT
Checking for CoG is a hack. Identical shapes have identical CoG - but an identical CoG does not necessarily mean identical shapes - however it can be argued that a shape that is not offset at least somewhat in the direction of the loft doesnt make a valid shape for a loft (it will typically freeze OCCT instead of crashing it) and a sufficiently suitable shape will have a different CoG
throwing the exception will make it easy to identify if there ever is a case where this is a bad thing - and exceptions are better than segfaults.
* [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>
* Initial commit to apply delta also for interactive measurement
* Not required special logic to check if possible, it can be easily checked if the property exists
* remember setting so it is not required to turn it always on
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Measure: Use getGlobalPlacement method
Fixes#16058
---------
Co-authored-by: Martin Marmsoler <martin.marmsoler@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>