WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for the design and construction of composite parts    
United States Patent5006990   
Link to this pagehttp://www.wikipatents.com/5006990.html
Inventor(s)Ward; William E. (Issaquah, WA); Gumm, Jr.; Jack R. (Auburn, WA)
AbstractAn improved system and method are designed to take engineering composite drawings released in a computer-aided design (CAD) data set, determine the attributes of each of a plurality of plies into its composite drawing, and pass the information on to using organizations. In preferred embodiments, the system logically determines the geometric definitions for each ply contained in a composite part and reports any errors to the user. Analysis of the physical properties of a part is also provided. Computation of the total part weight and centroid location is performed by the system. Additionally, the present invention creates detailed engineering models of each composite ply and passes information directly to manufacturing.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5006990
Method and apparatus for the design and construction of composite parts - US Patent 5006990 Drawing
Method and apparatus for the design and construction of composite parts
Inventor     Ward; William E. (Issaquah, WA); Gumm, Jr.; Jack R. (Auburn, WA)
Owner/Assignee     The Boeing Company (Seattle, WA)
Patent assignment
All assignments
Publication Date     April 9, 1991
Application Number     07/415,449
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 29, 1989
US Classification     700/97 703/1
Int'l Classification     G06F 015/46
Examiner     Ruggiero; Joseph
Assistant Examiner    
Attorney/Law Firm     Seed and Berry
Address
Parent Case     CROSS REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. application Ser. No. 270,310 filed Nov. 10, 1988, now abandoned, which is a continuation of Ser. No. 037,141 filed Apr. 10, 1987, now U.S. Pat. No. 4,849,913.
Priority Data    
USPTO Field of Search     364/191 364/192 364/193 364/474.24 364/474.09 364/474.02 364/468 364/512 364/300 364/188 364/189 156/250 156/252 156/253 156/256 156/260 156/264 156/265 156/58 156/59 156/64 156/297 156/378 156/379.8
Patent Tags     design construction composite parts
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4697240
Cedar
700/160
Sep,1987

[0 after 0 votes]
4666546
Treber
156/264
May,1987

[0 after 0 votes]
4654805
Shoup, II
358/1.3
Mar,1987

[0 after 0 votes]
4554635
Levine
700/183
Nov,1985

[0 after 0 votes]
4534813
Williamson
156/212
Aug,1985

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A system to aid in the design and manufacture of composite parts, the composite parts fabricated from a plurality of plies of material assembled and cured in a desired orientation and arrangement to form the part, the system comprising:

a central processing unit;

input means communicating with the central processing unit;

storage means communicating with the central processing unit;

means for inputting and storing information regarding the shape, orientation and location of the plies within the composite part;

means for isolating and defining individual plies within the part; and

means automatically communicating with the isolation and definition means for generating tool path data for a numerically controlled cutting machine or the like for cutting a plurality of individual plies of nonuniform shape from a sheet of ply material, the generating means taking into account the shape of each ply and its desired orientation with respect to the composite material.

2. The system of claim 1 further comprising:

means for automatically communicating with a nesting system to enable ply data to be automatically used to calculate preferred nesting arrangements to efficiently lay out individual plies shapes for cutting in the desired orientation from a sheet of ply material.

3. A method of designing and manufacturing composite parts, the composite parts fabricated from a plurality of plies of material assembled and cured in a desired orientation and arrangement to form the part, the method comprising the steps of:

inputting into and storing in a computer system information regarding the shape, orientation and location of a plurality of nonuniformly shaped plies within the composite part;

isolating and defining individual plies within the part;

automatically communicating data from the isolation and definition means and generating tool path data for a numerically controlled cutting machine or the like taking into account the shape of each ply and its desired orientation with respect to the composite material; and

cutting the individual plies in their desired orientation from a sheet of ply material using the tool path data.

4. A method of designing and manufacturing composite parts, the composite parts fabricated from a plurality of plies of material assembled and cured in a desired orientation and arrangement to form the part, the method comprising the steps of:

inputting into and storing in a computer system information regarding the shape, orientation and location of a plurality of nonuniformly shaped plies within the composite part;

isolating and defining individual plies within the part;

automatically communicating ply definition data to a nesting system to enable ply data to be automatically used to calculate preferred nesting arrangements including data defining shape and desired orientation of each ply; and

