ABSTRACT Title of Dissertation: ALGORITHMS FOR GENERATING MULTI-STAGE MOLDING PLANS FOR ARTICULATED ASSEM- BLIES Alok K. Priyadarshi, Doctor of Philosophy, 2006 Dissertation directed by: Associate Professor Satyandra K. Gupta Department of Mechanical Engineering Plastic products such as toys with articulated arms, legs, and heads are tra- ditionally produced by first molding individual components separately, and then assembling them together. A recent alternative, referred to as in-mold assembly process, performs molding and assembly steps concurrently inside the mold itself. The most common technique of performing in-mold assembly is through multi- stage molding, in which the various components of an assembly are injected in a sequence of molding stages to produce the final assembly. Multi-stage molding produces better-quality articulated products at a lower cost. It however, gives rise to new mold design challenges that are absent from traditional molding. We need to develop a molding plan that determines the mold design parameters and sequence of molding stages. There are currently no software tools available to generate molding plans. It is difficult to perform the planning manually because it involves evaluating large number of combinations and solving complex geometric reasoning problems. This dissertation investigates the problem of generating multi-stage molding plans for articulated assemblies. The multi-stage molding process is studied and the underlying governing principles and constraints are identified. A hybrid plan- ning framework that combines elements from generative and variant techniques is developed. A molding plan representation is developed to build a library of feasible molding plans for basic joints. These molding plans for individual joints are reused to generate plans for new assemblies. As part of this overall planning framework, we need to solve the following geometric subproblems ? finding assembly configura- tion that is both feasible and optimal, finding mold-piece regions, and constructing an optimal shutoff surface. Algorithms to solve these subproblems are developed and characterized. This dissertation makes the following contributions. The representation for molding plans provides a common platform for sharing feasible and efficient mold- ing plans for joints. It investigates the multi-stage mold design problem from the planning perspective. The new hybrid planning framework and geometric reason- ing algorithms will increase the level of automation and reduce chances of design mistakes. This will in turn reduce the cost and lead-time associated with the deployment of multi-stage molding process. ALGORITHMS FOR GENERATING MULTI-STAGE MOLDING PLANS FOR ARTICULATED ASSEMBLIES by Alok K. Priyadarshi Dissertation submitted to the Faculty of the Graduate School of the University of Maryland, College Park in partial fulfillment of the requirements for the degree of Doctor of Philosophy 2006 Advisory Committee: Associate Professor Satyandra K. Gupta, Chairman/Advisor Professor Davinder K. Anand Associate Professor Hugh Bruck Associate Professor Jeffrey W. Herrmann Professor Amitabh Varshney c? Copyright by Alok K. Priyadarshi 2006 DEDICATION To my parents ii ACKNOWLEDGEMENTS I would like to show my appreciation and express my gratitude to Dr. Satyandra K. Gupta for giving me an opportunity to conduct research under his supervision. I strongly believe that the skills I have acquired while working with him will prove to be extremely useful in my professional career. I would also like to thank my dissertation review committee members for their invaluable suggestions. This work was supported by NSF Grant DMI-0093142. I am thankful to the University of Maryland, the Mechanical Engineering Depart- ment and the Institute for Systems Research for the opportunity and support. Regina Gouker, Florian Krebs, Martin Shroeder, and Stefan Warth helped me in prototyping the example parts. Many of the fun- damental and technical ideas underlying this work were initiated from our discussions. Ralph and Mike from Space Ltd. patiently answered all my questions about molding. Cholly Nachman, my colleague at Solidworks taught me finer details of mold design. My fellow researchers and friends at CIM lab ? Abhijit, Arvind, Ashis, Bellam, Brent, Changxin, Chen, Deepak, Greg, Ira, Jun, Li, Malay, iii Mandar, Mukul, Rohit, Sunil, Tao, and Yao have provided good com- pany and advice. Arindam, Siddharth, Dutta, Akash, and Janhavi hosted me while I was visiting Maryland. And last but not the least, a special thank you to my wife Susmita and my family for all their support through the years. iv TABLE OF CONTENTS List of Figures xi 1 INTRODUCTION 1 1.1 In-Mold Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Research Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Research Objectives and Issues . . . . . . . . . . . . . . . . . . . . 6 1.3.1 Planning Framework . . . . . . . . . . . . . . . . . . . . . . 7 1.3.2 Geometric Algorithms to Support Planning . . . . . . . . . 9 1.4 Dissertation Outline . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 BACKGROUND 14 2.1 Injection Molding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1.1 Molding Process . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1.2 Mold System . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.1.3 Rapid Tooling . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.4 Production Tooling . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 Multi-Stage Molding . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Hardware Shadow Mapping . . . . . . . . . . . . . . . . . . . . . . 23 2.3.1 Self Shadowing . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.2 Percentage Closer Filtering (PCF) . . . . . . . . . . . . . . . 26 v 2.4 Geometric Modeling Basics . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.1 Solid Models . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4.2 Assembly Models . . . . . . . . . . . . . . . . . . . . . . . . 30 2.4.3 Geometric Transformations . . . . . . . . . . . . . . . . . . 32 2.4.4 Faceting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.5 Convex Hull . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5 State-Space Search . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3 PROBLEM FORMULATION 45 3.1 A Model for Articulated Assemblies . . . . . . . . . . . . . . . . . . 45 3.1.1 Articulated Joints . . . . . . . . . . . . . . . . . . . . . . . . 46 3.1.2 Articulated Assemblies . . . . . . . . . . . . . . . . . . . . . 49 3.2 Definition of Mold Design Terms . . . . . . . . . . . . . . . . . . . 53 3.3 Generating Molding Plan . . . . . . . . . . . . . . . . . . . . . . . . 55 3.3.1 Feasiblity of a Molding Plan . . . . . . . . . . . . . . . . . . 57 3.3.2 Cost of a Molding Plan . . . . . . . . . . . . . . . . . . . . . 59 3.4 Multi-Stage Mold Design for Articulated Assemblies . . . . . . . . . 63 3.5 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.6 Overview of Approach . . . . . . . . . . . . . . . . . . . . . . . . . 66 4 RELATED WORK 71 4.1 Accessibility Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.1.1 Local Accessibility analysis . . . . . . . . . . . . . . . . . . . 72 4.1.2 Global Accessibility Analysis . . . . . . . . . . . . . . . . . . 75 4.2 Two-Piece Mold Design . . . . . . . . . . . . . . . . . . . . . . . . 77 4.2.1 Determination of Parting Direction . . . . . . . . . . . . . . 77 vi 4.2.2 Determination of Parting Line and Parting Surface . . . . . 83 4.3 Multi-Piece Mold Design . . . . . . . . . . . . . . . . . . . . . . . . 85 4.3.1 Sacrificial Mold Design . . . . . . . . . . . . . . . . . . . . . 86 4.3.2 Permanent Mold Design . . . . . . . . . . . . . . . . . . . . 86 4.4 Multi-Stage Mold Design . . . . . . . . . . . . . . . . . . . . . . . . 90 4.5 Assembly Sequence Planning . . . . . . . . . . . . . . . . . . . . . . 93 4.6 Hybrid Process Planning . . . . . . . . . . . . . . . . . . . . . . . . 95 4.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5 REPRESENTING REUSABLE MOLDING PLANS FOR AR- TICULATED JOINTS 97 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.2 Basic Assembly Design Principles for Achieving Feasible and Effi- cient Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.2.1 Achieving Proper Joint Clearances . . . . . . . . . . . . . . 100 5.2.2 Preventing Adhesion at Joint Interfaces . . . . . . . . . . . . 104 5.2.3 Minimizing the Number of Molding Stages . . . . . . . . . . 106 5.2.4 Simplifying the Method for Changing Cavity Shape . . . . . 107 5.3 Framework for Representing Joint Molding Plans . . . . . . . . . . 109 5.3.1 Applicability Conditions . . . . . . . . . . . . . . . . . . . . 110 5.3.2 Feasibility Constraints . . . . . . . . . . . . . . . . . . . . . 111 5.3.3 Representation Format . . . . . . . . . . . . . . . . . . . . . 113 5.4 Molding Plans for Prismatic Joint . . . . . . . . . . . . . . . . . . . 115 5.4.1 Plan A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 5.4.2 Plan B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.5 Molding Plans for Revolute Joint . . . . . . . . . . . . . . . . . . . 120 vii 5.5.1 Plan C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.5.2 Plan D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.6 Molding Plans for Spherical Joint . . . . . . . . . . . . . . . . . . . 126 5.6.1 Plan E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.6.2 Plan F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6 GENERATING MOLDING PLANS FOR ARTICULATED AS- SEMBLIES 133 6.1 State Space Formulation . . . . . . . . . . . . . . . . . . . . . . . . 133 6.2 Overview of Approach . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.3 The Search Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.3.1 Bounding Function . . . . . . . . . . . . . . . . . . . . . . . 145 6.3.2 Reusing the Results of a Search Node . . . . . . . . . . . . . 147 6.3.3 Branching Rule . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.4 Generating Molding Stages . . . . . . . . . . . . . . . . . . . . . . . 148 6.4.1 Finding Stage Components and the Base Component . . . . 150 6.4.2 Orienting the Base Component . . . . . . . . . . . . . . . . 153 6.4.3 Finding the Feasible Configuration Space for a Stage Com- ponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.4.4 Finding an Optimal Configuration for a Stage Component . 158 6.4.5 Finding Feasible Configurations for Pre-Stage Components . 164 6.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 6.5.1 Swashplate . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 6.5.2 Vent Assembly . . . . . . . . . . . . . . . . . . . . . . . . . 172 6.5.3 Universal Joint . . . . . . . . . . . . . . . . . . . . . . . . . 174 viii 6.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 7 FINDING MOLD-PIECE REGIONS 180 7.1 Problem Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.2 Object-Space Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 183 7.2.1 Determining the Accessibility of a Facet . . . . . . . . . . . 184 7.2.2 Separating Axis Method for Convex Polygons . . . . . . . . 187 7.2.3 Handling Near-Vertical Facets . . . . . . . . . . . . . . . . . 188 7.2.4 Pruning Unnecessary Obstruction Tests . . . . . . . . . . . . 191 7.2.5 Implementation and Results . . . . . . . . . . . . . . . . . . 194 7.3 Image-Space Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.3.1 Overview of Approach . . . . . . . . . . . . . . . . . . . . . 197 7.3.2 Handling Near-Vertical Facets . . . . . . . . . . . . . . . . . 199 7.3.3 Preventing Self-Shadowing . . . . . . . . . . . . . . . . . . . 200 7.3.4 Transferring Results from the GPU to CPU . . . . . . . . . 203 7.3.5 Implementation and Results . . . . . . . . . . . . . . . . . . 205 7.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 8 CONSTRUCTING OPTIMAL SHUTOFF SURFACES 212 8.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 8.1.1 Shutoff Surface . . . . . . . . . . . . . . . . . . . . . . . . . 214 8.1.2 Methodology for Creating Shutoff Surface . . . . . . . . . . 216 8.2 Problem Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . 217 8.2.1 Validity of a Shutoff Surface . . . . . . . . . . . . . . . . . . 219 8.2.2 Machining Cost of a Shutoff Surface . . . . . . . . . . . . . . 220 8.2.3 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . 221 ix 8.3 Overview of Approach . . . . . . . . . . . . . . . . . . . . . . . . . 223 8.4 The Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 8.4.1 Creating an Initial Valid Shutoff Surface . . . . . . . . . . . 224 8.4.2 Optimizing the Initial Shutoff Surface . . . . . . . . . . . . . 225 8.4.3 Making a Segment Patch Follow a Strategy . . . . . . . . . . 230 8.4.4 Creating a Bridge Patch . . . . . . . . . . . . . . . . . . . . 232 8.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 8.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9 CONCLUSIONS 236 9.1 Intellectual Contributions . . . . . . . . . . . . . . . . . . . . . . . 236 9.2 Anticipated Industrial Benefits . . . . . . . . . . . . . . . . . . . . . 239 9.3 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Bibliography 243 x LIST OF FIGURES 1.1 Examples of in-mold assembled articulated devices . . . . . . . . . . 3 1.2 Swash plate with traditionally assembled components . . . . . . . . 3 1.3 Examples of infeasible and feasible configuration . . . . . . . . . . . 10 2.1 A single screw injection molding machine for thermoplastics . . . . 16 2.2 A basic mold for an example part . . . . . . . . . . . . . . . . . . . 18 2.3 Mold System Operation . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4 Multi-stage molding. . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5 Depth comparison scheme used in shadow mapping [Ever01] . . . . 24 2.6 Percentage Closer Filtering (PCF) . . . . . . . . . . . . . . . . . . . 27 2.7 Faceting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.8 3D Convex Hull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.1 Prismatic joint [Simm06] . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2 Revolute joint [Simm06] . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3 Spherical joint [Simm06] . . . . . . . . . . . . . . . . . . . . . . . . 49 3.4 Assembly configuration scheme. . . . . . . . . . . . . . . . . . . . . 51 3.5 Mold pieces mold for an example part . . . . . . . . . . . . . . . . . 53 3.6 Mold-Piece Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.7 Shutoff surface for an example part. . . . . . . . . . . . . . . . . . . 55 xi 3.8 Molding plan example. . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.9 Component A casts shadow on component B . . . . . . . . . . . . . 59 3.10 Mold-piece regions and parting line for the third molding stage of gimbal shown in Figure 3.8d. . . . . . . . . . . . . . . . . . . . . . . 64 3.11 Shutoff surface for the third molding stage of gimbal shown in Fig- ure 3.8d. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.12 Overview of approach . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.1 Visibility Maps of some simple surfaces . . . . . . . . . . . . . . . . 73 4.2 Visibility Map represents local visibility . . . . . . . . . . . . . . . . 75 4.3 Cores can be avoided even if the visibility map is empty . . . . . . . 78 4.4 Cores can be avoided even if the intersection of visibility maps is empty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.5 Partitioning of a pocket . . . . . . . . . . . . . . . . . . . . . . . . 81 4.6 Difference between the parting surface and the shutoff surface . . . 85 4.7 Concave regions having no parting direction and no internal convex edge are also moldable . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.1 Effect of Shrinkage on Joint Clearance . . . . . . . . . . . . . . . . 100 5.2 Shrinkage Analysis for Revolute Joint . . . . . . . . . . . . . . . . . 101 5.3 Three components can be injected in two stages . . . . . . . . . . . 107 5.4 Changing mold cavity shape between stages . . . . . . . . . . . . . 108 5.5 Feasible configuration space of a joint axis . . . . . . . . . . . . . . 112 5.6 Feasible range of a joint parameter . . . . . . . . . . . . . . . . . . 113 5.7 Prismatic joint plan A . . . . . . . . . . . . . . . . . . . . . . . . . 116 5.8 Example for prismatic joint plan A . . . . . . . . . . . . . . . . . . 117 xii 5.9 Prismatic joint plan B . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.10 Example for prismatic joint plan B . . . . . . . . . . . . . . . . . . 119 5.11 Effect of excessive shrinkage on part quality . . . . . . . . . . . . . 120 5.12 Revolute joint plan C . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.13 Example for revolute joint plan C . . . . . . . . . . . . . . . . . . . 123 5.14 Revolute joint plan D . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.15 Example for revolute joint plan D . . . . . . . . . . . . . . . . . . . 125 5.16 Spherical joint plan E . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.17 Example for spherical joint plan E . . . . . . . . . . . . . . . . . . . 128 5.18 Spherical joint plan F . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.19 Example for spherical joint plan F . . . . . . . . . . . . . . . . . . . 130 6.1 Molding plan problem . . . . . . . . . . . . . . . . . . . . . . . . . 135 6.2 Gimbal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.3 Partial state space . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 6.4 Method to generate a molding stage . . . . . . . . . . . . . . . . . . 151 6.5 Joint precedence constraints for gimbal . . . . . . . . . . . . . . . . 152 6.6 Precedence constraints for an assembly. . . . . . . . . . . . . . . . . 153 6.7 Determining the feasible configuration space for a stage component 157 6.8 Scheme for finding the configuration with minimum undercuts . . . 160 6.9 Finding a configuration for which the parting line is flattest . . . . 162 6.10 Scheme for finding the orientation for flattest parting line . . . . . . 163 6.11 Tree representation of the subassembly produced by a molding stage 165 6.12 Feasible configurations for pre-stage components . . . . . . . . . . . 166 6.13 Swashplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 6.14 Joint precedence constraints for swashplate . . . . . . . . . . . . . . 168 xiii 6.15 Complete state space for swashplate . . . . . . . . . . . . . . . . . . 170 6.16 Feasible configuration space for C2. . . . . . . . . . . . . . . . . . . 171 6.17 Optimal configuration for C2. . . . . . . . . . . . . . . . . . . . . . 172 6.18 Vent assembly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 6.19 Joint precedence constraints for vent assembly. . . . . . . . . . . . . 173 6.20 First molding stage for vent assembly. . . . . . . . . . . . . . . . . . 174 6.21 Second molding stage for vent assembly. . . . . . . . . . . . . . . . 175 6.22 Universal joint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 6.23 Joint precedence constraints for universal joint. . . . . . . . . . . . 176 6.24 First molding stage for universal joint. . . . . . . . . . . . . . . . . 177 6.25 Second molding stage for universal joint. . . . . . . . . . . . . . . . 178 7.1 Accessibility of a surface means demoldability . . . . . . . . . . . . 181 7.2 Split core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 7.3 Mold-Piece Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 7.4 Projecting facets on the viewing plane . . . . . . . . . . . . . . . . 186 7.5 Separating Axis Method for convex polygons . . . . . . . . . . . . . 188 7.6 Surface tolerance problems with near-vertical facets . . . . . . . . . 189 7.7 Compensating surface tolerance by rotating viewing direction . . . . 190 7.8 Convex-Hull facets and Non-Convex-Hull facets . . . . . . . . . . . 191 7.9 Polyhedral-object accessibility properties . . . . . . . . . . . . . . . 192 7.10 Obstruction test need not be performed for all facet pairs . . . . . . 194 7.11 Screenshots of three example parts . . . . . . . . . . . . . . . . . . 196 7.12 Performance result for a progressively simplified part. . . . . . . . . 197 7.13 Visibility of projected facets cannot change at intersection with con- cave contour edges . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 xiv 7.14 The problem with the second-depth technique when used with PCF 203 7.15 Perturbation scheme for near-vertical facets . . . . . . . . . . . . . 205 7.16 Graphics rendering pipeline . . . . . . . . . . . . . . . . . . . . . . 206 7.17 Screenshots of four example parts . . . . . . . . . . . . . . . . . . . 209 7.18 Performance of the image-space algorithm . . . . . . . . . . . . . . 210 8.1 Shutoff surface for an example part. . . . . . . . . . . . . . . . . . . 214 8.2 Outer and inner parting line loops . . . . . . . . . . . . . . . . . . . 215 8.3 Outer and inner shutoff surfaces . . . . . . . . . . . . . . . . . . . . 215 8.4 Strategies for creating shutoff surface. . . . . . . . . . . . . . . . . . 218 8.5 A bridge patch stitches two disjoint shutoff patches . . . . . . . . . 219 8.6 Creating a valid shutoff surface. . . . . . . . . . . . . . . . . . . . . 225 8.7 The problem of selecting the optimal combination of strategies . . . 227 8.8 Creating a bridge patch . . . . . . . . . . . . . . . . . . . . . . . . 233 8.9 Results of the algorithm for creating shutoff surface . . . . . . . . . 235 xv Chapter 1 INTRODUCTION This chapter is arranged in the following manner. Section 1.1 describes the in- mold assembly process that is used to manufacture molded articulated assemblies. Section 1.2 describes the motivation behind the research undertaken in this disser- tation. Section 1.3 describes the objectives and associated challenges of this work. Section 1.4 finally describes the outline of this dissertation. 1.1 In-Mold Assembly Plastic products are usually produced by first molding individual components sep- arately, and then assembling them together. A recent alternative, referred to as in-mold assembly process, performs molding and assembly steps concurrently in- side the mold itself. This means that an entire assembly consisting of multiple components can be produced by a single set of molds, thereby eliminating the need for secondary assembly operations and the use of bolts, welds, glue, or other fasteners. In-mold assembly has several advantages over traditional techniques that in- volve molding the components separately and then assembling them. It allows in- 1 tegration of functional elements, thereby reducing the number of components and additional assembly steps. Several studies have indicated that assembly costs make up 40% to 50% of the manufacturing costs to produce a product [Anan95]. Re- duction in number of components reduces the associated assembly labor, purchas- ing, inspecting, warehousing, capital requirements and piece part costs of a prod- uct [Roth04]. In-mold assembled products also have better component-alignment and overall structural integrity than their traditional counterparts. In-mold assembly opens up the design space and presents new possibilities. One of its applications has been in producing multi-material rigid and compliant struc- tures where material interfaces are adhered to each other completely constraining the motion between them [Gouk06, Bruc04]. For example, it can be used to mold gaskets directly onto parts that need to form tight seals, such as lids, connectors and the like. One of the most recent successful applications of in-mold assem- bly has been in producing multi-material rigid-body articulated devices. Unlike compliant mechanisms, rigid-body articulated devices have non-binding interfaces with selective degrees of freedom between components. Multi-material articulated devices are widely used in toys, medical instruments, consumer products, and household appliances. Two examples are shown in Figure 1.1. Figure 1.2 shows the swash plate made traditionally. The number of components in the traditionally manufactured swash-plate is eleven, while the in-mold version has only five. The most common and economically feasible way of performing in-mold assem- bly is through multi-stage molding (MSM). MSM is usually accomplished through some form of specialized injection molding technique [Pirk98, Plan02, Good02, Li04]. Various polymers composing the different material sections are heated to their melting temperatures, then injected in sequence into a mold or set of molds. 2 (a) Swash plate with in-mold as- sembled components (b) Syringe with in-mold assembled seal, plunger, and closeable lid Figure 1.1: Examples of in-mold assembled articulated devices Figure 1.2: Swash plate with traditionally assembled components The mold cavity shape changes after each molding stage to accommodate the ma- terial to be injected in the next stage. The liquefied polymers solidify into their desired shapes by taking on the form of the mold cavities in which they reside. MSM is described in detail in Section 2.2. 3 1.2 Research Motivation Multi-stage molding has emerged as an important manufacturing process. It can be used to make better-quality articulated products at a lower cost. But at the same time, it gives rise to new mold design challenges that are absent from traditional molding. As opposed to traditional molding, multi-stage molding combines two processes ? fabrication and assembly. This combination of processes introduces a new component of planning into multi-stage mold design. In multi-stage molding, an articulated assemblyAis produced using a sequence of molding stages {s1,...,sn}. In each molding stage si, a set of components Ci is added to the already molded sub-assembly Ai?1 to produce Ai. The first stage s1, starts with an empty assembly (A0 = ?), and the last stage sn produces the final assembly (An = A). Intermediate stages require reconfiguring the mold as well as intermediate subassemblies Ai. The first and an integral step in design- ing a multi-stage mold for an articulated assembly is generating a molding plan, which essentially consists of a sequence of molding stages {s1,...,sn} required to produce the assembly. Once a molding plan is generated, available software tools for traditional mold design can be used to design a mold for each molding stage si. There are currently no software tools to generate molding plans. The mold design software systems (MoldWizard, ProMold, IMold, etc.) available in market today only handle traditional molding. They provide a variety of tools to speed up the mold design process. They can examine part geometry, simulate analysis, and forecast potential problems. Most of the systems can perform draft analysis, undercut detection, parting line recognition, and core-cavity split. A high-end tool such as MoldFlow can help analyze the flow, cooling, shrinkage, warpage and stress during the thermoplastic injection process. Some others also help in 4 designing ejection and cooling systems. To summarize, the available commercial software packages do not generate a molding plan, but provide low-level tools for analysis and creating mold pieces. A molding plan needs to be manually developed to make use of available tools. It is difficult to perform the planning manually. Like any manufacturing process planning task, generating molding plan is a challenging problem. The components of an assembly can be molded in any order. But out of all possible permutations and combinations, there are usually very few feasible sequences that lead to a product with desired characteristics. Identifying a feasible sequence that also min- imizes the manufacturing cost is even harder. It involves examining a large number of combinations and solving complex geometric reasoning problems. The desired articulation and multiple molding stages introduce geometric constraints, which if violated, results in poor part quality, longer molding cycles, and high tooling cost. In the absence of software tools, it usually takes a long time ? about three to four weeks on an average to develop a molding plan. There are also concerns about the correctness of a molding plan because many decisions are based on subjective guesswork. In many cases, designers are not able to discover errors until very late in the design process. Discovering problems after investing so much time and money results in expensive product and missed market opportunity. The cost to fix a potential problem is multiplied by several times the further it is discovered down the product development cycle. A problem discovered while designing the part or mold is far more economical to fix than if it is discovered after the molds are built, the parts are molded, and the products are assembled, packaged and delivered to the customer. The injection molding industry is one of the largest and most competitive in- 5 dustries. To maintain competitive edge, companies need to continuously strive for better, faster, and cheaper products. Shorter design and manufacturing lead times, good dimensional and overall quality, and frequent design improvements are keys to success. Multi-stage molding aims to reduce the manufacturing cost by elimi- nating secondary assembly operations. But those cost benefits cannot be realized unless we produce multi-stage molds in much less time and cost. It is observed that software lowers the overall cost by reducing design/manufacturing lead times. It reduces chances of error through robust geometric calculations and also explores design alternatives that are otherwise difficult due to human constraints. Hence it would be useful to have software tools to generate multi-stage molding plan. 1.3 Research Objectives and Issues The purpose of this dissertation is to investigate the problem of generating multi- stage molding plan for articulated assemblies. This dissertation formally defines the planning problem and develops algorithms to solve them. These algorithms can be used to develop software that can automatically generate multi-stage molding for articulated assemblies. This dissertation makes the following assumptions: ? The input assembly is a serial mechanism. This dissertation does not handle parallel mechanisms. ? The input assembly consists of only rigid-body joints. Articulation can be achieved by both ? compliant joints [Gouk06, Bruc04] and rigid-body joints. The compliant joints are created using a soft (compliant) material between two rigid materials. The material interfaces are adhered to each other com- 6 pletely constraining the motion between them. In contrast, there is some clearance and hence one or more degrees of freedom between material in- terfaces in rigid-body joints. This dissertation only deals with rigid body joints. ? Sequencing is not affected by flow considerations. It is assumed that each component is feasible to mold from the mold-flow point of view in all possible sequences. ? Sequencing is not affected by thermal considerations. It is assumed that the thermal management system is capable of providing appropriate cooling and heating. We need to develop a framework for solving the planning problem. Performing assembly with fabrication leads to new problems that are absent from the tradi- tional mold design problem. These new problems are geometric in nature and need to be solved in order to do planning. So we need to develop geometric reasoning algorithms for the same. The rest of this section discusses the associated research issues. 1.3.1 Planning Framework Generating molding plan is in some ways similar to other manufacturing operation- planning problems such as machining and sheet-metal bending. There are two traditional approaches to process planning. The first approach is called generative process planning. In this approach a plan is synthesized from the first principles by trying various alternatives in generate-and-test paradigm. The second approach is called variant process planning. In this approach, a plan is generated by modifying 7 an existing plan. Sometimes a hybrid approach is also used that combines elements from generative and variant techniques. We need to identify the approach that is most suitable for our planning problem. Incorporating Experimentally-Verified Molding Plans for Joints When a successful plan is developed and experimentally validated for molding a joint, a lot of useful knowledge is generated. Developing a successful molding plan is a complex and time-consuming process. Hence, when a joint similar to a previously molded joint is found in a new assembly, it would be more efficient to reuse the previously generated plan than reinventing it from scratch. The various types of joints used are very few. So it is very common to find similar joints in new assemblies. We need to develop an approach for incorporating the experimentally- verified molding plans for individual joints into the overall planning framework for assemblies. Formulation of Molding Planning Problem The molding planning problem has not yet been formally defined. We first need to develop mathematical definitions to represent entities such as articulated as- semblies, configuration space, and molding stage. A molding plan is considered feasible if it leads to a product with desired characteristics. We need to study the multi-stage molding process and identify the underlying governing principles and constraints that a plan needs to satisfy in order to be feasible. Multiple feasible molding plans may exist for a given assembly. In that case, it is desired that we select the molding plan with minimum manufacturing cost. The cost of a molding plan depends on a variety of factors. We need to identify all those factors and 8 develop a computationally-tractable cost function that needs to be minimized. Development of Search Technique Manufacturing operation-planning problems that are usually formulated as state- space search and uses branch and bound (B&B) search to obtain an optimal solu- tion. However the effectiveness of B&B depends on problem-specific heuristics that guides the search to an optimal solution quickly. Any problem employing B&B needs to provide a bounding cost function. In our case we need to calculate a lower bound cost for molding a subassembly. Another problem that we need to consider is reducing the time taken to generate a search node. Generating a search node involves extensive geometric reasoning and making queries to a geometric kernel. Such computation is time-consuming and leads to very high node-generation time. Slow node generation also makes it difficult to explore large portions of the search space. We need to develop an approach to avoid generating redundant nodes. 1.3.2 Geometric Algorithms to Support Planning In each molding stage, we need to find a configuration of the intermediate sub- assembly Ai in which molding will take place. The configuration should be such that it is feasible as well as optimal. In a feasible configuration, there is no ob- struction between two components along the parting direction. The characteristics of an optimal configuration is that the cost of the molding stage is minimum. This dissertation defines the cost of a molding stage as sum of molding cost, defect cost, and tooling cost. The number of undercuts on the components to be molded (stage components) is a contributing factor to the molding cost. Similarly, complexity of the parting line and machining cost of the shutoff surface are the contributing 9 C1 C2 C3 C4 C5 C 6 Parting Direction (a) Infeasible configuration Parting Direction C1 C2 C3 C4 C5 C 6 (b) Feasible configuration Figure 1.3: Examples of infeasible and feasible configuration factors to the defect cost and the tooling cost respectively. Henceforeachmoldingstage, weneedtofindaconfigurationthatisobstruction- free, and for which the number of undercuts on the stage components is minimum and the parting line is flattest. For each molding stage, we also need to create a shutoff surface for which the machining cost is minimum. Finding Obstruction-Free Configuration In a valid molding stage si, the components of subassembly Ai do not obstruct the accessibility of each other. Figure 1.3 shows examples of infeasible and fea- sible configuration for a vent assembly. The configuration shown in Figure 1.3a is infeasible because components C2 ?C6 obstruct each other along the parting direction. Orienting the components vertical as shown in Figure 1.3b makes the configuration obstruction-free and hence feasible. The algorithm for finding an obstruction-free configuration space for Ai re- quires determining global ray-accessibility of facets. The algorithm for finding the mold-piece regions also needs to determine the accessibility of facets. It is required 10 that the accessibility analysis algorithm be both efficient and robust. In compu- tational geometry, efficiency and robustness are usually conflicting attributes for an algorithm. It should be efficient because it will be very heavily used. It should be robust because we are dealing with polyhedral objects. The curved surfaces on the part boundary are faceted and approximated by smaller triangles. Due to the surface tolerances introduced by faceting, a robust method is required to determine the accessibility of near-vertical facets. The available visibility algorithms cannot be used because there is a small, but important difference between ray-accessibility and visibility. A facet perpendicular to a direction vectord (vertical facet) is not visible but accessible in vectord. Mathematically, suppose vectorn is the facet normal, then the facet is visible if vectord.vectorn > 0, but accessible even if vectord.vectorn = 0. Therefore, a new approach to determine global ray-accessibility of a facet needs to be developed. Finding Assembly Configuration with Minimum Undercuts The tooling cost for a component is directly proportional to the number of side actions that are required to form the undercuts on the component. Here we are interested in finding a molding configuration for a component for which the number of undercuts is minimum. Finding a parting direction and finding a configuration are equivalent problems. There are primarily two approaches used for finding parting direction: approaches based on accessibility analysis and approaches based on feature recognition. Unfortunately none of them provide complete solution for the problem being considered in this dissertation. Hence we need to find a new approach to find a configuration with minimum undercuts. 11 Finding Assembly Configuration with Flattest Parting Line Mathematically, parting line of a part is equivalent the silhouette of the part. How- ever, the silhouette is not always a good parting line. Constructing parting lines as ?flat? as possible is one of the best mold design practices followed in the molding community. The parting line defines the profile of the contact surface (shutoff surface) between the core and cavity. A flat parting line results in an accurate and high precision shutoff surface. It also increases the sealing pressure between the core and cavity, which in turn reduces the material flash. In other words, a flat parting line reduces the defect cost. Hence it is proposed that the flattest possi- ble parting line be found [Ravi90, Majh99, Chen03]. The available approaches to finding the flattest parting line is limited to simple convex parts. Here we need to solve a related, but different problem. We need to find a configuration for which the parting line is flattest. Creating Shutoff Surface with Minimum Machining cost One of the most popular approaches to create shutoff surface is by extending parting lines toward side-walls of the mold enclosure. This approach works fine on simple planar parting lines. But simply extending complex non-planar parting lines may produce shutoff surface that intersects with the part or with itself. It also may not follow the standard techniques used by the mold designers to reduce machining cost and flash. Therefore, we need to develop a new approach to create shutoff surface. 12 1.4 Dissertation Outline The ensuing chapters of this dissertation discuss how the above-described objec- tives and challenges are addressed by this dissertation. Chapter 2 provides the technical background required to understand this dis- sertation. Chapter 3 formally defines the problem being investigated in this dis- sertation. Chapter 4 presents a survey of related work. Chapter 5 presents a framework for representing reusable molding plans for articulated joints. This chapter also presents molding plans for three basic joints ? prismatic, revolute, and spherical. Chapter 6 is the main chapter of this dissertation. It describes an algorithm for generating multi-stage molding plan for articulated assemblies. Chapter 7 describes an algorithm to robustly and efficiently find the mold-piece regions for a given object. Chapter 8 presents an algorithm to create a provably correct and optimal shutoff surface for a given parting line. Chapter 9 summa- rizes the conclusions reached from this research and provides suggestions for future extensions. 13 Chapter 2 BACKGROUND This chapter provides the background required to understand the material pre- sented in this dissertation. Section 2.1 describes a brief background on the injec- tion molding process. It also describes the basic components of a mold system. This dissertation presents an algorithm for generating molding plan for articulated assemblies created using multi-stage molding. Section 2.2 describes the multi-sage molding technique. Section 2.3 provides a brief review of a technique used for rendering shadows using computer graphics hardware. The algorithm for find- ing mold-piece regions described in Chapter 7 is based on this hardware shadow mapping technique. Some basic geometric modeling concepts are described in Section 2.4. Generating molding plan is similar to other manufacturing operation-planning problems such as machining and sheet-metal bending. Many operation-planning problems are formulated as combinatorial optimization problems. They are gen- erally solved using state-space search. Section 2.5 briefly reviews the state-space search algorithms. 14 2.1 Injection Molding Injection molding is one of the most common plastic manufacturing process used today. Products produced with this process permeate virtually every aspect of our lives. From the coffee maker and toothbrush we use in the morning, to the car we drive to work, to the computer and telephone we use during the day, so many products we use are injection molded. Injection molding is used in almost every market and represents the mainstay of the designer?s toolbox of processes. One of the main reasons for its dominance is its versatility. The forms that designers can create are almost unlimited. The wide range of plastic materials we can choose to mold is so broad, it can address most of our needs. Typical examples of products made by injection molding are appliance casings (for example, computer monitors, CPUs), aircraft and automotive parts, and utensils to name a few. Injection molding is a near-net-shape manufacturing process that can produce parts with no or very few secondary manufacturing processes. The parts produced have good surface quality and accuracy. It is particularly well suited to high volume production using economies of scale and short cycle times to drive costs down. While much of the consumer industry involves the design and fabrication of injection-molded thermoplastic parts, metals and ceramic parts can also be produced. 2.1.1 Molding Process In the injection molding process, we take raw plastic material in the form of small pellets (also referred to as resin), heat it gently to the point where it will flow under moderate pressure, and inject it (push it with a plunger) into a mold. The mold is usually made up of two separable halves. After allowing enough time for the 15 Figure 2.1: A single screw injection molding machine for thermoplastics plastic to cool off and solidify, the mold opens (separates), and the molded part is removed. The process utilizes specialized equipment called injection-molding machines. These machines can be quite large, usually much larger than one would expect relative to the sizes of the parts they make. Figure 2.1 shows a typical injection-molding machine for thermoplastics. Injection System is responsible for melting and injecting molding material. It confines and transports the material as it progresses through the feeding, com- pressing, degassing, melting and injection stages. It contains a reciprocating screw, which while turning, compresses, melts and feeds the material being molded. Mold System is an important and costly part of the injection-molding machine. It contains the cavity into which molten material is injected. It also contains cooling channels that regulate temperature on the mold surface. Section 2.1.2 describes the mold system in detail. Clamping System supports and carries the constituent parts of the mold system. It is responsible for opening and closing of mold. When the molten material is being 16 injected, it provides sufficient force to prevent the mold from opening. The size range of machines is usually stated in tons, which refers to the clamping pressure that they can apply to the mold halves. Typical machine capacities range from 40 to 2000 tons, suitable for plastic parts up to 80oz. Hydraulic System provides power to the mold system (for energizing ejector pins and slides), the clamping system (for opening and closing the mold), and the injection system (for turning and driving reciprocating screw). Control System is like the CPU of the whole system. It monitors and controls the processing parameters (temperature, pressure, injection speed, screw speed and position, and hydraulic position) and hence provides consistency and repeatability in machine operation. 2.1.2 Mold System An injection mold consists of two main pieces ? core and cavity. The core and cavity form the impression into which molten material is injected. The cavity determines the external shape of a molded part and the core forms the internal shape. Parting Direction is the direction along which the core and cavity are separated. Undercuts are ?sideways? recesses or projections on the molded part that prevent the removal of the molded part from the mold along a parting direction. The undercuts are formed using side actions. When the mold opens, the side actions are moved out of the way, thereby allowing separation of the core and cavity. The motion of the side action usually consists of one or two translations away form the undercut. The core side of the mold consists of an Ejection System, which is responsible for ejecting the molded part after the mold opens. The most common type of ejection system consists of ejector pins. The stroke on these ejector pins clear the molded 17 Core Part Cavity Parting Direction Figure 2.2: A basic mold for an example part part out of the mold system. Figure 2.2 shows a basic mold for an example part. Figure 2.3 shows how the molded part is ejected from the mold. The mold system consists of some additional features. Sprue provides the entry point of molten material into the mold. Sprue bush provides the seating for the injection-cylinder nozzle and conducts the hot molding material from the injection cylinder to the mold cavity. Leader Pins assist in assembly and fitting of the mold pieces. They maintain alignment during mold setup and when the mold is running. The mold system may also consist of Cooling Channels, that are 18 Figure 2.3: Mold System operation; (a) molten material has been injected; (b) after the material solidifies, the side actions retract; (c) the core separates taking the part along; (d) the molded part is pushed out of the core passageways located within the body of a mold, through which a cooling medium (typically water, steam, or oil) circulates. It helps to regulate temperature on the mold surface. 19 2.1.3 Rapid Tooling As a product develops, it requires tooling with different production capacity at each development stage. Pre-production prototyping is a common industrial practice. The purpose of prototyping is to help the designers visualize the object that is being designed and hence eliminate any design errors. With a prototype it can be actually seen in real life whether or not the two surfaces of a widget interfere, or if the screw threads on a fastener are of the wrong size. The majority of product development cost occurs in the concept and design validation phases. During those times, much time is spent designing and re-designing the product. Prototypes are made and evaluated. Then changes are made and the whole process starts over. Since this is an iterative process, prototyping needs to be quick and economical. Rapid tooling is a molding technique used for producing limited number of prototypes. It is sometimes also used for low-volume pilot production and market testing. In the prototype production phase, it is required that molds be manufac- tured quickly and economically. Therefore, layered fabrication techniques (SLA, SLS, 3D printing) or high-speed milling of tooling blocks are used to manufacture epoxy or aluminum molds. The molds also do not contain expensive components such as actuated side actions and cooling channels. 2.1.4 Production Tooling Production tooling is capable of high volume production. It is employed only after the product design is finalized and the product has stabilized in the market. Here the focus is on the durability of the mold and reducing the molding cycle time. Hence the production tooling are usually made by milling alloy steel blocks and measures are taken to squeeze every second out of the cycle time. The side actions 20 are fully automated and there are extensive cooling channels to quickly solidify the injected material. 2.2 Multi-Stage Molding Traditionally injection molding involves a single material and consists of only one molding stage. Multi-stage molding refers to a molding process in which multiple materials are added in a sequence to produce multi-material objects. For each component in the desired product, usually a separate molding stage is required. A molding stage entails injecting a single material in a specific mold configuration. Successive stages require reconfiguring the mold as well as the previously injected components. Figure 2.4a shows an example of a three-material articulated gimbal that can be manufactured using multi-stage molding technique. The gimbal consists of three rings mounted on axes at right angles. It can be molded in three molding stages. The outer ring is molded in the first mold stage as shown in Figure 2.4b. Two inserts are used as placeholders for the middle ring. In the second mold stage, the middle ring is molded and the same inserts are used as placeholders for the inner ring as shown in Figure 2.4c. The inner ring is molded in the final mold stage after removing the inserts as shown in Figure 2.4d. The figure only shows the cavity mold piece for clarity. The core mold piece is similar to the cavity piece. An overview of different multi-material molding techniques can be found in [Gouk06]. Because multi-stage molding techniques can be significantly different than traditional single-material molding, some new terminology has been adopted to better explain these techniques and processes. Because most molding involves injecting or shooting the polymer into the mold cavity, the word ?shot? is sometimes 21 (a) Gimbal (b) Molding stage 1 (c) Molding stage 2 (d) Molding stage 3 Figure 2.4: Multi-stage molding. used instead of ?stage?. Two more terms that arise frequently in the context of multi-stage molding are ?substrate? and ?overmold?. The substrate is the material that is injected in the first stage, usually forming the base or majority of the final component. The overmold is the subsequent shot which tends to form at least partially over top of the substrate. 22 2.3 Hardware Shadow Mapping Hardware shadow mapping [Will78] is a hardware-accelerated image-based shad- owing technique. It utilizes existing hardware functionality, texturing and depth buffering, to efficiently calculate complex high-quality shadows for a lighted 3D scene. A comprehensive explanation on hardware shadow mapping can be found in [Ever01]. We will briefly describe the technique here for the sake of completeness. Consider a scene consisting of a couple of objects and a single point light. When rendering the scene, for each point (rasterized fragment), we need to find whether it is lit, or in shadow. Clearly, it is lit only if the straight path from the light to the point is not occluded by any other object present in the scene. This is the basic idea behind shadow mapping. The lit regions in the scene are exactly those that are visible to a viewer placed at the light source. Other regions are in shadow. The lit and shadowed regions are calculated by performing a visibility test for each light source at each rasterized fragment using the depth buffer technique. Following are the typical steps to do shadow mapping using graphics hardware: 1. Render the scene from the light?s point of view and save the depth buffer values into a shadow map (depth texture) 2. Render the scene from the camera?s point of view. To determine whether a point is shadowed or not, compare the distance B between the point and the light with the corresponding depth A stored in the shadow map. ? if A