Group Technology Code Generation over the Internet
V. Kalyanapasupathy, E. Lin, I. Minis
Department of Mechanical Engineering and Institute for Systems Research
University of Maryland, College Park, MD 20742 
Abstract
This paper discusses the use of the Internet to support the generation of Group Technology codes for mechanical parts. In our approach, we use a STEP-based product information model as a medium for the exchange of product information between designers and manufacturing service providers through an Internet broker. The designer uses a commercial CAD tool to create a feature-based mechanical design. The CAD design file is automatically translated into a standard STEP file. The latter is the input to the automated GT code generation tool which has been implemented as a manufacturing service available to the designer over the Internet. An Internet broker facilitates the entire exchange of product information between the designer and the service provider through the World Wide Web. We have found that automated GT code generation is a prime candidate for a distributed manufacturing service.
1.	Introduction
Over the last three years we have been working at the CIM Laboratory of the University of Maryland on evolving new computer technologies for Distributed Manufacturing; i.e., a form of manufacturing which combines the strengths of various geographically distributed companies to form a virtual enterprise in response to market opportunity. The focus of our work has been on aspects of the information infrastructure for efficient exchange of product and business related data and in researching decision support systems that explore new existing possibilities within this environment.
This research has culminated in the development of the Optimal Selection of Partners in Agile Manufacturing, a design and manufacturing evaluation tool implementing such services as Group Technology (GT) code generation, variant and generative design critiquing and partner selection. Further information on the OSPAM system and methods can be found in [4, 5]. We feel that the OSPAM manufacturing services are prime candidates to be offered over the Internet. In this paper, we concentrate on the GT code generation service, which can be used by multiple designers (clients) by accessing a known site on the World Wide Web. To achieve this, we have designed the system based on a three-tier (designer-broker-service provider) architecture.  The system includes: 
•	a Feature-based Design tool to enable the designer to build a solid model of a mechanical product;
•	a STEP File translator tool to generate a STEP file from the solid model produced in the Feature-based Design tool;
•	an Internet Based GT Code Generation tool to generate the GT code on the Internet using WWW. 
This paper describes our work in realizing the Distributed GT Code Generation System (DGTS) and is organized as follows.  Section 2 provides background information on group technology, the current state of work in manufacturing services over the Internet.  Section 3 describes the architecture of DGTS.  Section 4 presents the feature based design tool of the DGTS.  Section 5 discusses the automated STEP file generation tool which converts the CAD model into a STEP exchange file. Section 6 discusses the implementation method for DGTS.  Section 7 summarizes our research contributions and conclusions.
2.	Background
This section overviews Group Technology, existing work on automated generation of GT codes, and research efforts on providing manufacturing services over the Internet.
2.1	Group Technology
Group Technology is a manufacturing philosophy that exploits similarities in the design, fabrication, and assembly attributes of products. A Group Technology(GT) code is an alphanumeric string which represents critical information about the product in a concise manner. Comparing the GT codes of two products is a quick and efficient method for estimating product similarity in selected attributes. GT codes can be used to search a database of products and retrieve the designs and process plans of those products which are similar to a given design [16], to generate new process plans automatically using a knowledge-based system [15], and to assess manufacturability of a product design [1, 9].
GT coding and classification schemes attempt to capture design and manufacturing attributes such as the main shape, size, features of the product, production quantity, and material. A large number of GT coding schemes have been developed for discrete machined parts including MICLASS, Opitz and DCLASS [3, 9]. 
Group Technology codes are typically generated manually or interactively by answering a series of questions and applying appropriate coding rules. However, this is a slow and inconsistent procedure which inhibited the widespread use of Group Technology.
A number of automated GT code generation tools have also been developed. Shah and Bhatnagar [17] developed an automated GT coding system based on the Opitz coding scheme for machined parts. The system assigns pre-defined taxonomy codes for each feature of its feature-based CAD system.  The generic information captured by the taxonomy codes is used to determine individual feature characteristics and the relationships between features and the entire parts.  The GT code generator uses the resulting feature information and Opitz coding rules to generate the GT codes. Henderson and Musti [10] developed a system to automatically generate the DCLASS GT code of rotational products from a 3-D CAD database. This system recognize mechanical features  from the part’s boundary representation model; it then uses this feature information to generate the GT codes. Chen [6] developed an automated GT coding system that operates on a product design specified in the IGES format. In this system, an IGES file is converted into a custom product definition file which is then transformed into a format from which the GT codes can be extracted. Bhadra and Fischer [2] developed a microcomputer-based Group Technology system to classify and code rotationally symmetric parts.
2.2	Services over the Internet
The Internet has recently become a major information resource provider for industry, and its demand keeps growing.  The World Wide Web (WWW) plays an especially important role in providing information service on the Internet.  Most current WWW applications are processed in batch mode and thus do not require intensive user interactions. Application areas include:
•	Product and service suppliers information:  Examples are Thomas Register of American Manufactures for manufactured products  and Internet Shopping Network for computer goods, home and office supplies;
•	Quotation and bidding:  Examples include a product information and on-line quotation system from Power Computing, and a real-time auction tool from Onsale;
•	Tracking: For example, UPS's package tracking system/service information;
•	Software Product Demos: For example, TAE Plus demonstration Program which is a GUI development tool  and the NIST Tool Kit that is relevant to STEP ; 
•	Education (training and tutorial): e.g., computer-based learning systems which aid students with their understanding of the complex phenomena underlying engineering domains from the INTERACT project. 
	There have also been several manufacturing tools using W3. Examples include:
