Marv Klotz's Utilities


Last update: 22 September 2014


My thanks to Scott Ripley, who is gracious enough to host this site and who has patiently assisted in its development.


Introduction to the Software [Goto Index]

*** NOTA BENE ***: If you're too lazy to read this introduction, at least read the last four paragraphs so I don't have to waste my time answering questions already answered here. These heritage DOS programs will not run directly on the newer 64 bit operating systems. All is not lost however. Download and install the free program DosBox, and you'll be able to run heritage programs on your 64 bit system.

A collection of home shop, mathematical and miscellaneous utility freeware. Almost all the programs written by me are written in C and source code is included in the zip files - for submitted software, source code availability is at author's discretion. Programs run under DOS (I don't do windows) - although I expect most will run in a windows DOS window (recent feedback from a number of users confirms this assertion).

For the benefit of web novices, one can download the zip file by clicking on its name in the tables below. Once downloaded to your disk, unzip the file using PKUNZIP, which can be obtained from the good folks at PKWARE

Unzip the zip file in a newly created subdirectory on your hard disk. You will find, at the minimum, two files. The file with a "C" extension is the source code. Unless you're into programming, you can ignore it (even delete it if short of hard disk real estate). The file with the "EXE" extension is the program. Run it by typing its name (without the extension) at the DOS prompt. If the program requires any auxiliary files (e.g. DRILL.EXE expects to find DRILL.DAT) it expects to find them in the default directory, so make your newly created subdirectory the default before attempting to execute the program. Many of the programs have built-in default values for the user inputs. Running the program using these defaults will give you a good idea of how it works. Naturally, the defaults can be overridden by user input.

