Sign up
Title:
Interactive man-machine method and system for grading pattern pieces and for producing an apparel marker
United States Patent 3887903
Abstract:
The specification discloses a technique for laying out an apparel pattern marker by efficiently arranging a plurality of apparel pattern pieces within a predetermined marker area. The system includes a digitizer for inputting digital coordinate data representative of a plurality of apparel pattern pieces. A central controller receives and stores the coordinate data and upon command, applies predetermined grading rules to the pattern pieces. The graded pattern pieces may be displayed upon a cathode ray tube display and checked by the operator. To produce a pattern marker, the operator faces the cathode ray tube display on which is displayed miniature representations of the marker area and the pieces comprising the desired style and sizes. The operator manually operates a stylus on a data tablet which is interconnected with the central controller and the cathode ray tube display. The operator further operates a multi-button function box in conjunction with movement of the stylus, in order to arrange the piece reproductions within the marker area on the cathode ray tube. When the desired miniature marker layout has been produced on the cathode ray tube display, the operator may cause the full sized apparel pattern marker to be automatically plotted. The pattern marker may then be utilized to cut cloth to enable the fabrication of a large number of garments of the desired style and sizes.


Application Number:
05/392651
Publication Date:
06/03/1975
Filing Date:
08/29/1973
Assignee:
Camsco, Inc. (Richardson, TX)
Primary Class:
International Classes:
G06T3/00; (IPC1-7): G06F3/14
Field of Search:
340/172.5,324AD 235
View Patent Images:
Primary Examiner:
Springborn, Harvey E.
Attorney, Agent or Firm:
Richards, Harris & Medlock
Claims:
What is claimed is

1. A system for laying out an apparel pattern marker wherein a plurality of apparel pattern pieces are arranged within a predetermined marker area comprising:

2. The system of claim 1 and further comprising:

3. The system of claim 2 and further comprising:

4. The system of claim 3 and further comprising pick means for being operated such that pattern pieces displayed on said screen jump to a predetermined location relative to said cursor when said cursor is moved adjacent said pattern pieces.

5. The system of claim 1 and further comprising:

6. The system of claim 5 wherein said function box includes a button for causing selected pattern pieces to be abutted within said displayed marker area.

7. The system of claim 5 wherein said function box includes a button for causing a pattern piece to be selectively rotated within said displayed marker area.

8. The system of claim 5 wherein said function box includes a button for causing a pattern piece to be flipped over within said displayed marker area.

9. A system for preparing an apparel pattern marker comprising:

10. The system of claim 9 wherein said digitizer includes a light for being illuminated if the operator does not operate said digitizer in accordance with predetermined criteria.

11. The system of claim 9 wherein said digitizer includes a cursor member movable over a table and including switches operable to designate types of coordinate signals being generated.

12. The system of claim 9 and further comprising means for calculating the efficiency of the utilizatiton of the marker area by a particular arrangement of pattern pieces on said display screen within the marker area, and means for displaying the efficiency of a finished marker layout on said display screen.

13. The system of claim 9 and further comprising means for terminating display of pattern pieces and marker area and for displaying a nested plot of various graded sizes of a pattern piece on said display screen, said stylus operable to check the grading applied to said nested plot.

14. A system for laying out a plurality of pattern pieces in a pattern marker comprising:

15. The system of claim 14 and further comprising means for displaying said miniature pattern pieces on said display screen in an order of decreasing size.

16. The system of claim 14 and further comprising a function box having a plurality of keys, one of said keys operable to cause one of said displayed pattern pieces to be locked on to movement of said light cursor in order to move said pattern pieces into said displayed marker area.

17. The system of claim 16 wherein one of said keys is operable to cause selected pattern pieces to be abutted within said displayed marker area.

18. The system of claim 14 wherein said forming means comprises a plotter for plotting a full sized marker on a sheet of pattern paper.

19. The system of claim 14 and further comprising means for displaying a goal line on said marker area to designate a desired area to be filled with said pattern pieces.

20. The system of claim 14 and further comprising means for generating an alarm indication if the boundaries of any of the pattern pieces arranged in said displayed marker area by operation of said stylus means are overlapped with one another.

21. A system for grading and checking model pattern pieces comprising:

22. The system of claim 21 and further comprising means for displaying on said display means a rule table selected from said function box.

23. The system of claim 21 and further including means for displaying a selected plurality of pattern pieces adjacent a marker area and for moving said pattern pieces into said marker area.

24. A method for arranging a plurality of apparel pattern pieces within a marker area to form a pattern marker comprising:

25. The method of claim 24 and further comprising:

26. A method of preparing an apparel pattern marker comprising:

27. The method of claim 26 and further comprising operating ones of said function buttons for causing pattern pieces to be moved into abutment with one another within said displayed marker area.

28. The method of claim 26 and further comprising:

29. The method of claim 26 and further comprising generating an alarm indication when pattern pieces overlap one another within said marker area.

30. A system for preparing an apparel pattern marker wherein previous markers have been prepared and stored comprising:

Description:
FIELD OF THE INVENTION

This invention relates to grading apparel patterns and preparing apparel pattern markers, and more particularly relates to a man-machine interactive method and system for automatically grading a plurality of apparel patterns and for producing efficient apparent pattern markers.

THE PRIOR ART

In the mass production of garments and items of wearing apparel, it has long been the practice to produce model pattern pieces and to manually grade additional pattern sizes from the model pattern pieces. Each pattern piece for each size and style garment desired to be produced is then cut out and manually arranged over a long length of paper called the marker. When an efficient layout of the pattern pieces over the marker is determined, the outline of the pieces are manually traced on the marker. The marker is then placed over a stack of material laid out along a cutting table and a saw is used to cut the multilayers of material along the pattern pieces outlined on the marker.

The above-described prior technique is extremely time consuming and laborious. In addition, unless the personnel accomplishing the grading function are highly skilled, errors can be introduced into the graded pattern pieces. Even with highly trained personnel laying out of the pattern markers, inefficient marker layouts may result, thereby resulting in expensive waste of cloth during the cutting procedure. In addition, the requirement for inventory procedures and storage space for patterns and markers is substantial with prior manual methods. A need has thus arisen for a method and system for quickly and accurately grading apparel patterns and for laying out and automatically plotting pattern markers.

SUMMARY OF THE INVENTION

In accordance with the present invention, a method and system have been developed which substantially eliminates or reduces the problems noted above which have occurred with prior manual pattern grading and marker preparation techniques. The present technique substantially reduces the time required for pattern grading and marking and eliminates the need for physical storage space for paper patterns and markers. The present method and system may be operated by personnel familiar with previous manual grading and marking techniques and specialized personnel having intricate knowledge of electronic data processing are not required.

In accordance with the present invention, a system is provided for laying out an apparel pattern marker wherein a plurality of apparel pattern pieces are to be arranged within a predetermined marker area. The system includes a screen for displaying to an operator scaled miniature representations of the pattern pieces adjacent a scaled miniature representation of the marker area. A stylus is movable by the operator to selectively move the representations of the pattern pieces on the screen to within the representation of the marker area on the screen. By use of the stylus and a function box, the operator efficiently positions each of the pattern pieces within the marker area. When the final marker is prepared on the screen, a plotter is energized to plot out a full size pattern marker corresponding to the miniature arrangement arrived at on the screen by the operator.

In accordance with another aspect of the invention, a system is provided for laying out a plurality of pattern pieces in a pattern marker which includes a digitizer for generating pattern piece coordinate data and grading instructions for the coordinate data. A storage device stores the coordinate data and grading instructions and circuitry is provided for selectively retrieving portions of the coordinate data and grading instructions corresponding to pattern pieces of a preselected style. Structure is provided to apply the grading instructions to the retrieved coordinate data to grade the pattern pieces to preselected sizes. A display screen displays miniature representations of the graded pattern pieces and the marker area. A data tablet includes a stylus movable relative to the data tablet for moving the pattern pieces on the display screen into the displayed marker area. A plotter forms a full size marker corresponding to the final arrangement of pattern pieces on the display screen.

In accordance with another aspect of the invention, a system is provided for grading and checking model pattern pieces and includes a digitizer for generating pattern piece coordinate data and grading instructions for the coordinate data. The coordinate data and grading instructions are stored. The grading instructions are then selectively applied to the coordinate data according to predetermined grade rules. A screen selectively displays nested plots of a plurality of graded sizes of each of the pattern pieces. A data tablet is interconnected with the display and includes a stylus. Circuitry is responsive to movement of the stylus adjacent the data tablet for displaying grading instructions for selected points on the displayed nested plots. A function box has switches operable to provide the grading instructions for selected points on the displayed nested plots. Circuitry is provided for regrading the selected points according to the revised grading instructions.

In accordance with yet another aspect of the invention, a system is provided for preparing an apparel marker. The system includes a digitizer table for supporting pattern pieces to be digitized. A slide bar is laterally movable across the table. A cursor is mounted on the slide rule and is movable along the length of the slide rule for being positioned at points along the pattern pieces. The cursor has switches operable to generate electrical signals representative of the coordinates of the position of the cursor on the table. A function box is movable along the slide bar with the cursor and includes buttons operable to generate grading instruction signals corresponding to the points along the pattern pieces. Circuitry is provided to store representations of the electrical signals and the grading instruction signals.

DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and for further objects and advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a perspective view of the present grading and marker preparation system;

FIG. 2 is a block diagram of the basic components of the system shown in FIG. 1;

FIG. 3 is a top view of the cursor function box;

FIG. 4 is a top view of the cursor control box;

FIG. 5 is a perspective view, partially broken away, of the function box utilized with the data tablet;

FIG. 6 is a view of the template used on the function box shown in FIG. 5 during the CHECK program;

FIG. 7 is a top view of the template used on the function box shown in FIG. 5 during the MARK program;

FIG. 8 is an electrical schematic of the cursor function box and the data tablet function box;

FIG. 9 is an electrical schematic for the audible system for the cursor function box;

FIGS. 10 and 11 are electrical schematics of the interface circuitry between the data tablet and the central controller;

FIG. 12 is a view of the bezel lights on the display screen;

FIGS. 13-16 are the coding sheets utilized in the input of Grade Rule data into the system;

FIG. 17 is a perspective view of the digitizer table with a plurality of typical garment pattern pieces laid out thereon;

FIGS. 18 and 19 are representations of pattern pieces digitized according to the present technique;

FIG. 20 is a perspective view of the interactive display console of the invention during the CHECK program;

FIG. 21 is a flow chart of various programs of the invention;

FIG. 22 is a coding sheet for the input of $STYLE: program data;

FIG. 23 is a coding sheet to enable the input of $MARK: information;

FIG. 24 is a coding sheet to enable input of $DRAW: information to the system;

FIG. 25 is a coding sheet enabling the input of PLOT information;

FIG. 26 is an example of tilting of a pattern piece on the display screen;

FIG. 27 is an illustration of flipping a pattern piece on the display screen;

FIG. 28 is an example of rotating a pattern piece on the display screen;

FIG. 29 is a perspective view of the display screen prior to operation of the MARK program;

FIG. 30 is a perspective view of the interactive console system illustrating positioning of pattern pieces within the marker area on the display screen during the MARK program;

FIG. 31 is a perspective view of the interactive console shown in FIG. 30 after the marker has been completed;

FIG. 32 is a diagramatic illustration of shade areas defined on a marker;

FIG. 33 is a perspective view of the plotter according to the present invention when plotting a full size marker;

FIG. 34 illustrates the file organization for the present system;

FIGS. 35-51 illustrate details in the file format for various programs of the system; and

FIGS. 52-56 illustrate flow diagrams for PROD 1 and PROD 2 programs of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

System Components

Referring to FIG. 1, the present system includes a digitizer 10 which inputs digital coordinate data representing pattern pieces and grading instructions into a central processor 12. A card reader 14 is utilized to provide instructions to the central processor 12 and an alpha/numeric cathode ray tube terminal 16 is utilized to input instructions to the central processor 12 and to display data output from the central processor 12. Terminal 16 may alternatively comprise a conventional teleprinter. A cathode ray tube screen display 18 is connected to display digital coordinate data generated from the central processor 12. A function box 20 includes a plurality of button switches thereon for enabling control of various functions of the display screen 18. A data tablet 22 includes a movable stylus 24 which may be utilized to change portions of the display on the screen 18. A plotter 26 is interconnected with the central processor 12 for automatically plotting a full size apparel pattern marker which may be used directly to cut pattern pieces from a stack of material.

FIG. 2 illustrates an electrical block diagram of the interconnection of the components of the present system. The digitizer 10 is interconnected through an interface 27 to the central controller 12. As shown in FIG. 1, the digitizer 10 includes a vertical bar 28 which is laterally movable along parallel guide rails 30 and 32 located along the top and bottom of a table 34. A cursor control box 36 is attached to the bar 28 and includes a cursor aperture member 38 which is centered over the point desired to be digitized. The cursor control box 36 and the cursor aperture member 38 are movable vertically along the bar 28 so that any point laying within the confines of the table 34 may be digitized by the system. A multi-key function box 40 is also mounted on the bar 28 and is interconnected with the control box 36 for movement vertically along the bar 28 and for lateral movement with the bar 28.

Electrical signals generated from the control box 36 and the function box 40 are applied via a flexible conductor 42 and through the interface 27 to the central controller 12 for storage therein. A plurality of pattern pieces designated generally as P are oriented on the table 34 for digitizing in FIG. 1. By placing the cursor aperture member 38 over a desired point on the pattern pieces P, and by proper operation of buttons on the control box 36 and on the function box 40, electrical signals representative of the coordinates of the point and the grading rules for the point are applied through the electrical conductor 42 to the central processor 12. By inputting a plurality of spaced apart points along each of the patterns P, coordinate data representative of the shape of the pattern pieces is stored in the central processor 12.

A number of digitizer systems may be utilized in conjunction with the present system. However, in the preferred embodiment of the invention, the digitizer Model No. 3931A manufactured and sold by Auto-Trol Corp. of Denver, Colo. has been found to operate satisfactorily. Such a digitizer is modified only to the extent that the function box 40 constructed in accordance with the invention, to be later described in detail, is mounted for movement with the cursor control box 36 to enable the operator to input data with ease. The interface 27 comprises interfacing included in the Autotrol Model No. 3913B package. The interconnection of the interface 27 between the digitizer 10 and the central controller is well known in the art and is specified in detail in literature provided with the HT12566B interface module.

The central controller 12 may comprise any suitable electronic data processor operable to provide real time control for the present system and having the desirable storage capacity. In the preferred embodiment, the central controller 12 is operable with a 16 bit digital word size and should have a minimum storage capacity of 24,576 words with a memory cycle time of in the range of 970 nanoseconds.

In the preferred embodiment, the central controller 12 comprises a general purpose digital computer such as the 2100A computer manufactured and sold by Hewlett Packard of Pala Alto, California. Firmware coding for the central controller is stored in bipolar read-only-memory in the floating point hardware option to substantially increase the performance of all floating point instructions and subroutines. For further description of the construction and operation of the Model 2100A Hewlett Packard computer, reference is made to the Hewlett Packard 2100A reference manual which is incorporated herein by reference.

Storage memory for the central controller 12 is provided by a magnetic disk assembly 44 which is connected through an interface 46 with the controller 12. Additional flexibility in storage may be provided by a magnetic tape unit 47. The disk 44 may comprise for example the Nashua 4415 Disc Cartridge manufactured and sold by the Nashua Corporation of Nashua, New Hampshire. In addition, the HP7901A cartridge Disk Subsystem manufactured and sold by Hewlett Packard may be utilized in conjunction with the disk 44. The interface 46 may comprise for example the Hewlett Packard Models 13210-60000 and 13210-60004 interfaces. The magnetic tape storage unit 47 may comprise for example the 7970B digital magnetic tape units manufactured and sold by Hewlett Packard of Palo Alto, Calif.

Each disk 44 utilized with the system is capable of storing approximately 1.25 million words of data to be used by the central controller 12. Pattern pieces, marker descriptions and other data are stored on the disk platters. One of the disk platters is permanently attached to the disk drive and cannot be removed or accessed by the user. The other platter is a "removable" platter that is inserted by the user. In practice, the user may find it desirable to procure additional removable platters to store piece and marker descriptions in order to back up his disk files.

The card reader 14 shown in FIG. 1 may comprise for example the 6042 card reader manufactured and sold by Mohawk Data Sciences Corporation of King of Prussia, Pa. The card reader 14 is operated by the operator to input MONITOR control cards, grading rules and other types of data input via conventional computer punch cards, as will be later described.

The alpha/numeric display terminal 16 may comprise any suitable input/output terminal. For example, the Data Point Model No. 3300 or Telray Model 3300 terminal may be utilized with the present system. In place of or in addition to terminal 16, a teleprinter 48 such as the ASR 33 teletype may be used. The buffered teleprinter input/output 2752A and the 12531B interface kit manufactured and sold by Hewlett Packard of Palo Alto, Calif. may be advantageously utilized with the present system.

The cathode ray tube display screen 18 may comprise, for example, the graphic terminal Model 2D2 manufactured and sold by Vector General of Canoga Park, Calif. The data tablet 22 may comprise the Model GT50 unit manufactured and sold by Computek, Inc. The sixteen key function box 20 will be subsequently described in detail. The function box 20 and data tablet 22 are interconnected with the central controller 12 through an interface 50, which will be subsequently described.

The marker plotter 26 may comprise, for example, the Series 2000 Modular Automated Drafting System manufactured and sold by Xynetics, Inc. of Canoga Park, Calif. As shown in FIG. 1, the plotter 26 includes a bar 52 which is movable along the length of the plotting area, along with a writing stylus 54 which is movable along the bar 52. The bar 52 and the stylus 54 are driven by electrical motors according to X and Y axis control signals generated from the central controller 12. The HP12566B computer interface module may be connected between the central controller 12 and the marker plotter 26 in a conventional manner. Control of the plotter 26 is afforded by operation of buttons on the control console 57 on the plotter. Movement of the stylus 54 enables the drafting of pattern pieces in the marker area at full size. Patterns are plotted on a long roll of paper 56 which may then be removed and placed on a stack of fabric for cutting a large number of patterns.

FIG. 3 is a top view of the digitizer function box 40. The function box includes 16 keys 60 which comprise conventional two position pushbutton switches which may be manually operated by the operator. Switches 60 are utilized to input the piece identification number, a new piece flag, and end piece flag, sample size, mirror flag, grade rule number and error corrections into the central controller 12. The functions for the 16 keys are as follows:

1/S -- used to designate either the number 1 or the letter "S" for small, depending upon the state of the alpha button;

0/+ -- used to designate the numeral 0 or "+";

2/M -- used to designate the numeral 2 or the letter "M" to designate medium;

3/L -- used to designate the numeral 3 or to designate the letter "L" for large;

4/X -- used to designate the numeral 4 or the letter "X";

5/h -- used to designate the numeral 5 or the letter "H";

6/t -- used to designate the numeral 6 or the letter "T";

7/a -- used to designate the numeral 7 or the letter "A";

8/b -- used to designate the numeral 8 or to designate the letter "B";

9/c -- used to designate the numeral 9 or the letter "C";

"new Piece" -- used to indicate that a new piece is about to be digitized;