•	Parsers - Tools for checking the syntax of an AP 203 STEP file.  This  application essentially involves a single interaction between the user and the service provider. The user sends a STEP File to the service provider via W3. The service provider then processes this STEP file and sends the result back to the user. 
•	CyberCut [18] was developed by researchers at University of California at Berkeley to provide users with a CAD front end to a computer aided process planner and prototyping system for mechanical parts.  CyberCut uses a knowledge base, which contains information regarding the tooling and performance capabilities of an open-architecture three-axis CNC milling machine. With this information the process planner creates a script of machining instructions. This system has been implemented using the World Wide Web as the front end for the system. 
•	Another example is the tool developed by researchers at Stanford which makes he capability of manufacturing processes manifest to designers right at an early stage of design [7]. This system involves the specification and exchange of process capability models for establishing "design-rules-on-demand" to ensure manufacturability. The approach is also being implemented with the WWW as the front end and Java agents as the design and manufacturing agents.
3.	Distributed GT Code Generation System
We have built the Distributed GT code generation System (DGTS), which allows the designer to design a mechanical part using a feature-based CAD tool, translate the design to a STEP standard representation, and seek GT code generation services over the Internet (see  Figure 3-1).  We have developed a client-broker-server architecture in which the designer (client) interacts with the GT code service provider (server) through the OSPAM broker (broker). As soon as the design has been completed and translated into its STEP file representation, the client contacts the OSPAM broker and requests the GT code service. The broker maintains a record of the available services and the location of each service provider in the service registry. When the broker receives a service request, the broker uses the service registry to identify the servers which can provide that service. Then, it contacts a capable server and connects the client to that server. Once this connection has been established, the broker can be thought of as a relay, facilitating message passing between the client and the server. At the completion of the GT code generation process, the broker severs the connection with both the service provider and the client.  
 Figure 3-1 - Architecture for the Distributed GT Code Generation System
The DGTS comprises the following tools:
•	Feature-Based Design Tool: This tool allows the designer to create a mechanical part by features. It is built as an interface to MicroStation , a commercial CAD package, using the package’s development language. In addition to feature information, the user assigns manufacturing attributes such as tolerances to the product model. 
•	Automated STEP File Generation tool: This tool translates the CAD model to the standard STEP representation and stores it in a STEP file.
•	Internet-based GT Code Generation tool: This tool performs several tasks. First, it allows the designer to transfer the STEP file to the broker and store it at the broker’s site. Then, it guides the designer to transfer the STEP file from the broker’s site to the service provider’s site and populates a product database at this site.  Finally, it uses the information from the product database and additional information from the designer collected from the user by a series of questions using WWW, and generates the GT code of the product. 
These basic tools are further discussed in the following sections.
4.	Feature-based Design Tool
We have built a feature-based design tool for mechanical parts using MicroStation Modeler.  In this system, the designer creates first a base stock and adds features by subtracting them from this base stock. We have built five types of common features: holes, pockets, grooves, cutouts and chamfers. 
For defining these feature types we have used basic concepts and definitions from the STEP feature model [13]. For example, we defined the counterbore hole as an appropriate combination of two constant diameter axisymmetric sweeps which are STEP form features. In EXPRESS , the counterbore is defined as follows: 
ENTITY Counterbore_hole
SUBTYPE OF (Hole)
	hole1 : Constant_diameter_axisymmetric_sweep;
	hole2 : Constant_diameter_axisymmetric_sweep;
