I came to a realization that I can write perl scripts that would tell me exactly how to turn my mill's handles, to get more or less any compound curves I want. Backlash is an obvious issue that is easily addressed without problems.
So, I wrote a script (attached) that would tell me how to mill out a perfect 1/4 of a 1" diameter circle in a flat piece. The output of this script is also attached, and is basically a series of dial positions for the X and Y axes.
Then I printed it, walked to the mill, and turned machine handles exactly as the script told me. In the end, voila, I had a perfect 1/4 of a circle.
Doing just one quarter of a circle allowed me not to deal with backlash issue, which can be extremely easily addressed on Bridgeport style mills (where dials can be released and turned without moving the tables), but I just did not want the hassle.
I can post a photo of the result if anyone is interested.
It took me about 5 minutes, and would probably take less time after I get more used to the process or have a helper read lines to me, or maybe learn to turn handles with two hands one on each handle.
====================================================================== script #!/usr/bin/perl
use strict;
my $pi = 3.1415926;
my $r = 1/8; # 1/4" endmill
my $phi_start = 0; my $phi_end = $pi/2; my $phi_step = 2 * (2*$pi/360); # 2 degree
my $xmark = 0.001; my $x_circle = 200; # 0.1"
my $ymark = 0.001; my $y_circle = 200; # 0.1"
my $x0 = 0; my $y0 = 0; my $R = 1;
my $x_start = $x0 + ($R-$r)*cos( $phi_start ); my $y_start = $y0 + ($R-$r)*sin( $phi_start );
my $x_start_dial = 0; my $y_start_dial = 0;
my $old_x_dial = $x_start_dial; my $old_y_dial = $y_start_dial;
print "Set X dial to $x_start_dial\n"; print "Set Y dial to $y_start_dial\n";
for( my $phi = $phi_start + $phi_step; $phi 0, Y => 30 Move X => 198, Y => 61 Move X => 196, Y => 91 Move X => 192, Y => 121 Move X => 187, Y => 151 Move X => 181, Y => 181 Move X => 175, Y => 11 Move X => 167, Y => 41 Move X => 158, Y => 70 Move X => 148, Y => 99 Move X => 137, Y => 127 Move X => 125, Y => 155 Move X => 112, Y => 183 Move X => 98, Y => 10 Move X => 83, Y => 37 Move X => 68, Y => 63 Move X => 51, Y => 89 Move X => 33, Y => 114 Move X => 15, Y => 138 Move X => 196, Y => 162 Move X => 176, Y => 185 Move X => 155, Y => 7 Move X => 133, Y => 29 Move X => 111, Y => 50 Move X => 88, Y => 70 Move X => 64, Y => 89 Move X => 40, Y => 107 Move X => 15, Y => 125 Move X => 189, Y => 142 Move X => 163, Y => 157 Move X => 136, Y => 172 Move X => 109, Y => 186 Move X => 81, Y => 199 Move X => 53, Y => 11 Move X => 25, Y => 22 Move X => 196, Y => 32 Move X => 167, Y => 41 Move X => 137, Y => 49 Move X => 107, Y => 55 Move X => 77, Y => 61 Move X => 47, Y => 66 Move X => 17, Y => 70 Move X => 187, Y => 72 Move X => 156, Y => 74