"End Piece" -- used to indicate that the pattern piece has been completely digitized;

"Rub Out" -- used to erase data entered by the pressure of a wrong key;

"Alpha" -- depressed when it is desired to input letters or the + sign by depression of the corresponding keys 60;

"Mirror" -- utilized to indicate that the pattern being digitized is a mirror piece; and

"Size/D" -- utilized to indicate that the pattern being digitized is the sample size or to indicate the letter "D".

above the sixteen key 60 is a speaker 61 which emits an audible tone when a key is depressed and the central controller 12 receives the generated signal. An error light 62 is also provided which is illuminated when a gross input error is made. The light 62 remains illuminated until the error is corrected. Detailed description of the electrical circuitry of the function box shown in FIG. 3 will be subsequently described.

FIG. 4 is a top view of the cursor control box 36 and the cursor aperture member 38. As previously noted, box 36 and member 38 are commercially available as a portion of the Autotrol digitizer system. The cursor control box 36 includes five manually operable button key switches 64-72 and a switch dial 74. The operator may input grade points, intermediate points and notches by proper operation of the three keys 64, 66 and 68. The key switch 70 and the switch dial 74 are used in conjunction with one another. The switch dial 74 indicates what data is being input when the switch key 70 is depressed. The switch key 70 and dial 74 are thus utilized to input the grain line, stripe line, reference line, punch holes, internal points, alternate start point, transfer function point, center lettering point, and fixed intermediate point. The zero key 72 is utilized to input a starting point which is utilized in the digitizer maintenance test and in various tests utilizing grade increments. The operator can tell whether or not the keys depressed are functioning properly by a single beep given out by speaker 61 when a key is depressed.

The following is a list of the symbols about the switch dial 74 and their meanings:

Symbol Notation ______________________________________ Grain line Stripe line Reference line + Punch line I.P. Internal point * Alternate start point T.P. Transfer function point LET. Center point for lettering F.I. Fixed intermediate point ______________________________________

Attached to the right hand side of the box 36 is the cursor aperture member 38 which includes a plate 76 having a circular aperture 78 formed therethrough. Crosshairs 80 extend across apertures 78 and are utilized to sight on the centers of grade points, the ends of lines and the perimeter of the piece. A knob 82 is utilized by the operator to move the cursor aperture member 38 to the desired location.

FIG. 5 illustrates a perspective view of the function box 20 for inputting instructions associated with the operation of the data tablet 22 and the display 18. The function box 20 includes sixteen pushbutton keys 90 which extend upwardly from a generally planer face 92 of a console housing. A stop button switch 94 is positioned above the button keys 90. The face 96 of the housing of the function box is adapted to face the operator and electrical signals generated by the function box are transmitted via a conductor 98 to the central controller 12. The function box 20 may be utilized during grade checking or marker preparation, and each of the checking and grading functions utilizes a different template which fits over the keys 90 and covers the area generally designated by the dotted line 100. Each template bears different legends, as will be subsequently described. As shown in the broken away portion of the function box 20, a printed circuit board 102 and an electrical panel 104 are supported by conventional means within the function box. Electrical construction and operation of the function box will be subsequently described in greater detail.

FIG. 6 illustrates the template 106 which is utilized with box 20 to perform grade checking functions. The template 106 comprises a thin plastic sheet having 16 apertures formed therein, each aperture positioned to receive one of the button keys 90. Depression of the 10 buttons labeled 0-9 enable the rule table number desired to be checked to be entered into the central controller 12. For example, to enter the rule number table "128", the buttons marked "1", "2" and "8" are sequentially depressed. The button labeled "List Rule" causes the rule table number to be displayed under the list of rule tables on the display 18. The "Change Rule" button enables the rule number to be changed to another grade rule. The button labeled "Accept" indicates that the graded piece is accepted and re-entered into the central processor. The button labeled "Reject" is utilized to reject the displayed graded pattern. The "Plot" button may be depressed to request the display of a nested plot of the pattern piece in various grades. The button marked "Area" may be depressed to list the area and perimeter of each size of the nested plot. Button 94 marked "Stop" may be operated with various ones of the command buttons to give control back to the CHECK program of the system, so that the commands designated prior to the depression of the stop button may be performed by the system.

FIG. 7 illustrates a template for placing over the buttons 90 on the function box 20 when it is desired to perform marking procedures. Template 108 comprises a plastic sheet having sixteen apertures defined therein for receiving the buttons 90 and 94. Labels or legends are defined under each of the apertures to enable the accomplishment of various functions in the marking procedure. Depression of the cutton marked "Pick" enables the operator to "Pick Up" a pattern piece displayed on the display 18 so that the pattern may be moved on the display by operation of the cursor. Depression of the "Overlap" button enables the position of the "Picked" pattern piece to be adjusted so that it does not overlap any surrounding pattern pieces on the display screen. The button marked "Bump Down" will be used to adjust the position of a Picked piece by moving it down until it hits another piece or the marker edge. The "Bump Left" button adjusts the position of the Picked piece by moving it left until it hits another piece. The button marked "Tilt CCW" rotates the Picked piece in a counter-clockwise movement is steps of 0.5°. The button marked Tilt CW rotates the Picked piece in a clockwise direction in steps of 0.5°. The Release button allows a Picked pattern piece to be moved off the marker area on the display screen 18. The "Special" buttons turns "Special Functions" on and off on the display screen. The "Flip" button turns the Picked piece over. The "Bump Up" button adjusts a Picked piece by moving it up until it hits another piece or the marker edge. The "Bump Right" button moves the Picked piece right until it hits another piece or the marker length line. The "Rotate CCw" button causes the Picked piece to be rotated in a counter-clockwise direction in steps of 45°. The "Rotate CW" button causes the Picked piece to rotate in a clockwise direction in steps of 45°.

The "Pick Check" button functions the same as the Pick button, except that the desired piece does not jump to the cursor and the piece will not move along with the cursor. The "Vertical Stripe Lock" button adjusts the position of the picked piece on a vertical stripe line so that the stripe line of the picked piece aligns with the closest stripe line on the marker. The "Horizontal Lock" button has the same function as the Vertical Stripe Lock, except that the stripe to be locked on must be horizontal. The "Stop" button 94 is utilized in the checking procedure.

FIG. 8 illustrates a schematic diagram of the circuitry utilized by both the cursor function box 40 and the function box 20. As each of the function boxes 20 and 40 contain sixteen primary keys, the same electrical circuits may be utilized for both boxes. The circuitry includes 16 pairs 110-140 of cross coupled NAND gates to provide debounce circuitry for the keys. Each pair of cross coupled NAND gates includes two input terminals which are tied to the sixteen pushbutton switches of the function box. Upon depression of a button switch, the output of its respective cross coupled NAND gates goes logically low and when the pushbutton switches are released, the output goes logically high. The output of each of the 16 cross coupled NANd gate pairs are applied to a pair of diode matrixes 142 and 144 comprise, for example, the diode matrix TIDM286 manufactured and sold by Texas Instruments, with a predetermined address code burned into the matrix. As an example of the code, the output of each of the cross coupled NAND gates is illustrated in FIg. 8 with a binary address code at the output thereof. Upon depression of the button switch associated with each of the cross coupled NAND gate pairs, that particular binary code is output from the diode matrixes 142-144. For use with box 20, a seventeenth pair of cross coupled NAND gates 146 is provided with input terminals which are connected to the seventeenth pushbutton switch corresponding to the Stop button 94.

The outputs of the diode matrixes 142 and 144 are tied together and applied to the input of four AND gates 148-154. The output of gate 148 comprises bit three, the output of gate 150 comprises bit two, output of gate 152 comprises bit one and the output of gate 154 comprises bit zero of the address code output. The four bits from gates 148-154 comprise a binary address code having sixteen positions, each position relating to a different one of the sixteen button switches on the function box. This address code is provided to the central controller which implements the selected function.

The outputs of the diode matrixes 142 and 144 are connected to a multi-input NAND gate 156, the output of which is applied through a NAND gate 158 to the inputs of an OR gate 160. The output of OR gate 160 and an AND gate 162 are utilized to control the operation of a one shot 164. The one shot 164 may comprise, for example, a SN74141 multivibrator. The output of the one shot 164 is applied through an AND gate 166 as a strobe signal for strobing the bits zero-three. A lamp 168 is provided to be energized from a signal from a central controller in order to indicate gross errors in the case of the function box 40.

FIG. 9 illustrates circuitry for creating an audible sound upon depression of the pushbutton switches of the function box 40. A one shot 170 receives signals from the central controller and stretches the pulse received therefrom by an amount sufficient to generate an audible sound via a speaker 172. In operation, depression of the buttons of the function box creates a logic low signal at the output of the associated cross coupled NAND gates, which operate through the diode matrixes 142 and 144 in order to generate the unique address code at the output of gates 148-154. The central controller 12 recognizes the generated output and if the address is correct, the central controller generates a signal which is applied to the one shot 170 in order to cause an audible sound to be emitted from the speaker 172. This indicates to the operator that the system is operating satisfactorily. The one shot 170 and speaker 172 are mounted within the function box casing.

FIG. 10 is a schematic diagram of the interface circuitry between the data tablet 22 and the central controller 12. Operation of the stylus 24 relative to the data tablet 22 causes generation of three types of digital data signals. Ten bits of X coordinate data are applied to the ten terminals 180, while 10 bits of Y coordinate data are applied at terminals 182. Status bits are applied to terminals 184 from the data tablet. The X and Y coordinate data bits are supplied to inputs of 4-bit buffer chips 186, 188, 190 and 194. A suitable buffer chip may comprise the 370CJ buffer chip. The output of the chips 186-194 are applied through diodes to buffers 196, 198, 200, 202, 204 and 206. The voltage level of the X and Y coordinate data signals is increased from 5 volts to 12 volts by the buffers 186-194 in order to eliminate low level noise. The logic level of the coordinate data signals is reduced to conventional TTL logic level at the buffers 196-206. The output of buffers 196-206 are applied to inputs of ten AND gates 208.

A timing circuit, including cross coupled NAND gates 210 and 212 and interconnected flipflop counters 214 and 216, operates to generate timing signals for the switching of the coordinate data. Counters 214 and 216 may comprise, for example, a SN7476 counter circuit. The output of the timing circuit is applied via leads 218 to four NOR gates 220. The outputs of NOR gates 220 comprise a pair of enable lines 222 which selectively enable X and Y data to be alternatively transmitted from the buffers 196-206 through the AND gates 208. The output of the AND gates 208 comprise ten bits of either X or Y coordinate data or status bits. This ten bit signal is applied to the central controller 12 for operation as will be subsequently described.

The status bits generated from the data tablet 22 are applied through convertors 224 to inputs of buffers 226 and 228. The output of buffers 226 and 228 are also connected to the AND gates 210 in order to enable the output of status bits. Other portions of the timing circuitry comprise a three input NAND gate 230 which is connected to an input of a multivibrator 232 which operates to generate timing signals for enabling of the status bits. Terminal 234 is connected between counter 216 and multivibrator 232 and is tied to the remaining portion of the interface circuitry shown in FIG. 11.

An output of counter 214 is applied to inputs of an ANd gate 238, the output of which is applied to AND gates 208. Gate 238 is connected through an ANd gate 240 to a terminal 242 which supplies timing signals to portions of the system. In addition, terminals 244 and 246 supply timing signals to portions of the interface circuitry shown in FIG. 11.

One input of gate 240 is applied through NAND gate 248 and gate 250 and through invertor 252 to inputs of four flipflops 254, 256, 258 and 260. Gates 248 and 250 and invertor 252 operate as a strobe generator for operation of the bezel lights on the display screen 18, to be subsequently described. Terminals 262 are connected to receive command signals from the central controller 12 for selective operation of the bezel lights on the display screen 18. Terminals 262 are connected to inputs of eight ANd gates 264, the outputs of which are connected to flip-flops 254-260. The output of flipflops 254-260 are applied through eight NAND gates 266 which generate signals for illuminating the bezel lights shown in FIG. 12. Specifically, the designated NAND gate 266 is operated such that its output becomes logic low in order to provide a ground to the bezel lights. The other terminals of the bezel lights are connected to a source of positive voltage such that the lights are illuminated upon the occurrence of the logic low at the output of one of the gates 266.

FIG. 11 illustrates additional circuitry in the interface circuits connected between the data tablet 22 and the central controller. The circuitry shown in FIG. 11 is primarily flag circuitry for providing priority of I/O data to the central controller.

Referring specifically to FIG. 11, conventional input signals in Hewett Packard language are input from the central controller to the terminals 280. The command signals are applied through nine NAND gates 28a-i. The output of NAND gate 282a is applied through NAND gate 284, the output of which is applied to a four input NAND gate 286. The output of NAND gate 282b is applied through NAND gates 288 and 290 to an input of a flag flipflop circuit 292. The output of gates 282c and 282d are applied to the inputs of a flag buffer flipflop 294. An output of the flipflop 294 is applied to terminal 234 shown in FIG. 10. An output of gate 282e is also applied to flipflop 294. The output of gate 282f is applied to flipflop 294 and to flip-flop 292. The IEN input is directly applied to an input of a NAND gate 296 which receives an output from flipflop 292. An output of gate 282g is applied to terminal 246 shown in FIG. 10 and is also applied to an input of a control flipflop 298. Outputs of gates 282h and 282i are applied to the flipflop 298. The output of flipflop 298 is applied to an input of NAND gate 296. The SSS input is applied directly to an input of a NAND gate 300, while the SSC input is directly applied as an input of gate 302. The output of gates 300 and 302 are applied through an NAND gate 304 as an input of NAND 306. The output of gate 306 comprises the Skip Flap Signal (SSK) which is applied to the data tablet 22.

LSCM, LSCL and IOG signals are applied through a NAND gate 308 and a NAND gate 310 to terminal 242 shown in FIG. 10 and also to an input of gate 302. The output of flipflop 292 is applied via lead 312 to an input of a NAND gate 314 which generates the service interrupt request (SRQ). An input of gate 282e is applied as an input to a NAND gate 316 which generates the interrupt request (IRQ) signal. The output of NAND gate 286 is applied as an input, along with an input from gate 288 to the IRQ flipflop 318. The output of flipflop 318 is applied to a NAND gate 320 which generates the flag signal (FLG). The output of NAND gate 296 is applied to inputs of NAND gate 324 and to an input of a NAND gate 326 which generates the priority low (PRL) signal.

FIG. 12 illustrates the light switches 19 which are disposed at the lower portion of the frame, or bezel, of the display screen 18 previously shown in FIG. 1. The lights 19 include the Input Required light 340 which becomes illuminated when the display screen 18 requests information during marking procedures or when the special functions of the system are on. The Busy light 342 becomes illuminated when the system is performing a marking function and is busy, thereby locking the operator out of the system. The Overlap light 344 becomes illuminated when an overlap pattern piece cannot be positioned in the position desired without overlaps. The Shade Violation button light 346 becomes illuminated when a piece is not placed in its proper shade area, as will be latter described. The Maximum Tilt light 348 becomes illuminated when a pattern piece with a tilt restriction is tilted to that limit. The Error light 350 becomes illuminated when an error occurs in a marking procedure.

The step by step operation of the present system will now be explained in detail. Briefly, a grade rules program is built and is stored in the central processor 12. Individual pattern pieces are then digitized on the digitizer 10 and the coordinate data and grading instruction data relative to the pattern pieces and stored in the central controller 12. Nested plots of various sizes of a pattern piece may then be displayed on the display screen 18 and checked by the use of the CHECK program. The style and size of the patterns desired to be marked are then punched into MONITOR punch cards and fed through the card reader 14 into the system. In addition, other operating instructions for the system are input into the system through the card reader 14 through draw statement cards, plot cards, style cards and the like. In the initial use of the system, optional features of the system may be selected by operation of the POPTS program by typing in responses requested by the system into terminal 16. The desired markers are then constructed on screen 18 by operation of the function box 20 and the stylus 24. Error messages may be displayed to the operator during operation of the system in case of errors in operation. After preparation of a miniature marker on the display screen 18, the plotter 26 is operated to provide a full scale reproduction of the desired marker. The marker may then be utilized in the conventional manner and a plurality of layers of material are cut to enable fabrication of a plurality of garments of the desired style and size. Each of the above-noted steps will now be described in detail.

BUILDING GRADE RULE TABLES

Prior to use of the system shown in FIG. 1, grade rules must be input into the system. These grade rules will be stored and will be applied to digitized points of pattern pieces as specified during the digitizing procedure.

A grade point rule defines the X and Y increments for grading the different sizes at a grade point. There are several ways of determining the X and Y coordinates for a grade point rule. One method of determining these increments is for the grader to determine what they are by hand. The second method is to digitize each size of a grade point on a nested plot. The routine for building a grade rule table with the present system is termed the DRULE program. Below are the operating procedures for DRULE and an example of a DRULE grade rule listing.

1. Place the piece to be used on the digitizer table so that the reference line is in a true horizontal orientation.

2. Type in on the console typewriter 16 the following:

:JOB cr/lf

:PR,DRULE cr;lf

3. On the digitizer function box 40, punch in the rule number. This can be from 1 to 3 digits.

4. Position the cursor aperature member 38 over the grade point of the sample size and push the ZERO button on the control box 36. At this time the printer will print:

Rule number N coordinate points in 32nds coordinate points in 64ths x y x y

5. Position the cursor aperture member 38 over the first point (smallest size) to be graded and push the button labeled NOTCH. The printer 16 will print the relative coordinates in both 64th and 32nds.

6. Repeat step 5 until all of the points (smallest to largest size) for that rule have been printed.

7. To do the next rule, go back to step 3.

8. To stop the program, turn on bit 0 of the central controller 12.

The console typewriter 16 will print DRULE STOP 0000.

______________________________________ EXAMPLE OF DRULE GRADE POINT LISTING ______________________________________ Rule Number 2 Coordinate Points in 32nds Coordinate Points in 64ths X Y X Y -32 0 -64 0 -24 0 -49 0 -16 0 -31 0 -8 0 -16 0 0 0 0 0 8 0 16 0 16 0 32 0 31 0 62 0 46 0 92 0 55 0 111 0 64 0 129 0 73 0 147 1 ______________________________________

After the increments (X and Y) have been determined for the grade rules, a Grade Rule Table has to be built and input into the system. To build a grade rule table, the X and Y increments have to be keypunched into IBM computer cards.

In the preparation of the computer cards, the following rules are followed:

1. All X increments and Y increments have to be keypunched into separate cards with the X card first then the y card for each grade rule.

2. Each increments must be separated with one space.

3. If there is insufficient room on one card to punch the increments for all sizes, a slash must be punched in column 80 on the card and the rest of the increments may continue on another card. There is no limit on the number of continuation cards.

The transfer function value used occasionally in the digitizing procedures to increase or decrease the size of a piece has to be put on the rule cards where the value will be applied. After all increments for all sizes have been punched into a card, the transfer value should be punched in. The transfer function value is to be the last value on a rule card. If a transfer value is not put on a card it is assumed to be zero.

The $RULE: statement is used to build and list rule tables. Rule tables are keypunched onto computer cards and stored in the central controller 12 via the $RULE: card. Each rule table must have a unique name (without imbedded blanks) which will be used to reference the table with other commands.