WHERE
	WR1 : ‘SUBTRACT’ IN TYPEOF ((SELF.hole1\Sweep_FF_rep.sweep_sense ) AND
					 (SELF.hole2\ Sweep_FF_rep.sweep_sense));
	WR2 : SELF.hole1\Axisymmetric_sweep.location =
	            SELF.hole1\Axisymmetric_sweep.location;
END_ENTITY;
where the constant diameter axisymmetric sweep is given below. 
ENTITY constant_diameter_axisymmetric_Sweep
subtype of (axisymmetric_sweep);
	size	: ff_rep_length_parameter;
	vlength	: optional_ff_rep_length_parameter;
where
	wr1: must_be_full_length (self.vlength);
	wr2: not (exists (self\axisymmetric_sweep.back_end)
					and not exists (self.vlength));
	wr3: not (exists (self\axisymmetric_sweep.front_end)
					and not exists (self.vlength));
For more information about STEP features see ref [11, 12, 13]. To store the attribute data captured by the EXPRESS definitions, we have constructed four types of data structures one each for the stock, the features that use axisymmetric sweeps (i.e., single straight holes, taper holes, counterbore holes, and countersink holes), features that use profile sweeps (i.e., pockets, grooves, and cutouts) and a data structure for chamfers (i.e., flat and round chamfers). 
To allow for editing of the designs, MicroStation uses a feature tree to store the feature data; each node of this tree represents a single feature with the stock representing the initial node. Since features are subtracted from the base stock, the feature tree in our case is actually a path.  In addition to the feature tree data, the boundary representation (B-Rep) of each feature is also generated and stored at each node. 
5.	Automated STEP File Generation Tool
In order to be able to exchange the design information with other design and manufacturing applications, it is necessary to use a standard part representation format.  For this purpose, we have built the automated STEP file generator which converts the design from the MicroStation native format to the STEP format. 
 First, the tool extracts the geometry and topology of the product from its solid model and populates the STEP file. In the second step, the processor traverses the feature tree, extracts the feature information and then populates the STEP file with form feature, application feature and tolerance information. An important step in creating the application feature entity in the STEP file is the identification of the face surfaces constituting the particular application feature.  This is done during the extraction of the geometry and topology information. A separate linked list is constructed which keeps track of the application feature to which each of the face surfaces belong to.  
