by Max Brown

Last updated 13 April 2024.


1: Introduction

The Lines and Data department at Northrop Aircraft started using a Bendix G-15D computer for numerical control sometime in 1958, and continued doing so for at least three years. I can not specify a precise starting date, but given the initial computer use, the work needed to make numerical control possible, and the date on our earliest program documentation (December 1958), would guess May or June at the earliest. The following is an account, based upon my memories and some documentation, of Northrop's Bendix numerical control work while I was there. I cannot say how much longer than three years the computer was used for this purpose, as I was no longer with the Lines group.

2: The Origin of Numerical Control

Numerical Control refers to the operation of machine tools under an automatic guidance system, with minimal or no involvement of a human operator. Before the concept of numerical control was developed, machine tools were operated by hand, dependent upon the skill of the operator for the accuracy of their cut, or in some cases could be guided in cutting a part by following a stylus over a previously-made model or template for the piece to be machined.

In July, 1949, John T. Parsons of Parsons Corporation, Traverse City, Mich., involved in trying to accurately cut some templates for helicopter rotor blades, proposed to the U. S. Air Force the connection to a milling machine of a control unit capable of reading punched tape, and the installation of servomechanisms to permit the controller to drive the machine's operations. The controller would read instructions for successive movements from the punched tape, and, through the servomechanisms, direct the machine to take those steps. It had the potential, by using many short movements, to make far more accurate cuts more quickly than any previous method of control. It also made possible the movement of a cutter head in 2 or more axes (X, Y, Z, and angular motion) simultaneously.

This created a general purpose machine tool - i. e., one not designed to cut a single specific shape. Instead, a series of movement directions and distances (sometimes in multiple axes simultaneously) and speeds for a cutter head, with other unique codes for specific functions of the tool when needed, are recorded on punched or magnetic tape or punched cards (Remington-Rand). This recorded medium defines a part. An automatic control unit attached to the machine tool then reads the punched tape or card deck and directs the tool to execute the specified movements and instructions, causing it to cut the desired shape (part).

Mr. Parsons, in addition to introducing many other innovations, is considered the inventor of numerical control.

Development of the idea, contracted out by the Air Force to MIT, was slow, as was apparently the Aerospace Industry's development of interest in the new technique. Eventually the Air Force, increasingly concerned over the manufacture of parts needed for their new high-speed aircraft, spent $30 million dollars to buy 120 numerically controlled machine tools to be allocated to various aircraft companies, with installation starting in 1957, to jumpstart industry involvement.

The Bendix Corporation was in a unique position in this new field. It not only made numerical control units, having acquired an exclusive license from Mr. Parsons for his original patent of the idea, but also owned a division producing a small computer, the Bendix G-15D, for which they wrote programs to punch tapes for those control units.

3: The Machine Tools at Northrop

In late 1957 or early 1958 Northrop acquired, as part of that first set of numerically controlled machine tools to be distributed for use by the Air Force, three Kearney & Trecker 3-axis milling machines equipped with Bendix numerical controllers reading their input from punched mylar tape. I believe that they also acquired a Cincinnati lathe equipped with a numerical controller reading Remington-Rand cards, though I had no experience with that operation. The Kearney & Trecker machines are pictured below.

Figure 1: Kearney & Trecker Numerically Controlled Milling Machines at Northrop

4: Northrop Aircraft in Development

In 1958 the company was tooling up on a small twin-jet aircraft design designated the N-156F. When a 2-seat version, the first of two airplane models created from this basic design, was accepted by the Air Force, it became the T-38 Talon, the Air Force's first supersonic trainer, pictured below. The second model from the same original design, a single-seat version, became the F-5 Freedom Fighter, not used by our Air Force but sold to other countries.

Figure 2: The T-38 Supersonic Trainer

Planning in 1957 to build one, and possibly two, aircraft models in the very near future, Northrop was aware of the uncertain development schedule of the MIT Numerical Control Project, known as APT (for Automatically Programmed Tools). (Northrop was, by way of their main computing division, one of the 14-15 Aerospace companies participating in that project). Whether for this reason or because of other considerations, Northrop's manufacturing division selected another, immediately usable, numerical control programming system.

5: The Bendix Computer Equipment

To provide the input tapes needed for the Bendix controllers on the milling machines, Northrop at this time purchased a Bendix G-15D computer with the necessary equipment and software to generate such tapes. The additional equipment consisted of one magnetic tape unit and an AN-2 desk with motorized reader and punch units for numerical control (more on this later). The tape unit was not a requirement for numerical control, but was needed for a faster input mode than the basic form which used only flexowriter tape (also more later). Sometime later Northrop also purchased a PA-3 plotter; in January, 1960, according to the plotter's Preliminary Information page received from Bendix. The plotter required some special programming. Again, a subject to be covered later when we started to use it.

The computer was installed in, and used by, the Lines and Data Department (the organization called the Lofting Department in earlier times in the aircraft industry). As indicated earlier, Northrop's Computing Department, using IBM equipment, had no programming support for numerical control available yet. The computer room built in the Lines and Data area, with the equipment installed, is shown below.

Figure 3 - Bendix Computer Room at Northrop

Two notes about differences between our particular Bendix hardware and that shown in the Bendix literature appearing on the Internet are necessary. Bendix's system seems to have evolved somewhat over time, and our computer was an early model of the G-15D; I do not remember the exact serial number, but am pretty sure it was below 100, and I think in the 80 to 90 range.

