DeepSOIC wrote:Not something to become obsessed with! I very much like how you went straight into the most comprehensive BSpline support. Weight control in Sketcher BSplines can easily become a big feature point for FreeCAD.
Once upon a time, there was a Russian guy who gave the Sketcher solver a most generic tangency support by adding a not very widely known "Angle via point" constraint (yeah that strange thing that you can constraint an angle with a selection of three elements almost nobody knows about). Half angle, half tangency, half perpendicular (yes 3 halves, you can normalize later), apart from driving crazy other developers at first, this constrain forces every developer wanting to support a new type to write a function to return the normal at a point of the curve, and in return provides seamless tangency support among any supported curve. This is indeed FreeCAD's Sketcher core of complex tangencies/perpendicularities (e.g. arc of parabola to whatever).
Today, thanks to this, and for non-periodic BSplines with proper endpoint multiplicity, without almost writing any code, we get endpoint tangency of whatever to BSpline without any De Boor recursion or else:
- bspline-endpoint-tangency.png (13.98 KiB) Viewed 1328 times
For this, which I am sure will be very useful in the introduction of simple but powerful BSpline support and for your long term service to FreeCAD's Sketcher, I am honored to give you DeepSOIC, the highest award of FreeCAD's Sketcher, the BSpline-tangent-to-parabolic-arc-tangent-to-ellipse-arc-tangent-to-hyperbola-arc award (so that if you wish, you constrain its 18 DoF to shape it as you wish). Thanks for this gem.
- sketcher-tangency-prize-DeepSOIC.png (19.72 KiB) Viewed 1328 times