laying out individual ply shapes for cutting in the desired orientation from a sheet of ply material using the ply definition data.
 Description Submit all comments and votes
 


TECHNICAL FIELD

This invention relates to improved methods and systems for the design and construction of composite parts, and more particularly, to an automated system for integrating the design, analysis and manufacture of composite parts.

BACKGROUND ART

In certain applications, parts composed primarily of composite materials have significant advantages. A composite airplane wing, for example, can provide twice the life of a conventional metal wing with no increased weight, and, at the same time, provide increased operational capabilities.

Composite parts are fabricated using several layers of composite materials, or plies, that are assembled and cured to form a laminate. The composite material is commonly a fabric or tape that is comprised of fibers having a common orientation. Each layer of this material will have a set fiber orientation along an orientation axis with structural properties that vary in accordance with the relationship to the orientation axis.

The designer of a composite part can combine layers of this material in defined orientations to produce the desired structural properties for the part. Additional layers of material can be added at locations requiring increased strength and the layers can be oriented to maximize resistance in critical load directions.

Thus, each ply of material has several attributes that must be specified by the designer;

(1) the geometric boundary of perimeter shape of the ply must be defined;

(2) the orientation of the fibers for each ply must be defined;

(3) the position of the ply with respect to the other plies in the part (sometimes called the "stacking position") must be defined. A composite part, such as an airplane wing segment, for example, may be defined by more than 2,000 unique plies.

The design of composite parts is much more complex than designing parts to be fabricated from a homogeneous material, such as metal. Currently, the time required to design, iterate, analyze and program composite parts for fabrication is very high. Because of this complexity, neither human intervention nor manual input can assure that the part will be manufactured as designed.

DISCLOSURE OF THE INVENTION

It is an object of the present invention to provide a method and system for automatically generating a sequence book illustrating how to lay down plies during construction of a composite part.

It is another object of this invention to provide a method and system allowing improved structural interrogation of composite parts at various "pierce points."

It is a further object of this invention to provide an improved method and system for automatically feeding data on composite parts into a finite element modeler.

It is another object of this invention to provide an improved method and system for automatically calculating and tabulating the ply weights for individual plies of a composite part and the total weight and centroid of such parts.

It is another object of the invention to provide an improved method and system for reviewing cross sections of composite parts at selected locations and generating corresponding layer and thickness plots.

It is another object of this invention to provide an improved method and system for automatically generating tool paths to cut out the plies of a composite part from sheets of ply material.

It is another object of this invention to provide such an improved method and system which will interface with existing nesting products, such as PINS by Precision Nesting Systems, Inc., of Demarest, N.J.

These and other objects of the invention, which will become more apparent as the invention is described more fully below, are obtained by providing an improved system and method. In a preferred embodiment, a System Logic for Integrated Composites (SLIC) system is designed to take engineering composite drawings released in a computer-aided design (CAD) data set, determine the attributes of each of the plies into its composite drawing, and pass the information on to using organizations.

Not only does the information need to be released to all operations organizations, but it also needs to be communicated within engineering groups, such as stress analysis groups. SLIC bridges the gap between engineering, manufacturing, and quality assurance disciplines.

In preferred embodiments, such as SLIC, the system logically determines the geometric definitions for each ply contained in a composite part. If a ply is not completely defined, SLIC reports the error to the user. Automatic error checking assures the designer that the design is of the quality required to meet downstream operations data requirements.

Analysis of the physical properties of a part is also provided to the technical engineering staff. This analysis data may be passed directly from SLIC to NASTRAN, which is an engineering stress analysis system provided by The Mac Neal-Schwendler Corporation of Los Angeles, Calif. Computation of the total part weight and centroid location is performed by the system.

Additionally, SLIC creates detailed engineering models of each composite ply, based upon the complete composite design. SLIC interprets the design and passes it directly to manufacturing, thus automating the design/build process. Because SLIC forces the designer to correct all geometric definitions, there is a resultant savings in time and money because of reduced errors passed from engineering to manufacturing.

SLIC generates an enormous amount of valuable data that can save thousands of person-hours on a design and build project. Examples of useful data include pierce point data that presents the thickness and properties of the part at any specific location; creation of a table that defines the area, weight and centroid of each ply; a sequence book that supplies the geometry and the order in which the plies are to be placed on a cutting tool; a section view at any location on the part; and point-to-point information to drive numerical control machines in the factory. This information can be used to drive fabric cutters, such as a Gerber Knife, laser inspection machines, and other tools.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating the operation of the routines within the SLIC system.