First, the Bendix literature refers to an all alphanumeric typewriter. Our typewriter was only numeric; we could not store, or type under program control, most of the alphabet. However the G-15D was, ahead of its time, a hexadecimal computer, and all 16 of the G-15D's digits could be typed; Bendix chose to use the letters U, V, W, X, Y, and Z for the additional hex digits beyond 9. Therefore we could use these letters, particularly X, Y, and Z, to identify calculation results and columns of 3-dimensional coordinates in our printouts.

One other thing: when Bendix did go alphanumeric, each character was stored in memory in eight bits, the space of two hexadecimal digits. This is described in one of the Bendix manuals online. Since a word in the G-15D was 28 bits, or seven hex digits, they could store three alphanumeric characters in a word, with four bits unused. Using hexadecimal digits and eight bits per character anticipated by a few years the strategy IBM adopted in its 360 line of computers.

Second note on our hardware: I identified the numerical control unit we got from Bendix as an AN-2. Bendix documents on the Internet describe an AN-1 unit which among its various functions can be used to produce numerical control tapes. The unit is pictured with cabinet doors carrying a Bendix logo on each side below the top surface.

The loading instructions for several of our numerical control programs (included later) refer to an AN-2 unit. Our unit, shown in the computer room picture above, has three drawers under each side in place of the cabinets, with no logos. (The top left drawer appears partially open in our picture.) The tape reader is on the back left corner of the unit, and the tape punch on the back right. Our AN-2 accessory, perhaps specialized for numerical control only, was a different unit from the AN-1 advertised.

A modification to our hardware made entirely on our own initiative concerns the mylar tape punch on the AN-2 unit. We never had any trouble with it that I was aware of (and I was around about half the time it was operating), though I did hear that similar punches elsewhere (our main computer department when they started developing numerical control support) frequently had problems (I would guess jamming). I was told at some point by my immediate supervisor that our trouble-free operation was because when the Lines Department first got our equipment, the punch head was taken down to the shop and case-hardened (a treatment that greatly reduces wear on steel parts). As noted later, our tape punch commonly ran for many hours at a time.

Since the basic system provided by Bendix to create numerical control tapes relied upon flexowriter tape (a punched paper tape) for its input (described later with the software), Northrop also obtained at this time (probably through Bendix) a Flexowriter (a specialized typewriter which, in addition to printing the characters typed, would also punch a unique code for each character into a paper tape) which included a verification feature. After a flexowriter tape had been punched, it could be fed into a reader attached to the flexowriter to be compared character by character with a second copy of the tape as the latter was typed. If at any time during the second typing a discrepancy was detected between the two copies, the flexowriter would block any further typing until the reason for the difference was resolved and the flexowriter unlocked. I do not know whether this feature was recommended by Bendix; Northrop's Lines group had a policy already in place when I joined them early in 1957 of having all computation jobs done twice by different people for comparison, to double-check the results before they were used. The flexowriter verification was, wherever the idea came from, just a continuation of this policy.

6: Initial Bendix Software, and Education

The software provided by Bendix in our initial package included -

Figure 4: Intercom 1000 Magnetic Tape Subroutine Storage Adjustment

Also, sometime in very early 1958 (I do not remember the specific date, but would assume in the first month or two), several members of the Northrop Lines Group were given several hours (not quite a full day, as I do remember) of instruction in programming with the Intercom 1000 system. This occurred at the Bendix Computer headquarters in Inglewood, Calif. (only a few miles from our location in Hawthorne, Calif.)

7: The Intercom 1000 Programming System

The G-15, developed before core or chip memory were available, used a rotating drum for memory. Words of data or instructions were stored in magnetic tracks wrapped around the drum, which rotated past a set of read/write heads. With just one set of heads for main memory, each successive data or instruction access had to be performed immediately, or wait a full drum revolution for another chance. Immediate access was often impossible, that time being required for other processing. Therefore, to minimize drum rotations the G-15's machine instruction was designed to, among other things, specify a next access location well short of a full revolution. This permitted instruction sequences to be optimized for access time in the drum memory. However, the instruction format providing this ability was not an easy one for many programmers to use.

The Intercom Programming System provided a programming language convenient for the human programmer, designed to simplify the user's references to data and mathematical operations without thinking about timing.

I mentioned earlier that the Bendix system had evolved over time, and this apparently included Intercom. We worked with two versions of this system.

The loading instructions shown later for two Northrop numerical control programs written in Intercom, the Nacelle Frame and the Fuselage Intercompac programs, both refer to Intercom 1000 dated October 31, 1958. However the instructions for the Automatic Loading with Nacelle Frame program refer to an OLD Intercom 1000 Program. The version dated October 31, 1958 was more compact, shorter by one or two long lines in memory. An Intercom Manual on the internet states that the double precision version which we used occupied the first eight lines of memory, leaving lines 9 through 18 for our use.

The Intercom changes included commands as well as size. Two commands, a 36(Addr) (Unconditional Transfer instruction) and a 59(Addr) (Start Execution instruction) are referred to in the Automatic Loading with Nacelle Frame program instructions shown later. These commands and operation codes are are shown in Technical Applications Memorandum No. 24A, an early description of Intercom 1000, dated 6 Sept 1957 with a Supplement dated 1 Nov 1957, which is included in a collection of Bendix Technical Applications Memoranda 1-52, located in the Internet Archive. However, the operation codes for these commands are different in the Intercom 1000 Programming Manuals dated Apr 61 on the Internet.

There may have been other commands which had their operation codes changed from the old to the new Intercom versions, but these are the only two for which I have documentation.

I can find no documentation on the Internet in either Intercom version for another command which we learned about in our education at Bendix, and which became quite important to us, as noted later: a Punch Tape Rewind command. (A command for the function appears in the G-15D machine language manual.) Yet the command did exist, and we used it, in both versions of Intercom, with the same operation code.