I haven't had time to write extensive documentation for some of the programs. If the zip file doesn't contain a documentation file ("TXT" extension), the program itself contains (I hope) enough run-time hints so that a user familiar with the subject should be able to get the answer he needs. (Hey, at the price I'm charging, a little effort on the part of the user is assumed!) If serious confusion is reported to me, I'll make an attempt to provide clarification in a future documentation file.

Lest I bore more accomplished users with needless instruction, I've written a NOTES file which contains answers to questions I've received in the past. Let me know if you want any useful hints added to this file.

A number of DOS-challenged users of my programs have written to complain that when the program terminates, Windoze, in another one of its mis-guided attempts to think for the user, closes the window before they can inspect the answers generated by the program. Dave Wood has spent some time working out how to keep Micro$oft's abortion from trying to outthink the user. He writes:

In Explorer, right-click on the .exe program name. Select "Properties". Select the "Program" tab. At the bottom of this dialog is a single check-box "Close on exit". Un-check this box. At the bottom of the dialog click on "Apply," then "OK".

His remarks are specific to XP but I expect they are applicable to other flavors of MS so-called operating systems.

Also, Anthony Nagy writes, "I discovered that if you create and use a shortcut to run the program it will run under Windows and not terminate. I run Windows 2000. This may also work with your other programs and other versions of Windows."

Home Shop Software [Goto Index]

(click to download)
(~30 Kbytes)
Calculates the best wire size and measurement over wires when using the three wire method to check the pitch diameter of a thread.
(~35 Kbytes)
You don't need to buy/build a ball cutting attachment for your lathe if you only need to cut occasional, non-critical spherical shapes. This little program will give you a printable incremental cutting schedule that gets the job done fast. Guy Lautard documents this technique but I was using it long before he documented it. The tables in his publications limit one to certain pre-determined ball diameters. This program will produce a tailored cutting schedule for any diameter. BTW, this type of machining is referred to as HAM (Human Assisted Machining)! See also PROFILE.
(~118 Kbytes)
While building a flat belt transmission system, I needed to calculate belt lengths and pulley sizes. The .zip file contains three programs. One to calculate belt length for an arbitrary arrangement of many pulleys, one to more quickly solve the same problem for two pulleys, and a third to calculate pulley size when the belt length is already set, as is the case with cone pulley speed changers.
(~28 Kbytes)
When making bends in metal of non-negligible thickness, it's tricky to decide how much extra length to allow for the bend. This is a quick and dirty algorithm that's worked for me in the past. I lost the reference so I can't credit its origin though I think it was Hoffman in HSM.
(~31 Kbytes)
It's often easier and more accurate to lay out holes on a boltcircle with x-y coordinates than to scribe and step off the circle, especially if the number of holes is an unusual number. This program does the work and generates a table which you can print and carry to the drill press for reference. See also CHORD.
(~31 Kbytes)
How to calibrate a bucket-shaped (conical frustum) container.
(~44 Kbytes)
When I had to make a cam for one of my engines, I discovered how little I knew about cam design. I did some research and incorporated what I learned into a program to design four common types of cams. While I'm hardly an expert on the subject, my efforts may be of value to some of you. Any professional cam designers can email me and tell me what I've left out.
(~61 Kbytes)
Finally took a stab at writing a program to select change gears to obtain a desired thread pitch/carriage feed. With the usual data file for tailoring to your equipment. New improved version added 6/2/01.
(~19 Kbytes)
For those who insist on marking out subdivisions of a circle the old-fashioned way and don't want to use BOLTCIRC, this tool will compute the chord length needed to divide a circle of input diameter into any number of parts. See also BOLTCIRC.
(~21 Kbytes)
Something for the woodworkers. Compute the blade tilt and miter gauge angles for cutting compound mitered pieces to assemble into a 'polygonal conoid' shape. See also POLYCONE, SINE and SINEBAR.
(~20 Kbytes)
John Way, writing in Machinist's Workshop, devised a way to make collets for square or hex stock without using a spendy broach. I coded his equation for calculating the required collet bore.
(~20 Kbytes)
Most of us are familiar with the process of angling the compound slide so that a given movement of the slide produces a lesser movement of the tool towards the work. Given the required ratio, this program computes the angle needed to achieve that ratio.
(~30 Kbytes)
Calculations for laying out a frustum of a cone on flat material prior to rolling.
(~84 Kbytes)
Tom Roach in South Africa needed a program to compute connecting rod clearance relative to cylinder bottom. Between the two of us we arrived at a useful description of the problem and the equations to solve it. Tom's application was IC engines but the calculation is equally useful for steam engines - either cylinder clearance or crosshead guide clearance in engines that employ a crosshead. See also CROD.
(~44 Kbytes)
Tom Roach in South Africa suggested a program to compute piston position as a function of crank radius and angle and connecting rod length. A useful tool for engine designers. See also CONROD.
(~56 Kbytes)
When approximating flat surfaces with a ball mill, it's desirable to know how far to move the cutter to keep the 'cusp' height below some value.
(~82 Kbytes)
Solves the problem of how to cut many pieces of various lengths from stock that comes in standard lengths (e.g., pipe, lumber) with minimum waste. A complete cutting list is produced and an ASCII data file allows easy tailoring to your problem. 2/14/02 added Mike Graham's much improved version of how to solve this problem - CUTLIST. Also included is REMNANT, which uses Mike's algorithm to solve the problem of how to optimize cutting of parts from random length remnants of available stock.
(~28 Kbytes)
A friend wanted to drill a 0.5" blind hole 1" deep but didn't know how much to allow for the tapered end of the drill. Assuming you know the included angle of the drill tip (typically 2*59 = 118 deg) this will tell you how much to allow for the cylindrical part of the hole to be as long as needed.
(~57 Kbytes)
Unlike most of the entries in this table, this is not a program but rather a collection of data files I've compiled over the years. I keep a copy of CHART.TXT lying on my workbench for constant reference. (I printed it with a Simtel utility that prints up to four pages of text on a single side of an 8.5 x 11" sheet!) How many threads per inch on a #6 woodscrew ? - you'll want to know if you make lathe chucks for your woodturning friends. I won't vouch for the accuracy of any of this data since I didn't research the files, but I doubt any of it is very far off the mark. BTW, I welcome any additions you can make to this selection - help other amateurs with data that's hard to find.
(~38 Kbytes)
A Differential Dividing Head (hence DDH) creates the possibility of large numbers of divisions by using gearing to move the hole plate at some fraction of the spindle rotation. This program aids in determining which gears are required for a given number of divisions.
(~32 Kbytes)
A sister to SPEED. Put the available speeds on your machine tool into the data file and this will calculate the diameter range to machine for each speed as a function of the material.
(~35 Kbytes)
Very fine threads are great for precise positioning and generating large torque advantages but one seldom has the gear to cut the threads and, once cut, they're very delicate. A more practical approach in many applications is to use a differential thread. This tool will tell you all you need to know to do it.
(~26 Kbytes)
Dennis Blagirowicz wanted a program to help him to calibrate a dipstick to be used with a horizontal cylindrical tank. Given the tank diameter and length of wetting on the dipstick, this program calculates the fraction of total volume remaining in the tank. The program also includes similar calculations for spherical, elliptical and cartouche-shaped tanks. A recent update adds bucket and barrel shaped tanks. A further update covers horizontal cylindrical tanks with dished and hemispherical end caps.
(~97 Kbytes)
John Rothen wanted software for computing turns and holes on a dividing head with a non-standard worm gear ratio. I wrote a program that can be customized via a data file for ANY dividing head configuration. Also includes a program to determine which hole plates you'll need to generate all the divisions up to some input number.
(~29 Kbytes)
I don't cut a lot of threads on the lathe and I confess to being confused by the myriad designations in Machinery's Handbook. This tool computes depth-of-thread (absolute and with compound at angle) for all the combinations of sharp/flat roots/crests for the 60 deg. Unified thread form and can also be used for other thread forms (e.g., Whitworth).
(~31 Kbytes)
Dovetails are traditionally measured across cylindrical rods wedged against the sloping faces. This tool implements the associated trigonometric calculations.
(~44 Kbytes)
How does one make an accurate dividing plate when one doesn't have a dividing head? It's a proverbial chicken-egg problem. This describes a straightforward way of doing it with nothing more than a lathe and a bit of mathematics which the program will sort out for you.
(~40 Kbytes)
Drill size utility. Find drill given hole size or hole size given drill designation. Find tapdrill size for any tap (m or I) and desired depth of thread. Accommodates number, letter, fractional and metric drills. ASCII drill data file allows one to tailor drill data base to whatever drills one has available - drills I've left out are easily added. Step drilling option. Now includes thread forming tap drill computation.
(~39 Kbytes)
Need to turn an eccentric and don't have a four-jaw chuck (or don't want to set it up for a quick job)? Packing the work in the three-jaw will handle many jobs. This tool calculates the amount of packing needed. A more elegant method employing a slotted tube is also described along with a program for making the required calculations.
(~44 Kbytes)
Make breakfast on your lathe? Well, sort of. In Nevil Shute's book, "Trustee from the Toolroom", he describes the making of (metal) eggs on the lathe. I wanted to explore the difficulties of doing that so I wrote this demonstration program, based on my PROFILE, to prove that it could be done. Since I doubt that very many people want to do this, the program is just a demonstrator, not a finished tool. Should anyone want to get into the metallic poultry field, contact me and I'll make it into a user modifiable tool.
(~34 Kbytes)
Calculate the (linear) expansion for various materials given the change in temperature. Also calculate the temperature change needed for an input change in dimension.
(~30 Kbytes)
Yet another feed rate calculator. You enter any three of: speed, number of cutting edges, chip load per tooth and feed rate and the program calculates the unknown quantity.
(~41 Kbytes)
Andy Pugh, UK, has compiled a table of ~400 "standard" threads arranged in order of size (from 10 Whitworth instrument (0.010" dia.) up to 6" Gas) identified by type. A very handy tool for identifying 'mystery' threads one might encounter - especially when dealing with British equipment. The list is a bit tiresome to search by hand if one is trying to identify an unknown thread. I wrote a program to search it using either major diameter or pitch as the search argument.
(~32 Kbytes)
Machinery's Handbook devotes nearly fifty pages to the subject of various fits of a shaft to a hole. Tubal Cain's Model Engineers Handbook devotes less than half a page to the subject. For reasons that don't require elaboration, I took the latter data and incorporated it into an easy to use program (with data file for your amendments). Unless you're building super high precision equipment, I think you'll find it more than adequate.
(~89 Kbytes)
Tapered flutes can be made by milling a channel on a tilted workpiece with a ball mill. This program calculates the depths of cut and required inclination angle.
(~91 Kbytes)
Tapered spoke flywheels make a model engine look elegant. Here's a tool to help in making them. Includes a .jpg sketch to make things more understandable.
(~285 Kbytes)
Two spheres can be used to measure a female taper. This program uses the measurement data to calculate the taper angle. See also TAPER.
(~32 Kbytes)
Confused by gage numbers? What's worse, the systems for wire and sheet metal are different. This utility will find gage number given thickness or vice versa. With the usual ASCII data file so you can tailor it.
(~28 Kbytes)
The perfect gas law is a handy tool in engine design and elsewhere but it's use and the units involved can be confusing. This gas law calculator will help keep things straight.
(~32 Kbytes)
John Cooper's article on gear making in the 4/99 issue of Machinist's Workshop inspired me to collect his clearly explained calculations into a program that produces a data file to carry to the shop for reference.
(~97 Kbytes)
Given a desired gear ratio and associated tolerance, this program will search for a gear train that produces that ratio. Similar to GEARATIO but doesn't presume a pre-existing set of available gears.
(~29 Kbytes)
If you have a set of gears (e.g., change gears from a lathe), you may want to use them to establish a ratio for some other application. This program automates the process of deciding which gears to use to obtain a desired ratio. See also GEARFIND.
(~21 Kbytes)
An experimental program to allow HSMs lacking sophisticated gear measurement tools to distinguish between 14.5 and 20 deg pressure angle gears. Feedback on the (non)utility of this program is requested.
(~20 Kbytes)
Enter any two of number of teeth, outside diameter, pitch, or pitch diameter and this program will calculate all the other relevant data for a spur gear.
(~20 Kbytes)
Chuck Fellows developed a really clever way to make helical gears. I've incorporated his calculations into this program as an aid to model engineers who may want to try his method.
(~79 Kbytes)
Not a program but a completely unstructured collection of hints and mini-projects that some may find useful. I welcome additions to this file, and credit will be given for anything submitted. Included are some of my thoughts about operating in a tiny, crowded shop.
(~28 Kbytes)
Enter any two of torque, horsepower, rpm and this little calculator will find the unknown quantity.
(~28 Kbytes)
To obtain perfect knurls on the first try, the circumference of the work should be an integral multiple of the tooth spacing on the knurl wheel. This little tool takes all the work out of making the required calculations.
(~29 Kbytes)
Helpful calculations for making tapered, radiused-end links.
(~28 Kbytes)
How much thread engagement is required to ensure that a screw will break before the threads strip out?
(~31 Kbytes)
Make that tool you built read more precisely with a vernier. Designing verniers isn't exactly nuclear physics but the novice may benefit from this tool.
(~28 Kbytes)
If you wind your own springs, you know that sizing the mandrel for winding is generally done by guesswork. Kozo Hiraoka, writing in HSM, has produced a formula for calculating the required mandrel size that should help to get you close. I coded his formula to make it easier to use. See also SPRING.
(~31 Kbytes)
You probably learned how to do mixture and dilution problems in high school algebra. If you don't remember or can't derive it quickly then you need this tool.
(~59 Kbytes)
An accurate technique for measuring the radius of curvature of a part. A .jpg file illustrates the setup and the program performs the requisite mathematics.
(~33 Kbytes)
Redgie Joy requested a program to implement the calculations for accurately measuring the included angle of a conical part using a precision V-block and a sine bar.
(~77 Kbytes)
While the program name accurately describes my singing, this has nothing to do with music. If you have a cam keyed to a shaft and wish to change its phasing relative to the shaft by a few degrees, one way to do it is to make an OFFset KEY (hence the name). This program will provide the data you need to build such a key. Thanks to Ronnie Shultz for suggesting this tool and assisting in its design.
(~41 Kbytes)
A typical rocket nose cone shape is described as an 'ogive'. This program, an outgrowth of PROFILE, will allow you to incrementally turn such shapes on a lathe.
(~30 Kbytes)
Guy Lautard documents a quick and easy iterative method to accurately center round stock in the milling machine - the so-called "Osborne Maneuver". I wrote a short program to examine how quickly this procedure converges. This is a very useful trick - read the .TXT file for a description.
(~53 Kbytes)
Got a hole too big for your largest plug gage? Les Saunders solves this problem by measuring the hole with three smaller plug gages. I wrote a little program to help him select which three gages to use.
(~31 Kbytes)
A polycone (my terminology) is a 3D figure with regular polygon base and facet-like triangular faces that meet at a central point to form a conical shape with flat sides. Tetrahedrons and pyramids are examples. This program calculates most of the dimensions and angles associated with such a shape.
(~51 Kbytes)
The generalized form of BALLCUT.C, capable of incrementally cutting ANY user-specified, non-critical profile on the lathe. You specify part radius at intervals along the axis of the part and it generates a cutting schedule that approximates the part profile to whatever detail your patience will tolerate. (See also SPLINE, BALLCUT.)
(~72 Kbytes)
A sinebar is the preferred way to accurately set or measure an angle. On the other hand, a protractor is a very handy tool in a number of applications. Wouldn't it be nice if we could combine the accuracy of the sinebar approach with the convenience of the protractor? This discusses an attempt to do just that.
(~31 Kbytes)
There are so many rules these days, wouldn't you just know there's a rule for numbers? Seriously, if you need to make a graduated set of anything, the "American National Standard for Preferred Numbers" is what you need to design your set so as not to attract attention from some three letter government agency. This program will do all the hard mathematical work (yes, logarithms ARE used!) for you.
(~29 Kbytes)
Need to measure a bore bigger than your calipers? Guy Lautard documents an old-timers' technique that works very well. I wrote a program to examine its operation and calculate the actual bore diameter. Also, if you have trouble measuring accurately with internal calipers, you should become familiar with this procedure.
(~29 Kbytes)
Calm down, all you gun confiscation nazis. Go back to designing your liberal nirvanas. This has nothing to do with firearms. Rather it's a tool to do some calculations involved in building a clever (my take, anyway) type of small tool holder that makes it easier to identify which tool you're selecting.
(~31 Kbytes)
Doing dividing? A hole-plate-vernier dividing head is nice, but with a (very) slight loss in accuracy, a rotary table (avoid backlash - go unidirectional) can handle ANY dividing problem. Just hope the vernier isn't calibrated in deg/min/sec (thankfully, mine isn't). If it is (or is properly divided into decimal fractions of a degree), this utility will take the headache out of calculating the settings for any desired number of divisions. (Data file to print and carry to shop.) People on the web actually sell software to do this calculation for $15 - an absurdity when one considers how trivial it is. I know they want to think they're being paid for the programming effort, but is ten minutes of programming worth $15 from every user? Clearly, I think not.
(~32 Kbytes)
This is a tool to assist in rounding over workpieces in the milling machine analogous to the method of BALLCUT for the lathe.
(~50 Kbytes)
A simple and accurate way to make sine bars for machining precise angles is to use two cylinders of unequal diameter held at a fixed distance. This program provides all the machinery to make the needed computations and estimate the error in the resulting angle. A second program removes the need for making the separating link in favor of an approach that uses two butted cylinders of differing diameters.
(~32 Kbytes)
Calculate stack height for a sinebar and examine error behavior thereof.
(~39 Kbytes)
Calculate various parameters for roller chain sprockets.
(~21 Kbytes)
Tired of running the lathe in reverse when cutting metric threads on a lathe with an Imperial leadscrew? Peter Lott, writing in Machinist's Workshop (6/01, vol. 14, no. 3) outlined a technique for getting around this annoyance. I programmed the calculations involved in his approach. As a bonus, the program also allows the technique to be applied to any combination of metric/Imperial leadscrew/thread-to-cut, a feature not covered in Peter's article.
(~41 Kbytes)
Redgie Joy requested a program to do the calculations for chain-drilling a circular hole in a piece of metal. Also included is a program for chain-drilling circular plates from sheet stock.
(~68 Kbytes)
A tool for selecting blocks from a set to make a spacer of given size. An ASCII data file allows easy tailoring to whatever block sizes you have available. Data file for 81 block gage block set included.
(~32 Kbytes)
Calculate the recommended machine tool speed (rpm) given material and size of workpiece/tool. An ASCII data file allows you to adjust values to your own taste and add materials I haven't covered. See also DIAM.ZIP.
(~30 Kbytes)
Calculate the depth-of-cut required to cut a regular polygonal tenon on the end of a cylindrical shaft.
(~20 Kbytes)
Don't have a ball anvil mike for measuring tube wall thickness? An ordinary outside mike and this program will get the job done for you.
(~32 Kbytes)
Incremental cutting of U-shaped grooves (e.g., pipe bending dies) on the lathe.
(~26 Kbytes)
Two plate angular verniers will make your dividing problems easier and save you a lot of hole drilling. This program does all the mathematical design work for you and gives you a table to print for using the device once built.
(~34 Kbytes)
I wanted to make a holder for some punches of varying diameter. Picture a revolver cylinder where each chamber is bored for a different caliber cartridge. How to lay out a bolt circle of holes of various diameter such that the space between adjacent holes is constant. If the punches were all the same diameter, my REVOLVER program would do the job. With differing diameters the problem gets mathematically more complex. This tool sorts out all the nasty calculations.
(~43 Kbytes)
Calculate the weight of regularly (and a few oddball) shaped objects for a variety of materials. An ASCII data file allows you to tailor the available densities to your taste.
(~28 Kbytes)
Wiring that 12 amp motor and can't decide what wire size to use? This tool will show you the recommended AWG wire gage as well as some other useful information.

