To illustrate what I mean, I’ve created a simple 3d curve which is a “likely-to-happen” “bordercase”. This surface shall be flanged in y-axis by 5.1 degrees, and will be tested for 5.0 degree flange angle.
You can see 3 flanges created by three different algorithms.
The first one is my own implementation which creates a loose flange.
My algorithm isn’t the best, but it gets close to 5.0 without increasing control points.
I would simply increase the initial angle to 5.2 or increase the order to get it above 5.0 here.
The second algorithm is the Rhinocommon functionality “Brep.CreateFromTaperedExtrude”. You see that it creates an result which is absolutely green but it increases controlpoints count up to 80. Basically it creates multiples surfaces merged together.
However you can use the “Refit” command to optimise the outcome, which then leads to an quite nice result:
The third algorithm was not created in Rhino. It keeps the surface and the controlpoint low and its distribution equalised so it creates a very good flange.
(The red lines can also be due to the analysis mesh, but it shows how difficult this operation is.)