The input to the STEP translator is the ACIS body of the solid model since the MicroStation Modeler uses ACIS  solid modeling engine as its kernel. The translator extracts all ACIS geometrical and topological entities that constitute the body of the product and maps each of these entities onto the corresponding STEP entity.
To do so, the translator follows a top-down approach for the extraction of ACIS entities and a bottom-up approach for the population of the STEP file. It starts by extracting all the lumps constituting the body. Then it extracts all the shells covering each of these lumps followed by the extraction of all faces of each shell and so on till the lower-most geometric and topological entities are obtained. The STEP file is populated by creating STEP file entities for each of these ACIS entities starting from the lowest entity and traveling up to the highest entity required for the STEP file namely the shell entity. 
The processor traverses the feature tree from the highest node down to the lowest node extracting the name of each feature, the design data and the manufacturing data.  Note that from the feature name it is straightforward to identify the form features that constitute the application feature. 
ISO has specified mapping rules to map STEP entities [14], represented in the EXPRESS language, to ASCII STEP files. We make use of these mapping rules while translating the MicroStation solid model into a STEP file. 
6.	Internet-based GT Code Generation Tool
We have implemented the Internet-based GT code generation using a client-broker-server architecture. The designer (client) uses a World Wide Web page to access the OSPAM broker and request the GT code service. The tool includes three utilities: STEP file upload utility, STEP file transfer/population utility, and GT code generation utility. All utilities require interactions between the designer, the OSPAM broker, and the service provider. 
Since these interactions are extensive, it is not practical to adopt the traditional communication method which involves HTML forms and CGI scripts for the following reasons:
•	A separate HTML form and CGI script have to be created for each interaction;  In addition, a new connection has to be established for every new form. This is a complicated and time consuming process. 
•	In the case in which multiple clients access the service provider concurrently, the service provider needs to keep track of the identity of each of the clients for proper operation. This is not possible using HTML forms since the client may locally roll back to previous HTML forms. 
To overcome these problems we have used dedicated communication channels and Berkeley sockets throughout the GT code generation process. To facilitate the communication between the client, the broker and the service provider, we have also defined a communication protocol, along the lines of Knowledge Query and Manipulation Language (KQML) which is developed as a complementary to the DARPA’s Knowledge Interchange Format (KIF) for programs to communicate attitudes about information.  Two types of messages are defined in our system, instruction and signal messages. An instruction message would instruct the receiving component to ‘perform’ a task. A signal message would only inform the occurrence of an event. 
The following sub-sections describe the utilities of the Internet-based GT code generation tool. 
6.1	Step File Upload Utility 
The Internet-based STEP file Transfer Utility assists the designer to transfer the STEP file to the broker site. This utility has been implemented using an HTML form and an underlying PERL script.  The designer accesses the broker’s web site and sends in a request for the GT code service. The broker supplies a form for the name and location of the STEP file in the designer’s host system and an identification code for future reference.  Submitting the information to the broker invokes a Perl script which retrieves the STEP file from the client and transfers it to the broker’s depository. 
After the transfer of the STEP file to the broker’s site, the broker supplies the designer (client) with a Java Applet to support the GT code generation process. 
6.2	STEP File Transfer/Population Utility
The STEP file transfer/population utility transfers the STEP file from the broker site to the GT generator site and, subsequently, uses the STEP file to populate an object oriented product database which describes the product in a much more robust way that is convenient for the GT code generation process. 
This utility requires interactions among the designer, the broker, and the GT code generator.  The broker maintains a service registry where it stores the location of different service providers and the names of the services they provide. The location information includes the machine name of the service provider and the port number on that machine that the service is listening to. When a request for a service comes from the client, the broker consults with the service registry and tries to establish a connection with an appropriate service provider.  At this stage, the client, broker, and the server are connected through dedicated communication channels and can interact with each other in an uninterrupted manner. 
The transfer/population process contains the following steps. The broker informs the STEP file translator for the STEP file transfer through the socket. The STEP file translator receives the STEP file from the broker in the form of lines and acts on them one by one.  When each line of the STEP file arrives at the service provider, a new entity is created in the product database till the last line of the data section. The broker informs the translator about the completion of STEP file transfer. 
6.3	GT Code Generation Utility
Once the product database has been generated at the GT code generator (service provider) site, the service provider sends a sequence of questions in the form of messages to the designer through the broker. The type of each question in this sequence depends on the replies of the designer to previous questions.  The GT code generator sends a new set of questions to the client. The GT code generator keeps repeating this process till it has all the information that it needs for generating the GT code.  After generating the GT code, the GT code generator sends an instruction to the broker and the client to terminate the connections.
The GT generation process includes a Java Applet (client), the broker, and the GT code generator. The Java client facilitates the communication between the broker and the designer through user friendly interfaces. It performs the following tasks.
•	Interprets the messages received from the service provider through the broker and creates appropriate user interfaces to convey the messages to the designer.
•	Collects the responses from the designer, checks the validity of the answers, and conveys them to the broker to be forwarded to the service provider.
•	Performs functions that it is instructed to perform by the broker
In addition, we have built a generalized Java client that constructs graphic user interfaces according to messages received from the service provider through the broker. 
The broker acts as a relay for passing messages between the client and the GT code generator. The GT code generator performs the following tasks,
•	collects the answers replying from the client, 
•	retrieves data from the product database and generates the GT code, 
•	sends the GT code or the error messages to the client, 
•	sends the log of the GT code generation in case the GT code is successfully generated. 
The GT code generator uses the GT coding scheme which was originally developed by Harhalakis et al [9]. The part of this GT code scheme that describes the mechanical substrate consists of 18 digits of the mechanical portion of the established coding scheme MICLASS. The automated GT code generator consists of procedures which correspond to the individual GT code digits. Each procedure maps the values of one or more product design attributes to the corresponding digit values. Our approach consists of two types of mapping procedures:
1.	Direct Mapping procedures generate GT digits directly from the information captured in the product model. Information not contained in the product model (for example, production quantity and geometric tolerances) is provided interactively.
2.	Indirect Mapping procedures first determine design attributes by reasoning about the product design. Subsequently, these procedures map the derived attribute values to the corresponding GT digits. 
7.	Conclusions 
This paper presented the generation of the Group Technology codes for part designs over the Internet. Our approach uses a STEP-based product information model for exchange of product information between designers and manufacturing service providers through an Internet broker in a distributed manufacturing environment. 
We have developed a Feature Based Design tool in a commercial CAD system for the generation of mechanical parts.  The CAD design is automatically translated into a standard STEP file representation. The STEP file is transferred through a broker to the GT code service provider from the designer and the object oriented product database is populated at the service provider’s site.  A Java applet is used to collect additional information from the designer via WWW for the generation of GT code.  The GT code service provider uses the object oriented product database along with the collected information to generate GT code of the product and sends it back to the designer.  
GT code can be used to conduct an efficient search for similar products manufacturing by geographically distributed partners and to obtain useful feedback on manufacturing processes, production times, costs, and quality attributes of these products. However, the GT code generation process is a slow and inconsistent procedure. We have found the wide-spread WWW provides a powerful and practical alternative to automatically generate GT code in a distributed manufacturing environment.  Furthermore, automated GT code generators typically require extensive interactions with users, we have found that dedicated communication channels provide a better solution than the traditional communication method, html forms and Perl. 