Mathematical Software [Goto Index]

(click to download)
(~34 Kbytes)
Solves quadratic, cubic and quartic equations with real coefficients.
(~34 Kbytes)
If you've got a linear instrument and are calibrating it, you'll want to use a least-squares filter to find the optimal calibration equation. Sound intimidating? Nah, just feed your data into this program and it'll compute the coefficients for your calibration equation and even develop a tailored calibration table for you. (See also CURFIT.)
(~28 Kbytes)
Compute parameters for a catenary.
(~22 Kbytes)
Given two Gaussian contributors to an error, find the Circular Error Probable for the resultant error.
(~63 Kbytes)
Find the radius of the circle that passes through three (non-colinear) points. This program takes as input the distances between the points. A second program accepts the Cartesian coordinates of the points and returns the radius and coordinates of the center of the circle.
(~22 Kbytes)
Enumerate all the combinations of N things taken M at a time.
(~32 Kbytes)
Solves circular segments. You enter any two items you know and it finds whatever is not known.
(~36 Kbytes)
Four types of curve fits to experimental data - polynomial, logarithmic, exponential and power. Quality of fit is explicitly enumerated. (See also CALIBRAT.)
(~30 Kbytes)
Solve linear Diophantine equations. Equations of the form ax + by = c where a,b and c are integers and only solutions where x and y are integers are desired.
(~20 Kbytes)
Compute numerous parameters for an ellipse. Several algebraic approximations for the perimeter are given and their accuracy can be tested against a high accuracy model of the elliptic integral.
(~17 Kbytes)
Factor integer numbers <= 4,294,967,295. For mathematicians, the prime factors are displayed. For homeshop enthusiasts who need to set up dividing plates or schemes, all the factors, prime or not, are displayed.
(~15 Kbytes)
Rational fraction four function command line calculator. Enter something like 3 3/4 * 1 1/2 and it responds with 5 5/8 as well as 5.625. Useful in the shop and a boon when you have to help the kids with their math homework.
(~36 Kbytes)
MIX is a four function calculator that can handle MIXed linear dimensions - both metric and Imperial. Basically it allows one to perform dimensional calculations in six types of units simultaneously. A complete description here would be too lengthy - download the .ZIP and read the included .TXT file for a better idea of what it can do.
(~32 Kbytes)
Calculate just about anything you need to know about a regular polygon.
(~30 Kbytes)
Sometimes it's easier to remember a number with lots of decimal places by expressing it as a rational fraction (like approximating pi by 355/113). This program will find the rational approximation to a decimal fraction and you get to specify how accurate the approximation should be. It's also the right tool for determining the gears needed to approximate some ratio of interest - e.g. 2.54 = 127/50.
(~40 Kbytes)
A full screen, mouse driven scientific RPN calculator with a few gizmos you won't find in commercial calculators. There's a .TXT file with instructions.
(~32 Kbytes)
This program implements a number of specialized calculators for solving problems I encounter frequently. They're the sorts of things that would normally be implemented on a programmable calculator. Not everyone has such a tool and many who do can't figure out how to program it so I created this program as a repository for such mini-calculators. It includes:

