The passing of Steve Jobs reminds me of my first serious project, and by serious I mean that it was complicated and I got paid!
Back in the early eighties I was talking to the design department of a light engineering company that made precision gears and gearboxes. I was just out of high school and pretty cocky. They showed me their method for visualizing gear tooth and gear tooth space, which was a collection of plastic templates and shapes. You used these shapes and a ball-point pen to scribble, in the same way that you would use a Spirograph, round and round, rocking the shape around the curved template until the clean space in the middle showed you the shape of the gear teeth.
They explained to me that a gear tooth is composed of about 8 curved surfaces, some of them simple, some of them complex (involute). I was pretty good at maths and geometry, and had been setting my self programming problems on various micros such as the TRS-80, Video Genie, PET and Sinclairs. The design department had recently bought an Apple II and in my arrogant enthusiasm I said that if they could describe the geometry, I could write something that would draw these shapes and allow them to be printed out. The only other option at that time was to use a very expensive early CAD system made by Racal.
It turns out that although there are many curved surfaces on a simple gear, there are only about 4 parameters used to cut them. The gear inner and outer radius, the number of teeth, and adjustment to control the under, or over-cutting of the tooth space. Of course, there are many complex gear shapes, but for this project we were only considering a simple gear. No worms, or helical, or anything exotic. Armed with an A0-size piece of paper and a drafting table I set about mapping out the various curves and how they all connected when the cutting parameters were defined. This took much longer than I anticipated, but eventually I convinced myself that I’d got it down.
I started coding it all in Applesoft Basic, which at the time had some advantages over its Microsoft core, including some advanced trig functions and floating point arithmetic. After a while I was generating screen images of gear teeth, the problems started when I came to figure out how to print the screen. I remember acquiring some code from a magazine to do screen dumps, but I was already using too much memory and had reached the limits of the massive 96KB of memory. The solution was to swap a large chunk of the program into the video memory whenever I initiated the print, and then swap it back out once printing was complete, which meant that I had to turn the screen to blank once print was started.
It all worked. It was slow, taking about 5 or 6 minutes to plot, and was difficult to validate the output since the only other methods were to use the Spirograph or actually cut the gear. They used it for a few years until they finally invested in a CAD/CAM system, which could also integrate with the computer-controlled lathes on the shop floor.