FIG. 2 is a flow diagram illustrating the operation of the Retrieve Geometry routine.

FIG. 3 is a flow diagram illustrating the operation of the Organize Ply Table routine.

FIG. 4 is a flow diagram illustrating the operation of the Set Up Geometry Information routine.

FIG. 5A is a flow diagram illustrating the operation of the Build Ply Geometry routine.

FIG. 5B is an illustration of several unique ply shapes on a common drawing.

FIG. 5C is an illustration of the plies of FIG. 5B, as determined by visual interrogation.

FIG. 5D illustrates the plies of FIG. 5B with ply 1 highlighted.

FIG. 5E is an illustration of FIG. 5E after step 1 of the Build Ply logic has been applied.

FIG. 5F is an illustration of FIG. 5E after step 2 of the logic has been applied.

FIG. 5G is an illustration of FIG. 5F after step 3 of the logic has been applied.

FIG. 6 is a flow chart illustrating the operation of the Generate Ply Point Definition routine.

FIG. 7 is a flow chart illustrating the operation of the Create Pierce Point Definition routine.

FIG. 8 is a flow chart illustrating the operation of the Define Section Cuts routine.

FIG. 9 is a flow chart illustrating the operation of the Build Sequences routine.

FIG. 10 is a flow chart illustrating the operation of the Sequence Overlap routine.

FIG. 11 is a flow chart illustrating the operation of the Error Diagnostic routine.

FIG. 12 is a flow chart illustrating the operation of the Part Information routine.

FIG. 13 is a flow chart illustrating the operation of the Part Definition Output routine.

FIG. 14 is an isometric view illustrating a typical ply, layup, and sequence.

FIG. 15A is a drawing illustrating several sequences.

FIG. 15B is sample composite drawing.

FIG. 16 is an illustration of arrowheads on elements in a composite drawing.

FIG. 17 is an illustration of relief cuts in a layup.

FIG. 18 is an illustration of duplicate elements, overlapping elements, and gaps between elements.

FIG. 19 is an illustration of a ply table from a CADAM Standard Library.

FIG. 20 is an illustration of a material definition sheet.

FIGS. 21-23 are illustrations of chain logic in the SLIC system.

FIG. 24 illustrates a desired ply shape.

FIG. 25 illustrates a method of defining that ply shape using arrowheads and text callout.

FIG. 26 illustrates an alternate method to produce the desired shape of FIG. 24.

FIGS. 27-31 illustrate the logical operations to define ply elements using SLIC.

FIG. 32 illustrates a multi-sheet drawing of a ply.

FIG. 33 illustrates another multi-sheet drawing of a ply.

FIG. 34 illustrates several flat patterns for plies.

FIG. 35 illustrates an error model display for the SLIC system.

FIG. 36 illustrates the screen display for an arrowhead error table.

FIG. 37 illustrates a ply table error display.

FIG. 38 illustrates the screen display for a layup.

FIG. 39 illustrates the screen display for sequence overlap errors.

FIG. 40 illustrates the screen display for an information model.

FIG. 41 illustrates a finished model part after the operation of SLIC.

FIG. 42 illustrates an interactive point model.

FIG. 43 illustrates screen displays when using a pierce model in the SLIC system.

FIG. 44 illustrates a screen display for pierce points.

FIG. 45 illustrates a pierce point coordinate system printout.

FIG. 46 illustrates proper drop job control language.

FIG. 47 illustrates the program output for section cuts.

FIG. 48 illustrates a sequence picture page.

FIG. 49 illustrates a prepared sequence format model.

FIG. 50 illustrates sequence pages for SLIC sequence output.

FIG. 51 is a flow chart illustrating the SLIC system as it interfaces with other systems.

BEST MODE FOR CARRYING OUT THE INVENTION

A preferred embodiment of the present invention is implemented on an IBM 4381 Series computer using the MVS.XA Operating System in conjunction with CADAM Version II, Release 20.0, and above by means of a software system known as "System Logic for Integrated Composites," or "SLIC." An object code listing for SLIC is provided in Table I of this application. The CADAM system is available from Cadam, Inc., of Burbank, Calif. The SLIC system also calls routines from the "BCS LIB - Math/Stat/Utility Subprogram Library," available from Boeing Computer Services of Bellevue, Wash. SLIC calls the following routines (and any supporting routines) from BCS LIB: ISRCHV; ISRCH; KOMPRV; HGTIME; HGDATE; HQRWZERO; PROOT; HDGELE; MWGETP; and CHARFL.