a/b = c/d (solve ratios)
1/Z = 1/x1 + 1/x2 + ... (parallel resistors, series capacitors)
RSS = sqrt (x1*x1 + x2*x2 + ...) (root-sum-square)
RMS = sqrt [(x1*x1 + x2*x2 + ...)/n] (root-mean-square)
max, min, median, mean and standard deviation
conversions between fractional degrees and degree:minutes:seconds

I'll welcome any suitable additions to this tool.
(~18 Kbytes)
Solve systems of simultaneous linear equations via the Gauss-Jordan technique.
(~37 Kbytes)
Input three knowns for a spherical triangle and find the unknown elements.
(~38 Kbytes)
A tool for visualizing (cubic) spline fits to (two dimensional) data.
(~33 Kbytes)
Forgotten your trigonometry? Input whatever you know about your (plane) triangle, and, if there's enough information to solve the triangle, this will tell you all the unknown sides and angles. See further SPHERE.
(~20 Kbytes)
An ungula is the shape assumed by that little bit of water in the bottom of a tilted cylindrical glass. This program allows you to calculate the volume of such shapes.
(~20 Kbytes)
A conical wedge is formed when a cone is sliced by a plane parallel to the cone's axis. This program allows you to caculate the volume of such a wedge.
(~47 Kbytes)
Use your height gauge, surface plate and a precision angle plate to obtain x-y coordinates of part features. Then use this program to manipulate them to your heart's content to derive all sorts of useful measurements.

