First steps towards CAD standard curve fitting I am interested in building a program to accomodate the following workflow:

A user begins with an arbitrary vector/CAD shape, which they wish to transfer onto paper without using a printer (there are both realistic and novelty reasons why this problem is interesting to me). The program will accept this file and create a list of instructions to draft the shape using ruler, square, compass, and standard curve forms. I am not currently concerned with the details of this program (file formats, types of vector curve [spline, bezier, etc], output formatting, etc) but with the core geometric description problem. I think it is fairly straightforward to accomplish this with straight lines, angles, and offsets.

However, I am not sure how to approach the problem of curve fitting. Ideally, the user would be able to have curves in the cad file fit (probably approximated) so that they may draft them using standard French curve forms, including:


Hip Curve


Vary form curve

Assume that these curves are made to standard shapes and sizes and are modeled with dimensional accuracy. Furthermore, they are ruled at specific points and a user can place them on the paper diagram at specific positions and angles (relative to the other elements in the diagram that have already been drafted).

What would be the first steps towards solving this problem? Are there existant computational geometry methods for approximating curves with (segments and combinations of) standard forms? What literature would I want to read? I apologize for the somewhat open-ended nature of this question, but it's difficult for me to determine where to begin.

If it's helpful, the CAD patterns are probably such that the curves can, in fact, be very closely approximated with just one or two of these shapes - the primary use would be for fashion pattern drafting, and these French curves are specifically designed for creating the geometry of flat patterns that fit a human body.
Since you have a limited set of tools you are not actually doing a classical fitting. What you have is a discrete problem. And since you are looking for a somewhat easily drawn fit, no more than twice segmented for example.

One way to approach this is to find all the points that match your curvature requirements. Then find the point x units away from point on both ends for all of these and see how well it matches. If the curvature match at the endpoint is too much off then this isn't a good candidate. If you don't find a good candidate split the problem into two. Once you have found a goodish candidate slide the result to see if relaxing the thing makes the error more symmetric.

Some things to note. Since your french curve is accelerating from one end to another you need to split beziers and b-splines at each span where the curve changes direction. Also once you've found good endpoints be sure to check that the halfway isn't too much off.

Now if you want to do a classical fitting like approach then you need to parametrize the sliding and scale of your curve. This is not likely useful since you in fact can not scale your rules at whim.

Or then you could just get a spline, you know one of those things that were used before computers and stuff, and write instructions on how to set up the spline.