NOW you are talking CNC(;-) It can replicate the exact shape over and over again.
There is also a free plugin called Jcode on the plugins page that may be of interest.
ALSO I had an idea standing here loading the pen plotter and watchin it FIND the paper.
Useing the encoder approach you could move back and forth across the blade to locate the key points ,staight lines(inside a deadband value say +/- .005 )
Then locate the startpoint and end point of the arc. Then calculate the MIDPOINT of the arc (startpoint - endpoint /2) then use the startpoint ,endpoint, midpoint offset to create the arc.
You then can then use these values for the program to write a Gcode GRINDING program based on those values. IF you used the contact tip of the encoder that was the radius of the wheel then NO further comp needed. You would then have a very GOOD (corrected for bad grinding ) grind profile. that represents what the PROFILE should have been. AND you can replicate it exactly over and over again (save the Gcode file(;-) ).
AND this should be doable inside of MACH3 and CB
What do you think, (;-) TP