Anda di halaman 1dari 12

PARTNO / APT-1 CLPRNT UNITS / MM NOPOST CUTTER / 10.0 $$GEOMETRY DEFINITION SETPT = POINT / 0.0, 0.0, 0.

0 STRTPT = POINT / 70,70,0 P1 = POINT / 50, 50, 0 P2 = POINT / 20, -20, 0 C1 = CIRCLE / CENTER, P2, RADIUS, 30 P3 = POINT / -50, -50, 0 P4 = POINT / -30, 30, 0 C2 = CIRCLE / CENTER, P4, RADIUS, 20 P5 = POINT / 50, -20, 0 L1 = LINE / P1, P5 L2 = LINE / P3, PERPTO, L1 L3 = LINE / P3, PARLEL, L1 L4 = LINE / P1, PERPTO, L1 PLAN1 = PLANE / P1, P2, P3 PLAN2 = PARLEL, PLAN1, ZSMALL, 16 $$MOTION COMMANDS SPINDL / 3000, CW FEDRAT / 100, 0 FROM / STRPT GO/TO L1, TO, PLAN2, TO, L4 TLLFT, GOFWD / L1, TANTO, C1 GOFWD / C1, TANTO, L2 GOFWD / L2, PAST, L3 GORGT / L3, TANTO, C2 GOFWD / C2, TANTO, L4 GOFWD / L4, PAST, L1 NOPS GOTO / STRPT FINI

Introduction APT is an abbreviation for Automatically Programmed Tools. It is the name given to a technique for producing complex metal parts efficiently and reliably through the combination of modern dataprocessing and numerically controlled machine tools. A numerically controlled machine tool is a machine tool to which have been added servomechanisms and electronic control circuitry so that the motions of the tool will respond to numerically coded instructions on punched tape or some other suitable control medium. The preparation of the instructions which specify the machine motions required to produce a particular part is called "programming the machine tool," or "part programming." Automatic programming is a new technique, made possible by modern computers, in which the instructions are not given in detailed numerical form but in terms of English-like language convenient for people to use. Automatic programming also permits all the difficult mathematical computations associated with the use of numerical control to be performed automatically by the computer so that the job of the human part programmer is greatly simplified. The APT System is an automatic programming system for numerically controlled machine tools which shows great promise for providing a means for realizing the full potential of numerical control. The concept originated at the Electronic Systems Laboratory (formerly the Servomechanisms Laboratory), M.I.T., in a project sponsored by the Air Materiel Command, United States Air Force, but the development of a complete system for industry-wide use has resulted from a cooperative programming venture sponsored by the Aircraft Industries Association. Figure 1 shows the basic organization of the APT System programs and indicates the company assignments as of February, 1959. A number of additional companies have since joined the APT Project, and current work assignments are somewhat modified from that shown in the figure. Project co-ordination is now the assignment of the McDonnell Aircraft Corporation, St. Louis, Missouri. Previous papers have presented a general description of the APT System itself and the organization and history of the APT Project. This paper, however, considers the system as an example of computer application to an area which presents The APT System is an automatic programming system for numerically controlled machine tools which shows great promise for providing a means for realizing the full potential of numerical control. The concept originated at the Electronic Systems Laboratory (formerly the Servomechanisms Laboratory), M.I.T., in a project sponsored by the Air Materiel Command, United States Air Force, but the development of a complete system for industry-wide use has resulted from a cooperative programming venture sponsored by the Aircraft Industries Association. Figure 1 shows the basic organization of the APT System programs and indicates the company assignments as of February, 1959. A number of additional companies have since joined the APT Project, and current work assignments are somewhat modified from that shown in the figure. Project co-ordination is now the assignment of the McDonnell Aircraft Corporation, St. Louis, Missouri.

