`
`Initial zero shift
`
`Second zero shift or offset
`
`False
`centre
`
`(b)
`
`Figure 8.7 The application of a second zero shift to accommodate work resetting (a) first
`work setting (b second work setting.
`
`God
`plate
`
`Original
`zero
`datum
`
`Repositioned
`zero datum
`
`Figure 8.8 Use of zero shift for multicomponent machining at one setting.
`
`to locate a particular town. Using this reference system the part programmer
`can instruct the machine set-up person/operator exactly where to position each
`component so that their location will correspond with the selected program
`zeros.
`
`CNC PART PROGRAMMING (cid:9)
`DOCUMENTATION ASSOCIATED WITH PART
`PROGRAMMING
`
`173
`
`Before a part program can be compiled it is necessary to give some thought
`to the practical aspects of producing the component, and in most companies
`this is likely to involve the completion of an operation sheet. There is no stan-
`dard operation sheet, and the format will vary from company to company. One
`which will meet the requirements of the exercises that follow is shown in Figure
`8.9.
`In addition to an operation sheet there is also the need for documentation
`relating to machine setting and tooling, because some of the decisions made
`during the operation planning stage, and which in turn are taken into account
`when writing the part program, are of direct concern to shopfloor personnel
`responsible for preparing the tooling and the machine. Again, there is no stan-
`dard format for such documents. Each company will have its own procedure.
`
`DOCUMENTATION RELATING TO MACHINE SETTING
`
`Information regarding work-holding and location is of vital importance to the
`machine set-up person. He or she will also benefit from knowing the sequence
`of operations that has been adopted by the programmer. Also, it will be nec-
`essary to know the form in which the material to be machined is to be supplied.
`Ideally, all this information should be documented, not only as an aid to ef-
`ficiency on the shop floor, but also to provide a record for future reference.
`The documents used to convey this information will vary from company to
`company, and the precise way this information is disseminated is not of major
`
`OPERATION
`SCHEDULE
`
`OP
`No.
`
`DESCRIPTION
`
`PART No
`
`DESCRIPTION
`
`MACHINE TYPE
`
`COMPILED BY
`
`SHE
`ET No
`OF
`DATE
`
`TOOLING TYPE
`AND SIZE
`
`WORK
`HOLDING
`
`CUTTING
`SPEED
`
`FEED
`RATE
`
`SPINDLE
`SPEED
`
`Figure 8.9 Example of an operation schedule.
`
`Page 36 of 74
`
`RA v. AMS
`Ex. 1010
`
`
`
`174
`
`CNC PART PROGRAMMING (cid:9)
`
`175
`
`importance. The important thing is that the shop floor personnel fully under-
`stand what is required. So how detailed does the information need to be? The
`answer depends on the complexity of the component and the machining op-
`erations involved.
`Assume that the machine set-up person knows the sequence of machining
`operations involved and is to proceed with setting up the machine. Consider
`in the first instance work loading, holding, and location. What information is
`required?
`A simple component that is to be turned in one set up from a prefaced billet
`could be accommodated with a few short notes as follows:
`Material: (cid:9)
`Loading: (cid:9)
`Work-holding: (cid:9)
`Location:
`Zero shift:
`
`prepared billet, part number ****
`manual
`chuck type, fixture number ****
`back face of chuck
`Z direction + or —, and value
`
`The last item would indicate that a manual data entry shifting the Z axis zero
`from the spindle face to the workpiece face is required.
`A more complex component requiring two settings, with the second opera-
`tion requiring center support activated by an entry in the program, will require
`a little more detail and the information may be given as follows:
`
`Material:
`Loading:
`Work-holding: (cid:9)
`
`Zero shifts:
`
`diameter and length of bar stock
`bar feed to programmed stops, bar stop number
`collet, with programmed center support for second
`setting
`first setting, direction + or —, and value second
`setting, direction + or —, and value
`
`This information could be supplemented by two simple sketches showing the
`machining to be carried out at each setting.
`A simlar exercise can be carried out for workpieces involving milling. The
`exercise shown in Figure 8.10 could be produced on a "one part" basis or
`involve a multicomponent setting.
`In the first instance the workpiece could be located using the corner of the
`fixed jaw of the vise as a reference point, a technique referred to on page 168.
`The instructions necessary to achieve this would be as follows:
`Material: (cid:9)
`Work-holding:
`Location:
`Program datum:
`
`prepared blank length x width x height
`machine vise, fixture number ***"
`left-corner of fixed jaw
`X axis —25 mm (-1 in.) (axis-direction + or — value)
`Y axis 25 mm (1 in.)
`Z axis 2 mm (0.1 in.)
`
`Again the information regarding the program datum may be more readily
`understood if the instructions include a sketch.
`
`XY zero datum
`
`Drill two holes 50 (0.20)
`
`10
`(0.4)
`
`—
`
`t- - •
`
`20
`(0.8)
`
`Material: aluminum alloy
`
`Figure 8.10 Component detail. (Inch units are given in parentheses.)
`
`A multicomponent setup involving the same component could involve the
`use of a grid plate. To convey the necessary set-up information, the program-
`mer should be familiar with the grid plate and its associated locating and clamp-
`ing devices. With such knowledge he or she may be able to give detailed in-
`structions for the complete setting, using the grid references to position the
`various setting blocks, locating dowels, and clamps to be used in the operation.
`On the other hand, a competent set-up person could manage with the basic
`information included in Figure 8.11.
`
`X axis offset 120 (4.7)
`
`Original
`XY zero
`datum
`
`a)
`(.0 o CD
`
`Cl, CO
`
`• co
`
`
`
`Figure 8.11 8.11 Use of grid plate. (Inch units are given in parentheses.)
`
`Page 37 of 74
`
`RA v. AMS
`Ex. 1010
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`
`
`176
`
`TOOLING SELECTION AND IDENTIFICATION
`
`The responsibilities of the part programmer concerning tooling are as follows:
`
`(a) determine the appropriate tools to be used, including their shape and size
`and the material from which they will be made;
`(b) allocate identification numbers to facilitate machine setting;
`(c) allocate tool offset numbers;
`(d) determine, when appropriate, the dimensonal value of the offsets;
`(e) prepare appropriate documentation.
`
`It is essential that a programmer is fully conversant with the tooling system for
`the machine involved, that is, the type of tooling that can be used and the way
`the tools can be located and held in position.
`A major feature of CNC machining is the use of standard tooling. The in-
`tricate slide movements that are possible greatly minimize the need for special
`tooling, particularly form tools. In many ways the tooling requirements for
`CNC machining are less complex than for conventional machining.
`Providing the programmer is conversant with the machine tooling system,
`the process of selecting tooling for a particular job is largely a case of selecting
`and utilizing standard items.
`It is important that the correct tool material is used, particularly when using
`carbide inserts. Reference should be made to manufacturers' literature for guid-
`ance in this respect. Pages 44 through 46 give an indication of the type of
`information that is available.
`It is often the case that the tools available within a company for use on a
`particular machine will be further standardized with their details being docu-
`mented. An example of a company-based tool standard is shown in Figure
`8.12.
`All tools are required to have a numerical identity within the part program.
`This identity, commonly the letter T followed by two digits, is allocated by
`the part programmer and will correspond with the numbered position the tool
`will occupy in the machine turret, magazine, or other storage facility. The
`position each tool will occupy is affected by factors which are discussed below.
`Commonly used tools are often given an identity that is retained at all times,
`since this often eliminates the need to reset when jobs are changed. When this
`situation exists, it is essential that the part programmer knows exactly which
`tools are involved and their numerical identity.
`
`TOOL STORAGE
`
`With automatic tool changing facilities involving turrets, the positions for the
`tools in the turret are numbered. Thus a tool call of, say, T06 will cause the
`turret to index to position number six. The tool allocated the numerical identity
`6 must be set in position six.
`
`CNC PART PROGRAMMING
`
`177
`
`A.J. SMITH LTD (cid:9)
`
`NUMERICAL CONTROL DEPT.
`
`TOOL HOLDER No.
`
`PDJNL 3232P15
`
`PDJNL 3232P15
`
`ISO CODING
`KENNAMETAL
`SANDVIK
`VALENITE
`
`
`CARBOLOY
`
`r
`
`I
`I
`a
`I
`I
`
`I
`
`I
`I (cid:9)
`
`CHUCK
`ROTATION
`
`MO4
`
`TURRET
`
`MORI SEIKI
`TOOLHOLDER
`No T00026
`
`t
`2 E
`
`• i
`I
`I
`I
`I
`in
`
`I
`I
`I
`I
`I (cid:9)
`
`32°
`
`NOTE:- ALL DIMENSIONS ARE IN INCHES UNLESS STATED OTHERWISE
`
`TOOL
`No
`T709
`T710
`T711
`T712
`T713
`T714
`T715
`T716
`
`RN
`
`AC
`
`AN
`
`XN
`
`ZN
`
`WN
`
`AS
`
`XS
`
`ZS
`
`0.008
`0.0156
`0.0313
`0.0469
`0-0.625
`00937
`
`3
`3
`3
`3
`3
`3
`
`55
`55
`55
`55
`55
`55
`
`0.008
`0.0156
`0-0313
`0.0469
`0.0625
`0.0937
`
`0.008
`0.0156
`0.0313
`0.0469
`0.0625
`0-0937
`
`-90
`-90
`-90
`-90
`-90
`-90
`
`35634 2.6795
`3-5568 2.6788
`3-5433 2.6772
`3.5297 2.6756
`3.5162 2.6741
`34892 2.6710
`
`„.....- (cid:9)
`
`,...._
`
`NOSE
`RADIUS
`
`INSERT No.
`I.S.O. CODE I.S.O. CODE I.S.O. CODE I.S.O. CODE Zero Rtn. Dia. MAX. DIA.
`
`0-008 DNMG150602
`0-0156 DNMG150604 DNMM150604
`0-0313 DNMG150608 DNMM150608
`0-0469 DNMG150612 DNMM150612
`0.0625 DNMG150616 DNMM150616
`0.0937 DNMG150624
`
`'TITLE:-
`
`FINISH PROFILING TOOL
`
`QUALIFIED TOOLING
`MORI SEIKI SL7 — C.N.C. LATHE
`
`20-4323
`204455
`20.4725
`20.4997
`20.5267
`20-580.7
`
`25-9441
`25-9573
`25.9843
`26.0115
`26.0385
`26.0925
`
`TOOL No
`
`T709 to T716
`
`Figure 8.12 Company-devised tool standard. (All units are given in millimeters.)
`
`Page 38 of 74
`
`RA v. AMS
`Ex. 1010
`
`
`
`178
`
`Similarly, tools changed by automatic handling devices will be housed in
`readiness in a tooling magazine. When a tool is called the magazine will index
`to bring the appropriate tooling station into a position where the tool located
`in that station can be accessed by the handling device. Clearly the correct tool
`must be in each numbered position if the programmed tool call is to bring the
`desired tool into the machining position.
`Even when the tool change is a manual operation, effected by a programmed
`stop in the machining cycle, the process is assisted if the operator has a clear
`indication of the next tool to be used. It is usual, therefore, to number the tool
`storage positions or even the tools themselves. When the programmed break
`in machining occurs, the operator can refer to a document provided by the
`programmer to determine the next tool involved; on the more sophisticated
`control systems the tool may be indicated by a message displayed on the visual
`display unit of the control.
`The programmer should give due thought to the positioning of the tools in
`relationship to each other in the turret or magazine. Most indexing arrange-
`ments involve rotation in one direction only, so to change, say, from T03 to
`T06 will require three indexing moves, two of which are time-consuming and
`unproductive. Therefore the objective should be to position the tools in the
`turret or magazine in the order in which they will be called into use, although
`this is not always possible in practice.
`The problem of wasteful indexing time is considerably eased when the ma-
`chine is equipped with the facility to index tooling by the shortest possible
`route. In other words, the turret or magazine will rotate either clockwise or
`counterclockwise depending on which tool is called.
`
`TOOL CHANGING POSITION
`
`The programmer should consider carefully the position the machine slides are
`to be in when a tool change is made. There is a tendency, particularly among
`students, to return the machine slides to a set position before making a change,
`a practice that may have its merits from a safety point of view early in training
`but which, like wasteful indexing moves, can add considerably to the total time
`taken to machine the part.
`The objective must be to keep noncutting slide movement to a minimum.
`For example, on a vertical machining center it is often possible to effect a tool
`change immediately above the point at which the tool completes the required
`machining, the change being carried out after an appropriate Z up-movement
`of the machine spindle or head. This saves making a long and unnecessary
`journey to a set position such as the XY zero datum. On turning centers a similar
`time saving can be achieved by indexing as near to the workpiece as is safely
`possible. The programmer should always refer to the machinery manuals to
`check clearances necessary to allow tool indexing mechanisms and cutting tools
`to clear any obstructions.
`
`CNC PART PROGRAMMING (cid:9)
`
`179
`
`REPLACEMENT TOOLING
`
`For long production runs the programmer will need to give some thought to
`the provision of replacement tooling.
`When tools need to be replaced it is possible for the set-up person to deter-
`mine suitable offsets and make the necessary tool data entries as he or she
`would for the original tools, but this is time-consuming and interrupts produc-
`tion.
`An alternative approach is to use replacement tooling which is identical to
`the original. Such identical tooling may be of two types, namely, "qualified"
`or "preset."
`Qualified tooling is used on turning centers and has dimensions guaranteed
`by the manufacturer to within -10.0005 in. or 10.08 mm from up to three
`datum faces.
`Preset tooling is precisely set to predetermined dimensions in the toolroom
`and is applied to turning tools and milling cutters.
`The programmer may choose to recommend qualified or preset tools when
`compiling his or her tooling schedule, but if such tooling is prescribed, the
`programmer may need a feedback of information from the toolroom regarding
`the setting sizes. This information then becomes part of the overall program-
`ming and machine-setting package and should be documented for future ref-
`erence.
`
`TOOLING DOCUMENTATION
`
`Documentation regarding tooling, as with machine setting instructions, may be
`simple or relatively complex. It depends largely on the size of the company
`and the degree of organization that exists.
`The possibilities range from the situation where the machine set-up person
`has personal access to the range of tooling likely to be required, to situations
`where the tooling is prepared in a special-purpose tool room, issued to the set-
`up person as a package for that particular job, and on completion returned to
`the tool room for refurbishment and storage.
`For each programmed tool the minimum information required on the shop
`floor is as follows:
`
`(a) programmed identity—TOI, T02, T03, etc.;
`(b) tool type;
`(c) holder type and size;
`(d) insert type and size;
`(e) overall dimensions (solid tools);
`(f) projection of cutting tool from holder.
`
`When presetting is involved, the tool design or program personnel usually
`determine the original preset dimensions. The sizes should ultimately be no-
`
`Page 39 of 74
`
`RA v. AMS
`Ex. 1010
`
`
`
`Society, Glenview, IL
`
`Figure 8.14 Sample tool layout. Numerical Contr
`
`180
`
`tified to the part programmer so that they may be recorded and included as
`part of the general documentation for that particular job. A well-organized tool
`preparation facility may well retain the data against their own job reference to
`facilitate the preparation of replacement tooling and to allow for the possibility
`of having to prepare identical tools at some future time. See Figures 8.13 and
`8.14 for examples of tool data sheets.
`When tooling offsets are being used to achieve a particular machining effect,
`as discussed on page 225, the value of the offsets must be included on the
`document.
`It is often the situation that information regarding tooling, and sometimes
`information relating to machine setting, is included on the original part program
`form when one is used. Information documented in this way is of necessity
`rather brief, but in many cases is adequate.
`Another practice widely adopted is to give tooling details alongside the tool
`call in the part program. Again, the information is brief but adequate for many
`situations.
`The important thing is that the part programmer fully appreciates the needs
`of the people more directly concerned with the machining operation. There
`must be an efficient transfer of the relevant information. The means adopted
`
`091-001 (cid:9)
`PART NO. (cid:9)
`PART NAME (cid:9)
`TOOL
`
`SAMPLE (cid:9)
`
`TOOL
`DESCRIPTION
`HHS END MILL - 4
`FLUTE -1" (cid:9) SHANK (cid:9)
`•
`SINGLE END/CV-49-
`15920 END HILL
`HOLDER
`
`SEC/ NUMBER
`
`TO1
`
`El
`
`TO2
`
`El
`
`T03
`
`El
`
`194
`
`El
`
`TO5
`
`El
`
`T06
`
`El
`
`2
`
`3
`
`4
`
`5
`
`6
`
`HSS END MILL - 4
`FLUTE 3/5" SHANK
`ABLE ENO/CV-49-15715
`
`END MILL HOLDER
`
`A2 CENTER DRILL
`
`Erikson Ext Collet
`Chock/4200-3/16
`col 1 et/CV-49-15923
`Collet
`
`Holder/d100-3/4
`collet
`
`•
`
`Drill
`CV-49-15923 collet
`holder/9100-1/8
`collet
`
`DRILL
`CV-49-15923 toll et
`holder/with 9100-7/32
`collet
`
`HSS END MILL - 2
`FLUTE 3/0" SHANK
`CUL END/CV-49-15915
`END HILL HOLDER
`
`.078
`
`.078
`
`4.875
`
`5.000
`
`.125
`
`.125
`
`5.125
`
`4.875
`
`.205
`
`.205
`
`5.250
`
`5.509
`
`.375
`
`.375
`
`4.562
`
`4.700
`
`SPOT (18) HOLES
`ON PERIMETER,
`(8) (cid:9) ON B.C. (cid:9) and
`(4) (cid:9) on (cid:9) angle.
`
`.1 (cid:9) DP
`
`H3 (cid:9)
`
`
`e : F.
`
`54 (cid:9) Drill (cid:9) (8) (cid:9) HOLES
`ON B.C.
`
`22
`HS (cid:9) DRILL (cid:9) (19) (cid:9) HOLES
`ON PERIMETER AND
`(4) (cid:9) ON ANGLE 1"
`;., (cid:9)
`c, (cid:9) THRU
`
`C . BORE (18)
`HOLES
`
`H6 (cid:9)
`
`•
`t;,,'
`
`MODEL 104 TOOL SHEET
`MATERIAL (cid:9) 1018 CRS (cid:9)
`4/p CHANGE (cid:9) DATE (cid:9)
`TOOL DIAMETER
`
`!OPERATION (cid:9)
`
`TOOL LENGTH
`
`3 (cid:9)
`
`PROG.
`
`ACT.
`
`# (cid:9)
`
`',Roo ACT. V (cid:9)
`
`OPERATION
`DESCRIPTION
`
`PROGRAMMED BY (cid:9)
`DATE (cid:9)
`5-6-80 (cid:9)
`
`G. COMBS
`!SHEET (cid:9)
`SPEED
`
`1.0
`
`.750
`
`DI
`
`
`l':',, (cid:9)
`
`02
`
`6.187
`
`5.812
`
`.250
`
`.250
`
`4.687
`
`4.687
`
`HI (cid:9)
`
`FINISH MILL
`PERIPHERY
`
`H2 (cid:9) Mill (cid:9) (4) (cid:9) pockets
`.062 Op.
`Finish mill
`sides
`
`1 (cid:9) OF 1
`FEED
`IN/,AA
`
`3
`
`2
`
`3
`
`6
`
`5
`
`R P M
`
`270
`
`1100
`
`1180
`
`3030
`
`1650
`
`850
`
`3.9
`
`Figure 8.13 Model 104 tool sheet. Ex-Cell-0 Corp., Rockford Machine Tool Company, Rock-
`ford, IL
`
`Page 40 of 74
`
`RA v. AMS
`Ex. 1010
`
`
`
`182
`
`CNC PART PROGRAMMING
`
`183
`
`to achieve this objective will vary, but the programmer should always remem-
`ber that it is a very important aspect of his or her work.
`
`PART PROGRAMMING PROCEDURE
`
`The blocks of data entered in a part program are numbered N01, NO2, NO3,
`and so on. On completion of a machining program it is usually necessary to
`return to the beginning so that another component can be machined. The return
`to the program start position is usually achieved via a "rewind" or "return to
`start" command included at the end of the program.
`With word address systems, this command is entered as a miscellaneous
`function designated M30, which has the effect of stopping all slide and spindle
`movement, turning off the coolant supply and rewinding the tape. When the
`tape has merely been used to transfer a program into the microcomputer mem-
`ory, then it rewinds the program within the microcomputer. The stage at which
`this rewind must cease has to be identified, and this is achieved via a "rewind
`stop" program entry signified by the % sign. This is usually the first entry in
`a word address program.
`With the start of the program established, the next three or four blocks of
`data will concern setting the machine controller so that it interprets subsequent
`data in the correct manner. These set-up entries include instructions relating to
`the following:
`
`(a) units, which may be programmed in inch or metric;
`(b) slide movement, which may be stated as incremental or absolute dimen-
`sional values;
`(c) speed, which may be programmed as surface speed in feet/meters per
`minute or spindle speed in revolutions per minute;
`(d) feed, which may be programmed as inches/millimeters per spindle revo-
`lution or inches/millimeters per minute.
`
`Having established the basic set-up data, it may be helpful now to list in a
`general way the functions and machine movements necessary to produce the
`component. Consider the drawing for Exercise 1 (in Appendix C) and imagine
`that the machine is set with the spindle in its 'home' or 'base' datum position,
`that is, at a point some distance above the XY datum indicated on the drawing.
`Starting from this position, the part program must provide for the following:
`
`1. Rapid linear movement to P1 in X and Y.
`2. Rapid linear movement to a clearance position above ZO.
`
`3. Spindle on clockwise direction.
`4. Coolant on.
`5. Feed linear movement to Z depth.
`6. Rapid linear movement to clearance above ZO.
`7. Rapid linear movement to P2.
`8. Feed linear movement to Z depth.
`9. Rapid linear movement to clearance above ZO.
`. (cid:9)
`. and so on.
`
`These simple comments can, providing a space exists, be entered directly onto
`a program sheet or, if the program is being listed on plain paper, alongside
`each item of data, but it is probably a better plan to prepare a rough list in the
`first instance and then check carefully to ensure nothing has been overlooked.
`Relative codes and data can then be added to each statement.
`Should it be found that, on completion of a program, omissions have in-
`advertently been made, the error can be rectified more easily if the block num-
`bers are allocated in increments of five: N01, N05, N10, N15. It is then a
`simple matter to include additional blocks---N06, NO7, N08, for instance—
`between N05 and N10.
`If the program is being listed on a computer the blocks can be numbered
`consecutively, since any omission entered via the keyboard will automatically
`cause the existing blocks to renumber or, alternatively, renumbering can be
`easily effected. Many MDI control systems also have this facility.
`A methodical approach to part programming is essential, and it is recom-
`mended that, even for a simple component, an operation schedule listing the
`tooling speeds and feeds to be used should be completed in the first instance.
`
`WORD ADDRESS PROGRAMMING
`
`Word address programming is largely based on an International Standards Or-
`ganization (ISO) and Electronic Industries Association (EIA) code that require
`the program to be compiled using codes identified by letters, in particular G
`and M. Each code addresses, or directs, the item of data it precedes to perform
`a certain function within the control system.
`The ISO and EIA Standards provided for 99 G codes and an identical number
`of M codes, each being exprssed by the address letter followed by two digits.
`Not all the codes were allocated a specific function in the Standard and this
`gave the manufacturers of control systems the opportunity to introduce their
`own variations. There is, therefore, no standard word address machine pro-
`gramming language, although many of the recommendations made have been
`widely adopted.
`
`Page 41 of 74
`
`RA v. AMS
`Ex. 1010
`
`
`
`184 (cid:9)
`
`The G codes, or preparatory functions, are used to set up the machine control
`unit modes of operation required for the machining that is to be carried out—
`whether movement is to be in a straight line/linear or radially/circular, for
`example. In general they relate to slide motion control. Examples of commonly
`used G codes are as follows:
`
`GOO Rapid linear positioning, point to point
`GO1 Linear positioning at a controlled feed rate
`G02 Circular interpolation, clockwise
`G03 Circular interpolation, counter-clockwise
`G04 Dwell for programmed duration
`G33 Thread cutting, constant lead
`G34 Thread cutting, increasing lead
`G40 Cutter compensation, cancel
`G41 Cutter compensation, left
`G42 Cutter compensation, right
`G70 Inch programming
`G71 Metric programming
`G80 Series associated with drilling, boring, tapping and reaming.
`
`(For a complete list of G codes refer to Chapter 6.)
`G codes may be "modal," that is, they remain active until cancelled. Al-
`ternatively they may be nonmodal, and are only operative for the block in
`which they are programmed.
`The M codes, or miscellaneous functions, are used to establish requirements
`other than those related to slide movement. For example, they are used to
`activate spindle motion or to turn on a coolant supply. Examples of commonly
`used M codes are as follows:
`
`MOO Program stop
`MO1 Optional stop
`MO2 End of program
`M03 Spindle on clockwise
`MO4 Spindle on counter-clockwise
`M05 Spindle off
`M06 Tool change
`MO8 Coolant on
`MO9 Coolant off
`M30 End of tape
`
`(For a complete list of M functions refer to Chapter 6.)
`As with G codes, some M functions are modal, remaining active until can-
`celled. M functions may also become active immediately upon reading of the
`
`CNC PART PROGRAMMING (cid:9)
`
`185
`
`block or after all block commands are completed. (Refer to machinery manuals
`to determine how various codes operate.)
`In addition to the address letters G and M there is also common usage of S,
`F, and T to indicate speeds, feeds, and tooling. The letter N is always used to
`identify block numbers.
`The distinction between word address and conversational programming is
`best appreciated by reference to the simple movements discussed earlier.
`To program the linear movement of —39.786 mm or —1.6 in. in the X axis
`using the word address technique, it is first necessary to establish the operating
`mode required. This is done by including the appropriate G code, in this case
`GO I . Thus the complete program entry for the required move will be:
`
`Inch N260 GO1 X-1.6
`Metric N260 GO1 X-39.786
`
`Similarly, reconsider the 0.3 in. or 8 mm radial movement through an arc of
`90°. Once again the mode of operation has to be established using the appro-
`priate G code, which for circular movement in a clockwise direction is G02.
`It will also be necessary to define the target position in the appropriate axes
`and also the start of the arc in relation to the arc center using I, J, and K address
`letters that correspond to the X, Y, and Z axes respectively. A word address
`progrm entry to achieve this movement would read as follows:
`
`Inch N350 X1.7 Z-3.0 K.3
`Metric N350 G02 X43.765 Z-75.000 K8
`
`There are variations in procedure even when word address programming such
`a common machining feature as a radius. On some control systems the arc
`center may have to be defined—still using the I, J, and K address letters—in
`relation to the program datum and not the start position.
`The programming of radial movements using the word address method will
`be returned to later in the text.
`A word address program that includes a number of codes in both inch and
`metric is listed below. The program relates to the component detailed in Figure
`8.15, and is typical of its type. The comments written alongside the data should
`convey to the reader an impression of how, prior to programming, the ma-
`chining of a component is first broken down into operations. It also shows how
`the necessary machine control data are presented. Later in the text further ref-
`erence will be made to the program to illustrate specific programming tech-
`niques and features.
`
`Page 42 of 74
`
`RA v. AMS
`Ex. 1010
`
`
`
`186
`
`PROGRAMMING EXAMPLE
`
`Figure 8.15 shows a simple turned component for which a part program is to
`be prepared using the following basic programming information. (Examples of
`more detailed programming specifications are given in Appendix C.)
`
`CNC PART PROGRAMMING
`
`187
`
`i X axis values to be
`G90 Absolute positioning data (cid:9)
`G91 (cid:9)
`Incremental positioning data J programmed as diameters
`G94 Feed (in. or mm)/min
`G95 Feed (in. or mm)/rev
`G96 Constant surface cutting speed
`G97 spindle speed rev/min
`
`PREPARATORY FUNCTIONS (G CODES)
`
`MISCELLANEOUS FUNCTIONS (M CODES)
`
`GOO Rapid movement
`001 Linear interpolation—movement at a programmed feed rate
`G02 Circular interpolation, clockwise
`G03 Circular interpolation, counter clockwise
`G40 Cancel tool nose radius compensation
`G41 Tool nose radius compensation left
`G42 Tool nose radius compensation right
`G70 Inch units
`G71 Metric units
`
`MOO Program stop
`MO1 Optional stop
`M02 End program
`M03 Spindle on clockwise
`M04 Spindle on counterclockwise
`M05 Spindle off
`MO6 Tool change
`MO8 Coolant on
`M09 Coolant off
`M30 End of program
`
`5 x 45°
`W2 x 451
`
`s I
`
`E
`0
`Program datum
`Material removed
`by final pass
`
`Stock removal
`passes
`
`OPERATION SCHEDULE
`
`The first stage in the programming process is to prepare an operation schedule.
`An operation schedule for the component is shown in Figure 8.16, where only
`metric units are shown. The spindle speeds and feed rates have been determined
`by reference to the cutting data given in Chapter 7.
`
`TOOLING INFORMATION
`
`Although the component is a relatively simple one, it is still necessary to pro-
`vide tooling information for the machine tool setter. This information is de-
`tailed on the form illustrated in Figure 8.17, where only metric units are shown.
`
`PROGRAM LISTING
`
`Figure 8.15 Component detail. (Inch units are given in parentheses.)
`
`dtock material: 600 (2.40) brass
`
`Attention can now be given to listing the necessary programming data, together
`with appropriate remarks to ensure a logical approach is being adopted and to
`
`Page 43 of 74
`
`RA v. AMS
`Ex. 1010
`
`(cid:9)
`(cid:9)
`
`
`188 (cid:9)
`
`OPERATION
`
`SCHEDULE
`OP
`No.
`
`DESCRIPTION
`
`PART No. Ex. /
`
`mAcHvy.3742
`
`DESCRIPTION piad 6
`COMPILED BY . 4, C
`
`S7fT 7
`1).19A T E2- te4,
`
`CNC PART PROGRAMMING (cid:9)
`
`189
`
`ensure that nothing is overlooked. The required program is listed below. (Note
`that, in this particular case, a programming form is not being used, but partially
`completed programming exercises involving the use of a form are given in
`Appendix C.)
`
`TOOLING TYPE
`CUTTING
`FEED
`AND SIZE
`RATE
`SPEED
`.
`2ff (cid:9)
`./2
`IS,"0- ,e4/4/F
`/ Chnerie if/e/4 Z
`AlAiljell
`A, ,ZA11_11
`At.t.s.4eil 4
`•
`.78
`2
`28 (cid:9)
`2 0 Ria
`0 /0
`4+ AOC/ 890
`rim"
`Av,ii
`
`
`2 Raw ifeebTLE ';"- c;_,.4"- courr ,Z 70 .1).f 41, r4/41 /...1.17
`/35-0
`ZrAr.of.ed .
`P447 eitc,
`miAloi„
`ode;fAelr /g5-°
`AteACT
`
`WORK
`HOLDING
`
`SPINDLE
`SPEED
`,56,0
`
`Figure 8.16 (Metric units)
`
`TOOL PREPARATION AND SETTING DATA
`
`TURRET
`POSITION
`
`OFFSET
`No.
`
`OPERATION
`
`INSERT
`TYPE
`
`PART No. (cid:9)
`
`HOLDER
`TYPE
`
`X. /
`PRE SET LENGTHS
`x
`2'
`
`---
`
`..--
`
`,QC /07
`i AretivA,E
`/c ft 0 (cid:9)
`44141.exEA► ce4
`I )10
`r 4 / 22- 47?[
`7A,E waiive
`/9.2',9 6.,e a -054
`
`/ 0/ efilfriE Ae/Z4
`3 o3 Mats( /a
`chi'ni.ev To AbRa-
`S 05 me, oFF
`
`Figure 8.17 (Metric units)
`
`PART PROGRAM (INCH)
`
`Data
`
`Remarks
`
`G70 G90
`N10
`G95 G97
`N15
`G92 X4.0 Z8.0
`N20
`TO101 M06
`N25
`S3000 M03
`N30
`GOO XO Z.1 M08
`N35
`G01 Z-.3 F.003
`N40
`GOO Z.1
`N45
`X4.0 Z8.0
`N50
`T0202 M06
`N55
`S2380 M03
`N60
`GOO XO Z.1
`N65
`N70 GO1 Z-1.2 F.015 M08
`GOD Z.1
`N75
`N80
`X4.0 Z8.0
`N85
`T0303 M06
`S1430 MO3
`N90
`GOO X1.97 Z.1
`N95
`N100 GO1 Z-.768 F.020 M08
`N105 G00 X2.05 Z-.688
`N110 Z.1
`N115 X1.772
`N120 G01 Z-.748
`N125 GOO X1.85 Z-.669
`N130 Z.1
`N135 X1.575
`N140 GO1 Z-.709
`N145 GOO X1.654 Z-.63
`N150 Z.1
`N155 X1.417
`N160 GO1 Z-.65
`N165 GOO X1.496 Z-.57
`N170 Z.1
`N175 X1.26
`N180 GO1 Z-.512
`N185 GOO X1.339 Z-.433
`N190 Z.1
`N195 X.984
`N200 GO1 Z-.079
`N205 GOO X1.063 Z.1
`
`Absolute inch
`Feed inches/rev Spindle speed rev/min
`Pre-set safe turret indexing position
`Tool change. Tool No. 1. Off-set No. 1
`Spindle on clockwise
`Rapid to start position. Coolant on
`Center drill
`Rapid retract
`Return to turret index position
`Tool change. Tool No. 2 Off-set No. 2
`Spindle Speed
`Rapid to start position .
`Drill through .40
`Rapid retract
`Return to turret index position
`Tool change. Tool No. 3 Off-set No. 3
`Spindle speed
`Rapid to start position
`
`Rapid retract to clear cut surface
`Second rough pass-start position
`
`Third rough pass-start position
`
`Fourth rough pass-start position
`
`Fifth rough pass-start position
`
`Sixth rough pass-start position
`
`Page 44 of 74
`
`RA v. AMS
`Ex. 1010
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)