In our Bendix training, Intercom commands were divided into two categories; the majority for use in our programs, and a few to be used from the keyboard. The Execute Program command 59 (earlier) and 69 (later) is a primary example of the keyboard group. We were also taught the Rewind Punch Tape command in the Keyboard category, which we then used regularly to rewind our tape magazines.

Punch Tape function controls of some sort appear on every Bendix computer console, though not always with a Rewind operation. I would guess that the first G-15Ds, including ours, did not have this operation on the front panel, and Bendix provided the Intercom command as a sustitute until they upgraded the console. I doubt we would have used the command if a switch would have done the job, nor would it have been taught as it was by Bendix.

I have no memory of any Intercom documentation we received from Bendix at that time; but since this was early 1958, it would have been much closer to the TA Memo 24A than to most of the documentation presently available.

8: Aircraft Shape Definition Before Computing, and Some Language

Prior to the computer's availability an airplane's longitudinal lines, together with critical cross sections, were initially drawn, or scribed, at full size and maximum possible accuracy by hand, sometimes using specialized drafting equipment, on a durable medium. (These lines were defining airflow surfaces.) When I started work in 1957 the medium used at at Northrop was sheets of glass cloth, covered on one side with a flexible but opaque covering (white in color in my limited experience) which provided the scribing surface. The drawings were referred to as Glass Cloth Layouts (GCLs). Wherever structure had to fit or offset from the plane's skin line, the cross section at that point, or station (defined in the next Section), had to be drawn on a GCL after its control points had been obtained by measuring the longitudinal lines. This image was then copied to an aluminum plate which was cut and filed to an exact copy of the GCL image, for use in measuring in the shop. This plate was referred to as a Station Master Template, or SMT (though the GCL was really the true SMT), and became the master contour against which all other skin line segments on parts at this station were measured. All of this work had to be done very painstakingly, including the final filing to match of an aluminum SMT to match the GCL, in my experience.

Bevels for skin-line flanges had to be developed by measuring the skin line to skin line distance between adjacent stations (on GCLs) along a line vertical to the skin line of the flange station, using this distance and that between the two stations as two sides of a right triangle, and computing the bevel angle from that. . Many bevels were usually needed for a single station. An example data page for a T-38 Nacelle Station showing bevels so measured is shown here.

Figure 5: T-38 Nacelle Station 554 Data Page, Showing Bevels.

The need for such measurement, and the definition of aircraft lines and station templates on Glass Cloth Layouts, was eliminated when we were able to define entirely mathematically and cut with numerical control.

Some other terms and abbreviations which may appear later:

9: Initial Computer Programming - Aircraft Lines Definition

Numerical control made mathematical definition of the external shape of an aircraft a necessity. (A start on this had been made even before computers were available; see the dates of the textbook reference below). Most of the Lines group's computing work was to develop equations establishing the external shapes of the two aircraft models being built, provide data from these equations as required for the construction of various components, and produce numerical control tapes to machine parts for the fuselage and air intake nacelles, initially for the T-38. Both the T-38 and the N-156F (for the fighter version) model designations were used on data pages and instructions as appropriate in this period of time.

All of our programming, whether for developing equations for control lines, numerical control, or any other work on the computer, was done using double precision floating-point arithmetic (two words for each number, for storage and computation) to maintain the necessary accuracy. Our printouts were normally done using fixed-point formatting.

The coordinate system used for the design and construction of the fuselage and nacelles had the Y-axis at the center of and along the fuselage, nose to tail. The point Y=0 was approximately 40 inches ahead of the aircraft's nose, the positive Y direction extending back along the plane's length. The X-axis was horizontal, and the Z-axis vertical, in the fuselage cross section.

The cross-sections of the fuselage and nacelles at any Station, or Y-coordinate on that axis, were defined with conic equations and straight lines, and toward the rear where the fuselage top and bottom pinch in, also by cubic equations.

Note: A reference book on the use of conics in this way, recommended to me when I started at Northrop, was "Aircraft Analytic Geometry", by J. J. Apalategui (Douglas Aircraft Lofting Dept.) and L. J. Adams, first printed 1944, reprinted 1953.

The control points and slopes needed to define these cross-section equations were themselves specified by longitudinal lines which were defined by power polynomial equations. Computing the coefficients for these equations, once the required dimensions for the plane at critical points were given, was our first effort on the computer before we could begin any numerical control. It sometimes took several attempts to determine the coefficients for an equation which would provide the smooth curve needed.

Each line had to be defined in two dimensions, requiring separate equations for each (for lines on the aircraft midpoints, one of the equations would simply be X=0, or Z=0). Sometimes it took more than one equation to define the full length of the X or Z dimension of one of these lines.

The following illustration shows the arrangement of these longitudinal control lines for the nose section of an air intake nacelle of the plane, and its cross section (full nacelle plan contour). A similar set of control lines defined one half of the fuselage, and its cross section. All of the programs and instructions we wrote focus entirely on a contour describing only one half of the full aircraft cross section. The fuselage cross section was symmetrical in the +X and -X directions. I think the machine tool controller must have had the ability to reverse the sign here, so the same control tape could be used for both sides.

Figure 6: Longitudinal Control Line Arrangement, Air Intake Nacelle Nose Section

Page 8 of the first set of program instructions given further on is also presented here to show the X- and Z-coordinate relationships in these areas.

Figure 7: X- and Z-Coordinate Relationships in Nacelle Nose Section

10: Creating Northrop's First Numerical Control Tapes

