Kunda1 is kindly taking care of the addon manager, and asked addon developers to document their addons and present them here , on the forum.
So, here is a presentation of my "Curves" workbench :
https://github.com/tomate44/CurvesWB
Important foreword :
- I am a very bad coder, and this workbench is probably very badly coded.
- So please don't use it for any serious work
My main interest is about NURBS curves and surfaces ( and I've learned a lot about them since I've been here. Thanks guys ! ).
The first tool is about creating BSpline curves.
Keyboard commands are displayed in the upper-left corner.
![Image](https://github.com/tomate44/CurvesWB/raw/master/docs/pics/BSplineCurve_01.jpg)
Next is a tool that turns an edge into an editable BSpline Curve.
This is a crappy temporary tool, until I make a real freehand curve editor ...
Curve degree can be increased / decreased.
Poles can be moved with the properties of the "Poles" section.
Double-click the "Spline" object to show / hide the control points.
I use it to check the parametric behaviour of the other tools.
![Image](https://github.com/tomate44/CurvesWB/raw/master/docs/pics/Spline_01.jpg)
Third tool joins a set of connected edges into a BSpline Curve.
There is an option for breaking the curve on sharp corners.
It can be useful on imported SVG, to get a real single curve from a smooth SVG path.
Fourth tool discretizes an edge ( or the first wire it belongs to ).
This tool offers all the parameters of the Part.Edge.discretize() python API.
![Image](https://github.com/tomate44/CurvesWB/raw/master/docs/pics/Discretize_01.jpg)
Fifth tool is the best friend of "Discretize". It approximates a set of points to a BSpline curve (or surface).
This tool offers all the parameters of the Part.BSplineCurve.approximate() python API.
When using this tool on several objects, each one will get approximated by a curve.
![Image](https://github.com/tomate44/CurvesWB/raw/master/docs/pics/Approximate_01.jpg)
But if several objects ( with same number of points) are put in a Group, and the tool is used on the Group, it will create an approximating surface.
![Image](https://github.com/tomate44/CurvesWB/raw/master/docs/pics/Approximate_02.jpg)
"Discretize" and "Approximate" could be useful for example in some cases where a sweep operation fails because of a bad sweep path.
To be continued ...