Previous papers have presented a general description of the APT System itself and the organization and history of the APT Project. This paper, however, considers the system as an example of computer application to an area which presents some rather unique problems. It will be noticed that the APT System structure - - contains virtually all the current techniques of computer applications, including simulation through interpretive programming, compiling, assembly, language translation, complex calculations, and data-processing of many forms and varieties. This paper is concerned exclusively with the design of the English-like language which is used to operate the system. The organization of the presentation is not historical but is rather an attempt to illuminate some problems of special-purpose language design for a specialized computer application. Most of the techniques employed are not unique to the APT System, but in some respects, owing to the mixture of geometric, mathematical, and

production-type problems, combined with the lack of computer knowledge on the part of programmers who will be using this system, the emphasis on various aspects of the design problem is somewhat different from that found in many other automatic programming systems.

The Geometric Language Language Design There are many considerations which influence the design of a language. The purpose of a language is for the communication of some idea, concept, or message from one source to another. In general, the parties at each end of this communication or language link-the sender and the receiver-have different characteristics. They operate in different patterns and prefer different ways of handling and presenting information. If a language is to be successful, it must offer a good match to the natural behavior patterns of both the sender and the receiver. In general, this is accomplished by operating the communication link in three segments. The first segment is a language form which is particularly adapted to the sender; the third or last segment is a language form which is particularly adapted to the receiver; and the middle segment is a translation procedure going from one language form to the other. From the point of view of designing languages, it is necessary to consider the over-all package of two languages and a translation scheme as one over-all system. Therefore, the final complete language package is strongly influenced by the characteristics of the sender and of the receiver and by the translation scheme. The preceding discussion has treated the language problem as the determination of the abstract structure of a mechanism for transmitting information. Another important influence is of course the medium, through which this information must pass, that is, the physical expression or representation of the language. From the three-part view of the language link, however, since translation is separated out, the transcription or expression of a language is merely one of encoding the various words which constitute the vocabulary of the language and of devising a suitable arrangement for representation of the relationships among the encoded words. Therefore the physical representation of the language is of considerably less importance than the selection of the vocabulary and the syntactical construction of the language itself. We shall concentrate primarily on the design of the language itself and leave the expression of the language for later treatment. In the case of the APT System, the language link which is of primary interest is that going from the human part programmer (the sender) to the simulated APT computer (the receiver). There are of course other languages going from the APT computer to the various machine-tool control systems (which for the purposes of this paper will be considered of minor importance), and a language from the APT computer back to the human part programmer. In general, however, it is preferable that there be essentially one language going in both directions between the sender and the receiver, so we shall concentrate on the problem of designing a language for expressing geometric and machining instructions which is convenient for the part programmer to use and which can be economically translated into terms which the APT computer can understand. What kind of a person will the average part programmer be? What kind of training has he had? How does he think about machined parts? These questions are important from the point of view of language design, since the final structure and format of the language must fit naturally into the framework of the part programmer"s past experience and knowledge. This does not mean, however, that the language should be tailored to fit exactly with the thought patterns and ways of doing things which the potential part programmer now employs. To a great extent these patterns of behavior have been influenced, and, in fact, primarily determined, by the old methods for