The interface of SLIC with existing systems is illustrated in FIG. 51. SLIC 1 takes data from the CADAM Engineering Work File 2 and checks it for accuracy. Data from SLIC can be passed on to NASTRAN 3 for finite element analysis of composite parts. Composite part models 4 that have been released by engineering or other design groups are taken by SLIC and used to generate additional information, as discussed in more detail below. SLIC will calculate part information which is stored in a SLIC part data base manager 5, where it can be used by existing nesting systems, such as PINS 6. Data generated by SLIC can interface with a laser, inkjet or other numerical control equipment 7.

The overall design and operation of SLIC is illustrated in the flow chart of FIG. 1. Function blocks of SLIC have been labeled A-M, with corresponding flow charts for each block illustrated in FIGS. 2-13. The Main routine 8 is the main routine for the entire SLIC system. This routine calls all of the driver routines described below. The total area and centroid of a part is calculated in the Main routine.

A. RETRIEVE GEOMETRY (FIG. 2)

These routines are used to retrieve and store geometry and text information. This information is formatted and used downstream by the various SLIC routines to output the required data. The information is stored in FORTRAN arrays.

Routine RESOLV (10)

SLIC interacts with the CADAM model retrieving and storing information. An understanding of this process can be found in the CADAM Geometry Interface Installation Guide. RESOLV contains several FORTRAN entry points which receive information, such as geometric and text data, from the CADAM model. This information is stored in several arrays to be used by SLIC.

Routine SMXMN (12)

This routine calculates the maximum and minimum XY values of a CADAM spline. The maximum and minimum values for each bay in the spline are also calculated. This information is used downstream by the break routines to determine if an element's end points break the spline.

Routine BTXT (14)

This routine analyzes text from the ply table, breaks it up, and places it in the proper arrays. The array information will be used in other routines to determine the proper format of the ply table.

Routine SPLTXT (16)

This routine splits up the text passed to it. If a dash (-) is found between two values, the range of numbers will be generated (i.e., L1-L4 will generate 1, 2, 3, 4). The numbers generated will be placed in a return array.

Routine AROTXT (18)

This routine breaks up the text found on CADAM arrow heads. Arrowheads are used to define the logical path of the geometry of the engineering drawing. Arrowheads are also used to define pierce points. This routine will determine what kind of information has been found and place it in the proper arrays.

Routine FTINFO (20)

This routine analyzes text in the sequence format model and stores the data in the proper arrays. This information will be used in the routines that build sequence pages. An explanation of the kind of text found in the sequence format models can be found in the Using SLIC section below.

Routine TXTNFO (22)

This routine analyzes and breaks up the attribute text found on the section cut lines. An explanation of section cuts can be found in the Using SLIC section below.

(B) ORGANIZE PLY TABLE (FIG. 3)

These routines will organize the standard ply table information in a format to be used in SLIC. If the information has been improperly defined, error messages will be generated.

Routine BLDTBL (24)

This routine is the driver routine for formatting or merging all of the information into standard ply tables. The location of notes is critical to the building of the table. Each dash number/page number note will determine the grouping for each ply table page. If a ply table information note is placed too far away from a dash number/page number note an ERROR message will be generated. This distance can vary depending on the width of the ply table page desired. A sample picture and a brief explanation of the ply table can be found in the Using SLIC section, below. The Users' Manual also defines the ERROR messages that may be generated by these routines.

The ply table is important to SLIC because it defines how the composite part is to be built on the tool.

Ply Table Note Definitions

The ply table notes for SLIC have been placed in a separate CADAM view to avoid confusion with notes in other views.

Ply Table: - 101 page 1

Ply Table: - 102 opposite page 1

This note is used to define each ply table page. The word "opposite" used in the second note shown tells SLIC that an opposite hand part is being defined.

S20. This note is used to define each sequence number.

L10. This note is used to define each layup number.

45. This note is used to define orientation associated with a layup number. The value of the orientation must be followed by a degree symbol.