Miscellaneous Software [Goto Index]

(click to download)
(~30 Kbytes)
The NASA 1976 standard atmosphere model. As a function of altitude, the temperature, pressure and density of the standard atmosphere are computed as fractions of the sea level values. Absolute values of the relevant parameters are also computed.
(~31 Kbytes)
How far will the oil drum pontoons on your raft sink into the water if you try to float your lathe? How deep will a lead cricket ball float in a pool of mercury? Answer these and other equally burning questions with this tool for calculating buoy immersion depth as a function of applied load.
(~28 Kbytes)
Sorting multi-column data (think names and associated scores) can be a trial. I've had to do enough of it that it was worthwhile writing a generalized tool to handle this sort (pun intended) of problem.
(~19 Kbytes)
In Southern California we don't get much call for computing wind chill temperatures unless we go skiing after a day at the beach (eat your heart out!). Surprisingly, I discovered that there's a formula for equivalent wind chill temperature. If you live where water can exist in the solid state outside a refrigerator, you might have use for it.
(~20 Kbytes)
You can avoid rust causing condensation on your machine tools by arranging a means of warming them above the dew point temperature. This program will allow you to calculate the dew point temperature for your conditions. See also PSYCH.
(~32 Kbytes)
Amaze your friends! Convince them that you're an idiot savant and not the just-plain-idiot they've always thought you were. Win bar bets! Learn how to mentally determine the day-of-the-week for any date in the year. The instructions in the text file will tell you how to do it. The program is just there to prove that the scheme really works.
(~21 Kbytes)
Given the latitude and longitude of two points on earth, compute the great circle distance between them and the azimuth of each point as viewed from the other point.
(~32 Kbytes)
Compute a loan schedule or analyze an existing loan. Fully generalized so the loan period can represent months, years or whatever.
(~3 Kbytes)
Appends a copy of the current text screen to a file on the hard disk for future use. Read the .TXT file for a complete description. Very useful but written in assembler so may not work on every system.
(~20 Kbytes)
No this isn't something to help with the voices you hear. It refers to a wet/dry bulb psychrometer used to measure relative humidity and dewpoint. This program provides the calculations needed to convert the measured temperature difference to the desired values. See also DEW.
(~47 Kbytes)
Accurate computations of solar data - sunrise/set, local noon, equinoxes and solstices, altitude and azimuth, etc. as well as horizontal and vertical sundial angles and the equation of time. You'll need to adjust the lat/lon in the data file to your location on earth.
(~16 Kbytes)
Convert temperatures in any of the conventional systems of measurement (Centigrade, Fahrenheit, Kelvin, Rankine, Reaumur).
(~61 Kbytes)
Perform unit conversions. Most conventional units are built in but the program allows the user to compose truly exotic conversions (e.g. mph to femtofurlongs per megafortnight). An ASCII data file allows for the addition of user-defined units I've missed.

