【溫馨提示】壓縮包內(nèi)含CAD圖有下方大圖片預(yù)覽,下拉即可直觀呈現(xiàn)眼前查看、盡收眼底縱觀。打包內(nèi)容里dwg后綴的文件為CAD圖,可編輯,無水印,高清圖,壓縮包內(nèi)文檔可直接點開預(yù)覽,需要原稿請自助充值下載,所見才能所得,請見壓縮包內(nèi)的文件及下方預(yù)覽,請細心查看有疑問可以咨詢QQ:11970985或197216396
Three-Dimensional Kernel Development for Injection Mould Design
Today, many software “plug-ins” have been developed on high-level 3D modelling platforms to facilitate processes such as FEM analysis, CAM, injection mould design, simulation and visualisation. Such an arrangement is advantageous in many ways. However, it is not without shortcomings. Ideally, these “plug-ins” could also be developed using low-level 3D kernels for higher flexibility and better portability. This paper examines the various issues and methodologies related to the development of such 3D-based applications. The emphasis is placed on the software aspect. First, a methodology for the development of 3D-based applications is proposed. The idea is then implemented by developing an injection mould design application using a low-level 3D kernel called Parasolid. Based on design concepts used in an established mould design application, IMOLD, the development of a mould base design module is illustrated. An object-oriented programming language has been chosen for the development of the software on a Windows NT platform.
1.Introduction
Three-dimensional CAD systems have increasingly been used to speed up the product realisation process. One of the first steps involved in the automation of the product design process is the creation of the component parts in a 3D modelling application. The 3D model, upon creation, is called the digital master copy. This 3D digital model forms the key to a wide spectrum of process automation.
Creating the 3D digital model of component parts is only the very first step. There are several other secondary tasks that must to be done before the part can be manufactured. Such tasks include finite-element analysis, jigs and fixtures design, injection mould design, computer-aided manufacturing, simulCorrespondence and ofprint requests to: K.-S. Lee, Department of Mechanical and Production Engineering, National University of Singapore, 119260 Singapore. E-mail: mpeleeksKnus.edu.sgation, and visualisation. Today, many application Plug-ins have been developed on high-level 3D modelling platforms to facilitate these secondary tasks. The 3D-modelling platform provides the plug-in software with a library of functions as well as an established user interface and style of programming. As a result, the development times for these plug-ins are significantly reduced.
Such an arrangement is advantageous in many ways. However, it has its shortcomings, especially in the long run. In order to develop a plug-in for established software, the developers must adhere to the many constraints imposed. There is a need to be consistent with the style of the parent software. The developers must be able to achieve any functionality they need with only the set of library functions provided. Most end-users need both the parent software and the plug-in. In many cases, however, they may be more interested in using only the plug-in software. An example of such a situation is in injection mould design. These users, however, must purchase the entire software package which includes many features and functions that they do not need. Such a large program is often very demanding on the hardware, which also means higher cost. The plug-in software is also very dependent on developments in the parent software. Whenever a new version is updated for the parent software, the plug-in developers have to follow-up on the changes. These shortcomings may not exist if these applications were developed on a low-level platform. Ideally, these plug-ins could be developed using low-level 3D kernels for higher flexibility and better portability. In many instances, such a move is both feasible and advantageous.
Traditionally, injection mould design is carried out directly on a CAD system. The entire injection mould, consisting of perhaps hundreds of components, is modelled and assembled on CAD systems such as AutoCAD, Pro/Engineer, and Unigraphics. As the injection mould design process is recursive, it is very time-consuming to re-model and re-assemble the design. In this aspect, 3D CAD systems such as Pro/Engineer and Unigraphics, which are feature-based, have a significant advantage over 2D CAD systems such as AutoCAD. To further speed up the injection mould design process, plug-ins were developed on these 3D systems to automate certain stages of the design process. Examples of such add-on applications include IMOLD (Intelligent Mold Design and Assembly Sys-
Mold Designer (based on CADKEY) and Moldmaker (based on EUCLID). As each is based on a specific CAD system, there is no plug compatibility.
In 1994, Mok and Cheung [1] presented work on the development of an injection mould design application based on Unigraphics. In 1997, Shah [2] proposed a 3-tier architecture for standardising communications between geometric modelling kernels and applications that require geometric modelling services. His objective is to achieve plug compatibility between 3D applications that are based on Parasolid [3] (a 3D kernel, developed at the University of Cambridge) and ACIS. This, however, involved an extensively developed 3-tier modelling husk. In this paper, the author attempts to develop a lightweight injection mould design application using a low-level 3D kernel directly. The focus is on the flexibility and speed of the software development. Design concepts and procedures were taken from IMOLD [4,5], a complete mould design and assembly 3D application. Although the discussion is limited to injection mould design only, the methodology applied can easily be applied in other 3D-based applications that are of a similar nature.A combination of developer tools was chosen for this purpose. Before the methodology is discussed, brief introductions to some of these tools are first presented. They are, IMOLD, Parasolid version 10.1, Visual Cversion 6.0, and the Microsoft Foundation Classes.
2. IMOLD as a Mould Design Application
IMOLD (Intelligent Mold Design and Assembly) is an established 3D-based application that is dedicated to injection mould design. It is developed on top of an advanced CAD system called Unigraphics. The development is carried out using the applications programming interface (API) provided. The software enables mould designers to create a design rapidly by providing the tools that are commonly needed. Standard components parts, that are often required in the design, have been pre-created in the software and can be readily used by the designer. This reduces the design time significantly. The mould design process is divided into several stages, providing the designer with a consistent method of creating the mould design. They are, namely:
1. Data preparation.
2. Filling system design.
3. Mould base design.
4. Inserts and parting design.
5. Cooling system design.
6. Slider and lifter design.
7. Ejection system design.
8. Standard parts library.
Each stage can be considered as an independent module of the program. The 3D-based requirements for each module vary only slightly. The success in developing the mould base module implies feasibility in developing all the other modules.
3. Parasolid as a 3D Kernel
Parasolid is designed to be the centre or “kernel” of any system that is based on 3D model data. It is essentially a solid modeller, which can be used to:
1. Build and manipulate solid objects.
2. Calculate mass and moments of inertia, and perform clash detection.
3. Output the objects in various ways, including pictorially.
4. Store the objects in some sort of database or archive, and retrieve them later.
Parasolid is one of the most advanced 3D kernels among CAD applications. It is the 3D kernel of Unigraphics and Solid-Works. Its unique tolerant modelling functionality enables it to accept data stored in other modeller formats. Parasolid model files are thus very potable. It is, therefore, a superior platform for the development of stand-alone applications.
The 3D-based application interacts with Parasolid through one of its three interfaces (see Fig. 1). These are called the Parasolid kernel (PK) interface, the kernel interface (KI) and the downward interface. The PK interface and the kernel interface sit “on top” of the modeller (side-by-side), and are the means by which the application models and manipulates the objects, as well as controls the functioning of the modeller. The downward interface lies “beneath” the modeller, and is called by the modeller when it needs to perform data-intensive or system type operations. It consists of three parts: frustrum; graphical output (GO); and foreign geometry. These are briefly explained below.
3.1 The KI and PK Interface
The KI and the PK are interfaces for the programmer to access the modelling capabilities in the Parasolid kernel. They are standard libraries of modelling functions. The programmer calls these modelling functions in their programs. As the KI is to be phased out soon, we chose to use the PK interface.
3.2 The Frustrum
The frustrum is a set of functions, which must be written by the applications programmer. The kernel calls them when data must be saved or retrieved. When using Parasolid, the applications programmer must first decide how to manage the storage of data, which Parasolid outputs through the frustrum. Transferring data through the frustrum usually involves writing to, or reading from, files. The format and location of the files is determined when writing the frustrum functions.
3.3 The Graphical Output (GO)
The graphical output is another set of functions, which is to be written by the applications programmer. When a call is made to the PK rendering functions, the graphical data generated are output through the GO interface. The graphical data are then passed to a 3D rendering package. OpenGL, a software interface to graphic cards, is a rendering package that is used for our purpose.
3.4 The Foreign Geometry
The foreign geometry provides functionality for the development of customised geometrical types such as in-house curves and surfaces. These are used together with the standard geometrical types for modelling within Parasolid.
4. Object-Oriented Programming Using Visual Cand the Microsoft Foundation Classes
Object-oriented programming (OOP) has been the undisputed option for software developers. It is among the most advanced developmental tools available. The Microsoft Visual Studio is such a software package. It features several developmental tools that are meant for Internet-based and Windows-based programming. Among these tools are the Visual C(VC) and the Microsoft Foundation Classes (MFC). The VCis a powerful development tool for object-oriented programming, whereas the MFC is a framework of Cclasses that are dedicated to Windows-based programming. Together, these provided the applications programmer with powerful development features and functionalities such as auto-code generation, and wizard-based operations. These greatly improved productivity. The entire user-interface for our program is developed using the VCand the MFC.
5. Implementations
Applying the system design, a 3D-based injection mould design application is developed. This is achieved using the developmental tools mentioned in the earlier sections. The mould base module is chosen for illustration, as it requires the widest range of 3D functionality, including the generation of assemblies.
5.1 Framework of Application and the Requirements of Each Module
A framework for the application is designed with reference to the developmental work identified. Figure 3 illustrates the framework for the Mold Base design application. The details of the requirements in each module are discussed as follows:
5.1.1 Windows NT User-Interface (A)
Mould base design is an iterative process. The Mould designer first selects a standard mould base from the catalogue, and then repeatedly makes modifications to the dimensions of the mould base until all the design requirements are met. It is, therefore, necessary to consider an interactive user-interface for such purpose. Using the Visual Cand the MFC, a Windows-based interface is developed. These include:
1. Creation, display and management of menu bar items, context menuitems and toolbar buttons for easy access to functionality of the application.
2. Creation, display and management of dialogue boxes to guide the user or to obtain user input.
3.Creation, display, and management of various views in the display area, for illustration.
4.Mouse driven interaction.
5.The design of the sequence of operation (including user interaction) for each function.
The resulting application, as shown in Fig. 4, is a typical Windows-based application with a user-friendly interface.
5.1.2 3D Developer Layer (B)
The 3D-based requirements of mould base design is analysed and the modules to be developed are identified. The modelling requirements for 3D-based mould base design are:
1. Creation of primitives such as blocks, cylinders, cones, prisms, and toruses.
2. Creation of blends and chamfers.
3. Boolean operations: unite and subtract.
4. Transformation operations: translation and rotation.
5. Management of object attributes such as name and colour.
6. Creation of instances.
7. Creation of assemblies and subassemblies.
As these are not too extensive, it is possible to develop a basic modelling set. With the detailed development of the individual modules, more functions are then added to the 3D developer layer. The overall requirements in each module are illustrated in the following sections.
I. 3D Modelling and Assembly.
A mould base is essentially an assembly of many components such as plates, bushes, pins, and screws. To facilitate mould base design, the designer must be provided with a library of ready-made mould base components. By selecting a particular dimension, a standard mould base will be generated. To facilitate these, a library of 3D-based functions, corresponding to the requirements mentioned in Section 5.1.2, are identified and developed. As the codes are object-oriented, they can easily be expanded to accommodate other mould design modules when required.
II. 3D Visualisation.
Using the functions provided in the graphical output, together with OpenGL as the graphical interface, several functions are developed for 3D rendering, view projections and view transformations. These include:
1. Rendering 3D parts with selected colours.
2. Rendering 3D assemblies with selected colours.
3. Rendering other 3D entities on screen with selected colours.
4. Rendering individual components with a different colour in a mould base assembly.
5.Interactive view transformation such as rotation, translation, and zoom.
6.Assembly tree display and manipulation.
III. 3D Data Management.
Portability is one of the benefits of developing a stand-alone application. It is thus important to adopt an open format for maximum portability. The native Parasolid file format (.xmtFtxt) is thus used instead of a new file format. Data management requirements of a mould base module include the following:
1. Open, Save, Save As and Close Parasolid part files.
2. Open, Save, Save As and Close Parasolid assembly files.
3. Import and Export part files.
5.1.3 Mould Base Modules (C)
In order to facilitate the automatic generation of standard mould base assemblies, the application must provide a library of mould base components, whose dimensions depend on standard values found in catalogues. To facilitate design, subsequent modifications to these dimensions have been enabled. The details of this module will be discussed in Section 5.2.
5.1.4 Database Support (D)
A standard mould base requires almost a hundred parameters to completely represent the dimensions and positions of the individual components. Many of these parameters are interrelated and can be derived from others. A database file is thus required to store the catalogue-based parameters of standard mould bases. Microsoft Access database format is used, as there are facilities in the MFC for direct access to Access Database files. Using the Data Access Objects (DAO) in the MFC, a set of functions is developed for the extraction and management of these relevant parameters from the database.
5.2 Development of the Mould Base Design
Module base assembly generator, and the mould base selection and customisation module. A fourth section, called the mould base.The mould base module consists of three major sections,parameters manager, is also developed to provide database namely, the mould base component library generator, the mould support for the application. Thedetails of each section are discussed in the following.
I. Component Library Generator.
With support from the 3D developer layer, standard components for mould bases are created and stored in the component library. By specifying the appropriate dimensions, these components can be generated and used by the mould base assembly generator when required. Figure 6 illustrates a cavity plate created by the components library generator.
II. Assembly Generator.
Using the 3D developer layer and the component library generator, standard mould bases are assembled and stored in the assembly library. When supplied with a particular parameter set from the database support, specific standard mould base assembly can be automatically generated. Figure 7 shows a “HOPPT” two-plate mould base created by the assembly generator.
III. Parameters Manager.
The parameters manager acts as a link between the mould base application module and the database support. When a specific standard mould base is selected, the corresponding parameter set for the mould base assembly is extracted from the database file and sent to the component library generator and the assembly generator. Besides this, the parameters manager also allows the parameters to be modified by the users for design purposes. Figure 8 illustrates the modifications of bottom screw dimensions through the interactive user-interface.
IV. Mould Base Designer.
The mould base designer serves two main purposes. First, to allow the user to select standard mould bases from the assembly generator. Secondly, to facilitate mould base design, by allowing the mould designer to modify dimensions of the selected mould base. The sample code for the function call to generate the mould base in this module is illustrated in Fig. 9. It was noted that the function uses a large number of variables that represent the parameters of the mould base. These are fed into the component generator for the creation of the various mould base components. The assembly generator then uses the components and the parameter set, for the creation of the mould base assembly. As this is outside the 3D developer layer, no direct Parasolid function calls are seen in the sample program.The current mould base design application is capable of realising all the functionality of the injection mould base designrequirement in a mould design shop. As the mould base is the most 3D-intensive of the IMOLD modules, its successful development implies the feasibility of developing a complete 3D-based injection mould design and assembly application.
6. Conclusion
Advancement in high-level programming languages has allowed programmers to re-use programming codes that are embodied in objects such as the Microsoft Foundation Classes. These powerful features have freed the programmer from the more mundane routines of programming standard functions and creating user-interfaces. They are now able to focus on the core components of the software, thus increasing productivity. This led to the increasing feasibility of developing stand-alone versions of add-in software such as those for CAE, CAD and CAM. Currently, however, such an approach is both timeconsuming and technically demanding. It is nevertheless, feasible and very promising. By integrating the capabilities of sev