7250. This note is used to define the material code. This note must be four numberic characters.

Routine NFOUND (26)

This routine will determine if no ply chart information was found in the CADAM models flagged for the SLIC run. For example, if sequence numbers are not defined or placed in the proper view, an ERROR message will be generated.

Routine MERGE (28)

This routine will merge the sequence numbers, orientations, and material codes into all the ply table pages. Once the information is merged it will be sorted in Y decending order.

Routine MERGE1 (30)

This routine will merge the layup numbers into all the ply table pages. Once the information is merged it will be sorted in Y Y descending order.

Routine MATMRG (32)

This routine will match or merge the material codes with the proper layup number for each ply table page.

Routine SEQMRG (34)

This routine will match or merge the sequence numbers with the proper layup number for each ply table page.

Routine GRNMRG (36)

This routine will match or merge the orientations with the proper layup number for each ply table page.

Routine VDASH (38)

This routine will verify that dash number information has been defined properly. For example, page 1 may have been used more than once for a given dash number. ERROR messages will be generated if errors are found.

Routine VSEQU (40)

This routine will verify the sequence information to make sure valid values have been obtained.

If a duplicate sequence of numbers for a dash number is found, an ERROR message will be generated.

Routine VLAYUP (42)

This routine will verify the layup information to make sure valid values have been obtained. If a duplicate layup for a dash is found, a WARNING message will be generated. If duplicate layup is found for a dash with different material and/or rotations, an ERROR message will be generated. If a layup number is defined in the same sequence, an ERROR message will also be generated.

Routine MCHECK (44)

This routine checks the material code defined to see if that material has been defined to SLIC. The actual material code properties are defined in a routine called DEFINE.

If a material is not defined in SLIC, then a message will be generated.

(C) SET UP GEOMETRY INFORMATION (FIG. 4)

The information received from the RETRIEVE routines (Section (A)) is put in the arrays in a random fashion. These routines organize the arrays and set up additional arrays so that processing of the data can be accomplished by other sections.

Routines CCHAIN (46), BCHAIN (48), BCHAN1 (50)

These routines will order the array that contains the elements into groups of chained sections. A pointer array is set up that points to each section of chained elements. A section is considered chained when the end points chain to more than one element or do not chain to any elements.

Routine VERIFY (52)

This routine will look at all the arrow heads and find the element that the arrow head lies on. Then the chained section the arrowhead belongs to is identified and stored in an array. This routine assumes that the elements have been chained into sections by the chain routines. It also assumes the array containing the arrowheads has been sorted so all the arrowheads that are in the same location are next to each other in the arrowhead array.

Routine BREAK1 (54), BREAK2 (56)

These routines look through all the elements in the element array and determine if an element is a breaker element. If it is, a flag is placed on it. A breaker element is defined as an element that has one of its endpoints that lies on another element. This routine is only called once. By looping through all the elements once and placing flags on them, the process of breaking elements in the BLDPLY logic section (D) is greatly reduced. This is because all the elements don't need to be checked for breaking each time, only the ones with flags placed on them by these routines.

Routines DUPTBL (58), DUPARY (60), PUTMSG (62), RSAME (64)

These routines set up an array that points to the section of arrowheads that define a ply. When the main routine builds a specific ply, this array is searched by routine DUPARY and all plys that have arrowheads that point to the same sections are determined to have the same geometry. This saves reprocessing the plies that are identical.

(D) BUILD PLY GEOMETRY (FIG. 5)

These routines are called to build the geometry definitions for each of the plies. When engineering drawings are designed on a computer, the mathematical definitions for the plies can be extracted automatically and used for processes that need the definitions, such as planning, quality, numerical control (NC), programming, and engineering organizations like weights and the technical staff. The problem then is to identify all and only the elements that define the ply boundaries.

Build Ply Geometry operates using a process that, given the original input of geometry and arrowheads placed at logical positions so a person can visually determine where a ply is defined, a ply definition of elements limited to the actual edge of the closed boundary will result, thus producing a definition that can be used for all the disciplines requiring the ply definition. The example is a simple example to illustrate the concept, but the process will work on very complex ply definitions.

FIG. 5B defines three unique ply shapes. FIG. 5C shows the ply definitions that would result from visual interrogation. The process for this invention will now be predented to illustrate the same results for ply 1 (FIG. 5D):