The Lines group at Northrop started generating numerical control tapes on the G-15 in 1958. As noted earlier, the original system for making these tapes provided by Bendix, and referenced in the available literature, used a flexowriter tape to provide all of the input data for the control tape; cutter point coordinates, feed rates, machine and controller control codes. Our initial tapes were created using this basic procedure. A sequence of points closely enough spaced to define to the desired accuracy (as I remember, about 0.0005 in.) the cuts to be made by the milling machine would be computed using programs we wrote in the Intercom programming system (see the next section), printed out, and transferred to Numerical Control Manuscript pages, such as the example below, along with the setup data, feed rates and cutter sizes, and machine tool control codes needed for the cut being defined.

Figure 8: Numerical Control Manuscript page

The information on these pages was then typed into a Flexowriter tape, which was then fed into the Flexowriter verification reader, and the entire sequence retyped, being compared with the original tape. (I remember spending many hours typing the tapes, being the most junior member of the department).

Next the computer was loaded with the Bendix Compac 01A program to punch a numerical control tape, the completed and checked Flexowriter tape fed into the AN-2 reader, and the program started. It would read the input tape, convert its data as necessary (as described shortly in Section 12, The Bendix Numerical Control Tape), and punch the output in binary into a 7-track mylar tape to be read by a machine tool's numerical controller.

Once the mylar tape was punched and before it was sent to the machine tool, the playback program provided by Bendix was put into the computer, and the tape read, decoded, and the cutter points it represented printed out for verification of the tape's accuracy.

This sequence, with its minimum six steps - computing the cutter points (assuming only one run here), transferring them to manuscript pages, two flexowriter operations, tape punching, and verification - obviously took some time. The tape punching step itself could take, depending upon the size of the part being made, anywhere up to eight hours, and occasionally longer, on the computer.

Two other forms which were used in the numerical control process are shown below; a Cutter Data Sheet, and a page for the Numerical Control Machine Operator's Instructions.

It was stated in reference to the verification feature on the flexowriter at the end of Section 2 that Northrop had a policy of doing all computations related to aircraft shapes twice. The three forms shown here, and later pages of program instructions, all reflect this requirement by having somewhere on each page, usually at the bottom, sign-off fields for a Checker as well as the originator and a final acceptance.

Figure 9: Numerical Control Cutter Data Sheet.

Figure 10: Machine Operator's Instructions - Numerical Control

Having started by putting the cutter points on flexowriter tape, after a while (I do not remember how long) we tried storing them on magnetic tape as we computed them, using the subroutine provided by Bendix, and reading them from there instead of from the flex tape when punching the mylar. This of course greatly shortened the run time per punched tape, but had an inconvenience of its own. Our magnetic tape unit could neither overwrite earlier data nor erase a tape, so whenever we finished filling and using a tape it had to be returned to Bendix for degaussing (erasing). I do not remember whether we could put more than one punched tape job on a single magnetic tape reel, but suspect not. We needed several magnetic tape reels to avoid being delayed for degaussing.

Other than using the magnetic tape as much as we could, we had no control over the time taken by the mechanical steps of the numerical control tape creation process once the cutter points were available.

11: First Numerical Control Programs

Our first programs for numerical control were written simply to compute and print out the cutter points that we needed as input for the numerical control tapes that we were starting to make.

These programs (written with the first, larger version of Intercom 1000), were all basically the same, and could solve the longitudinal equations defining lines of conic control points (such as those shown earlier in the Body Plan Lines of Nacelle Frame illustration) for a desired station (cross-section), then construct and step around the conic curve at that station to get cutter points for either the upper or lower half of the station contour in one computer run.

The set of points so generated formed a cut, or cutter path. For all but the simplest parts (such as a Station Master Template, discussed later), many such cutter paths were needed, possibly generated by more than one program, to make up the complete path necessary to shape a part. The placing of these paths in their proper order, as well as intermixing feed rates and function control codes where needed, was done by human beings as the data was transferred to NC Manuscript pages for eventual input to the tape generation system.

Where the programs differed, besides the distinction between the contour halves, was in the longitudinal line range available to each program. The coefficients of the longitudinal line definition equations used by the basic program were packaged with the code, in fixed memory locations. But, as noted earlier, it sometimes took more than one equation to define a longitudinal line through its full length in a given dimension, and the transitions between equations did not occur at the same stations on all of the longitudinal lines. Therefore every time a new equation was needed to continue a line definition, a new program copy was needed with the equation coefficients for the next segment of the aircraft definition. This meant that we needed several program copies to cover the full area (length and upper/lower half) of a given structure.

Again, we were simply computing and printing the points we needed as quickly as possible, with no consideration of any general program system.

12: The Bendix Numerical Control (NC) Tape

Below are three pictures of an actual Bendix 7-channel numerical control tape from our work. The first picture shows the entire tape coil, and the second shows the start of the tape stretched out to show the actual hole punch pattern in the tape, and a bit of the tape leader. The third picture shows an enlarged portion of the segment in Picture 2.

A picture of the tool (a Station Master Template, or SMT, for the Northrop N-156F aircraft) which the tape would cut on one of Northrop's Kearney & Trecker three-axis milling machines with Bendix controllers is shown later, in the discussion of the program which cut it. (The SMT was discussed earlier).

Figure 11: Complete Numerical Control Tape to Cut Station Master Template

Figure 12: Numerical Control Tape Segment

Figure 13: Control Tape Segment Enlarged

The next image is of a tape format work page from that time, which Bendix had to have provided, showing an 8 channel numerical control tape format. This was our reference for the occasional tape patching (very tricky), since the format of the 7-channel tape we used was the same except for missing the channel labeled Spare 1 in the format pictured here.

Figure 14: Eight-Track Bendix Numerical Control Tape Format

