pml : Product modelling language

pml : Product modelling language

Computers in Industry 18 (1992) 265-277 Elsevier 265 Applications PML" Product Modelling Language Peihua Gu Department of Mechanical Engineering, T...

1MB Sizes 12 Downloads 104 Views

Computers in Industry 18 (1992) 265-277 Elsevier

265

Applications

PML" Product Modelling Language Peihua Gu Department of Mechanical Engineering, The University of Calgary, Calgary, Alberta, Canada T2N 1N4 Received May 16, 1991 Accepted September 5, 1991 This paper presents the development of a design modelling language called Product Modelling Language based on analysis of CAD systems, modelling, and feature-based modelling. The language is a unique representation of product, solid and features, and an effective communication method for linking design and various manufacturing activities. The language consist of five levels: product level, unit level, part level, form-feature level, and feature-boundary level, each providing particular information. The product level includes information regarding the whole product such as product name, size, weight, specifications, directly assembled parts and sub-assemblies. At the unit level, information such as unit name, specifications, directly assembled parts and sub-assemblies is provided. The part level concerns information for the entire component such as part name, classification code, heat-treatment requirements, material type, and all solid primitives which form the part in a chosen solid modeller. At the form-feature level, information is required by the chosen solid modeller such as CSO (constructive solid geometry) primitives, their dimensions and locations in a given coordinate system. The feature-boundary level is designed associated with the boundary representation (B-rep). At this level, the detailed primitives information is provided such as dimensions, locations, tolerances, relations, surface finish and the like. The langauge syntax, semantics and vocabulary have been defined by taking into consideration human designer, compatibility with engineering terminology, computer implementation and future expansions. The language processing system consists of a number of lexical analyzers, a parser and three translators which are used for solid modelling, cellular manufacturing planning and inspection planning. By using the langauge, solid model, feature-based model and product model and manufacturing applications have been integrated. An example is included to illustrate the langauge and its integration.

