Hi. Just wanted to share my solution with you guys.

I picked up the book "Curves and Surfaces for Computer Graphics" by David Salomon and read the sections on Bezier curves and B Splines. After reading this wonderfully crisp and clear description of splines, it was only a bit of math to get what I needed.

Basically, STEP files mostly use NURBS when defining curves. But the "b_spline_curve_with_knots" command allows for uniform b splines too. It does not discern between the two.

Although an approximating NURBS curve (such as least squares approximation) would be the superior solution for a best fit to a given number of points, it is mathematically much more sophisticated, and therefore not within my grasp right now. So I went with a simple interpolating B Spline, where each spline segment ends at my given points. For my current purpose it is sufficient.

STEP files almost only use "open b splines", which means the curve starts and ends at the first and last control points. So the task was to find the control points in between, which there are n-1 of. But there are only n-3 interpolating points, so I input the last two equations as the tangents at the start and end. This is now a linear system of n-1 vector equations, which is easily solved.

The figure here is my spline, where the 4 interpolating points are the black dots on the curve, and the 6 blue control points are the control points that make the curve pass through the 4 black points

The tangents are also show as dotted lines.