As shown, the incremental motion and the feed rate data for each cutter movement were coded in binary along the tape in Tracks 5, 4, 3, an 2. The only information coded in specific single lines across the tape was a set of machine functions which are listed at the bottom of the format page together with their tape formats. I do not remember what the minimum motion increment was, but would think that it was one or two 10-thousandths of an inch, given the tolerances to which we were regularly working. Also, the table below of overshoot for various cornering rates by a Bendix-controlled milling machine cutter head indicates motion increments in 10-thousandths of an inch.

Figure 15: Bendix Binary Numerically Controlled Cutter Head Overshoot

An 8-channel tape could accomodate, in addition to the normal three axes of motion, one or two swing axes (swinging the cutting head through an arc or rotating the machining table) for four- or five-axis milling machines, which were available.

The motions for these swing axes could be encoded in the channels labeled Spare 1 and Spare 2 in the tape format shown here. However, Northrop's milling machines were only 3-axis, with numerical controllers reading 7-channel tape.

13: Second Generation Numerical Control Programs

Below are the program instruction pages for a two-part program, the next one we wrote, after the initial set just discussed, to generate numerical control cutter points. It is a first attempt to build a (slightly) improved system to produce cutter points for an entire body plan contour, using a single final program run. It did not eliminate any of the individual program runs; but it did reduce some of the human handling involved in the steps. The dating of these pages in December 1958 shows this program to be at the end of our first year with the computer. We had actually been programming the creation of numerical control tapes for much less than a year at this point.

This two-part program also marks our transition from the first Intercom version to the second. As its instructions show, the first program part to be executed patches into and runs with our initial set of programs, which were written in the first form of Intercom, so it also was written in early Intercom. However the output from this combination is used by the main program of this pair, which was written in the second version of Intercom 1000 dated October 31, 1958.

This combination, the Nacelle Frame Program and its Automatic Loading companion, is I think the first program set for which we created some formal documentation. Given the number of elements of input data, and possible operation options, some instructions were needed. However, detailed as the specifications for the input elements seem to be, the overall program operation is not really described, only suggested in a few places.

Following is an attempt to present the whole process in proper sequence. It is based heavily on my interpretation of these instructions at this time, as my memories of this program are not among the clearest from that period.

As indicated before, each of the early programs could solve the longitudinal equations defining lines of conic control points for a desired station (cross-section), and then construct and step around the conic to generate cutter points for an upper or lower half of the plane's body plan contour. In using this two-part Nacelle Frame Program, the second part, the "Automatic Loading With...", with instructions starting on Page 6 of this set, was actually used first, together with one of those first programs, and, as noted earlier, is patched into the latter (see Automatic Loading Operation Paragraph 3). This patch permitted the conic coefficients for a given cross section computed by the patched program (the data loaded into words 1726 through 1736 for the Nacelle Frame Program) to be punched into paper tape which could be read by the Bendix computer. The generating of cutter points in this program is skipped. The early program for the upper half of a desired contour would be run in this way, creating a paper tape with one or more (if we needed multiple cross section slices to create a flange or frame) conic coefficient sets for successive upper contours.

The early program for the lower half of the desired body plan contours, patched like the upper half program before it, would then be run with the paper tape output from the first run on the computer's tape reader. The patched program combination here, properly instructed (the negative one in word 1842, per Paragraph 7, Page 7), would, BEFORE punching out each set of conic coefficients for a lower half contour, read from the first tape and punch out on a new tape the conic coefficients for the upper half contour of this cross section, THEN punch out the conic coefficients just calculated, producing a tape with upper and lower conic coefficients properly interleaved, or paired, for each cross section.

The Nacelle Frame program can now generate cutter points around one or more entire body plan contours in one run by reading this latest tape, constructing a conic equation with each set of coefficients in turn, stepping around it with the specified increment to compute cutter points, then reading the next set of coefficients and repeating. It continues this until the tape end is reached, thus generating cutter points in proper sequence around single or multiple full profiles and either printing them for typing, or writing them on magnetic tape. In sum, we were splicing together the output of multiple runs of our first programs, by the use of an intermediary tape, to create one numerical control tape which would cut a single complete part. (I hope this explanation makes sense, and helps to clarify these instructions).

