. as; E .v . a .... ... u . .7... .2 $43.??? .6? . . .Mmama, ..., .m» was .m... . 4. . r. .35 , . . . ...; . 2......“ . .... haggcnd. ..urn’anr Akfrimunw... . . M959. 5...“. ...... II I a! z 4 u: Akin ...... "If! . .r. . . 9...». .. mimw .P.l\ MP .9: ‘4. .1?! x . . . kit u. . .7 .. ...“waxug . . HI... .’v.§n)‘4 . .1. h‘“ t 4 ...:w.§tt§ {3.3 ...uawumnruanfl 1.. 1...... r. ff. xxcl.‘ :7 in: .. (Gillan) ..lr . «admin 7...... Infill..- ) 2411.3..«3 .|.Lan!D! 14%;“. .. . .... 2.3.5. ... <3 - if. 1...!!!" >I,.\ . ‘3’... .... IA 50. ib‘vxnnk: 5" n.3,!"vl2312i. . iii.- A ~II . 39%;... l r . 'L. ’2»‘. v. . xl.0 .I 2". .u... r. ...», -., . a: ... ..."...thflosSLLLhmmn...‘ ...}...isiflthi z. ! I i, ...... -... ...ut)..i.z.§nfiflu»n.15gfiunfl!new11..wmmflfiu. , . . l .3... .th9g 1.. L. ..-- . «$92.... I‘lI w. 1,.‘r'fl‘313 -~-‘.‘t\.‘ ‘3) R 95. IMillillllllllllllI L! :3 *2 A W n' . -. .,. c4 .1. -,. 1. ~ , _,‘ t ,."I\ E13; ' 95‘3“" h wtfgi‘...’ 'f‘jg University Thisistoceififythntthe thesis entitled Internet-Based Design/Manufacturing Process Management presented by Hun Gu has been accepted towards fulfillment of the requirements for may“ inMsszlmiss W game, Major mfasor Date N92, 9. 1292 0-7639 MS U is at 407m ActiaI/Equd Opportunity Institution Internet-Based Design/Manufacturing Process Management By Hua Gu A DISSERTATION Submitted to Michigan State University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Department of Material Science and Mechanics 1999 ABSTRACT INTERNET-BASED DESIGN/MANUFACTURING PROCESS MANAGEMENT By Hua Gu Competition in mechanical engineering today demands ever-faster product development, hence ever-shorter design cycles, which may be achieved by efi'rciently rearranging design and manufacturing processes. The necessity of such management depends on adjusting design process to accommodate constraints and frequently updating them to make full use of the new design tools and methodologies. Meanwhile, it is also a trend that design and manufacturing processes or activities are modularized and integrated in a geographically distributed environment. In response to the growing demand for a robust infrastructure that coordinates design and manufacturing activities, this thesis presents a web-based engineering framework, which coordinates various CAD/CAM and FEM systems, provides product data relationships, and integrates with manufacturing processes. In this thesis, the current capabilities of the framework are demonstrated in conjunction with benchmark studies on functionally gradient materials (FGMs) design, and the design and manufacturing of a gearbox In FGMs design, a design approach is represented using the framework to obtain the distribution of the reinforcing phase that minimizes the stresses in axisymmetric bodies subjected to temperature gradients and pressure differentials. In the design and manufacturing process of a gearbox, the framework autonomously performs a series of stress and fatigue analyses and searches for a set of parts that satisfy various requirements. It is also verified that the framework is capable of integrating seamlessly the design results with manufacturing operations by selecting cutting tools, machining conditions, and sequence of operations. The framework enables users to check the results ranging from graphical display of the design to the CNC code generated to machine the designed shafts. © Copyright 1999 by Hua Gu All Rights Reserved To my wife Ying Acknowledgements I would like to take this opportunity to express my appreciation to a number of people, without whom my thesis could never have been completed First, my sincere gratitude goes to my advisor, Dr. Patrick Kwon. Dr. Kwon has been my advisor since my enrollment at Michigan State University. He has taught me many things in mechanics and manufacturing. He provided me with valuable guidance, the influence of which on my personal and technical development will be carried forward into my future endeavors. Second, I cherish very much the advice from my co-advisor, Dr. Moon-Jung Chung. Dr. Chung provided valuable advice in the computer science domain helping me with my cross-disciplinary research. I would also like to thank Dr. Ronald Averill for giving me advice and encouragement, and for serving as member of my thesis committee. It is also a very pleasant experience to work with my fellow students, Dave Kcyes, Behr Markus, Kuk-Jin Lee, and Lihua Chen. I sincerely appreciate the help, encouragement, and friendship from them. Last, but not least, I proudly share this accomplishment with my wife, Ying Sun. I would also like to thank her for her everlasting support, patience, and love. vi Table of Contents List of Tables ................................................................................ x List of Figures ............................................................................... xi Chapter 1. Introduction 1 1.2. Engineering Design 2 1.3. Concurrent Engineer 4 1.4. Manufacturing Process 5 1.4.1 Introduction .................................................................. 5 1.4.2 Machining Process Automation 6 1.5. CAD, CAM and Integrated CAD/CAM 7 1.5.1 Computer-Aided Design (CAD) 7 1.5.2 Computer-Aided Manufacturing 8 1.5.3 CAD/CAM Integration 9 1.6 Mechanics Analysis Process ......................................................... 10 1.7 The Internet 10 1.7.1 Data Communication 10 1.7.2 Networking and Internet 11 Chapter 2. Process Management for Design/Manufacturing and Mechanics Analysrs l3 211ntroductron 13 2.2. Automated Design/Manufacturing Process and Mechanics Analysis... . .. . . . 15 2.3. Why Java 18 2.4 State of the Art ......................................................................... 21 vii 2.5 The MIDAS System .................................................................... Chapter 3. Design/Manufacturing Process Management Framework 3.1. Introduction 3.2. System Architecture 3.3. System Cockpit 3.4. External Tools 3.5. Representation ofa Process Flow 3.5.1 Basic Elements ofA Process 3.5.2 Process Grammar ...................................................................................... Chapter 4. Benchmark I -- Gearbox Design and Manufacturing ............... 4.1. Overview 4.2.1. Pre-selectron 4.2.2. Gear/Pinion/Shaft Selection 4.2.3. Material Selection 4.2.4. Static Analysis 4.2.4.1. Static Forces 4.2.4.2. Stress Analysis 4.2.5. Bearing Selectron 4.2.6. Fatigue Analysrs 4.2.6.1. Surface Factor .. 4.2.6.2. Size Factor 4.2.6.3. Reliability Factor 4.2.6.4 Goodman line and Stress Concentration 4.3. Manufacturing 4.3.1. Solid Modeling 4.3.2. Manufacturing 4.4. Conclusions viii 21 23 23 23 24 27 33 33 35 37 37 4o 40 41 45 46 46 49 52 54 55 56 56 57 60 6o 63 63 Chapter 5 Benchmark II - Design of Functionally Gradient Materials ....... 64 5.1 Introduction ............................................................................. 64 5.2 Efi‘ective Properties .................................................................. 65 5.2.1 Elastic Properties ............................................................ 65 5.2.2 Thermal Expansion Coefficient ............................................ 67 5.2.3 Thermal Conductivity ....................................................... 67 5.2.4 Homogcnization of Inhomogeneous Properties .......................... 68 5.3 Formulation ........................................................................... 69 5.4. Materials ............................................................................... 72 5.5 "Multiple-version" Process Flow .................................................... 72 5.6 Thermal Loading and Internal Pressure ............................................. 75 5.6.1 Thermal Loading ............................................................. 75 5.6.2 Internal Pressure .............................................................. 76 5.7 Conclusions ............................ . ................................................. 77 Chapter 6. Conclusions 78 6.1. Contributions 78 6.2. Future Work ................................................................................................. 80 Appendix A. Sample HTML File Used to Invoke the Remote Servers and the MIDAS Framework’s Java Applet ............................. 84 Appendix B. Sample Unix Shell Scripts Used to Invoke Remote Servers Through CGI ................................................................ 85 Appendix C. Major Applet Class ......................................................... 87 Appendix D. Sample Code of the Interface Between the Framework and Tools ...94 Appendix E. Sample Execution Procedure and the Input/Output ..................... 124 References ..................................................................................... 127 ix List of Tables Table-1 Material Factors .................................................................... 41 Table-2 Pressure vs (Df ...................................................................... 41 Table-3 Pitch vs maximum operational tangential tooth load ......................... 42 Table-4 Radial and Thrust Factors ......................................................... 54 Table-5. k, - R relationship ................................................................ 56 Table-6 Room temperature properties of matrix and reinforcement ................... 72 Table—7 Second-phase distribution functions used ...................................... 73 List of Figures Figure-1. Basic module in the design process (after Asomow) 3 Figure-2. Model of Concurrent Engineering (after Dieter) 4 Figure-3. Product Development Steps 5 Figure-4. Types of Process Management Systems (after Klein) l4 Figure-5. Automated Design/Manufacturing Element 17 Figure-6. System Cockpit 24 Figure-7. Communication Model 31 Figure-8. Graphical Representation 33 Figure-9. Selector and Database 34 Figure-10. An Example ofthe Process Grammar 35 Figure-11. Graphical ofa Logical Task 35 Figure-12. 2-stage Parallel Gear Systems 37 Figure-l3. Two-stage Parallel Gearbox Illustrative Diagram 38 Figure-14. A overall design-manufacturing process flow diagram of gearbox ...... 39 Figure-15. Pressure Angle 42 Figure-16. Concatenation of Gear/Pinion Database and the Shaft Database ...... 45 Figure-l7. Forces and Moment Exerted on a Helical Gear and its Shaft 46 Figure-18. Combined Loading Decomposition ofa Shaft 47 Figure-19. Cross section of a shaft and stress distribution on it ....................... 50 Figure-20. Stresses in the combined loading ............................................. 50 xi Figure-21. Stresses at Dangerous Points 52 Figure-22. The fillet radius of the bearing ring .......................................... 54 Figure-23. Goodman line .................................................................. 57 Figure-24. Interpolation process .......................................................... 58 Figure-25. Solid modeling processes ...................................................... 62 F i gure-26 FMGs design flow chart created by the framework ......................... 74 Figure-27 Temperature fields in three type of FGMs ................................... 75 Figure-28 von Mises stress in three types of FGM ...................................... 76 Figure-29 von Mises stress in FGMs subjected to internal ........................... 77 xii Chapter 1 Introduction 1.1 Design What is design? A dictionary shows a definition which stated that to design is to fashion after a plan. The essence of a design process is to create something, in one way or another, that has never been. In most cases, an engineering designer practices design following that definition[1 ]. From a general point of view, most design problems are typically open-ended and ill-structured. Design problems are open-ended because they usually have more than one acceptable solution. Unlike in many mathematical and analytical problems, the quality of uniqueness, or best solution, simply does not apply. Design problems are ill-structured because their solutions cannot normally be found by routinely applying a mathematical formula in a structural way[2]. Design problems possess these two characteristics because the challenge imposed on design is not only simply to create something that accurately reflects the existing domains. It is also necessary to provide for the creation of new domains and to simultaneously produce and transform objects and regularities of the world that we are concerned with[3]. Given that design has such characteristics, it is no surprise that no single universally acclaimed sequence of steps properly describes a workable design process. However, we still can see that most design processes share certain common steps in its approaches or strategies which include: . Recognition of a need . Definition of a problem . Synthesis and conceptualization . Analysis and optimization . Evaluation . Presentation of the optimal Design Since we have mentioned that design problems are ill-structured, the above steps may be carried out either sequentially or simultaneously . Moreover, feedback of each step may lead to an iteration which is akin to most kinds of design processes. 1.2 Engineering Design In general, we can call any design problem which is involved in any engineering activity an engineering design. It is perhaps the most important and biggest subset in the design realm. Engineering design has some unique features. At very abstract level, we can adopt the definition articulated by Dym and Levitt: Engineering design is the systematic, intelligent generation and evaluation of specifications for artifacts whose form and fimction achieve stated objectives and satisfiz specified constraints[4]. From a practical and simplified point of view, engineering design can be properly illustrated using the basic module by M. Asimow [5]. He viewed the essential aspect of the design process as consisting of the elements shown in the figure(Figure-1) below[1]. A design problem, especially an engineering design problem, can be decomposed into basic modules shown in Figure-1. We adopt this simple model of design process because this very model makes it possible to divide a complex design process into small elements which inherit all general features of design. Thus, computer-based automated management of large design activity is possible because computers are capable of dealing with inheritance. General Information Design Specific Information -—-—> Outcome Operation Rollback . G No j Evaluation = Y . Yes Go to next ste . llt Figure-1. Basic module in the design process (after Asomow) 1.3 Concurrent Engineer Today, design has become a multi-threaded process, which carries more than one child design process concurrently. This very characteristic of modern design requires teamwork approach which is called concurrent engineering(CE) in the creation or improvement of new products. Generally speaking, concurrent engineering, also called simultaneous engineering, is a design approach which incorporates product design and product manufacturing in an intimate way[6]. However, the concurrent engineering concept is more than simply to integrate design and manufacturing at the start of the design process . It can be illustrated using Dieter’s Model(Figure-Z) of concurrent engineering[ 1 ]. Production Sales and < > System Distribution \\ / Desrgn Manufacturing / Figure-2. Model of Concurrent Engineering (after Dieter) According to this model of concurrent engineering, product development should integrate design with other tasks such as manufacturing planning, quality, and marketing. Products are developed more quickly and often at a lower cost with higher quality by simultaneously performing these tasks along with the use of modern design tools. This approach addresses issues pertaining to a product’s entire life cycle. It also typically includes the use of computer tools like computer-aided design, shared databases, and computerized standards to help bring about efficient and accurate communications and to automate the design process as much as possible. In other words, today, concurrent engineering is usually computerized. Computer, as a machine, requires logical or mathematical modeling of a desired product. Thus concurrent engineering’s success is heavily dependent upon the availability of a good standardized description of the components of a product[7]. 1.4 Manufacturing Process 1.4.1 Introduction Generally speaking, even with the use of advanced technology, the approach to product development still involves several steps, each of which must be completed before the next step in design can begin. These steps are listed as follows. ' Design I Prototyping process Planning and Manufacturing Programming . Manufacturing I Figure-3. Product Development Steps At the present time, using the framework implemented in this research, design can be accomplished to such a level that a 3-D solid model can be visually displayed. At the same time, it can convert the model to Stereo Lithographic (STL) format for rapid prototyping. Furthermore, after the tool path has been determined, cutter location data or even the NC codes (still premature) can be generated according to the tool path information for machining. Solid modeling is the step that unifies design and manufacturing seamlessly. Solid model data can also be used as the inputs for a finite- element analysis program. It is also used to conduct generative machining to produce numerical machining code. In this way, design and manufacturing becomes one integrated process. 1.4.2 Machining Process Automation As one of the most commonly used processes today, machining process automation has gained its popularity. There is a strong incentive for manufacturers to increase the level of automation within their operations and by taking advantage of the available software tools. As a way to enable the operation of machines by using a series of computer-based instructions comprised of numbers, letters, and other symbols, numerical control (NC) makes machines run consistently, accurately, predictably, and essentially automatically. Based on the design information, NC programming process mostly and typically consists of five major functions: 1. Creating the geometric model (rapid prototyping can also be done using this model); 2. Establishing the machining process plan; 3. Generating the toolpath; 4. Post-processing; 5. Simulation and verification. 1.5 CAD, CAM and Integrated CAD/CAM The last two decades have witnessed extensive infiltration of computer technologies into the design and manufacturing activities in engineering domains. Starting with simple computer-aided drafting, this process has proceeded towards various levels of sophistication in automated design and manufacturing systems. The purpose of this section is to show readers some basic underlying concepts of CAD, CAM and integrated CAD/CAM processes. Since the framework also has strong impact on automated mechanics analysis processes, main features of mechanics analysis are presented. 1.5.1 Computer-Aided Design (CAD) Computer-aided design is aimed at the engineering design functionality, rather than the less creative drafting function of the industrial enterprise. To a certain extent, modern computer-aided design software usually provides users with drafting utilities with a capability for engineering analysis. A modern computer-aided design system is expected to incorporate a set of analytical tools as well as extensive graphing utilities to fulfil the needs of both design and drafting functions. Implementation of such system will inevitably lead towards the full integration of the entire design-to-manufactrm'ng (DTM) process [8]. In an integrated system, a very direct advantage is that the geometry created in the CAD process can be used as a basis to carry out other functions in computer-aided manufacturing, which will be discussed hereafter. This helps engineers to avoid the waste of time as well as errors resulting from having to redefine the geometry from scratch. 1.5.2 Computer-Aided Manufacturing (CAM) The result of computer-aided design or any other designing processes is a virtual product. CAM deals with the physical work done on the factory floor through which the virtual product is frnally turned into a real product. Factory equipment may consist of robots, multiple-axis machine tools, and programmable controllers, which can be flexibly configured to produce different parts and interconnected to set up a computer-integrated manufacturing (CIM) system. Numerical control (NC) is one of the most mature areas of CAM[9]. The numerical control was introduced much earlier than the introduction of modern CAD and CAM systems. Computerized-numerical-control (CNC) and distribution-numerical-control (DNC) are two derivatives of the NC technology. In a CNC mode, a lathe or a milling machine is controlled by a simple computer using NC code. In DNC mode, an NC-controller receives its program via a communication line hooked up to a remote computer. Originally, the development of CAM systems were mainly conceived to produce the voluminous NC code for numerically controlled machining. Advanced CAM systems have features like assisting the task of process design and implementation of designing modifications, rather than merely generate the NC code. Now, through computer graphics, tool-path motions can be easily verified Computer can thus generate NC code based on the geometric data fi'om the CAD database. In fact, many CAD/CAM systems have this capability routinely built into their software packages. 1.5.3 CAD/CAM Integration Unfortunately, CAM systems have been evolving independently of CAD systems. The separated evolutions resulted in a formidable barrier to the further development of the concurrent systems [10]. Most of the existing CAD systems require high human interaction. Those systems are not designed to be parametric and rule- driven. Responsibility for detailing, dimensioning, tolerancing, and rule-checking is largely under the control of the computer-assisted draftspersons for whom, errors are inevitable to make. To eliminate human errors, interface between CAD and CAM systems was developed to deal with the conversion and transmission of detailed design data. In order to implement such a well-interfaced seamless design-to- manufactm'ing(SDTM) system [11], a preferred approach is to make the system parametric and rule-based. In parametric and rule-based design, designers start with parametric relationships in the prospective design as well as applicable rules and end up with the design as parametric-mathematical representations plus its geometrical model. The procedure of such a designing approach is ideal for computerization and automation. In our research, we build a web-based framework which enables the merger of CAD and CAM processes distributed over the internet. 1.6 Mechanics Analysis Process Mechanics analysis is, to a certain extent, indispensable in most engineering design and manufacturing processes. It shares many common aspects with modern design and manufacturing processes. Most mechanics analyses can be represented either analytically or numerically by mathematical models, which are highly parametric. In other words, most mechanics analyses can be dealt with parametrically. A large-scale mechanics research project may be conducted in different locations using different approaches. For example, an EU (European Union) pressure vessel solar heating research project, may be carried out using analytical methods, FEM and experimental methods in different places for a number of solar conditions. That is to say, researchers in several locations should deal with various cases using different methodologies while sharing different aspects of the project. Thus, communications between different participants is important. Based on these facts, process management methodologies applicable for engineering design and manufacturing processes are suitable for most mechanics analyses and researches. 1.7 The Internet 1.7.1 Data Communication Imagine a scene like this: a human operator goes to a machine and reads the display from its controller, and then goes to another machine to key in the readings into its controller. This typically happens where machines cannot communicate directly. 10 Since most controllers are computerized, point-to-point communication between them is possible and is not too expensive to implement. Such one-to-one data transmission can be accomplished using serial or parallel communication. In short, serial communication allows the 8 bits of a character to be transmitted through one single wire while in parallel communication the 8 bits of each character travel simultaneously on 8 wires. Parallel communication is faster than serial communication. Although these two forms of data communications are inexpensive to implement, they are limited by their communication speed as well as the point-to-point communication topology. Think of a design group with its personnel as well as its CAD and CAM software distributed on different shop-floors or even on significantly distant locations, computer networking would be a wiser and better choice to handle such data communication. 1.7.2 Networking and Internet In our research, we set up an Internet-based framework to carry out CAD/CAM process management. Before we cast our sight upon the Internet, let us take a look at the basics of the computer networking. Local area networks (LANs), are privately-owned networks within a single building or campus of fairly limited size. LAN links computers within a limited area so that they can share files or printers. One computer, which is called server, can provide 11 disk space for other computers. The topology of LANs, or in other words, the way in which machines are hooked up, is usually ring, star(with one of the computers at the center), or bus( all in parallel). WAN, which stands for wide area network, spans a large geographical area, often a country or continent. Each computer on the network is called a node or end system and is frequently called on to pass along messages to other computers. WAN allows users to transfer files, mail electronic messages, and remotely log on to other computers. Each end system can either be a machine inside a LAN which is hooked up to a switching computer (or router) of the WAN or be directly attached to the router. A internetwork is a collection of interconnected networks. It is often used to refer to a collection of LANs connected by a WAN. The Internet means a specific worldwide internetwork connecting universities, government offices, companies as well as individuals. In other words, Internet means “network of networks”. It dates back to the old ARPAnet which stands for the US Department of Defense’s Advanced Research Project Agency network[7]. Now Internet is no longer limited within the military domains. Basic services of the Internet provides include: electronic mail, interactive conferences, access to information resources, network news, and the file trans fer utilities. 12 Chapter 2 Process Management for Design/Manufacturing and Mechanics Analysis 2.1 Introduction Complex high-tech products are designed with increasing design are manufacturing concerns by processes distributed over time, geography, participants, and functionality. Design of any complex commercial artifacts or design of a process of a complicated modern mechanics analysis may require a group of people possessing different specialties spread over several continents with a time span of several decades. Since such processes are multi-dimensional (time, geography and participants are regarded as different dimensions), integrated and interdependent, effective coordination within each dimension and between different dimensions is the essence to the success of such processes. In a traditional design and manufacturing environment, the complexity of such interdependency will result in a coordination that incurs great amount of redundant expenditures as well as delayed schedules, hence reduced quality of the product although individual productivity may be relatively high. Modern process management often needs to have the following features: 1)Participants involved in the process should be able to share information in all dimensions. 2)All participants should update descriptions of the shared design/manufacturing process timely. 3) Ensuring that the joint actions between each 13 party of a shared design/manufacturing process are coordinated to achieve the desired results as efficiently as anticipated. The systems implementing the current process management technologies are listed as follows according to the capabilities of which they impose constraints on how a process can be performed [18] (please refer to Figure-4). Traditional manual systems hardly impose any constraints with regard to how a process should be carried out. Ad hoc systems are largely dependant upon the users’ decisions. It is basically an email-based system used to route a work package once its destination is determined. Both systems provide tracking utilities. Some structured conversation systems are designed based upon the contract net [19] or speech act approach [20]. They have a system-imposed protocol that allows them to arrange the distribution of the tasks. Workflow systems set up a process flow using text-based or drawing tools. Once the process flow is set up, the participants in the process simply perform their respective tasks. Structured Workflow Manual Ad-hoc Conversations Interpreters $ Degree of Limits Imposed by Process Management Tools F igure-4. Types of Process Management Systems (after Klein)[7] l4 2.2 Automated Design/Manufacturing Process and Mechanics Analysis In a complex process, there may be a number of tasks which are inter-dependent. These inter-dependencies can be represented by data specifications and transitions. Data specifications are usually data file stored somewhere on-line. Transition shows direction of the data flow. The whole process may be so complicated that it can be split into smaller sub-tasks. In some cases, for each task or even sub-task, there may be different approaches available for the participants to complete the task or sub-task. There are also constraints for each task which shape the process. Most manual and structured conversation systems do not support the imposition of such constraints, nor can these systems model how the tasks are sequenced. It is the human participants who make all the decisions in complex process that lead to the firll execution for the whole process. Workflow systems are able to impose constraints and we can define a process flow in a very detailed way using such systems. However, such systems model a process in a fixed or rigid manner, which means such a way of modeling would become inefficient should there be more than one approach or should any change occur. Moreover, just like the structured conversation systems, these systems are also merely electronic schedulers. All tasks are performed manually by individuals or a group or groups of people which could be located at one place or scattered all over the world In other words, no matter what kind of existing process management system you use, the execution of the whole process flow is continuous and fully automatic. 15 One of the goals of the research is to develop a new approach to automate the execution of a distributed design/manufacturing process. Based on the basic element discussed in the first chapter, a simpler and more generalized elementary model was derived for both design and manufacturing. In order to automate the whole process, we need to have a task representation which is corresponding to a “design operation” or any operation inside a mechanics analysis. The task representation is connected to an executable program which is encoded to perform that task. As mentioned before, both general information and specific information is consumed by a task. Information can be interpreted as data, hence input data specifications are used to replace the general information and specific information. In an automated system, differentiating the specific information from the general information is a redundant step and it is advisable to unify these two to allow for more flexibility. Since there may be more than one information source, it is rational to have multiple data input representation for a single task. Direction of the input data is represented by a transition arrow, which shows where the data comes from and how a task converts them into other data. The “outcome” in the previous model is replaced with output data specifications. Just as the input, output may need to reside in more than one data specification. In some cases, different portions of the output data are consumed by different tasks corresponding to different programs located either on the same system or on other systems. Dividing the output into smaller data blocks will save the time spent on data transmission. It may also lessen the amount of time for the destination software to process the data, hence better performance. The “evaluation” fimction in the previous model is implicit here. It could be incorporated into the too] if it is fairly “rigid”, which means it does not tend to be subject to change very l6 often. On the contrary, if it is flexible, the system will provide the user with pre- or post- evaluation utilities to conduct the evaluation. It is also the pre/post-evaluation utilities that enable the user to impose constraints that shape the process. Input Data 1 Output Data 11 Output Data 1 Output Data m \ _/ V— Outputs Figure -5, Automated Design/Manufacturing Element The system leaves it to the user to determine, either at their own convenience or based on the nature of the constraints, whether it is hard-coded or imposed using the system’s pre/post-evaluation firnctionality. As to the feedback loop and the alternatives for participants to perform a task, the system provides managerial tools to implicitly implement the feedback and choose alternatives. The major managerial tool is a linear scheduler used to organize the execution of the whole process. Since we have identified the design process element with its manufacturing counterpart, we may easily set up a seamless design-to-manufacturing process flow diagram based on the above-mentioned model. It is also very easy to make use of this model to represent any mechanics analysis process not only because the mechanics 17 analysis is similar to design process but also because it is discipline-independent. The system has build-in tools and graphical interface to help the user to set up and execute a process. Most of the traditional process management systems are just managerial tools or schedulers which require engineers to perform a task embedded inside a process flow. The system implements a design/manufacturing automation. Each node inside a process flow is associated with either a tool software or a data file containing information. The human participants in traditional process management has been replaced by software tools which are typically parametric. Remember, as is mentioned before, it would be ideal for us to implement an integrated CAD/CAM system parametrically. Since we are conceiving a process management system that is able to automate globally distributed design and manufacturing processes, we need to design system which is platform- independent. We will address this issue in the forthcoming section. 2.3 Why Java In a modern a company, different departments are involved in a design process. It is rational to assume that each department corresponds to a task which can either be a decomposable task or an non-decomposable elementary task. In order to perform those tasks, each department has its own software tools running on their own systems. Based on the design/manufacturing model we have discussed before, most software tools need to have input data. Unfortunately, these input data could be output data generated by other departments or could be stored on other systems. The other departments may not necessarily be located at the same place. Meanwhile, different departments may use different operating systems. The goal of this research is to design a process managerial 18 system capable of executing embedded tools on various kinds of operating systems. Therefore, the system itself should be able to run platform-independent. From an end- user’s point of view, people tend to pick up their own machine or any machine with internet utility to run their process management. It is unnecessary to design platform- independent tool software. It is wise to set up a process management system that runs err-line and is able to invoke software tools stored on any other intemet-connected systems. Based on those facts, Java provides the important characteristics to develop our system. Initially called “Oak”, Java got its name in 1995 and was published the same year. Originally, Java was designed to be a platform-independent language used to create software embedded in consumer electronic devices. By 1993 the Java design team realized that it could be adapted for internet programming and switched. It was a wise switch that led to the success of Java. Now, just as what C was to operating systems, Java has become a language for the Internet. As a programming language, Java can generate two types of programs: applications and applets. An application is an executable program running locally. It is quite similar to those programs created by C or C++ . However, it has a very distinct feature: it works in a Java virtual machine which makes the program platform- independent. By analogy, the Java virtual machine is somewhat like an interpreter while the Java program and the operating system are two persons the interpreter is talking to. No matter what kind of language the operating system is using, this interpreter always 19 speaks “Java” with the Java program. Just as applications, Java applets are also platform- independent. However, without applets Java would not be very different than other programming languages. An applet is a program transmitted through Internet and run by an Java-based web browser. It is a small piece of program dynamically downloaded via the Internet. Unlike image files, sound files or video clips, Java applets are executed dynamically so that they are highly user-interactive and changing dynamically in response to the users’ input. Making full use of these features of Java, our system is also designed to be platform-independent and is expected to be put on-the-fly over the Internet available to be executed on any operating system. Therefore, platform-dependent CAD/CAM software tools may be embedded regardless of the operating system. The participants are free to choose their own programming language because our Java-encoded system will invoke them on their own operating system. Java is also outstandingly capable of handling networking communication. Data consumed or generated by the software tools are delivered or directed by our Java-encoded process management system. Details of the communication will be discussed in the next chapter. Based on what features are intended to have for the framework and what Java is capable of doing, it is chosen to implement our system. 20 2.4 State of the Art Advancement in the information technology has infiltrated into many aspects of our life. Collaborations between scientists and engineers are expected to be linked by high performance Internet services such as Internet H and the Defense Research and Engineering Network (DREN). Based on the latest information technology, DOD has launched a number of programs to develop process management infrastructure: Rapid Prototyping of Application Specific Signal Processor (PASSP) [12], Manufacturing Automation and Design Engineering (MADE) [l3], and RaDEO (Rapid Design Exploration and Optimization) [14]. To a certain degree, Internet has been used as a medium to manage design and manufacturing activities [15]. It serves as a pool of design information such as CAD drawing, analysis techniques or a list of off-the-shelf parts [16]. A framework designed to manage distributed business and electronic commerce on the information superhighway was developed by Andreoli et al [17]. 2.5 The MIDAS System In real practice, CAD/CAM processes arise when a given task is too large to be performed effectively by a single individual and thus must be divided into sub-tasks to achieve the top-level goal. Tasks in such a process may require some synchronization in task execution. A rational execution mechanism must be implemented to avoid contention for the use of some shared resources. Since a process is composed of a number of high-level tasks and low-level sub-tasks, it should be decomposed while it is executed. 21 However, most existing or proposed process management systems do not have a mathematical formalism to capture a process in a discipline independent format. Without such a formalism, task decomposition, execution synchronization, and constraint handling are difficult for most process presentations. In this thesis, readers are presented with a new process management framework with such formalism that can be utilized to manage complex design and manufacturing processes. This framework is named as MIDAS, which stands for Manufactruing Integration and Design Automation System. With such a generalized process formalism, MIDAS provides a means to incorporate many specialized tools such CAD and FEM packages, and to specify acceptable methodologies and available tools. Its use is not limited to process management. Mechanics analysis, which shares many common features with CAD/CAM processes, can be easily captured by MIDAS. It also enables the users to adapt design changes efficiently and facilitates the exchange of information among participants using the Internet. Most importantly, MIDAS allows users to select tools and methodologies, and to optimize a process configuration within a given set of constraints. 22 Chapter 3 Design/Manufacturing Process Management Framework 3.1 Introduction Based on the concepts we introduced in the previous chapters, our own process management framework was implemented mainly using Java 1.02. MIDAS is a Java applet that is rtmning over the Internet on any Java-compatible web browser. It is a tool that is used to create, manage, and execute a process located anywhere on the Internet. In this chapter, the configuration of the fi'amework, the components of the a process flow, and process software tool integration are addressed. 3.2 System Architecture In this section, we will take a look at the major components of the Process Management Framework as well as their organization and frmctionality. Detailed descriptions of the major concepts involved in the architecture of our process management framework will also be discussed, including external tool integration, the tool invocation process, Java File System, and state properties. 23 3.3 System Cockpit The MIDAS framework has an integrated interface called cockpit (see Figure-6) where all interactions between the user and the system take place. The cockpit is implemented as a Java applet which can be loaded via a Java-enabled web browser. BesidesfimcfiMngasflnusermmrthoemresystancmkmtalsopmvidesmecme fimcfiomfityofflreprocessmamgememfiamewoflcAlflroughdifl‘erentmsmayuse difiemmmsmnesofthecmkpitamesamefimefiinctwflabomfimbaweenmmfipleusem iscrmentlymrdertesting. File Configuration Mode Browse ( Flow . . M e Mdrtrng Buttons providing different flow-editing < firnetionality F igure-6. System Cockpit 24 The system cockpit provides the following functionality: Flow editing. Users may construct and edit process flows using the flow editing panel of the cockpit. The flow editing panel or the flow editor provides the users with a graphical interface with a number of functional buttons to set up a flow. Flow layout can be optimized via services provided by a remote layout server encoded in Perl. The Cockpit manages the connection to and communication with the layout server through the Internet. This layout editing utility is associated with the “ edraw” button. By clicking on that button get the current messy layout of the flow reorganized Production Library Maintenance. Production library provided by the cockpit is used to help user with production maintenance. This functionality is realized by the cockpit’s production editor. Users may organize productions, modify input/output sets, create or edit individual productions by using flow editor and the production browser. The production browser is especially useful when user would like to create a production which is similar to an existing one. Using the production browser and the flow editor users may easily create a new production by simply instantiating the existing production. All existing productions are stored in the production library. Class Library Maintenance. Similar to production, libraries of task and specification classes are also provided in a general-to—specific manner. During the construction of a flow, users are allowed to instantiate a class into an actual task, specification, or database by simply dragging the appropriate class from a class browser, and dropping it onto the flow editor’s canvas. The class libraries are displayed in the form of a tree structure in the cockpit. In other 25 words, every object, no matter whether it is a task or specification, is an instance of a class on a certain level in the class tree hierarchy. Process Simulation and Execution. Processes may be simulated or executed using the cockpit. Several scheduler modules controlling how the process configuration space will be explored are provided Since the tools may be located externally on other servers, execution of the flow is carried out by invoking the appropriate external tools. Therefore simulation of the execution of the extem tools which are actually running on other machines is necessary. Simulation display, or in other words, flow animation, are provided on the cockpit canvas for users to monitor the execution progress graphically. The animation is realized using different colors. Yollew for unavailable, green for ready, blue for available, white for execution in process, and red for execution failure. Since the process is dynamic, user may recognize which tool is running, which specification is ready, or whether an execution of a tool is successful or has failed There are currently two kinds of schedulers available for the users to choose. They are the manual scheduler, and the comprehensive linear scheduler. When the user is going to execute a process flow, he/she will need to choose between manual mode and automatic mode. These two modes are actually corresponding to the above-mentioned two kinds of schedulers. Users are also provided with text-based proxy monitor for both manual and automatic modes. When nmning automatic mode, scheduler monitor is also invoked to show users tool execution information and scheduler information. These two monitors, in conjunction with the animation simulation, provide users with a complete view of a running scenario. Process Files. A process flow exists in the form of a file. The cockpit allows processes to be archived on a remote server using the Java File System (JFS). The cockpit is 26 enabled by a JFS client interface to connect to a remote JFS server where process files are saved and loaded While the JFS system has its clear advantages, it is also awkward not to allow users to save process files, libraries, and etc. on their local systems. Therefore, the current framework is configured to allow users to open or save a process flow file on the server from which the cockpit applet is loaded Not until version 1.1 of the Java Developer’s Kit(JDK), local storage by a Java applet was simply not allowed. 3.4 External Tools As mentioned earlier, each atomic or terminal task in a process flow is corresponding and bound to an external tool. In Run mode, when user expands an atomic task in the cockpit, the corresponding external tool is invoked as though it was invoke under text-based command-line. Therefore, a simple negotiation is required to execute a remote external tool. In the previous chapter, our elementary process module was discussed Inputs and outputs are two major constructs. Accordingly, an external tool uses a series of inputs and creates a series of outputs contained in files. Just as the tools, the inputs and outputs are bound to specifications in a flow. Except for initial inputs and final outputs, inputs to be consumed by one tool are generated by other tools. In previous versions of the process management framework, all tools wee located on a public file system, which was called the Server File System. This file system allowed the tools to communicate with each other consuming and creating input and output files on it. Now the latest version of framework allows the tools to access and to generate their input and output files on remote sites. On each one of those remotes sites, there is a site proxy server working in conjunction with a remote file server. 27 These two servers automatically handle the transmission of files from one system to another during the runtime. Users are free to choose the languages to implement their external tools. The only requirement is that the platform where a tool is located should have the capability of running a site server. External tools encoded in C, Fortran, Perl, UND( shell script, Java, I-Deas open language, and Mathematica scripts have been tested A simple protocol is used to execute an external tool: 1) The tool should be able to run under command-line (from a shell prompt or a DOS prompt). The Java.lang.runtime package provides mechanisms for the site proxy server to invoke external commands. However, the Java Virtual Machine is implemented on many platforms in such a way that it does not allow the system to set up a working directory before an external process is executed from within a Java application. In order to overcome this barrier, it was necessary to write a Perl wrapper that is called fi'om the site proxy server, and then executes the external tool. 2) The tool must be capable of parsing the following command line format: toolname INPUTS i1 i2... iN OUTPUTS 01 02 03 0M where i1, i2, i3,... W are the names of the N input files that the tool must be able to open and execute, and o], 02, 03 0M are the names of the M output files that the tool should produce. If the tool is a selector, then the command becomes: 28 Selector INPUTS i1 i2 iN OUTPUTS 01 02 03 .. 0M DB database] database2 DatabaseT ITEM I Where database] database2 DatabaseT are names of the T databases to be consumed by the selector; The flag ITEM and the number i which follows it are used to indicate which record inside the temporary database is picked. 3) The input file names sent off to the proxy server for it to execute may not be necessarily sent in the same sequence for any two different invocations of the tool. That is to say the tools should be designed in a such way that it has the capability of recognizing the input file types. The user-defined external tools are supposed to be integrated into an abstract process flow ready to execute using the process management framework Two steps are involved in incorporating tools with a process flow: association and execution. Association includes binding an external tool or a remote file with an abstract flow object. Execution is defined to represent the steps that the framework goes through to actually run the external tools and to process their inputs and outputs. The action of binding is actually to define a series of properties of a specific flow object. For an atomic task, the following properties must be defined in order to set up a task- tool bonding: 1) SITE. Since the fiamework can execute tools located at a remote site, we need to define its location. Default SITE is specified within the system so that it may not be necessary to specify the SITE property of each flow object, unless its location is differert than the default site. 2)CMDLINE. The CMDLINE property specifies the command which will be 29 executed at the remote site defined by the SITE property. The CMDLINE property should include any switches or arguments that will be sent to the external tool. 3)WORKDIR specifies the tool’s working path under which the framework will actually invoke the external tool, create temporary files, etc. Usually this property is also defined in the global property defaults. 3)WRAPPERPATH. Since the 1.0.2 version of the Java Development Kit (JDK) does not allow an external program be executed in an user-specified directory, an extra layer called a wrapper between the tool and proxy server must be constructed to simply change directories and then execute the external tool. This layer can be a DOS/Windows NT batch file, a shell script, or a perl program. The external tool is wrapped in this simple script, and executed Since tools may be running on different platforms, the wrapper program has to be platform-dependent. Once the user has defined all the above propeties for a task, this task is said to be bound to an external tool. In case no site, directory, or filename is specified for the outputs of the task, the framework automatically creates unique file names, and saves the files in the working directory of the corresponding tool on the system where the tool is running. If a tool uses an input that is not specified by any other task, the user must bind it to a remote static file. The framework is configured to reckon all external tools and specifications as to be remote. In other words, even if the tool is located physically on the same system where the user is running the framework cockpit, the framework will still treat it as remote tool. After all flow objects are bound to theirs appropriate external tools or files, it is time to use the framework to perform process management or tool execution In stead of directly linking and executing a tool from the cockpit, the process management framework actually 30 hasseverallayerslyinginbetwenthecockpit andtheextermltoolthatisboundtoaflow. A descriptionofeachlayerbetweenthetoolandflrecockpitislistedbelow. Remote Site File System E External Tool j Liz-w Proxy Monitor | I Site File ._ mix—F Server Site Proxy Server ] “T if 2 Communication Server < > T O i 2 n' l D Cockpit Figure-7. Communication Model Whenonelamrchesacockpit,loadsaflowfile,andinvokesanatomictask,the cwkpitisacmaflymlkingdimalymamolproxy.Thewolproxyacmasahaisonhyer betueentheprocess objectsloadedordefinedinthecockpit andthesiteproxyserver throughTCP/lPsockets. Itsendsinformationpackagesfiomflrecockpitintothefonnof stringmessagesthatisrecognizablebythesiteproxyserver. Attiresametime,italsowaits formflp‘ocessesmewagesfiomflwsnemxysaversemmmughmecmnmmiwdmssaver anddirectstheinfonnafiontothecockpitobjectwheredretoolproxyisongimflylamrched 31 For the sake of security, direct TCP/IP socket connections between a Java Applet and any IP address other than the address from which the Applet was loaded is forbidden. For this reason, we are nmning a communications server on the system where the cockpit applet is stored to listen for messages from tool proxies launched by any cockpit on the same channel. Site Proxy Servers deal with invocation requests from tool proxies via the communications server. When an invocation request is received, the site proxy server goes through the message’s syntax. It then invokes a tool monitor to manage the external tool invocation, and returns the exit status of the external tool after the tool execution is completed It is reasonable to imagine that there may be more than one tool running on the same site. It may take a significant amount of time for each of the tools to complete its execution. Therefore, waiting for the first tools to complete its execution to launch the execution of the next one would make our process management system very inefficient. Thus the proxy server launches a tool monitor for each external tool to be invoked Running as a separate thread, a tool monitor waits on the tool, stores its standard output and mor message, moves any input or output files to their appropriate site locations, and informs its calling site proxy server when the tool has completed This scenario allows the site proxy server to process the forthcoming invocation requests continuously without too much delay. 32 3.5 Representation of a Process Flow 3.5.1 Basic Elements of A Process This framework uses a formalism called process flow graphs to represent design processes. A very simple process grammar is used to define and document a design-to— manufacturing process. As mentioned before, it is not uncommon to have alternative approaches to perform a task. The use of the formal process grammar makes the alternative methods within a process easily identifiable. Logical Task Atomic Task Specification _/ / » Transition Figure-8. Graphical Representation Based on the automated design and manufacturing process element discussed in the previous chapter, four basic graphical elements for a process flow graph are shown in F igure-8. Engineers can create design—to-manufacturing processes in a top-down fashion. In the figure above, the four fundamental constructs are listed. Oval nodes represent Logical Tasks; two concentric ovals represent Atomic Tasks; and rectangular nodes represent Data Specifications. The arrow is called a transition. A logical task can be further decomposed into some other lower-leveled logical tasks or atomic tasks. It can be called a non-terminal task because it is decomposable. An atomic task is something that cannot be decomposed any more. It is directly hooked up to an on-line design or manufacturing software. Therefore, atomic task is also denoted as terminal task. The relation between logical tasks and atomic tasks is somewhat like the relation between folders and files. One may place small folders inside a big folder. In the meantime, he or she may also put files inside this same folder. However, unlike folders which can be empty, logical tasks cannot be empty. It should be able decomposed further and further until there are only atomic tasks. Specification is used to represent on-line files, especially data files. The arrow, which is denoted as transition, is used to show the directions of data flows as well as to weave the stand-alone tasks and data specifications into a complete process flow. There are two other very special derivative constructs which are used together to represent a very special kind of terminal task called selector. A selector has at least one on-line database. Connected to other data specification(s) <—-——‘ Database Connected to other data specification(s) Figure-9. Selector and Database 34 The graphical representations of these two constructs are shown in Figure-9. Just as how it is named, a selector works out its results based on the user-defined requirements or on its build- in rules. Selectors share some common features although they are implemented fieely by the users. Since a selector may need to pick up its choice from a database according to the requirements imposed by the users, it has its regular inputs just like other tasks do. It also has one or more databases either hooked up to it or hard-coded No matter how it is implemented, a selector always makes only one choice at one time. A recommended way of implementing a selector is to go through the database to pick up all possrble solutions, and store them on a temporary sub-database. Sort this sub-database in an order such that the possible best solution comes the first. The selector then picks up the first record of this sorted sub-database as its output. Should this output turn out to be a bad choice, the selector would choose the next record in the sub-database until it makes a right decision or until the database is exhausted. This simple selecting algorithm is recommended because the selector only sorts the database once. 3.5.2 Process Grammar After introducing the basic elements of a process flow, we take a look at the very simple process grammar. In order for the readers to understand the grammar, readers are presented with a very straightforward example as shown in Figure-10. In Figure—10, the language produced by 35 L—aAlB A—>a B—>bc Figure-10. An example of the process grammar this trivial grammar consists of two words: { a, bc}. An analogous design process grammar, which is a type of graph grammar, is represented in Figure-l 1. Notice that logical task L has two possible productions: alternative A, and alternative B. Applying either production will produce a derivation of the original graph by replacing logical task L with the flow graph representing that alternative. Output Input Input © Intern data Output Output Output Logical task L and its input Alternative A Altermtive B and output Figure-11. Graphical of a logical task 36 Chapter 4 Benchmark I ------ Gearbox Design and Manufacturing 4.1 Overview Two benchmark projects, which are gearbox design and firnctionally gradient materials design have been developed. In this chapter, attention will be focused on the first one which is the design of a two-stage parallel shaft gearbox. 1 [Ill L spur gear helical gear double helical gear Figure-12. 2-stage parallel gear systems For a two-stage parallel shaft gear system, there are usually three types choices of gears: spur gears, helical gears, and double helical gears(see Figure-12). With the advantage of low manufacturing cost spur gear may produce relatively high noise during operation and can only provide limited torque. Helical gear can withstand higher torque but they are more expensive and introduce thrust force during operation. In order to balance the axial force, thrust bearings are required. Double helical gear is actually a combination of a pair of helical gears which make the thrust force on a helical gear canceled off with the thrust force on the other, hence no thrust bearings are required. 37 ‘In the benchmark(see Figure—13) process management, only the design and manufacturing of the shafts, the selection of gear/pinion pair and the bearings are considered. There are three major stages involved in this design and manufacturing process: pre-selection, analysis, and manufacturing. B A :3:222::ZZ¢ZZZZZZZIZI¢IZZZZEE E j \E‘E‘Bearing :.::::::::::fi:::::::::J::::::::.E output : LI". ........... g," coupling Figure-13. Two-stage parallel gearbox illustrative diagram 38 1:133:23? 063511313309 - Pre-selection (included in the ,eqmmm) L, logical task StaticAnaIysrLs that .: be further decomposed into smaller tasks) SelectedGPShaft MataialProp ' SelectedFinish Dynamic sis ShaftASTL ShafiBSTL Figure-14. A overall designvmanufacturing process flow diagram of gearbox The above high-level, unexpanded flow diagram provides us with an general overview of the gearbox design and manufacturing process. The first specification GearShafiReq is bound to a remote data specification, which is a file containing the initial requirements defined by the users. It is to be consumed by the atomic tasked included in the StaticAnalysis logical task The first few atomic tasks are designed to perform the pro-selection which provides the forthcoming tasks with possible choices of 39 different combinations of gear, pinion, shaft as well as material. The other atomic tasks included in the StaticAnalysis are designed to work in conjunction with the tasks in DynamicAnalysis to produce the detailed dimensions for both gear, pinion and shafts. Results are stored in the data specification named GearBoxDesign. Based on these results, solid models of the design components are created in the logical task named CalManufacturingData while CNC codes are generated in the task CADCAMCoversion for machining the selected bar stocks into the designed shafts. 4.2 Design 4.2.1 Pre-selection The design starts with pre-selection. The first flow object is the initial input data specification which includes the basic user-defined requirements. In this benchmark, design requirements include maximum output power, maximum rotational speed, transmission ratio, design life and some geometrical requirements such as shaft length and minimum rotational speed, transmission ratio, design life and some geometrical requirements such as shaft length and minimum and maximum gear diameter. There is a bind command button on the cockpit interface. By choking on the button and then click on the initial input data specification, you will be able to enter the location of the input data file. This procedure is designed for the situation in which there are more than one tentative input data file. Once the input data file is bound to the flow, the design process can begin. 40 4.2.2 Gear/Pinion/Shaft Selection A number of Java programs have been composed to handle the gear/pinion selection. As mentioned above, maximum output power, maximum speed, transmission ratio, design life plus some geometrical requirements serve as the inputs. Some pre- evaluation will be conducted to give the range of the pitch. This is to screen out any gear size whose strength is not satisfactory under the given operating conditions. The formula used to estimate the pitch range is as follows[21]: W1=F.mf.f.Wmax 4.1 Where, W. = maximum suggested transmission load (lbs) = face width of gear(inches) mf = material factor(see Table- 1) (by = pressure angle factor(see Table-2) Wmax = maximum suggested load(see Table-3) Material 303 stainless 2024T4 Brass Nylon Delrin Polyrethane steel Aluminum mf l 1.2 0.7 0.34 0.28 0.14 Table-l Material Factors Pressure Angle (Dr 20 deg. 1 14.5 deg. 0.8 Table-2 Pressure vs (bf 41 Diametral Pitch W 120 65 96 82 80 98 72 105 64 115 48 140 32 195 24 245 20 280 16 318 12 350 Table-3 Pitch vs maximum operational tangential tooth load Figure-15. Pressure Angle Theformulatoestimatethemaximmnloadofthegeartoothwasused Theactual strength of the gear tooth can vary drastically under different operating conditions. The standard loads listed in Table-3 are for well lubricated 303 stainless gears with 20° pressure angle, 1 inch face width, pitch line velocity below 1500 fpm, and smooth loading. The standard loads of pressure angles other than 20 degrees and 14.5 degrees are interpolated or extrapolated The lowest designing speed and maximum output power (assume there is no power dissipated) are used to work out the possible maximum 42 torque transmitted. Based on the torque and the relation tangential load = 2 x torque / pitch diameter, the maximum tangential load exerted on the tooth surface can be estimated. On the other hand, the maximum suggested transmitted load can be calculated using the formula W, = F Omf . 49f on. Compare the maximum tangential load with the maximum suggested transmitted load W, for each gear in the gear database to get a list of all gears whose strength is high enough to withstand the maximum required load. Since the finer gear teeth or higher pitch gives us higher precision, low backlash, and smoother operation, the computer will sort that list of the gears in terms of their pitch with the largest pitch listed first. Computer will then pick up the first record in the list as best possible choice. If this choice works out all the way to the end of the design process, there is no need to test the second one and the rest. Once the pitch range is determined, it becomes one of the constraints in search of proper gear/pinion pairs. The simple algorithm used to search for a gear/pinion pair is as follows. The computer sorts the list of gears generated just new again in terms of the pitch diameter. Then based on the transmission ratio and starting with the smallest gear with largest pitch as a pinion, the computer begins to look for the gear simply by multiplying the pinion diameter with the transmission ratio and searching for a gear with exactly the same diameter until the list is exhausted and pick up another pinion. This process stops when the value of the product of a pinion diameter and the transmission ratio is greater than the diameter of the largest gear in the list. After going through the gear list thoroughly, all possible gear/pinion combinations are saved on a temporary file. These choices satisfy all the geometrical requirements contained in the initial input. The 43 selector invoked will also automatically sort the temporary data pool in terms of a certain field or certain set of fields according to some built-in rules that guarantee the design will tend to be the most economical. In short, the built-in rules are defined to try the smallest gear first to make sure that it tends to be economical. As mentioned before, this built-in sorting procedure is inferior to and may be overruled by any arbitrary order issued by the framework. This is reasonable because guaranteeing that it be economical may incur sacrifices in some other respects. Based on the previous outputs, corresponding shafts are picked up from a shaft database. These shafts are chosen according to some geometrical constraints such as bore size. Naturally, gear and pinion shafts may be different in size. The computer will also concatenate gear/pinion pairs with their selected shafts and sort and save them on a new temporary data pool. Then the selector will pick up a record on that temporary data pool and produce a one-record file as its output. The temporary data pool may be re- established if the framework issues such an order (see Figure-l6). Gear/Pinion Record 1 Gear/Pinion Record 2 .. '- Shaft Record 3 Matching Process New record 1: Gear/Pinion Record 1 & Shaft Record 3 New record 2: Gear/Pinion Record 2 & Shaft Record 1 Figure-l6. Concatenation of gear/pinion database and the shaft database 4.2.3 Material Selection A material selector also needs to be activated to choose the possibly satisfactory types of materials by looking up through a material database. Only one material will be chosen at a time. The material selector shares all general features with other selectors. Properties of a specific kind of material is saved on an output file and will be used by other tools. 45 4.2.4 Static Analysis 4.2.4.1 Static Forces Using the formulae in solid mechanics, calculations are conducted in order to produce the key static forces which are to be used for further evaluations as well as selections. Based on the sizes of the gear shaft or the pinion shaft, a pre-evaluation function will tell whether the fi'amework should calculate forces in both shafts or either gear shaft or pinion shaft. In order to simplify the process, most of the pre-evaluations are hard-coded. Let us consider the forces exerted on a helical gear and its shaft. Single helical gear introduces axial force (see Figure-17). Spur gears and double helical gears can be considered as its special cases in which the thrust force is equal to zero. , >1nput(outpm) torque Reaction forces Reaction forces Radial force Tangential force F igure-17. Forces and moment exerted on a helical gear and its shaft 46 The diagram below shows that the gear-shaft system can be presented by a combined loading situation which consists of a beam subjected to bending and a rod subjected to torsion (see Figure-l8) A vectorial sum of the radial force and the ’ tangential force A Moment cafi by the axial1 force + ’I‘; ----------- - 'Il\‘ " Torque caused by the " Input torque tangential force F igure-18. Combined loading decomposition of a shaft For a helical gear and pinion pair, the thrust forces on each of them are reaction forces so that they are equal and opposite in direction. The gear has the greater diameter, which means that the moment located at the center of the gear shaft is always greater than that of the pinion shaft. Similarly, the torque on the gear shaft is also larger than that on the pinion shaft. Since the spur gear and double helical gears do not have thrust forces, there is no concentrated moment located in the middle of the shaft. Therefore, in case of spur gear or double helical gears, the computer will first take a look at the size of the pinion and gear shafts. If the two shafts have the same diameter or the pinion shaft is thicker, then the computer will only carry out force and stress analysis for the gear shaft. If the gear shaft is thinner, then you need to check the strength of both shafts. On the 47 other hand, in case of single helical gear and pinion pair, their dimensions will be checked. In this case, there are both moment and torque located in the middle of each shaft. Since the gear has greater radius while the thrust and tangential force on both gear and pinion teeth are reaction forces, the moment and torque on the gear shaft are always the larger. Again, if the gear shaft has the same diameter as that of the pinion shaft or it has smaller diameter, only the gear shaft’s strength will be checked. Only when the pinion shaft’s diameter is thinner than that of the gear shaft should the strength of both shafts be checked. Based on the pre-evaluation result, computer will work out forces, moments and torques for the appropriate shaft or both shafts which are to be used in the forthcoming tasks. The forces are saved on a file located on a defined remote system. A flag is attached to the file to help other tools recognize the physical meanings of the data store on that file. This scenario is a good example of the production alternative. Thee are three alternatives, which are to check gear shaft, to check pinion shaft and to check both. In automatic mode, the pre-evaluation function determines which alternative should be executed by the framework first. In other words, the pre-evaluation function generates a ranking of all the possible alternatives based on its input data. The fi'amework will try the alternative ranked numbe one first. If it fails, the framework will try the alternative one till success or till there is no more alternative. In case no alternative is successfully executed, the framework will issue a roll-back command to select either another material 48 or a different set of the gear/pinion pair. In manual mode, the pre—evaluation function is still called. However, the user may choose not to follow the ranking and execute any one of the alternatives. 4.2.4.2 Stress Analysis Since the loads actually cause bending and torsion, a complex state of stresses exists in the shaft (see Figure-19). The maximum normal stress caused by bending takes place on the surface of the shaft at its center because of the relationship 0'b=MY/I, where 0,, is the bending normal stress, M is the bending moment, Y stands for the distance to the center of the intersection, and I is the cross-section’s moment of inertia. The vectorial combination of tangential and radial forces in the middle of the shaft and the reaction forces produced by the bearings will also cause shear stresses on the cross-section. In case of pure shear, shear stress of this kind can be considered as evenly distributed over the cross-section. When the shear comes up in conjunction with bending, the shear stress distribution varies as described in the formula: e where S is the shear stress on the cross-section, V is the skettjforyd dylt) I [is the moment of inertia of the cross section about OX (please refer to Figure-19). From this formula, we can see that S vanishes when y equals e. This means that S reaches its maximum value along OX and decreases vertically. The shear stress S is called the transverse shear stress. Since bending stress are maximum at point A while the transverse shear stress is zero there, it is unnecessary to combine them. Conventionally, unless the 49 shaft is very short, the value of the transverse shear stress is much smaller than stress caused by bending, hence it is ignored [22]. V Ben . g Transverse stress 2 distribution 51.13“! it .ESS A dlStl'lleIlOIl V QJ" D F igure-19. Cross section of a shaft and stress distribution on it Since there is torque existing in the middle of a shaft, shear stress caused by the torque needs to be considered. Unlike the transverse shear stress, torsional force reaches its maximum at the surface of the shaft. Moreover, since the input power may not be trivial, it is necessary to take the torsional shear stress into account. Both stresses are at their maximum at the surface of the shaft. Therefore, element at the surface in the middle of the shaft represents the most critical spot (see Figure-20). R1 R2 Figure-20. Stresses in the combined loading 50 In case single helical gears are chosen, axial force is introduced, hence the axial normal stresses. It is assumed that the axial normal stress’ distribution over the shaft cross section is uniform. Also assume that the axial force is pointing to the left. Based on Figure-21 , the axial force raises the normal compressive stress in element A, which is located left of M-M. Vice versa, normal stress in element B is also increased except that the stress is tensile. Therefore, when the effective stress is calculated to verify whether the shaft has enough strength, the increase in stress should be taken into account. When all those stress components are available, it is time to calculate the effective or equivalent stress[22]. The effective stress called the von Mises stress(o'.) is calculated based on the Mises criterion or the maximum energy of distortion theory of failure. In a general case, in which principal stresses and directions are unknown, the following equation provide us with a way to calculate the von Mises stress: 20. 2 = (Ox-cy)2+(0’y-O'z)2+(0'z-0‘x)2+6(txy2+ty22+tzxz) 4.2 where x, y, and 2 stand for directions of three coordinates In our benchmark, the above equation is simplified into: 2 _ 2 2 Ge - ( Gmaximum bending + Gaxial normal) + 3 Ytorsion 4.3 51 Element A Bending stress plus 4——I——‘ ! axial normal stress “in! Element B , M i Note: all other forces and moments remain the same as in F igure-ZO F igure-21. Stresses at Dangerous Points After the calculation of the effective stress, a comparison is carried out between the effective stress and the yield strength of the material chosen. If the effective stress is higher than the yield strength, the framework will roll back either to select another type of material with higher strength or to choose a new set of gear/pinion/shaft whose shaft size is greater. If the effective stress is lower than the yield strength, then the stress analysis is completed. 4.2.5 Bearing Selection Bearing selection can be simultaneously carried out with the stress analysis. The bearing selection tools have the information on geometrical constraints of all connecting parts as well as information regarding the static forces calculated. Then it goes through a 52 bearing database to seek for all possible bearings whose bore diameters are less than the shaft diameter and list all this bearings on a temporary database just as any othe selectors do. The bearing with the smallest bore diameter comes first in the database. The bearing bore diameter should be less than shaft diameter - 2 xfillet radius (see Figure-22). In addition, the fillet radius of the bearing ring has to be large than that on the shaft, otherwise the bearing cannot be mounted. The radial and axial forces are retreived from the inputs. The temporary bearing database is opened to get the fillet radius of the first bearing record. The a Java function is called to calculate the equivalent radial load EQRL, which equals XR+YT. Where R is the radial force, T stands for the thrust load, and X and Y are radial and thrust factor (see Table-4). The basic dynamic load rating C which is one of the currently selected bearing’s properties stored in the memory is incorporated with EQRL and the rotational speed N to estimate the bearing life L using the formula L=16700(C/EQRL)k/N (for details, please refer to [23]). Where constant k equals 3 for ball bearings and 3.333 for roller bearings. Comparing the estimated bearing life with the expected life to see if the bearing will fail within the period of service. In case that single helical gears are chosen, thrust bearings will be selected accordingly. Therefore, when single helical gear is used, difference between the actual thrust load and the selected bearing’s thrust capacity is calculated to check if it can withstand such a load. If either life requirement or thrust strength is not satisfied, the framework will roll back to choose another bearing until the requirements are met. 53 To be mounted Bearing ring Figure-22. The fillet radius of the bearing ring Bearing Type X Y Single-row ball 1.0 0 ’ Double-row ball 1.0 0.75 Cylindrical roller 1.0 0 Spherical roller 1.0 2.5 Table-4 Radial and Thrust Factors 4.2.6 Fatigue Analysis Since the shafts are rotating components subjected to cyclic loading, fatigue analysis is necessary. A surface-finish-condition selector is invoked at the beginning of the fatigue analysis. Since the major factors influencing surface finish are the cutting tool outline, the fragments of the built-up edge left on the work piece during cutting and vibration, this selector works rather independently. For fatigue analysis, information produced by all previous steps except for stress analysis are used as inputs. The charts for stress concentration factors, notch sensitivity, size factor, surface factor and fatigue notch factor have been converted into Java code using interpolation. Variable stress and mean stress are calculated and the concept of effective stress is also introduced in the analysis. 54 The judgment of whether the material will fail is made based on Goodman line (Figure-23). For most wrought steels the fatigue endurance limit is between 0.45 and 0.60 of the tensile strength S... Therefore, it is common to 0.5Su as steels’ fatigue endurance limit for design purposes. However, an engineering component’s surface finish condition, size, operating environment would affect its fatigue endurance limit Se very strongly. Using the equation Se=0.5 ks kZ k, k, km Su 44 whee k3, k2. k,, ,k,, and k,,I are factors for surface, size, temperature, reliability, and othe miscellaneous effects like plating or case hardening, the actual fatigue strength is reduced. For normal temperature in operation, temperature factor k. is 1.0. Since we do not have plating, case hardening or high residual stress, we take 1.0 as the value of the factor of the miscellaneous effects. 4.2.6.1 Surface Factor Fatigue strength varies with surface condition because surface irregularities are stress raisers which will initiate fatigue cracks. The surface factor is a positive numbe that is less than 1.0. Finer smface finish corresponds to higher surface factor. Surface factor is also a function of tensile strength. It decreases as tensile strength goes up. Therefore, for each finish condition thee is a curve depicting the KS - Su relationship [22]. Read the data points off the curves. Pick more points whee the curvature is large. 55 A polynomial with the order equivalent to the number of the data points to fit the curve is used. The material’s tensile strength is then substituted into the polynomial to calculate the surface factor. 4.2.6.2 Size Factor When the size increases, the fatigue endurance limit decreases. A larger component tends to have a weaker metallurgical defect which will cause a fatigue crack to take place. The formulas listed below determine the value of the size factor [24]: k, = (d / 0.3)“-068 kz= (d / 7.6)"-068 k = d -0.19 k,_.=1.85d*’-19 Where (1 is the shaft diameter. 4.2.6.3 Reliability Factor 0.l Process Management System Demonstration


ERROR! Your browser is not configured to run JAVA code.

If you are running Netscape v2.02+, pehaps you just have JAVA support disabled. If you are NOT running a JAVA capable version of Netscape, you can get one here.

84 B. Sample Unix Shell Scripts Used to Invoke Remote Servers Thtough CGI StartJFSsh #l/usr/bin/sh MADPATH="/use/r01/chung/MAD/system" H=‘/bin/cat /etc/hostname.*‘ echo "Content-type: text/html" echo echo "
" echo "" echo "

Executing Remote Start Hacks on $H

" echo "Script: "$0"


" echo "Attempting to start the JF S seve on $H...
" echo .‘/user/web/cgi-use/guhua/myzap 'java MultiSeve' > /dev/null‘ echo ‘/user/web/cgi-use/guhua/myzap 'java RemoteFileServe' > /dev/null‘ echo ‘/user/web/cgi-use/guhua/myzap 'java JFSserve' > /dev/null‘ cd $MADPATH/j fs-0.05 umask 0 #chmod 666 root/etc/* echo ‘/soft/sparc/bin/java JFSserver ./root > /dev/null &‘ echo "Attempting to start MultiServe on $H...
" cd $MADPATH echo ‘/soft/sparc/bin/java MultiServe > /dev/null &‘ #sleep 5 echo "Attempting to start the Tool Proxy seve on $H...

" echo ‘/user/web/cgi-use/guhua/myzap 'java ProxySeve' > /dev/null‘ cd $MADPATH echo ‘/soft/sparc/bin/java ProxyServe CPS www > /dev/null &‘ echo ‘/user/web/cgi-user/guhua/myzap 'java RemoteFileServe' > /dev/null‘ echo "Attempting to start the RemoteFileServer on $H...

" cd $MADPATH echo ‘/soft/sparc/bin/java RemoteFileServer -unlimitted > /dev/null &‘ echo echo "These are the processes currently running on "$H" that are related to what we're doing...

"

/usr/bin/ps -ef | grep JFSserve

/usr/bin/ps -ef | grep MultiServe

/usr/bin/ps -ef | grep ProxyServe

/usr/bin/ps -ef | grep RemoteFileSeve

echo "
" 85 echc) " gear shaft data second line --> pinion shaft data */ // Stress file: /* ShearStress, TortionalShearStress, MaxBendNormalStress, NormalStressDueToAxialForce, 1 2 3 4 NormalStress, ShearStress, Von_Mis_Stress 5 6 7 */ /*Bearing Type Codes */ 1-single-row ball 2—double-row ball 3—cylindral roller 4—spherical roller // java call xxx IN choice_file(GPS) ini_file forcefile OUT ******** choice file(bearing) DB /* I 2 3 4 5 6 7 . 8 beardatabase ITEM n 9 10 11 */ for(i=2; i<=4; ++i){ f[l]=t.goto_rec_get_field(argv[i],2,1,","); if(f[l].equals("GPS")){ ii=i; i=888; } 1 trs=argv[2]; argv[2]=argv[ii]; argv[ii]=trs; 107 f[2]=t.goto_rec_get_field(argv[3]1211:"I")F f_[2]=argV[31; f[3]=t.goto_rec_get_field(argv[4],2:l:"r"); f_[3]=argv{4]; for (i=2; i<=3; ++i) { /* if (f[i].equals("GPS")){ argv[2]=f[i]; } */ if (f[i].equals("ini")){ argv[3]=f_[i]; } if (!(f[i].equals("ini"))){ argV[4]=f_[i]; /* void BearingSel( //float D_bore, float D_shaft, String beardatabase, String bearbests, String Deli, int no_of_fields, // now =11 String choice_file, int item, int tot_no_of_rec, // can let it be any // value (say 1000) float axial_force, float rad_force, float rot_speed, int lifeofbear) */ // java call xxx IN choice_file(GPS) ini_file forcefile OUT bearbests choice_file(bearing) DB /* l 2 3 4 5 6 7 8 beardatabase ITEM n 9 10 11 */ // bearing file format /* stock no, outer D, bore D, width, static radial load(lbs), dynamic radial load, 1 2 3 4 5 108 6 static thrust load, length unit code, force unit code, fillet radius, bearing type 7 8 9 10 ll */ // java call xxx IN choice_file(GPS) ini_file forcefile OUT // bearbests choice_file(bearing) DB /* l 2 3 4 5 6-1 7-1 8-1 beardatabase ITEM n 9—1 10-1 11-1 */ pr[1]=fv(argv[2],l,23); pr[2]=try1.StrToFlt(argv[ll-l]); trai=(int)(pr[2]+0.5f); pr[3]=fv(argv[4],1,5); pr[4]=fv(argv[4],1,3); pr[5]=fv(argv[3],1,1); pr[6]=fv(argv[3],l,8); t.dele_file("bn_.tmp"); t.Append("bn_.tmp",argv[6]); B.BearingSel(pr[1],argv[9-1],"bears.tmp",",",11,argv[7— l],trai,1000,pr[3],pr[4],pr[5],(int)(pr[6]+0.5f)); }// end of bearing else if(ate("finish")){ // void finish_sel(String material_type,int item, String mat_file) // --------------- // this is actually finish condition output file // java call xxx IN material_file OUT outfile_finish DB ITEM n // 1 2 3 4 4 5 6 tra_=try1.goto_rec_get_field(argv[2],1,6,","); pr[1]=try1.StrToFlt(argv[6+l]); trai=(int)(pr[1]+0.5f); tryl.dele_file(argv[4]); // fat.finish_sel(tra_,trai,argv[4]); fat.finish_sel("steel",trai,argv[4]); } // finish ends here else if (ate("fatigue")){ /* String fatigue_1 (String bearing_sel, int bear_bore_D_field_no, int bear_fillet_field_no, 109 String shaft_sel, int shaft_D_field_no, String deli, // "," float max_bend_normal_stress, float axial_normal_stress, float torque_shear_stress, String finish_condition, float ultimate_stress, String L_unit // "in" ) */ // java call xxx IN bearingchoicefile GPSchoicefile forcefile // // // // for } for for for l 2 3 4 finishselectedfile materialselectedfile OUT outfile 5 6 7 8 (i=2; i<=6; ++i){ [i]=argv[i]; (i=2; i<=6; ++i) { trs=t.goto_rec_get_field(f_[i],2,1,","); if (trs.equals("b")){ argV[2]=f_[i1; //f_[i]="VVV"; } (i=2; i<=6; ++i) { trs=t.goto_rec_get_field(f_[i],2,l,","); if (trs.equals("m")){ argV[6]=f_[i]; //f_[i]="VVV"; } (i=2; i<=6; ++i) { trs=t.goto_rec_get_field(f_[i],1,l,","); if (trs.equals("m")){ argv[5]=f_[i]; } if (trs.equalS("p")){ argv[5]=f_[i]; } if (trs.equals("h")){ 110 argV[5]=f_[i]; if (trs.equals("g")){ argv[5]=f_[i]; if (trs.equals("f")){ argv[5]=f [i]; for (i=2; i<=6; ++i) { trs=t.goto_rec_get_field(f_[i],2,l,","); if (trs.equals("GPS")){ argv[3]=f_[i]; for (i=2; i<=6; ++i) { trs=t.goto_rec_get_field(f_[i],3,l,","); if (trs.equals("p")){ argv[4]=f_[i]; 1 if (trs.equals("gp")){ argV[4]=f_[i]; } if (trs.equals("g")){ argv[4]=f_[i]; } pr[1]=fv(argv[4],l,3); pr[2]=fv(argv[4],l,5); pr[3]=fv(argv[4],1,2); tra_=tryl.goto_rec_get_field(argv[5],l,l,","); pr[4]=fv(argv[6],1,3); str=fat.fatigue_l(argv[2],3,ll— 1.aIQV[3],20.".",pr[l],pr[2].pr[3].tra_.pr[4]."in"); tryl.dele_file(argv[8]); if (str.equals("in")){ // java call xxx IN bearingchoicefile GPSchoicefile forcefile // l 2 3 4 // finishselectedfile materialselectedfile 111 OUT // // outfile /* static void last(String f, String String String String String String String String initial, force, stress, mat, finish, 9P5: bearing, deli){ ....... */ trs=t.goto_rec_get_field("name.tmp",1,1,","); fl=t.goto_rec_get_field("strname.tmp",l,1,","); f2=t.goto_rec_get_field("bn_.tmp",1,1,","); last(argv[8],trs, f2, "I it); System.exit(0); } if argv[4],fl,argv[6],argv[5],argv[3], (str.equals("out")){ try1.Append(argv[8],"failed"); System.exit(l); } } // fatigue ends here else if(ate("ToIdeas")llate("toideas")){ /* To_Ideas(String String String String String String String String String String String String String String String String String String fA;shaft, fB_shaft, f_bearingAa, f_bearingAb, f_bearingBa, f_bearinng, f_pinion, f_gear, gear, initial, force, stress, mat, finish, 9P5: bearing, fatigue, deli) */ 112 // java call ToIdeas IN gear initial force stress mat // finish gps bearing fatigue OUT f1 f2 f3 f4 f5 f6 f7 f8 // O 1 2 3 4 5 6 7 // 8 9 10 11 12 13 14 15 16 17 // 18 19 for (i=2; i<=10; ++i){ f_[i]=argv[i]; } for (i=4-2; i<=10; ++i) { trs=t.goto_rec_get_fie1d(f_[i],2,1,","); if (trs.equals("b")){ argv[2]=f_[i]; //f_[i]="vvv"; } for (i=4—2; i<=10; ++i) { trs=t.goto_rec_get_field(f_[i],2,1,",")i if (trs.equals("m")){ argV[6]=f_[i]; //f_[i1="VVV"; } for (i=4-2; i<=10; ++i) { trs=t.goto_rec_get_field(f_[i],1,1,","); if (trs.equals("m")){ argv[5]=f_[i]; if (trs.equals("p")){ argv[5]=f_[i]; if (trs.equals("h")){ argV[5]=f_[i]; if (trs.equals("g")){ argV[5]=f_[il; if (trs.equals("f")){ argV151=f_[il; 113 for (i=4-2; i<=10; ++i) { trs=t.goto_rec_get_field(f_[i],2,1,","); if (trs.equals("GPS")){ argv[3]=f_[i]; for (i=4-2; i<=10; ++i) { trs=t.goto_rec_get_field(f_[i],3,l,","); if (trs.equals("p")){ argV[4]=f_[i1; 1 if (trs.equals("gp")){ argV[4]=f_[i]; 1 if (trs.equals("g")){ argv[4]=f_[i]; 1 for (i=4-2; i<=10; ++i) { trs=t.goto_rec_get_field(f_[i],1,1,","); if (trs.trim(1.equals("45")){ argv[8]=f_[i]; 1 for (i=2; i<=10; ++i) { trs=t.goto_rec_get_field(f_[i],1,l,","); if (trs.trim().equals("gh1-l")){ f_[2]=f_[i]; 1 1 Pr111=fv(argv[4] 1113); pr[2]=fV(argv{41,l,5); pr[3]=fv(argv[4],1,2); tra_=tryl.goto_rec_get_field(argv[5],1,1,","); pr[4]=fv(argv[6],1,3); 114 // // // // // // /* java call xxx IN bearingchoicefile GPSchoicefile forcefile 1 2 3 4 finishselectedfile materialselectedfile OUT outfile As a reminder 5 tatic void last(String f, String initial, String force, String stress, String mat, String finish, String gps, String bearing, String deli){ ....... */ trs=t.goto_rec_get_field("name.tmp",1,1,","); f1=t.goto_rec_get_field("strname.tmp",l,1,","); f2=t.goto_rec_get_field("bn_.tmp",1,1,","); // last(argv[8],trs,argv[4],f1,argv[6],argv[5], argv[3lrf21 "I u); // java call ToIdeas IN gear initial force stress mat // finish gps bearing fatigue OUT fl f2 f3 f4 f5 f6 f7 f8 // O 1 2 3 4 5 6 7 // 8 9 10 11 12 13 14 15 16 17 // 18 19 for (i=12; i<=19; ++i){ t.dele_file(argv[i]); 1 T.To_Ideas(argv[12], argv[l3], argv[14], argv[lS], argv[l6], argv[17], argv[18], argv[19].trim(), f_[2], //String gear, trs, //String initial, argv[4],// String force, f1, //String stress, argv[6],//String mat, 115 argv[5],//String finish, argv[3],//String gps, f2, //String bearing, argv[8],//String fatigue, ","); else{} // do nothing here }//main method ends here // ------- out ——————— static void out(String file, int rec, int field,String cont){ //tools try1=new tools(); //try1.repl_fie1d(file,rec,field,",",cont); tr.Append(file, cont); return; // ------- val ——————— static String val(String file, int r, int f){ // file --- file name // r —--— record no. // f ---- field no. String hu; hu=tr.goto_rec_get_field(file,r,f,","); return hu; 1 // ------ fv ------- static float fv(String file, int r, int f){ float hu; hu=fl(val(file,r,f)); return hu; 116 // -------- est_max_pitch ----------- static float est_max_pitch(float speed,float p,float radius){ //using: lb and inch. float[] pitch={120f,96f,80f,72f,64f,48f,32f,24f,20f,16f,12f}; float[] f={65f,82f,98f,105f,115f,140f,l95f,245f,280f,318f,350f}; //forces float forc; float loc; int loc_; forc = tr.Tan_Force(speed,p,radius); loc = tr.locate(f,11,forc); loc_ = (int)( loc+l); return pitch[loc_]; static boolean ate(String method){ String lll="0"; lll=trans_.toLowerCase(); if (lll.equals(method.toLowerCase())) {return true;} return false; // -------- in -------- /* static int in(int i){ return (int)(tr.StrToFlt(input_v[i])); 1*/ 117 // ------- fl --------- static float f1(String in__){ // convert int to float return tr.StrToFlt(in__); 1 static void last(String f, String initial, String force, String stress, String mat, String finish, String gps, String bearing, String deli){ tools t=new tools(); String sl,sZ,s3,s4,sS,s6,s7,s8; String[] s=new String[30]; String d=deli; int i=0; //String[] e1=new String[30]; //String[] e2=new String[30]; String[] el={" stock no. ", " D_bore(in) ", " pitch ", " teech no. ", " pitch diameter(in) ", " pressure angle ", " helical angle ", " hub style ", " face width(in) "1; String[] e2={" stock no. ", " nominal diameter(in) ", " available max length(in) "1; String[] e3={" Tan_force (lb)", " Angle_Ft_Fr", Rad Force(lb)", " Shear Forc(lb)", " Axial Force(lb)" , " Torque(lb in)", " Central Moment(1b in) n, " Moment Y(lb in)", " Moment Z(lb in)", " Total bending moment(lb in)"}; String[] e4={" ShearStress(ksi)"," TortionalShearStress(ksi)"," MaxBendNormalStress(ksi)", " NormalStressDueToAxialForce(ksi)", " NormalStress(ksi)", " ShearStress(ksi)", " Von_Mis_Stress(ksi)"}; String[] e5={ " stock no", " outer D(in)", " bore D(in)", " width(in)", " static radial load(lbs)", " dynamic radial load(lbs)", " static thrust load(lbs)", " length unit code", " force unit code", " fillet radius(in)"," bearing type code"}; 118 t.dele_file(f); sl=t.goto_rec_get_field(gps,1,7,deli); t.Append(f,sl);t.Append(f,sl); .Append(f," SUCCESSFULE"); t.Append(f,"Fatigue Analysis Has Been Finished and This Design is a Well-Done"); t.Append(f,"Gearbox Key Data Are Listed As Follows"); t.Append(f," "); ('1‘ t.Append(f," Basic Data "); /* initial file: 1 max_rot_speed,2 max_power,3 ratio_part_hi,4 ratio_part_low,5 Dmax,6 Dmin, 7 no of helical, 8 life of bearing ...... */ sl=t.goto_rec_get_field(initial,l,1,deli); t.Append(f," Max. rotational speed="+sl+"rpm"); 52=t.goto_rec_get_field(initial,1,2,deli); t.Append(f," Max. power="+52+"w"); 53=t.goto_rec_get_field(initial,1,3,deli); s4=t.goto_rec_get_field(initial,1,4,deli); 55=t.goto_rec_get_field(initial,1,8,deli); t.Append(f," Transmission ratio="+53+" : "+s4); t.Append(f," Design life="+55+"hr"); //t.Append(f," Design life="+55); t.Append(f," "); t.Append(f," Material Data"); /* steel database: AISI No., Condition of Steel Tensile Strength(Ksi), Yield Strength, Machinability, mat type */ // 1 2 3 4 5 6 s6=t.goto_rec_get_field(f,1,6,d); s7=t.goto_rec_get_field(f,1,1,d); 58=t.goto_rec_get_field(f,1,2,d); t.Append(f," AISI No.="+s7); t.Append(f," Material="+s6); t.Append(f," Condition="+s8); sl=t.goto_rec_get_field(f,1,3,d); t.Append(f," Tensile Strength(Ksi)="+ sl); sl=t.goto_rec_get_field(f,1,4,d); t.Append(f," Yield Strength(Ksi)="+ sl); sl=t.goto_rec_get_field(f,1,5,d); t.Append(f," "); t.Append(f," Machinability="+sl); 119 /* choice_file(GPS): stock no., D_bore, pitch, teech no., pitch diameter, pressure angle, helical angle, hub style, face width 1 2 3 4 5 6 7 8 9 stock no., D_bore, pitch, teech no., pitch diameter, pressure angle, helical angle, hub style, face width 10 ll 12 13 14 15 16 17 18 stock no., nominal diameter, length, stock no., nominal diameter, length, cal_length 19 20 21 22 23 24 25 */ // Note: Pinion comes first. t.Append(f," "); for(i=0; i<25; ++i){ s[i]=t.goto_rec_get_field(gps,1,(i+l),d); t.Append(f," Pinion Data"); for(i=0; i<9; ++i){ t.Append(f,e1[i]+"= "+s[i]); 1 t.Append(f," "); t.Append(f," Gear Data"); for(i=9; i<18; ++i){ t.Append(f,e1[i-9]+"= "+s[i]); 1 t.Append(f," "); t.Append(f," Pinion Shaft Data"); for(i=18; i<21; ++i){ t.Append(f,62[i-18]+"= "+S[iJ); 1 t.Append(f," "); t.Append(f," Gear Shaft Data"); for(i=21; i<24; ++i){ t.Append(f,e2[i-21]+"= "+s[i]); 1 t.Append(f," "1; sl=t.goto_rec_get_field(finish,1,1,d); t.Append(f, " Finish Condition = "+sl); 120 t.Append(f," "1; // force file: /* Tan_force, Angle_Ft_Fr, Rad Force, ShearForce, AxialForce, Torque, Central Moment, 1 2 3 4 5 6 7 Moment Y, Moment Z, Total bending moment 8 9 10 */ // There are three lines in the stress file. The second line // might be "0". // The first line will always consist of non—zero fields. // The third line contains only one field which can be "g" or // "p" or 0'gp". // Obviously, the 3rd line serves as an indicator indicating // that /* g ----- first line is pertaining to gear shaft data p ----- first line is pertaining to pinion shaft data gp -—-— first line —-> gear shaft data second line -—> pinion shaft data */ sl=t.goto_rec_get_field(force,3,l,d); if (sl.equals("g")){ t.Append(f," Pinion Forces and Moments"); for (i=1; i<1l; ++i){ s[i]=t.goto_rec_get_field(force,1,i,d); t.Append(f,e3[i-l]+"="+s[i]); 1 if (sl.equals("g")){ t.Append(f," Gear Forces and Moments"); for (i=1; i<11; ++i){ s[i]=t.goto_rec_get_field(force,l,i,d); t.Append(f,e3[i-1]+"="+s[i]); 1 if (sl.equals("gp")){ 121 t.Append(f," Gear-Pinion Forces and Moments (gear data come first)"); for (i=1; i<11; ++i){ s[i]=t.goto_rec_get_field(force,1,i,d); t.Append(f,e3[i-1]+"="+s[i]); 1 for (i=1; i<1l; ++i){ s[i]=t.goto_rec_get_field(force,2,i,d); t.Append(f,e3[i-1]+"="+s[i]1; 1 t.Append(f," "1; // Stress file: // -------------------------------------------------------- /* ShearStress, TortionalShearStress, MaxBendNormalStress, NormalStressDueToAxialForce, l 2 3 4 NormalStress, ShearStress, Von_Mis_Stress 5 6 7 */ t.Append(f," Stresses"); for(i=1; i<=7; i=i+l){ s[i]=t.goto_rec_get_field(stress,1,i,d); t.Append(f,e4[i—1]+"="+s[i]); 122 // bearing file format: /* stock no, outer D, bore D, width, static radial load(lbs), dynamic radial load, 1 2 3 4 5 6 static thrust load, length unit code, force unit code, fillet radius, bearing type 7 8 9 10 ll */ t.Append(f," "); t.Append(f," Bearing Data"); for (i=1; i<=11; ++i){ s[i]=t.goto_rec_get_field(bearing,l,i,d); t.Append(f,e5[i—1]+"="+s[i]); t.Append(f,t.goto_rec_get_field("idf.tmp",1,1,",") +","+t.member[2-1]); return; 1 1 // class ends here 123 E .Sample Execution Procedure and the Iflgut/Output Gearbox Desigg gb.tmp: the name of the single-lined GPSselected file used for testing. IN=INPUTS OUT=OUTPUT DB=DATABASE item=ITEM Initial Input File: input.dat Database Files: gear_1.db shaft_l.db steel.db l) G/P/S selector java call GPSselector IN input.dat OUT gb.tmp DB gear_1.db shaft_l.db item 0 java call GPSselector IN input.dat OUT gb.tmp DB gear_1.db shaft_l.db item 1 java call GPS IN input.dat OUT gb.tmp DB gear_1.db shaft_l.db item 0 2)a pre-evaluation function java call where IN gb.tmp input.dat OUT go.dat 3)Forces Calculations any of the following three productions java call g_s_force IN gb.tmp input.dat OUT force.dat java call p_s_force IN gb.tmp input.dat OUT force.dat java call bothforce IN gb.tmp input.dat OUT force.dat 4) Material Selector java call steel IN df OUT mat.dat DB steel.db ITEM 0 5) Stress Analysis java call stress IN gb.tmp force.dat mat.dat OUT stress.dat 6) "Bear" Selector java call bearing IN gb.tmp input.dat force.dat OUT best_bearing.dat DB bearing.db ITEM 0 124 71 Surface Finish Condition Selector java call inish IN steel.db OUT finish.dat DB ITEM 0 8) Fatigue Analysis java call fatigue IN bestnbearing.dat gb.tmp force.dat finish.dat mat.dat OUT fat.dat 9) To I—Deas java call ToIdeas in gear_l.db input.dat force.dat stress.dat mat.dat finish.dat gb.tmp best_bearing.dat fat.dat OUT f1 f2 f3 f4 f5 f6 f7 f8 10) pre—eval. java cell where IN gb.tmp input.dat CONS const.dat IO "io gh" ALTs PinionForce GearForce BothForce FGM Desigg Material Selector ‘1 java FGM_Mat“Se1_Kwon INPUTS OUTPUTS mat BD Materials_FGM.do item 0 Micro~Mechanics Calculations ghnnew.bat INPUTS mat OUTPUTS funct Calculation of Temperature Distribution Dist_new.bat INPUTS mat fraction? OUTPUTS tempD 1.gif 2.gif Calculate stresses and displacements stress_fgm;new.bat INputs tempD funct fraction OUTputs st.gif st *Note: the order of the three inputs is arbitrary Calculate effective stress and compare with yield stress java StressAnalysis INPUTS st mat OUTPUTS effstrs *Note: if the effective stress is higher than the yield stress, the program will report a failure(exit(l)) and you should go back and try another volume fraction function. 125 Effective stresses comparison java finalcompare INPUTS effstrsl effstrsZ effstrs3 effstrs4... OUTPUTS Best *Note: there can be as many input files as possible. Since there, at this point, are only four types of volume fraction functions, there are only four input files which contains effectives stresses corresponding to different types of volume fraction function. IMPORTANT, READ Carefully: we should NOT go further to conduct this task until all four or whatever number of effective stress files are all ready. If there are more volume fraction functions to try, just go back to calculation of temperature distribution and try a new input and go all the way through to get the effective stress file for that particular fraction function. Repeat this till there is not more volume fraction function to try. 126 References 127 References George E. Dieter, Engineering Design, A Materials and Process Approach, McGraw-Hill, 1991 . Clive L. Dym, Engineering Design, Cambridge University Press, 1994 . T. Winograd and F. Flores, Understanding Computers and Cognition, Ablex publishing, Norwood. NJ, 1986 . C. L. Dym and R. E. Levitt, Knowledge-Based Systems in Engineering, McGraw- Hill, New York, 1991 . M. Asimow, Introduction to Design, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1962 . J. L. Nevins and D. E. Whitney (eds), Concurrent Design of Products and Processes, McGraw-Hill Publ. Co., New York, 1989 . David Belson, Handbook of design, manufacturing and automation, Chapter 2, Concurrent Engineering, John Wiley & Sons, Inc., 1994 . Y. Hazony, Towards the Factory of the Future, Perspectives in Computing(IBM), 3(4), 4-11 (Dec. 1983). . Carl Machover, The CAD/CAM Handbook, McGraw-Hill, 14 — 17, 1996 128 10. Y. Hazony, Chapter 8, Handbook of Design, Manufacturing and Automation, John Wiley & Sons, Inc., 1994 11. L. Zeidner and Y. Hazony, Seamless Design-to-Manufacturing, Journal of Manufacturing Systems, 11(4), 269-284, 1992 12. Chung, M. J., Carmichael, L., and Dukes, M., 1996, Managing a RASSP Design Process, Computers in Industry, 30, pp. 49-61 13. Cutkosky, M. R., Tenebaum, J. M., and Glicksman, J., 1996, Madefast: Collaborative Engineering over the Internet, Communications of the ACM, 39, 9, pp. 78-87 14. Lyons, K. RaDEO Project Overview, [Online] Available http://www.cs.utah.edu/projects/alpha/arpa/mind/index.html, 1997 15. Berners-Lee, T., Cailliau, R., Luotonen, A., 1994, The World- Wide Web, Communications of the ACM, 37, 8 16. Erkes, J. W., Kenny, K. B., Lewis, J. W., Sarachan, B. D., Sobololewsky, M. W., and Sum, R. N., Implementing Shared Manufacturing Services on the World- Wide Web, Communication of the ACM, 39, 2, pp. 34-45, 1996 17. Andreoli, J-M., Pacull, F., and Pareschi, R., 1998, XPECT: A Framework for Electronic Commerce, IEEE Internet Computer, 1, 4, pp. 40-48 18. Mark Klein, Integrated Support for Process, Conflict, and Rationale Management in Coorperative Design, Handbook of Design, Manufacturing and Automation, page 65- 75, 1994 19. RC. Smith, The Contract Net Protocol: High-level Communication and Control in a Distributed Problem Solver, IEEE Trans. Comput. C29(12), 1104-1113, Dec. 1980 129 20. T. Winograd, “A Language / Action Perspective on the Design of Cooperative 21. 22. 23. 24. 25. 26. 27. 28. 29. Work”, Proc. CSCW 86, page 203-230, 1986 B94 Precision Mechanical Components, W.M.Berg, Inc, 1996 Arthur H. Burr, and John B. Cheatham, Mechanical Analysis and Design, Prentice Hall, 1995 Marks’ Standard Handbook for Mechanical Engineers, eighth edition, McGRAW— HILL Book Company, page 8-138 through 8-140, 1979 Design of Transmission Shafling, ANSI/ASME B 106.1M-1985, pp. 4-6, 1985 F. W. Paul, Jr. and TR. Faucett, The Superposition of Stress-Concentration Factors, J. Engrg. Industry, Trans. ASME, Vol. 84, pp. 129-134, 1962 Mori, T. and Tanaka, K. Average Stress in Matrix and Average Elastic Energy of Materials with Mistifitting Inclusions, Acta Metallurgica et Materialia, 21, pp. 571- 574, 1973 Wu, T. T., The Effect of Incluction Shape on the Elastic Moduli of a Two-Phase Material, International Journal of Solid and Structure, 2, pp. 1-8, 1985 Eshelby, J. D., The Determination of the Field of an Ellipsoidal Inclusion and Related Problems, Proceeding of the Royal Society, Lodon A, 241, pp. 376 — 396, 1957 Hatta, H. and Taya, M., Equivalent Inclusion Method for Steady State Heat Conduction, International Journal of Engineering Science, 24, pp. 1159 — 1172, 1989 130 so. Timoshenko, s. P. and Goodie, J. (3., Theory of Elasticity, 3'“I Edition, McGraw-Hill, N.Y., P. 442, 1970 131