mill without CNC controls]

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 $y_start = $y0 + ($R-$r)*

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