First, after importing all the measurements into Rhino, I build a patch surface with all those points, like this:
Then I intersect through horizontal planes located 3 mm apart. For example, the intersection with the plane located at 8 mm (3 mm higher than the edge, as the top has a thickness of 5 mm there) looks like this:
It obviously has something wrong near the neck. The reason is the lack of precision in the thickness measurements taken with the dial caliper. After making all those intersections and smoothing the curves manually, this is the result:
The yellow line has the same height as the edge, i.e., 5 mm.
Then I patch all those curves, including the edge. The stiffness of the patch is important, and should be adjusted carefully, checking by means of intersections with horizontal and vertical planes. I have two sets of planes that make this easier to check. For example, this is the result of a check operation for both sides of the top, using vertical planes:
Once this is done, I trim the surface along the curve near the edge:
And substitute the missing surface with a plane:
This way, I avoid the complex surface that the patch operation generates in that area. It is not totally flat, and only adds unnecessary complexity to the NC files. A flat surface is the best way to go when routing the binding channels. Once the bindings are glued, I manually carve a small depression around the edge.
The inside of the top has its peculiarities, complicated by the fact that the thickness is not uniform and that there must exist flat areas to glue the neckblock and tailblock. However, this is not applicable to a Les Paul top.