producing parts. Therefore what is actually desired is not a language form which will mirror exactly the existing techniques and thought processes but rather one which takes advantage of the improved capabilities of numerical control and automatic programming to increase the part programmer"s capabilities and at the same time one which seems to be a natural extension of the already acquired skills. A properly designed language can serve to advance the over-all capabilities of the production process without appearing to be a radical and revolutionary departure calling for large expenditures of money and effort to put into practice. Part Description What, then, is a part, and how can we describe and produce it? A statement commonly heard in connection with numerical control is that a part must be "described mathematically," and this is, of course, true. But it is not true that a part must be described by a single mathematical expression. Most parts are, in fact, composed of a multitude of subparts, each described by a single mathematical expression, so that a major consideration of the language must be the description of how these subparts are interrelated to constitute the whole. Notice that this decision to consider the over-all part as made up of subparts is, in fact, one step in the design of the language, since it is by no means the only way to describe the part. This may be seen most clearly by recognizing that this is entirely a human"s view of the problem, since the same part which the human considers to be composed of many subparts will be thought of by the machine tool as a collection of thousands of tool-center locations which are to be connected by straight lines. From the machine"s point of view, the consideration of thousands of points, each one very simple, is much preferable to the consideration of fewer, more complicated, subparts. The information contained in the two viewpoints is essentially the same, but the human"s view consists of much fewer units of ,much greater information density than the machine tool"s view. Sub parts Granted that the over-all part is to be described as a collection of subparts, how are the subparts to be described? Certainly, we would choose to call subparts by their natural descriptive names when possible rather than use complete, complicated mathematical expressions. Thus, for example, it is more natural to say the word CIRCLE than to mouth X2 + Y2 = Re. In other words, the word CIRCLE is far more natural for the human to use and is completely equivalent to the equation. But there must be more to describing the subpart than merely stating what kind of a thing it is. One must also be specific about where it is, how big it is, and what shape it has. It is at this point that the problem of a co-ordinate system for the description of the part enters the picture. In order to tie all the subparts together into a single total part, one basic frame of reference must be chosen. When such a frame of reference is chosen, then, of course, each subpart can be expressed in terms of that co-ordinate system. Once this is done for all subparts, the description of the total part is complete. But now the question arises: How natural is it to describe a subpart in the selected coordinate system? We will ignore the fact that many geometric curves and surfaces have a natural co-ordinate system in which the equations take the simplest form and will assume that the problem of translation and rotation of axes is no great difficulty. But notice that the word "describe" was used in the question-and used advisedly. "How natural is it to describe the subpart in the selected coordinate system?" The point to be made here is that, in general, there are a great many ways to describe a geometric surface or a subpart in addition to merely specifying the coefficients within its mathematical expression. Thus, although the simplest mathematical expression for a circle is to select the proper coordinate system and then write XZ

+ Y2 = RZ, that same circle may, in fact, be more conveniently described by saying that it is tangent to two lines, with a specified radius, or that it passes through three points, etc. Thus, with the realization that a distinction can be made between specifying the equation for a subpart and describing that subpart, a whole new area for language design is opened. In general, a part has only certain critical dimensions and subparts which must be precisely located and specified. The remainder of the subparts are in fact only connective tissue and serve to give strength to the part and establish and maintain the critical dimensions. In other words, if we look over the shoulder of the designer as he originally conceives the part, he will specify that a bearing plate of a specified size must go in one place and a strut or support of particular dimensions must go another place. Then, on the basis of these critical components, he will fill in the remainder of the design to satisfy requirements of lesser importance. This is not meant to imply that these latter subparts can be put in an arbitrary fashion, since each of them also is determined by design criteria such as strength of materials, producibility, and even aesthetics. By the time the design reaches the part programmer, he must follow exactly what the designer has specified. But the fact that the subparts were determined by first selecting critical components and then filling in between with other components has important implications for the language which is to be used to describe the part. In general, the most natural way to describe many of the components of the design is by their relationship to other components, because this is the way the designer determined them in the first place. Thus it is most likely that many lines will be specified merely to be tangent to two circles, and many circles will be specified merely to be tangent to two lines, Only a few critical components actually will be given by detailed coordinate-type information. Descriptive Terms The description of geometric components in terms of their relationship to other components calls for the use of names and descriptive modifiers. The basic components of a part which form the framework for description for the remaining components must be referred to many times. Rather than require the full description each time, it is much more convenient to give names to the basic components and refer to those components only by name in further definitions. In addition to names of components, however, it is necessary to be able to specify what kind of relationship one component has to another. Terms must be available in the vocabulary for describing geometric relationships such as tangency, intersection, etc., and additional descriptive modifiers must be available for distinguishing redundant cases. Thus, for example, two basic lines of a part might be called TOP and SIDE. If it is desired to describe a circle which is tangent to these two lines, with a specified radius, there are in fact four possible locations for that circle, and the desired case must be further described through the use of additional modifying words. Notice that here again a language-design decision has been made, since it would be possible to use a unique descriptive word for each single case to be encountered. Rather the decision is made to separate multiple cases through the use of compounded statements made up of descriptive relationship words and modifiers. This means that statements made in the language will be somewhat longer, but the vocabulary of the language can be made much smaller. Relatively few modifiers carefully chosen can be used to distinguish and describe a large number of cases. As long as the ideas represented by the chosen words are natural for the part programmer to use, the language is made much easier to learn and apply correctly. Implications The basic outline of the geometric aspect of the language has now been established. Complex parts will be described as collections of component subparts. In general, only the basic