Submitted Software [Goto Index]

(click to download)
(~50 Kbytes)
Gene Rutkowski has generously allowed me to add his model locomotive boiler design tool to the collection. Gene's program is in BASIC but that shouldn't be a problem.
(~275 Kbytes)
Another great submission by Richard Williams in the UK. This program is used to calculate the loads applied to individual bolts within a group of bolts when subject to a load applied to a rigid structure.
(~91 Kbytes)
Jaring Siemensma, of the Netherlands, has written his own version of a program to calculate the change gears needed to cut a particular thread. While similar to my CHANGE program, his is a Windows program and displays a nice pictorial output. Folks with metric lathes may find this program more convenient to use although it does accommodate the cutting of Imperial threads.
(~30 Kbytes)
B. Vaughan has written a neat tool for determining the drill/mill depth needed to obtain consistent and correct countersink diameters.
(~33 Kbytes)
Johan (Joe) Smit of South Africa helped simplify the process of making cutters to make gears. He took the calculations from an article in "Model Engineers' Workshop" and incorporated them into a Visual Basic program.
(~25 Kbytes)
I do most of my computer work directly from the DOS command line. I often need to make a quick calculation and am too impatient to load the RPN calculator I built. I had long considered writing a command line Expression Evaluator so I could just type in something like EE 3+4*sin(37)/log(50) and get the answer immediately. Then I discovered that Mark Morley (of lovely Victoria in BC, Canada) had already written just what I needed. I made a few changes to tailor it to the way I think and am passing it along here. Technically, Mark did not submit this program to me but, after reading the included text file, I think you'll see that he has no reservations about disseminating it so long as he gets credit for his work. See also MATH.
(~524 Kbytes)
Oliver Smit, in South Africa, sent along his g-code writer. It's a Windows program, so a bit bigger than the other programs here but it seemed like something that would be very useful to many people. You specify the tool speeds, movements, etc. and it generates the correct g-codes, which can then be written to a file for export to the machine.
(~34 Kbytes)
Marv Windecker sent along a clever program for calculating variables associated with a gear driven vehicle. Enter any four of the following variables: axle ratio, engine rpm, vehicle speed, tire diameter, overdrive ratio. The program will then compute the unknown value.
(~92 Kbytes)
Another excellent B. Vaughan contribution to take all the pain out of calculating depths of cut for keyways and keyseats so they're correctly centered on the shaft-hub intersection line.
(~21 Kbytes)
Dale Holt, of Colorado, sent along his command line mathematical expression evaluator. It includes the very handy ability to iteratively solve equations. Give it a try. See also EE.
(~31 Kbytes)
I had intended to write an Ohm's law calculator for a while and B. Vaughan's contribution got me off the mark. You enter what you know and it calculates the unknown quantities. If the phase angle is known it will handle AC calculations.
(~37 Kbytes)
Martin Connelly, in the UK, sent along his program to convert pipe shapes from 3 dimensional XYZ coordinates to YBC bend data and vice versa.
(~138 Kbytes)
This program, submitted by Richard Williams, enables one to develop flat plates from the 3 dimensional boundary lines of a plate with curvature in one direction only (the X direction) - i.e. plates that have been draped over formers. This type of plate occurs in multi-chine boats.
(~34 Kbytes)
An old trick for cutting a shallow groove of non-standard radius is to use a standard size milling cutter with radius less than the groove radius tilted to an appropriate angle. The calculations can be tedious but Steve Horace has worked the problem and sent along several approaches that make this operation easy. I've coded the two most difficult into this useful program.
(~34 Kbytes)
My good friend, Gene Rutkowski, up in Seattle, wrote a spring design program while building his locomotive. I've converted it to C and am making it available here. See also MANDREL.
(~34 Kbytes)
Dave Baker, in the UK, has an interesting formula for computing the spring constant of a spring. He graciously allowed me to program it and put it up here.
(~29 Kbytes)
Don Nichols wrote a handy program to calculate the approximate horsepower produced by a steam engine. I rewrote his program to make the input more explicit. Don has reviewed the program and given his permission to publish it here.
(~20 Kbytes)
The temperature at which water boils in a boiler is a function of the boiler pressure. This program takes all the thought out of using the Clausius-Clapeyron equation to calculate the boiling temperature as a function of the gage-indicated pressure.
(~32 Kbytes)
Another B. Vaughan gem that simplifies the calculations associated with cylindrical tapers. Like many of the calculators here, you enter what you know and it supplies the rest. See also MTAPER, FTAPER.
(~113 Kbytes)
Przemek Klosowski compiled a Windows version of the Linux units program for his Chesapeake Metalworking Society friends and passed it along to me as a possible alternative to my UNIT program.