Step 1. The first step will identify each arrowhead for the ply with an element. Then those elements are chained together on each end point until the end point does not chain or chains to more than one element. This will result in the elements shown in FIG. 5E.

Step 2. Every element that is broken by the endpoint of another is then separated into two elements. For example: the vertical line will be broken (or divided) into two lines (FIG. 5F).

Step 3. The last step is almost identical to step 1 except because of the elements being broken the result will be a group of elements only defining ply 1 (FIG. 5G).

Several of the routines in the section are needed only to handle the arrays that are used in SLIC. The logic could be executed in various ways. The main routines for this section are BLDDRV, BUILD1, BREAK, BUILD2.

Routine BLDDRV (66)

This routine is the main driver for executing the build ply logic. The ply number that is to be built is passed in and an array of all the elements that make up the ply boundaries is returned. This routine assumes all the arrays have been set up previously by the Set Up Geometry routines described in section (C) above.

Routine BUILD1 (68)

This routine executes the first step of the build ply logic. All arrowheads for the specific ply are identified and connected to one of the elements in the model. Then the connecting elements to each end of the arrowhead elements are found until a branch or no chain is found. All these elements are placed in a table with pointers and flags to keep track of where they came from and what chained section they belong to. (See description of Step 1, FIG. 5E, above).

Routine BREAK (70)

This routine finds the elements that are to be broken and breaks the element by creating two elements in the table instead of one. The routine BREAK calls other routines that handle pointers and flags on the new elements. (See description of step 2, FIG. 5F, above).

Routine UPDTE1 (72), UPDTE2 (74), SPLIT (76), RANGE (78)

These routines are used for handling pointers and flags on elements. They are specific to the methods used to store the elements in the arrays and could be dependent on the various data array structures.

Routine BUILD2 (80)

This routine looks at the new sections that have been created by breaking elements. It determines what sections still have arrowheads on them and builds the final array of the elements making up the ply definition. It then passes the array back to the calling routine. (See description of step 3, FIG. 5G, above).

(E) GENERATE PLY POINT DEFINITION (FIG. 6)

This section of routines will generate strings of XY points that will define the shape of each layup or ply within a part. These points can be used for several applications, such as tracing or cutting the part on a numerical control machine.

Routine CANDO (82)

Routine CANDO is the main driver for generating the GOTO points for defining each layup or ply. This routine assumes the geometry for defining the plies has already been defined.

Routine CNDCHN (84)

This is the driver routine for routine CHAIN1. This routine will group all profile geometry together. If all geometry does not chain, the element end points where the chaining error is found will be tagged with a note.

At this point, the closed shapes have been grouped or chained together in their element form (lines, arcs, splines).

Routine CHAIN1 (86)

Routine CHAIN1 will chain the geometry by its end points. The array will be sorted in the order the geometry is chained. The first element to be chained should be at the top of the array. The array will be processed until the beginning point in the array is found again or until the end of the array is reached. If the end of the array is found before all the geometry chains, an ERROR message will be generated.

Routine POINTS (88)

This routine will break up the individual elements (lines, arcs, splines) into GOTO points. The GOTO points will be generated according to their chained order. The number of GOTO points generated is dependent on the cord height tolerance defined. Arrays will be set up to point to each set of GOTO points that define a profile or closed shape. The points stored in a GOTO point table will later be sent to routines to order the points in clockwise or counterclockwise order.

Routine PTLN (90)

Routine PTLN put the line end points into the GOTO point array.

Routine PTARC (92)

This routine breaks up the arc into GOTO points based upon the cutting cord height tolerance.

Routine PTSPL (94)

Routine PTSPL breaks up spline into GOTO points based upon the cutting cord height tolerance.

Routine PROFIL (96)

This routine will calculate the XMIN, XMAX, YMIN, YMAX of each of the closed shapes or profiles in the GOTO point table. The pointers to the largest pocket are moved to the beginning of the table that points to each profile. The largest profile is considered the outside profile. Routines will be called to make sure the smaller shapes are completely contained by the outside profile.

Routine PROFLL1 (98)

This routine will call pierce for the points on the internal cutouts to determine if all the cutouts are contained within the exterior profile.

Routine PROFL2 (100)

This routine will determine if internal cutouts overlap or are inside the other cutout (illegal cutout).

Routine DCWCCW (102)