Keywords: Product Modelling Language (PMQ, Feature-based

modelling, Solid modelling, Integration, Syntax analysis, Translation, Expert system,

1. I n t r o d u c t i o n

1.1. Solid modelling

Solid modelling provides an unambiguous and informationally complete mathematical representation of real world objects, and has been widely used in C A D a n d o t h e r e n g i n e e r i n g analysis sys-

tems. A solid model not only provides an unambiguous i n t e r p r e t a t i o n of a 3 - D model, but gives a user much more information about the modeled object, such as mass properties.

A real world object is first modelled as a mathematical object, which, in turn, is represented by a computer model. These three-level modelling relations are shown in Fig. 1. At the present time, mathematical models of real objects are considered in 3-D Euclidean space E 3 which is an idealization of the real space. The most g e n e r a l mathematical abstraction of a real world solid object is a point-set of E 3. Advantages of the point-set idealization of real objects is that point-set topology can be used to characterize the properties of the 3-D objects. In real world, numerous geometric shapes exist and, therefore, it is not realistic to develop individuai models for each of them. An alternative is tO m o d e l s o m e basic g e o m e t r y . C o m p l e x g e o m e t -

ric shapes can then be modelled using the basic geometry with some rigorous mathematical operations. In order to represent mathematical models in a computer, a number of representation schemes have been developed, such as primitive instancing, cell decomposition, constructive solid

0166-3615/92/$05.00 © 1992 - Elsevier Science Publishers B.V. All rights reserved

266

Applications

Computers in Industry Math. Model

Real Object

Comput. Model

Fig. 1. Three-level modelling,

geometry, boundary representation, and the like. The constructive solid geometry (CSG) and the boundary representation (B-rep) have been widely used in solid modellers. To overcome some deficiencies stemming from either of the two representations, hybrid modellers have also been developed. These are either CSG-based modellers with B-rep functions or B-rep-based modeller with a CSG interface. Many modellers have been commercially developed, such as PADL, ROMULUS, TIPS and the like. However, their application to manufacturing has been largely limited because the modellers do not include technical information such as tolerances, surface finish and relations with other objects. This information is crucial for planning manufacturing activities. Most CAD systems or geometric modelling systems are currently separate from manufacturing planning,

1.2. Feature-based modelling To integrate CAD or geometric modelling systems with manufacturing process planning, NC

i

~!

j

~

Pelhua Gu is an Assistant Professor in the Department of Mechanical Engineering at the University of Calgary, Calgary, Alberta, Canada. Prior to joining the department, he worked as Senior Manufacturing Engineer in EIMCO Jarvis Clark Ltd. in Burlington, Ontario, Canada, and as Research Associate at the Centre for

Flexible Manufacturing Research and Development at McMaster University, Hamilton, Ontario, Canada. He received his PhD in MechanicalEngineering at McMasterr University, and his BEng and MEng education in Manufacturing Engineering at Tianjin University, China. He also taught Manufacturing Engineering at the University of Science and Technology, Beijing. His research interests include feature-based modelling, process planning, cellular manufacturing systems, and applications of artificial intelligence in manufacturing automation. He is a Senior Member of SME and Associate Member of ASME.

I

programming and other manufacturing functions, feature concepts have been used. Three major approaches have been taken for the last decade in feature-based representation: (1) feature recognition from solid models; (2) combination of solid modelling with additional modelling for acquiring technical information; and (3) featurebased modelling. The feature recognition and extraction approach is to develop techniques and algorithms to identify and recognize form features directly from a solid modelling database. Some important work has been carried out by Lee and Fu [1] and Woo [2]. Lee and Fu developed algorithms to recognize manufacturing features from a CSG tree. Problems arise from the need of technical information which does not exist in the solid modeller's database. Thus, complete and successful integration of design and manufacturing process planning and other functions requires this technical information. The second approach is mainly used by the manufacturing process planning community. Since commercial geometric modelling software including 2-D drafting systems does not have the technical information in their data bases, additional information must be provided by a user for complete description of a design. Wang and Wysk [3] used AutoCAD as design input, and a tolerance module was used to specify the tolerance information. Joshi and Chang [4] have also used the above approach in conjunction with B-rep modellers. Problems arise from the integration of CAD and process planning, which largely depends on the human user. Besides, advantages for using the modeller do not seem significant. Feature-based modelling concepts have attracted the attention of many researchers. Some primary work has been carried out by Dixon [5], Shah and Rogers [6] and many others including the author [7]. Due to confusion caused by feature definitions, features can be form features, material features, precision features and so on. Another problem is that information of form features is local and low level. More information regarding the whole part structure is needed to p l a n certain manufacturing activities such as machining, inspection and assembly. A l t h o u g h n u m e r o u s efforts have b e e n m a d e to

integration of solid modeller and manufacturing p r o c e s s planning systems, two important gaps still

Computers in Industry

P. Gu / Product Modelling Language •

Product



Parts

O

Sub-assemblies Relations

,-,

[

~ ~

Fig. 2. Product

structure.

exist. These are lack of a uniform and complete representation of parts and products, and lack of an effective communication method between various systems. This paper presents a new approach for complete representation of products and parts, and integration of solids and features with manufacturing applications,

1.3. Analysis of design and representation With the exception of concept generation and design synthesis, a large part of the design protess is routine and well-understood, and consists of analysis, detailing and preparation for manufacturing. A product design can be represented in a hierarchical structure, as shown in Fig. 2. The top level of the hierarchy is the product, the next levels are sub-assemblies and/or parts. The subassembly and part levels can be repeated until all sub-assemblies are decomposed into individual parts. The traditional engineering drawings, used to represent design of both individual components and assemblies, are considered to be an engineering language which still plays a crucial role to link daily design and manufacturing activities in manufacturing industry. The engineering drawings can be divided into two categories: part drawings and assembly drawings including sub-assemblies. The information contained in the part drawings includes: (1) part geometric shapes and dimensions; (2) material and heat-treatment requirements; (3) geometric and dimensional tolerances; (4) surface finish, The geometric shapes represent the whole part and its individual features. Such features are not

267

precisely stated on the drawings, but are rather visually interpreted by human experts who examine the drawings and use their knowledge to understand these geometric shapes. The material is generally consistent throughout the whole part. The heat-treatment is usually stated on the drawings. The tolerances and associated data, and surface finish specifications are stated for individual part geometric shapes. An assembly or sub-assembly drawing, on the other hand, contains the following information: (1) relationship between the parts; ( 2 ) relative positions of each part in the product structure; (3) part functions within the product; (4) bill of materials. The relationships between parts within a product indicate the nature of their connection, such as free contact, tight fits, and the like. The location of each part within the product structure is indicated by position information which is not precisely defined since there is not a coordinate system used. The part function in an assembly is normally interpreted by human experts or described in separate product documentation, and at least, is not specified explicitly on the drawings. The bill of material is usually listed on the corner of the drawings. It gives information of number of parts required, and sometimes, material and identifiers of parts as well. If integration of computer-aided design and manufacturing application is achieved, the engineering drawings must be replaced by another effective means through which the design can be understood by the subsequent manufacturing application systems without or with minimal human assistance.

2. Product Modelling Language

2.1. Design considerations The motivation for creating a new design language is to explore means of complete representation of individual parts and products in a consistent and meaningful way such that both geometric and technical information is included in the design database, and to develop an effective data and knowledge communication mechanism from the design state to various manufacturing

268

Applications

applications. Such information should also be easily retrieved and interpreted. The proposed Product Modelling Language (eML) should be a complete information source which can be used to fully describe a product design. It must be consistent with engineering terminology on the design drawings. Since the language will be available on computers, considerations must be given to easy implementation of the language. The language contains complete information of designs and it is possible, for each application, that only a portion of the design information is needed to accomplish its task. For example, surface finish information may not be necessary for tolerances inspection, but would be

essential for choosing manufacturing procedures and techniques. Therefore, it is appropriate that two languages are involved, source language and target language. The PML is the source langauge which contains complete design information and a specific target language is defined for each application.

2.2. Features To model components and product geometry, a solid modeller will be used. As discussed in the previous section, the solid model does not give technical information. The feature concepts w i l l be used in the language to provide the detailed descriptions of components. The features used in this work are defined as form features and features and feature boundaries, corresponding to CSG representation and B-rep, respectively. The form features have volume with all mass properties. The feature boundaries provide the detailed description of the form features, To explain the definitions further, an example is shown in Fig. 3. A cylinder is a form feature and has three feature boundaries, two faces and one cylindrical surface. From function, relation and technical specifications as well as from a manufacturing process point of view, such representation is logically sound. Two faces may contact different parts, and have different tolerances and surface finish requirements. The cylindrical surface is totally different from the face features in terms of geometry and functions within a part. Thus, such definitions are in agreement with engineering practices,

Computers in Industry

z ~

T

v /~'

,, ~£:d/aCaLZ~

x

1

L

Y

.

I

~



v "

.-- x "-

Cylinder_ N x <

~

y Z Fig. 3. An example of form feature and feature boundary.

At the present time, the form features can be either solid primitives or primitives with Boolean operations. Thus, in this sense, the number of features is not limited. An advantage is the roodelling power and a disadvantage is subsequent features recognitions. This problem can be resolved by separating a features library from some application systems. The user can model the form features and features boundaries and store them in the library.

2.3. Design of the Product Modelling Language Based on the analysis of the traditional representation of designs, the language should include all information which the engineering drawings provide, plus a clear definition of part geometry. The geometric information can be represented by a solid modeller. The information includes: (1) design specification of the product; (2) sub-assemblies and parts; (3) relationships between parts; (4) bill of material; (5) part geometric shapes and dimensions; (6) material and heat-treatment requirements; (7) geometric and dimensional tolerances; (8) surface finish. The language was designed as a hierarchical structure, as shown in Fig. 4. The language has

Computers in Industry

(~

Fig. 4. Structure of the Product Modelling Language.

five levels: product level, unit level, part level, form-feature level, and feature-boundary level, The product level defines the approximate size of the product, its weight, and the technical specification of products, components and sub-assemblies which directly form the product. At the unit level, information describing sub-assemblies is provided, including size of sub-assembly, weight, specifications, relations of sub-assemblies and components which directly form the sub-assembly, components and sub-assemblies. The part level is designed to define the whole part. The information includes part name, classification code if applicable, material specification, weight, heat-treatment, relation with other parts or subassemblies, and primitives and Boolean operations for a chosen solid modeller. The form-feature level mainly concerns information required by a solid modeller. Because of the implementation (a CSG-based modeller was used), the information regarding solid primitives is provided at this level, such as type of solid primitive, dimensions, and location in a defined coordinate system. Corresponding to each form feature, the feature-boundary level is defined. It contains all detailed information for description of the form features, such as boundary type, dimensions, 1ocation and orientation, tolerances, surface finish and the like. The bill of material information is provided implicitly by the language. From the hierarchical structure of the langauge, information regarding all components can be retrieved,

P. Gu / Product Modelling Language

269

Part function can also be interpreted using the part type, such as gear, bearings, and so on. The current version of the language does not include this information. However, once its application is determined, it can be easily added. Besides, part classification code provides additional information which may relate to part functions. A design language should be easy to learn, therefore, the specified grammar must be as natural as possible. Context-free grammar was used to specify the language. Although the number of combinations of basic solid primitives are numerous, it is possible to develop a set of feature boundaries which covers a fairly wide range of mechanical components of interest. For complex parts, a special interface can be designed so that the form features and feature boundaries defined by a user can be easily defined and included in the language. Product specifications are classified into a number of categories and can be defined once products are known. Size and weight of products can be inferred or determined using the chosen solid modellers and a simple algorithm. An initial set of assembly relations has been defined in the research, and will be extended as research progresses. Materials used in engineering follow clearly engineering standards and a number of types can be initially defined. A material database may be integrated with the PML language in the future. Tolerances, surface finish, and heat-treatment are defined based on handbook data. In this manner, the PML vocabulary can be kept at a reasonable size. The lexical definitions and grammar specifications are detailed in the Appendix 2.

2.4. Target languages PML is a source language and a target language can be defined for each application. Three target languages have been defined for the solid modeller, part assignment system and inspection planning system. Each of these application systems requires information specific to its own task. The target languages are mainly task-oriented. Their format and style are not important provided they are accepted by the subsequent application systems. However, as languages, their syntax and semantics must be formed. The target languages should be defined in such way that they can also

270

Applications

Computers in Industry

be input directly by a user following the defined syntax.

[ PML [ Source ,.,

3. Implementation of the PML system

3.1. Implementation considerations

Based on the above requirements, the language system was carefully designed and implemented to allow future addition of feature boundaries, attributes, materials, and other specifications. The main PML development considerations are: (1) There is a large number of special words or "keywords" in the language. Each keyword has its own specific meaning. For example, there is a multitude of words used to describe various kinds of tolerances, geometric attributes, and relations among parts and features. It is expected that the number of keywords will continue to increase as the need arises, (2) There is a list of parameters used with each keyword. These are mostly numeric, but there are other types as well. The number of parameters and their meaning depend on the associated keyword, that is to say, they are context sensitive, (3) Due to the first two considerations, the definition of the syntax and semantics of the rML l~.aguage is best done in a dictionary form, where each "sentence" or "word" is clearly defined, A translation scheme involves the source language and the target language. The translation scheme specifies how elements of the source langu~ge are interpreted and become elements of the target language. Thus, the language development includes the following phases: (1) lexical analysis; (2) syntax analysis; and (3) translation, 3.2. Language system structure

~lnterme~

~

~di.te ~ Code,,

I GTakem:r 1

! IzT~::. I j

~

~ ~ Fig. 5. ProductModelling Language system.

scanner removes blanks, tabs, carriage returns and line feeds from the input file. Then, it appends a special symbol to the end of every alphanumeric string beginning with a character. This allows keywords to be easily distinguished from identifiers that contain keywords as substrings. The lexical recognizer identifies all keywords, numbers (both integer and real) and identifiers, and replaces them by grammar tokens ready for parsing. The parser accepts the input or stops when an error is detected and indicates which input token was at fault (by giving the number of the token as it appears in the input). A utility iexical analyzer is used to display the location of the syntax error in the source code using the number found by the parser. The user can then correct the error in the source language. 3.4. Translators

The design language system structure, shown in Fig. 5, consists of a number of lexical analyzers, a parser and three translators. The PML SyStern was implemented in c language on a SUN workstation, using LEX and vacc. 3.3. Lexicalanalyzers and parser

The lexical analyzers are composed of two main parts, lexical scanner and recognizer. The

The lexical analyzers and parser are used to check the vocabulary and general language syntax. Once this phase is complete, the detailed syntax-semantics is checked and the codes are generated for subsequent applications. Each code generator assumes that lexical definitions and general syntax are correct, detailed syntaxsemantics are examined, and codes are created in the target language syntax if no errors are de-

Computers in Industry

P. Gu / Product Modelling Language

tected. Thus, a code generator for each application is developed. The PML language can be used to design individual parts and products which contain a number of parts. The translators for the solid modeller, inspection planning and parts assignment create a file containing codes for every part in the product. The name of each file is derived from the part identifier with defined extensions. By way of further explanation, the code generator for the part assignment system first expects an occurrence of "part". This tells it that a part is being defined. For each occurrence of "part", it finds an identifier by searching for the "name" keyword within the parentheses. A file is then created for this part. For each occurrence of "feature" (feature-boundary), a keyword is searched. These keywords are classified as follows: "name" "type" "location"

"tolerance" "surface_ finish" "relation"

If one of the above classes is recognized, the expected information is searched and verified as follows: name: Identify an ID to be placed in the symbol table. Check that this identifier is unique, If an identical identifier has been used before, then an error message will print out.

product(name(newCar) ,size(4000,1500,1200) ,weight(650) ,specification(power,1 2 0 , speedMax,180) ,components(engine,body) ) (unit(name(engine) ,size(500,300,500) ,weight(100) ,specification(0) ,relation(pfit,body) ,components(engineBox, shaft 1,bush1, b o x 2 )

Fig. 6. An example part.

type: A type keyword is classified. The associatcd parameters are expected, because the features have different geometric shapes and characteristics. For example, following "cylinder_front" one diameter is expected; for "cylinder_side", two parameters are expected as diameter and length. location: Six parameters are expected. These are the reference point coordinates and three direction angles or parameters, e~, e2, e3. tolerance: A tolerance keyword is expected as a class of all defined types of tolerances. If one of

,weight(35), ,heat_treating(aging) ,relation(pfit,body) ,components(blo.000 "cyl.000,'cyl.001, "cyl.002) ) (primitive(name(blo.000) ,type(blo,15,12,20) ,location(x,0.0) ) (feature(name(face 1) ,type(box_face,20,15) ,location(7.5,12.0,10.0,

90.0,0.0,-90) (part(name(box2) ,class(10), ,material(aisi_1430)

271

,tolerance(flatness,0.60) ,surface_finish(30.0)

Fig. 7. A portion of the source languageof the part shown in Fig. 6.

272

Applications

Computers in Industry

i,i:!~!:!~!i!:!~.:."i.i~:~ii!!%:•:.~:~:=~::~~:~::/~,i!i!!~i:ii::!~:!~:•~::i!~i mn~ll

iri~

~

~.~IH~H~

i:!~:.!:i:!~!i:~i:i!~:~!!::i!~: ?i:i.~:~:i~:.~:!!~i:i ! :~:-i~.!!~!!ii!!:!i%=i~i:~::'!:~!~iiiii~i:!i!ili:!!~~i!?i~ :~.i ~:~i~::~:!!i~i!ii:iii!ill:~i~ ~ • III

II

IIII II III

Fig. 8. Solid model of the part shown in Fig. 6 using AutoSolid.

box face 20 1-5 flatness 0.60 surface finish 30.0 box_face 20.0 12.0 distance 1.2-0.5 parallelism 1.0 surface finish

50.0 box face 20.0-12.0 perpendicularity 0.8 surface finish 50.0 box face 15ff12.0 perpendicularity 1.5 surface finish 100.0 -

box face 15.0-12.0 surface finish 100.0 box face 20.0":15.0 parallelism 1.0 surface finish 50.0 bore 2.4 5.0 diameter

1.8 0.0 parallelism 1.6 distance 1.5-1.5 distance 1.5-1.5 surface finish 40.0 bore 4.8 4.0 diameter 1.4 0.0

concentricity !.0 surface finish bore 3.6 8.0 diameter 1.4 0.0 distance 1.5-1.5 distance 1.5-1.5 surface finish 40.0 stop

Fig. 9. Target language of the part shown in Fig. 6 for part assignment to machine cells.

I lllIIIIIl

I

Computers in Industry

P. Gu / Product Modelling Language

these tolerances is matched, the relevant parameters and possible datums are searched. Surface-finish: A value is expected. relation: Search a keyword as one of the defined relations, then as expected part identifier is searched.

Feature No.

Feature

Operation

1 2

box-face box-face box-face box-face

(BF)! (BF)!

The translators process feature boundaries and print them based on the syntax of the specified target language. Some information, such as location and orientation, are not used by part assignmerit, only the verification is performed.

7 89

3 4 5

box-face

6

box-face bore

273

(BF)I (BF)I (BF) (BF)I E

bore bore

(ZR) (ZR)

Fig. 11. Selectionof machining processes.

3.5. Example

For the same example, the code generated by the part assignment translator for machining

The example shown in Fig. 6 has one block and three hole form features. One hole is hidden, The source language of the part is given in Fig. 7. After lexical analysis, grammar tokens were gen-

planning is shown in Fig. 9. An expert system was used to determine a cell for the part manufacturing [8]. Machines and their representation, and formed cells are shown in Figure 10. Cell forma-

crated. The grammar tokens were processed by the parser. Since no syntactic error was detected, the language can be passed to translation phase. The code generated by the solid modelling translator for AutoSolid and the solid model of the part are shown in Fig. 8.

' ' Machine Tools

Symbol A

Lathe

B

Shaper I

C D E F

Shaper 2

Drilling Machine Boring Machine Vertical Mill Internal Grinding Cylindrical Grinding Surface Grinding

G H I J L M

Diamond Boring Broaching Diamond Lathe Universal Mill

N O P

Hobbing Lapping Tool Grinding

K

'

Cell No.

"'

I [

Machine Tools

1 2 3 4

AFHM ACDIJP DJKO ADEFGHN

5

ABDL

Fig. 10. Machine tools and machine cells.

Operations for the Part:

BEIJ

Cell:

AEHM

Cell:

ADEFGHN

Distance:

3

Cell:

ABDL

Distance:

3

Distance: Distance: Distance: Distance: Distance:

3 3 4 2 3

Distance: Distance: Distance: Distance: Distance:

4 3

Ceil: Ceil:

Distance: Distance: Distance:

ACDUP DJKO

Operations for the Part: Cell: AEHM Cell: ACDIJP Cell: DJKO Ceil: ADEFGHN Cell: ABDL

BEGI

Operations for the Part: Cell: AEHM Cell: ACDIJP Cell: DJKO Cell: ADEFGHN Cell: ABDL

BEFIJ

Operations for the Part: Cell: AEHM Cell: ACDIJP Cell: DJKO Cell: ADEFGHN Cell: ABDL

BEFGI

-Operations for the Part: Cell: AEHM Ceil: ACDIJP Cell: DJKO Cell: ADEFGHN Cell: ABDL

EFIJ

Operations for the Part: Cell: AEHM Cell: ACDIJP Cell: DJKO Cell: ADEFGHN Cell: ABDL

EFGI

3 2 3

4

3 4 l

Distance: Distance: Distance: Distance: Distance:

4 4 5 2

Distance: Distance: Distance: Distance: Distance:

3 2 3 2

4

Distance: Distance: Distance: Distance: Distance:

3 3 4 1 4

Fig. 12. Selection of machine cells.

4

1 I

1

274

Applications

tion algorithms can be found in [9]. Output from the expert system is shown in Figs. 11 and 12. Figure 11 shows the feature boundaries and their machining process generated by the expert s y s tern. Figure 12 shows a total of six manufacturing alternatives for machining the part, and the final results. Based on the expert system analysis, the part will be machined first in cell No. 4, then moved to cell No. 2 for final processing using operations EFGI. The example is also used for inspection planning, which will be discussed in a separate paper, This example shows that the product model, solid model, feature model and manufacturing applications are integrated with the PML language,

Computers in Industry

the information regarding solid primitives is provided at this level, such as type of solid primitive, dimensions, and location in a defined coordinate system. Corresponding to each form feature the feature-boundary level is defined. It contains all detailed information for description of the form features including boundary type, dimensions, location and orientation, tolerances, surface finish and the like. The language has been implemented and integrated with AutoSolid and an expert system for part assignment. Its feasibility as means for integrated manufacturing has been shown. Currently, the source language is input by a user directly through an operating system. A user-friendly graphical interface is under development.

4. Discussion and conclusions

Solid modellers cannot directly drive manufacturing application systems. Feature-based design concepts have been used for years, but two gaps still exist. These are lack of a uniform representation method for parts and products, and lack of an effective communication mechanism for linking design and various manufacturing applications. The problems with current feature definitions and applications have been analyzed and a new language called Product Modelling Language (PML) has been developed at the University of Calgary. The language has five levels: product level, unit level, part level, form-feature level, and feature-boundary level. The product level defines the approximate size of the product, weight, technical specification of products, and components and sub-assemblies which directly form the product. At the unit level, information describing sub-assemblies is provided, including size of subassembly, weight, specifications, relations of subassemblies and components which directly form the sub-assembly, components and sub-assemblies. The part level is designed to define the

whole part. The information includes part name, classification code if applicable, material specification, weight, heat-treatment, relation with other parts or sub-assemblies, and primitives and Boolean operations for a chosen solid modeller, The form-feature level mainly concerns information required by a solid modeller, Since for the implementation a CSG-based modeller was used,

Acknowledgements

This research is the author's continuous effort to integration of feature-based modelling and manufacturing process planning previously conducted at McMaster University. He wishes to thank the following people for their assistance, Mr. L. Hamid and Dr. H.A. Elmaraghy at McMaster University, and Mr. Y. Zhang at the University of Calgary. Financial support provided by the Natural Science and Engineering Research Council of Canada (NSERC) to P. Gu through an Operating Grant is gratefully acknowledged.

References

[1] Y.C. Lee and K.S. Fu, "Machine understanding of CSG: Extraction and unification of manufacturing features", IEEE Comput. Graph. Appi., 1987, pp. 20-32.

[2] T.C. Woo,"Featureextractionby volume decomposition", Conf. on CAD~ CAD Technology. in Mechanical Engineering, MIT, Cambridge, MA, 1982. [31 H.P. Wang and R.A. Wysk, "Turbo-CAPP: A knowledgebased computer-aidedprocess planning", Proc. 19th CIRP bit. Seminar on Manufacturing Systems, 1987, pp. 161-167. [4l S.B. Joshi and T.C. Chang, "CAD interface for automated process planning", Proc. 19th CIRP Int. Seminar on Manufacturing Systems, 1987,pp. 39-45. [51 J.R. Dixon, "Design with features: Building manufacturing knowledge into more intelligent CAD systems", Proc. Manufacturing International '88, Vol. 1, 1988, pp. 51-57.

[6] J.J. Shah and M.T. Rogers, "Feature based modelling shell: Design and implementation", Proc. ASME Int. Cornputers in Engineering Conf., Vol. 1, 1988, pp. 255-261.

Computers in Industry [7] P. Gu, H.A. EIMaraghy and L. Hamid, FDDL: Featurebased Design Description Language", Proc. 1st ASME Design Theory and Methodology Conf., 1989, pp. 53-63. [8] H.A. EIMaraghy and P. Gu, "Feature-based system for assignment of parts to machine cells", J. Manuf. Syst., Vol. 8, No. 2, 1989, pp. 139-152. [9] P. Gu, "Design of cellular manufacturing systems: A heuristic approach, Proc~ASME Computers in Engineering

Conf., 1991, pp. 177-183.

Appendix---VML syntax definitions

A.1. pML syntax definition The language specification has two levels: the grammar and the lexical level. The symbols used must be clearly specified.

A. I.1. Symbol definitions The following will define the symbols used in the grammar and the lexical specifications in the next two sections. On the grammar level, the following symbols are defined: • Strings in small capital lettersmterminals for grammar level; • Anything within angle bracketsmnon-terminals; • Operator "---, " - - a rewrite rule (called a production); • Operator " [ " m w h a t follows is an alternate right side of production. On the lexical level, the following definitions are given: • Strings in small capital lettersmnon-terminals; • Anything within quotation marks--actual text; • Operator "--* " - - a rewrite rule (called a production); • Operator " [ " m w h a t follows is an alternate right side of production; • Asterisk " * " - - t h e expression preceding " * " may be repeated zero or more times; • Anything within parentheses not surrounded by quotation m a r k s - - t h e string contained is a regular expression. A.1.2. Grammar specification (start) -~ (product) LB (units) RB (product) Ln (parts) RB (product)--> PRODUCT L B (productdes) RB (productdes) -~

P. Gu / Product Modelling Language

(keylist) RB I(productdes) COMMA KEYWORD

275

KEYWORD LB

LB

(keylist)

RB

(units) ---, (uspec) LB (parts)

RB

I (units)(uspec) LB (parts) Re I(units)(parts)

I (parts)(units) ( u s p e c ) ----->UNIT LB

(unitdes)

RB

(unitdes) --, KEVWORD LB (keylist) RB I(unitdes) COMMAKEYWORD LB (keylist) RB (parts) --, (part) La (primitives) Ra I(parts)(part) LB (primitives) LB (part) -'~ PART LB (partdes) RB (partdes) ---, KEVWORD LB (keylist) RB [(partdes) COMMAKEYWORD LB (keylist) RB (primitives) --* (primm) I (primitives)(primm) (primm)-* (prim) I(prim) LB (features) Re (prim) ~ PRIMITIVE LB (primdes) Re (primdes)-, KEYWORD LB (keylist) RB I(primdes) COMMA KEYWORD LB (keylist) RB (keylist) --, IDENTIFIER I D E N T I F I E R + IDENTIFIER IDENTIFIER " IDENTIFIER IDENTIFIER * IDENTIFIER

(keylist) COMMA+ IDENTIFIER (keylist) COMMA' ~ IDENTIFIER (keylist) COMMA* IDENTIFIER (keylist) COMMA IDENTIFIER NUMERIC (keylist) COMMA NUMERIC KEYWORD (keylist) COMMA KEVWORD (features)--, (fspec) I (features) (fspec) (fspec) --* FEATURE L B (featdes) Ra (featdes) --* (featureid) COMMA ( featuretype ) COMMA (location) COMMA (surface) [(featureid) COMMA (featurekey) COMMA (featuretype) COMMA (location) COMMA (surface)

276

Applications

(featureid) ~

Computers in Industry

NAME LB IDENTIFIER RB

(featurekey) ~ (tole _ relation) I (featurekey) (tole _ relation) (tole _ relation) --, TOLERANCE LB TOLEKEYI COMMA NUMBER

RB [TOLERANCE LB TOLEKEY 2 COMMA NUMBER COMMA NUMBER RB COMMA NUMBER COMMA IDENTIFIER RB ITOLERANCE LB TOLEKEY4 COMMA NUMBER

(datums)

->"heat_treating"

MATERIAL --> "material" NAME --> "name" LOCATION --> "location" TYPE -->"type" RELATION ~ " r e l a t i o n " SURFACE-FINISH --> "surface_ finish" TOLERANCE - - ~ " t o l e r a n c e " NUMBER --->

[TOLERANCE LB TOLEKEY3 COMMA NUMBER

COMMA

HEAT-TREATING

RB

DIGIT DIGIT* ["--"

DIGIT DIGIT*

[DIGIT DIGIT* " . " DIGIT* IDIGIT* " . " DIGIT DIGIT*

ITOLERANCE LB TOLEKEY5 COMMA NUMBER

I " -- " DIGIT DIGIT* " . " DIGIT *

["-"

(datuml) s a I RELATION LB RELATIONKEY COMMA

IDENTIFIER RB (surface) ~ SURFACE _FINISH LB NUMBER RB (featuretype) ---,

DIGIT* " . " DIGIT DIGIT*

DIGIT--'>

I"1" 1"2" 1"3" ["4" 1"5" 1"6" 1"7" 1"8" 1"9" ---,"part" FEATURE --> "feature" "0"

PART

TYPE LB FEAKEY1 COMMA NUMBER RB

IDENTIFIER -'~ LE'ITER (LETTER [DIGIT I " - - " ) *

[TYPE LB FEAKEY2 COMMA NUMBER COMMA

LETTER "~

NUMBER RB ITYPE LB

FEAKEY3 COMMA NUMBER COMMA

NUMBER COMMA NUMBER RB

ITYPELB FEAKEY4

COMMA

(list_number) RB

(list_number) ~

LB - ' ~ " ( "

RB --*")"

NUMBER COMMA NUMBER COMMA NUMBER

I(list number) COMMA NUMBER (location) --, LOCATION LB NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER

COMMA NUMBER RB (datums) ~ IDENTIFIER I IDENTIFIER COMMA IDENTIFIER I IDENTIFIER COMMA

"a" ["b" ["c" I"d" ["e" I"f" ["g" I"h" I"i" I"j" I"k" I"1" I"m" I"n" I"o" I"P" I"q" I"r" I"s" I"t" I"u" I"v" I"w" I"x" I"y" I"z"

IDENTIFIER COMMA

IDENTIFIER (datuml) ~ NULL [IDENTIFIER

[IDENTIFIER COMMA IDENTIFIER [IDENTIFIER COMMA IDENTIFIER COMMA

IDENTIFIER

COMMA "~ 6'," FEAKEYI

"cylinder_ front" I"t _ cone _ front" ["bore_front"l"h_t_cone_front" FEAKEY2 -'~

"a_slot" I"a _ slot .. a" I " a _ s l o t _ b " I" box _ face" I"slot _ side" ["h_box_ face" I"cylinder_side"["bore" [" h_ slot_ side" ["p_keyseat_corner" I"p_keyseat_side" I"rectangle" I"slot _ face" I"t _ f_ slot_ side" I" thread _ no_ front" I"thread_ nf_ front" I"w_ keyseat_ front" ["h_hexagon_face" I"h_slot_face" I"r_cylinder" FEAKEY3 -'~

A. 1.3. Lexical definitions PRODUCT --'~" p r o d u c t "

SlZE --,"size" WEIGHT -'~ " w e i g h t " COMPONENTS --' "components" UNIT ~ "unit" PRIMITIVE -'~" primitive" CLASS --, "class"

"chamfer" I" fillet" I"gear_ front" " h _ chamfer" [" h_ fillet" " h _ spline_ side" I"h_ t_ cone_ side" " h _ thread _ no_ side" I"h _ thread _ nf_ side" "t _ cone _ side" I"t _ cylinder_ side" "thread _ no_ side" [" thread_ nf_ side" "w_keyseat_ side" I"spline_ front" FEAKEY4 ~ " g e a r _ side" I"spline_ side"

Computers in Industry

FEAKEY5 ~ " h e x a g o n " I"polygon" HEATKEY "-~ "aging" I"annealing" ["austempering" I"bluing" ["brunorizing" I"burnt" I"carburizing" I"cementation" I"hardening" RELATIONKEY--~ "pfit" ["pufit" ]"refit" I"lfit"

I"tfit" I"sfit" I"rfit" I"kfit" I"contact_ fix" I"contact_ free" I" contact _ taper" I"screw _ fix" ["screw_tra" I"spring_contact" I"spring_ fix" I"flexible_ connect" I"weld" ["hilt" ["cure" TOLEKEY1 --* "roundness" I"flatness" I"cylindricity" I"straightness" TOLErmV2 ~"diameter" I"radius" TOLErmV3 ~"distance" TOLEKEY4~ "angularity" ["coaxiality" I"concentricity" ["perpendicularity" [" parallelism" I" position" ]" runout _ c" I" runout _ t" ]"symmetricity" TOLEKEVS~ "profile _ 1" l" profile _ s" M A T E R I A L K E Y --~

"aisi_ 1009" ["aisi_ 1010" ]"aisi_ 1012" "aisi_ 1015" "aisi _ 1016" "aisi_ 1017" "aisi_ 1018" "aisi_ 1019" "aisi_ 1020" "aisi_ 1021" "aisi_ 1022" "aisi_ 1023" "aisi_ 1024" "aisi_ 1025" "aisi_ 1026" "aisi_ 1027" "aisi_ 1030" "aisi_ 1033" "aisi_ 1035" "aisi_ 1036" "aisi_ 1037" "aisi_ 1038" "aisi_ 1039" "aisi_ 1040" "aisi_ 1041" "aisi_ 1042" "aisi_ 1043" "aisi_ 1045" "aisi_ 1046" "aisi_ 1048" "aisi_ 1049" "aisi_ 1050" "aisi_ 1052"

A.2. Syntax of target language for part assignment The target language syntax for the featurebased part assignment system is described as follows:

P. Gu / Product Modelling Language

(description) - , (keylist) (stop) I(keylist) (description) (keylist) (featurekey) (parameters) (tolerance list) (surface-finish list) I(featurekey) (parameters) (surface-finish list) (tolerance list) (tolerancekey) (tolerance values) I(tolerancekey) (tolerance values) (tolerance list) (parameters) -, (positive number)(positive number)* (tolerance values) --, (number)(number)* (number) (positive number) [(negative number) (positive number) --* (digit) (digit)* [ (digit)(digit)*(dot)(digit)* [(digit)*(dot)(digit)(digit)* (negative number) -* (minus) (digit) (digit) * I(minus)(digit)*(dot)(digit)(digit)* I(minus) (digit) ( digit)* ( dot ) ( digit )* (surface-finish list) (surface-finish)(positive number) (surface-finish) -* "surface _ finish" (stop) ~ " s t o p " (dot) -~ "." (minus) ~ " - " (digit) "0" I" 1" 1"2" I"Y' 1"4" 1"5" 1"6" l"6" 1"7" I "8" 1"9" (featurekey) "cylinder front" ["t_cone_ front" ["bore_front" I"h_ t_cone_ front" (toierancekey) -~ "roundness" I"flatness" ["cylindricity" ["straightness" ["diameter" ["radius"

277