==============================================
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)
=================================================
With the support for external geometry during carbon copy, it was introduced a way for creating inter-part/inter-body links. See:
https://forum.freecadweb.org/viewtopic.php?f=10&t=27700&p=223736#p223736
This commit closes this door, while still allows carbon copy with external geometry support within the same body.
=======================================================
set/get/toggle python interface to enable to set the virtual space status of a constraint via SketchObject.
================================================================================
When transfering constraints to coincident points on deletion of geometry, a tangency/perpendicular constraint
cannot be blindly transfered as the destination edge may not be tangent/perpendicular leading to unexpected behaviour.
However, the user does expect that something that was coincident with such end-to-endpoint constraint (which implicitly includes a coincident constraint)
remains coincident after deletion. Therefore, the change of type to coincident.
This implicitly solves the problem of representation of constraints leading to a crash in coin3d.
fixes#3291
=============================================================
Just amazed it was working "so well" without never reseting to zero this.
It might bring advantages and close bugs... who knows!
========================================================================================================================================
Motivation:
- Improve notifications of redundancy in the solver (Bonus effect, now the sketcher refuses to add a redundant datum constraint)
- Initialize all solver information, so that it is accurate also in corner cases.
- Provide different return codes for the different solver status/conflicting/redundant/overconstraint (also looking forward for a future refactoring)
Impact:
- Python users that are currently using the return code of solve() for detecting overconstraint/conflicting/solver error, if any, might have to adapt their scripts.
Those who are just checking for zero/non-zero will have to do nothing.