components will be given in terms of coordinate-type information, and the remaining components will merely be described in terms of their relationships to the basic components and among themselves. Standard geometric names, rather than mathematical forms, will be employed wherever possible, and arbitrary names may be assigned to components for future reference. Before proceeding to a discussion of the non-geometric aspects of the language, let us examine briefly some of the implications of this method for describing complex parts. Perhaps the most striking feature is the minimization of numerical data. If full advantage is taken of the ability to define components in terms of other components, most of the numerical parameters required to complete the definition of the mathematical form of a geometric component are implicitly determined. This is appropriate, since most part-programming personnel are experienced in tooling, production, and metal-cutting, and extensive mathematical calculations would be quite foreign to their background and would make the language difficult and awkward for them to apply. Their training does, however, equip them well for the over-all geometric aspects of part description, so that the language constitutes a natural extension of their existing capabilities. Another implication of the language form which can lead to considerable savings in cost and effort is that, once the ability is present to define components in terms of basic components, the same facility can be applied to define them in terms of additional components which may have no actual physical significance with respect to the part itself. In other words, by using the language, geometric components may be introduced which have no physical meaning as far as the part is concerned but which are useful for constructing definitions for other components necessary for the over-all part description. The clearest illustration of this is the case of the many powerful constructions which can be performed by ruler and compass. Almost all drafting operations are performed using straight lines and circles, sometimes in very elaborate ways, and these identical constructions can be programmed in the language, using the many available definitions for straight lines and circles. Thus it is no longer necessary that precise scale drawings be prepared in which the draftsman carries out careful ruler-and-compass constructions. Instead it is possible to perform all these operations by statements made in the language. It is also of course possible to introduce into the language additional descriptive techniques which can be carried out mathematically by the computer but could not be performed in the drafting room. Design Changes A final implication of the geometric language is of great importance in accommodating design changes. If the components of a complex part are primarily defined in terms of their relationships to basic components, then a change in one of the basic components will automatically cause the appropriate change in all the other components of the part. In other words, if a part is described by the relationship among its subparts, then drastic changes can be made in the basic components without destroying the integrity of the part. All the intermediate subparts that serve as connective tissue between basic components will automatically change and distort to accommodate the new information. Even though the part may look considerably different, the fundamental design intent will be preserved. The basic idea of this feature of the language is made most clear if we introduce one additional feature which has not previously been described. Just as arbitrary names such as TOP and SIDE can be given to geometric components, arbitrary symbolic names may also be assigned to any numerical quantities as well. Thus it is possible to write a complete geometric description of a part, including both the basic components and the implicit subcomponents, using only symbolic

