==========================================================
Trimming was not considering a case where an ellipse is trimmed with respect to its own internal aligment geometry.
This resulted in Coincident Constraints with PointPos = Sketcher::none, which is invalid.
==========================================================================
Intercurve fillet uses endpoint constraints for improved accuracy, but before this
commit was only considering a coincident constraint. Now it also considers an endpoint
tangency or perpendicular.
delConstraintOnPoint with coincidentonly=false, was not checking endpoint perpendiculars and
would therefore fail to delete them.
https://forum.freecadweb.org/viewtopic.php?f=3&t=31594&start=30#p265731
=========================================
This commit introduces two functions to operate on all datum constraints exclusively:
- Make all datum constraints driving or not driving, depending on the argument.
- Move all datum constraints at the end of the constraint list.
The practical use an ongoing effort towards improving the block constraint behaviour, that will be defered to 0.19
==============================================
Generally, bounded curves require that the curves are coincident at one point, the vertex to be filleted.
Trimmed curves, like combinations of line segments, arcs of conics, do not require it, as they are able to extend the trimmed
curve using the basis curve. However, they work fine when there is such a coincidence.
=============================================
Angle constraints are internally coded using the diverging points of the segments (PointPos != none) in normal 2 segment angle constraints.
This creates a problem with the mechanism to transfer enpoints on angle deletion.
fixes#3589
Apart for the inclusion of the Analysis functionality, SketchObject has been improved to provide:
- A fast painless deleteAllConstraints() function
- A fast painless constraint group deletion, delConstraints(std::vector<int> ConstrIds, bool updategeometry)