NUMERICAL CONTROL ON THE BENDIX G-15D AT NORTHROP AIRCRAFT
by Max Brown


Last updated 22 October 2024.

note: many of the images here are thumbnails; click on them to see them full scale

Contents

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 jump-start 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: Numerical Control 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: 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 Northrop group commonly known as the Lofting Department 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 Bendix 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 online Bendix literature refers to an alphanumeric typewriter. Bendix had both numeric only and alphanumeric typewriters, as is made clear in paragraph 3 of page 2 in a copy of some Bendix notes on G-14 Input/Output Operations shown here. I do not know the order in which the typewriters were introduced, but would guess the numeric only version was first.

Figure 4 - Input/Output for the G-15, Page 1

Figure 5 - Input/Output for the G-15, Page 2

Our typewriter was the numeric only model; 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. All 16 of the G-15D's digits could be typed, and Bendix chose the letters U, V, W, X, Y, and Z to represent the additional hex digits beyond 9. Therefore it was possible for us to use these letters, particularly X, Y, and Z, to identify calculation results and columns of 3-dimensional coordinates in some of our printouts.

One other thing: the notes above also indicate that when using the alphanumeric typewriter, each character was stored in memory in eight bits, the space of two hexadecimal digits. This eight-bit character representation in memory anticipated by a few years the format IBM adopted in its S/360 line of computers (though for a different reason).

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 6: Intercom 1000 Magnetic Tape Subroutine Storage Adjustment

These programs were provided on punched tape. No source code listings of them were provided. Of course, that did not matter to us then; we would have been unable to understand them if we did have them. Nor, as far as I am aware, were we given any backup copies. I do not remember the subject of backups for either the Bendix or our own programs ever coming up. Obviously a need never arose.

This was the formal package of programming tools. In addition to some specific help detailed later, we also received over time a fair amount of machine language programming and documentation. The Input/Output notes shown in the Hardware section here, and a Machine Language Reference Manual (some pages still remaining) are examples of this. I do not remember exactly why, how, or when this information was provided, but as our computer use developed, a time came eventually when we needed it.

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. An example of this is shown in a listing, shown later in Section 21, of a plotting subroutine we wrote for use with Intercom programs.

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 substitute 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.

We probably got our Intercom programming material at our education session at Bendix, mentioned earlier. Since that was early 1958, our information 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 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 7: 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 form of definition had been made even before computers were available or the numerical control concept was developed; 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 coefficients for acceptable equations for these lines, 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. The equations we used sometimes reached the seventh degree, and could also include a square root term. 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 the outer cross section of the 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. This was all we needed. 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 8: 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 9: 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. This was, of course, a primary purpose of this computer at Northrop, and once we were able to start making tapes, this activity continued for at least three years; beyond that I cannot say. Development of programs to improve the NC tape creation process was done in parallel with the tape generation work already being done. 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 10: 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 path 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 11: Numerical Control Cutter Data Sheet.

Figure 12: 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 halves) 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 13: Complete Numerical Control Tape to Cut Station Master Template

Figure 14: Numerical Control Tape Segment

Figure 15: 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 16: 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 17: 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 discussed in Section 11, to generate numerical control cutter points. It is a first attempt to build a 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 element 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. To summarize, 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 18: Nacelle Frame Bendix Program, page 1

Figure 19: Nacelle Frame Bendix Program, page 2

Figure 20: Nacelle Frame Bendix Program, page 3

Figure 21: Nacelle Frame Bendix Program, page 4

Figure 22: Nacelle Frame Bendix Program, page 5

Figure 23: Nacelle Frame Auto Load Program, page 1

Figure 24: 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. We then created 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 both upper and lower contours for one half of the full body plan(s). It could do this for either a single body contour, such as a Station Master Template (shown later), or for multiple body contours, such as a nacelle frame (also shown later, in the section on Numerical Control Production).

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 indicate. I do not remember whether we had more than three.

15: Bendix Intercom Numerical Control 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 an Intercom 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 25: AN-2 Flexowriter Subroutine, Page 1.

Figure 26: 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 software package for numerical control tape generation. (Changes to tape verification came later). 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. As with the original numerical control programs, these subroutines were supplied only on a single punched tape, with no source code listings.

