==========================================================
The order of any operation, including setedit is first solve() and then draw().
This is consistent with geometry addition.
If ViewProviderSketch must insert its own extensions, for example for scaling
weights, then it is its responsibility to set this information wherever needed.
This includes the temporal geometry vector used in draw(true), the solver to
enable dragging operations, and SketchObject Geometry property.
======================================================================
Most of these crashes come from previous code not checking for Constraint::GeoUndef.
Most of these crashes come from isBSpline(), any of the two overloads.
isBSpline is made to throw exception when null, which should prevent the crash while
creating a reportable error.
The class variable name was not corrected with previously committed changes.
The correct cutting edge variable name is located in the __init__() constructor method.
Fixes path generation for selection of two non-parallel edges.
Fixes path generation for selection of single, bottom face of slot with two non-parallel ends.
Fixes path generation for selection of two parallel, bottom bounding edges of slot.
* replaced widget with radiobuttons by button Group, to improve alignemt
of DrillPointAngle with grid-layout
* made Thread Pitch/Angle/Cutoffs widgets wider
===============================
Fixes:
https://forum.freecadweb.org/viewtopic.php?p=458293#p458293
Rationale:
In order to fix B-Spline pole dragging, the order was inverted.
This fixed the B-Spline pole dragging issue, but introduced a
draw before solve approach that is not consistent with the rest
of the Sketcher.
In my parallel development I had already identified this inconsistency,
switched the order, and provided a new mechanism to fix the issue with
the B-Spline pole dragging. This will be merged as part of another PR.
In the meantime, this PR restores the intended behaviour, and let us
identify if the particular reported exception also happens in other
situations.