This looks complex but bear with me, it illustrates a fundamental property of NURBS curves that is critically important to avoid a hard point or crease when matching curves/surfaces on a mirror plane. I learned this very early in my CAD musings with double-ended boat hulls. Same goes for this helmet.
The BzSpan components produce only four control points. When ‘Start tangent (At)’ and ‘End tangent (Bt)’ are pure ‘X’ vectors (‘Y’ = 0), both ends of the section curve are parallel to the X axis and perpendicular to the YZ plane, which is exactly what you want.
Rebuild Curve adds control points that spoil the end tangents, You can see this by zooming in to the white control points nearest each end; they don’t have the same Y values as the end points. Text panels (purple group) show the difference in Y between ‘Errant CPs’ and ‘End Points’.
helmet_2023Feb16a.gh (38.0 KB)
The basic fix this code does is replacing the errant Y values with the endpoint Y values to create the blue points. Fixed! Full stop. The crease when joining the mirrored half surfaces disappears.
This code goes one step further by offering sliders (blue group) to move the repaired control points in the X direction, front and back of the helmet, either to match the original curve better or to modify it.
The yellow group is optional, disconnected and can be ignored. Its purpose is to explore the minimum number of control points needed for Rebuild Curve ‘N’, instead of the default 10.