The rule table indicates to the system the precision of the grade increments to use in grading. The following grade increments are allowed:

00032 = 1/32" 00064 = 1/64" 00128 = 1/128' 00256 = 1/256' 00010 = 1 millimeter for metric grading 00100 = 1/10 millimeter

To build a rule table the card deck structure shown in FIG. 13 must be used. FIG. 13 illustrates an 80 column coding sheet used to layout data to be keypunched onto an 80 column conventional computer card. Each column of the coding sheets corresponds to a column on the computer card. A description of each card follows:

1. $RULE: Indicates to the monitor that a rule table is to be built or listed (all or part of it). 2. OPERATION CARD Indicates to the rule program the type of operation to perform. BUILD Columns 1-5 (FIG. 13) BUILD A RULE TABLE 3. NAME CARD Identifies the rule table, the grading increment to use, the number of sizes and the number of rules in the table. The numbers in columns 18-21 and 22-25 (FIG. 13) are compared to the number of sizes and rules that are actually read. If these numbers are not the same, a diagnostic will occur. If columns 18-21 and 22-25 are left blank this comparison check will not occur. RULE NAME Columns 1-10 GRADE INCREMENT Columns 13-17 NUMBER OF SIZES Columns 18-21 NUMBER OF RULES Columns 22-25 4. SIZE CARDS Identifies each size and the order of sizes in the grade rules. Only one size per card is allowed. SIZE NAME Columns 1-6 (FIG. 13) 6 Character size name. 5. TERMINATOR CARD Terminates the size cards. /E Columns 1-2 (FIG. 13) 6. GRADE RULE CARDS Defines the increments for each size for a given grade point. As shown in FIG. 13, these cards are punched in a free-field format. Free field format means that increments are separated by blank spaces. 7. 999 End of Rule Deck. ______________________________________

To list a specific rule table the card deck structure shown in FIG. 14 may be used. A description of each card follows:

1. $RULE: Indicates to the monitor that a - rule table is to be built or listed. 2. LIST Indicates to the rule program the type of operation to perform. LIST Columns 1-4 (FIG. 14) LIST A RULE TABLE 3. NAME CARD Identifies the rule table to be listed. RULE NAME Columns 1-10 (FIG. 14)

To list a specific rule or rules the card deck structure shown in FIG. 15 may be used. A description of each card follows:

1. $RULE: Indicates to the monitor that a rule table is to be built or listed. 2. LIST Indicates to the rule program the type of operation to perform. 3. NAME CARD Indicates the rule numbers of a specific rule table to be listed. Columns 11-80 can be used to specify rule numbers for listing. There can be no imbedded blanks. The first value indicates the number of rules to be listed. Each rule is to be separated by a comma. As many rules can be requested as can be fit into columns 11-80. There are no contin- uation cards. RULE NAME Columns 1-10 RULES SPECIFIED Columns 11-80

To list all rule table names the card deck structure shown in FIG. 16 should be used. A description of each card follows:

1. $RULE: Indicates to the monitor that a rule table is to be built or listed. 2. *ALL Indicates to the rule program that a list of rule table names should be provided. *ALL Columns 1-4

Digitizing Procedures

When the desired grade rule table has been loaded into the system as previously noted, pattern pieces may be digitized by the digitizer 10 and coordinate data and grading instructions for the pieces may be stored by the central controller 12.

The operator of the digitizer 10 is responsible for entering all the necessary data required to build a data file for each pattern piece via the digitizer. The data used to build a piece data file consists of:

1. the piece identification number;

2. the sample size of the piece;

3. the mirror indicator if needed;

4. the reference line;

5. all internal piece information concerning the stripe line, grain line, punch holes, internal points, alternate start point, and center point for lettering if they are present; and

6. the grade points, intermediate points, transfer function point, and fixed intermediate points.

The patterns that are to be digitized should have all the information that is required to make that piece useful in the final marker. This information will be on the piece before it reaches the digitizer 10. The operator should keep two to three styles ahead of the styles required by the marker maker in order to reduce the majority of the unnecessary delays in marking future markers.

As shown in FIG. 17, the pattern pieces are placed on the digitizer table 34 with the pattern reference line in a horizontal position and the pieces are secured with tape. Although a plurality of pattern pieces is shown on the table 34 in FIG. 17 for clarity of illustration, in practice an operator will usually digitize one pattern piece at a time.

Referring to FIG. 17, pattern pieces for a pair of pants are illustrated. Piece P1 is a waist band pattern. Piece P2 is a left fly pattern and piece P3 is a right fly pattern. Piece P4 is a pocket facing pattern and piece P5 is a pocket lining pattern. Pieces P6 and P7 are panel patterns. Piece P8 is a front pocket shaper, piece P9 is a back pocket shaper, piece P10 is a back pocket pattern and piece P11 is a front facing pattern.

After positioning the pattern piece, the operator is now ready to enter the data for the piece. For each piece certain steps must be taken.

In performing these steps, the operator uses the digitizer function box 40 and the cursor 38. As previously noted, the digitizer function box 40 has 16 keys 60 which are used to input the piece identification number, new piece flag, and end piece flag, sample size, mirror flag, grade rule number, and error corrections. The cursor control box 36 has five keys and a switch dial 74. The operator can input grade points, intermediate points, and notches with the three leftmost keys on the box 36. The switch key (bottom center) and the switch dial 74 are used in conjunction with each other. The switch dial 74 indicates what data is being input when the switch key is pressed. This switch key and dial are used to input the grain line, stripe line, reference line, punch holes, internal points, alternate start point, transfer function point, center lettering point, and fixed intermediate point. The zero key is used to input a starting point which is used in the digitizer maintenance test and various tests used to document grade increments. The operator can tell if the buttons depressed are functioning properly by the single beep given from the speaker 61 when the button is depressed.

Operation of the digitizer 10 on a typical pattern piece will now be described. The function box 40 button "New Piece" is depressed. Until the New Piece button is depressed, all data entered is ignored. Depression of the button sets up a new data file. The piece identification number is entered via the function box 40. Each piece identification number is a 10 digit number. The number is entered by depressing the key 60 on the function box 40 that corresponds with each of the 10 digits. If an identification number of less than 10 digits is input and the operator proceeds to the next step, the error light 62 will be turned on. To correct this error, the operator has to return to the first step. All data input while the light 62 is on will be ignored.

The sample size of the piece is now entered into the function box 40. The sample size can be no more than size alpha numeric characters long. If more than six characters are input, the first six are accepted and the remainder are ignored. The sample size is the size from which grading will start. This can be input by depressing the Size button and the number buttons corresponding to the digits in the size. If the letters A, B, C, D, H, L, M, P, S, T and/or + are to be input in the sample size, such as for size 32S, the operator should for each letter depress the alpha key and then the appropriate letter key.

At this point, the "Rub Out" button on the function box 40 can be used. If the operator depresses a wrong key, he depresses Rub Out; and the wrong data entered will be erased. For example if a 3 were entered, it could be rubbed out and replaced with a 4 by depressing the Rub Out button and the 4 button. If a grade point were entered, it could be erased and replaced with an intermediate point by depressing the Rub Out button and the "Int. Point" button. For example, if a grade point rule number of 136 were entered, it could be replaced with 126 by depressing the Rub Out button twice, the 2 button, and the 6 button. The Rub Out will erase the last entry or may be used repeatedly to erase the last several entries made from either the function box or the cursor.

If a piece is symmetrical about the center piece line, it can be digitized as a mirrored piece. Only one-half of mirrored pieces are digitized, thereby reducing the amount of data input required for the data file. The grading program generates the reflection of the top half and thereby assures a perfectly symmetrical piece. The half being digitized has to be the top half, the reference line has to be the piece center line, and the reference line has to be horizontal. A mirrored piece is digitized using the same steps as a non-mirrored piece except that the Mirror button has to be depressed.

Next, a horizontal reference line has to be entered for each pattern piece. The reference line is used by the system to define the horizontal line (X-axis) used in grading the piece being digitized. This may be input by turning the switch dial 74 to the position and positioning the cursor cross hair 80 at the left end of the reference line. When the cross hair is positioned, the Switch button 70 (FIG. 4) is depressed. Repeat the same procedure at the right end of the reference line. The reference line will determine the orientation of the piece when it is used in a marker, unless there is a stripe or grain line.

If a stripe line or lines are shown on the pattern piece, the switch dial 74 is rotated to the symbol ∥. For a horizontal stripe line, the center of the cursor cross hair 80 is positioned at the left end of the stripe line. The Switch button 70 is depressed, and the grade rule number applied to the stripe line is entered through the function box 40. The procedure is repeated at the right end of the stripe line. For a vertical stripe line, the procedure is started at the bottom end of the stripe and continued to the top end. The first stripe line will determine the orientation of the piece in a marker, unless a grain line is present.

If a grain line is shown, the switch dial 74 is rotated to the symbol ⇋. The cursor cross hair 80 is positioned at the left end of the grain line and the Switch button 70 is depressed. The cursor cross hair 80 is moved to the right end and the procedure repeated. The grain line will determine the orientation of the piece. If a grain line is in a piece, the piece will rotate in 180° increments, instead of 45° increments when making a marker with this piece in it.

If punch holes are present, the switch dial 74 is rotated to the symbol +. For each punch hole, the cursor cross hair 80 is positioned at the center of the punch hole and the Switch button 70 is depressed. Next, the rule number to be applied to the punch hole is entered via the function box 40. If the rule number used for the next punch hole is the same as the rule number previously entered, then it needed not be repeated. This method of omitting rule number is referred to as allowing the rules to be "Modal."

If internal points are present on the pattern piece, rotate the switch dial 74 to the symbol "I.P." Internal points are grouped in pairs and must be digitized as such. Position the cursor cross hair 80 at right or bottom one of the internal points and depress the Switch button 70. Enter the rule number applied at this point via the function box 40. Position the cursor cross hair 80 at the other internal point in the pair and depress the Switch button 70. If necessary, enter the rule number applied to this internal point via the function box 40.

An alternate start point is sometimes placed on the perimeter of a pattern piece that will be used in a marker. The marker will be cut by some kind of mechanical cutter. The alternate start point allows the machine to move from one starting point to the nearest starting point, or alternate starting point of another piece, in order to save time in cutting. If an alternate start point is shown, rotate the switch dial 74 to the symbol *. Position the cursor cross hair 80 at the alternate start and depress the Switch button 70. Enter the rule number to be applied at the alternate start point via the function box 40.

The transfer function point is optional and is used to move a grade point in the sample size to another point before it is graded. The increment used in determining the new position is the extra increment added to a grade rule. This option is useful is grading normal size patterns into children's patterns. The transfer function point is applied by turning the cursor switch dial 74 to "T.P.", depressing the Switch button 70 and applying a grade rule through the function box 40.

A center point for lettering must be entered for every piece. This point is used to center all lettering inside the piece perimeter. This point is usually placed near the center of the piece. A grade should be applied to a lettering point if that point is to stay in one position. To enter this type point, rotate the switch dial 74 to the symbol "LET". Position the cursor cross hair 80 and depress the Switch button 70. A rule may be applied to this point, but it is optional.

The pattern piece outline must be entered in a clockwise direction around the piece starting at the point labeled as the start point. The rules are entered following the Modal method previously described, except for the start point. The start point must be followed by a grade rule. Six types of data can be entered in describing the piece outline: a grade point, a transfer function point, an intermediate point, a fixed intermediate point, a notch and the ending point of the piece perimeter.

The grade points are entered by positioning the cursor cross hair 80 at the grade point and depressing the cursor box button "Grade Point." If required, the rule number for the grade point is entered via the function box 40.

The transfer function point was previously explained. This function is normally used on grade points on the perimeter of the piece. The transfer function point is entered and the rule applying to the point is entered. This will move the grade point to a predetermined point, and the point is then graded.

Intermediate points are digitized between grade points if the section of the outline between these grade points is curved. The digitized intermediate points are used to define curved lines between grade points. The number of intermediate points entered is left up to the digitizer operator and should be chosen on the basis that for every intermediate point entered, two more points should be placed along side of the intermediate point. More points are needed where the curve of the line is the greatest.

The intermediate point is entered by positioning the cursor cross hair 80 at the point and depressing the cursor button "Int. Point." A grade rule is not to be entered on an intermediate point.

The system has the capability to eliminate any point that is found to be too close to another point. This function is called data suppression.

At times, the grader may wish the intermediate points to be exempt from data suppression. To enter intermediate points exempt from data suppression, the operator has to enter fixed intermediate points. To do this, the switch dial 74 is turned to the symbol "F.I.." The cursor cross hair 80 is aligned on the piece perimeter and the Switch button 70 is depressed. Where an intermediate point would normally have been entered along the perimeter, a fixed intermediate point may be entered.

To enter a notch occurring on the pattern piece, position the cursor cross hair 80 at the output position of the notch. This point is entered as a grade point as previously disclosed, or as an intermediate point. The cursor cross hair 80 is then positioned at the inner position of the notch and the cursor button "Notch" is depressed. The operator then proceeds to the next point to be digitized.

After all data for a piece has been entered correctly, the "End Piece" button on the function box 40 is depressed. This terminates the piece data and any data entered is ignored until digitizing steps are repeated for a new piece. A piece has to be ended after the last grade point or intermediate point.

FIG. 18 shows a mirrored pattern piece in the proper position to be digitized. The reference line is horizontal and a vertical stripe line is provided. Points which are digitized are marked on the drawing by numbers and "X's". The following explains how the piece was digitized:

1. depress New Piece;

2. enter the piece identification;

3. enter the sample size;

4. this is a mirrored piece, so the Mirror button is depressed;

5. enter the stripe line;

6. enter the internal points;

7. enter the lettering point;

