Automated CAD Assembly and its Application in DOME by Prabhat K. Sinha Bachelor of Technology in Mechanical Engineering Indian Institute of Technology, Kanpur, India (2000) Submitted to the Department of Mechanical Engineering in Partial Fulfillment of the Requirements for the degree of Master of Science in Mechanical Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 2002 C2002 Massachusetts Institute of Technology All rights reserved Signature of Author............................. Department of Mechanical Engineering 8, 2002 AIM Certified by..................... ........ . ............. Professor David R. Wallace Esther and Harold Edgerton Professor of Mechanical Engineering Thesis Supervisor Accepted by........................................._.. Professor Ain A. Sonin Chairman, Departmental Committee on Graduate Students MASSACHUSETTS [NSTITUTrE OF TECHNOLOGY OCT 2 5 2002 LIBRARIES BARKER MIT Libraries Document Services Room 14-0551 77 Massachusetts Avenue Cambridge, MA 02139 Ph: 617.253.2800 Email: docs@mit.edu http://libraries.mit.edu/docs DISCLAIMER OF QUALITY Due to the condition of the original material, there are unavoidable flaws in this reproduction. We have made every effort possible to provide you with the best copy available. If you are dissatisfied with this product and find it unusable, please contact Document Services as soon as possible. Thank you. Due to the quality of the original material there is some bleed through. el Automated CAD Assembly and its Application in DOME by Prabhat K. Sinha Submitted to the Department of Mechanical Engineering on May 8, 2002 in partial fulfillment of the requirements for the degree of Master of Science in Mechanical Engineering Abstract Solid modeler/CAD (Computer Aided Design) packages do not fully automate the assembly of parts. This is primarily because solid modelers cannot interpret the design intent of an assembly and thus think like an assembly engineer. One is required to specify low-level mating constraints between parts to assemble them together, which can be both tedious and time consuming. This affects the product development cycle. This work is intended to provide the basis for an efficient tool to assembly engineers that will help them in faster assembly of parts, analyze the assembly system efficiently and produce results quickly. While such a methodology could never replace/substitute for CAD assembly engineers, it may help to reduce tedious procedural assembly tasks. The thesis discusses issues associated with trying to increase the level of automation in a CAD assembly processes. Considerations that might be helpful for developing an Automatic Assembly Algorithm (AAA) are detailed. These include dimensions, topology, geometry, feature, functionality, orthographic views, assembly constraints etc. This work is a starting step towards automating the assembly of CAD parts. The long- range vision is to more fully automate the assembly process and do the full analysis of the assembly in the virtual environment. The automated assembly concept may also be useful in DOME (Distributed Object-based Modeling Environment) for building heterogeneous CAD assemblies, where parts from different distributed CAD systems can be assembled together to create a parametrically editable assembly. Thesis Supervisor: David Wallace Title: Esther and Harold E. Edgerton Associate Professor 3 MassachusettsInstitute of Technology - Computer Aided Design Laboratory 4 MassachusettsInstitute of Technology - ComputerAided Design Laboratory Acknowledgments I wish to express my sincere gratitude to Professor David Wallace, my thesis advisor, for his constant support, encouragement and insightful guidance during my stay at MIT. He offered just right amounts of structure and flexibility - research support with allowance to go where the research takes me. I have gained a lot, both academically and in personal life, while interacting with him. He is a wonderful teacher and a good friend. I thoroughly enjoyed working with him. I am happy to have had the opportunity to work with him. Thanks to all the MIT CADlab students, Aubrey Williams, Kristie Yu, Ines Sousa, Qing Cao, Twiggy Chan, Sane Wu, Rainer, Vishal and Charles for bringing up a family like atmosphere in the lab that had a great refreshing effect during day to day research work. The lab has been home-away-from-home during my life at MIT. Thanks to Leslie Regan and Maureen Lynch for taking care of all the administrative matters. My very special thanks to Elaine Yang for all the help in the lab. I thoroughly enjoyed interacting with her. Despite her own busy schedule, she has always been ready to help me out in various aspects of CATIA@ programming and other computer related problems. She always encouraged and motivated me. I really admire her for her perseverance and penchant for perfection and working with her has been a memorable experience. Special thanks to Darcy for her help in searching papers for my research. She always wholeheartedly welcomed my queries in library related issues. My very last, but the most precious thanks to my family. Mom and Dad, I really missed you here. Ajit Bhaiya, I missed you too. Chatting R-brothers had also been refreshing. Thanks for all the belief in me, and providing me a lifetime emotional support and motivation without even knowing it. 5 MassachusettsInstitute of Technology - Computer Aided Design Laboratory Table of Contents A B ST R AC T ........................................................................................... 3 ACKNOWLEDGEMENTS .......................................................................... 5 TABLE OF CONTENTS...............................................................................6 LIST O F FIGU R ES ...................................................................................... 9 LIST OF TABLES .................................................................................... 9 LIST OF ACRONYMS AND SYMBOLS.......................................................10 1. INTRODUCTION.............................................................................11 1.1 V ision ............................................................................... 12 1.2 Mission: Goal and Deliverables of this Thesis.................................12 1.3 Automated Assembly and its Role in Product Development Process.....12 1.4 Organization of Thesis...............................................................15 2. BACKGROUND............................................................................17 2.1 Evolution of CAD Package.......................................................17 2.2 Extensive Mouse Click/ Key Pressing Operation and RSI.....................18 2.3 Repetitive Tasks and its Effect on Creativity and Productivity.............19 2.4 Experience of a Ford Engineer..................................................20 2.5 Work in Assembly Planning and Automated Assembly........................20 3. CAD ASSEMBLY: CURRENT STATUS.............................................22 3.1 Generic Assembly Process In CAD Packages.................................22 3.2 Illustrative Assembly Example in SolidWorks®...............................23 6 Massachusetts Institute of Technology - Computer Aided Design Laboratory 4. FACTORS FOR AUTOMATING CAD ASSEMBLY...............................28 4.1 Concept Overview................................................................28 4.2 Factors for Automating Assembly.............................................28 4.2.1 Dimension Driven CAD Assembly..............................28 4.2.2 Topology Driven CAD Assembly.............................31 4.2.3 Geometry Driven CAD Assembly............................35 4.2.4 Functionality Driven CAD Assembly.........................36 4.2.5 Feature Driven CAD Assembly..................................36 4.2.6 Orthographic View Driven CAD Assembly.................38 4.2.7 Library Driven CAD Assembly..................................41 4.2.8 Constraints Driven CAD Assembly..............................42 4.2.9 Other Factors Helpful for Automating CAD Assembly.......44 4.3 PROPOSED METHODOLOGY..................................................45 5. EXTRACTING PART INFORMATION FROM CATIA SOLID MODELS........47 5.1 Introduction to CATIA@.............................................................47 5.2 CATIA@ Plugin.....................................................................48 5.3 Example and Discussion of Obtained information..............................52 6. AUTOMATED ASSEMBLY AND ITS APPLICATION TO DOME.............55 6.1 Introduction to DOME and Overview of its Architecture.......................55 6.2 Assembly Work in DOME.......................................................56 6.3 ST E P ................................................................................. 60 6.4 IG ES ................................................................................. 61 7 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 6.5 Proposed Methodology...............................................................63 7. C O N C LU SIO N S .............................................................................. 66 7.1 Sum mary .............................................................................. 66 7.2 Advantages of Automated CAD Assembly.......................................67 7.3 Challenges and Limitations.........................................................68 7.4 Future W ork...........................................................................70 APPENDIX A: Evolution of CAD Database....................................................71 APPENDIX B: Program for Extracting Part Information in CATIA@.........................72 APPENDIX C: STEP (AP214) of the Peg ....................................................... 77 APPENDIX D: IGES of the Peg .................................................................. 83 R EFE R ENC ES ........................................................................................ 89 8 Massachusetts Institute of Technology - Computer Aided Design Laboratory List of Figures Figure 1: Flow chart: Product Development Process.....................................................13 Figure 2: Assembly in Product Development Process................................................... Figure 3: A Peg (Part 1)....................................................................................... Figure 4: A Cone (Part 2).....................................................................................23 13 23 Figure 5: Base Part (Part 3)..................................................................................23 Figure 6: Parts in assembly..................................................................................24 Figure 7: Concentric assembly mating........................................................................25 Figure 8: Coincident assembly mating........................................................................25 Figure 9: Other assembly matings..............................................................................26 Figure 10: Assembly automation of angle bracket subassembly using dimension information........30 Figure 11: Difference between geomery and topology of an object....................................32 Figure 12: The geometric (a) and topological (b) elements that define a simple cube...............33 Figure 13: Topologically same and geometrically different Solid Models............................34 Figure 14: Using topological information for automating CAD assembly.............................35 Figure 15: Feature based approach for automating peg, cone and base part CAD assembly...........38 Figure 16: Orthographic views generated in CATIA@..................................................39 Figure 17: The lower figure represents skeletal representations of the figure above.................41 Figure 18: Set of assembly rules for standard library parts..............................................42 Figure 19: Basic flow chart of automated assembly in a CAD package...............................45 Figure 20: Pseudo code for assembling hole-shaft feature..................................................45 Figure 21: Extracting various parameters and properties of the peg (shown top right).................52 Figure 22: Extracting various parameters and properties of the cone (shown top right)...............53 Figure 23: Extracting various parameters and properties of the cone (shown top right)................54 Figure 24: Step 1: The two participants publish their CAD models and wrap them in DOME........56 Figure 25: Step 2: The engineer drives the supplier's CAD model parametrically from DOME......57 Figure 26: Step3: The supplier drives the engineer's neutral file service by linking it to his own....58 Figure 27: The engineer incorporates the new part into his assembly.................................59 Figure 28: The engineer rebuilds his assembly by driving the supplier's model.....................66 Figure 29: Different ways of defining a cone..............................................................69 List of Tables Table 1: Total number of mouse clicks for the cone-peg assembly....................................27 9 MassachusettsInstitute of Technology - Computer Aided Design Laboratory List of Acronyms and Symbols AAA Automatic Assembly Algorithm ANSI American National Standards Institute CAD Computer Aided Design CADLab Computer Aided Design Laboratory DFA Design for Assembly DOF Degrees of Freedom DOME Distributed Object-based Modeling Environment H-CAD Heterogeneous CAD IGES Initial Graphics Exchange Specifications ISO International Organization for Standardization KC Key Characteristics LUT Look Up the Table MIT Massachusetts Institute of Technology NF Neutral File NIST National Institute of Standards and Technology OEM Original Equipment Manufacturer PDM Product Data Management RADE Rapid Application Development Environment RSI Repetitive Stress Injury STEP Standard for the Exchange of Product Model Data 2-D Two Dimensional 3-D Three Dimensional 10 MassachusettsInstitute of Technology - Computer Aided Design Laboratory 1 Introduction Accelerating time to market with improved product quality is one of the driving forces encouraging companies to seek high level of automation in the product development process. The corporate world has placed emphasis on reducing cost and increasing the quality of assembled products and thus improved techniques for producing finished assembled products are part of this trend. In a complex product, assembly is often the dominant cost process in comparison to detail part manufacturing operations. For Example, it has been argued that more than 30% of manufacturing cost or financial value of a civil aircraft is incurred during assembly [1]. With the automation of CAD assembly, the time and resources to analyze the assembly will decrease, which, in turn, should drive down the total assembly cost. In addition, for the case of new products, a thorough and detailed assembly analysis is required before a production system is conceived, designed and built, and successful assembly operations can be achieved. Computer-aided Design (CAD) activities are integral parts of Product Design and Development. Currently, the process of assembling parts in CAD packages requires the user to execute many repetitive steps. Thus, the process of assembly within a CAD system might be further explored to minimize repetitive, low information adding tasks. CAD systems do not reason about parts in the way assembly engineers think while performing assembly analysis, or as assembly workers think while working in an assembly plant. Thus, engineering must build CAD assemblies in an unnatural language. In addition, it is simply 11 MassachusettsInstitute of Technology - Computer Aided Design Laboratory time consuming to specify low-level assembly mating constraints in cases where parts can assemble in only one possible way. 1.1 Vision The long- range vision is to more fully automate assembly process of CAD solid models by reducing the number of procedural assembly steps, which add little information, and to provide the full analysis of assemblies in a virtual environment. With the helps of enabling tools, assembly engineers will be able to assemble parts quickly and analyze assembled systems in a rapid development cycle. 1.2 Mission: Goal and Deliverables of the Thesis The goal of the thesis is to identify various factors that can help in the automation of solid models assemblies in CAD environments and to explore the benefits of such methodology in a DOME platform. DOME is a modeling infrastructure that is intended to create a global community, or marketplace, of individuals offering access to simulation services related to their own specialties, much as the WWW has enabled worldwide access to information ([37], [38] and [39]). There are four major components of the thesis. First, there is a description of current status of assembly in CAD system. Second, various factors that can help in automating the assembly process and the methodology for automation of assembly are discussed. Third, a plugin that extracts various part related information from solid models of part made in CATIA@ is described. Fourth, there is a discussion on the possible application of automated assembly methodology in DOME. Following section describes a generic product development process and identifies stages (of the product development process) at which automation of CAD assembly can be helpful. 1.3 Automated Assembly and its Role in Product Development Process A product development process is the sequence of steps or activities, which an enterprise employs to conceive, design and commercialize a product [2]. Product Design includes every technical aspect of the product, from the purchasing of components to manufacturing, assembly, service and obsolescence. Ulrich and Eppinger's flow chart representation for a 12 MassachusettsInstitute of Technology - Computer Aided Design Laboratory generic product development process is shown in Figure 1. The process begins with a mission statement and ends with product launch. There are seven key activities in between. Mission Statement h. Identify Ietf Customer Needs Establish Generate Target Specifications Product Concept Select o Product Concept(s) - 4-I 4-I Set Final Specifications Test ----Product Concept(s) Prototype and 10 Downstream Development Development Plan Figure 1: Flow Chart: Product Development Process Thinking about the assembly of parts, either directly or indirectly, comes at various stages of the product development process as shown in Figure 2. The proposed Automated Assembly Algorithm (AAA) may help in various steps of the product development process. Mission Statement . Identify Customer Needs Establish Target Specifications S.-ect froduct oncept concept(s) 4,1 Development Prototype and Product Concept(s) -- Downstream pDevelopment Figure 2: Assembly in Product Development Process 13 MassachusettsInstitute of Technology - Computer Aided DesignLaboratory Plan Depending upon the need, the CAD may be used in the early stages of the product development process, starting from the concept generation stage. The goal of the concept generation stage is to thoroughly explore the space of product concepts that may address the customer needs and solid modeling may not initially be useful in this stage. However, the strength of CAD comes into play when designers wants to understand part interactions in an assembly which otherwise is not possible in 2-D sketching. In addition, CAD models help in the communication of concepts between team members. Concept generation activities usually result in a set of 10 to 20 concepts. The next stage in the product development process is Concept Selection (step 4, Figure 2). Concept selection is the activity in which product concepts are analyzed and sequentially eliminated to identify the most promising concept(s). Once a solid model is made (and if it has been made in step 3 of Figure 2) it can help the product design team during concept selection. In step 5, Test Product Concepts, the shortcomings of selected concept(s) are identified and many incremental variations are produced. The configuration of an assembly any of its parts can be modified in a solid modeler and then reassembled automatically with Automatic Assembly Algorithm (AAA). Up until step 5 of the product development process, a CAD system may or may not be used depending upon the need. But, in the following step, Set Final Specifications, it is important to use CAD systems in most cases. This step requires the careful analysis of the assembly and setting up final part dimensions and tolerances before prototyping. Error or mistakes in this phase can lead to large expenses in the prototyping phase. The need and impact of the automatic assembly process is the most in this phase where parts are designed and changed iteratively and is assembled together to see if all the parts fit together correctly. In addition to new product development, the automatic assembly of parts is useful when some parts of an existing design are modified and parts of the subassembly should reassemble in the same, similar or different way. Section 2.4 describes experience of a Ford 14 MassachusettsInstitute of Technology - ComputerAided Design Laboratory engineer where he hard-coded automatic assembly code in I-DEAS@ for assembling standard engine parts. As a part of his job he had to reassemble modified standard engine parts which were sent to him from various design specialists (heat and fluid specialist, assembly engineer, part design engineer etc.). Automating assembly using hard-coded part specific procedures made him much more efficient in his day-to-day activities, leaving more time for creative thinking. 1.4 Organization of Thesis In chapter 2, background materials for the thesis is presented. The evolution of CAD packages is described with an emphasis on the wide range of capabilities of contemporary CAD packages. Next, Repetitive Stress Injury (RSI) due to extensive mouse clicking operations and key pressing is discussed. The effect of repeated tasks on creativity and productivity is also explained. The experience of a Ford Motor Company engineer is described who hard-coded an automatic assembly code for assembling a set of standard engine parts is presented. The chapter concludes with review of past research work in assembly planning and automated assembly. In chapter 3, current status of generic assembly process in CAD Packages is described. The generic assembly process is illustrated by taking example of three simple solid model designed and assembled in SolidWorks®. Chapter 4 discusses factors that should be helpful in automating the assembly process. The overall concept of automated assembly is also provided. An overview of proposed methodology and description of the knowledge base that is essential for the implementation of the concept is discussed. A basic flow chart of the process of automated assembly is provided. In chapter 5, the CATIA® plugin for extracting part information is described and is illustrated by taking examples. Discussion on the nature of parameters obtained with the help of plugin is also presented. 15 Massachusetts Institute of Technology - Computer Aided Design Laboratory In chapter 6 the concept of DOME is described briefly. An assembly process in the DOME environment is explained as a methodology has been proposed for implementing automated assembly in DOME environment [40]. Factors that affect the extent of assembly automation are also listed. Chapter 7 summarizes the work presented in the thesis with conclusions and advantages. Limitations and challenges of the proposed automated methodology are discussed. Direction for future studies and work is also provided. 16 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 2 Background 2.1 Evolution of CAD Packages CAD packages have evolved considerably since their advent in the mid 1960s. The design tasks in earlier CAD packages were restricted to describing parts geometrically by creating drawings using orthographic projections. The first 3D CAD system appeared in early 1970s with the capability of simple skeletal wire frame drawings [3]. Thereafter, important milestones on the road of 3D development involved wire frames with hidden line removal, two and a half D', 3D surface modeling and then 3D Solid modeling. CAD systems presently fall into two general categories: those based on entities and those based on solids or features [4]. The entity based CAD system has basic entities such as line, circle or arc, spline etc, and it can be thought of as a powerful implementation of the drawing board. An example of such system is AutoCAD. On the other hand, in solids or feature based CAD systems, the design process starts with creating a solid model using primitive shapes or features. Examples include solid extrusions, revolved solids, or solid created from general surfaces. There are also solid removal features such as holes, cut and chamfers. In addition, these solid modelers are parametric. This allows the part to be reshaped by changing dimensions. The parametric CAD system automatically reshapes the model or part when the dimensions or parameters are modified. Examples of such systems are Pro/ENGINEER@, I-DEAS@, CATIA® and Unigraphics@. 1Two and a half D means that Drawing objects, like lines, circles etc. having a "Thickness" value. Thickness in fact means height! All the data is the same size, a zero thickness is stored in the same manner as a height of 1000. This is how AutoCAD started "3D" in 1985 with Version 2.6. 17 MassachusettsInstitute of Technology - ComputerAided Design Laboratory With the evolution of part design within a CAD system, CAD databases have also evolved in a parallel. While earlier databases were developed to store 2D drawings, recent databases are capable of storing data corresponding to the solid model, shape extraction and product model. Appendix A provides a schematic representation of CAD Database evolution. The aforesaid development in part design within a CAD package and the corresponding evolution in the internal representation of a solid model in its database has enabled CAD systems to understand various aspects of a parts, similar to the way we may understand geometry. Hence, it is now a natural choice to delve into the automation of CAD assembly process by investigating the thought process of an assembly engineer and exploring other factors that can help the automation process. One of the main drawbacks of the assembly process with current CAD packages is that it requires extensive clicking of mouse buttons, dragging mouse while holding one of its buttons and providing various inputs with the help of keys. Next section describes the adverse effect of such repetitive operations. 2.2 Extensive Mouse Click (mousing)/ Key Pressing (keying) Operation and RSI References [5] and [6] indicate that the majority of Repetitive Stress Injuries (RSI) are related to extensive computer use. Repetitive Stress Injuries (RSI) are injuries involving damage of muscles, tendons and nerves caused by overuse or misuse. Repetitive Stress Injuries develop slowly over time; thus, they are also called Cumulative Trauma Disorders (CTD) or Muscular Skeletal Disorders (MSD). They usually affect hands, wrists, elbows, arms, shoulders, back, or neck. The repetition of small, rapid movements, such as keying or mousing for concentrated period, results in RSI. In order to assemble parts in the CAD assembly environment, the user has to perform several mouse click operations, and hold and drag the part to the desire place for assembly. Using a CAD environment in itself requires extensive mousing and keying operations, many of which are essential and necessary. Nevertheless, with concepts developed in this thesis, 18 Massachusetts Institute of Technology - Computer Aided Design Laboratory the automation of assembly processes should eliminate or minimize keying and mouse click operations by increasing the level of automation. 2.3 Repetitive Tasks and Effects on Creativity and Productivity People will be most creative when they feel motivated by the interest, enjoyment, satisfaction, and challenge of the work itself. Repetition in task leads to lack of interest, enjoyment, and satisfaction [7]. Creativity is an important tool that organizations can use to increase their effectiveness, competitiveness, and long-term survival [8]. A repeated task does not pose new challenges. The process of specifying low level mating constraints involves several mouse click operations including selecting parts, performing check button and 'OK' operations are such tasks. The repetition of such tasks naturally decreases the interest, enjoyment and satisfaction, which in turn reduces productivity. Within my own and my peers' experience in using CAD for assembly, I am convinced that spending thought on the procedural operations of the assembly detracts mental energy from thinking about the key issues of design and assembly. Hence, the person doing such operations is not at his creative best. The effect of CAD on creativity had been studied since as early as late 1970s. In 1977, Negroponte [9] mentioned that the then CAD systems were marked by a complete disregard for the notion of creativity. In a CAD article, "Technology, good for the pocket, bad for the soul!" [10], one CAD Engineer says of his experience, "I cannot help but feel that some of the pride, some of the soul is gone from the my drawings and instead of feeling like the artist I once was, I feel like a robot on a production line...". This statement also reveals how the mundane task reduces the creativity and interest in the job. Langner et al [11] studied effects of computer aided design work on the design process by conducting various field experiments. Their study focused on the influence of 3 different design tasks (standard tasks) and 11 CAD-systems (2D and 3D), taking into account the performance and strain measurements of 43 subjects (15 design engineers, 8 technicians, 17 19 MassachusettsInstitute of Technology - Computer Aided Design Laboratory draftsmen, 3 trainees). They found that deficits and complications in handling the CAD systems increase with the complexity of the system and thus cause an adverse effect on performance and strain of its operators: creativity is reduced by friction and frustration in system handling, even if the operator is highly trained. 2.4 Experience of a Ford Engineer The experience of Ford Motor Company engineer, Rob Mecoli (rmecoli@FORD.com), of the power train group, is one of my motivations to explore CAD assembly automation. He wrote automatic assemble code in I-DEAS@ for assembling standard engine parts. He defined the particular mating surface and the nature of constraints in a code that works like LISP to generate an assembly. This limits the work that he needs to do repeatedly when parts are modified parametrically. The example also shows that generic automatic assembly would be helpful in industry. Ideally, it would also be very useful for new product development, not just parametric variations of mature designs. 2.5 Work in Assembly Planning and Automated Assembly There is a large body of work in the area of assembly planning and the automated assembly of parts using robotic systems ([12], [13], [14], [15], and [16]). Chakraborty, et al [12] describes representation of an assembly as a hierarchy of assembly structures. Given a description of an assembly to be manufactured, the assembly sequence planner identifies subassemblies and generates high-level plan for the construction of each subassembly, including the final assembly. Mello [13] presents an algorithm for generating all mechanical assembly sequences by transforming the problem of generating assembly sequences into the problem of generating disassembly sequences, in which the disassembly tasks are the inverse of feasible assembly tasks. Weule et al [14] and Gu et al [15] worked on generating the sequence of operations for assembly lines by evaluating CAD-database and extracting the necessary information. Dini et al [16] describes a procedure for the selection of the subassemblies and the assembly sequences of a product based on a mathematical model of the product, obtained through the definition of three matrices: the interference matrix, the contact matrix and the connection matrix. 20 MassachusettsInstitute of Technology - ComputerAided Design Laboratory In contrast, there seems to be little work on automated assembly planning within the CAD systems themselves. The work presented in this thesis develops a framework whose implementation will help in automating (either partially or fully) assembly processes in CAD systems. The assembly process within solid modelers ideally will have analogies to the actual manufacturing assembly process. If we are to improve the CAD assembly process, it is important to think about the following questions: How do we physically assemble? What factors does an Assembly Engineer think about while assembling parts? How a factory worker thinks while assembling parts in assembly line? It is often required by students (specially in Mechanical Engineering) to draw a solid model of parts and then assemble those part models into assembly. For these, after making the parts, students have to do various click operations (similar to what stated in the next chapter, CAD Assembly: Current Status) to assemble those parts. The simplification of the assembly process with the help of increased automation will give students more time to think on actual design and assembly related issues. 21 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 3 CAD Assembly: Current Status 3.1 Generic Assembly Process in CAD Packages The need for a new type of assembly process within CAD systems comes from the experience of using several CAD packages (Solid Works@, I-DEAS@, CATIA@, etc.). This section describes the generic process of assembling parts in various CAD Packages. Parts defined in CAD packages are stored in different files. To create an assembly using parts, a new assembly file is opened and the parts to be assembled are brought into the file. After specifying various mating conditions, like concentric, coincident, perpendicular, tangent etc, the CAD system generates an assembly using the parts. This highly procedural process takes a lot of time as it involves many mouse-click operations, selection of part surfaces, and the clicking of radio buttons in menus to set constraints. CAD systems force the user to perform various steps that can often be seen as redundant. Part attributes (like dimensions, geometry, functionality, etc.) might be used to perform automatic CAD assembly in many cases, or at least perform some assembly steps to provide a partially complete assembly. The example presented in the next section illustrates the assembly of parts in SolidWorks®, which is a common, relatively easy-to-use solid modeler (SolidWorks is the registered trademark of SolidWorks corporation). SolidWorks@ has chosen as a sample package and the process of assembly is similar in other CAD packages. 22 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 3.2 Illustrative Assembly Example in SolidWorks@ The following example illustrates the assembly steps while assembling in a solid modeler, SolidWorks@, with three simple parts viz., a peg, a cone, and a base part having conical and cylindrical hole features. Three illustrative parts follow in Figures 3, 4 and 5. Figure 3: A Peg (Part 1) Figure 4: A Cone (Part 2) Figure 5: Base Part (Part 3) 23 MassachusettsInstitute of Technology - ComputerAided Design Laboratory Parts in Assembly: Cone Peg Base part Figure 6: Parts in assembly In order to achieve the configuration above, the following steps are performed. In general, this is the minimum number of steps one needs to do: 1. Gross Motion: Move part 1 to a desired location (in some cases this may not be required). 2. Apply the CONCENTRIC constraint between desired face of part 1 and the base part using the "Assembly Mating" window shown below in Figure 7. 24 MassachusettsInstitute of Technology - ComputerAided Design Laboratory .... . .. .... .... [A-11semb? Figure 7: Concentric assembly mating 3. Apply COINCIDENT mating condition between appropriate faces of part 1 and the base part, again using the "Assembly Mating" window shown in Figure 8. Figure 8: Coincident assembly mating 25 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 4. Gross Motion: Move Part 2 to a desired location with respect to the Base part (in some cases this may not be required). 5. Apply the CONCENTRIC constraint between desired face of part 2 and the base part (Figure 9). 6. Apply COINCIDENT mating condition between appropriate faces of part 1 and the base part (Figure 9). d9Apply Items Selected: Ap Editing Mate : Concenkric4 C e a ito, Alignment Conditon Aligned SAn -Aligned (On)n rA.I t E ditng Mate Coincddnt4 .~........ d: G t Condon Align r Wo Wodnc- Figure 9: Other assembly matings As seen from the simple case of assembly described above, we need to perform steps in the assembly even though it is obvious, at least to human, that which part has to go where and in what manner they need to be assembled. The total number of steps for the simple case is 6, and the time taken is around 30 seconds to achieve the Assembled model. The number of steps involved increases as the number 26 MassachusettsInstitute of Technology - Computer Aided Design Laboratory parts increases, and hence, the time taken to assemble them together. This clearly shows the need of work in the area of automatic assembly. The discussion presented in this thesis is to help provide background for developing an efficient tool for assembly engineers that will help them faster assembly of parts, analyze the assembly system efficiently and produce efficient results in short time. For the case of peg-cone assembly (Figure 6), the total number of mouse clicks required is 18 as shown in Table 1. Table 1: Total number of mouse clicks for the cone-peg assembly Operation performed Step Mouse Clicks 1 Gross motion of peg 1 2 Concentric mating condition (peg with base part) 4 3 Coincident mating condition (peg with base part) 4 4 Gross motion of cone 1 5 Concentric mating condition (peg with base part) 4 6 Concentric mating condition (peg with base part) 4 Total Mouse Clicks 18 With the proposed methodology, only gross motions are required, in general. So, the mouse clicks can be reduced to 2. 27 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 4 Factors for Automating CAD Assembly 4.1 Concept Overview This section details various factors that will provide the basis for the development of efficient tool(s) for automating CAD assembly. The concept described in this chapter involves extracting various geometric, dimensional, and topological information etc. using information that describes a part. In addition, a discussion on how and to what extent other information, like part functionality or specific features, can be helpful in automating CAD assembly is provided. The factors proposed in this chapter utilize tools available in current solid modelers. 4.2 Factors for Automating Assembly i. Dimension Driven CAD Assembly Every part and its features have a set of dimensions that define them. This set of dimensions is one of the important attributes of a part that help us decide which part goes where. Parts/features generally have the following three attributes related with dimension. a. Value of Dimensions (actual numbers). b. Number of Dimensions used to completely define the part and its features. c. Nature of Dimension, for example diameter value, angular value, simple length value etc. 28 MassachusettsInstitute of Technology - ComputerAided Design Laboratory Not all the dimensions of a part/feature will be used in an assembly. In fact this will seldom be the case, so it will also be important to decide which dimensions play key roles in an assembly. It may be that the part itself makes it obvious which dimension is important for assembly, while in other cases, the CAD assembly engineer may have to decide this. A CAD designer, while designing a part, can put special notes on certain dimension(s) to govern the assembly. This will make an automated assembly process easier. For example, a designer can put a special annotation on the part feature that delivers Key Characteristics (KCs) for the product. KCs, by definition, are the product requirements that demand attention because they are critical for performance, safety, or regulations; and they are at a risk of not being achieved due to process variations. KCs also play a key role in assembly. The top-level task of an assembly engineer is to create plan for delivering each KCs ([17] and [18]). Following example (Figure 10) illustrates the use of dimension information for assembly automation. 29 Massachusetts Institute of Technology - Computer Aided Design Laboratory . .. ................ .... .. 0104 05 10 05 05 05 410 010 Note: All Dimensions are in mm Angle bracket subassembly supporting two plates Figure 10: Assembly automation of angle bracket subassembly using dimension information As shown in Figure 10, the assembly environment has four rivets and one bracket which are used for supporting two plates. Each pair of two rivets (out of four) has same shaft dimension. Similarly, each pair of two holes in the angle bracket has same hole dimension 30 MassachusettsInstitute of Technology - Computer Aided Design Laboratory as shown. Based on the dimension value of rivets and holes, it is quite obvious that subassembly formed should be as shown in Figure 10. In addition, information about the number of dimensions (to completely define the part) will help us differentiate between a complex part and a simple one. The assembly decision for a simple part like a peg will not require extensive analysis, while a complex part like an engine manifold may require extensive analysis. Separating complex parts from simple ones will help to decrease computational time and resources required during the assembly decision making process. Thus, Dimension Driven CAD Assembly, where the decision of assembly automation is influenced by dimensions shows promise. 4.2.2 Topology Driven CAD Assembly Solid modelers store more information (geometry and topology) than wireframe or surface modelers (geometry only). Since topology and geometry are strongly linked, it is important to understand the differences between geometry and topology. The geometry of an object is its representation in space, whereas topology is the interconnection of some geometrical objects. For example, the geometrical representation of a circle is the center point and the radius, while its topological representation is a face, with many edges interconnected to form a circular shape. In other words, geometry is shape, size and location of geometric elements. Topology is connectivity and associativity of geometric elements. As stated previously, solid modelers store more information (geometry and topology) than wireframe or surface modelers (geometry only). Geometry (sometimes called metric information) is the actual dimensions that define the entities of the object. The geometry that defines the object shown in Figure 11 includes the lengths of lines, and, the angles between the lines, and the radius R and the center of the half-circle. Topology (sometimes called combinatorial structure), on the other hand, is the connectivity and associativity of object 31 MassachusettsInstitute of Technology - ComputerAided Design Laboratory entities. It has to do with the notion of neighborhood; that is, it determines the relational information between object entities. The topology of the object shown in Figure II can be stated as follows: Lishares a vertex (point) with L2and; L2 shares a vertex with and L3 ; L3shares a vertex with C1 and; and do not overlap; PIlies outside the object. L1 L2 R C P1 p1 CL L3 (a) Same geometry but different topology R R L2 C1 po C L2 P L3 Z L3 (b) Same to pology but different geometry Figure 11: Difference between geometry and topology of an object Based on these definitions, neither geometry nor topology alone can completely model objects. Wireframe and surface models deal only with geometrical information of objects, and are therefore considered incomplete and ambiguous. From a user point of view, geometry is visible, and topology is considered to be non-graphical relational information that is stored in solid model databases and is not visible to users. In context of mechanical assembly topology has an entirely different meaning, referring to the relations between parts in assembly. In the above discussion, it is important to realize that topology is described with respect to a part and not topology with reference to assembly. 32 MassachusettsInstitute of Technology - Computer Aided Design Laboratory Consider the simple cube shown in Figure 12. Three types of geometric elements define the cube: points, lines, and planes. Eight points define twelve lines that in turn define six planes. The topological definition of the cube specifies how the geometric elements are bounded and form topological elements. The topological definition of the cube, then, is a region of space bounded by six planar faces, bounded by their intersecting edges and connected to each other at their edges. The edges are derived from the intersecting faces. The edges are bounded by vertices (points of intersection between one or more edges) and connect to each other at their common vertices. While the geometric elements of the cube consist of points, lines, and planes, the topological elements consist of faces bounded by derived edges and vertices and how those faces, edges, and vertices relate. -4I- Figure 12: The geometric (a) and topological (b) elements that define a simple cube The topological definition doesn't necessarily change if the geometric definition changes. In the case of the simple cube, parametric changes to its geometry result in a topology 33 MassachusettsInstitute of Technology - ComputerAided Design Laboratory definition that is unchanged. As shown in Figure 13, one can modify a cube in many ways and still maintain its original topology. Figure 13: Topologically Same and Geometrically different Solid Models Extracting topological information from the CAD database can provide helpful information in assembling parts as shown in the Figure 14. In this example the assembly environment consists of 4 pegs and a cylindrical hole in one of the parts in the same assembly environment. Two out of four parts (Part 1 and part 3) have cylindrical shafts. Third peg (Part 2) has a rectangular shaft while the fourth (Part 4) one has hexagonal shaft. Since the topology of the hole is cylindrical, parts having cylindrical shaft as its topology can only be assembled. With the topological information itself, it can be decided that Part 2 and part 3 can't be assembled with the hole, while Part 2 and Part 3 holds chances of getting assembled with the hole feature. It is important to note that topological information is insufficient to determine which one pf Part 1 and Part 2 can be assembled with the hole feature. 34 MassachusettsInstitute of Technology - ComputerAided Design Laboratory Part 1 Part 3 Part 2 Part 4 I I I I Figure 14: Using topological information for automating CAD assembly 4.2.3 Geometry Driven CAD Assembly Contours, faces, edges, corners, geometry of faces, (circle, rectangular, etc., and for 3-D: sphere, Cuboids) and other attributes such as Thread type (Right hand or Left hand, pitch, TPI, etc.), offset etc. constitute geometry. Grupen et al [19] worked on the use of geometric data integration techniques as a means to have formal criteria for recognizing free-form surfaces in 3-D object. Some decisions about the assembly can be made right away knowing the high-level information about geometry. For example, if one part (or rather the contour being assembled) is prismatic and another one is non-prismatic, the parts cannot be assembled. A 35 Massachusetts Institute of Technology - Computer Aided Design Laboratory gear tooth profile (involute) has to mate with another tooth profile (involute) of a gear. A large number of such examples can be found. Thus "Geometry Driven CAD Assembly" shows promise for assembly automation. 4.2.4 Functionality Driven CAD Assembly In physical world, one of the most important factors that affect assembly decisions is the function that a part performs. Assembly is not just specifying constraints. Rather, the aim is to put parts together to achieve certain desired function(s). In that sense, each part of the assembly, its various subassemblies and the assembly as a whole serve some specific function(s). For example, a spur gear in an assembly environment has to mate with a spur gear to transmit torque. We typically would not have an unmeshed gear in the assembly. Similarly, we have rack and pinion pair (where the rack length axis has to be perpendicular to pinion axis and the tooth profile should be touching each other), bevel gear pairs with tooth profile touching and axes perpendicular; piston-hole pair where the axes of both match) etc. Another example includes the functionality of a screw. The function of a screw is to fasten two or more parts together. As seen from the aforementioned examples "FunctionalityDriven CAD Assembly " can also be helpful in automating assembly. 4.2.5 Feature Driven CAD Assembly Feature based design and feature recognition have been researched extensively for the last two decades [20]. Recognition of part features such as a hole, shaft, groove, slot, or pocket is important for performing assembly operations. Every part is composed of many features that, in many cases, govern the assembly. In the mid 1980s, researchers worked on extracting feature information from 3-D CAD data. For example, Henderson, R [21] developed algorithms that are capable of identifying and extracting features of 3-D CAD data and organizing the resultant information into a feature graph. Vandanbrande [22] 36 Massachusetts Institute of Technology - ComputerAided Design Laboratory worked on recognition of machinable features using artificial intelligence and computational geometry techniques. Requicha et al [23] developed a system for generating machining feature recognition of mechanical parts by using the information available in the solid model of a part, its design features, tolerances and attributes etc. Currently, most CAD systems allow users to make parts based on features and then save the information in a feature-based format. This makes the process of feature recognition rather trivial. Thus, assembly automation driven by feature(s) of parts also shows promise. Let us again consider the example of the assembly described in chapter 3 (Figures 3, 4, 5 and 6). The peg has a cylindrical shaft feature while the cone has conical surface. Correspondingly, the base part has a conical and cylindrical hole. Based on the feature-based analysis, it is obvious that conical surface of the cone has to mate with conical hole feature of the base part and the circular shaft of the peg has to mate with the circular hole feature of the base part. The assembly process is shown in Figure 15. 37 Massachusetts Institute of Technology - Computer Aided Design Laboratory Feature= Conical surface Feature= Circular shaft Circular hole Feature=Conical hole Figure 15: Feature based approach for automating peg, cone and base part CAD assembly 4.2.6 Orthographic Views (projections) Driven CAD Assembly Orthographic views are easy to generate and they contain relatively less data than threedimensional objects. For example, in CATIA@, once the solid part model is made the orthographic views can be obtained by selecting 'Drafting' option (From pull down menu of CATIA® session: Start- Mechanical Design 4 Drafting). One of the advantages of going 38 MassachusettsInstitute of Technology - ComputerAided Design Laboratory from 3-D database to 2-D database is that we have low volume of data which may be easier to analyze and can provide useful pieces of information in making decisions for assembly. Figure 16 illustrates the orthographic views (front, top and left side view) generated for an angle bracket in CATIA®. In addition, depending upon the selection of preferences, six views (front, bottom, rear, top right side and left side view) can also be generated. *~1 -- r -- ------ I Lef I Ii Ile IiL Ii FIrO4t view - Too view IScale: ____-- -- -- -l 1: 1 ---- ----- ___ Figure 16: Orthographic views generated in CATIA® Depending upon the extent to which the orthographic views are analyzed, various part's information can be found by generating three-dimensional objects in many cases. The topic of generating solid 3-D objects from 2-D orthographic views has been studied for a number of years. Back in 1973, Idesawa [24] laid the foundation for the research topic "3-D objects from orthographic views." To date, researchers have come up with an array of algorithms to 39 MassachusettsInstitute of Technology - ComputerAided Design Laboratory generate 3-D objects from the user specified orthographic views. In 1997, Masuda [25] proposed an efficient method for converting orthographic projections into solid models based on non-manifold topology and assumption-based truth maintenance system (ATMS). They also describe an error recovery method for incorrect orthographic projections that may arise due to human errors. However, in this case, since the orthographic view is generated by the CAD package itself, it is certainly a correct orthographic projection of the solid under consideration. Apart from obtaining solid parts from 2D part drawings, research has also been done to obtain solid parts from 2D assembly drawings. Tanaka et al [26] proposed a methodology for decomposing a 2D assembly drawing into 3D parts drawings using a set of solid element equations. They have tested the methodology on various 2D assembly drawings. The limitation of using orthographic views is that most of the research in the area of generating 3-D solid objects from 2-D projections is limited to orthographic projections consisting of straight lines, circles, or ellipse, and that solid models consist of planes, cylinders, cones, spheres ([25] and [27]). This shows that all the information about a generic solid model from its orthographic projections may not be extracted. Since the organization and representation of internal data corresponding to a solid model is CAD system specific, it is important to extract information as per the CAD specific representation of orthographic views. If all the solid model parts are made in the same CAD package, it is feasible to write an Application Programming Interface (API) that extracts data for assembly of parts within the same package. For heterogeneous CAD environment, it may be useful to save the 2D file as an image file, and then apply pattern recognition software or use any of the many image-processing tools to search for patterns that can help in assembly. One of such tools is MATLAB@ 2 [28]. People have worked extensively on developing various algorithms and technique for 2D shape recognition. Mohan and Ozcan [29] worked on shape recognition using genetic algorithms. Cai and Liu [30] developed a 2 MATLAB@ is an integrated computing environment that uses a combination of visualization, graphics and a high level programming environment 40 MassachusettsInstitute of Technology - ComputerAided Design Laboratory technique for using Markov models with spectral feature for recognizing 2D shapes. Neural Networks also provide powerful tools for solving the shape recognition problem. Seibert and Waxman [31] worked on recognizing 3D objects from multiple views in a neural system. Chin and Teh [32] developed a local feature aggregation method for recognizing twodimensional objects based on their CAD models. Their methodology is capable of handling objects that are translated, rotated, scaled or occluded. Apart from orthographic views, skeletal representations of a 3D object, as described by Gursoz et al [33], can also be helpful. In skeletal representations, solid objects are represented by lower dimensional entities with associated thickness. In 2D, this means that objects are represented by line and each point of line has an associated thickness. Figure 17 shows an example. Figure 17: The lower figure represents skeletal representations of the figure above 4.2.7 Library Driven CAD Assembly One of the ways our brain works is that it tries to match any new object with familiar objects and then apply the same rules of interaction as it had applied with the object that most closely matches the new object. Similarly, in CAD systems, we can define various standard parts/ features, set up rules of interaction in assemblies, and put this information in a library. Once the CAD system 41 MassachusettsInstitute of Technology - Computer Aided Design Laboratory -- - - a -- -- i-ilmilm n encounters a new part, it will try to look for the exact (close) match with the previously stored parts/features, and then will apply the same rules for interaction as it did for those parts in the assembly. We will call this "LibraryDriven Assembly ". For example, we can have a set of guiding rules for Peg and Hole Assembly, which require something matching the centerline and moving along the centerline to place it appropriately. Especially for subassemblies consisting of standard parts, library driven automated assembly is easy to implement given the rules governing the assembly are provided in the knowledge base. As an example, lets consider assembly of a nut, bolt, washers (two) and hole feature (formed out of assembling two or more parts). The standard way that governs assembly is shown in the following Figure 18. Waser aole Fet%*re Nut Figure 18: Set of assembly rules for standard library parts Similarly, other rules governing assembly of standard parts can be defined. 4.2.8 Constraints Driven CAD Assembly By considering constraints, an assembly (subassemblies, set of mating conditions) can be broken down into three main categories depending upon DOF (degrees of freedom): Under Constraint:Some DOF is left unspecified in assembly. Over Constraint: Some DOF is constrained more than once. Properly Constraint:Each DOF is specified once and the system is well defined. 42 MassachusettsInstitute of Technology - Computer Aided Design Laboratory -N Most mechanical assemblies are Properly Constraintsystems, although some may be Over Constrained or Under Constrained systems. Nevertheless, a designer/assembly engineer knows before hand which part is properly/over/under constraint. Specifying such information before the assembly phase (possibly by associating information with the part itself) will help in the automation of assembly. Hence, exploring "ConstraintDriven Assembly " seems promising. In an assembly, mating is important; and the mates between the parts reduce the DOF of both parts relative to one another, though the combined parts does not lose any DOF. It can be observed from the original example, involving a round peg, a conical peg and the base part, that the parts become constrained in assembly and thereby lose DOF. This is, in general, true. The DOF of parts in an assembly also gives us other useful pieces of information. If the DOF of any part is 6, the part has not been assembled at all and is free. This refers to incompatibility of the part for the assembly process. DOF=O shows that the assembly is a "Structure" and hence has no movable parts. For O<DOF<6 of a part, the only inference one can draw is that the part is free to move/rotate with one or more DOF. By analyzing DOF, part-by-part, the designer/engineer/assembly person can determine whether the design intent is matched or not, or it can serve as a checkpoint for design part of assembly analysis. In an assembly consisting of n parts, Maximum DOF the system can have =6n (completely unassembled) Minimum DOF for assembly =0 (Structure, e.g., a bridge) So, the assembly can have a total DOF anywhere from 0 to 6n. 43 MassachusettsInstitute of Technology - Computer Aided Design Laboratory The concept developed in this thesis does not depend on the assembly sequence. It just concerns the final assembly. The order in which parts are assembled is independent of mating constraints between parts. The application of DOF associated with parts can be implemented in two ways. First, DOF can be used in deciding which parts go where. If it is clear to a designer that a particular part has to be, lets say, over constrained, then he attaches an attribute to that part indicating that the part is over constrained. This attribute will not let the part be assembled where it is either properly constrained or under constrained. Otherwise, the assembly engineer can use the DOF information in the verification step as shown in Figure 19. Techniques based on DOF analysis have also been used to solve the problem of determining the positions and orientations of a set of rigid objects that satisfy a set of geometric constraints [34]. 4.2.9 Other Factors that are Helpful for Automating CAD Assembly The above-mentioned eight factors are the major factors that can help in the automation process; but by no means, this is an exhaustive list of factors. Another factor that can be helpful is the part the material. Knowing and specifying that a part of only a particular material should assemble with another part can be a factor driving assembly. For example, consider an assembly environment having metallic as well as rubber washers with the same dimension. In this case, the material of the part is the only driving factor in the assembly and the assembly engineer can specify the material based decisionmaking rules in the Knowledge base/rules (as described in Chapter 5), which will help in automating the assembly process. Other factors include surface finish of a part, names of parts, properties like mass, surface area, volume, center of mass, moment of inertia, supplier of part, manufacturing process, manufacturing location of the part, etc. Identifying and specifying other helpful factors depends upon the part as well as the nature of assembled product. 44 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 4.3 Proposed Methodology An overview of the proposed automated assembly algorithm (AAA) is as follows in Figure 19. Feedback for reconsideration based on factors Factor 1 KO - Factor 2 Knowledge Base/Rules Parts partially Assembled No' Verification OK Lr2 CAD assembly engineer inputs to complete assembly Factor N Complete Assembly Fig 19: Basic flow chart of automated assembly in a CAD package The parts are assembled based on certain rules contained in the knowledge base. The pseudo code for one of the rules (assembling hole and shaft feature) may look like as shown in Figure 20. If (Hole dimension= shaft dimension within the tolerance limit) Figure 20: Pseudo code for assembling hole-shaft feature 45 MassachusettsInstitute of Technology - Computer Aided Design Laboratory Either all the rules are applied at once or they can be applied one by one or in combinations. For a product with small number of parts, all the factors can be applied at once. As the number of parts increases, the complexity of decision-making process grows exponentially. So, with products containing many parts (say >15-20), it may be helpful to apply the factors one by one, and proceed further depending upon its effect. Depending on the outcome of the application of various factors/rules, the assembly engineer can decide if the particular rule is helpful in assembly or not. These rules, when applied to a set of parts, give us an assembly. In many cases this may give us an assembly where parts are partially assembled-let's call it a loose assembly. This loosely assembled system is subjected to verification, and feedback is sent to knowledge base as shown in Figure 19 and the parts gets reassembled in a better way. For example, if there are parts overlapping with each other beyond tolerance limits, then it is an incorrect assembly. In this case, either one of the parts is set free and taken out of assembly, or the part is assembled in a way that gives a better-suited assembly configuration. After this, the CAD assembly engineer resolves ambiguities, verifies the system, and then parts will be assembled together in the desired way. Depending upon the specific nature of the product, some weighted criteria may on the factors to govern the assembly. Researchers have worked on knowledge-based systems for automated assembly planning for robotics applications. Park et al [35] worked on a computer-aided planning system for automated assembly cells which uses a product description to generate assembly sequences and finally robot programs. Deitz et al [36] has worked on utilizing the knowledge of assembly operations and the capabilities of future equipment for planning an assembly cell. 46 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 5 Extracting Part Information From CATIA Solid Models 5.1 Introduction to CATIA® CATIA@ is one of the leading CAD high-end software packages that handles both surfaces and solids. CATIA® (Version 5 Release 6) is organized into a collection of workbenches, each dedicated to a specific application area, viz. Part Design, Sketcher, Wire frame and Surface, Assembly Design, and Generative and Interactive Drafting. CATIA's Part Design Workbench contains solid modeling tools to design parts using features. CATIA's feature classes include sketch-based features, dress-up features, surface-based features, and transformation features. Sketch-based features include pads, pockets, shafts, grooves, holes (standard and threaded), ribs, stiffeners, lofts, etc. Each feature group covers a wide range of types. For example, holes support a wide range of geometric configurations, including simple, tapered, counter bore, counter drill, and countersink, all from a single dialog box. Extension types include blind, up to next, last, plane, and surface. CATIA's dress-up features include fillets, chamfers, draft, parting lines, shells, thickness, and threads. CATIA's surface-based features include splitting a solid with a surface, adding thickness to a surface, closing an open set of surfaces, and trimming a solid with a surface. Transformation features allow translating, rotating, scaling, and mirroring solid bodies. Rectangular, circular, and user-defined feature patterns can also be created. 47 MassachusettsInstitute of Technology - Computer Aided Design Laboratory The feature based design approach and storing information feature-by-feature inside its database helps extract corresponding information easily. These extracted part/feature based pieces of information is then useful in the proposed automated assembly methodology. 5.2 CATIA Plugin A plugin has been developed for CATIA@ to extract various parameters and properties of part (that can be helpful for automating assembly as discussed in Chapter 4). The main program is provided in appendix B. The plugin has been developed in Rapid Application Development Environment (RADE) using Tool Configuration Key V5R6_T06. A brief description of the implementation is described below. The program is a main (batch) program that takes two arguments - the path to an existing Part document and path of modified Part document. STEP 1: Checking Arguments and Opening the Session int main(intiArgc, char *IArv) . r2p.odd*.ATP0t dcment / return code int rc .0; // Checks number of ar uments /I if( 3!=iArgc. // retur 1; // Loads input *.CA char *pSessionName CATSessin Wp$ession d make It = Sampe ession" 0; This first section checks that the number of arguments passed on the command line, and then opens a session to read the document in memory. 48 MassachusettsInstitute of Technology - Computer Aided Design Laboratory STEP 2: Reading the Part Document From Disk and Preparing it For Parsing CATDocument *pDoq = 0; if( SUCCEEDED(CATou..entSe CATinII *0OCAsilt 0;OA if(SUCEEDO~~oc>QuryterfAcefTInI$t, (vo4d*)p~oQ~MinR)) /f et*the par tueof tedument CATif.tQLOt *p4peonQiner (OATIflonAinr)bsit>G.GAoT~otiPr"C~~t~oIne"..');. .pboc~sft>eIes0() The 'CATDocumentServices::Open' static method opens the document from its disk location and returns it as a CA TDocument. Documents are internally divided in containers. The analogy is as follows: if a part document is an apartment, then the containers are its rooms. Each container contains a specific set of data that represent some aspect of the overall document. The first container found in a document is a high-level container that gives access to all other, more specialized containers, in the document. It may contain other data as well. Along with the apartment metaphor, it is similar to the lobby in which one enters first, and which provides access to the other rooms in the apartment. This container is called the root container. In a Part document, the root container is the container that contains the feature-based definition of the part being modeled. Such structure is explored through a dedicated interface, CA TIPrtContainer,which is implemented by the root container. By giving this interface name as an argument to GetRootContainer, the root container is returned cast to this interface type, which makes it ready for being parsed as a Part. 49 MassachusettsInstitute of Technology - ComputerAided Design Laboratory STEP 3: Getting Access to The Object That Represents the Part if( pSpecContainer) { CATIPrtPart~yer epPart (VpSpeontainr-G.t~*tQ) CATISpeObject yar spoart~peQ (Rpspiceo -G$at()); pspr-*Rceesb() The CATIPrtContaineris used to access the object representing the part through the partparsing interface, CA TIPrtPart.After this a navigation facet, namely the CA TIPartRequest interface is used onto the part object in order to discover its structure. STEP 4: Getting Part Properties //Getting Object Mpete sPr mnaSSDfcXp- CAISpleCUDbjctyar >GetMechanicatPart perties b1ect(); *roperies CATMehiPaPr if( >QueryinterfcetATIMechcrtes, - SUCEE~raspo &p prpt)) {K Owt <<*SuVsM Vd QOut <<"V lm~^)<<poete->e~ //Getting Center Of M-sGrty d.ubie m( <<ed. oXcoordQ~ .................................................... cut <"etr , <<oZcoord << ")<<ent fMass (XYZ) <<" , b < ocoord In this step various part properties like, mass, volume, density and center of mass are extracted from the object. Other properties of interest, like moment of inertia, surface area etc. can also be extracted using similar process. 50 MassachusettsInstitute of Technology - ComputerAided Design Laboratory STEP 5: Getting Part Parameters I/Getting parameters CATiPamPblfryar pnrPblisher= spPAt; CATllstVaICAIISpecObject var lipt; parmPuhfisher-> GetAfIChikke~n (CATI~kPatCssNam.0,lt); ,....CATICkarImhVBr OATpC ... 7...... j pr parm;...... . . tpQOb speo0b; coWuA< parm -> Name() "< parr --> Show() << endI; This step extracts various parameters based information of the part, like the total parameters that defines the part. The number of parameters that define the part reveals the complexity of the part and its features. A list of part parameter is obtained that contains the description of the feature, like dimension value and its type, part constraints (like parallel, perpendicular etc.), the location of the feature within the part, etc. STEP 6: Changing Part Parameters and Saving the File in Desired Format This step describes the procedure to change part parameters and saving it as a different file in a desired format. //Chngn "arMet cout < al s cou <"td q*eShw).CastoCharPtr() << and w"' i =00,3; d pArm --> Vaiuat,(NewValue); 000tNewai TCharPtr() << end ut << 1>0how() pPat~pec -> Up~date); //update part // Saves the part document CATocumentServIces:SaveAs(*ppoc iArgv[2], $Jgs") 51 MassachusettsInstitute of Technology - ComputerAided Design Laboratory STEP 7: Saving the File, Closing the Session and Exiting // Saves the part document CATDocumentServices::SaveAs(*pDoc, iArgv[2l, igs"); / Deletes all docwments in session DeleteSesson(pessionName); The last section of the program closes the document and exit from the session. 5.3 Examples and Discussion of Obtained Information This section illustrates the use of above plugin to extract information from parts designed in CATIA@. The parts are the peg, cone and base described in Chapter 3. In this example, the emphasis has been put on geometrical, feature and dimension based information only, and hence the parameters extracted can be used only for the "Dimension Driven CAD Assembly, "Geometry Driven CAD Assembly" and "Feature Driven CAD Assembly". The list of parameters obtained for the peg and the cone is shown below ( Figure 21). Total Number of Parameters : 17 (6)PartI\PartBody\Pad. l\Sketch. \circle\radius 35mm (2)Partl\PartBody\Pad.2\Activity true (3)Partl\PartBody\Pad.\FirstLimit\PrismLimitType Dimension (4)Partl\PartBody\Pad.\FirstLimit\Length 10mm (5)Partl\PartBody\Pad.\SecondLimit\PrismLimitType Dimension (6)PartI\PartBody\Pad.I\SecondLimit\Length Omm (7)Partl\PartBody\Pad.I\SymRel\Activity false (8)Partl\PartBody\Pad.2\Sketch.2\circle\radius 25mm (9)Partl\PartBody\Pad.2\Activity true (I 0)Part I\PartBody\Pad.2\FirstLimit\PrismLimitType Dimension (I I)Partl\PartBody\Pad.2\FirstLimit\Length 40mm (12)Part I\PartBody\Pad.2\SecondLimit\PrismLimitType Dimension (13)Part I\PartBody\Pad.2\SecondLimit\Length Omm (14)Partl\PartBody\Pad.2\SymRel\Activity false (I 5)Part I\Mechanical Property\Volume 1.17e-004m3 (I 6)Part I\Mechanical Property\Mass 0.2kg (1 7)PartI\Mechanical Property\WetArea 0.016m2 Figure 21: Extracting various parameters and properties of the peg (shown top right) 52 MassachusettsInstitute of Technology - Computer Aided Design Laboratory Total Number of Parameters : 18 (1)Part2\PartBody\Sketch.1\Line. 1 10mm (2)Part2\PartBody\Sketch. 1\Parallelism.3\mode CstAttrModeConstrained (3)Part2\PartBody\Sketch. 1\Parallelism.3\Activity true (4)Part2\PartBody\Sketch. 1\Line.2 20mm (5)Part2\PartBody\Sketch. 1\Coincidence.4\mode CstAttrModeConstrained (6)Part2\PartBody\Sketch. I\Coincidence.4\Activity true (7)Part2\PartBody\Sketch.1\Line.3 22.3607mm (8)Part2\PartBody\Sketch. 1\Parallelism.5\mode CstAttrModeConstrained (9)Part2\PartBody\Sketch. 1\Parallelism.5\Activity true (10)Part2\PartBody\Shaft. 1\Activity true (11)Part2\PartBody\Shaft. 1\FirstAngle 360deg (12)Part2\PartBody\Shaft. 1\SecondAngle Odeg (13)Part2\PartBody\Sketch. 1\Parallelism.3\mode CstAttrModeConstrained (14)Part2\PartBody\Sketch. 1\Parallelism.3\Activity true (1 5)Part2\PartBody\Sketch. 1\Coincidence.4\mode CstAttrModeConstrained (16)Part2\PartBody\Sketch. 1\Coincidence.4\Activity true (1 7)Part2\PartBody\Sketch. 1\Parallelism.5\mode CstAttrModeConstrained (1 8)Part2\PartBody\Sketch. I\Parallelism.5\Activity true Figure 22: Extracting various parameters and properties of the cone (shown top right) Likewise, the list of parameters obtained for the base part is shown below. Since the number of parameters obtained is quite large, only the relevant information is shown in Figure 23. 53 MassachusettsInstitute of Technology - ComputerAided Design Laboratory - - I Total number of parameters: 46 (l)Part3\PartBody\Pad. l\sketch. l\rectangle\first length 150mm (2)Part3\PartBody\Pad. 1\sketch. I\rectangle\second length 75mmU (6)Part3\PartBody\Pad. I\Activity true (7)Part3\PartBody\Pad.l\FirstLimit\PrismLimitType Dimension (8)Part3\PartBody\Pad.l\FirstLimit\Length 100mm (22)Part3\PartBody\Pad.2\Sketch.2\circle\radius 25mm (23)Part3\PartBody\Pocket. l\Activity true (24)Part3\PartBody\Pocket. I\FirstLimit\PrismLimitType Dimension (25)Part3\PartBody\Pocket. l\FirstLimit\Depth 50mm (26)Part3\PartBody\Pocket. I\SecondLimit\PrismLimitType Dimension (3 l)Part3\PartBody\Sketch. I\Line. 1 10mm (32)Part3\PartBody\Sketch.l \Parallelism.3\mode CstAttrModeConstrained (33)Part3\PartBody\Sketch.1 \Parallelism.3\Activity true (34)Part3\PartBody\Sketch.l\Line.2 20mm (35)Part3\PartBody\Sketch. I\Coincidence.4\mode CstAttrModeConstrained (36)Part3\PartBody\Sketch.1\Coincidence.4\Activity true (37)Part3\PartBody\Sketch.1\Line.3 22.3607mm (38)Part3\PartBody\Groove. I\Activity true (39)Part3\PartBody\Groove.l\FirstAngle 360deg (40)Part3\PartBody\Groove.l\SecondAngle Odeg Figure 23: Extracting various parameters and properties of the cone (shown top right) As can be seen from the examples (Figures 21, 22 and 23) various geometric, feature and dimension related information can be extracted using the CATIA@ plugin. For example consider the base part in Figure 23. The major geometrical, feature and dimension-based pieces of information obtained are that: the base part is a rectangular pad with rectangular dimension as 150x75 mm and the height of the pad is 100 mm. In addition, the information obtained is that it has a pocket and groove feature. The dimension of pocket feature (which is circular hole) and the groove feature (which is conical hole) is also obtained. 54 MassachusettsInstitute of Technology - Computer Aided DesignLaboratory - -WEA.Swffim - 21" 6 Application of Automated Assembly in DOME 6.1 Introduction to DOME and Overview of its Architecture DOME stands for Distributed Object-based Modeling Environment. The DOME concept was originally developed in the MIT CADlab [37]. DOME is a modeling infrastructure that is intended to create a global community, or marketplace, of individuals offering access to simulation services related to their own specialties, much as the WWW has enabled worldwide access to information ([37], [38] and [39]). Within the envisioned simulation marketplace, it will be possible to quickly create and holistically assess technology systems from many viewpoints, allowing individuals to design and understand complex technology systems. From architecture point of view, DOME is a distributed application. The core functionality runs on DOME servers, which are much like web servers, except that they provide serviceobjects that can be linked to underlying application models [37]. With the help of specially written plugins, these servers control all of the data flow, and interface with third-party applications. Access to the servers is obtained by starting a DOME client, and logging into a server. Clients can be run from any standard web browser, such as Netscape or Internet Explorer. Servers are capable of having multiple clients, each with the opportunity to view the same information simultaneously. DOME servers can also communicate with another DOME servers, and thereby exchange information remotely across a network. Enterprise-wide assembly modeling is a challenge for many engineering companies. Next section describes a virtual modeling paradigm implemented in DOME that allows assembly of solid model parts defined in multiple CAD system. 55 MassachusettsInstitute of Technology - Computer Aided Design Laboratory 6.2 Assembly Work in DOME Liteplo [40] describes the following five-step approach for Heterogeneous CAD (H-CAD) assembly, where for a certain part or subassembly Original Equipment Manufacturer (OEM) engineer wants to assemble supplier's solid model part made in different CAD system. Step 1: Selection of supplier The engineer finds the most suitable supplier to provide this part. He has built a DOME model that represents the assembly system for which he is responsible. Included in his CAD assembly interface is an NF import module to act as a placeholder for this part he needs (see Figure 24). Similarly Supplier has also published a DOME model corresponding to his part. Engineer's CAD model Engineer's DOME model Supplier's DOME model CAD CAD Inputs, = Outputs, = Part, Supplier's View KEY Engineer's View = Supier's CDae Aliases, = = Assembly, -0 VRML,@ = Neutral File = New Link Figure 24: Step 1: The two participants publish their CAD models and wrap them in DOME Note that the engineer's CAD assembly is incomplete and his neutral file object contains no data. After looking for DOME services of various suppliers, the engineer selects one of the suppliers that provides the best matching part that he is looking for. Assuming privileges have been given to him or to a guest account, he can log on that supplier's DOME server. Step 2: Parametric Control if Supplier's part Once inside the DOME model, the Engineer has permissions to view the CAD services that have been published. The supplier provides a VRML module of the part, which the 56 Massachusetts Institute of Technology - Computer Aided Design Laboratory engineer views to be able to conceptualize the geometry. The engineer can paste aliases of the dimension modules from the supplier's model into his own model, from whence he can drive them. Englie Enginees DOME model Supliers DOEmoe moalCAD CAD CAD Engineer's View = Inputs, 0= Outputs, 0 = Part, Supplier's model CAD KEY Aliases, 0= = Assembly, -*= VRML, = Neutral File New Link Figure 25: Step 2: The engineer drives the supplier's CAD model parametrically from DOME Step 3: Getting NF of the Supplier Model To fully analyze supplier's part, engineer asks the supplier to provide the CAD modeling services. The supplier does this by logging into the engineer's DOME server, copying the engineer's NF import module, pasting it into his own DOME model and defining a relation that sets the engineer's alias equal to the NF module from the supplier's model (see Figure 26). This can be done regardless of the CAD systems used by the two participants. At this point, each party can log out of the other's DOME server. 57 MassachusettsInstitute of Technology - ComputerAided DesignLaboratory Engineer's CAD model Engineer's DOME model Supplier's DOME model CAD CAD Supplier's View KEY: = Inputs, Outputs, = Part, Supplier's CAD model = VRML, = Aliases, = Assembly, -0 = Neutral File = New Link Figure 26: Step 3: The supplier drives the engineer's neutral file service by linking it to his own The engineer's neutral file object now points to a valid file. Step 3: Recording assembly steps for incorporating new part into assembly The engineer now has all the tools he needs to build and analyze his full assembly system. The working environment shifts back to his CAD system briefly, where he first has to import the neutral file into his CAD assembly using his CAD system's postprocessor. This file exists locally due to the remote file transfer property of the NF module. Next he has to record a sequence of events that assemble the part (or subassembly) into the desired position in the assembly. This process of recording is handled differently by differing CAD packages. This set of commands should add the imported part to the desired assembly and locate it properly with constraints. Any subsequent assembly tasks should be recorded as well. Here it is important to note that recording a robust procedure file is non-trivial. It should be able to correctly perform its functions given a varying input part. CAD commands driven by icons or menus are not affected by this variance, but commands driven by screen picks may not repeat the proper selection reliably. This is highly dependent upon the recording capabilities of the CAD system. Some (I-DEAS@, for example), record view settings, so 58 MassachusettsInstitute of Technology - ComputerAided Design Laboratory that picking features with mouse clicks may be appropriate if a consistent view is acquired. One method to bypass this problem is to refer to features by name. This method is quite robust given dimensional changes of the originating geometry, but may not be appropriate when features are added or removed from the original part. Another issue is the visibility of objects such as centerlines and origins, which, when switched off, will not be available for selection. Several iterations may be needed to record an adequate procedure file. Once this procedure file is created, it is published in a manner similar to the various interface modules, and the I-DEAS@ container module can be reloaded. Engineer's CAD m odel Engineer's DOME model- Supplier's DOME model CAD C AD Key: Engineer's View = Inputs, 0= Supplier's CAD model Outputs, = Part, = Aliases, Assembly, -* = VRML, = Neutral File = New Link Figure 27: Step 4: The engineer incorporates the new part into his assembly Step 5: Rebuilding assembly if some of the parameters are changed Now, a number of things happen when the engineer decides to change an input to the supplier's model (see the numbered arrows in Figure 27). First, the parameters are changed (1) and the new information is relayed through DOME to the supplier's model (2). The CAD model rebuilds (3), sends DOME new output values, and regenerates the neutral file (4). This causes the NF module on the engineer's DOME server to update (5), the part to be imported again into the CAD assembly (6), the assembly configuration to be recreated (7), and new assembly property values to be calculated (8). This is accomplished interactively over the web with only neutral files passing from the supplier to the OEM engineer. The supplier's detailed proprietary CAD models remains protected within his organization. 59 MassachusettsInstitute of Technology - ComputerAided Design Laboratory Engineer Engineer's CAD model The Intentl CAD 2 CAD =-03 moemml- =nwn asSE.ihnkadr ).Th SEPstnar dfieswhtar clld Aplcaio pe i Apedi a: file omag-ite atemptls toincoroaey by mrvge a jst deemnswaifrmtnapatuarcssfSTPcfrmntos igmre (As.Ecr P phsia xpand isl Potc2s mplinitio ofel ordiferntfiedsofuse Ter candein. ae mnydiferntA~ incluienos t entrlfe cfyhe, Te of wittn asodc acoss chharagcteritc functionaly [41]. desin mnfaue, Sandrdpor thAh63 STEPhuss file =(ISML, ha deeoeN weutral Oranztons fo Sadiation forma, stndardnumbr, model upplier's CAD model by Sdrg rsu DOME model Ea specificationsguge) ofPout Ito alle EXRSS oe aa nta SE)an einerall tof itsestandrds.ut thse Inscusets t etenrtabe Autmt saple SE and ou VRL CNpteieuesgtLraty edabein AliaTehsg hanIntut, deneto e befoth Tpe inAernixC). rgnThn STEP standardizefin (Iwha fie elped Apiton Protocls" (Ao)rmachA nadetemnes what3 inorationpailar clwnaso STEP-conforantr itos can doeie Theres arie fmay -diferentPs (whichty ssachgetts stiuteda. o Tenolog rtenrordifeamre fieled exCmterided esoidd (Lab ft of us.thes IGEratoryth popular Application Protocol is AP 203, "configuration controlled three-dimensional designs of mechanical parts and assemblies" [42]. This covers most of the geometric entities created in CAD. A main advantage of STEP over other formats is that it is an international standard. This has clear implications on the fast growing global economy. It also allows an older version of a compatible CAD system to open models created in later versions. This feature can be important when partnering departments or organizations use differing CAD versions. STEP aims to have applications in multiple fields, and is capable of storing product data regarding design intent. Peng et al, at National Tsing Hua University in Taiwan have developed a STEP-based object-oriented database management system [43]. The system is based on the belief that STEP accurately represents product data from many points of view, including design, manufacturing, finance, and others. Currently developers are also working on a new STEP modularization approach to include all the module of Product Data Management (PDM), which includes product identification, product structure, engineering change, document and file management validation properties, properties and shape representation. This shows that as STEP files evolve, it will contain more information about the solid model parts. 6.4 IGES Initial Graphics Exchange Specification (IGES) is a neutral file format originated by the National Institute of Standards and Technology (NIST) in 1979 and adopted by the American National Standards Institute (ANSI) to facilitate transfer of geometric data. The first published standard (IGES 1.0) was released in 1981 [44]. Improvements have been steadily throughout the years, and the most recent version is IGES 5.3, which was released in 1996. Version 6.0 is currently being developed. IGES files usually have an .igs or .iges 61 MassachusettsInstitute of Technology - ComputerAided Design Laboratory extension. In practice, IGES has become the standard in CAD/CAM data exchange in the U.S. [45]. IGES information is based around different types of entities. The main classes of entities are geometric, annotation, and structural. Geometric entities range from points and lines to complex 3D surfaces. Other entities include dimensions, annotations, views and properties (IGES 5.x, 2000). Native CAD files do not necessarily store information as these same types of entities, and thus must map these entities to their own types. IGES files are divided into five sections of data: Start, Global, Directory Entry, Parameter Data, and Terminate. There is also an optional Flag section to denote whether it is in binary or compressed ASCII form. (See IGES/IGS file of the peg in Appendix D) The Start section provides descriptive comments about the file. This information is ignored by the postprocessor and serves mainly as a human-readable description. The Global section describes the preprocessor and provides all the high-level parameters needed for the postprocessor to be able to properly deal with the file. The Directory Entry and Parameter Data sections contain all the information about the specific entities present in the file. The Terminate section is a single line at the end of the file that records how many lines long each section is. There are both advantages and disadvantages to using IGES files. Some sources complain about their lack of robustness, but this has become much less of a problem over time. Coles, et al claims that surfaces are not handled well [46], and yet others advocate that IGES is the most accepted format for transferring nurbs and other complex surfaces [45]. Thus, one can infer that the relative usefulness of IGES is not absolute. IGES versions change every few years, which makes it harder to keep the interoperability multidirectional. Furthermore, IGES supports the creation of variations and additions to IGES entities for use with a given system, known as "flavors". In a best-case scenario, processors will allow you to choose the flavor you wish to use. However, the use of flavors can often cause problems, as it may define entities not supported by the postprocessor of the importing system. For this reason, 62 MassachusettsInstitute of Technology - ComputerAided Design Laboratory flavored IGES files are not truly neutral. Finally, as IGES is a US standard only, international businesses may find its use inappropriate. In the five-step assembly procedure described in section 6.2, step 4 involves creation of the procedure file for assembling parts. The next section explores the possibility of automation (partial or full) of the assembly process. 6.5 Proposed Methodology Even though neutral files are not parametrically editable (and hence, they are known as dead geometry), they have certain pieces of information that are helpful for assembly automation: 1. Dimensions: Nature of Dimension as well as value of dimension 2. Topology of the Solid 3. Most of the Geometry related information of the solid Apart from the above-mentioned pieces of information, neutral files also contain 'annotation'. This is certainly very useful. For example in the engineer-supplier example presented in section 6.1, supplier can publish information, useful for the automation of assembly, like: functionality of the part, key features of the part etc. With the above pieces of information, the assembly automation methodology described in chapter 5 can be applied to assemble the parts. One of the key differences between general assembly automation as a part of CAD package and in DOME environment is that in the former, the solid model is accessible while in the later the automation has to be done with the help of neutral files. As seen from Appendix C, STEP file contains some explicit information about geometry, features and dimension of the part. A relevant excerpt of the step file is shown below. 63 MassachusettsInstitute of Technology - Computer Aided Design Laboratory #66=ORIENTED EDGE('Oriented Edge',*,#45,.F.); #67=ORIENTEDEDGE('Oriented Edge',*,*,#52,.T); #178=FACE_BOUND(Tace Bound',#175,.T.); #31=CLOSED_SHELL('Closed Shell',(#71,#88,#98,#138,#155,#165,#179)); #35=AXIS2_PLACEMENT 3D('CylinderAzis2P3D',#32,#33,#34); #48=AXIS2_PLACEMENT 3D('ircle Axis2P3D,#46,#47,$); #62=AXIS2jPLACEMENT)3D('Circe Axis2P3D',#60,#61,$); #14=PLANEANGLEMEASURE WITH.UNIT(PLANE ANGLE MEASURE(0.074532925199),#13) #39=VECTOR('Line Direction',38,1); #55=VECTOR('Line Direction,#54,1) #106=VECTOR('Line Direction,#105,1.) #22=MANIFOLDSOLIDBREP('Manifold Brep',#31); #49=CIRCLE('generated circle',#48,25.); #63=CIRCLE('generated circle',#62,25.); #75=CIRCLE('generated circle',#74,25.); #36=CYLINDRICALfSURFACE('generated cylinder,#35,25.); #103=CYLINDRICALSURFACE('generated cylinder',#102,35.); The STEP file of the peg explicitly contains information like, angle, length of a line; geometrical information like circle etc. and feature based information like cylindrical surface etc. On the other hand, IGES file (Appendix D) does not contain such information explicitly. Hence STEP file shows more promise for assembly automation than IGES file. Apart from direct part based information, supplier based decision-making can help in choosing which parts goes into assembly. This is helpful when there are two or more than 64 MassachusettsInstitute of Technology - ComputerAided Design Laboratory two parts supplied by different suppliers and are equally fit candidate to be put into assembly at specific places. Assembly engineer in this case either manually choose on part to be put into the assembly or the information can be fed into the system itself, so that the system in itself can decide from which supplier to get the part for the assembly. In the DOME environment, the extent to which assembly automation can take place depends primarily on following three factors: (i) Information contained in Neutral Files (NF): As discussed before the data and information contained in NF is evolving. With this development, more part related information could be captured in NF without revealing proprietary information of the part. (ii) Amount of information published by the supplier: the more information published by the supplier related to part geometry, topology, dimension, functionality etc., the easier it would be to use the information in implementing automated assembly. (iii) Level of permission granted by the supplier: If the supplier grants permission to its user to run customized plugins to extract relevant information, the easier it will be to perform assembly automation by using the extracted information. If the supply gives specific users direct access to the solid model then assembly automation in the DOME environment will be similar to discussion presented for general assembly automation provided the user is using the same solid modeler as that of the supplier. 65 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 7 Conclusions 7.1 Summary The proposed methodology is a starting step towards automating the assembly of CAD parts. Various factors that can help in the assembly of parts have been discussed. These factors include dimension, topology, geometry, functionality and various features of the part, its orthographic views, library of parts and associated rules, constraints in assembly etc. A general framework has been provided in the form of flow chart (Figure 19). The possible application of this methodology in DOME has been explored. Advantages, disadvantages and challenges associated with the proposed methodology have also been discussed. The proposed framework does not aim at replacing/substituting CAD assembly engineers, but rather will help to eliminate tedious procedural assembly tasks. The aim is not to ask questions to the assembly engineer, but rather have system work autonomously through a decision making process to suggest assembly configurations. In some instances the assembly designer may be asked to choose one out of some possible options to resolve ambiguity. In the worst case the assembly designer would be free to choose the currently available manual CAD assembly operations. Designers should be given an option of which of the above methodologies to activate. This will be useful for the case when user knows that a particular methodology will not work in the assembly under consideration. Or, the assembly engineer may want to activate only one of the options available in order to do assembly steps by step, or for other reasons. 66 MassachusettsInstitute of Technology - ComputerAided Design Laboratory The application of automated assembly should give better results for parts which have been designed using "Design For Assembly"(DFA) [47]. The following items describe a general DFA method: Reduce part count within assembly, improve the modularity of the assembly and utilize standard part wherever possible. Since the proposed AAA methodology involves computation in order to make final decision, reduction in part count will help making faster decision. The use of standard parts with definitions of standard assembly options will also help in automatically putting the part in correct location in the assembly. 7.2 Advantages of Automated CAD Assembly Reducing design iteration time and potentially accelerated time to market. Generally, in the early phase of product development there is iteration between rough sketches, CAD parts and CAD assembly. Early phases are widely recognized to be the most influential in the final product development. Several benefits of automating CAD assembly process are summarized in this section. 1. Reducing the chances of RSI by eliminating extensive mouse click and keying operation. 2. Eliminating low-level procedural repetitive tasks helps the CAD assembly engineer think more on key design and assembly related issues. 3. By concentrating on ideas and design issues, the assembly engineer should feel more motivated and work with higher creativity. This also enhances his productivity. 4. Files generated by Automated Assembly Algorithm (AAA) can also give valuable information to decide methods and sequence for real world assembly planning. 5. The type and nature of constraints developed by the algorithm can be sent to an automated assembly system where the robots will do the operation depending upon the constraint. For example, in the case of the peg-hole assembly, the robot should 67 MassachusettsInstitute of Technology - ComputerAided Design Laboratory have final motion as a translation motion along the hole-axis for inserting the peg or along the peg axis for assembling an object with a hole. Hence, the output of the AAA can be sent to an Automatic Assembly system involving Robots, whose manipulator arm motion can be controlled according to the nature of the constraints. Nevertheless, other issues involved with automatic assembly systems must be considered, more particularly limitations that are primarily economic in nature, of implementing the fully automatic assembly systems. 6. DOME assembly applications can be benefit from this approach. Currently, DOME assembly works on predefined assembly where we make changes that get propagated. With this algorithm DOME assembly generation too might be automated. 7.3 Challenges and Limitations The full automation of CAD assembly is not possible in existing CAD systems. Some open issues involved are described below. * Deformation of parts in assembly, like the snap fit, circlip, spring, orings, bearings etc. * How to handle different representations? Eg: Some representatives of specifying dimension of a right angled cone are as follows;(h, r), (h, d), (h, 1), (d, 1), (r, 1), (h, a), (r, a), (d, a), (1,a), (h, 9), (r, 9), (d,9), (1, 9),: A Right-angled cone and associated parameters that can be used to define the cone are shown in Figure 29. 68 MassachusettsInstitute of Technology - ComputerAided Design Laboratory Notation: r= radius of the base circle d= diameter of the base circle 1= slant height h= height of the cone a= semi-cone angle O= solid angle d h Total possible ways to represent cone with above 6 variables 6 = ( C2 -{(r,d) and (a,0)}combination) =15-2 =13 ways Figure 29: Different ways of defining a cone So, as revealed by the simple case of the cone, we see that a simple solid entity like a "right angle cone" can give us 13 different possibilities. In the case of right circular cylinder, for eg: the (length, angle) pair representation is better than (length, length) representation, because for the case of assembly, the former representation will help better in the decision making process than the latter. User input required to create solid models in existing CAD/CAM systems depends on both the internal representation scheme used by each system as well as the user interface. It is crucial to distinguish between the user interface and the internal data representation of a given CAD/CAM system. The two are quite separate aspects of the systems and can be linked together by software that is transparent to the user. For example, a system that has a B-rep (boundary representation) internal data representation may use a CSG (constructive solid geometry)-oriented user interface; that is, input a solid model by its primitives. Most systems use the building-block approach (CSG oriented) and sweep operations as the basis for user interface. 69 MassachusettsInstitute of Technology - ComputerAided Design Laboratory As discussed before, in the DOME environment, the extent of assembly automation depends on the information content and robustness of neutral files. In addition, it depends on the amount of information published by the supplier and the level of permission granted to access the solid model. 7.4 Future Work This research work has identified factors that could be useful for assembly automation and a framework has been proposed based on these factors. The future work in this area is to deploy implementation of the above-discussed factors and exploring other helpful ways for the assembly automation. The application of Neural Networks to the CAD assembly process can be explored. The usefulness of Neural Network comes from the learning experience of the system. For example, if the assembly engineer has resolved certain conflict in one of the examples, neural networks will apply the learning in similar cases to further ease the assembly of parts. It is important to note that the future work (either theoretical development or implementation) is highly dependent on the way CAD systems evolve. This is because the amount and nature of information obtained depends upon the design methodology implemented in the CAD package and also on the organization of its database. In the DOME framework, it is important to explore further with the help of implementation the usefulness of neutral file for automating assembly. 70 MassachusettsInstitute of Technology - Computer Aided Design Laboratory Appendix A Evolution of CAD Database Prot dMoD1P1 ahap Ex:: tra cin 2 0 Solid Mtodel Surtface Ext r a di 0n del Surfface MV1 3-D Edg Extrti4on 4 VAfireframne Model Fd - 19601 Source: http://www.me.mtu.edu/~mfyoung/me105web/wireframe/wireframep4.htm 71 Massachusetts Institute of Technology - ComputerAided Design Laboratory Appendix B Program for Extracting Part Information in CATIA® // Type / Inputs // Batch program Path to an existing *.CATPart file Path to modified file (new file) File read from first path is written to second one with modifications // Outputs // o Document loading in session / Illustrates // o Access to part within document and extracts various parameters of the part // and also its properties o Modifies part parameters // // o "save as" of the modified document // compiler includes #include <iostream.h> // System includes #include "CATLib.h" // ObjectModelerBase includes #include "CATDocument.h" #include "CATSessionServices.h" #include "CATDocumentServices.h" #include "CATInit.h" #include "CATIContainer.h" #include "CATI Descendants.h" // ObjectSpecsModeler includes #include "CATISpecObject.h" #include "CATLISTVCATISpecObject.h" #include "CATLISTVCATISpecAttribute.h" // NewTopologicalObjects includes #include "CATBody.h" #include "CATGeometry.h" #include "CATCell.h" // MechanicalModeler includes #include "CATIPrtContainer.h" #include "CATlMfGeometryAccess.h" 72 MassachusettsInstitute of Technology - ComputerAided Design Laboratory #include #include #include #include "CATIBRepAccess.h" "CATMfBRepDecode.h" "CATIPrtPart.h" "CATIMechanicalPartProperties.h" // MechanicalModelerUl Framework #include "CATPrtUpdateCom.h" // needed to update the feature according to the user's update settings // Visualization includes #include "CATIVisProperties.h" #include "CATVisPropertiesValues.h" // Literal Features #include "CATICkeParm.h" #include "CATIParmPublisher.h" #include "CATIPad.h" #include "CATIPrism.h" #include "CATISpecAttrAccess.h" //For Moments of Intertia #include "CATCollec.h" * Executes the program: reads the argument, * and writes the output part document. opens the input part document, */ int main(int iArgc, char **iArgv) // iArgv[1]: path to an existing *.CATPart document // iArgv[2]: path to a new, modified *.CATPart document { I/ return code int rc = 0; // Checks number of arguments // if( 3!=iArgc) // return 1; // Loads input *.CATPart and make it ready char *pSessionName = "Sample session"; 73 MassachusettsInstitute of Technology - Computer Aided Design Laboratory CATSession *pSession = 0; if( SUCCEEDED(CreateSession(pSessionName, pSession))) { CATDocument *pDoc = 0; if( SUCCEEDED(CATDocumentServices::Open(iArgv[1], pDoc))) { CATInit *pDocAsInit = 0; if( SUCCEEDED(pDoc->Querylnterface(I IDCATInit, (void**)&pDocAsInit))) { // Gets the part feature of the document CATIPrtContainer *pSpecContainer = (CATI PrtContainer*)pDocAsInit->GetRootContainer("CATIPrtContainer"); pDocAslnit->Release(; if( pSpecContainer) { CATIPrtPartvar spPart ( pSpecContainer->GetParto); CATISpecObject var spPartSpec ( pSpecContainer->GetParto); pSpecContainer->Releaseo; //Getting Object Properties CATISpecObjectvar mass propI =spPart >GetMechanicalPartPropertiesObject(; CATIMechanicalPartProperties *pproperties =0; if( SUCCEEDED(massprop_l->Querylnterface(IID_CATIMechanicalPartProperties, (void**)&pproperties))) { cout << "Success"<<endl; cout <<"Mass of the part[kg]=" << pproperties->GetMass() <<endl; cout <<"Volume[mA3]=" <<pproperties->GetVolumeo <<endl; cout <<"Density[kg/mA3]=" <<pproperties->GetDensity() <<endl; /Getting Center Of Mass/Gravity double oXcoord=0.; double oYcoord=0.; double oZcoord=0.; pproperties->GetGravityCenterCoord(oXcoord,oYcoord,oZcoord); cout <<"Center Of Mass (X,Y,Z) = (" << oXcoord <<" , " << oYcoord<<" ," <<oZcoord << ")"<<endl; } else cout <<"Failure"<<endl; //Getting parameters CATIParmPublisher-var parmPublisher = spPart; 74 MassachusettsInstitute of Technology - Computer A ided Design Laboratory CATListValCATISpecObject var list; parmPublisher -> GetAllChildren (CATICkeParm::ClassNameo,Iist); cout << "Total Number of Parameters: " << list.Size() << endl; CATICkeParmvar parm; CATISpecObject var specObj; for { (nt k = 1; k <= list.Sizeo; k++) specObj = list[k]; parm = specObj; cout << parm -> Nameo << ""<< parm -> Showo << endl; } //Changing Parameters cout << "Old value is " ; cout << parm->Show(.CastToCharPtr() << endl; double NewValue = 0.03; parm -> Valuate(NewValue); cout << "New value is "; cout << parm->Show(.CastToCharPtr() << endl; spPartSpec -> Updateo; // update part } else { cerr << "spec container not found" << endl; rc = 1; } } else { cerr << "no CATinit on doc" << endl; rc = 1; } // Saves the part document CATDocumentServices::SaveAs(*pDoc, iArgv[2], "igs"); // Closes the document CATDocumentServices::Remove(*pDoc); } else { cerr << "doc not opened" << endl; rc = 1; } // Deletes all documents in session DeleteSession(pSessionName); 75 MassachusettsInstitute of Technology - Computer Aided Design Laboratory } else { cerr << "can not open session" << endl; rc = 1; } if( rc { cerr << "an error occured" << endl; } return rc; } 76 Massachusetts Institute of Technology - Computer Aided Design Laboratory Appendix C STEP (AP214) of the Peg ISO-10303-21; HEADER; FILEDESCRIPTION(('CATIA V5 STEP Exchange'),'2; 1'); FILENAME('D:\\Prabhat\\Research\\thesis examples\\peg.stp','2002-0609T06:24:33+00:00',('none'),('none'),'CATIA Version 5 Release 6 (IN-7)','CATIA V5 STEP AP214',' none'); FILESCHEMA(('AUTOMOTIVEDESIGN { 1 2 10303 214 0 1 11 }')); ENDSEC; DATA; #66=ORIENTEDEDGE('Oriented Edge',*,*,#45,.F.) ; #67=ORIENTEDEDGE('Oriented Edge',*,*,#52,.T.); #68=ORIENTEDEDGE('Oriented Edge',*,*,#59,.T.); #69=ORIENTEDEDGE('Oriented Edge',*,*,#64,.F.); #83=ORIENTEDEDGE('Oriented Edge',*,*,#59,.F.); #84=ORIENTEDEDGE('Oriented Edge',*,*,#76,.T.); #85=ORIENTEDEDGE('Oriented Edge',*,*,#45,.T.); #86=ORIENTEDEDGE('Oriented Edge',*,*,#81,.F.); #95=ORIENTEDEDGE('Oriented Edge',*,*,#64,.T.); #96=ORIENTEDEDGE('Oriented Edge',*,*,#81,.T.); #1 33=ORIENTEDEDGE('Oriented Edge',*,*,#1 12,.F.); #134=ORIENTEDEDGE('Oriented Edge',*,*,#1 19,.T.); #135=ORIENTEDEDGE('Oriented Edge',*,*,#126,.T.) ; #136=ORIENTEDEDGE('Oriented Edge',*,*,#13 1,.F.) ; #1 50=ORIENTEDEDGE('Oriented Edge',*,*,#126,.F.); #15 1=ORIENTEDEDGE('Oriented Edge',*,*,#143,.T.); #1 52=ORIENTEDEDGE('Oriented Edge',*,*,# 1 12,.T.) ; #1 53=ORIENTEDEDGE('Oriented Edge',*,*,# 1 48,.F.) ; #1 62=ORIENTEDEDGE('Oriented Edge',*,*,#143,.F.) ; #163=ORIENTEDEDGE('Oriented Edge',*,*,#1 19,.F.) ; #1 72=ORIENTEDEDGE('Oriented Edge',*,*,#13 1,.T.) ; 77 MassachusettsInstitute of Technology - Computer Aided Design Laboratory #173=ORIENTEDEDGE('Oriented Edge',*,*,#1 48,.T.); #176=ORIENTEDEDGE('Oriented Edge',*,*,#52,.F.) ; #177=ORIENTEDEDGE('Oriented Edge',*,*,#76,.F.) ; #1 78=FACEBOUND('Face Bound',# 1 75,.T.) ; #3 1=CLOSEDSHELL('Closed Shell',(#7 1,#88,#98,#138,#155,#165,#179)); #19=AX1S2_PLACEMENT_3D(' ',#18,$,$); #35=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#32,#33,#34); #48=AXS2_PLACEMENT_3D('Circle Axis2P3D',#46,#47,$); #62=AXS2_PLACEMENT_3D('Circle Axis2P3D',#60,#61,$); #74=AXS2_PLACEMENT_3D('Circle Axis2P3D',#72,#73,$); #79=AXS2_PLACEMENT_3D('Circle Axis2P3D',#77,#78,$); #92=AXS2_PLACEMENT_3D('Plane Axis2P3D',#89,#90,#91); # 102=AXIS2_PLACEMENT_3D(Cylinder Axis2P3D',#99,#100,#101); #1 15=AXIS2_PLACEMENT_3D('Circle Axis2P3D',# 113,# 114,$) ; #129=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#127,#128,$); #141=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#139,#140,$); #146=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#144,#145,$); #159=AXS2_PLACEMENT_3D('Plane Axis2P3D',#156,#157,#158); #169=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#166,#167,#168); #1 8=CARTESIANPOINT('',(0.,0.,0.)) ; #32=CARTESIANPOINT('Axis2P3D Location',(0.,0.,30.)); #37=CARTESIANPOINT('Line Origine',(25.,0.,30.)); #41=CARTESIANPOINT(Cartesian Point',(25.,-6.12303176911 E-0 15,10.)) ; #43=CARTESIANPOINT('Cartesian Point',(25.,0.,50.)) ; #46=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.)); #50=CARTESIANPOINT('Cartesian Point',(-25.,3.06151588456E-0 15,10.)) ; #53=CARTESIANPOINT('Line Origine',(-25.,3.06151588456E-015,30.)); #57=CARTESIANPOINT('Cartesian Point',(-25.,3.06151588456E-0 15,50.)) ; #60=CARTESIANPOINT('Axis2P3D Location',(0.,0.,50.)); #72=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.)); #77=CARTESIANPOINT('Axis2P3D Location',(0.,0.,50.)); #89=CARTESIANPOINT('Axis2P3D Location',(0.,0.,50.)); #99=CARTESIANPOINT('Axis2P3D Location',(0.,0.,5.)); #104=CARTESIANPOINT(Line Origine',(35.,0.,5.)); #108=CARTESIANPOINT('Cartesian Point',(35.,0.,0.)); #1 10=CARTESIAN_POINT(Cartesian Point',(35.,0.,10.)); #113=CARTESIANPOINT('Axis2P3D Location',(0.,0.,0.)); 78 MassachusettsInstitute of Technology - ComputerAided Design Laboratory # 117=CARTESIANPOINT('Cartesian Point',(-35.,4.28612223838E-0 15,0.)); # 120=CARTESIANPOINT('Line Origine',(-3 5.,4.28612223838E-015,5.)) ; #124=CARTESIANPOINT('Cartesian Point',(-35.,4.28612223838E-015,10.)); #127=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.)); #139=CARTESIANPOINT('Axis2P3D Location',(0.,0.,0.)); #144=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.)); #156=CARTESIANPOINT('Axis2P3D Location',(0.,0.,0.)); #166=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.)); #33=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #34=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)); #38=DIRECTION('Vector Direction',(0.,0., 1.)) ; #47=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #54=DIRECTION('Vector Direction',(0.,0., 1.)) ; #61=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #73=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #78=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #90=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #9 1=DIRECTION(Axis2P3D XDirection',(1.,0.,0.)); #100=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); #101=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)); # 105=DIRECTION('Vector Direction',(0.,0., 1.)) ; # 1 14=DIRECTION('Axis2P3D Direction',(0.,0., 1.)) ; #12 1=DIRECTION('Vector Direction',(0.,0., 1.)) ; #128=DIRECTION(Axis2P3D Direction',(0.,0., 1.)) ; # 140=DIRECTION(Axis2P3D Direction',(0.,0., 1.)) ; #145=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ; #157=DIRECTION('Axis2P3D Direction',(0.,0.,1.)); # 1 58=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)); #167=DIRECTION(Axis2P3D Direction',(0.,0.,1.)) ; #168=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)); # 1=APPLICATIONCONTEXT('automotive design'); #10=PRODUCTDEFINITION('','',#6,#3); #6=PRODUCTDEFINITIONFORMATION('Part',' ',#5); #5=PRODUCT('Part','','',(#2)); #2=PRODUCTCONTEXT('',#,'mechanical'); #3=PRODUCTDEFINITIONCONTEXT('part definition',#1,''); #I1=PRODUCTDEFINITIONSHAPE(' ',,#10) ; 79 MassachusettsInstitute of Technology - Computer Aided Design Laboratory #l82=MECHANICAL_DESIGNGEOMETRICPRESENTATIONREPRESENTATION('',(#30),# 17); #20=SHAPEREPRESENTATION('',(# 19),# 17); #8=PRODUCTRELATEDPRODUCTCATEGORY('part',$,(#5)); #7=PRODUCTCATEGORY('part','specification'); #30=STYLED ITEM(' ',(#29),#22) ; #29=PRESENTATIONSTYLEASSIGNMENT((#28)); #28=SURFACESTYLEUSAGE(.BOTH.,#27); #27=SURFACESIDESTYLE('',(#26)); #26=SURFACESTYLEFILLAREA(#25); #25=FILLAREASTYLE(' ',(#24)); #24=FILLAREASTYLECOLOUR('',#23); #39=VECTOR('Line Direction',#38, 1.) ; #55=VECTOR('Line Direction',#54, 1.) ; # 106=VECTOR('Line Direction',# 105,1.) ; # 122=VECTOR('Line Direction',#12 1,1.) ; #16=UNCERTAINTYMEASUREWITH_UNIT(LENGTH_MEASURE(0.001),#12,'TOLCRV','CONFUS ED CURVE UNCERTAINTY'); #181=SHAPEREPRESENTATIONRELATIONSHIP('','',#20,#180); #4=APPLICATIONPROTOCOLDEFINITION('Draft International Standard','automotivedesign',1997,#l) #14=PLANEANGLEMEASUREWITH_UNIT(PLANEANGLEMEASURE(0.0174532925199),#13); #9=PRODUCTCATEGORYRELATIONSHIP('','',#7,#8); #21=SHAPEDEFINITIONREPRESENTATION(# 11,#20); #22=MANIFOLDSOLID BREP('Manifold Brep',#3 1); #49=CIRCLE('generated circle',#48,25.) ; #63=CIRCLE('generated circle',#62,25.) ; #75=CIRCLE('generated circle',#74,25.) ; #80=CIRCLE('generated circle',#79,25.) ; #1 16=CIRCLE('generated circle',# 115,35.) ; #130=CIRCLE('generated circle',# 129,35.) ; # 142=CIRCLE('generated circle',#141,35.) ; # 147=CIRCLE('generated circle',#146,35.) ; #36=CYLINDRICALSURFACE('generated cylinder',#35,25.); # 103=CYLINDRICALSURFACE('generated cylinder',#102,35.); #40=LINE('Line',#37,#39) ; #56=LINE('Line',#53,#55) ; # 107=LINE('Line',# 104,# 106); 80 MassachusettsInstitute of Technology - ComputerAided Design Laboratory #123=LINE('Line',#120,#122); #93=PLANE(Plane',#92) ; #1 60=PLANE(P1ane',# 159) ; #1 70=PLANE('Plane',# 169) ; #45=EDGECURVE('Edge Curve',#42,#44,#40,.T.); #52=EDGECURVE('Edge Curve',#42,#51,#49,.T.); #59=EDGECURVE('Edge Curve',#5 1,#58,#56,.T.) ; #64=EDGECURVE('Edge Curve',#44,#58,#63,.T.); #76=EDGECURVE('Edge Curve',#5 1,#42,#75,.T.) ; #81=EDGECURVE(Edge Curve',#58,#44,#80,.T.); #1 12=EDGECURVE('Edge Curve',#109,# 111,#107,.T.) ; #1 19=EDGECURVE('Edge Curve',#109,# 118,#1 16,.T.) ; #126=EDGECURVE('Edge Curve',# 118,#125,#123,.T.) ; #13 1=EDGECURVE('Edge Curve',#I 1 1,#125,#130,.T.) ; #143=EDGECURVE('Edge Curve',# 118,#109,#142,.T.) ; #148=EDGECURVE('Edge Curve',#125,# 111,#147,.T.) ; #65=EDGELOOP(Oriented Loop',(#66,#67,#68,#69)); #82=EDGELOOP(Oriented Loop',(#83,#84,#85,#86)); #94=EDGELOOP('Oriented Loop',(#95,#96)); #132=EDGELOOP('Oriented Loop',(#133,#134,#135,#136)); # 149=EDGELOOP('Oriented Loop',(#150,# 151,#152,#153)); #16 1=EDGELOOP('Oriented Loop',(# 162,# 163)) ; #17 1=EDGELOOP('Oriented Loop',(#172,# 173)) ; #175=EDGELOOP('Oriented Loop',(#176,# 177)) ; #70=FACEOUTERBOUND('Face Bound',#65,.T.); #87=FACEOUTERBOUND('Face Bound',#82,.T.); #97=FACEOUTERBOUND('Face Bound',#94,.T.); #137=FACEOUTERBOUND('Face Bound',#132,.T.) ; #154=FACEOUTERBOUND('Face Bound',#149,.T.) ; #164=FACEOUTERBOUND('Face Bound',#161,.T.) ; #174=FACEOUTERBOUND('Face Bound',#171,.T.) ; #42=VERTEXPOINT('Vertex Point',#41) ; #44=VERTEXPOINT('Vertex Point',#43) ; #5 1=VERTEXPOINT('Vertex Point',#50) ; #58=VERTEXPOINT('Vertex Point',#57); #1 09=VERTEXPOINT('Vertex Point',#108); #11 1=VERTEXPOINT('Vertex Point',#1 10); 81 MassachusettsInstitute of Technology - Computer Aided Design Laboratory #118=VERTEXPOINT(Vertex Point',# 117) ; # 125=VERTEXPOINT('Vertex Point',#124) ; #23=COLOURRGB('Coulour',0.823529411765,0.823529411765,1.); #180=ADVANCEDBREPSHAPEREPRESENTATION('NONE',(#22),#17); #71=ADVANCEDFACE('Advanced Face',(#70),#36,.T.); #88=ADVANCEDFACE('Advanced Face',(#87),#36,.T.); #98=ADVANCEDFACE('Advanced Face',(#97),#93,.T.); #13 8=ADVANCEDFACE('Advanced Face',(# 137),#103,.T.) ; #1 55=ADVANCEDFACE('Advanced Face',(# 154),#103,.T.) ; #165=ADVANCEDFACE('Advanced Face',(# 164),#160,.F.) ; #179=ADVANCEDFACE('Advanced Face',(# 174,#178),# 170,.T.); #12=(LENGTHUNIToNAMEDUNIT(*)SIUNIT(.MILLI.,.METRE.)); #13=(NAMEDUNIT(*)PLANEANGLEUNIToSIUNIT($,.RADIAN.)); #15=(NAMEDUNIT(*)SIUNIT($,.STERADIAN.)SOLIDANGLEUNITo); #17=(GEOMETRICREPRESENTATIONCONTEXT(3)GLOBALUNCERTAINTYASSIGNEDCONT EXT((#16))GLOBALUNITASSIGNEDCONTEXT((#12,#13,#15))REPRESENTATIONCONTEXT(' ENDSEC; END-ISO-10303-21; 82 MassachusettsInstitute of Technology - ComputerAided Design Laboratory ',' Appendix D IGES of the Peg S START RECORD GO HERE. I 1 H,, 1 H;,20HCNEXT - IGES PRODUCT,43HD:\Prabhat\Research\thesisexamples\pG eg.igs,43HIBM CATIA IGES - CATIA Version 5 Release 6 ,26HCATIA Version 5G 314 1 0 0 0 314 0 0 1 0 110 2 0 0 0 110 0 0 1 0 110 3 0 0 0 110 0 0 1 0 120 4 0 0 0 120 0 -1 1 0 124 5 0 0 0 124 0 0 1 0 100 6 0 0 0 100 0 0 1 0 110 7 0 0 0 110 0 0 1 0 124 8 0 0 0 124 0 0 2 0 100 10 0 0 0 100 0 0 1 0 110 11 0 0 0 110 0 0 1 0 102 12 0 0 0 102 0 0 1 0 142 13 0 0 0 142 0 0 1 0 144 14 0 0 0 144 0 -1 1 0 0 000000201D 0 OD 0 0 0 0 0 0 0 0 0 9 0 0 0 OD 0 15 0 0 0 0 0 0 0 0 19 21 23 24 000000001D Face. 17 22 001020001D 0D 15 20 001020001D OD 13 18 001020001D 0D 11 16 001020001D 0D 9 14 001020201D 0 7 12 001020001D OD 5 10 001020001D OD 3 8 001020201D OD 1 6 001020001D OD 4 4 001020001D OD G 2 001020001D OD 2 3 Release 6 ,32,75,6,75,15,,1.0,2,2HMM,1000,1.0,15H20020609.113347,0.001,G 10000.0,,17HDASSAULT SYSTEMES, 11,0,15H20020609.113347,; I 3D 25 26 83 MassachusettsInstitute of Technology - ComputerAided Design Laboratory 110 15 0 0 0 110 0 0 1 0 110 16 0 0 0 110 0 0 1 0 120 17 0 0 0 120 0 1 0 124 18 0 0 124 0 2 0 100 20 0 0 100 0 0 1 0 124 21 0 0 0 124 0 0 2 0 100 23 0 0 0 100 0 1 0 102 24 0 0 102 0 0 1 0 142 25 0 0 0 142 0 0 1 0 144 26 0 0 0 144 0 1 0 108 27 0 0 108 0 1 0 102 28 0 0 0 102 0 0 1 0 142 29 0 0 0 142 0 0 1 0 144 30 0 0 0 144 0 1 0 110 31 0 0 0 110 0 0 1 0 110 32 0 0 0 110 0 0 1 0 120 33 0 0 0 120 0 1 0 124 34 0 0 0 124 0 0 1 0 100 35 0 0 0 -1 0 0 0 0 0 -1 0 -1 -1 -1 0 0 001020001D OD 0 0 0 0 0 0 33 0 0 0 37 0 0 0 0 0 0 0 0 2D 0 0 0 0 0 0 0 0 4D 0 0 0 0 0 0 0 61 59 60 001020201D 0D 57 58 001020001D OD 55 56 001020001D OD 53 54 001020001D OD 51 52 000000001D Face. 49 50 001020001D 0D 47 48 001020001D OD 45 46 001020001D OD 43 44 000000001D Face. 41 42 001020001D 0D 39 40 001020001D 0D 37 38 001020001D 0D 35 36 001020201D 0D 33 34 001020001D OD 31 32 001020201D 0D 29 30 001020001D OD 0 28 001020001D OD 27 61 62 001020001D 63 84 Massachusetts Institute of Technology - ComputerA ided Design Laboratory 100 0 0 1 0 110 36 0 0 0 110 0 0 1 0 124 37 0 0 0 124 0 0 2 0 100 39 0 0 0 100 0 0 1 0 110 40 0 0 0 110 0 0 1 0 102 41 0 0 0 102 0 0 1 0 142 42 0 0 0 142 0 0 1 0 144 43 0 0 0 144 0 1 0 110 44 0 0 0 110 0 0 1 0 110 45 0 0 0 110 0 0 1 0 120 46 0 0 0 120 0 1 0 124 47 0 0 124 0 2 0 100 49 0 0 0 100 0 0 1 0 124 50 0 0 0 124 0 0 1 0 100 51 0 0 0 100 0 0 1 0 102 52 0 0 0 102 0 0 1 0 142 53 0 0 0 142 0 0 1 0 144 54 0 0 0 144 0 1 0 108 55 0 0 108 0 1 0 -1 -1 0 0 -1 0 -1 OD 0 0 001020001D OD 0 0 67 0 0 0 0 0 0 0 0 0 0 7D 0 0 0 0 0 0 0 85 0 0 0 89 0 0 0 0 0 0 0 0 6D 97 98 001020001D OD 95 96 000000001D Face. 93 94 001020001D OD 91 92 001020001D OD 89 90 001020001D OD 87 88 001020201D OD 85 86 001020001D OD 83 84 001020201D OD 81 82 001020001D OD 79 80 001020001D OD 77 78 001020001D OD 75 76 000000001D Face. 73 74 001020001D OD 71 72 001020001D OD 69 70 001020001D OD 67 68 001020001D OD 65 66 001020201D OD 0 64 99 100 85 MassachusettsInstitute of Technology - Computer Aided Design Laboratory 102 56 102 0 142 0 0 0 0 1 0 57 0 0 0 142 0 0 1 0 144 58 0 0 0 144 0 1 0 108 59 0 0 108 0 1 0 102 60 0 0 102 0 1 0 142 61 0 0 142 0 1 0 102 62 0 0 102 0 1 0 142 63 0 0 142 0 1 0 144 64 0 0 0 144 0 -1 1 0 -1 0 -1 0 0 0 0 0 0 0 0 0 0 102 OD 0 0 0 104 000000001D Face. 0 0 5D 0 001020001D 0 001020001D 0 001020001D 0 001020001D 0 113 114 115 001020001D 116 OD 0 111 112 OD 0 109 110 OD 0 107 108 OD 0 105 106 OD 0 103 001020001D OD 0 101 001020001D 000000001D Face. ID 117 118 314,82.35294118,82.35294118,100.0,5HColor,0,0; IP 110,0.0,0.0,30.0,0.0,0.0,3 1.0,0,0; 3P 2 5P 110,25.0,0.0,10.0,25.0,0.0,50.0,0,0; 120,3,5,0.0,6.283185307,0,0; 1 7P 3 4 124,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,50.0,0,0; 9P 100,0.0,0.0,0.0,25.0,0.0,-25.0,3.061515885E-015,0,0; 5 1IP 6 1 10,-25.0,3.061515885E-01 5,50.0,-25.0,3.061515885E-015,10.0,0,0; 124,-1.0,1.224606354E-01 6,0.0,0.0,1.224606354E-0 16,1.0,0.0,0.0, 0.0,0.0,-1.0,10.0,0,0; 15P 13P 15P 17P 10 110,25.0,-6.12303 1769E-015,10.0,25.0,0.0,50.0,0,0; 19P 11 21P 12 142,0,7,0,21,0,0,0; 23P 13 144,7,1,0,23,0,0; 25P 14 110,0.0,0.0,30.0,0.0,0.0,31.0,0,0; 27P 15 1 10,-25.0,3.061515885E-01 5,10.0,-25.0,3.061515885E-015,50.0,0,0; 120,27,29,0.0,6.283185307,0,0; 31P 33P 29P 16 17 124,-i.0,-1.224606354E-016,0.0,0.0,1.2246063 54E-01 6,-1.0,0.0, 0.0,0.0,0.0,1.0,50.0,0,0; 8 9 100,0.0,0.0,0.0,25.0,0.0,-25.0,-3.061515885E-0 15,0,0; 102,4,11,13,17,19,0,0; 7 33P 18 19 86 MassachusettsInstitute of Technology - Computer Aided Design Laboratory 100,0.0,0.0,0.0,25.0,0.0,-25.0,-3.061515885E-01 5,0,0; 35P 124,1.0,-2.449212708E-0 16,0.0,0.0,-2.449212708E-016,-1.0,0.0, 0.0,0.0,0.0,-1.0,10.0,0,0; 37P 37P 39P 102,4,35,19,39,13,0,0; 41P 43P 25 144,31,1,0,43,0,0; 45P 26 108,0.0,0.0,1.0,50.0,0,0.0,0.0,50.0,1.0,0,0; 47P 49P 23 24 142,0,31,0,41,0,0,0; 27 28 142,0,47,0,49,0,0,0; 51P 144,47,1,0,51,0,0; 53P 29 30 55P 110,0.0,0.0,5.0,0.0,0.0,6.0,0,0; 31 110,35.0,0.0,0.0,35.0,0.0,10.0,0,0; 57P 32 120,55,57,0.0,6.283185307,0,0; 59P 33 61P 124,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,10.0,0,0; 100,0.0,0.0,0.0,35.0,0.0,-35.0,4.286122238E-015,0,0; 34 63P 35 65P 110,-35.0,4.286122238E-015,10.0,-35.0,4.286122238E-015,0.0,0,0; 67P 124,-1.0,1.224606354E-016,0.0,0.0,1.224606354E-016,1.0,0.0,0.0, 0.0,0.0,-1.0,0.0,0,0; 67P 69P 71P 110,35.0,0.0,0.0,35.0,0.0,10.0,0,0; 73P 75P 42 144,59,1,0,75,0,0; 77P 43 79P 39 40 44 110,-35.0,4.286122238E-015,0.0,-35.0,4.286122238E-015,10.0,0,0; 83P 120,79,81,0.0,6.283185307,0,0; 85P 85P 87P 124,1.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,-1.0,0.0,0,0; 89P 100,0.0,0.0,0.0,35.0,0.0,-35.0,-4.286122238E-015,0,0; 91P 93P 95P 53 144,83,1,0,95,0,0; 97P 54 102,2,69,91,0,0; 99P 101P 47 49 50 51 52 142,0,83,0,93,0,0,0; 108,0.0,0.0,1.0,0.0,0,0.0,0.0,0.0,1.0,0,0; 45 48 100,0.0,0.0,0.0,35.0,0.0,-35.0,-4.286122238E-015,0,0; 102,4,87,71,91,65,0,0; 81P 46 124,-1.0,-1.224606354E-016,0.0,0.0,1.224606354E-016,-1.0,0.0, 0.0,0.0,0.0,1.0,10.0,0,0; 37 41 142,0,59,0,73,0,0,0; 110,0.0,0.0,5.0,0.0,0.0,6.0,0,0; 36 38 100,0.0,0.0,0.0,35.0,0.0,-35.0,4.286122238E-015,0,0; 102,4,63,65,69,71,0,0; 21 22 100,0.0,0.0,0.0,25.0,0.0,-25.0,3.061515885E-015,0,0; 102,2,35,11,0,0; 20 55 56 87 MassachusettsInstitute of Technology - Computer Aided Design Laboratory 142,0,99,0,101,0,0,0; 103P 57 144,99,1,0,103,0,0; 105P 58 108,0.0,0.0,1.0,10.0,0,0.0,0.0,10.0,1.0,0,0; 102,2,87,63,0,0; 109P 142,0,107,0,109,0,0,0; 113P 142,0,107,0,113,0,0,0; IG 4D 118P 61 62 115P 144,107,1,1,111,115,0,0; 64 59 60 HIP 102,2,39,17,0,0; S 107P 63 117P T 64 I 88 MassachusettsInstitute of Technology - ComputerAided Design Laboratory References: [1] Mathieu L., Marguet B., Integrated Design Method to Improve Producibility Based on Product Key Characteristics and Assembly Sequences, Annals of CIRP, 2001 [2] Ulrich K. T. and Eppinger S. D., Product Design and Development, The McGraw-Hill Companies, 2000 (ISBN 0-07-116993-8) [3] The Development of 3D CAD http://homepage.dtn.ntl.com/terry.rawkins/acad/solids/History.html [4] Chapter 15, Computer-Aided Engineering, CRC Handbook of Mechanical Engineering, Boca Raton, CRC Press, 1998 [5] http://www.engr.unl.edu/ee/eeshop.rsi.html [6] http:// web.mit.edu/atic/rsi/mitrsi.html [7] The nature of Creativity Cambridge University Press, Edited by Robert J. Sternberg [8] Nurturing and Developing Creativity: The emergence of a Discipline, edited by: Isaksen, S. G., Murdock, M. C., Firestien, R. L., Treffinger D. J., Ablex Publishing Corporation, Norwood, New Jersey [9] Negroponte, N., On Being Creative with Computer Aided Design, International Federation for Information Processing, pp 695-704, 1977 [10] CAD-Forum, http://www.cad-forum.com/links/technology.asp [11] Langner T., Springer J., Beitz W. and Luczak H., Frictions and frustrations in creativeinformatory work with computer aided design - CAD-systems -, Advances in Human Factors/Ergonomics, 18A, Human Aspects in Computing, Elsevier, 1991 [12] Sugato Chakrabarty and Jan Wolter, A structure-oriented approach to assembly sequence planning, IEEE transaction on Robotics and automation, Vol. 13, No. 1, pp14-29, 1997 [13] Luiz S Homen de Mello, A correct and complete algorithm for the generation of mechanical assembly sequence, IEEE Transaction on Robotics and Automation, Vol. 7, No. 2, pp 228-240, 1991 [14] H Weule, T Friedmann, Computer-aided product analysis in assembly planning, Annals of CIRP, Vol. 40, No. 1, pp 1-4, 1989 [15] P. Gu and X.Yan, CAD-directed automatic assembly sequence planning, International Journal of Production Research, Vol. 33, No.11 ,pp 3069-3100, 1995 89 MassachusettsInstitute of Technology - Computer Aided Design Laboratory [16] G Dini, M Santochi, Automated sequencing and subassembly direction in assembly planning, Annals of the CIRP, Vol. 41, No. 1, pp 1-4, 1992 [17] Mantripragada, R. and Whitney D. E., The Datum Flow Chain, Research in Engineering Design, Vol. 10, pp 150-165, 1998 [18] Whitney D. E., Mantripragada R., Adams J. D., Rhee S. J., Designing Assemblies, Research in Engineering Design, Vol. 11, pp 229-253, 1991 [19] Grupen R., Henderson T. C. and Hansen C., CAD-Based 3-D Object Recognition, IEEE, pp 168-172, 1989 [20] Gadh R., Liu Shang-Sheng, Determination of Interacting Features as Applied to Feature-Bease-Design, ASME, pp 107-115, 1994 [21] Henderson M.R., Extraction of Feature information from 3 D CAD data, PhD Thesis, Purdue University, 1984 [22] Vandenbrande, J. H., Automatic Recognition of Machinable Features in Solid Models, PhD Thesis, The University of Rochester, 1990. [23] Requicha A. A. G. and Han J., Feature Recognition from CAD Models, IEEE Computer Graphics and Applications, pp 80-94, 1988 [24] M. Idesawa, A system to generate a solid figure from a three view. Bulletin of JSME, Vol. 16, pp 216-225, 1973 [25] Masuda H.and Numao M., A cell-based approach for generating solid objects from orthographic projections, Computer Aided Design, Vol. 29, pp 177-187, 1997 [26] Tanaka M., Iwama K., Hosoda A., Watanabe T., Decomposition of a 2D Assembly Drawing into 3D Part Drawing, Computer-Aided-Design, Vol. 30, pp 37-46, 1998 [27] Nagendra I.V. and Gujar U.G., 3-D Objects from 2-D orthographic views - A Survey. Computers & Graphics, 129(1), pp 111-114, 1988 [28] The Math Works Inc., "MATLAB", Massachusetts, 1998 [29] Mohan C. K., Ozcan E., Shape Recognition using Genetic Algorithms, IEEE, pp 411416, 1996 [30] Cai J., Liu Zhi-Qiang, Hidden Markov Models with Spectral Features for 2D Shape Recognition, IEEE, pp 1454-1858, 2001 90 MassachusettsInstitute of Technology - ComputerAided Design Laboratory [31] Seibert M., and Waxman A. M., Learning and Recognizing 3D Objects from Multiple views in a Neural System, Neural Networks for Perception, Vol. 1, pp 426-444, 1992 [32] Chin R. T., The Cho-Huak, Two Dimensional CAD-Based Object Recognition, IEEE, pp 382-384, 1998 [33] Gursoz L., Sudhakar A., Hjalmarsson H., Automated Model Building for Moldability Analysis, ASME, pp 71-85, 1994 [34] Kramer, G. A.., Using degrees of freedom analysis to solve geometric constraint systems, Proc. Sympo. Solid Modeling Foundations and CAD/CAM Applications ACM SIGGRAPH, pp 371-378, 1991 [35] Park H. S., Menzel E., Tonshoff H. K., A knowledge-based system for Automated Assembly Planning, Annals of CIRP, Vol. 41, pp 19-24, 1992 [36] Dietz S., Bley H., Knowledge of Selecting Assembly Cell Components and its Distributed to CAD and an Expert System for Processing, Annals of the CIRP, Vol. 43, pp 5-8, 1994 [37] David R. Wallace, Shaun Abrahamson, Nicola Senin, Peter Sferro, Integrated Design in a Service Marketplace, Computer-aidedDesign, Vol. 32, No. 2, pp. 97-107, 2000 [38] Nicola Senin, David R. Wallace, Nicholas Borland, Object-based Simulation in a Service Marketplace, accepted for publication, ASME Journalof MechanicalDesign, 2000. [39] Francis Pahng, Seokhoon Bae, David Wallace, A web-based collaborative design modeling environment, Proceedings of the Seventh IEEE International Workshops on Enabling Technologies, Infrastructure for Collaborative Enterprises Conference, Stanford University, pp 161-167, 1998. [40] Liteplo, Williams, Virtual Assembly Models in Distributed Heterogeneous CAD Environments, MIT Masters Thesis, 2000. [41] UK Council for Electronic Business, http://www.ukceb.org/step, 2001 [42] National Research Council - IMTI, (Strategis Industry Canada Online), http://strategis.ic.gc.ca/SSG/ad03597e.html-http://strategis.ic.gc.ca/SSG/ad03604e.html, 1999 [43] Peng T, Trappey, A J C, A step toward STEP-compatible engineering data management: the data models of product structure and engineering changes, Robotics and Computer-Integrated Manufacturing, Vol. 14, pp 89-109, 1998 [44] Magoon G I, Pfrommer C, Ironing Out IGES, Computer Aided Engineering, Vol. 8, No. 1, pp 52-54, 1989 91 MassachusettsInstitute of Technology - Computer Aided Design Laboratory [45] Diehl A, Transferring files from CAD to CAM, Computer Aided Engineering, Vol. 15, No. 1, pp 50-52, 1996 [46] Coles K, Hou C A, Enhancement of IGES Preprocessor for Data Exchange, American Society of Mechanical Engineers paper, pp 1-5, 1991 [47] Boothroyd G., Alting L., Design for Assembly and Disassembly, Annals of CIRP, Vol. 41, 625-638, 1992 92 MassachusettsInstitute of Technology - Computer Aided Design Laboratory