DCWCCW is a driver routine for CWCCW. Each pocket's GOTO points will be passed to routine CWCCW to see if the points are going clockwise or counterclockwise. The outside profile should be ordered clockwise and the internal cutouts should be counterclockwise. If the internal pockets or outside profile are not ordered properly DCWCCW will reorder the GOTO points in their proper order.

Routine CWCCW (104)

CWCCW will analyze an array of XY points to determine if they are in clockwise or counterclockwise order and return the answer.

Routine CNTRD (106)

This routine will calculate the AREA1 and the CENTROID for a given set of points.

Formula: ABS (Summation X(I)*Y(I+1)=Y(1)*X(I+1))/2

Formula for CENTROID uses a trapezodial method.

This routine assumes the array of XY points close and the first and last points are the same in the array.

Routine OPTMZE (108)

Routine OPTMZE will optimize the GOTO points based upon the starting load point or XLOAD, YLOAD. The routine searches for the closest point in the internal and external profiles and reorders the GOTO points. This will maximize machine time by generating a more efficient tool path. Routine ORDER is called to reorder the GOTO points array.

Routine ORDER (110)

This routine is called by OPTMZE to reorder a string of XY GOTO points by passing the starting location to begin reordering.

(F) CREATE PIERCE POINT DEFINITION (FIG. 7)

These routines are used to determine all the plies a pierce point penetrates. Calculations of the laminate at the pierce point are also done. An explanation of pierce points found in the "Using SLIC" section below.

Routine PRCDRV (112)

This routine will take a string of points defining a ply and determine if a given point lies within the boundary definition or outside of it. It also handles internal cutouts. This routine is actually a driver for routine PIERCE.

Routine PIERCE (114)

This routine will determine if a point lies within a closed polygon shape. Routine PRCDRV determines if the polygon is a cutout or the outside boundary.

Routine PCHART (116)

This routine is the driver routine for calculating and creating information for each pierce point that was identified by the user.

Routine PSTRES (118)

Subroutine PSTRES creates the actual pierce chart or output data for each pierce point. It calls routines for calculating the information.

Routine CONSTR (120)

This routine computes the (A), (D), (B), (S) matrices for a laminate given the following information for each ply of material in the laminate: bias or grain direction, material properties, and location within the laminate. The calculation of the properties are based upon laminate plate theory.

Routine NCARD (122)

This routine prepares NASTRAN, PSHELL and MAT2 cards for interface to NASTRAN.

Routine MAT2 (124)

This routine prints out NASTRAN MAT2 cards.

Routine WRTMAT (126)

Subroutine WRTMAT will write out the material arrays. This routine is used to provide a standard output file for the material properties. It is called when a list of the properties are wanted for interface to other programs.

Routine PCTGET (128)

This routine will retrieve the array of all the plies a particular pointed pierced. This information is retrieved before PCHART calls PSTRES.

Routine PCHECK (130)

This routine will read in all the pierce point data into a pierce point array. This is done before the ply definitions are created. This routine also checks for duplicate point data.

(G) DEFINE SECTION CUTS (FIG. 8)

These routines will generate defined cross section cuts through a series of layups comprising a composite part. A brief explanation of section cuts can be found in the "Using SLIC" section below.

Routine SSTICK (131)

This routine is the driver routine for taking cross section cuts through the composite part. This routine will loop through each section cut line and then call other routines to generate the cross section data.

Routine STKBLD (132)

This routine builds an array of information for each ply that is cut by the section line cut. The distance and order of the cut will be stored.

Routine DLLIM (133)

This routine will determine the limits (XY minimums and maximums) of a line given its XY end points.

Routine INTDRV (134)

This routine finds all intersecting points for a section cut line, given strings of points defining the layup or ply.

Routine LIMITV (170)

This routine checks the limits (XY minimums and maximums) of two closed profiles to see if they overlap. This is the same routine called in the CHECK SEQUENCE OVERLAP logic described in section I below.

Routine INTERC (136)

This routine will calculate the intersection point for two lines. The point of intersection is returned. An alternate return will occur if the lines are parallel.

Routines PRCDRV (112) and PIERCE (114)

These routines create pierce point data, as explained in the CREATE PIERCE POINT DEFINITION, section F, above.

Routine STKMOD (139)