References
[1]  Allen, D., Smith, P., “Part Classification and Coding”, Monograph No. 3. CAM software laboratory, Brigham Young University, 1988.
[2] Bhadra, A., Fischer, G.W., “A New GT Classification Approach: A Database with Graphical Dimensions,” Manufacturing Review, vol. 1, no. 1, pp. 44-49, March 1988.
[3]  Bond, A., Jain, R., “The Formal Definition and Automatic Extraction of Group Technology Codes,” Proceedings of the ASME Computers in Engineering Conference, pp. 537-542, 1988.
[4]  Candadai, A., Herrmann, J.W., Minis, I. E., "Applications of Group Technology in Agile Manufacturing," Journal of Intelligent Manufacturing, vol. 7, pp. 271-291, 1996. 
[5]  Candadai, A., Herrmann, J.W., Lam, G., Lin, E., Minis, I., Nagi, R., Ramachandran, V., "Optimal Selection of Partners in Agile Manufacturing", Final Report, U.S. Army Tank-Automotive Command contract DAAE07-93-C-R086, University of Maryland, College Park, Maryland, 1995. 
[6]  Chen, C., “A Form Feature Oriented Coding Scheme,”. Proceedings of the 11th Annual Conference on Computers and Industrial Engineering, pp. 227-233, 1989.
[7]  Cutkosky, R., Mark, Frost, H., Robert, “Design for Manufacturability via Agent Interaction,” Proceedings of the 1996 ASME Design Engineering Conference, August 18-22, Irvine, California, 96-DETC/DFM-1302.
[8]  Ham, I., Marion, D., Rubinovich, J., “Developing a Group Technology Coding and Classification Schem,”. Industrial Engineering, Volume 18, No. 7, pp. 90-97, 1986.
[9]  Harhalakis, G., Kinsey, A., Minis, I., “Automated Group Technology Coding and Classification using PDES,” Proceedings on the third International Conference on Computer Integrated Manufacturing, Rennsealer Polytechnic Institute, Troy, New York, 1992.
[10]  Henderson, M., Musti, S., “Automated Group Technology Part Coding from a Three-Dimensional CAD Database,”. Journal of Engineering in Industry, Vol. 110, No.3, pp. 278-287, 1988.
[11]  International Standards Organization, “Integrated Resources: Geometric and Topological Representation,”  ISO 10303-42, 1993.
[12]  International Standards Organization, “Integrated Resources: Form Features,” ISO 10303-48, 1993.
[13]  International Standards Organization, “Integrated Resources: Application Protocol,”  ISO 10303-203, 1993.
[14]  International Standards Organization, “Exchange Structure,”  ISO 10303-21, 1993.
[15]  Lee, J. S., Chang, K. J., Lichten, L., “Linking Expert Group Technology with Parametric Design,” ASME International Computers in Engineering Conference, Minneapolis, Minnesota, Vol. 2, pp. 931-936, September 1994.
[16]  Nagi, R., Iyer, S., "Identification of Similar Parts in Agile Manufacturing," ASME Winter Annual Meeting, Chicago, Illinois, December 1994.
[17]  Shah, J.J., Bhatnagar, A., “Group Technology Classification from Feature Based Geometric Models,” Manufacturing Review, Vol. 2, No. 3, pp. 204-213, 1989.
[18]  Smith, C. and Paul, Wright, “CyberCut: A WWW Based Design to Manufacturing Tool,” http://kingkong.me.berkeley.edu/~smythe/school/cybercut.html, 1996.