If you have a mirror feature and set the mirror plane with the normal feature editing the recompute works. But if the mirror plane is set with the property editor then the recompute fails with the message that no mirror plane reference is set.
This is related to a an empty sub-name list of the link property instead of a single and empty sub-name element.
This PR allows to specify a sketch, plane or datum plane without a sub-name.
For more details see: https://forum.freecad.org/viewtopic.php?t=86568
This fixes#13238
* [PartDesign] Still a helix fix
If we don't break the helix path at each turns we get a vaild path for
MakePipe (solid) even with an angle.
* Decrease helix tests requirements
* Cleanup and switch to using MakePipe
* Cleanup unused include
* Use Frenet mode in building pipe
* Restore original code, add a control property
* Hide property, and init on new objects
* Restore prior behavior for legacy objects
* Clean up git blame; add missing move to keep helix same with new makePipe call
* Remove debug include
* Use doxygen syntax for deprecation comment
* Add unit tests; restore code for angled helixes; optimize zero angle helixes
* Lower test precision to accept platform variations
* Loosen more
* Correct restoration
* Tweak test volumes to match restored helix creation
* Restore helix generation parameter
* Fix test; delint
This patch substitutes by isAttachedToDocument() (almost) everywhere where
getNameInDocument() is used for this purpose.
The very few places not touched by this patch demand a (just a little) less trivial change.
When we change the returning type of getNameInDocument() to std::string,
those places will be easily found, because they shall generate a compiler error
(converting std::string to bool).
Rationale:
The fact that getNameInDocument() return nullptr to indicate
that the object is not attached to a document is responsible for lots of bugs
where the developer does not check for "nullptr".
The idea is to eliminate all those uses of getNameInDocument() and, in the near future,
make getNameInDocument() return always a valid std::string.
* Correct precision issue in PartDesign::AdditiveHelix
* Simplify getting the end wires
* Remove extraneous loop per @FlachyJoe
* Switch to using mkPS.Shape per @FlachyJoe
* Incorporate guarded efficiency improvement
These options correspond to "up to face" and "2 angles". They are expected to do
nothing right now. However there is also some experimental code for "up to face"
in this commit, whose behavior is not confirmed.