I do not know whether anyone at the time thought of this as a replacement for the original Bendix NC tape generation 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, in my memory, received a correction. 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 27: Fuselage Intercompac Program, Page 1 (Instructions)

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

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

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

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

Figure 32: 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 33: Station Master Template

Figure 34: 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 35: 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 36: 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 37: 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 in this program 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 38: Nacelle Numerical Control Program Introduction

Figure 39: Nacelle Numerical Control Program - Instructions

Figure 40: Nacelle NC Program Data, Page 2

Figure 41: Nacelle NC Program Data, Page 3

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

Figure 43: Nacelle NC Program Flexowriter Input, Page 5

Figure 44: Nacelle NC Program Flexowriter Input, Page 6

Figure 45: 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 46: Nacelle NC Program Run Initiation Example, Page 12

Figure 47: Nacelle NC Program Operating Instructions 1

Figure 48: Nacelle NC Program Operating Instructions 2

Figure 49: Nacelle NC Program Operating Instructions 3

Figure 50: Nacelle NC Program Operating Instructions 4

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

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

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

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

19: Summary, Northrop NC Bendix Program History

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 the Lines and Data group in Northrop manufacturing:

As previously noted, these two numerical control tape production programs using the Intercompac subroutine were all that we needed for our work on the T-38 and N-156F. During their use our programs showed no problems, 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 and as much 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; of the several that I had there, the one with whom I worked most closely during this period.

20. Numerical Control Production

With our program development work done, we were able to concentrate on regular numerical control production work. Our day shift would turn on the Bendix computer when they began work at 8:00 AM, and start an NC tape punch run. If it finished during their shift, another run was begun. When second shift came in, we would wait for any active tape job to finish, and, if we thought we had time enough, set up another tape run, shutting the computer off around midnight to 1:00 AM. As I noted earlier, the punch runs could take up to eight hours, and sometimes more, to finish. My memory is that it was common for us to get two tapes made a day. The time for a tape verification was similar to that of its punch run.

Below is a picture of a T-38 nacelle frame in close up, and its mirror part for the opposite side of the plane, both on the bed of the numerically controlled milling machine where they will be cut. These parts were typical of those for which we were producing NC tapes.

Figure 55. T-38 Nacelle Frames on NC Milling Machine Bed.