This mode is a driver routine for creating section cut drawings or CADAM models. Stick figures, gage data or thickness plots, and (E.times.T) models will be generated. This routine will create separate models for each section cut line.

Routine STKCAL (140)

This routine will calculate all the information to build a stick figure model. Each line of the stick figure will display the layup number, sequence number, orientation and material code of each layup cut.

Routine CONSTR (120)

This routine computes (A), (D), (B), (S) matrices for a laminate given the following information for each ply of material in the laminate: bias or grain direction, material properties, location within the laminate. The calculation of the properties is based upon laminate plate theory.

This routine computes the (A), (D), (B), (S) matrices for a laminate as well as the thermal load vectors AT, BT, DT. An average density PMO is also computed. ##EQU1##

The thermal expansion coefficients A1 and A2 are transformed to laminate coordinates by:

A-X=C*C*A1+S*S*A2

A-Y=S*S*A1+C*C*A2

0.5A-XY=2*S*C*(A1-A2)

Let A-BAR denote the column vector of transformed coefficients. Then the thermal load vectors are computed by: ##EQU2##

Routine STKSTK (141)

This routine takes all the information compiled in routine STKCAL and generates the actual stick figure model.

Routine STKGAG (142)

This routine will build S gage or thickness plot of the section cut. This will be built in the same model below the stick figure plot.

Routine STKEPL (143)

This routine will build the plot for modules of elasticity (E) and the modules of elasticity times thickness (E.times.T) along the section cut.

(H) BUILD SEQUENCES (FIG. 9)

These routines are used to build a book of all the ply sequences in a part. This book can be used by engineering for part visibility. Planning can also use the book for a planning tool.

Routine BLDSEQ (150)

This routine is the main driver for creating sequence drawings. A sequence model for each sequence within a given part/dash number will be generated.

Routine BLDET (152)

This routine will generate geometry defining each layup on a separate page for each layup. For sequence models all the layups for a given sequence will be generated and dittoed on the main drawing area.

Routine STMODL (154)

This routine will start a model with the proper root name and the sequence number inbedded in the name. The model started will be used by SLIC to write out the geometry and text information for the sequence being built.

Routine RETFMT (156)

This routine will call CADET to initialize the model to be used for that sequence. The routine will then look and see if a sequence format model has been created and, if so, load it into model common.

If CADET is called, format notes will be analyzed to see if special notes with the proper values have been placed in the sequence format model. An explanation of the sequence format model and the special notes required can be found in the "Using SLIC" section below.

Additional SLIC information will be placed on the NOSHOW page in view PV for each sequence drawing built.

Routine PSNOTE (158)

This routine will place text on the sequence model being created. This text is the page number, which will be incremented for each new page, and the sequence number which is obtained from the standard ply table information. The notes will be placed at the locations defined on the sequence format model by the special notes.

Routine FMTINT (160)

This routine will initialize the values for the format notes. If the format notes are not found, these values will not be updated, causing a sequence format model error.

Routine FMTVER (162)

This routine will verify if valid values on the special notes in the format models were defined. If invalid notes or values have been defined, an ERROR message will be generated.

An example format model and an explanation of the special notes can be found in the "Using SLIC" section below.

Routine NSCHT (164)

This routine will write out SLIC version number, data and time of run, and models flagged to create part. This chart will be placed on the NOSHOW page on every sequence page generated by SLIC. The CADAM group and user in which the models were flagged will also be given. This information will be used as accountability and traceability information.

(I) SEQUENCE OVERLAP (FIG. 10)

This segment of routines will look at all the shapes on a given sequence and determine if any of the shapes overlap. This is important to SLIC because the sequence has been improperly defined if overlap occurs.

Routine COVDRV (166)

This routine compares two shapes that can have internal cutouts and determines if they have any common overlapping or cover. The shapes are in the form of strings of XY points.

Initially the XY limits of the shapes will be checked to see if they overlap. Routines will be called to determine if the first shape completely covers, partially covers, or does not cover the second shape.

Routine COVER (168)

This routine takes two strings of ordered, closed-shaped XY points and determines if they have any common overlap or cover.

Information will be returned to tell how or if the first string overlaps the second string, and how or if the second string overlaps the first.

Routine LIMITV (170)

This routine checks the limits (XY minimums and maximums) of two closed profiles to see if they overlap.

Routine HLDRV (172)

This routine is the driver routine for routine HIDELN. This routine will compile how