quantities. Even the basic components may be defined in terms of the coordinate system, using symbolic names for all parameters and numbers. The resulting set of statements in the language then constitutes an algebraic description of an entire class of parts. By giving particular numerical values to the names which stand for numbers, an individual member of the class of parts is selected. When viewed in this light, the language features which were introduced on the basis of being natural and convenient for the human part programmer to use are actually of much more fundamental and far-reaching importance. A language of the type which has been outlined does not merely save a little drudgery for a few individuals; in actual fact it represents a sizable step forward toward an improved technology for the production of complex parts.
The Written APT Language With the outline of the part-programming language complete, we may now turn attention to the written form of the language. Although the programming for the APT system is applicable to any generalpurpose computer, at the present time it has been coded only for the IBM 704 computer (with a modified version for the IBM 709). Therefore, the written version of the APT language has been arranged to suit the punched-card input to that computer. A number of compromises have been made to make the computer programming simpler, but all the basic features of the language have been preserved, so that the basic capabilities of the system have been compromised little if at all. A single word in the APT vocabulary, when translated into English, may consist of two words. In order to fit the construction of the computer, the two-word English equivalents have been abbreviated so that in all cases at most six letters, ignoring spaces, occur in each basic term. Spaces are ignored entirely so that separation between terms is indicated by a comma, and the symbols "=," "/," and "$" are used for major punctuation. The resulting format is sufficiently English-like to permit the language to be acquired easily and used with facility. With most automatic programming languages for computers, there are a great number of punctuation and statement format rules which must be learned and applied exactly in order for correct results to be obtained. The same statement of course applies also to the APT language, although in some respects to a lesser degree. But it turns out that, since the English equivalents of the APT terms are so natural, there are only a very few basic rules which must be learned concerning the placement of words in the statement structure. All the remaining rules may effectively be ignored, since, if a statement makes proper English sense, it will also match the rules of the language. This means that the only training necessary to learn the language is to learn the appropriate viewpoint for the geometric and toolmotion aspects of the language, learn the meanings of the individual words, and learn whether they go in the major or minor portion of a statement. Actually, even the question of whether a term goep in the major or minor portion follows a natural pattern as well, so that in essence the only requirement, in addition to-learning the basic vocabulary, is to "get used to1" the kind of statements which are gramrnatically correct. Figure 2, taken from the APT Part Programmers" Manual, shows most of the current vocabulary of the APT System grouped into classes, with indication of the proper placement in the APT statement structure.

The Tool-Motion Language Choice of Vantage Point In addition to describing the geometry of a part, the part programmer must be able to exercise control over the machine tool and the APT computer by means of the language. Here, again, although the primary language-design criterion is convenience for the part programmer, the overall implications of the resulting language are of more fundamental significance. The specification of the size and shape of the cutting tool, as well as the control of ON-OFF auxiliary machine-tool functions, is carried out in terms of natural descriptive words. No new considerations need be introduced to handle these simple functions. The control of the cutting-tool motion introduces a language-design problem which is distinct from that of the geometric language. In the case of geometric description presented above, the vantage point from which the part is described is primarily the chosen co-ordinate system for the part. This vantage point is appropriate for the static description of the geometry, but it is not well suited to the dynamic description of tool motion. If the vantage point is shifted, however, from the basic part coordinate system to the tool itself, then essentially the same language philosophy can be employed to describe tool motion as is used to describe geometry. Just as the over-all part can be viewed as a collection of component sub parts, the over-all tool path can best be viewed as a sequence of subpaths. The problem of describing the over-all tool path then becomes one of describing each of the component subpaths in terms of a common reference system. In order properly to co-ordinate the tool motion with the geometric description, the basic frame of reference is, of course, the same coordinate system as was chosen for describing the part itself. Once again, however, it is generally most convenient to describe component subpaths by their relationship to other paths, or to the geometric description of the part, rather than the co-ordinate system itself. In general, only the initial tool position and the initial tool direction of motion are given in terms of the coordinate system itself. All remaining tool motions are specified by descriptive terms relating the tool path to the geometric description of the part. Motion Description There are many ways to describe the curvilinear motion of a cutting tool in three-dimensional space, but one approach stands out from all the rest as the most natural and convenient for the part programmer to apply. Since the basic description of the part itself is given in terms of the component surfaces which bound the part, the most natural way to think of tool motion is in terms of curves drawn on the surface of the part. One slight complication arises, however, owing to the fact that the cutting tool is not a point but is rather a geometric surface of revolution. Therefore, a new surface called the driving surface is introduced in addition to the componentpart surface in order to complete the description of the curve. The viewpoint is that the tool is "driven" along the valley formed by the intersection of the part surface and driving surface, with the tool maintained tangent to both surfaces simultaneously. For example, the case of a ballnosed cutting tool is exactly equivalent to rolling a marble along the valley or groove formed by the intersection of the driving surface with the part surface. Just as in the case of the circle tangent to two lines, there are four possible positions for the tool. Two of these are automatically eliminated, since the tool must obviously be placed on the outside of the part surface; but either side of the driving surface is possible. From the vantage point of riding along on the tool as it