Can You Help? [Goto Index]

A space to solicit information that better-informed-than-I readers might be able to supply. Beyond my own requests, I'll also echo legitimate, widely useful (i.e., no pleas for 19th century tool manuals, etc., please), reader requests here.

Links to Good Stuff [Goto Index]

History - Updates and Errors Corrected [Goto Index]

Check here to see if a program you use has been updated/corrected in the last twelve months.

Information Nuggets [Goto Index]

How to Contact Me: [Goto Index]


If you email me use a meaningful subject line - including the program name is a
good idea.  Unexplicit subjects such as "I need help" or "can't make it work"
will end up being trapped by the spam filters.

About the Author [Goto Index]

I'm a retired aerospace physicist living in Southern California whose hobbies include building model stationary (steam/vacuum/Stirling) engines from scratch. Over the years, I've written a number of programs that might be of use to other home shop machinists. The hobby magazines do not provide an appropriate medium for disseminating such tools, hence this web page. I hope that other home shop artisans who have developed useful computer tools will also set up pages like this. If they don't have the time or facilities to set up home pages, I'll be glad to consider submissions for this page. (Any submissions will be identified by author in the separate Submitted Software Table so that credit goes where credit is due.) I will not accept for profit submissions - this page is meant to be a location for freely sharing information of value to the amateur home shop community.

I reserve the right to edit, amend, correct spelling/grammar/content, etc. of anything submitted for reference on this page. And that's the limit of lawyer-speak you'll ever see here.

I welcome suggestions for utilities you might like to have me write that would have general (ok, almost any) appeal in the amateur metal/wood-working homeshop field. I can't guarantee anything but I'm always on the lookout for new and interesting programming tasks.