I have no memory of our computer hardware ever giving us any difficulty during the more than three years that I worked with it. This was at least in part due to the regular preventive maintenance which Bendix provided. Two of their service technicians would spend about two hours each Monday, usually in the morning, checking the computer. Our Bendix liaison told me at one time that one of their regular tests was to run the machine for some period (I don't know how long) at a higher than normal voltage on all of its vacuum tubes, and replace those which showed any signs of stress under this condition.

At one time (I do not remember the specific date, but probably late 1959) a need arose for a number of nacelle parts within a very short time frame. I do not remember whether we were regularly working overtime at this point, but to get these parts done by the required deadline our department ensured at least skeleton crew coverage for the first and second shifts through a two-week period, including weekends, and put on a third shift during that time (I was half of it). Bendix was told to skip their maintenance visits for those weeks, and we ran the computer for 24 hours a day 7 days a week for two straight weeks punching and verifying numerical control tapes for those parts. (This was a heavy workload for the punch, also). I believe we made the deadline.

Although we never had any hardware problems, we did have one software failure of which I am aware. One evening several months into regular tape production, my leadman (supervisor) and I heard the punching stop in the computer room, went in thinking that the job was done, and found the computer sitting idle but the tape it was punching unfinished, a little short of its proper end point. We checked everything we could think of; the actual problem possibility never occurred to us at this point. The punch was good, the computer ran fine when we started another program, and nothing in the point printout of the cutter motions output so far looked strange. We could find no explanation at this point, so we set the job up again in the same way. It stopped again at the same point. I do not remember just how we discovered the reason for the failure, but at this point we must have run the program again with printout only, no punching, to get a full point printout for the entire tape, and started looking very hard at the cutter points we were trying to use.

The difficulty turned out to be with the Intercompac weakness with points that were too close together. Our test to avoid this condition at a limit point for a cutter path functioned perfectly, but unfortunately in backing up the cutter to a safe distance from the limit it put it too close to the last point output, causing the Intercompac failure to occur there. We changed the cutter step increment being specified, and reran the job. That eliminated the problem, and we got a good numerical control tape. As far as I am aware, this was the only time that this variation of the problem occurred.

I do not know how many other numerical control projects, unrelated to the N-156 aircraft, were developed on the Bendix computer, but one which involved me was part of a subcontract Northrop had from Boeing for at least portions of the wings of their 707 Transport, which was just going into production at that time. I was given the task of optimizing the cutting time on a leading edge wing rib - a frame anchoring the upper and lower surfaces of the foremost section of the wing. The points defining both surfaces of the wing shape were already available; I have no memory as to how or in what form they were provided, but they could be punched into flexowriter tape for input to the original Bendix numerical control tape generator.

The curvature of the upper and lower surfaces was fairly shallow for much of the rib length, and these areas could be cut at a high speed without danger of exceeding tolerance, but the curve around the wing nose from one surface to the other, reversing direction, was much tighter, and the cutter had to move at much slower speeds to stay within tolerance. My job was to interpolate feed rate changes at appropriate locations along the cutter path to, while staying within tolerance at all times, slow the cutter down as little as possible as the curvature tightened moving forward, and to speed it up as quickly as possible as the curvature opened up moving backward. I do not remember how the feed rate steps and insertion locations were selected, but the result was effective. I remember watching one of these ribs being cut; actually seeing the tool cut the upper and lower surfaces at high speed while slowing well down as it swung around the nose, in its passes around the rib, was very impressive to me at the time. I do not remember how thick the rib was, but the entire job took several passes.

21. Plotter Use for Numerical Control

In January of 1960 Bendix announced a new accessory for the G-15D, the PA-3 Graph Plotter, recording its output on a roll of paper mounted on a drum. A copy of their Preliminary Technical Information page for the plotter, shown below, describes its capabilities and control instructions. Our department management thought that this plotter might be useful for the verification of numerical control tapes, which was our last step with them before they were sent to the shop, and so acquired one.

As noted in the Technical Information page, a previous Bendix plotter operated much more slowly, and output to single pages instead of continuous paper. I do not know whether that earlier plotter was even considered for tape verification by our management, especially when we were brand new to numerical control. Obviously Bendix did not then or later feel the need for any additional ability in their numerical control verification program, since none was included.

Figure 56. Bendix PA-3 Plotter Information Page.

Our department manager asked if it would be possible to modify our numerical control tape playback program, part of the original Numerical Control package, to permit it to plot the cutter path described by a tape as well as print it. I think he did not realize just what was involved; almost all of our previous programming had been in the Bendix Intercom language, while the playback program was in the Bendix machine language, a rather more complex system, as noted earlier. Also, as previously mentioned, the only form in which we had the playback program was on punched tape.

Because of the last detail, our first step was to read the playback program into the computer and print it out in hexadecimal form. Then this printout had to be translated into Bendix machine language, and a program listing developed from that, before we could begin to work out how any additions could be made.

I find no copy of the playback program listing in the material saved from that time, so must rely on my memory. I do have a listing of a plotting subroutine we wrote for Intercom programs which illustrates the code which we added to the playback program to drive the plotter.

Since, as indicated in the Technical Information page just shown, the plotter could only be moved one increment at a time in either the X- or Y-axis, drawing lines that were angled with respect to these axes (the majority of lines) required some special logic to determine which axis to increment, when, and how often, to achieve the proper angle in each step along such a line. As plotted, these lines were actually slightly jagged, although with 0.01 inch increments the jags were not very obvious. Shown below is a page of notes detailing the logic which was used to determine when the increments in each axis should be taken for any line, angled or not. I have also provided what I believe is an accurate transcription in print for easier reading.

Figure 57. Increment Selection in Plotting an Angled Line (Original Copy).

Here is the transcription of the above notes on Plotting Increment Selection:

P1 = is number of plotter pulses for greater incremental distance

P2 = is number of plotter pulses for smaller incremental distance

D = P1 - P2 ≥ 0

Tn' = Tn-1 - 2D, T0 = P1

For each P1 pulse,

Rounded Increment used for Pulse ratios

Rounded (Increment + 1) used for distance control

I do not remember our source for this procedure, but it was probably Bendix. Nor can I explain in detail at this late date just how this logic works. It appears that the theory is one of stepping along the longer of the two axes for the increment, testing after each pen stroke to see if a step in the shorter axis is needed to maintain the angle desired for the line, taking it if so, and adjusting the test variable as appropriate. I am uncertain at this point, though, as to the reasoning behind the values for the test variable increment in each case. I suspect that it was clearer to me at the time, since I had to implement it in code.

Below is the five-page listing of the Intercom Plotting Subroutine that I mentioned.

Figure 58. Plotter Subroutine for Intercom, Page 1

Figure 59. Plotter Subroutine for Intercom, Page 2

Figure 60. Plotter Subroutine for Intercom, Page 3

Figure 61. Plotter Subroutine for Intercom, Page 4

Figure 62. Plotter Subroutine for Intercom, Page 5

For those interested in the code here, a few notes, although again after all this time I am no longer as knowledgeable about it as originally.

The subroutine is entered at line 55 at the top of the first page. From here, almost three pages of the total five, to the Plot Loop line, are initialization -

The Plot Loop in just that - five plotting points within one drum revolution for maximum speed. At each point appropriate testing is done to determine which axis is to be incremented and plotted, or whether the end of the line segment being drawn has been reached. When the latter is true, transfer occurs to line 82 on page 5, in four cases through unconditional transfers at one of the test branch points. At line 82 the pen is taken off the paper, and at line u7 the subroutine returns to the Intercom program which called it.

In addition to adding the plotting logic, similar to that shown above, to the numerical control tape playback program, we made one other significant change to the routine.

The original version performed its job in a straightforward fashion:

The G-15 had an ability to output data in parallel with computing activity, (common in most later computers but advanced at this time). Remember that our system's typewriter was only numeric; formatted output on it was printed in what is described on page 2 of the Input/Output Notes shown in Section 5 as Slow Output mode. The formatted data, immediately followed by a unique marker, was placed in Line 19 for output, and the output operation initiated. The contents of Line 19 were moved up four bits every time a character was output from the end of the line, and testing for the marker placed at the end would show when all of the data was output. While this was going on, the computer could also be doing other computing. We learned about this capability from our studies of some of the machine code programming material which Bendix had given us, as was noted back in Section 6.

Bendix had not used this feature in the playback program, and it seemed to us that by using this ability to overlap the conversion time in the cycle with the printing operation, we could shorten the playback time. We rearranged the program logic to accomplish this, creating a numerical control playback sequence outlined as:

As I remember, we still had a small wait period between the printing and reading operations - the conversion operation actually took a little longer than the printing - but we cut 2-3 seconds off of the time to read and print a point, which significantly reduced the numerical control tape verification time. The cutter path for the Station 55.00 Station Master Template shown in Section 17, a single pass around a fairly small slice of the fuselage, contained a total of 118 points to punch the NC tape for the station. The first 45 of them are listed on the output page shown in that section. The label on the demonstration SMT shows the playback time to have been 24 minutes. At two seconds less playback time for each point, we would have saved almost four minutes, or one sixth of the total time, using our modified playback program. As noted earlier, many of our numerical control tapes for plane parts took several hours to verify, so the new program could save us as much as an hour in each tape playback, just from using the computer's ability to do computing and input/output operations in parallel.

The use of this rewritten numerical control tape playback program, along with the new Intercompac and Flexowriter Tape reading subroutines, meant that we had completely replaced the original Numerical Control Tape Generation and Verification package that Bendix had given us.

This was our last effort in the development of programs on the G-15D for use in numerical control work and for the computation of control lines in aircraft design. I do not know whether this was due to a feeling that no additional developments were needed, or possibly to a change in management philosophy, with a new department manager, later in 1960 or early 1961.

We had three years of good numerical control work and program development on the Bendix G-15D. After this though, all numerical control development support was focused on the APT Project, mentioned at the beginning of this account.

A year later, in late 1961, I was transferred to the corporate computer department.