8. enter the data concerning the perimeter (points with numbers are grade points, and the X's on the perimeter are intermediate points);

9. end the piece data description.

A piece that is to be digitized as a mirrored piece has to have the body of the piece being digitized above the reference line. FIG. 19 is an illustration of a non-mirrored pattern piece in position to be digitized. The piece was digitized as follows:

1. New Piece button is depressed;

2. piece identification is entered;

3. sample size is entered;

4. reference line is entered;

5. stripe line is entered;

6. punch hole is entered;

7. lettering point is entered;

8. enter the data concerning the perimeter (points with numbers are grade points, and the X's on the perimeter are intermediate points);

9. end the piece data description.

Check Program Procedures

When pattern piece data has been input into the system through the digitizer, the phrase "MARK OR CHECK" will be periodically flashed on the display screen 18.

The CHECK program is used to verify the accuracy of pieces before they are used in markers. When the question "MARK OR CHECK" displayed on screen 18 is answered by moving the stylus 24 to a predetermined position and depressed, thereby selecting CHECK, control is transferred to the CHECK program which displays a nested (or stacked) grade of the various sizes of a single piece. A typical nested display in the CHECK mode is shown in FIG. 20. The accuracy of grade rules and digitized data are verified by the check program. While using CHECK, grade rules may be corrected, pieces may be rejected, accepted, or left in the digitizer files for further examination, nested plots can be requested, and the area and perimeter length of pieces can be calculated.

The CHECK program examines the digitizer files, and when piece data is found in a digitizer file, the question

CHECK XXXXXXXXXX? YES NO EXIT

is displayed on the display screen 18, where the ten X's represent the 10-digit piece identification number. If the operator does not wish to check the piece, the stylus 24 is moved until the cursor on screen 18 representing the position of the stylus is positioned over the displayed "NO." The stylus 24 is then activated with a short burst of pressure on the data tablet 22 at the NO position. The next piece identification number will then be displayed on screen 18. If the stylus 24 is held on the NO with a steady pressure on the data tablet 22 to keep the stylus active, the operator is able to search through each file in quick succession. When the operator reaches the end of the digitizer files, the message

ALL DIGITIZER FILES HAVE BEEN SEARCHED

is displayed and control returns to the MONITOR program. The question MARK OR CHECK? is then displayed once again on screen 18. When CHECK is again called, the digitizer file search begins at the first digitizer file. If the operator wants to get back to the first of the digitizer files without examining all the files, he may activate the stylus on the displayed "EXIT." Control is returned to the MONITOR; and when CHECK is next called, the digitizer file search will begin at the first file.

When a piece is to be checked, the operator should activate the stylus on the displayed "YES." When checking pieces, the CHECK function box template 106 shown in FIG. 6 should be placed over the function box buttons 90, as shown in FIG. 20. The template 106 specifies the functions of the buttons used in the CHECK program, as previously described.

The rule table which is to be applied to the piece must be specified by the operator. The rule tables (up to 128), the piece identification and the message (specify rule table) will be displayed on screen 18 as follows:

PIECE I.D. SPECIFY

1 RULE TABLE NAME

2 RULE TABLE NAME The operator specifies the rule table by entering the rule table number into function box 20. The rule table number is the number to the left of the rule table name on the screen. Entry into box 20 is done by:

1. Pressing the number buttons on box 20 to indicate the rule table number. Example: Press the button marked 2 for rule table number 2; press the buttons marked 1, 2 and 8 for rule table number 128.

2. Press the button marked "LIST RULE." This will cause the rule table number to be displayed under the list of rule tables. If the number is incorrect, repeat step 1 and step 2. If three X's are displayed, the operator must re-enter the correct rule table number. The X's represent a nonexistent rule table number.

3. Press the STOP button. The piece is then graded and displayed as a nested plot as shown in FIG. 20.

optionally, the operator may accept or reject a piece when he is asked to specify the rule table. When the CHECK system asks the operator to specify the rule table, the operator may reject the piece without viewing it on the display by:

1. Pressing the REJECT button.

2. Pressing the STOP button.

If the operator wishes to accept a piece without viewing it on the display, he should:

1. Input the rule table number.

2. Press the LIST button.

3. Press the ACCEPT button.

4. Press the STOP button.

If the operator tries to accept a piece without specifying the rule table number, the CHECK program ignores the STOP button until the rule table is specified.

If the wrong rule table number has been entered, the message

*** SAMPLE SIZE, YY NOT AVAILABLE ENTER CORRECT SAMPLE SIZE OR "EXIT"

is printed on the screen 18. At this point, the sample size in the digitized data cannot be found in the rule table. The correct sample size for the rule table given must be entered to proceed with the grading of the piece.

If the rule table was entered correctly, the piece will be graded and generated on the display 18 as shown in FIG. 20. At this time, the information generated in the upper left corner of the display 18 should be noted. The information takes the following form:

Piece xxxxxxxxxx rule #zz

sizes in grade

y y y y y y the first line gives the piece identification number (represented by 10 X's) and RULE# , followed by the rule number (represented by ZZ) of any grade point. The next line indicates that the numbers (represented by Y) below are the sizes in this grade.

In FIG. 20, a small asterisk 360 (called a cursor) is displayed. When the stylus 24 touches the data tablet 22, the cursor 360 is displayed at the corresponding point on the display screen 18. The cursor 360 will follow the stylus 24 when the stylus is within 1/4 inch of the data tablet surface. The operator uses this as a guiding tool when checking the pattern piece.

At this time, the grade rules at the grade points may be checked and changed if necessary. If the operator activates the stylus 24 (by applying pressure) at a grade point; a large asterisk will be displayed at the grade point with the grade rule and the type of point at the right of the asterisk. By applying a constant pressure, the system will check each point that has a grade applied to it except a lettering point. When the stylus 24 is lifted up, the system will stop at the last point checked. The points checked are:

1. Grade Point -- G.P.

2. punch Holes -- P.H.

3. stripe Line -- S.L.

4. alternate Start Point -- A.S.

5. internal Point -- I.P.

6. transfer Point -- T.P.

if an incorrect grade rule is displayed, the RULE # can be changed to another grade rule by:

1. Make sure the grade rule that is to be changed is displayed, i.e., make sure the proper grade point is selected.

2. Enter the new rule number the same way the rule table number was entered.

3. Press the function box button marked CHANGE RULE and the rule number displayed will change to the desired rule number. If the rule number displayed at this time is wrong, repeat Steps 2 and 3.

At this time other grade rules may be checked and/or changed, or the STOP button 94 may be depressed to regrade the piece using the new rules. More than one rule number may be changed before the piece is regraded.

The operator now has five options as to what can be done with the piece. He may:

1. Return the piece to the digitizer files without utilizing the piece. This is done by depressing the STOP button 94 on function box 20. This will return the piece to the digitizer files in its original form without any corrected rules.

2. Reject the piece to eliminate the piece from the digitizer files. This can be done by

a. depressing the button marked REJECT and

b. depressing the STOP button 94.

3. Accept the piece. When a piece is accepted, it is removed from the digitizer file and put into a temporary file. When any card is read through the card reader 14 or program MONST is restarted, the piece is transferred from the temporary file to the permanent piece file. A piece is accepted by (a) depressing the button marked ACCEPT and (b) depressing the STOP button 94.

4. Request a nested plot of the piece on plotter 26. All sizes of the piece will then be plotted full size. A plot is generated by (a) depressing the button marked PLOT and (b) depressing the STOP button. The piece on the display will be returned to the digitizer file in its original form. Data concerning the piece, with any rule changes, will be prepared and put in the plot queue for plotting. The piece can be rechecked later.

5. List the area and perimeter of each size of the piece. This can be done by (a) depressing the button marked AREA and (b) depressing the STOP button 94. The area and perimeter for each size is printed on the system console, and the piece is returned to the digitizer files.

In the last four options the buttons 90 on function box 20 marked ACCEPT, PLOT, REJECT and AREA were used to designate a specific command that the operator wanted performed. The STOP button was used to give control back to the CHECK program so these commands could be performed. After the operator checks a piece, control is returned to the MONITOR, and the MARK OR CHECK? question is displayed once more on screen 18.

Controller Program Configuration

The program configuration of the central controller 12 is designed to provide the user with complete capability to input a sample pattern piece, grade the pattern piece to various sizes, group the pattern with other pieces to define a style, display the pieces in the style as various pieces on the display console, manipulate the pieces to produce a marker, and plot the marker in fullscale to produce a reproducible marker plot.

A flow chart of the program configuration for the central controller 12 is shown in FIG. 21. A control program 370 named the MONITOR controls the operation of the system. The MONITOR calls various main programs, and each main program calls various subprograms as required to perform operations requested by the user.

Referring to FIG. 21, at 372, MONITOR makes a decision as to whether or not cards are presently being read by the card reader 14. If the decision is positive, the MONITOR controls cards at 374, a work queue is built at 376 and the program reiterates back to the decision point 372.

If the decision at 372 is negative, the question MARK OR CHECK? is displayed at 378 on the display screen 18. If the word MARK is selected by the user at 380, the MARK program is executed at 382. The MARK program displays reduced size reproductions of the pattern pieces on the display screen 18 and allows the operator to manipulate the pattern pieces on the screen to produce the marker. The marking program performs many functions for the operator including detecting overlaps in pieces, adjusting pieces to correct overlap, bumping pieces together, assuring pieces stay on the marker, computing efficiency of the marker and manipulating pieces in general.

If the CHECK program is selected at 384, the CHECK program is executed at 386. The CHECK program has been previously described and displays nested or stacked grades of pieces on the display screen 18 and enables the user to check the grade of the pieces. The operator is able to correct incorrect grade rules entered by the digitizer operator at this point.

If neither the MARK or CHECK is selected, a decision is made at 388 as to whether or not jobs are in the work queue. If not, the system reiterates beginning at decision 372. If jobs are in the work queue, a decision is made at 390 as to whether or not to plot the next job. If so, the PLOT program is executed at 392. The PLOT program produces nested plots and produces instructions to drive an optional pattern cutter head in order to cut pieces from cardboard, if that option is desired with the system.

If the decision at 390 is negative, a decision is made at 394 as to whether or not a DRAW job is next in the work queue. If the decision is positive, the DRAW program is executed at 396. The DRAW program produces marker plots on the plotter 26. A decision is made at 398 as to whether or not miscellaneous jobs are next in the job queue. If so, any or a number of miscellaneous programs such as BRULE, MAINT, TABLE or the like may be executed. The BRULE program enables the building and lifting or rule tables. The MAINT program is a maintenance program which allows the user to list what pieces and markers are available and allows the operator to purge pieces and markers that are no longer required. The remainder of the miscellaneous programs will be subsequently discussed in greater detail.

Monitor Control Cards

Prior to laying out markers on display screen 18, the operator must feed in MONITOR control cards into the card reader l4. These cards define the various pattern pieces stored in the central controller 12 which define particular apparel styles.

The overall operation of the present system is controlled by the MONITOR program. The MONITOR reads data cards through the card reader 14 which specify the tasks to be performed by the system. The tasks which the operator can request the system to perform as as follows:

1. markers can be scheduled to be made ($MARK:);

2. markers can be plotted ($DRAW:);

3. pieces can be plotted ($PLOT:);

4. styles can be defined ($STYLE:);

5. grade rule tables can be created and edited ($RULE:); and

6. markers, pieces and styles can be reported and purged ($UTILITY:).

in addition to the basic functions outlined above, additional functions are available to control the operation of the system. These functions enable the operator to perform the following tasks:

1. identify the marker maker by inputting an identification number ($OPERATOR:);

2. modify the sequence of events to be performed by the MONITOR ($PRIORITY:);

3. clear all jobs scheduled to be performed ($CLEAR:);

4. suppress the redundant grading of pieces ($NOGRADE:);

5. shut down the system in an orderly manner ($HALT:);

6. signify the end of input data ($END:);

7. define messages to be plotted on pieces and/or markers ($MESSAGE:);

8. define shared or "half" piece size groups ($TABLE:); and

9. transfer pieces to a laser cutting system (optional) ($XFER:).

the data cards read by the MONITOR are referred to as MONITOR control cards. Each data card has a "$" in Column 1 followed by the "key word" for the operation to be performed. The key words for the various operations are shown in parenthesis above, e.g., MARK, DRAW, etc. Only the first two characters of each key word are required. A colon immediately follows the key word. Some MONITOR control card formats require additional data after the colon. The formats for each card type will be subsequently shown.

The MONITOR is initiated by typing :PR,MONST on the terminal 16. After the MONITOR is initialized, the operator will not be able to input MONITOR control commands via the console. This forces the operator to input the MONITOR control commands via the card reader l4, unless the MONITOR makes a request for information. The MONITOR control cards are read by placing the cards in the card reader 14 face down, with the top edge toward the user and the leading edge (Col. 1) to the left in the card reader hopper. The card reader should then be activated by depressing the START and RUN buttons. The system will automatically read the cards the print the cards on the system's console as they are read. The $END: card must always be the last card in the MONITOR control deck. When the $END: card is read, the card reader will automatically shut itself off. The MONITOR will then perform the operations requested by the MONITOR control cards.

An example listing of a MONITOR run with one nested plot requested is shown below:

:PR,MONST 1 MARKAMATIC SYSTEM START COMPLETED 2 TRANSFER AND GRADE PIECES COMPLETED 3 PURGE AND PACK JOB QUEUE COMPLETED 4 READ JOB STACK 1 $CL 2 $PL:1444444908,RULE1,1.0;38 3 $EN: COMPLETED 5 TRANSFER AND GRADE PIECES COMPLETED 6 PLOT 1444444908 COMPLETED

The MONITOR assigns a sequence number to each operation performed, e.g., operation number 2 was to generate plot data for piece 1444444908. In addition, the MONITOR control cards are also assigned numbers when they are printed.

The MONITOR reads and processes the input data cards and builds a "job queue" which consists of a list of the functions to be performed by the system. The tasks scheduled in the job queue are executed by the MONITOR in the sequence in which the MONITOR control cards were input. Therefore, the order of the MONITOR control cards determines the priority assigned to various jobs. For example, if several markers are scheduled, the marker specified in the first $MARK: card will be the first marker presented to the marker maker at the graphics console. If desired, the priority of various jobs can be modified by use of the $PRIORITY: card.

Normally when MONITOR control cards are input, the system will be required to grade pattern pieces stored on the removable platters and transfer accepted pieces to the removable platter. The MONITOR scans all input data cards to determine the number of pieces to be graded and the sizes required for the various pieces. Pieces to be graded are transferred from the removable platter, graded and stored in a temporary file area on the fixed platter. In addition, pieces which have been accepted by the CHECK program are transferred from a temporary storage area on the fixed platter to the permanent storage area on the removable platter. All pieces to be used in a marker have to be in the permanent piece file. Since the grading process requires a considerable amount of time, it is important that the system not be restarted until as many scheduled jobs as possible have been executed. As jobs are executed, they are eliminated from the job queue. After grading is completed, the message MARK OR CHECK is displayed on the display screen 18.

At this time, the user can select to begin the marking or checking program. The MARK OR CHECK message is displayed for a period of approximately 5 seconds on the screen 18. If the operator does not begin a marking or checking operation, the MONITOR will examine the job queue and execute the next job in the queue. The jobs in the queue will normally be $PLOT: or $DRAW: operations to generate nested plots of pattern pieces or plots of markers respectively. After the operation is completed or if no operation is in the job queue scheduled for operation, the message MARK OR CHECK is displayed on the screen 18 once more. The MONITOR is halted by entering a $HALT: card to assure an orderly shutdown of the MONITOR.

The layout of the more important MONITOR cards will now be described in detail. In the description of the MONITOR card, an 80 column coding sheet representation will be shown in the figures. The coding sheet is a conventional technique for laying out data to be keypunched into a conventional 80 column computer card. Each column of the coding sheet therefore corresponds to a column of a conventional computer card.

FIG. 22 illustrates the coding sheet for a $STYLE: card. The statement on the coding sheet is utilized to define styles are processed and permanently stored in the file system. Each $STYLE: definition must have a unique name and defines a list of pattern pieces to be included in the particular $STYLE:. As previously noted, a large number of coordinate data defining pattern pieces are stored in the system. Only by use of the $STYLE: card are the pattern pieces defined which comprise a particular style. The $STYLE: definitions are processed by the MONITOR program before the definitions are referenced by a $MARK: statement. Upon inputting of the $STYLE: cards, the central controller 12 leaves the data input from the card reader 14, and checks to make sure that each pattern piece defined on the cards is digitized and is available.

The modifiers which appear on the coding sheet shown in FIG. 22 are defined as follows:

$STYLE: Specifies the type of MONITOR request. Style Name, The style identifier field specifies the identifier for the style definition. The identifier must be 10 or less alpha/numeric characters and must be a unique name or number. Rule Table The rule table name denotes which rule table previously stored in the system to use for the grading process on the pieces in the definition. ;Piece The piece list specifies the pieces to be included in the style definition. Each piece description has a set of optional parameters which may be included with each piece reference. The piece identifier must reference a previously stored pattern piece. ,FLIP This modifier (optional) specifies that this piece and all pieces in the style which have a FLIP parameter will be flipped when the flip function is selected while making a marker. ,BLOCK This modifier (optional) specifies the piece is to be blocked while using plaid material. The amount of blocking is equal to one stripe spacing in the width and one plaid spacing in the length. ,X=value This modifier (optional) specifies a percentage X (length) increase or decrease desired for the regular graded piece. (Note: the X= value is in addition to the normal grading rules and applied only to the piece.) The value is a ± integer or ± decimal % increase. ,Y=value Same as X=value except the increase or decrease is applied in the Y (width) direction. ,OPPOSITE This modifier (optional) specifies that the opposite or flip (right for left, left for right, etc.) piece is desired and not the original piece. ,ROTATE This modifier (optional) specifies that the rotated piece (180°) is desired rather than the original piece. ,NAP This modifier (optional) specifies that this piece and all pieces in the style which have the NAP modifier will be rotated when the rotate function is selected while making the marker. ,TABLE=n This modifier (optional) permits the user to specify the combination (or pairs) of sizes which require only one piece for a pair of sizes rather than a piece for each size in the marker. The n value specifies the table number to be used for selection of the combination of sixes. The table values are input to the system by using the $TABLE: MONITOR request. ,TILT=n This modifier (optional) specifies the number of n degrees (XXX.X) allowed for tilting the piece during the marking operation. The number of degrees cannot exceed 30.0. A piece may be rotated past the limit but not tilted past it. The piece will rotate 180°. ,STRIPE=group This modifier (optional) specifies a group for particular piece matching if the stripe parameter in the marker equals 99. This parameter can only be used on pieces that are to be locked on the horizontal stripe line. 1. Center line Lock: The pieces in the style that are given this group number are to be locked on the center stripe. 2. Equidistance from Centerline: The pieces in the style that are given this group number are to be locked on equidistance from the centerline, whether below or above the line. 3. Align on same stripe: The pieces in the style that are given this group number are to be locked on the same line. Group numbers 4 thru 7 can be given to piece in a style to allow separate groups to be locked on different lines. 4.-7. Same as 3. ,SHADE This modifier (optional) specifies that the piece must conform to the shading constraint as specified on the $MARK: request. ,msg This message parameter (optional) is an integer from 1 to 10 and specifies that message n appears on the piece as it is drawn on the marker plotter. The message number refers to one of 10 messages previously loaded by the $MESSAGE: statement.

FIG. 23 illustrates a coding sheet for the $MARK: control card. The $MARK: MONITOR control card specifies the styles and sizes to be marked. Each marker must have a unique name and the marker when completed is stored permanently in the $MARK: file.

FIG. 23 shows four examples of various markers. Example A shown on the coding sheet is a single size 14 marker with a material width of 60 inches, a yardage length goal of 3 yards 12 inches, using the pieces which have been defined by the style definition . . . STYLE1.

Example B is a three size marker using sizes 121/2, 141/2, 161/2 with a material width of 591/2 inches, a yardage length goal of 4 yards 24 inches, and the pieces defined by the style definition . . . EXAMPST.

Example C is a multiple style marker using size 14 of the style called STYLE1 and size 161/2 of the style called STYLE2. The material width is 601/2 inches, the yardage length goal is 3 yards, and the Dimension, Stripe, Plaid, Flip & Nap parameters are used.

Example D is a single style marker with a 14 and a reverse size 14 (piece rotated 180°). The material width is 601/2 inches, and the yardage length goal is set at 90 percent efficiency.

The card modifiers for the $MARK: card are as follows:

$MARK: Requests the generation of a marker. Marker Name, The marker identifier field specifies the identifier for the stored marker. The identifier must be 10 or less alpha/numeric characters and must be a unique name or number. Examples: 238721FALL; 28-26-7620; ALINE-2631; 060-32-767. WIDTH=value, This modifier specifies the width in inches of the marker. The width parameter may be expressed as decimal value. GOAL=yds/inches The modifier specifies a yardage length in GOAL=yds yards and inches (GO=yds/inches) or EFF =% decimal yards (GO=yds). An example of each would be GO=2/1 or GO=2.5. The operator can set the yardage length by specifying percent of utilization or the percent of fallout (waste). To set the yardage length in this manner, the operator would use EFF=% greater than 50% for percent of utilization or EFF=% less the 50% for percent of fallout (waste) allowed. The value can be an integer or decimal value. An examle of each would be EFF=86.5 for percent of utilization and EFF=15.5 for the percent of fallout (waste) allowed. The marker program displays a dashed line on the displayed marker which represents the yardage length the marker should be made in. If the EFF=% less than 50% for percent of fallout is used (Example: EFF=15.5), the yardage length line will be set at 84.5% percent utilization. DIMENSION, This modifier (optional) instructs the MARK program to output to the standard output device the area and perimeter of all pattern pieces in the marker definition. This information will be generated on all markers if the DIMENSION bit has been set by CAMSCO. SHADE-value, This modifier (optional) defines the number of horizontal shaded areas. The MARK program will take into consideration where pattern pieces of the same group are positioned in the marker layout area. This modifier is an integer value not greater than 4. For further information see Marking Procedures. STRIPE=spacing/offset, This modifier (optional) defines the distance in inches between stripes and the start point from the top edge of the marker. If the value in stripe equals 99, there will be no stripes drawn in the marker. The piece matching group number for ST-99 is given in the style definition's stripe parameter will apply instead. If a stripe parameter is not in the style definition the marker will not have any stripes and the "Stripe Lock" button used in making markers will be useless. PLAID=value, This modifier (optional) defines the distance in inches between plaid lines. The parameter value is either an integer or decimal value. X=value, This modifier (optional) specifies a percentage of increase or decrease applied to the regular grade for all pieces in the marker. The modifier is an integer or decimal value. Example: X=-7.5 for .75% decrease. Y=value, This modifier (optional) specifies a percentage of increase or decrease applied to the regular grade for all pieces in the marker. The modifier is an integer or decimal value. FLIP, This modifier (optional) instructs the MARK program that a constraint has been applied to the marking process for the style. All pieces in the style/size group are flipped when the FLIP constraint is applied on the marker request. If the flip override is selected then all pieces in the style which have a flip parameter are flipped as a group. NAP; This modifier (optional) instructs the MARK program that a constraint has been applied to the marking process for the style. All pieces in the style/size group are rotated when the NAP constraint is applied on the marker request. If the nap override is selected then all pieces in the style which have a nap parameter are rotated as a group. Style Name, The particular style definition to use in the marker description -- the style definition contains the description of the pieces to include. size1, size2, . . . sizen The size list specifies the desired sizes from the style to be included in the marker layout. The size parameters must match the available sizes of the style in the rule table. A size is initially rotated if the character "R" preceeds the size parameter (R2830, R10).

Any other styles and their sizes should be entered in the following format (see above modifiers for explanation):

;style name, size1, size2, . . . sizen

All styles and their sizes are separated by semicolons (;).

In addition to the above-described $MARK:, the system includes an Old $MARK: card which defines the parameters and pattern pieces required to create a new marker from an old marker. This old $MARK: statement is loaded into the job queue and initiated on the display 18 when requested by the marker operator. The marker request specifies an old marker that is to be displayed. This old $MARK: card is generally similar to the above-described $MARK: card.

FIG. 24 illustrates a coding sheet for the preparation of a $DRAW: MONITOR card. The $DRAW: card schedules the plotting of a previously generated marker by specifying a marker identifier, the scale, the alpha bundle designator, the gap between markers and a list of optional messages to be printed on the marker. FIG. 24 illustrates three examples of a $DRAW: card.

Example A shown in FIG. 24 is a draw card to plot the marker EXAMPMARK at full scale, with at least a four inch gap between this marker and the last thing plotted. Example B is a draw card to plot the marker MK1 at half scale with message number eleven plotted on the marker header. Example C is a draw card to plot marker MK1 at full scale.

Modifiers for the $DRAW: card are as follows:

$DRAW: Requests the plotting of a marker. Marker Name, This modifier specifies the marker identifier for the marker to be plotted. ALPHA=value (Optional) The alpha character is used to assign bundle numbers to sizes in a marker section. The alpha character will be added to the size plotted on each piece and advanced to the next alphabetic character on each occurrence of a new size in the marker section. For example, with AL=C for a 2 size dress marker with sizes 10 and 16, size 10 pieces would be labeled 10-C and size 16 pieces would be labeled 16-D. If the alpha value is set to a numeric value, e.g., AL=25, the bundle numbers start with the value specified (3031-25, 3030-26, etc.). The bundle numbers are assigned to sizes in the order specified by the $MARK: card when the marker was originally created. GAP=value, (Optional) This modifier specifies the distance the operator would like to allow between the marker specified in the $DRAW: and the last plotted data. SCALE=value (Optional) This modifier specifies the scale at which the marker is to be plotted. Typically the scale will always be 1.0 for one to one scaling but a decimal scale can be specified, (.5, etc.). ;msg1, msg2, . . . msgn (Optional) This message parameter is an integer from 11 to 60 and specifies that the message number given will be plotted on the marker header. The message was the $MESSAGE: statement.

FIG. 25 illustrates a coding sheet for the preparation of a $PLOT: card. The $PLOT: statement makes a request for a nested plot, or a cut or a piece that has been permanently stored on a piece file. The modifiers cut or nest specify which type of "plot" to perform. The nest modifier will create a stacked nested plot on the plotter 26. The cut modifier will create commands to generate each graded pattern piece on the cutter.

FIG. 25 illustrates four different plot configurations. Examples A and B are plot cards for piece number 0000000011 to be plotted full-scale and half-scale respectively, showing all sizes used in grade rule table CAMSCO1. Example C is to plot only sizes 10 and 12 of piece 0000000011 at full-scale. Example D is to plot a nested plot at full-scale. When the nest-cut parameter and the scale parameter are omitted, they will default to nest and full-scale respectively.

The modifiers for a $PLOT: card are as follows:

$PLOT: Specifies the type of MONITOR job request. Piece , The modifier specifies the piece identifier of the requested piece. The piece must be on the piece file. CUT The cut or nest modifier specifies the type NEST of output required. This is an optional parameter. If this parameter is omitted, it will be defaulted to nest. RULE TABLE, This modifier specifies the name of the rule table for grading the piece. SCALE = value; This modifier specifies the size of plot or cut desired. This is an optional parameter. If this parameter is omitted, it will be defaulted to 1.0 scale. size1, size2, . . . sizen This modifier specifies the sizes desired for cutting or nesting. The sizes must correspond to the sizes of the reference rule table. If no sizes are specified in the statement, then all sizes are plotted. If the sample size is the only size specified, the grade rule number for each grade point will be printed on the pattern.

Selection of Optional Features of the System

Prior to initial marker construction with the present system, the user must select the options desired to be used with the system. The POPTS program makes it possible for the user to select the optional features needed to enhance the system. This program presents the questions for the optional features of the system to the user for selection. Most of the questions of this program require a YES or NO response to be typed in on the terminal 16. Other questions will require a numeric value response. If the user fails to reply with the correct response, this program will inform the user with an ERROR MESSAGE, then repeat the question for the correct response.

The following contains all the optional features, in the way they appear on the terminal 16. The following also lists the ERROR MESSAGES and a directory to each question with an explanation of the question. At the end of the program, the user can get a report of all the OPTIONS selected by answering the question: "DO YOU WANT OPTION Report?" with a YES response. To use the program, simply type in the following: :RU,POPTS.

The first option to be chosen is whether or not alpha characters are desired. When making a marker, the pieces required for the marker appear on the display screen 18. The system checks to see if the user has specified that the pieces to be displayed have alphabetic characters to identify them by size groupings. Under the POPTS program, when the question: "ALPHA CHARACTERS" appears on the terminal 16, the following happens:

If the user responds with YES on the terminal 16, the displayed pieces will have alpha characters identifiers thereon.

If the user responds with NO, the displayed pieces will have no identifing characters.

If the user fails to answer the question with a YES or NO answer, an ERROR MESSAGE will appear, followed with a repeat of the question until the question is answered properly.

Another option comprises whether or not piece tilt is allowed. When making a marker, the efficiency of the marker is determined by PIECE MANIPULATION. After the user has picked the piece, the user can use the function box 20 to TILT the piece clockwise or counter-clockwise in steps of 0.5°, if the ALLOW TILT option is selected. When the question PIECE TILT ALLOWED appears in the terminal 16, the following happens:

If the user responds with YES on terminal 16, the picked piece can be tilted within the tilt constraint specified in the style definition by depressing the TILT CW or TILT CCW buttons on the function box 20. FIG. 26 illustrates tilting of a typical pattern piece in increments of 0.5°.

If the user responds with NO the system will not allow pieces to be tilted by the marker maker.

Another option to be chosen is whether or not piece flip is allowed. When making a marker, the pieces required for the marker appear on the display screen 18. Once the user has picked the piece, the user can FLIP it by depressing the FLIP button on the function box 20. Each time the FLIP button is depressed, the piece flips top to bottom, if you have this optional feature selected. When the question PIECE FLIP ALLOWED appears in the POPTS program, the following occurs:

If the user responds with YES on terminal 16, the picked piece will be flipped top to bottom, as shown in FIG. 27, by depressing the function box FLIP button.

If the user responds with NO, the system will not allow a piece to be flipped by the marker maker.

Another option is whether or not piece rotation is allowed. When making a marker, the pieces necessary to make the marker appear on the display screen 18. To manipulate the piece, the user must use the function box 20 to pick and gain control of the piece. Once the user has picked the piece, the user can rotate it clockwise or counter-clockwise in steps of 45° each rotation, if the ROTATE option is selected. When the question PIECE ROTATION ALLOWED appears on terminal 18, see the following:

If the user responds with YES, the picked piece will be rotated in 45 degree increments each time the function box ROTATE CW or ROTATE CCW buttons are depressed. FIG. 28 illustrates a clockwise rotation of a piece in a 45° increment.

If the user responds with NO, the system will not subsequently allow the pieces to be rotated by the marker maker.

Other options which may be initially chosen during the POPTS Program prior to marking operations is the option PRINT MESSAGE WHEN FLIP OR PACK RUN. This option allows the system user to specify that a record of the use of the FLIP or PACK buttons on the function box 20 be printed out. This record can be utilized for quality control purposes, as it will indicate that pieces were flipped or the PACK function was used in a given marker. This option, and other subsequent options to be described, are chosen in the manner previously described by typing in YES or NO on the terminal 16.

Another option is PLOT SPLICE MARKS. When making a marker on the system, a splice mark is utilized to indicate an area on the marker where the splicing of the end and beginning of bolts of material can stop. When the option is chosen, when saving a created marker permanently, the message PLACE SPLICE MARKS will appear on the display screen 18. At that time, the stylus 24 may be moved by the user to indicate where the splice marks are to be placed on the display marker.

Another option is the NO OVERLAP MESSAGE IN PACK AND CHECK, which allows the user to specify that the NO OVERLAP message will appear on a display screen 18 when each piece in the marker is checked for overlaps during the PACK and CHECK functions. When the option is chosen, the program will check all pieces during PACK and CHECK and will display the NO OVERLAP message for each piece if there is no overlap, or will display the OPERATOR MUST CORRECT message on the screen 18 if a piece with overlap is found. The option ARE SIZES TO BE DISPLAYED ON LARGE PIECES enables the user to specify that alpha/numeric sizes are to be displayed on large pieces and that alphabetical characters are to be displayed on all pieces in the marker. When this option is chosen, the size for each piece remains within the outline of the piece even when the piece is being moved into the marker area.

The option REPORT LENGTH IN YARDS AND INCHES enables the user to depress the SPECIAL button on the function box 20 after completion of a marker in order to check the length of the completed marker. In operation, the SPECIAL button on the function box 20 is depressed, and the stylus 24 is operated to place the cursor asterisk 360 on the word LENGTH on the screen 18. The user then receives a report of the complete length of the marker in either yards or inches, as requested.

The PRINT LENGTH AND EFFICIENCY WHEN MARKER SAVES option allows the operator to have the efficiency (percent of material utilized to the hundreth of a percent) of a marker and the length (in decimal yards or yards and inches as requested) of a marker printed after the marker is completed.

The ROUND LENGTH TO NEXT LARGEST ONE/HALF INCH option allows the user to request that the marker be rounded off to the next largest one/half inch.

The PLOT ALPHA CHARACTERS option checks to find out if the alpha characters (or bundle numbers) are to be plotted on each piece for identification after a marker is completed and saved.

The option DRAW STYLE NUMBERS ON PIECES determines if the style numbers for each piece on the marker are to be plotted on the pieces when the completed marker is drawn.

The PLOT HEAD ON NOTCHES option determines how the notches on the pieces are to be drawn when a completed marker is drawn. This option enables a head to be drawn on a notch to assist the cutters to make the correct length cut.

The option TICK MARKS TO OUTSIDE determines if the tick mark representing vertical or horizontal stripe lines are to be pointed to the outside of the marker outline or to the inside.

The option DRAW BOX AND CROSS FOR PUNCH HOLES allows a box and a cross to be drawn at the location of a hole.

The option PRINT SIZE ON PIECE checks to see if the sizes are to be placed on each plotted piece when a completed marker is to be plotted.

A large number of other options are available with the present system which enables the user to specify the size of letters desired, which kind of plotter or cutter is to be utilized, enables the grading of pieces in metric dimensions rather than inches, automatically gives a programmers dump if the program develops errors, enables the storing of pieces into other platter disk storage, allows locked markers to achieve better material utilization when cutting and the like.

Marking Procedure

After the necessary pattern pieces have been digitized, the correct MONITOR card input into the system, the POPTS option decisions have been made, the pieces checked and saved, styles can be built by using the $STYLE: card. After the styles have been built, markers can be laid in via the interactive display system shown in FIGS. 1 and 29-31. The interactive display system includes the display screen 18, data tablet 22, stylus (pen) 24 and the 16 key function box 20. The display screen 18 is used to display pattern pieces to be manipulated when making markers. The data tablet 22 measures the position of the stylus (pen) 24 manipulated by the user and transmits the appropriate location information to the central controller 12. The controller processes the location information and manipulates the piece on the display accordingly. The 16 key function box 20 is also used in conjunction with the marking procedures to specify functions the operator wishes to perform at various times in marking.

As shown in FIG. 29, a rectangular marker area 400 will be displayed on the display screen 18 with the pieces 402 of the marker positioned outside of the marker which is outlined on the display. Both the marker area 400 and the pieces 402 are miniature scaled representations of the desired full scale marker. The pieces 402 are automatically arranged on screen 18 in order according to their size. Above the marker area 400 and its pieces 402 are two lines of information 404 concerning the marker and below the marker is one line of information. Below is an example of the information:

MARK I.D. STYLES WIDTH= LENGTH= EFFICIENCY Size (s) 3030 = A 30 = B Size Picked

The first line has the marker identification, the style or styles identification and width of the marker. The length and efficiency values of the marker are placed on the first line when they are asked for. The second line contains the sizes of the pieces in the marker and the letter corresponding to that size. A third line will show the size of each piece when a piece is picked. This line is located under the left end of the marker.

To determine where the stylus 24 is in relation to a particular piece on the screen 18, the operator should note the small cursor (asterisk) 360 on the display screen 18. This cursor 360 follows the stylus 24 whenever the stylus is close to the data tablet 22 (which is termed a proximity activity) and when the stylus 24 is pressed against the data tablet 22 with a small amount of pressure (this is termed as pressure activity). The proximity activity is used to move a piece 402 or move the cursor 24 to a piece. The pressure activity is used to select a piece 402 for manipulation (also called picking a piece) and to answer YES or NO questions asked by the Monitor.

In the marking mode, template 108 (FIG. 7) is placed over buttons 90. To pick a piece 402 for manipulation, the operator must press the pick button on function box 20 and activate the pen 24 on the data tablet 22 at the spot that corresponds with the center of the selected piece. When a piece is picked, the piece will jump on the screen 18 so that the cursor 360 is at the lower right hand corner of the piece. To release a piece from the cursor 360, the operator can use one of two methods:

1. he may press the pick button, and the piece will be released from the cursor; or

2. the piece will be released from the cursor after some of the 16 functions have been used to manipulate the piece (bump left, bump right, bump down, bump up, overlap and pick).

Once the operator has control of a piece 402, he may manipulate the piece in several ways with the function box buttons 90. He may:

1. check and correct the piece for overlap with another piece;

2. bump a piece up, down, right or left;

3. tilt a piece clockwise or counter-clockwise in steps of 0.5°;

4. move the piece out of the marker;

5. flip a piece;

6. rotate a piece clockwise and counter-clockwise in steps of 45°;

7. pick (check) a piece; or

8. lock a piece on vertical and/or horizontal stripes.

With the button 90 marked Special, the operator will be able to:

1. determine the efficiency or the length of a marker;

2. respread pieces inside a marker to their original positions outside the marker or to the positions held when saved as a temporary marker;

3. turn on or off any stripe lines that are in a marker;

4. roll a marker right or left and enlarge or decrease the size of a marker and the pieces in and around it;

5. abort a marker;

6. save a finished marker permanently or temporarily;

7. place splice marks on a marker after saving it permanently;

8. plot a finished marker full-scale;

9. pack the pieces in the marker; and

10. check the pieces on the marker for overlap.

The user then moves the stylus 24 to pick one of the pieces 402 and moves the piece downwardly into the marker area 400. The operator then positions the piece in the desired location within the marker area 400 by using the function box 20, releases the piece and picks up another of the pieces 402 and moves it downwardly into the marker area 400 and positions it.

FIG. 30 illustrates a partially completed marker on screen 18 and illustrates how the various pieces 402 may be rotated in order to interfit between one another. As noted, once each of the pieces 402 is initially placed in the marker area by a stylus 24, the buttons of the function box 20 are operated by the user to provide final adjustment of the desired position of the pieces. As shown in FIG. 30, a dotted GOAL LINE 410 is displayed on the display screen 18 to define the desired area on the marker area 400 for receiving the pieces 402. If the operator is able to place all of the pieces 402 within the area defined by the GOAL LINE 410, the operator is assured of having formed a successful marker.

FIG. 31 illustrates the display screen 18 with a finalized marker 400 formed thereon. When a suitable marker is finalized on the display screen 18, the operator can then have a full size replica of the miniature marker display plotted out on the plotter 26.

An important aspect of the present invention is the large number of functions available for operation of the function box 20. With the use of the functions, the operator may quickly and easily arrange pattern pieces within the marker area to form the most efficient marker. Detailed description of the various functions available by operation of the buttons of the function box 20 are as follows:

1. PICK

This function box button (shown on template 108 in FIG. 7) enables the operator to "pick up" a pattern piece so that he can move it along with the "cursor" or perform any other function that involves a picked piece. To pick a piece the operator presses this button, moves the cursor close to the center of the desired pattern piece, and then applies "pressure" to the data tablet pen. At this time the piece will jump so that the cursor is at the lower right corner of the piece. Now when the operator moves the cursor, the picked piece moves along with it. A picked piece can be released from the cursor or pen by pressing the Pick button.

2. OVERLAP

This button adjusts the position of the picked piece so that it does not overlap any surrounding pieces. If an overlap cannot be corrected, then the overlap light 344 (FIG. 12) at the bottom of the screen 18 will light up. This light 344 will remain on until the piece is repicked.

3. BUMP DOWN

This button is used to adjust the position of a picked piece by moving it down until it hits another piece or the marker edge. If the operator has a piece that has been locked on a horizontal stripe line and he attempts to bump it down from the stripe line, he must answer the question (OVERRIDE STRIPE? YES NO) that will be shown on the display screen 18. The operator must point to his answer with the cursor 360 and apply pressure. If he replies YES, the piece is moved, otherwise no action is taken.

4. BUMP LEFT

This button adjusts the position of the picked piece by moving it left until it hits another piece. The picked piece must be close to the other pieces (that is within about 1/2 inch on the display screen). If another piece is not in the way, the picked piece will be moved to the marker edge. If an operator attempts to bump a piece locked on a vertical stripe to the left, the same OVERRIDE STRIPE? YES NO question will apply.

5. TILT CCW

This button rotates the picked piece in a counterclockwise direction in steps of 0.5 degrees. The amount of tilt can be restricted by the tilt parameter in the $STYLE: statement. (Refer to the MONITOR control commands) When a piece has reached its maximum tilt, the tilt maximum light 348 will come on. A piece may be rotated in 180° increments if it has a tilt restriction on it.

6. TILT CW

This button rotates the picked piece in a clockwise direction in steps of 0.5°. The restriction in Tilt CCW applied to TILT CW.

7. release

after a picked piece has been moved into the marker, it is restricted from being moved off of the marker again. To override this restriction, hold down this button while moving the picked piece off the marker.

8. SPECIAL ON/OFF

This button turns special functions on and off in the display screen. While the special functions are on (displayed on the screen), the Input Required Light 340 will be turned on. When these special functions are turned on, they will appear on a line across the screen 18 above the marker. The operator must activate one of them or turn them off before he can perform any of the aforementioned actions. To turn the special functions off, repress the special button. To activate one of the special functions, the operator moves the cursor 360 to the function word and applied pressure. A piece cannot be picked or manipulated while the special functions are on. The special functions are:

A. efficiency -- this special function computes the efficiency and length of the marker currently on the display screen 18. Efficiency is computed according to the area of the pieces in the marker.

B. length -- this special function draws a line on the marker that represents the current length of the marker. If the user has requested the option for locked markers, the question LOCKED MARKER? is asked of the operator. The length and efficiency is then computed according to his reply to the question.

C respread -- this special function allows the operator to start over with the pieces spread as they were when he last saved a marker temporarily. Two questions are asked of the operator: RESPREAD? TO VERIFY HIS REQUEST TO START OVER, THE ORIGINAL? to determine how he wishes to start (from the first or from a temporary marker).

D. material -- this special function draws/removes the stripe and/or plaid description on the marker.

E. pack -- this special function moves all the pieces in the marker down and left so as to assure a close marker except for those pieces on the selvage of the marker. Those pieces will move up and left. Pack will correct overlaps if possible. If it cannot correct overlaps, the message OPERATOR MUST CORRECT will appear on the screen and no action is made by the computer. The overlap light 344 will light up and the piece in overlap will be the picked piece. A message of PACK COMPLETE appears on screen 18 when this function is finished.

F. check -- this special function checks every piece in the completed marker for overlap. The cursor asterisk appears in the center of each piece on the screen 18 while that piece is being checked. If an overlap is found, the message OPERATOR MUST CORRECT appears on screen 18, the overlap light 344 comes on, and the piece in question is automatically the picked piece. If no overlaps are found, the message CHECK COMPLETE appears on the screen.

G. save -- this special function allows the operator to save his marker temporarily or permanently.

The following YES or NO questions are asked of the operator:

Locked marker? -- this is asked only if the user has requested the option for locked markers.

Temporary? -- a positive reply to this question saves the marker in the temporary storage area. As operator would want to save a temporary marker if he wanted to try and make a better marker than the one he had just finished. After he saves the marker temporarily, he may respread the marker to its original form. If the second marker is better, he may save this one permanently or temporarily. If the second marker is save permanently, the first marker will be lost. If the second marker is saved temporarily, the first marker will be lost, but another marker can be made to better the second marker. For the situation of saving a less efficient marker than the one already saved temporarily; see the next question `Override Efficiency?.`

Override efficiency? -- if the operator is attempting to save a marker which is less efficient than the marker in temporary stores, this question is asked. A positive reply will save the marker despite its efficiency.

Finished? -- a positive reply to this question saves the marker permanently and returns to the monitor.

Piece out, save? -- if a piece is left out of the marker, this message is asked. If the operator answers no, the marker is not saved and the piece or pieces can be put in the marker.

Draw now? -- a positive reply to this after the operator gives a positive answer to FINISHED? will cause the plotting of the marker fullscale.

Place splice marks -- an explanation of splice will follow.

H. abort -- this special function allows the operator to return to the monitor without saving the marker.

I.  -- this special function rolls the marker to the left.

J. ➝ -- this special function rolls the marker to the right.

K. ↑ -- this special function increases the size of the pieces and marker.

L. ↓ -- this special function decreases the size of the pieces and marker.

9. FLIP

This function box button flips (turns the piece over) the picked piece. A group of pieces can have the $STYLE: flip parameter applied to them. By attempting to flip one of these pieces, the questions FLIP OVERRIDE? YES NO must be answered with a positive answer to flip the piece. If one piece is flipped, all of the pieces in the group will flip.

10. BUMP UP

This button functions the same as BUMP DOWN, except the picked piece is adjusted by moving it up until it hits another piece or the marker edge.

11. BUMP RIGHT

This button functions the same as BUMP LEFT except the picked piece is adjusted by moving it to the right until it hits another piece or the length line.

12. ROTATE CCW

This button rotates the picked piece in a counterclockwise direction in steps of 45°. If a nap constraint was applied to the marker, a question is asked of the operator before allowing rotation. The question OVERRIDE NAP? YES NO is shown on the display screen. If the user replies YES all the pieces in the size group and nap group of the picked piece are rotated 180°. If he replies NO, no action is taken.

13. ROTATE CW

This button functions the same as ROTATE CCW, except that the piece is rotated in a clockwise direction in steps of 45°. The restriction concerning the nap restraint in ROTATE CCW applies to ROTATE CW.

14. pick (check)

this function box button functions the same as the PICK button except that the desired piece does not jump to the cursor and the piece will not move along with the cursor. The piece is, however, a picked piece for functions such as BUMP LEFT and OVERLAP. The operator depresses PICK CHECK and activiates the pen on the proper piece. Now the piece can be manipulated by using the overlap and bump buttons but the piece cannot be moved by the pen. After using PICK CHECK the PICK button will have to be pressed to pick the next piece.

15. VERTICAL STRIPE LOCK

This button adjusts the position of the picked piece on a vertical stripe line so that the stripe line of the picked piece aligns with the closest stripe line on the marker. After pushing this button, the picked piece cannot be moved up or down. To override this restriction, push the RELEASE button. A piece can be moved off a stripe with a positive answer to the question OVERRIDE STRIPE? YES NO whenever he tries to move the piece off a stripe line with the function box buttons.

16. HORIZONTAL STRIPE LOCK

This button has the same function as a vertical stripe lock except the stripes to be locked on must be horizontal.

17. STOP

This button is used in the checking procedures as previously described.

During the marking procedure, several situations may arise which are related to the particular fabric being utilized. The present system is thus capable of handling splice marks, stripe locking procedures and shade parameters.

A splice mark is used to indicate an area in a marker where the splicing of the end of a bolt of material and the beginning of a bolt of material can take place.

When a marker is saved permanently and the user requests the splice mark option, the message PLACE SPLICE MARKS will appear on the screen 18, and the marker will be zoomed such that all pieces are displayed. The operator moves the cursor 360 to the area where he wishes a splice mark to be made and applied pressure to the data tablet pen. The width of the splice mark will be computed on the following basis:

1. a buffer area of 6 inches either side of the point chosen by the operator is used in the computation;

2. only pieces crossing into this buffer area will be checked;

3. the right-most edge of all the pieces whose right edge falls in the buffer is used as the right edge of the splice mark. The edge may then be moved to the right a fixed distance farther if the user requests; and

4. a similar process is performed for the left edge of the splice mark.

The operator may indicate up to fifteen splice marks. When he has indicated all the splice marks needed, he presses the RELEASE function box button, and the marker is saved permanently.

Any piece in a stripe or plaid marker that has the proper stripe line digitized in it can be locked on a marker stripe line. If a marker has horizontal stripe lines, then the pieces that are to be locked on those lines have to have a horizontal stripe line digitized in them. Pieces with vertical stripe lines can only be locked on vertical stripe lines in a marker. If a piece has both vertical and horizontal stripe lines in it, the piece can be locked on both horizontal and vertical stripe lines on the marker. Unless a piece has a special piece matching stripe parameter (given to it by the $STYLE: statement) and the stripe parameter in the $STYLE: statement is equal to 99, the following information will apply to that piece:

1. a piece will lock on to the nearest horizontal or vertical stripe line according to what orientation the stripe line was digitized in the piece and which stripe lock button was pressed;

2. a piece will lock on the closest horizontal and vertical stripe line, if that piece has a horizontal and a vertical stripe line, and both stripe lock buttons are pressed;

3. a piece can only be bumped off a stripe line with a positive answer to the OVERRIDE STRIPE question or the piece may be repicked;

4. a piece locked on a stripe line can be flipped, tilted, and rotated if desired. The piece stripe line will have to be locked on the marker stripe line; and

5. a piece locked on a horizontal stripe line can be moved or bumped left or right freely. This, also, applies to the up and down movement of a piece locked on a vertical stripe line. If a piece is locked on a vertical and horizontal stripe line, the piece cannot be moved in any direction unless it is repicked or the stripe lock is overridden with a positive answer to the OVERRIDE STRIPE? question.

If pieces in a marker have special piece matching parameters applied to them and the stripe parameter in the marker is equal to a 99, then the following will apply to the stripe locking procedures for these pieces:

1. there will be no stripe lines drawn into the marker;

2. in the case that the piece is in stripe group 1, the use of the STRIPE LOCK button will cause the piece to align on the center 2 through 7, the first piece of that group which is placed in the marker will define the stripe line or lines for that group. In order to define this stripe line the piece must be positioned and the STRIPE LOCK button depressed. After this stripe line is defined, all other pieces in that group will be locked onto that stripe line when they are placed in the marker and the STRIPE LOCK button hit. Those pieces in the style which were not assigned to a stripe group will not lock on any stripe lines even if the STRIPE LOCK button is hit. Care should be taken by the user that he place the first piece for groups 2 through 7 exactly where he wants that stripe line to remain for the marker. After fixing a stripe line for a group, the only way to change that stripe line would be to respread the marker and start from the beginning; and

3. once a stripe line or lines have been established, the pieces remaining in the group or groups will automatically jump to the proper or closest stripe line.

Shade areas are used in markers to represent different colors or designs that run the length of the material in a uniform manner. The shade parameter in the $MARK: command specifies the number of shade areas a marker is to be divided into lengthwise, as indicated in FIG. 32, which shows a marker having three shade areas C, D and E.

Parameters of the marker shown in FIG. 32 are as follows:

A = marker width of 59.0 inches

B = goal of 4 yards 24 inches

C = first shade area

D = second shade area

E = third shade area

In the example shown in FIG. 32, the vertical dashed line B is the goal line set in the marker card at 4 yards 24 inches. The horizontal dashed lines and the lines that divide the marker into the three shade areas specified by the marker card. The shade parameter in the style definition is used to indicate which pieces in each size are to be subject to the shade restriction.

As indicated above, only the pieces in each size that are given the shade restriction will be subject to that restriction. The first piece of each shade restricted size group placed in a shade area will determine where all the other pieces of that size group should be placed. Note the two lines of information located below the marking area. The "SIZE PICKED =" line is where the size of each piece will be shown as it is picked. The "SHADE AREA =" line will appear below the SIZE PICKED = when the marker has shade areas in it. After the first piece of each size grup group has the shade restriction applied to it) has been placed, the SHADE AREA = line will indicate which shade area all other pieces of that size group should be placed. In the above example shade area A is 1, shade area B is 2 and shade area C is 3. If a piece is not placed in its proper shade area the shade violation light 346 (FIG. 12) will come on.

FIG. 33 illustrates the operation of the plotter 26 in accordance with commands from the central controller 12. Under control of the controller 12, the stylus 54 is moved laterally along the bar 52 and the bar 52 is moved along the length of the roll of paper 56 in order to draw a full size marker identical to the finished marker displayed on screen 18. When finished, the paper is disengaged from the plotter 26 and is spread out over a plurality of stacks of fabric and cut in a conventional manner.

It will be understood that the marker prepared by the present system will generally comprise marker sections which are placed end to end to form a total marker. As an example, a cutting table used in apparel factories may extend from 70 to 120 feet in length, and fabric may be folded along the table with differing thicknesses. For example, the first portion of fabric on the cutting table may comprise sixty layers of fabric, while subsequent sections of the fabric may comprise one hundred twenty or more layers of fabric. The pattern section produced by the plotter 26 is spread out over the varying desired sections and the fabric is then cut to provide the desired number of pieces of the desired styles.

Storage File Organization

FIG. 34 illustrates the file storage organization for the present system. The more important portions of the file organization will now be described in detail.

Referring to FIG. 34, the MARKD, Marker Directory is located in a removable storage platter. MARKD is the DOS-M directory file name assigned to the marker directory. The marker directory is a directory used by the system to reference the marker definitions stored in DOS-M file MARKR. The format of MARKD is shown in FIG. 35. The last two words of each sector are zeroes except for the first sector in the directory. The last word in the first sector will be the starting sector of the last marker definition stored in MARKR. An unused entry will contain zero in the 7th word. Bit 15 of word 7 is set when that entry is to be purged. Laser flags are used when converting the system files to a system using a laser cutter.

The MARKR -- Marker Definitions -- file shown in FIG. 34 is the DOS-M file which contains all the marker definitions for the markers referenced by MARKD. Each marker definition will begin on a sector boundary and will be formatted as shown in FIGS. 36 and 37. Definitions of the legends appearing in FIGS. 36 and 37 are as follows:

# of pieces -- number of pieces in the marker (0-1023)

# of sectors -- number of sectors used by this marker definition (0-63)

# of styles -- number of styles in marker (0-31)

# of splices -- number of splice marks placed in marker (0-15)

Marker man ID -- identification number of the person who made the marker (0-63);

New/Old -- 0 -- marker has not been sent to Lasermatic-- 1 -- marker has been sent to Lasermatic;

# of shade areas -- number of divisions made in marker width for shading, less 1 (0-3);

Data Multiplier -- floating point scale factor used to convert "marker units" to inches. See note *1 on previous page;

Width -- width of marker in inches (format assumed as XX.XX);

Length -- length of marker in marker units;

Goal Length -- goal set for the marker (in marker units);

Marker Efficiency -- efficiency obtained in the marker (format assumed as XX.XX);

Stripe Offset -- position of first stripe relative to the top of the marker (format assumed as XX.XX);

Stripe Spacing -- distance between stripes (format assumed as XX.XX);

Plaid Spacing -- distance between plaid (format assumed as XX.XX);

Marker X% increase -- % of increase to apply to entire marker in X direction;

Marker Y% increase -- % of increase to apply to entire marker in Y direction;

Internal Style # -- style used in the marker. Points to the entry in the style directory (STYLD);

# of sizes -- number of sizes of this style;

Size -- size indicator for each size needed. This must be used in conjunction with the rule table used by the style;

X values of splice mark -- placement made for a splice mark in marker units;

Internal Piece # -- pointer to the piece in the piece directory (PIECD);

Master Image # -- when the piece is a slave due to the half piece flag being set, this is the relative piece number for the master piece;

Stripe Group -- special stripe matching by assigning a group number 1-7. 0 indicates regular stripe locking.;

Flip group -- 0 -- piece not flipped with group, -- 1 -- piece flipped with group;

Nap group -- 0 -- piece not rotated 180° with group, -- 1 -- piece rotated 180° with group;

Opp. flag -- 0 -- piece is not an opposite, -- 1 -- piece is an opposite by style definition;

Max. Tilt -- rotation limit (0-31);

Rule Table # -- rule table used by style;

Half Piece Flag -- 0 -- piece is a master, -- 1 -- piece is a slave;

Shade Constraint -- 0 -- piece is not effected by shading, -- 1 -- piece is checked for shade constraints;

Block flag -- 0 -- piece is not blocked, -- 1 -- piece is blocked;

X% increase -- % of increase to apply to piece in X direction;

Y% increase -- % of increase to apply to piece in Y direction;

Style/Size Group -- pointer set up from order of style and sizes stored in header;

Size of Piece -- size indicator of size of this piece;

Ix - x-coordinate placement of piece in marker units;

Iy - y-coordinate placement of piece in marker units; and

Iang -- angle of roatation of the piece. If the magnitude of the angle is more than 360 the piece is to be flipped after the rotation. Format of angle is assumed as XXX.X.

the PIECD, Piece Directory is located on a removable disk platter and is the DOS-M directory file name assigned to the piece directory. The piece directory is used by the system to reference the piece definitions stored on this disk platter in file, PIECE. This directory contains an entry for each piece definition in the format shown in FIG. 38.

The last two words of each sector of FIG. 38 are zeros except for the first sector in the directory. The last word in the first sector will be the starting sector of the last piece definition stored in PIECE. An unused entry will contain zero in the 7th word. Bit 15 of word 7 is set when that entry is to be purged. Laser flags are used when converting the present files to a format for a laser cutting system. The PIECE, Piece Definitions, are shown in FIG. 39 and is the DOS-M file which contains all the piece definitions for the pieces referenced in PIECD. The definition of the piece is the digitized data after curve-citting. Each piece definition will start on a sector boundary and will be formatted as shown in FIG. 39.

Definitions of the legends in FIG. 39 are as follows:

Date -- of the year;

Mirror Flag = 0 means piece not mirrored about x-axis of the piece, = 1 means piece is mirrored about the x-axis of the piece;

Grain Flag = 0 means piece has no grain line and may be rotated 45°, 90° and/or 180°, = 1 means piece has a grain line and may only be rotated 180°;

# of Sectors -- number of sectors used to store this piece description (0-15);

Rule Table -- rule table number (0-128). This is the rule table number stored in RULED pointing to the table stored in RULES;

Sample Size # -- number reference of the dample size as stored in the rule table used (0-255);

New or Old Flag -- 0 -- piece has not been sent to the Lasermatic system, -- 1 -- piece has been sent to the Lasermatic system;

Point Type -- type of point (0-15)

0 = Grade Point

1 = Intermediate Point

2 = Punch hole Point

3 = Stripe line Point

4 = Notch Point

5 = Grain line Point

6 = Alternate start Point

7 = Internal Point

8 = Transfer function Point

9 = Lettering Point

10 = End of data code

11 = Fixed intermediate Point

Rule # -- number of the rule to be applied to the grade point, punch hole point, stripe line point, alternate start point, transfer function point, or lettering point;

Ix -- x-coordinate of point stored in absolute mode in mils, biased about the center of the piece;

Iy -- y-coordinate of point stored in absolute mode in mils, biased about the center of the piece; and

Plotf -- plotter data file -- is plotter data generated by programs PLOTP and DRAW. The data is stored in file PLOTF on the fixed disk platter and is organized as shown in FIG. 40.

the values φRIGX and φRIGY shown in FIG. 40 are the coordinates for the bottom (or top for the cutter) left corner of a bounding rectangle for nested or cut pieces. When the cutter is moving down the top left corner is used.

The values AXφLD and AYφLD are the absolute table coordinates for the center of the bounding rectangle for the previous piece. The value XPBND represents the X limit for the current column of pieces. When a new column of pieces is started on the cutter, the value ORIGX is set to XPBND in order to clear the previous column. The volue LDIRC represents the column direction for the cutter with 1 = up and -1 = down.

Programs PLφTP and DRAW are responsible for maintaining the status values for the plotter and program PLφTP is responsible for maintaining the cutter status. At the first of a production run the production monitor initializes the status data.

The values NSECP and NSECG are the "put" and "get" sector numbers for the circular plotter data file. These pointers are also core resident and are stored in locations 368 and 378 respectively.

Each data sector has a two word header which is organized as shown in FIG. 41. Referring to FIG. 41, ITYPE = Data Type for this Sector 0 = Continuation Sector 1 = Nested Plot 2 = Marker 3 = Cut Pieces 4 = Single Plot JOB = Job Flag 0 = Old Job 1 = New Job = New Column or New Marker for the Plotter or new Tableful for Cutter. NSEC = Sector in the PLOTF file in which data for the current job begins.

Each data entry shown in FIG. 40 is a three word entry consisting of a status word and a X and Y data word. The entries are organized as shown in FIG. 42. Referring to FIG. 42:

POS = Tool position with 0 = up and 1 = down TOOL = Tool number with 1 = Pen and 3 = Cutter HOME = Home Cutter Flag (Cutter Only) with 1 = Home XYN = Xynetics only Flag PA = Paper Advance Flag. When set, the X Value represents the paper advance in steps with approximately 71.05 steps required to advance 1 inch. IANG = Blade angle increment (Cutter Only) ΔX&ΔY = Incremental X and Y values in mils.

When the status word = -1, the data for the piece is completed and the ΔX and ΔY values correspond to the first and last sector for the piece respectively.

Referring again to FIG. 34, the DXXXX, digitizer files (Dual Channel) are approximately 200 files of 5 sectors each. The DOS-M directory names will be DXXXX where XXXX is a number from 0 to 199. The files are written by the digitizer driver and must be stored contiguously on the disk. The files will be set up in the format shown in FIG. 43.

The DXXXX, Digitizer Files -- Single Channel -- comprises approximately 200 files of 5 sectors each. The DOS-M directory names will be DXXXX where XXXX is a number from 0 to 199. The files are written by the digitizer driver and must be stored continuously on the disk. The files will be set up in the format shown in FIG. 44.

FIG. 45 illustrates the format of the status words for the function box 20 and FIG. 46 illustrates the format of the status words for the cursor. Definitions of the legends of FIGS. 45 and 46 are as follows:

ASCII code -- 0 -- digit 0 1 -- digit 1 2 -- digit 2 3 -- digit 3 4 -- digit 4 5 -- digit 5 6 -- digit 6 7 -- digit 7 8 -- digit 8 9 -- digit 9 < -- size indicator = -- mirror indicator > -- cancel ? -- rubout ; -- end of piece Button -- 1000 -- Grade point cursor button 0100 -- Interm. point cursor button 0010 -- Notch cursor button 0001 -- Switch cursor button OF -- set to 1 when a register overflow occurres CPU -- set to 1 when computer requested reading of registers was made Scale -- 00 -- scale of 1 01 -- scale of 4 10 -- scale of 2 Rotary Switch -- (0-9) value on rotary switch at time of reading 0 -- grain line 1 -- stripe line 2 -- reference line 3 -- punch hole 4 -- internal point 5 -- alternate start point 6 -- transfer function point 7 -- fixed intermediate point 8 -- not presently used 9 -- not presently used

The Job Queue JOBQ contains the job sequences to be performed by the production monitor. The job queue is stored on the fixed disk platter in file JOBQ. The job queue is 256 sectors long and is divided into two areas. The second is the queue entry which contains the data. The first area is two sectors long with the queue entries running from location 7 to location 255. The entire queue area is considered as a word sequential file from location 1 to 32766.0. Numeric values in the Queue data area fileds which are data values (except counters) are scaled to one hundredths. The Job Queue will accommodate approximately 120 job requests at any one time.

Referring again to FIG. 34, SECTR is a 128 word sector used for communication between the production monitor and executing programs. The sector is also used for status return from programs which have completed their operation.

The production monitor calls a program with the SECTR sector set to the following condition:

word 1 -- address of queue entry request

The called program (MARK, CHECK, PLOT, DRAW, STYLE, etc.) returns control to the production monitor with status parameters.

CHECK -- Temporary Storage -- shown in FIG. 34 is used by CHECK as the graded data for the piece being checked. At this time its format is like that of file GRADE. The file is also used by MARK V2.0 SPREAD storage for the original marker spread and for the temporarily stored marker. It is also used to save the Internal #, %, Grain Angle, Warp Allowances and Fill Allowance overhead words. The file is also used by PGRAB to pass piece numbers to WSTYL and is used by BRULE to completely build an error-free rule table before transferring it to the RULES file.

Referring to FIG. 34, OPTNS -- Options file -- is used by the system to provide option words for each major program in the syste. The option words are set depending on the requirements for each system. The one sector file is labeled OPTNS and is stored on the fixed platter. The option sector is generally set at system generation time and reflects the specific requirements and options for the system.

The following descriptions specify the option word location for representative programs and the bit assignments for each option:

Word 1 -- Option Word for Program MARK ______________________________________ Bit 0 -- Display alpha character on pieces displayed (1) 1 -- Allow "locked markers (1) 2 -- Allow Tilt for markers (1) 3 -- Allow Flip for markers (1) 4 -- Allow Rotate for markers (1) 5 -- Print when FLIP or PACK used (1) 6 -- Place splice marks (1) 7 -- Message "No Overlap" in PACK and CHECK (1) 8 -- Sizes to be Displayed on LARGE PIECES (1) 9 -- Report Length in Yards (Hundredths) (1) in Yards and Inches (0) 10 -- Interration Placement of Small Pieces 11 -- Print Length & Efficiency When Marker Saved (1) 12 -- Round Length to Next Largest 1/2 Inch (1) 13 -- 14 -- 15 -- Multi Scope Option Present Word 2 -- Option Word for Program DRAW ______________________________________ Bit 0 -- Plot alpha character following size on each piece in the marker (1) 1 -- Treat marker as a "locked" marker (1) 2 -- Draw style number when labeling pieces (1) 3 -- Xynetics Model 1100 scaling (1) 4 -- Draw head on notches (1) 5 -- Turn stripe and plaid "tick" marks to the outside (1) 6 -- Xynetics Model 2000 scissoring and paper slew (1) 7 -- Draw box around cross for punch hole (1) 8 -- Print size on each piece (1) 9 -- Draw marker gridded at 1/2 units scale (1) 10 -- Xynetics Carbon System (1) 11 -- Stop X Axis Movement Every 4 Feet (1) 12 -- Do Not Grid Piece (1) 13 -- Report Length in (Hundredths) of Yards (1) In Inches (0) 14,15 -- Size of Symbols on Pieces (0 - 1/4 inch) (1 - 1/2 inch) (2 - 3/4 inch) (3 - 1 inch ) Word 4 -- Option Word for Grading Program ______________________________________ Bit 0 -- Grade Increments are Meteric (1) 1 -- Trace Program Flow in PGRAB 2 -- Print Number of Pieces to be Graded (1) 3 -- 4 -- 5 -- 6 -- 7 -- 8 -- 9 -- 10 -- 11 -- 12 -- 13 -- 14,15 -- Number of Piece Platters in System (1-0) (2-1) (3-2) (4-3) Word 5 -- Deviation angle for defining a corner Word 6 -- Number of digitizer files Word 7 -- Word 8 -- Pointer to digitizer file used by CHECK. Set to 1 originally. Word 9 -- Default sample size - Example: "3" means use third Rule Table entry when the sample size is not input by the digitizer operator Word 10 -- Paper width (in Hundredths of inches) Word 11 -- Model 2000 paper advance factor. Word 15 -- 2nd Option Word in DRAWM ______________________________________ Bit 0 -- Do detailed Piece Sort (1) 1 -- Do Not Draw Selvage Lines on Marker (1) 2 -- Force Heading Even When GAP=0 Above Marker (1) 3 -- Force Heading Inside the Marker When GAP=0 (1) 4 -- Count Corners (1) 5 -- Count Notches and Punch Holes (1) 6 -- 7 -- 8 -- 9 -- 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- ______________________________________

Referring again to FIG. 34, MESSG -- Marker messages -- file contains the marker messages printed on the marker as the marker is drawn on the plotter. Messages 1 thru 10 apply to individual pieces as specified by the style definition. Messages 11 thru 60 are printed in the heading of the marker and are selected by the $DRAW: statement. The file organization consists of 20 sectors with 3 messages per sector.

The STYLD, Style Directory shown in FIG. 34 is the DOS-M directory file name assigned to tye style directory. This directory is used the the system to reference the style definitions stored in the file, STYLE. The format of STYLD is shown in FIG. 47. The last two words of each sector are zeroes except in the first sector. The last word in the first sector will be the starting sector of the last cycle definition stored in STYLE. An unused entry will contain zero in the 7th word. Bit 15 of word 7 is set when that entry is to be purged.

STYLE, Style Definitions, is the DOS-M file which contains all the style definitions for the styles referenced in STYLD. Each style definition will begin on a sector boundary and will be formatted as shown in FIG. 48.

The GRADD, Graded Piece Directory, shown in FIG. 34 is the DOS-M directory file name for the graded piece directory. This directory is used to reference the graded piece data stored in file GRADE. The format of GRADD is shown in FIG. 49. The last two words of each sector are zeroes except in the first sector. The last word in the first sector will be the starting sector of the last graded piece definition in GRADE. An unused entry will contain zero in the 7 th word. Bit 15 of word 7 is set when that entry is to be purged.

The GRADE, Graded Piece DEfinition, is the DOS-M file containing all the graded piece definitions for the pieces referenced in GRADD. Each piece in the directory will be stored in the format shown in FIG. 50.

The RULED, Rule Directory, is the DOS-M directory file name assigned to the rule directory. The rule directory is a directory used by the system to reference the rule table definitions stored in DIS-M file RULES. The format shown in FIG. 51 applied to RULED. RULED will be 5 sectors in length which assures that 90 rule tables may be referenced. The last two words of each sector are zeroes except for the first sector in the directory. The last word in the first sector will be the starting sector of the last rule table definition stored in RULES. An unused entry will contain zero in the 7th word. Bit 15 of word 7 is set when that entry is to be purged.

Formats of the remaining subroutines shown in FIG. 34 will be apparent to one skilled in the art from the previous descriptions.

Program Flow Charts

The complete program listing for accomplishment of the functions of the present system by the central controller 12, which preferably comprises the 2100A computer manufactured and sold by Hewlett Packard of Palo Alto, California, will be subsequently presented. However, in order to clearly document the theory of operation of the more important portions of the program, the following description will define several of the more important aspects of the program for operation of the central controller 12.

WPROD

The purpose of the WPROD program is to monitor and control all operations of the present system. WPROD accepts control statements from the operator, performs all job scheduling and initiates the requested jobs. A job log is maintained listing each job as it is executed and completed and lists the job stack as it is read. The directory of variables of WPROD which is divided into two segments, PROD1 and PROD2 is as follows:

a. Common to PROD1 and PROD2: IBUF Contains first word of options file. ISTAT Commonly used name for status return from subroutine calls. LOT(256) Scratch buffer array. LOUT Logical unit number for job log device. ND Next available data location. NER Number of card errors. NHALT Flag for halt or no halt of system. NJQ Lock table number for job queue. NOPAL Option bit for AL = 1 on draw now. NOPDI Option bit for dimension always set. NOPNO Current master operator number. NPGB Flag for grading or no grading. NPGIN Flag for all cards read in or not. NQ Next available queue location. NQD Next available queue location. NS0(128) Buffer to contain SECTR file. NSTRT Flag for system start-up or not. b. PROD1: IDSJ Options bit to display job messages or not. K Job type to be selected on calling NXTJB. NA Address of selected job returned from NXTJB. NDSD Flag for master display down or not. NFS Lock table number for freeze slave bit. NJT Same as variable K. NRTN Contains word one of SECTR file. NSA Lock table number for slave active bit. NSHF Flag to halt slave system or not. NSTAT Contains word two of SECTR file. c. PROD2: Key(36) Array containing first two characters of the keywords for all control cards. NASS Assignment code for queue entry being built. NFD(15) Array used by WGF routine for all card input. NKEY Number of control cards in KEY. NSTMT Current statement number in reading cards. NT Job type for queue entry being built.

FIGS. 52-56 illustrate flow diagrams of the PROD1 and PROD2 programs. After start of the system at 500, the program PROD1 is called at 502 and a decision is made at 504 as to whether or not to return from grade. If the decision is positive, the slave system is freed at 506 and status is determined at 508 to check for start-up. If start-up is indicated, the initial display MARKAMATIC SYSTEM is displayed on screen 18 at 510. This status return of the system is check at 512 and decision is made at 514 as whether or not a halt is requested. If the decision is positive, a display that the system is going down is made at 516. If the halt is not requested and the job is not ready at 518, terminal 16 prints out that the job is not ready at 520.

The decision is made at 522 as whether to plot now and if so, the PLOTQ entry is built at 524. If the decision is made at 526 to draw now, a DRAWQ entry is built at 528. A display is made to the operator at 530 that the print is completed and a decision is made at 532 as whether or not a queue entry for the last job is present. If so, the queue entry is purged at 534 and a decision is made at 536 as whether or not a message end print queue is being provided. If so, the messages are listed to the user at 538.

Referring to FIG. 53, a decision is made at 540 as to whether or not the system has returned from PROD. A decision is made at 542 as whether or not the card reader is ready and, if no, a decision is made at 544 as whether or not there are errors in the cards which have been read. If the decisions at 542 and 544 are positive, the job queue is purged and packed at 546 and PROD 2 is called at 548. If there are no errors in the card reader, a decision is made at 550 as whether or not the system is in startup. If not, a decision is made at 557 as whether or not cards have been read and if so, a decision is made at 558 as whether or not grading is necessary. If so, all check plot entries are purged at 560 and a decision is made at 562 as whether or not a slave halt has been requested. If so, a request halt to the slave is generated at 564. A decision is made as whether or not grading is desired, and if so the grade message is printed at 568 and the program PGRAB is called at 570. If grading is not desired, a request halt to the slave is generated at 572 and a decision is made at 574 as to whether or not the slave has been halted.

Referring to FIG. 54, the decision is made at 578 as whether or not the system is in startup. If so, all PLOT pointers are initialized at 580. If the system is not in startup, all area requests are processed at 582 and a decision is made at 584 as whether or not the display is down. If not, MARK or CHECK is displayed on the screen 18 at 586 and a decision is made at 588 as whether a response has been made. If the display is down or if no response is made, a decision is made at 590 as whether or not to space in the PLOT buffer. If the decision is positive, the PLOT or DRAW JOB is selected at 592 and the decision is made at 594 as whether or not an entry has been found. If there is not space in the plot buffer, the XFER job is selected at 596 and a decision is made at 598 as whether or not an entry has been found. If yes, the LASEM program is called at 600 and the program exits.

A decision is made at 602 as whether or not a DRAW entry is present. If not, a decision is made at 604 as whether or not a piece is available and if so the PLOTP program is called at 606 and the program exits. If no piece is available, the priority of entry is set to zero at 608 and the program reiterates to step 596. If a marker is available at 610, the DRAWM program is called at 612 and the program exits.

If response is present at 588, a decision is made at 614 as whether or not the response to marked. If yes, a mark job is selected at 616 and a decision is made at 618 as whether or not an entry was found. If so, the MARK program is called at 620 and the program exits. If no entry is found, a display is made on screen 18 at 622 that the MARK queue is not ready and the program reiterates to step 536. If the MARK decision is not made at 614, the CHECK program is called at 624 and the program exits.

If a halt is requested at 514 (FIG. 52) and the display going down decision is made at 516, the decision is made at 630 in FIG. 55 as whether or not a slave halt is requested. If so, the slave is requested to halt to 632 and a decision is made at 634 as whether or not the slave has been halted. If so, the system waits for the plotter to finish at 636 and the display is idle at 638. A decision is made at 640 as whether or not a slave halt has been requested and, if not, the slave system is freed at 642. If so, the decision is made at 644 as whether or not a dual scope system is being utilized. If yes, a decision is made at 646 as whether or not messages are in a PRINTQ and if so the messages are listed at 648. A decision is made at 650 as whether or not a slave halt has been requested and if so the console keyboard is unlocked at 652 and the program stops.

FIG. 56 illustrates the PROD 2 program which is called whenever the card reader is ready. On entry at 660, the program reads the first statement at 662 and identifies the first two characters of the statement key word. If the keyword is correct, at 664 control is passed to the processor for that control card type within PROD 2. The statement is analyzed at 666 and a decision is made at 668 as whether or not errors appear. If no, a decision is made at 670 as whether or not there is a stack in the job queue. If not, a decision is made at 672 as whether or not to execute and the system completes processing at 674. If the keyword is incorrect, the diagnostics are listed at 676.

A decision is made at 678 as whether or not the statement is ended and if so, a decision is made at 680 as whether or not errors are in the job stack. If not, PROD 1 is called at 682 and the program exits. If errors are found in the job stack, the decision is made at 684 as whether or not the card reader is ready. If so, the system reiterates to read statements in step 662.

If the stack in the job queue is available, the queue entry is built at 686 and the system reiterates. If it is decided to execute at 672, the program is called at 688 and the system exits.

Program Check

As previously noted, the purpose of the CHECK system is to check the grading and digitizer codes of pieces recently digitized. The CHECK program included three sections. The section CHKA searches for pieces in the digitizer files, converts the digitizer codes, smoothes the curves and stores it as a temporary piece on the fixed pattern platter. Program CHKB grades the piece to all sizes requested and stores the data into a scratch file CHEK. Program CHKC displays the nested piece and allows the operator to check and/or change digitized data.

The directory of variables and arrays for CHKA is as follows:

Jbuf(128) --buffer buffer array for storing one sector of digitizer data.

Jbuf(1536) -- buffer area for output to temporaty piece file.

Xref(2) -- array for storing X coordinates of reference points.

Yref(2) -- array for storing Y coordinates of reference points.

Ind(500) -- array for point type.

X(500) -- array for X coordinate of point type.

Y(500) -- array for Y coordinate of point type.

Irul(500) -- grade Rule Number.

Msiz -- sample Size.

Ibr -- flag That is Set When a Bad Rule Number of Found.

Mxsec -- maximum No. of Sectors per Digitizer File.

Idig -- digitizer file Name.

Idno -- piece ID Number.

Optns -- options File.

Itpcd -- temporary Piece Directory.

Namr -- rule Table Name.

Mfil -- temporary Piece File.

Mck -- chkb

lin -- logical Unit No. 1 (TTY).

Lout -- logical Unit No. (Printer).

Ngen -- number of Points to be added between Point Types During Smoothing Process.

Nfini -- end of Piece Code.

Ngp -- grade Point Code.

Nip -- intermediate Point Code.

Nph -- punch Hole Card.

Nsl -- stripe Line Code.

Ngl -- grain Line Code

Nap -- alternate Start Point Code.

Nnp -- notch Point Code

-- Transfer Point Code.

Nlp -- lettering Point Code.

Nref -- reference Line Code.

Nfi -- fixed Intermediate Point Code.

Nsiz -- size Key Code.

Nmiro -- mirror Key Code.

In execution, CHKA first calls in the options file to get the number of digitzer files on the system. CHKA then looks for the first file that it can fild that is not zero. If they are all zero, DMESS is called to display the message, EXIT.

When the routine finds a file with data, a call is made to DMESS to display the piece ID number and a YES or NO to check. Also EXIT is displayed. DMESS passes back to CHKA which of the three options were taken. If NO is hit, CHKA will search for the next non-zero file and repeat the previously described method. If EXIT is hit, control is returned to the monitor.

When YES is hit, CHKA again calls DMESS to display the list of Rule Table names. A code is passed back by DMESS to indicate whether the operator chose a normal return, accept the piece without display, or reject without display. Passed back with the normal return and accept is the Rule Table number selected by the operator for the piece.

If the piece is rejected without display, this routine will clear out the digitizer file and search for the next nonzero digitizer file. Otherwise, the validity of the Rule Table is checked.

Then the Piece Directory is searched for a duplicate piece ID number. If one is found, an error message is printed. If no duplicate is found, CHKA calls CONVT to change the raw digitizer data to readable codes for the rest of the CHECK program. CHKA then initializes the header information for the display and processes the codes passed back from CONVT. At this point, CHKA leaves a specified number of blank words between point types for smoothing of the data. Non-mirrored pieces are closed and all grade points are checked to see if they are in the specified Rule Table. If not, IBR flag is set to one. TABCL then is called to smooth the curves by filling in the word gaps and repack the data.

CHKA also checks the sample size in the piece data. If no such size is available in the rule table, a message will be sent to the operator to enter the correct sample size.

The last function of CHKA is to make an entry into the Temporary Piece Directory for the piece data to see if there is room. SQUEZ is called to suppress all unnecessary data and then the data is placed into the Temporary Piece File. (See FIG. 4) If the flag IBR = 1, an error message will print and the piece data will not be stored.

At this point control is passed to CHKB where the piece will be graded. The directory of variables and arrays is as follows:

Irlt -- rule Table Name.

Isiz(42) -- array of Size Names.

Nsiz -- no. of Sizes.

Namr -- rule Table File.

Ibr 13 flag Used to Indicate Bad Grade Rule.

Idno -- digitizer File No.

Idig -- digitizer File Name.

In execution, CHKB pulls the number of sizes and names to be graded and displayed from the specified Rule Table. The number of sizes graded is limited to 42. The array ISIZ is used to store the size names for the piece. A call to GRADP is then made to grade all sizes in ISIZ. A code of φ is passed from GRADP back when the grading was successfully completed. A code of 99 is passed back to CHKB when no end-of-piece code is found. The piece is then purged from the Temporary Piece File. A 98 is passed back to CHKB when a back grade rule is found and IBR is set to 1.

Control is then passed to CHKC to display the graded piece. The directory of variables and arrays for CHKC is as follows:

Isz(42) -- array of Size Names Graded

Xoff(42) -- x coordinates.

Yoff(42) -- y coordinates.

Lbuf(9) -- buffer array for plot, with piece ID number and rule table No.

Perim(42) -- array of perimeters for each size graded.

Area(42) -- array of areas for each size graded.

Ipltb(5000) -- buffer array for display file.

Ichk -- chek program.

Ichkb(3) -- chkb program.

Lin -- logical Unit No. 1 (TTY).

Lout -- logical Unit No. 6 (Printer).

Nsz -- number of Sizes.

Irlt -- rule Table Name.

Ns -- number of Sizes per Sector.

Nptyp -- point Type.

Mif -- flag to Indicate A Mirrored Piece.

Itmp -- variable for Function Box Code.

Ifl -- flag to Indicate Whether Change Rule button was hit.

Msct -- beginning Sector Number of Piece Data.

Nrlno -- grade Rule No.

Mflag -- flag for Whether in Mirrored Part of Piece.

Listf -- flag to List Areas.

In execution, routine CHKC reads in scratch file CHEK to get lists of size names, offsets, areas and perimeters as well as minimum X and Y coordinates. The display file is initialized with calls to EN123, SCALE and INDSP. The display is initialized for a piece with calls to ENPEC and DSPLY.

The data is read for each size and every point is set up for drawing on the display with a call to SETDS. All sizes are drawn if there is enough room in the display file but not to exceed 42 sizes.

After the grade piece is shown on the dislay by a call to START, CHKC allows the operator to accept, reject, plot, list grade rule numbers as well as change them. CHKC monitors the function box and the stylus which the operator uses to indicate his choice of action.

A call to FSHIT is made to check to see if any of the function buttons have been hit. If not, a call is made to DTHIT to see if the stylus is in the area of the piece and if pressure is being put on it. CHKC will search through the piece data for the closest point to where pen pressure is sensed. Intermediate points, end of piece, lettering points, notch or grain lines will be ignored. After the closest point type has been found, an asterisk is moved to that location and the type point as well as the grade rule will be displayed. If the pen is left down, CHKC will go through the remainder of the data sequentially to automatically display the next point type and grade rule. In a mirrored piece, when CHKC finds an end of piece code, it will go through the piece data in reversed order and negating the Y coordinate.

If a function box button is hit for Change Rule CHKC will change the rule of the last grade point listed and store the new information into CHEK and Temporary Piece files. When a stop is hit after the change rule button, a call is made to CHKB to regrade the piece.

If the accept button is depressed, CHKC will check the flag IBR to see if all the grade rules are legal. If IBR is set to 1, an error message will be printed and the piece will not be accepted. If IBR=0, a purge flag will be set in the temporary piece directory.

Once the reject button is hit, a purge flag is also set in the Temporary Piece Directory. When the plot button is depressed, the piece ID number and Rule Table # are written into output buffer LBUF.

After the stop button is depressed, CHKC checks to see if either the accept or reject button was hit previously. A message will be printed as to whether the piece has been accepted, rejected or remains in the digitizer files. If the piece remains in the digitizer files, CHKC returns to program CHKA. If the piece is accepted or rejected, the digitizer file is released.

If plot button has been depressed CHKC will transfer the data in CHEK into Grade and the piece is placed into the plot queue.

Mark Program

As previously noted, the MARK program allows the user to place pieces for the garment into the marker via the screen 18. The directory of variables for the MARK program are as follows:

Variables in COMMON: (First word address column is based on first word of available memory as 0) FWA VARIABLE DESCRIPTION __________________________________________________________________________ 00316 CS This variable is the coordinate scale currently used in the display file. 00270 CSMN This variable contains the minimum value allowed for the coordinate scale. 00265 CSMX This variable contains the maximum value allowed for the coordinate scale. 00236 EFF This variable indicates the efficiency of the marker as percentage of area used. 00157 FACTR This variable is the scale factor used to convert inches to marker units. 00352 IAREA Not used. 00432 IBD Button number on the function box for BUMP DOWN. 00435 IBL Button number on the function box for BUMP LEFT. 00415 IBLOK This variable contains the blocked status of the picked piece. If IBLOK = 0, the piece is not blocked. If IBLOK 0, the piece is blocked. 00434 IBR Button number on the function box for BUMP RIGHT. 00431 IBU Button number on the function box for BUMP UP. 00446 ICOM Number of variables in COMMON to be stored with the display file when a marker is saved temporarily. (EFF through ICOM). 00361 ICPEC Flag used to indicate if picked piece is not to be tracked. 00375 ICUST Bit 1 set if FLIP used. Bit 0 set if PACK used. Bit 2 set if a piece is outside of the the marker when marker is saved temporarily or permanently. 00277 IDFSZ This variable is the maximum size of the display file (Array IDUM). 00147- IDMK(5) These five fariables are the ASCII 00153 identification number for the marker being made. 00154 IDOP This variable is the marker man identification number. 00447-? IDUM(?) The display file and overhead data array. 00306 IDXP This variable is the X position of the picked piece in display units. 00307 IDYP This variable is the Y position of the picked piece in display units. 00340 IEDG This variable is the right most edge of the marker in marker units. 00444 IFL Button number on the function box for FLIP. 00374 IFLP Flip by group option for the marker. 00421 ILOOP Loop counter for tilt and overlap check. 00430 ILPB Button number on the function box for the SPECIAL button. 00305 IMENU This variable is the relative position in the display file for the header information. 00337 IMESG This variable is the relative position in the display file for the message area. 00301 IMGE This variable is the relative position in the display file for the efficiency value. 00360 IMGIN This variable is the relative position in the display file for the inches portion of the length. 00422 IMGL The image number of the last piece picked. 00336 IMGLP This variable is the relative position in the display file for the special buttons. 00273 IMGP This variable contains the image number for the piece which is currently picked. 00376 IMGPK Not used. 00345 IMGPS This variable is the relative position in the display file for the size of the picked piece. 00302 IMGTC This variable is the relative position in the display file for the tracking cross. 00300 IMGY This variable is a relative position in the display file for the yardage value. 00303 IMK01 This variable is the relative position in the display file for the marker outline. 00304 IMD02 This variable is the relative position in the display file for the stripe and plaid lines. 00010- INSTY(31) These thirty-one variables are the 00046 internal style number and the rule table number for each style in the marker. The internal style number is stored in bits 15 thru 5 of the word and the rule table number is stored in 4 thru 0 of the same word. 00372 IOFSET Flag to "slip" pieces in size/style substitution. 00351 IOPTN Option flags for program MARK. 00433 IOV Button number on the function box for OVERLAP. 00445 IPK Button number on the function box for PICK. 00362 IPKC Button number on the function box for the PICK (CHECK) button. 00441 IRCCW Button number on the function box for ROTATE COUNTERCLOCKWISE. 00440 IRCW Button number on the function box for ROTATE CLOCKWISE. 00443 IRE Button number on the function box for RELEASE. 00416 IROT The flag indicating if picked piece was rotated 180° in the initial spread. 00362- ISD(7) The positions of the special stripes 00370 on the marker in marker units. If value is set to 9999 the stripe for that group has not been set. 00402 ISHDL The lower edge of the shade zone for the picked piece in marker units. 00401 ISHDU The upper edge of the shade zone for the picked piece in marker units. 00162- ISIZ(42) These forth-two variables are the sizes 00233 used in the marker. Bits 14 thru 8 of the word contain a pointer into array INSTY to indicate the style of that size. Bits 7 thru 0 contain the size indicator for that size. Bit 15 is used by MRKA and MRKB only to indicate the size is to be rotated 180 degrees. 00353 ISIZE Not Used. 00442 ISL Button number on the function box for STRIPE LOCK. 00325 ISLX This variable is the plaid repeating factor in marker units. 00326 ISLY This variable is the stripe repeating factor in marker units. 00341 ISOFF Stripe offset value in marker units. 00437 ITCCW Button number on the function box for TILT COUNTERCLOCKWISE. 00436 ITCW Button number on the function box for TILT CLOCKWISE. 00275 ITYPE This variable indicates the type of function entered into the function box. 00331 MYL This variable is the limit for the lower edge of the screen in marker units. 00132- NAMGD(3) These three variables are the ASCII name 00134 for the graded data file. 00123- NAMMK(3) These variables are the ASCII name for the marker data file. 00066- NAMST(3) These three variables contain the ASCII name for the style data file. 00247 NAP This variable is a flag indicating the nap constraint. If NAP equals 0, then there is no nap constraint on the pieces. Using ROTATE by group (or NAP by group). 00276 NOIMG This variable indicates the number of images (pieces) in the marker. 00007 NOSTY This variable is the number of styles used in the marker. 00155 NPEC This variable is the number of pieces in the marker. 00272 NRGE This variable contains the value for the goal line in marker units. 00076 NSCMU This variable is the starting sector number for the marker data for the old marker. 00156 NSHD This variable is the number of shade division in the marker.

00161 NSIZ This variable indicates the number of sizes in the marker. 00417 WNDOA The number of words in the header for each piece. 00342 SOFF Stripe offset value in inches. 00240 SX This variable is the plaid repeating factor in inches. 00242 SY This variable is the stripe repeating factor in inches. 00310 IXC This variable is the X position for the center of the screen in marker units. 00312 IXL This variable is the left edge of the screen in marker units. 00313 IXR This variable is the right edge of the screen in marker units. 00311 IYC This variable is the Y position for the center of the screen in marker units. 00315 IYL This variable is the lower edge of the screen in marker units. 00314 IYU This variable is the lower edge of the screen in marker units. 00126- JBG(4) These four variables are the field 00131 definitions for the graded data file. 00077- JBM(20) These twenty variables are the field 00122 definitions for the marker data. 00135- JBP(10) These ten variables are the field 00146 definitions for the piece data. 00047- JBS(15) These fifteen variables contain the 00065 field definitions used by the style data file. 00424 JFG Field definition of flip by group flag in flag words. 00322 JFLG This variable is used in communicating between segments and is especially important in using the correct entry point in segment MRKE. 00425 JNG Field definition of nap by group flag in flag words. 00427 JRT Field definition of rotate by size flag in piece flag words. 00425 JSHD Field definition of shade areas in flag words. 00423 JSTY Field definition of style number of INSTY. 00262 KAD This variable is a relative pointer into array IDUM for the beginning of the table of addresses. 00263 KADP This variable is a relative pointer into array IDUM for the address table entries for the pieces. 00256 KANG This variable is a relative pointer into array IDUM for the angle of rotation for each piece. 00354 KCSR Address in the first word address table for the coordinate scale register for the pieces. 00264 KDF This variable is a pointer into IDUM indicating the beginning of the display file. 00261 KDPT This variable is a pointer into array IDUM indicating the next available word in the display file. 00251 KFLG This variable is the relative pointer into array IDUM for a flag word for each piece. 00414 KFLG2 This variable is the relative pointer into the array IDUM for the second flag word of each piece. 00413 KFWAP This variable is the pointer into the array IDUM to the table address entry for the picked piece. 00252 KINC This variable is a relative pointer into array IDUM for the stretch percentage for each piece. The stretch percent in the X direction is stored in Bits 15 thru 8, the Y percentage stretch is stored in Bits 7 thru 0 in MRKA & MRKB. Stored on disk then it is area of piece as XXX.X. 00250 KINT This variable is a relative pointer to array IDUM for the internal piece numbers for the pieces in MRKA & MRKB stored on disk then it is beginning in GRADE for piece. 00373 KPLH Button number on the function box for the Plaid Lock button. 00357 KPLL Relative pointer to array IDUM for the plaid line information for each piece. 00411 KPLLV The plaid line offset for the picked piece. 00356 KPSIZ Address in the display file for the "picked size" lable. 00274 KREL This variable is a flag indicating whether the piece is on the marker (equal 1) or is off the marker (equal 0). 00253 KSIZ This variable contains a pointer into array IDUM for the size indicator for each piece. This size indicator word contains a pointer into array ISIZ in Bits 15 thru 8 of the word. In Bits 7 thru 0 is stored the size indicator. 00344 KSLH Horizontal stripe line flag for locking. 00347 KSLV Vertical plaid line flag for locking. 00244 KSt1 This variable is the relative pointer into array IDUM for the stripe line information for each piece. 00412 KSTLV The stripe line offset for the picked piece. 00350 KTC Entry number in the first word address table for the tracking cursor. 00254 KXMN This variable is a relative pointer into array IDUM for the left edge of the binding rectangle for each piece. 00405 KXMNV The left edge of the bounding rectangle for the picked piece. 00257 KXMX This variable is a relative pointer into array IDUM for the right edge of the binding rectangle for each piece. 00406 KXMXV The right edge of the bounding rectangle for the picked piece. 00355 KYES Address in the display file for the YES and NO messages. 00255 KYMN This variable is a relative pointer into array IDUM for the lower edge of the binding rectangle for each piece. 00407 KYMNV The lower edge of the bounding rectangle for the picked piece. 00260 KYMX This variable is a relative pointer into array IDUM for the upper edge of the binding rectangle for each piece. 00410 KYMXV The upper edge of the bounding rectangle for the picked piece. 00001- LABF(3) These three variables are no longer used. 00003 00004- LABR(3) These three variables are used as the 00006 three parameters sent to MRKG correspond- ing to BUMP parameters. 00420 LMTPT Number of points allowed per piece during the BUMP and OVERLAP computation. 00346 MAXDF Maximum number of words available in the display file. 00320 MDELX This variable is the X dimension in marker units for the binding box of the picked piece. 00321 MDELY This variable is the Y dimension in marker units for the binding box of the picked piece. 00071- MKUP(5) These five variables contain the ASCII 00075 identification number for the marker requested as the old marker or the letters FR which indicates that the user wishes to start with the pieces spread above the marker. 00267 MKWD This variable contains the width of the marker in marker units. 00323 MLW This variable is the lower edge of the marker in display units. 00000 MOUT This variable is the logical unit for the device used for output. 00324 MUP This variable is the upper edge of the marker in display units. T3 Not Used. 00377 TLML Actual Length in yards. 00327 TOTAL This variable is the total area of all the pieces in the marker. 00234 WIDTH This variable is the width of the marker in inches. 00332 XPC This variable is the stretch percentage to be applied to the entire marker in the X direction. 00245 YARDS This variable contains the length of the marker in yards. 00334 YPC This variable is the stretch percentage to be applied to the entire marker in the Y direction. __________________________________________________________________________

The processing method of the MARK program includes the following segments:

MRKA This segment initializes field definitions and variables in COMMON to be used throughout program. The job queue is read and this data is placed in COMMON also. The arrays INSTY and ISIZ are set up and the option file word for MARK is read. -MRKB Substitution of styles and sizes is completed. This segment sets up the overhead information for the pieces in the marker. The position of the pieces for the initial spread or the old marker are determined and window dimensions and scaling factors are set accordingly. MRKC This segment builds the display file, initializes additional variables in COMMON and turns on the display. MRKD This segment performs the function for roll and zoom. The segment is entered from MRKE when the user requests a roll function or a zoom function. Segment returns to segment MRKE when the user requests a function other than a roll function or a zoom function. MRKE This segment is the interactive loop which monitors the inputs from the light pen and the function box. This segment performs the tasks requested by the user through these two devices. Due to core limitations, a few of these tasks require calling in an additional segment. MRKD, MRKH, MRKJ and MRKG are examples of these segments which MRKE uses to perform additional tasks. MRKF This segment has two functions. One is to store the data for the marker into a temporary file on the disk and then return to the main interactive loop. The other function is to have the operator place splice marks and then to save the marker permanently by calling MRKK. MRKG This segment performs the function for bumping pieces and checking overlap between pieces. This segment and sub- routine BUMP are identical except segment MRKG contains some diagnostic print-outs. MRKH This segment performs the functions, pack or check. Each piece in the marker is checked for overlap and is then bumped to the left and down to assure a more efficient marker. When the function check is used the pieces are only checked for overlap and are not moved. MRKJ This segment displays the "special" functions and performs those functions. MRKK This segment formats the marker data to be stored permanently in the marker files. Control is then returned to the monitor.

The Bump Program

As previously noted, this subroutine bumps pieces together or checks for overlap on the screen 18. Arguments for the program BUMP are as follows:

Ind--this parameter is used to indicate which part of the MARK Program has called this BUMP subroutine.

If IND = 1 the subroutine was called from the main loop, MRKE.

If IND = 2 the subroutine was called from the packing segment, MRKH.

Ip1 -- this variable contains the magnitude of the move returned from this routine.

Ip2 -- this parameter returns the direction of the move.

If IP`= 0 no overlap was found by the BUMP subroutine.

If IP2 = = 1 an uncorrectable overlap condition exists.

If IP2 = 1 the direction of the move is in the horizontal (X) direction.

If IP2 = 2 move is in the vertical (Y) direction.

The arguments IP1 and IP2 have meaning only when IND = 2.

the piece IMGP is the piece which is bumped or moved out of an overlap condition. When the variable ITYPE (found in COMMON) is equal to IOV (also found in COMMON) the piece is checked for overlap against all other pieces in the marker. When ITYPE is equal to IBU, IBD, IBR or IBL (all found in COMMON) the piece is bumped up, bumped down, bumped to the left or bumped to the rights, respectively. When the subroutine was called from the packing segment, that is, IND = 2, the magnitude and direction of the movement of the piece is returned via arguments IP1 and IP2 and the piece is not moved on the screen by the subroutine. When the subroutine was called from the main loop, that is, IND = 1, the piece is moved on the screen by the subroutine. The Bezel lights 240-350 are used to inform the user when there is overlap or no overlap and when the subroutine has been completed. The limit on the size of pieces is restricted as noted under the Source & Relocatable Files. When checking for overlap the subroutine attempts to correct this overlap a maximum of ten times before returning to the calling program.

The pattern pieces to be "bumped" (i.e., forced to be tangent) are defined by a closed polystring of points. To assure that the polystring of points is closed, the first and last points must be the same. A further restriction is added that the points must be originally ordered clockwise. If the piece is a "flip", the points would be ordered counterclockwise. All pieces are defined in "marker units" with respect to a common origin.

For each piece, the minimum and maximum values for X and y are used to define a rectangle which completely encloses the piece.

The direction in which the piece is to be moved is indicated by the operator as left (-X), right (+X), up (+Y) or down (-Y). The rectangle enclosing the piece to be "bumped" is then enlarged in the direction of movement. The amount the rectangle is enlarged depends upon the scale at which the operator is working. All pieces which fall within the enlarged rectangle are then examined to determine the offset needed to "bump" the pieces.

The magnitude of the offset must be the minimum distance found between the piece being moved and any surrounding piece in the designated direction. To determine this minimum distance, the following steps are taken:

1. the points of surrounding pieces which fall in the enlarged rectangle are reduced in number such that the only part which needs to be examined are those points or those line segments which fall within that rectangle;

2. the minimum distance from the points to be examined to the piece to be moved is computed. Only the distance with a direction opposite to the direction of move are used;

3. the minimum distance from the piece to be moved to the points to be examined is computed. Only the distances with a direction the same as the direction of movement are used; and

4. the minimum of the two distances found in Steps 2 and 3 is the magnitude of the offset.

The program listing for accomplishment of operation of the present system 2100A Hewlett Packard computer is set forth below in conventional Fortran computer language:

Whereas, the present invention has been described with respect to specific embodiments thereof, it will be understood that various changes and modifications will be suggested to one skilled in the art, and it is intended to encompass such changes and modifications as fall within the scope of the appended claims.