progresses around the part, the two offset cases are quite naturally described by the terms TOOL RIGHT or TOOL LEFT of the driving surface. The motion along the curve determined by a part-surface and driving-surface pair, which constitutes one component subpath of the over-all tool path, is terminated by encountering the driving-surface-part-surface pair for the next subpath. In general, when two curves intersect, the first curve cuts the second curve into two branches so that the part programmer must be able to describe which of the two branches of the new curve the tool is to follow. Since the vantage point for considering tool motions is the tool itself, the most natural designators for the proper branch are terms such as GO RIGHT, GO LEFT, GO UP, or perhaps GO EAST or GO WEST. It is normally assumed that the tool offset to the right or the left of the driving surface will be maintained for the new driving surface, so that the simple specification of direction of turning provides sufficient information to establish completely the new tool path. Additional terms for starting cuts and handling special situations such as GO TO and GO PAST are introduced to describe the desired relationship of the tool surface to the surface in question. GO TO, for example, means that the tool is to proceed until it touches the surface, whereas GO PAST means that the tool is to proceed through the surface until the trailing edge of the tool is tangent to the surface. In this way a language can be built up which is fully adequate for describing the desired tool motion in terms of the same geometric surface components used to describe the part. Just as in the case of geometric description, it is possible and sometimes very convenient to describe tool motions which have nothing to do with the actual production of a part. In the case of geometry, new lines and circles can be introduced to assist in the construction of a desired component subpart. In an analogous fashion, through the simple device of introducing the terms DON"T CUT and CUT into the language, it is possible to take time out in the middle of a description of actual cutting motion to cause the tool theoretically to maneuver through space (possibly crashing through actual part surfaces and holding fixtures!) and, once the tool has thus theoretically been positioned into the next desired location, resume actual cutting instructions. Just as the ruler-and-compass constructions can greatly expand the geometric description capabilities of the language, the use of DON"T CUT-CUT sequences can permit the programming of tool motions which are supposedly beyond the capabilities of the calculating programs of the APT computer. The most powerful application of these techniques comes about when they are combined, in that pseudo-surfaces having nothing to do with the part itself may be introduced and the tool theoretically moved along those surfaces until it reaches a desired point, and then cutting of the actual part with actual surfaces can be resumed. A clever part programmer can perform real artistry through the use of these devices. Summary Principal features of the language have now been presented. Both the static geometric and dynamic tool-motion aspects of the language follow the same philosophy of description rather than detailed specifications. The language is a true language, permitting great depth of expression, and is not merely a coding scheme in fancy trappings. The same philosophy of free description may also be followed in combining the geometric and tool-motion aspects into one complete part-programming language. There is great latitude in the sequencing of statements. All the geometric descriptions may be made at the beginning of a part program, and all tool motions programmed in terms of that description. On the other hand, if it seems more desirable,

geometric descriptions may be interspersed freely with tool-motion statements, so that it is possible to describe the part on the fly as it is machined. Throughout the part program, numbers may be replaced by literal symbols, so that an essentially algebraic description results. The language is easy to learn and natural to apply and is a natural extension of the capabilities of part programmers.

Anda mungkin juga menyukai