p FE2 ¼ f; ›ðFE1 Þ >p ›ðFE2 Þ – f; ›ðFE2 Þ >p ›ðP2 Þ – f
FE2 overlaps FE1
FE1 – S
FE1 >p FE2 – f; ›ðFE1 Þ >p ›ðFE2 Þ – f; FE1 FE2 ; FE2 FE1 ; ›ðFE2 Þ 2p FE1 – f:
FE2 nests on FE1
FE1 ¼ S (1) FE1 – S (2) Both of FE1 and FE2 are either subtractive or additive (1) FE1 – S (2) One of FE1 and FE2 is subtractive, and another one is additive FE2 is a transition feature of FE1 such as a round edge feature, fillet or chamfer
FE1 >p FE2 – f or ›ðFE1 Þ >p ›ðFE2 Þ – f: ›ðFE1 Þ >p ›ðFE2 Þ – f; ›ðFE2 Þ >p ›ðP2 Þ ¼ f
FE2 is constrained with FE1
Graph representation
FE1 >p FE2 – f; ›ðFE1 Þ >p ›ðFE2 Þ – f; ðP2 >p FE2 Þ , FE1 for a subtractive FE1 ; or FE2 , FE1 for an additive FE1 FE2 , FE1
There are some semantic or geometric constraints between the entities in FE1 and FE2 such as co-planar, co-existence, co-axis, replicated creation, or virtually linking
Added, Deleted, Updated, or Unchanged as well. The data structure of faces in an object event for an Updated feature includes two types: (1) for faces that are Added and Updated, the IDs of faces and faces objects are filled into the structure of the object events; and (2) for faces that are Deleted and Unchanged, only their IDs are filled into the events for information deletion or keeping. The details for defining event structures are given in Section 5.2. The flowchart of the above operations is shown in Fig. 5. A few examples to illustrate the feature manipulation operations are shown in Figs. 6– 8. In Fig. 6 (a) and (b), a new feature-FE is added to an intermediate part with eight features, and FE nests on an existing feature FE1 : The features in the part are differentiated as Added, Updated and Unchanged as shown in Fig. 6(c). In Fig. 6(d), the process of differentiating the faces of the Updated feature-FE1 is shown. In Fig. 7, two features deleted from a part, respectively, are used to show the feature manipulation operations. In (a) and (b), features in the part and the F2F_Graph of these features are illustrated. In (c), for the deletion of FE4 that nests on FE1 and has non-interacting relationships with other features, FE4 is Deleted and FE1 is Updated while other features are Unchanged. The faces of the Updated FE1 are classified further as Updated and Unchanged in (d). In (e), for the deleted FE1 ; the differentiated features include: (1) FE4 nests on and FE2 =FE3 have the constraining
relationship of co-existence with it, and FE1 itself are categorised as Deleted; (2) FE1 nests on S so that S is Updated; and (3) the other features having non-interacting relationships are Unchanged. In (f), the differentiation process of the faces in the Updated FE1 is shown. In Fig. 8, two features in a part are edited, respectively, and the differentiation processes are shown. Features in the part and the F2F_Graph of these features are illustrated in (a) and (b). A featureFE13 in the part is edited and its interacting features are highlighted in (c). The classified features are shown in (d), in which the Updated features include FE13 ; FE1 ; FE2 and S; and the other features that have noninteracting relationships with FE13 are Unchanged. With the changes to the position parameters of FE9 in (e), its constrained FE10 ; FE11 and FE12 ; and the adjacent FE5 =FE6 ; and FE9 itself are categorised as Updated, while the other features that are not interacted with the updated FE9 are Unchanged in (f).
5. Distributed and collaboration mechanisms 5.1. Communication mechanism for distributed design In this research, the establishment of the distributed design environment is based on the Java Remote Method Invocation (RMI). According to the RMI mechanism, through declaring remote interfaces, methods inherited
786
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
Fig. 3. Examples of relationships between interacting features—FE1 and FE2 :
from them and implemented can be used for remote calling and transmitting information. Some remote interfaces defined in the environment are shown in Fig. 9. A three-layer inheritance mechanism for defining events is designed to take advantage of the object-oriented concept and provide a structural and extensible way to wrap various information communicated in the distributed environment. According to Java specifications, in order to communicate in a network, the defined events should be ‘Serialisable’. In the first layer, a supper class for events,
which inherits the Serialisable class of the Java language, is defined and its sub-classes in the other two layers are automatically Seriablisable. On the other hand, the upper class provides a unified event variable sent or received by the remote methods declared in the remote interfaces of the distributed environment so as to simplify the system structure. The event classes in the second layer, which extend the supper event class, are classified into the following four types mainly:
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
787
Fig. 4. The working processes for modelling a part.
1. Parameter event for a design feature. This event, which is generated in a client, is used to wrap the parameters for a feature or a set of selected revealed faces for local operations on an existing feature. This event is dispatched to the server for creating a feature represented by a B-Rep object. 2. Object event for a design feature. This event wraps the revealed faces in a feature and one or more events (since one or more features might be involved due the editing of a feature) from the server are sent back to the clients for visualisation and manipulation.
3. Object event for a design part. The features of a design part are wrapped in this event to be dispatched from a client to the CAPP module for analysis. 4. Process plan event for a design part. This event is generated by the CAPP module to bind the generated process plans for a request from a client. Each event provides a common structure to represent information generated and manipulated in each part of the distributed environment. However, for each event type there are some variations due to different conditions.
Fig. 5. Feature manipulation operations in the environment.
788
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
Fig. 6. An example for the feature manipulation operations: a feature is added.
For example, the current system provides three kinds of methods to create a box—(starting_point, ending_point), (starting_points, length, width, depth), and (direction_axis, starting_point, length, width, depth). In order to represent these information in a more flexible and extensible way, classes in the third layer are developed to inherit the respective classes in the second layer and include the details of information and variables. Some information in the events defined in the environment is shown in Fig. 10. The procedures of invoking remote methods are unidirectional in a basic RMI mechanism, i.e. a client must look up a server and call its remote methods. In an Intranet environment, in order to enable clients to update design information only when the server has a new event to communicate, instead of routinely pinging the server for information and creating a network backlog, a ‘call-back’ mechanism can be employed to achieve a high-performance and robust server activity. The working process based on the call-back mechanism is described as follows and depicted in Fig. 11. 1. A list is created in a working session maintained by the session manager to store the references of design clients that have joined the session. 2. With an input of parameters for a feature, a parameter event is generated in a client. Through invoking one of
the server methods—push_Event(Event e), such an event is received and handled by the server. After an object event has been created and is ready for broadcasting from the server, each client recorded in the reference list is activated to receive the event by invoking one of the clients’ remote methods—receive_Event(). 3. Through the server, communication can be carried out between a design client and the required CAPP module (registered as a ‘client’ in the service workspace of the server in the term of the client/server technology). The object event for a design part indicated by a design client is passed to the CAPP module from the server through calling-back the method—capp(Event e) exposed in the remote interfaces of the service side. The part can then be analysed and a process plan event for a design part can be generated. Through calling one of the server methods—push_Event(Event e) by the service, and calling back one of the design client methods—receive_Event(Event e) by the server, the relevant information can be obtained by the client. Firewalls, which are applied between an enterprise’s Intranet and the Internet as the sheltering confines of the internal information, block all network traffic beyond the Intranet with the exception of those intended for certain well-known ports such as the HTTP 80 port. Due the mechanism of the dynamic socket connections, the RMI
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
789
Fig. 7. Examples for the feature manipulation operations: two feature are deleted, respectively.
traffic is typically blocked by most of firewalls. In order to address this problem, an ‘HTTP tunneling’ mechanism has been introduced by Sun Micro. [34] to encapsulate RMI calls within an HTPP POST request to go cross the 80 port. In this case, the call-back mechanism is de-activated and replaced by the basic RMI mechanism—pinging the server from clients for information updating, which is usually up to 10 times slow. Hence, depending on the condition of a client stay inside or outside of the firewall of the server,
the call-back- or HTTP tunneling-based working process are available to choose from. 5.2. Mechanism for collaborative design The process of designing a part collaboratively in the environment is depicted in Fig. 12. On the server side, a working session can be dynamically created and accessed by clients to provide a workspace to carry out
790
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
Fig. 8. Examples for the feature manipulation operations: two features are edited, respectively.
collaborative design activities, in which clients can play different roles and take on different responsibilities. Designers participating in the same session can share the same design model.
Within a session, a ‘control baton’ mechanism is employed to control and schedule the collaborative activity. Each session has a control baton, that is, at any one time, only the user who holds the control baton
Fig. 9. Remote interfaces in the distributed environment.
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
791
Fig. 10. Three-layer inheritance mechanism for defining events in the environment.
is the active designer and can edit a part; while the other users in the same session only receive the updated information and are observers. The user who is carrying out the editing function can become an observer by transferring his control baton to another user. A project leader is responsible to supervise the whole design process. This project leader is authorised to schedule the process to avoid unreasonable monopoly of the control baton and deadlocks due to network problems. The design process based on a control baton mechanism is shown in Fig. 13. 5.3. Manufacturing analysis modules Downstream manufacturing analysis modules can be plugged into the system to support CE design. These modules are designed as clients and registered into
the service workspace in the server when the system initialised, and their workflow is arranged in the workspace. Currently the CAPP module with four alternative methods—Genetic Algorithm, Simulated Annealing, Tabu Search and hybrid Genetic Algorithm and Simulated Annealing, has been developed in Java and integrated in the distributed environment [35,36]. With the CAPP, the activities of selecting machining resources, determining setup plans, and sequencing machining operations can be considered simultaneously so as to achieve the globally lowest machining cost according to a combined evaluation criterion of minimising machining costs, cutting tool costs, machine changes, and tool and setup changes. The other two modules, namely, the machining feature recognition [37,38] and manufacturability analysis [39] modules, will be integrated in future.
792
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
Fig. 11. The working process for the ‘call-back’ mechanism.
A three-layer architecture, including remote interfaces, abstract methods defined in abstract classes, and detailed class and method implementations, is designed. With the abstract methods defined for the analysis modules in the middle layer, which idea is similar to [26], the modules that are not integrated yet, viz., machining feature recognition and manufacturability analysis, can be
implemented and join the environment later without reinitialising the whole system. Details of the architecture are given in Fig. 14.
6. A case study The environment has been established based on the JDK 1.4 and Open CASCADE 4.0. A practical part from
Fig. 12. Process of carrying out a design task in the environment.
Fig. 13. The control process of designing a part through a ‘control baton’.
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
Fig. 14. A three-layer architecture for downstream analysis modules.
793
Ref. [40] is used to illustrate the co-design processes of three designers in the proposed environment. Fig. 15(a) shows the viewer on the client side and the design part in it. During the modelling process by a designer, the relevant intermediate information is packaged as events and shared with other designers automatically in a design session through the event-driven and call-back mechanisms. In the viewer on the client side, each designer has the freedom to adjust some viewing properties of the part such as the colour, viewing position and background for his/her visualisation convenience and preference. Fig. 15(b) shows the features and the PC_Tree of the part, in which FE4 – FE8 consist of several individual features, respectively, and these individual features have constraints with each other to constitute compound features.
Fig. 15. A case study for designing a part in the distributed environment.
794
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
Fig. 16. The differentiation process for the adding of FE7 in the intermediate part.
Fig. 15(c) shows a discussion pad and a session manager in the environment. In the session manager, designers can log on/off a session and the control baton can be exchanged. During the working process of a designer, a discussion pad can be invoked by any other designers in the design session to make some comments or discussions based on a captured picture of the design part. Designers can chat through text or label the picture for sharing ideas. A CAPP module can be invoked by a designer with the control baton and the feedback results are shown in Fig. 15(d). 1. Designer 1 holds the control baton and models the part. As an example, the intermediate process for adding FE7 is shown in Fig. 16. The size of the B-Rep of the part is about 964k, while the size of the face-based representation of the part is reduced to 595k. The size of the Added and Updated faces in the features, which are the major information in the object events for features to transmit from the server to clients, is about 255k. Three parameters are defined to represent the data reduction from three perspectives: 8 A1¼face-basedrepresentation=B-Rep; > > < A2¼AddedandUpdatedfaces=face-basedrepresentation; > > : A3¼AddedandUpdatedface=B-Rep: Among them, A3 reflects actual reduction percentage of the reduced communication traffic for a part in B-Rep from the server side to the client sides. For the intermediate part at this stage, A1, A2 and A3 are about 61.7, 42.9 and 26.5%, respectively. A1, A2 and A3 for the intermediate processes are shown in Fig. 17, and their mean values are about 70, 40 and 30%, respectively. More experiments have been done and show that to utilise the proposed feature manipulation operations and
the feature representation mechanism, the reduction percentage of the reduced communication traffic for the design parts (A3) in the environment is roughly about 20 – 40% of the original data in B-Reps. 2. After Designer 1 finishes the modelling process, Designer 2 acquires the control baton and makes a modification on the part-to thicken FE6 to enhance its strength. FE6 consists of two constrained features and the adjustment of a feature will affect the other. FE6 is adjacent to S and FE1 : During the modification of FE6 ; the revealed faces of S are updated while the revealed faces in FE1 are kept unchanged. Hence, the Updated features in this stage include FE6 and S; and the other features are Unchanged. A1, A2 and A3 are 58.5, 13.8 and 6.3%, respectively. Some results are illustrated in Fig. 18. 3. After the above processes, Designer 3 obtains the control baton and arranges alternative machines and tools for the machining operations of the features for selection. The remote CAPP analysis module is requested by this designer and the machining cost of the optimised machining operations sequence and ideal
Fig. 17. The percentages of reduction of the represented and transmitted information.
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797
795
Fig. 18. The differentiation process for the edition of FE6 in the part.
machining resources can be achieved (due to the limitation of the space, these results are not shown here).
7. Conclusions In this paper, a distributed environment based on the 3D feature-based modelling and Java client/server technologies has been discussed to support collaborative design. Based on these mechanisms, a distributed teamwork environment for 3D design can be built for practical usage. In this paper, the main characteristics of the distributed environment include: 1. Feature models are organised according to a manipulation client þ modelling server scenario, in which models used by the clients are based on a face-based representation to provide visualisation and support some manipulation functions for a part (such as entity selections or translations), and a server supports the modelling functions and maintains primary feature trees based on the B-Rep for the part. Based on feature-tofeature relationships, a manipulation method is used to facilitate efficient information exchange for large-size 3D models in the distributed environment; 2. High performance communications between a collaborative server and clients are maintained based on an event-driven mechanism. The collaborative server can create and manage dynamic sessions. In each session, clients can play different roles for a design task, with a scenario similar to the actual teamwork situation. The environment is open and scalable to manufacturing analysis modules to support CE. There are still some technical problems to be addressed later. The functions of the discussion pad and message server
in the environment should be further enhanced in future to support multimedia communication functions. The current information management on the server is through a file system, which can be replaced by a database system in future so as to maintain the information more efficiently and effectively. Another attempt will be to develop a web-based viewer based on a mesh simplification algorithm for generating different levels of detailed visualisation information of mechanical parts [41] to support some on-line web-based services such as high-level product review and manipulation.
References [1] Pauly A. CPC: the next wave in collaborative design. Autodesk Technical Report; 2002. Also available at www.industrysearch.com. au/features/collaboration.asp [2] Open CASCADEe 3D Modelling Kernel. Open CASCADE Inc.; 2002. www.opencascade.com [3] Hoops Stream Toolkite Hoops Inc.; 2001. www.hoops.com [4] VizStreame RealityWave Inc.; 2001. www.realitywave.com [5] CollabCADe National Informatics Centre, India; 2001. www. collabcad.com [6] Nam TJ, Wright DK. CollIDE: a shared 3D workspace for CAD. Proceedings of the 1998 Conference on Network Entities, Leeds, UK; 1998. p. 389–400. [7] Qiang L, Zhang YF, Nee AYC. A distributed and collaborative concurrent product design system through the WWW/Internet. Int J Adv Manufact Technol 2001;17(5):315–22. [8] Pahng GDF, Senin N, Wallace D. Distributed modeling and evaluation of product design problems. Comput-Aided Des 1998; 30(6):411–23. [9] IX Designe ImpactXoft Inc.; 2001. www.impactxoft.com [10] Alibre Designe Alibre Inc.; 2001. www.alibre.com [11] GS-Designe GS-Design Inc.; 2001. www.gs-design.com [12] Li WD, Ong SK, Nee AYC. Establishment of a distributed design environment. Proceedings of the Ninth ISPE International Conference on Concurrent Engineering: Research and Applications, UK; 2002. p. 605–12. [13] Li WD, Lu YQ, Zhou H, Ong SK, Nee AYC, Fuh JYH, Wong YS. A distributed feature-based environment for collaborative design. Proceedings of the Sixth World Multiconference on Systemics,
796
[14] [15]
[16]
[17] [18]
[19]
[20]
[21]
[22] [23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32] [33]
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797 Cybernetics and Informatics, Orlando, FL, USA, vol. XII.; 2002. p. 69-74. OneSpacee CoCreate Inc.; 2000. www.onespace.com van den Berg E, Bidarra R, Bronsvoort WF. Web-based interaction on feature models. Proceedings of the Seventh IFIP WG 5.2 Workshop on Geometric Modelling: Fundamentals and Applications, Parma, Italy; 2000. p. 319–20. Begole J, Struble CA, Shaffer CA. Leveraging Java applets: toward collaboration transparency in Java. IEEE Internet Comput 1997;1-2: 57–64. Inventore collaboration tools. Autodesk Inc.; 2001. www.autodesk.com Wu D, Sarma R. Dynamic segmentation and incremental editing of boundary representations in a collaborative design environment. Proceedings of the Sixth ACM Solid Modeling’01, Michigan, USA; 2001. p. 289–300. Lee JY, Kim H, Han SB, Park SB. Network-centric feature-based modelling. Proceedings of the Pacific Graphics’99, South Korea; 1999. p. 280–9. Shyamsundar N, Gadh R. Internet-based collaborative product design with assembly features and virtual design spaces. Comput-Aided Des 2001;33:637 –51. Brglez F. Vela project—globally distributed microsystem design— proof of concept: demo summaries of the 1998 DAC exhibition in the university booth. Technical Report 1998-TR@CBL-07-DACdemo, CS Departmentt, North Carolina State University; 1998. Also available at http://www.cbl.ncsu.edu/publications_misc/ 1999-EETimes-vela.pdf Liu XD. CFACA: component framework for feature-based design and process planning. Comput-Aided Des 2000;32(7):397 –408. Chen YM, Liang MW. Design and implementation of a collaborative engineering information system for allied concurrent engineering. Int J Comput Integr Manufact 2000;13(1):11–30. Jacquel D, Salmon J. Design for manufacturability: a feature-based agent-driven approach. J Engng Manufact, Proc Inst Mech Engrs Part B 2000;214(10):865–80. Shen WM, Maturana F, Norrie DH, MetaMorph II: . an agent-based architecture for distributed intelligent design and manufacturing. J Intell Manufact 2000;11:237–51. Gerhard JF, Rosen D, Allen JK, Mistree F. A distributed product realization environment for design and manufacturing. ASME J Comput Inform Sci Engng 2001;1(3):235– 44. Sung HA, Sundararajan V, Smith C, Kannan B, D’Souza R, Sun GP, Mohole A, Wright PK, Kim JH, McMains S, Smith J, Se´quin CH. CyberCut: an Internet-based CAD/CAD system. Trans ASME, J Comput Inform Sci Engng 2001;1:52–9. Sun J, Zhang YF, Nee AYC. A distributed multi-agent environment for product design and manufacturing planning. Int J Prod Res 2001; 39(4):625– 45. Wu SH, Fuh JYH, Nee AYC. Concurrent process planning and scheduling in distributed virtual manufacturing. IIE Trans 2002;34(1): 77–89. Nidamarthi S, Allen RH, Sriram RD. Observations from supplementing the traditional design process via Internet-based collaboration tool. Int J Comput Integ Manufact 2001;14(1):95–107. Cheng K, Pan PY, Harrison DK. Web-based design and manufacturing support systems: implementation perspectives. Int J Comput Integr Manufact 2001;14(1):14–27. Zhao FL, Tso SK, Wu PSY. A cooperative agent modelling approach for process planning. Comput Ind 2000;41(1):83–97. Ming XG, Ni QF, Lu WF, Lee IBH, Fu MW, Ong SK, Nee AYC. Towards collaboratively integrated manufacturing system for tooling production in SMEs—the INPROSE approach. Proceedings of the 9th ISPE International Conference on Concurrent Engineering: Research and Applications, UK; 2002. p. 465–74.
[34] Grosso W. Java RMI-designing and building distributed applications. USA: O’Reilly and Associates; 2001. [35] Li WD, Ong SK, Nee AYC. Hybrid genetic algorithm and simulated annealing approach for the optimisation of process plans for prismatic parts. Int J Prod Res 1922;40(8):1899– 922. [36] Li WD, Ong SK, Nee AYC. Optimisation of process plans using a constraint-based tabu search approach. Int J Prod Res (revised); 2003. [37] Li WD, Ong SK, Nee AYC. Recognising manufacturing features from a design-by-feature model. Comput-Aided Des 2002;34(11): 849 –68. [38] Li WD, Ong SK, Nee AYC. Recognising interacting machining features using a hybrid AI methods. Int J Prod Res 2003;41(9): 1887–908. [39] Ong SK, Li WD, Nee AYC. STEP-based integration of feature recognition and design-by-feature for manufacturing applications in a concurrent engineering environment. Int J Comput Appl Technol 2003;18(1):78– 92. [40] Shah JJ, Mantyla M, Nau DS. Advances in feature based manufacturing. Amsterdam: Elsevier; 1994. [41] Qiu ZM, Fuh YH, Wong YS, Chen YP, Zhou ZD, Lu YQ, Li WD. Geometric model simplification for distributed CAD. Comput-Aided Des 2003; in press. Li is a research fellow at the Singapore Institute of Manufacturing Technology (SIMTech). He obtained his BE and ME degrees (Electro-Mech Engng) from Xidian University, Xi’an, China in 1992 and 1995, respectively, and PhD degree (Mech. Engng) from National University of Singapore (NUS) in 2002. His research interests include intelligent and collaborative design/manufacturing, feature-based modeling and computer-aided process planning.
Ong is an assistant professor in the Department of Mechanical Engineering of NUS. She is the program manager for the Virtual Manufacturing Program in the Laboratory for Concurrent Engineering and Logistics in the Faculty of Engineering. Her research interests are: virtual manufacturing, applications of AI techniques in concurrent engineering, computer-aided set-up planning, life cycle engineering, and environment impact assessment. She has published about 60 international refereed journals and conference papers in these areas.
Fuh is an associate professor in the department of Mechanical Engineering of NUS. He obtained his BS (Mech Engng) from National Chia-Tung University in 1980 and MBA from National Taiwan University in 1982, and MS and PhD (Mech Engng) degrees from University of California at Los Angeles (UCLA) in 1985 and 1992, respectively. His research interests include distributed CAD, intelligent manufacturing, rapid prototyping technologies and injection mould design.
W.D. Li et al. / Computer-Aided Design 36 (2004) 775–797 Wong is an associate professor in the Department of Mechanical Engineering and Director of the Laboratory for Concurrent Engineering and Logistics, NUS. He obtained his BE (honours) and ME at NUS and PhD at UMIST. His teaching and research interests are in machining characterization, modeling, monitoring, control and optimization; product data capture, prototyping, design and manufacture; and automated and integrated manufacturing system modeling and design.
Lu is a research scientist and a program head at SIMTech. He has led several product development projects in CAD/CAM application areas. His research interests include codesign for distributed designers, CAD/CAM/ CAE integration, design automation for tooling industry, and new geometric modeling technology.
797
Nee is a professor of manufacturing engineering, NUS and the Co-Director of the Singapore-MIT Alliance (SMA) Program. His research interest is in computer applications to tool, die, fixture design and planning, intelligent and distributed manufacturing systems, and application of AI techniques in manufacturing. He currently held regional editorship, department editorship, associate editorship and member of editorial board of 14 international journals in the field of manufacturing engineering. In 2002, he was awarded the Doctor of Engineering (DEngng) degree from UMIST for his research achievements in manufacturing engineering.