Loading the earlier program and the Automatic Loading addition is discussed in Operation Paragraphs 1 and 2, and the patching in Paragraph 3, of page 6 (Instructions for Use of Automatic Loading...). The Intercom commands used in the patching, as indicated in the instructions, were discussed previously in the Bendix software description. Note that Operation Instruction 1 says to load the program FOR THE AREA DESIRED (my emphasis here; see earlier notes on the need for many programs to cover a control line's full length), using the OLD Intercom 1000 program. The main Nacelle Frame program is loaded with the Intercom 1000 dated Oct. 31, 1958.

As mentioned earlier, this program was a first effort at creating a system for our numerical control work, even though it did not immediately eliminate any of our first programs. It gave us a single program which could, from a single input source, generate cutter center point sequences over one or more entire structure profiles (upper and lower halves) along the full length of our control lines, either printing them or storing them on magnetic tape, in a single program run. We still needed multiple program runs to generate that single input source, but the human intervention needed for properly sequencing the outputs from our first programs was (largely) eliminated. Some of the notes for various inputs suggest that this program may also have included some options (e.g., start and end point choices) that were not available in the first programs. Unfortunately my memories regarding those programs are not detailed enough to substantiate any such capabilities. I can only say that this two-part program combination seemed at the time an improvement, even if small.

Figure 16: Nacelle Frame Bendix Program, page 1

Figure 17: Nacelle Frame Bendix Program, page 2

Figure 18: Nacelle Frame Bendix Program, page 3

Figure 19: Nacelle Frame Bendix Program, page 4

Figure 20: Nacelle Frame Bendix Program, page 5

Figure 21: Nacelle Frame Auto Load Program, page 1

Figure 22: Nacelle Frame Auto Load Program, page 2

14: Third Generation Program

Our next numerical control program was better.

We could write the code to perform all of the calculations we needed to develop cutter points in a single program, but those calculations had to be done starting from many different sets of coefficients, derived from many different equations defining longitudinal control lines. As previously indicated, in our original programs the same basic code was packaged with different control line definitions, the control lines in each package being contiguous.

This gave us a number of similar program packages to cover the full length of the fuselage or nacelle structure. We wanted to separate the control line data from the code and put it into its own package, so we could keep the code independent. Our program could then search through the control lines to find the desired set for any specified cross section. However, searching for needed data in this way required a program ability to both read and rewind the tape, to also search backward when necessary. We read tape in programs regularly (see the use of punched tape in the Fuselage Frame program), but we only rewound tape from the control console.

It took a little time for the thought to occur, one morning over breakfast, that this Rewind Punch Tape console command "is an INTERCOM command! It should also work in a program!" A 2- to 3-word test program immediately on getting to work proved that it did. (A small Eureka moment.)

With that, we were able to put all of our longitudinal control line coefficients for both the upper and lower halves of much of our structure into a separate tape magazine, and create a single program which, being able to search the magazine either way for any given single or series of fuselage cross sections, could in just one run do all of the necessary computing, starting from the appropriate longitudinal line definitions, to generate cutter points around the contour(s) for one half of the full body plan(s).

Our final programs used at least three line definition magazines, covering the full plane length and nacelle vs. fuselage, as instructions for one of the programs shown later make clear. I do not remember whether we had more than three.

15: Bendix Intercompac and AN-2 Flexowriter Subroutines

While we were writing and testing this program, apparently our management had asked Bendix if they could create an Intercom subroutine for us which would accept cutter point data directly from an Intercom program, format it as necessary, and punch it into a mylar numerical control tape. Bendix did. I do not know how long it took them, and was not aware of the request until their programmer brought the package over one afternoon and explained it to us. In addition to point coordinates and feed rates, this Intercompac subroutine also had functions to punch the only two commands really critical for the numerical control tapes; tape reference and machine stop. I do not remember the subroutine's exact size, but believe it took three or four lines of memory.

It had one potential problem, the programmer told us, which he had not been able to resolve in the time available; if two consecutive points were too close together (I do not remember the exact distance, but think it must have been under 0.0005 of an inch, since those were the tolerances to which were working, as I mentioned earlier), the incremental motion was smaller than the subroutine could handle in some step, and it would just quit. The only situation we could think of in which such a sequence might occur would be when the next point along a curve fell too close to the predefined limit for the cutter path, though not yet matching it, or exceeded it (in which case the limit point would be used). Therefore we put a test in our new program for this possibility and, when found, would back the new point just out of danger along the cutter path. This solved the problem for us, with only one exception, mentioned later.

At this time Bendix also provided us with a subroutine to read data in from flexowriter tape through the AN-2 reader. The standard flexowriter input subroutine for Intercom used the computer's tape reader, which we needed to read a control line data magazine. The two pages of notes on the AN-2 reader routine, included below, make clear that it was designed to work with the new Intercompac subroutine. Its input formats were tailored specifically to numerical control input formats with which we were already familiar, with one exception. The notes shown here specify a fixed point input format, but this was incorrect. I do not know why this discrepancy, but the instructions shown shortly for the Fuselage Intercompac Program, and flexowriter input examples in the instructions for a following program, also shown later, quite clearly show a floating-point input format.

Figure 23: AN-2 Flexowriter Subroutine, Page 1.

Figure 24: AN-2 Flexowriter Subroutine, Page 2.

Now that we could output all of the cutter points for a complete run directly, with the AN-2 subroutine we were also able to add the ability to read flexowriter tape straight into our program to permit specifying motions unrelated to body contours.

In essence, Bendix gave us in these two routines a complete replacement for their original numerical control software package. This new system could punch mylar tape immediately from Intercom programs without the need to transcribe and read back cutter data in any intermediate media such as flexowriter or magnetic tape. As direct as one could get.

I do not know whether anyone at the time thought of this as a replacement for the original Bendix NC software package. I didn't then, and I suspect no one at Bendix did either, given that the Intercompac routine had a known error situation, for which we never received a correction in my memory. However, once we had this package we never used flexowriter tape for computed cutter points again, and I don't think we ever used magnetic tape for them again either. Later magnetic tape usage was in a very different manner.

Special requests such as these subroutines normally cost some money (they were known as RPQs, for Request Price Quote), though I never heard any mention of a price in this case (that was well above my pay grade, as the saying goes). I never heard whether Bendix had any other customers doing numerical control on their computers, and if so, whether any of them were offered these subroutines once they were developed for us.

16. Fuselage Intercompac Program

This combination of our latest program and the Intercompac Punch and AN-2 Reader subroutines gave us a single system which could compute one or multiple full body plans and their cutter points, and punch a mylar numerical control tape to cut them, in one program run, often without ANY flex tape. As noted earlier, a huge improvement in our work.

Following is a set of instruction pages for the Fuselage Intercompac Program, which, according to its title page, was to be used for both T-38 and N-156 models. There are some annotations showing on the pages, but I do not remember whether a final version was created incorporating these additions. I am also including the original draft of Note 1 on page 6, for the additional information on the program's workings.

Figure 25: Fuselage Intercompac Program, Page 1 (Instructions)

Figure 26: Fuselage Intercompac Program, Page 2 (Instructions)

Figure 27: Fuselage Intercompac Program, Page 3 (Data Input)

Figure 28: Fuselage Intercompac Program, Page 4 (Data Input)

Figure 29: Fuselage Intercompac Program, Page 5 (Flexowriter Input)

Figure 30: Fuselage Intercompac Program, Page 6 (Flexowriter Input)

The original form of Note 1 on page 6 of the Intercompac Program Instructions was:

1. On the Control Line tape magazine -
Each range (e.g., 42.5 - 70, 125 - 150, of control line equations is carried in two blocks, or lines, of punched tape. The tape should always be positioned in the magazine so that the FIRST block of tape for some range (which range is immaterial, due to the program's searching ability) is ready to be read. The first block of a range carries information necessary to the program, should it need to search in a reverse direction, which is not available in the second block. Also, the program assumes that it will read the first line first. It cannot by itself distinguish one block from another, but if started in the right place and allowed to operate without interference, it will never lose track of its location. Further, when it completes an operation, it always leaves the control line tape properly positioned for starting.
Therefore, it is recommended that operators leave the control line tape strictly alone.
Should there be any doubt as to its proper positioning, rewind the tape to the beginning, and position it BETWEEN the stop code at the front end, marked in red, and the first line of tape.

This original note was replaced by the much shorter version in the final instructions at editorial suggestion. I am including the original here because of its additional information on the Intercompac Program's workings.

17. Program Demonstration - Cutting a Station Master Template

Our manager was so impressed with the Intercompac program that he arranged for a demonstration of its capabilities. He asked someone (I never heard who; at a guess, his manager) to specify any point in the N156 forward fuselage for which he would like a Station Master Template, so our department could demonstrate how fast we were now able to produce one. When the choice was given to us, a tape for it was computed and punched, verified, and the desired template machined in under two hours. (The milling machine was probably standing ready, with the aluminum stock mounted, just waiting for the tape.) A label was then put on the template showing the times and total for the various steps (much faster than working with a GCL, as described earlier), and, with a wooden block shaped to hold the template for display, was then given to the person who had requested that station.

I was not aware of this action until after the event, as it was done during the day, and I worked second shift. However, the demonstration was so effective that several copies of the template display were made, complete with labels and mounting blocks, for presentation to various individuals. One of those template copies is shown here, followed by the first page of the cutter point printout as the numerical control tape which cut it was punched. That tape was shown earlier, in the discussion of the Bendix NC tape system. Note the minimal amount of data required to start the program, at the top of the printout page.

Figure 31: Station Master Template

Figure 32: Cutter Points for Station Master Template 55.00

In the next picture showing two Bendix program tapes, the larger one contains a copy of the Northrop program (minus the Intercompac subroutine, loaded separately) which computed and punched the template.

The smaller coil contains the longitudinal line equations needed to compute the control points for the fuselage cross section shown in the display. This tape would be in the longitudinal line magazine read by the program.

Figure 33: Bendix computer punched tapes for Intercompac Program and Control Lines

A diagram of the data flows through our new system was also developed, for general information. A copy of this is shown below.

Figure 34: Computer Data and Numerical Control Flow, Northrop Lines Dept.

18: Third Generation Program Expansion

The Fuselage Intercompac Program was the first of the two programs which became our numerical control tools for all airflow surfaces on the fuselage and nacelle of the N-156 aircraft, and it was a model for the second program. Effective as it was, this initial program was unable to support the entire nacelle, the rear section of which involved a more complex definition. It could handle all structural areas whose cross-sections were defined by conic equations and straight lines, but the rear portion of the nacelles pinched in gradually at the top and bottom. I do not know the exact Station (Y coordinate on an axis running from nose to tail of the aircraft) at which this effect began, but an operating instruction for our next program, shown later, makes it clear that it was no later than Station 500. The pinch is shown here in the cross section for Station 532, where the nacelle shape is defined by a larger intermix of curves and straight lines. This page is one of three example pages at the end of the instructions for our last program, shown shortly. The data and subroutine lists shown (explanation coming) are input data needed for the program to cut this Nacelle Station.

Figure 35: Nacelle NC Program Page Illustrating Rear Fuselage Pinch

This pinch was also shown previously in Section 8, Aircraft Shape Definition Before Computing, on the data page for Station 554 which showed measured bevels.

We used cubic equations to define the pinch, as mentioned earlier in the Lines Definition discussion. The solving of these equations of course required additional code. We also needed logic to determine what type of curve, conic or cubic, was to be computed and evaluated for each curved element of the aircraft cross section.

At this point in our programming, though, we had pretty well exhausted the computer memory available. As noted earlier, all of our computing was done in double precision. For this the Bendix Intercom programming system gave us 10 lines of memory, starting with Line 9, for storage of our programs.

The Flexowriter reading and square root subroutine combination took one of those lines, and the Intercompac subroutine took at least two lines, and I think more likely three, although I have no specific memory or data on its size; just a judgment based upon the actions it performed and my idea of the code needed.

This left us with at most seven memory lines for our programming. Old program listings show over four memory lines of code, and three for data storage; one for input and control parameters, and two others for computed data. I have no note or memory of where the two lines read in from a Control Line Equation Magazine were stored. Some of the data storage must have been used repeatedly.

Because of this lack of space, in addition to adding the necessary cubic definition and evaluation code we made two modifications to the original program to get the extra capability we needed.

First, to accommodate the expanded curve set we required the operator to enter a series of codes to specify the order and type of the curves and lines needed to describe the body plan contour to be cut. I have no idea at this point why an automatic recognition of these shapes was not, or could not have been, integrated into the original Fuselage Intercompac Program. It would seem that the necessary codes might have been added to the data read from the Lines magazine; whether not thought of or not possible, I do not remember.

(Side Note: As remarked in the beginning, we did not have full alphanumeric capability on our computer. If we had, we could have used alphabetic characters to indicate functions here, instead of numbers; might have made the program a little easier to understand.)

Our second modification was to put the definition and evaluation code sections needed for both curve types, conic and cubic, onto magnetic tape, so either one could be read in and used as needed, leaving only the main program control logic permanently resident during the entire run. This final program, the Nacelle Numerical Control Program, could handle all of the fuselage and nacelle structures, though because of its need for subroutine code input was not quite as easy to use as the initial Intercompac Program in the forward areas where only conics were needed for the cross section.

The final version of the documentation I still have for this program (there were at least two versions) consists of two sets; a primary one describing the program and its capabilities, and a second group focusing entirely upon its operation. The primary coverage starts with a brief summary of the program, its capabilities, and the data inputs available and required. A page of operating instructions is followed by a focus on descriptions of and formats for input data elements, including the codes indicating the desired sequence of curve types, and codes calling for other operations and shape-defining data. Why these codes were not all consecutive integers, I have no memory. Three pages of formats for flexowriter tape inputs include some additional codes identifying non-point data entered in this way. The final three pages of this set are program run initiation examples. I include one here in addition to the one shown earlier.

Figure 36: Nacelle Numerical Control Program Introduction

Figure 37: Nacelle Numerical Control Program - Instructions

Figure 38: Nacelle NC Program Data, Page 2

Figure 39: Nacelle NC Program Data, Page 3

Figure 40: Nacelle NC Program Subroutine (Curve Type) Codes, Page 4

Figure 41: Nacelle NC Program Flexowriter Input, Page 5

Figure 42: Nacelle NC Program Flexowriter Input, Page 6

Figure 43: Nacelle NC Program Flexowriter Input, Page 7

Apparently the single page covering operation provided in the primary documentation was considered inadequate for this program, perhaps because of its added complexity, or the new use of the Magnetic Tape Unit. The second document set spends four pages exclusively on Operating Instructions, with another two program run initiation examples. These pages provide much greater detail than the single one in the initial group, specifying every switch and control setting and its response, in sequence, during the computer and tape unit operation for this program. The additional Instructions are included here to show that detail. Following the Instructions, in place of the run initiation examples, I am including a short example program printout annotated to describe the specific actions of the program at every step of the run.

Figure 44: Nacelle NC Program Run Initiation Example, Page 12

Figure 45: Nacelle NC Program Operating Instructions 1

Figure 46: Nacelle NC Program Operating Instructions 2

Figure 47: Nacelle NC Program Operating Instructions 3

Figure 48: Nacelle NC Program Operating Instructions 4

Figure 49: Annotated Printout, Example Nacelle NC Program Run, Page 1

Figure 50: Annotated Printout, Example Nacelle NC Program Run, Page 2

Figure 51: Annotated Printout, Example Nacelle NC Program Run, Page 3

Figure 52 - Annotated Printout, Example Nacelle NC Program Run, Page 4

19: Summary, Northrop NC Bendix Program Development

With these two Intercompac programs on the Bendix G-15, we had the programs needed to create all of the numerical control tools required to machine all of the skin-line related cross-sectional structures needed (with one exception) to build the entire fuselage and nacelle structure for the T-38 trainer (see Figure 2 in Section 4) and F-5 fighter supersonic aircraft. Cross-sectional structures included all partial or whole frames and bulkheads. (The exception mentioned was an angled full-fuselage frame under the tail for engine access, which required a special program because of its size and the continual change of station for every step in the Z-axis.)

In a year and eight months our group in Northrop manufacturing had:

Our programs during their use showed no problems or errors or cutter point inaccuracies that I know of, with a single exception to be described later.

All of the aircraft fuselage and nacelle structures for the first several copies of both the T-38 and the N-156F had to have been machined by numerical control tapes created on the Bendix G-15D, our only source that I am aware of for such tapes at that time. I do not know how long those NC tapes lasted. The mylar tape seems pretty strong; with reasonable care they should have lasted for many aircraft. I do not know how the planes' wings and tail surfaces were fabricated. Possibly also by numerical control, on the Bendix, though I was not aware of it. I do know that other numerical control work was done using the Bendix, and will note one case shortly.

The APT numerical control group at MIT announced their program on February 25, 1959, showing ash trays milled by a test system. Reports from the group state that APT was used for production parts from mid-1959 on at various locations, but their cutter point location calculations were in general extremely unreliable until sometime in 1961.

Northrop, while laudatory of APT (they provided significant support to the effort from the very beginning), noted that while they cut production parts in 2 dimensions with the system in July 1959, 3-dimensional machining was still beyond APT at that time. Regular production had to wait until after June 1960, while an ability was developed for APT to call external FORTRAN programs to compute cutter center points for this capability.

Looking back, I have to say that I am impressed by Northrop manufacturing's, and the Lines & Data Department's, management in their determination to use numerical control as soon as possible once such machines were installed. They obviously were very active in their effort, even to getting special help from Bendix. At the time I was unaware, lacking experience and contacts, of the significance of these developments in the industry.

I also have to acknowledge, after reading all of this old documentation, the assistance and support I received from David W. Rike, whose name appears in many places in the original papers. He was my Leadman, or immediate supervisor, and much of the time my only companion on the second and third shifts. He checked my non-programming work, and supported me when the department manager had doubts. Dave was the one who showed my manager what the Intercompac Program could do, shortly after its completion, by having the manager load initial data and start it himself. We were only acquainted in the workplace, but he was a good friend.