1 Introduction

The die casting process is one of the prime options for manufacturing precisely dimensioned, sharply defined metal parts. The design of die casting dies comprises of several stages and requires a large amount of time. Moreover, recurring modifications are required due to the complexity in achieving an acceptable initial die design. As a result, die design is usually time-consuming. The die casting industry will greatly benefit if proper application software is developed that integrates the different die design stages and allows the editing of die design. In addition, die design for die casting is being increasingly performed wholly or in part with 3-dimensional computer-aided design (CAD), as 3-D CAD enhances the visualisation of complex die design and assists users in design revisions. Hence it is imperative to create a computer-aided die design system that shortens the die design time.

There have been some recent studies on automated or semi-automated design of individual die elements, but there is little published work in these areas. Most published work has concentrated on the gating system of die design. For example, Wu et al. [1] developed a prototype design of a gating system for a die-casting using a P-Q2 technique and feature-based parametric design. The system is built on the commercial Unigraphics CAD system. There is also a commercial die design application called DiEdiFice [2] that focuses on the gating system of die design. It is a 3D-design application for pressure die-casting that is used to design a precise and efficient gating and runner system. DiEdiFice does not assist in the creation of ejector and cover cavity inserts.

With regard to an entire die design system, Choi et al. [3] developed a system based on the AutoCAD platform. However, the system is only applicable for simple shapes such as the cap-shape. Moreover, the system can only be used for single impression dies and products that have no undercuts. Zhang et al. [4] also did a study on an integrated CAD/CAE system for die casting. The idea was to determine the die geometry and process parameters using CAD and then to use the CAE package to optimise the process design based on the simulation analysis. On the other hand, several specialised software packages have been introduced for semi-automated injection mould design. One example of such a software package is IMOLD (intelligent mould design and assembly system) [5]. Although there are some similarities between die casting dies and injection moulds, the design of the former gating system is more complex [1]. Hence IMOLD and other similar specialised software packages for semi-automated injection mould design are not suitable for die design.

The approach undertaken in this research includes (1) feature-based and constraint-based modelling, (2) parametric design and (3) geometry and topological extraction technique from boundary representation (B-rep) model. Feature-based modelling constructs the model of the product directly on the basis of features. Feature-based models contain not just basic geometric and topological data but also high-level information, which allows die designers to add relatively complex shapes to their designs. Constraint-based modelling involves constraints that are used to create a set of rules that control how changes can be made to group of geometric elements. Geometric constraints for representing 3D shapes can be categorised into the following three types: topological constraint, structural constraint and dimensional constraint [6]. Constraint-based modelling in a parametric system captured and solved constraint equations sequentially. As it cannot solve coupled equations, a predictable model will result. Constraint-based modelling allows the CAD system to capture the die designer’s intent and relationships can be based on this intention. Constraint-based modelling also allows changes to be propagated through the model quickly. Parametric design deals with variable dimensions as control parameters and it is an efficient tool for creating models based on parameters. Parametric design not only increases the design efficiency, but also makes the updates and modifications of existing designs easier and faster, since these can be achieved by changing the parameters of the parametric model [7, 8]. Boundary representation is a commonly used solid modelling representation scheme. In this scheme solids are represented in terms of individual surfaces, edges, and vertices. B-rep models are a more explicit representation than constructive solid geometry (CSG) and can be divided into two parts—topology and geometry. Topology records the connectivity of the faces, edges and vertices by means of pointers in the data structure while geometry defines the exact shape and position of each of the edges, faces and vertices.

The proposed die casting design system enables the die designer to create a die casting die beginning with a product part model. Die designers can design a die with cavity inserts, core slides, die base, gating system, ejector system and standard components. Moreover the system ensures that when the die designer modifies the die design, these changes can be easily performed. The system is developed using the Visual C++ language on a SolidWorks 2001 platform. The implementation of this die design system is illustrated with a case study. The detailed contents of the work are described in the following sections.

2 Algorithm for die design of die casting

Conventional die casting die design process basically consists of six stages. Die casting die design typically begins with the determination of shrinkage factor and material used. This is then followed by die generation. If undercuts are present, core slides need to be created. The next stage is the design of die layout. The fifth stage is the addition of die base followed by oil line or water line design. The final stage involves the design of the ejector system. The proposed die casting design system integrates the different stages of the die casting die design process and allows die designers to alternate between the different stages as and when needed. Figure 1 illustrates the flow chart of the proposed die casting die design system.

Fig. 1
figure 1

Flowchart of the die design system for die casting

A new die project would require the user to design the cast. The cast design consists of three parts: cast input, material selection and shrinkage application. The next step is to perform the die design. The system assists the user in the selection of parting lines, parting faces and parting surface. The cavity inserts are then automatically generated. If the product model consists of undercuts, the system will provide the tool to create the necessary core slide. In the design of die layout, the system assists the die designer to create the gating system for the project. The gating system, which is composed of several gating elements (gate, overflow and runner), is a series of passages through which the molten metal flows into the die cavity [9]. With regard to the die base design, the system adds a die base to contain the cavity inserts and the gating system. The die base is obtained from predefined die base library and can be customised to specific needs. In the final stage, the system aids the die designer in the creation of the ejector system for the project. The ejector system is made up of ejector pins positioned on the ejector plate.

3 Design methodology

The methodology of this study is to combine feature-based and constraint-based modelling in a parametric system and geometric and topological information extraction technique from B-rep model together in the die design system for die casting. Various die casting feature libraries such as a slide feature library, a gating feature library and an ejector pin feature library are first built. Various die casting features are then stored in the respective libraries. For example, the gating feature library includes components that made up the gating system—gates, runners and overflows. Additional application specific features can be added to the individual feature libraries as needed.

The B-rep model of a feature enables the system to gather geometric details of the feature such as lines, arcs, circles, faces and edges. The B-rep model of a feature also provides information regarding the boundary points of the feature. The extraction of the cast geometry is crucial to the system as algorithms can be developed to provide functions that aid the die design process for die casting. For example, the boundary points of a cast part model can be used to calculate the minimum size of the cavity block that must contain the cast part model. At the same time, the centroid of the cavity block can also be obtained through simple computation.

3.1 User-defined die casting feature creation and feature library

Several methods regarding the creation of user-defined features have been researched [10, 11]. In this study, the various die casting features are defined using some of these methods and then are stored in feature libraries. The die casting features that are defined are standard components used extensively in die design for die casting, such as die bases and their components. Several techniques are used to create the various solid models of the die cast features, depending on their complexities. The modelling methods used include extrusion, revolution, lofting and sweeping.

Some of these features are governed by topological, structural and/or dimensional constraints. An example of a topological constraint can be seen in the modelling of the die base. The top face of the head of the leader pin must be aligned with the top face of the top plate as illustrated in Fig. 2. Gating components such as trapezoidal runners, however, are governed by structural constraints. Structural constraints are imposed to ensure that the runner’s cross-section remains trapezoidal regardless of any changes to the runner’s parameters. Invalid parameters that will compromise the trapezoidal shape are rejected and the system prompts the user to enter another set of parameters that will not alter the shape of the trapezium. An example of dimensional constraint is the depth of a through hole following the height or thickness of its parent feature. In other words, when the thickness of a body is lengthened and the body contains a through hole, then the through hole will also be lengthened accordingly.

Fig. 2
figure 2

Example of a topological constraint—top face of leader pin align with top face of top plate

The variable parameters of the various die-casting features are also given specific names. These parameters can then be called upon and customised to the die designer’s preference. To facilitate the placement of features, some of the features are created with specific points or axis. As all the solid models consist of an origin and three reference planes, these entities are also used in the placement of features. The various feature libraries built for the system are shown on the left column in Fig. 4.

3.2 Geometric and topological information extraction technique from B-rep model

The proposed die design system for die casting is written as an add-on. The model representation used is boundary representation. As a result, the features created consist of geometric and topological information. The information obtained can then be applied to algorithms that aid the die design process for die casting. An example of how geometric and topological information from a B-rep model can be used in the algorithm is the application of edge information belonging to a face in the “hole patching” algorithm. “Hole-patching” is the technique for filling up holes with a planar surface. If the holes identified are non-planar, the system will prompt the die designer that the holes are non-planar and that another technique is required to fill the holes. This is essential in the creation of parting surface.

The algorithm for “hole patching” is as follows:

Loop = SelectedFace->GetFirstLoop

While (Loop != NULL)

{

If (Loop->IsOuter == TRUE) //Check for inner or outer loop

Loop = Loop->GetNext //Get next loop if loop is outer

Else // If loop is inner

{

Loop->GetEdgeCount(num_edges); //Find number of edges

LPEDGE *edgelist = new LPEDGE[num_edge]; //Allocate array to store edges

Loop->IgetEdges(&edgelist); //Store edges in array

for (i=0; i<num_edge; i++)

{

edgelist[i]->SelectByMark;

if (PartDoc->InsertPlanarRefSurface() == FALSE)

AfxMessageBox(“The selected hole cannot be patched”);

}

}

}

The algorithm begins by obtaining the first loop on a selected face. The first loop obtained is normally the largest among all the loops present in the face. Figure 3a shows an example of a selected face. Figure 3b depicts the first loop obtained. The next step is to check whether the loop obtained is an outer loop of the selected face. An outer loop is shown in Fig. 3b. If the loop is an outer loop, the system is to proceed to the next loop and to repeat the step until the loop is an inner loop. The algorithm will repeat until there are no more loops. If the loop is an inner loop like those shown in Fig. 3c and d, the algorithm will extract all the edges in the loop and store it in an array. These edges are then selected and the algorithm will attempt to fill these edges using a planar surface. If the edges do not form a hole as shown in Fig. 3c, the planar surface will not be created. Instead the die designer will be prompted with a message that the selected edges cannot be patched. Similarly, the die designer will also be informed whether the selected edges form a non-planar hole. Otherwise, specific functions from the SolidWorks 2001 API can be called upon to cover the identified planar holes. The “patched” holes are shown in Fig. 3e. Another algorithm has also been written that will prompt the die designer as to whether the loops should be patched. This is convenient when the die designer does not want to patch all the planar holes.

Fig. 3a–e
figure 3

Graphical illustration: “hole patching” algorithm

4 System implementation

A prototype die design system was developed using the commercial SolidWorks 2001 CAD system. SolidWorks 2001 was chosen because it supports user-defined features owing to its parametric nature. Through SolidWorks application programming interface (API), algorithms involving the geometric properties of the B-rep model of features created in SolidWorks can be executed. The interface for the die casting die design system is created using Visual C++ under a Windows Millennium environment. The proposed system consists of seven design modules. Some of the design modules that are more complicated or require several steps are divided into further sub-modules. Standard component feature libraries are also built and added to some of the design modules. The system architecture is illustrated in Fig. 4.

Fig. 4
figure 4

System architecture and menu options

The first module is project manager. All die-casting projects must be initialised through this module. The project manager allows the die designer to load a new project or an existing one. When the die designer starts a new project, the die designer needs to specify a working directory and the measuring units for the newly created project before loading in the product model to be die cast as shown in Fig. 5. The die designer also needs to state the shrinkage factor, the material used and whether to base the model on the centroid, origin or coordinate system. For an existing project, the system allows the die designer to carry on from where the project last ended.

Fig. 5
figure 5

Project manager module and the new project interface

The cavity insert builder module is to aid the die designer in the creation of the ejector and cover cavity inserts for the product model. In the sub-module bolster builder (interface shown in Fig. 6a), the system loads in a parametric containing box that will house the ejector and cover cavity inserts (bolster). The next sub-module, parting line selector, assists the die designer to select the parting line of the part to be die cast in a fast and intuitive manner. The parting line is then used to generate a radiated surface to separate the bolster into two parts. After that the die designer can call on the parting face generator sub-module (interface shown in Fig. 11a to search for parting faces and knit them together. This sub-module also provides the die designer with functions to patch existing holes in the knitted parting face automatically or manually. In the final sub-module, bolster breaker (interface shown in Fig. 6b), the system lists out all the surfaces generated earlier for the die designer to select the required surfaces to form the final parting surface. The final parting surface is used to separate the bolster and derive the ejector and cover cavity inserts.

Fig. 6a,b
figure 6

Cavity insert builder module. a Bolster builder interface. b Bolster breaker interface

The gating system constructor module assists the die designer in planning the layout of cavities, insertion of gates, designing of runners and placement of overflows. The sub-module layout allows the die designer to select the number of cavities and their layout pattern types. In the gates sub-module (interface shown in Fig. 7a), gates are added to user-defined positions. The runners sub-module allows the die designer to plan the route of the runners linking the different cavities. Then the die designer specifies the cross-sectional areas of the runners before adding the runners to the project. The final sub-module, overflows, (interface shown in Fig. 7b) allows the die designer to select positions and dimensions of overflows for the cavities. The die designer has the option of editing and deleting all the components created. The components can also be altered in size, orientation and translated to other positions.

Fig. 7a,b
figure 7

Gating system designer module. a Gates interface. b Overflows interface

In die base designer module, the die designer adds a die base to the project. The load N configure sub-module (interface shown in Fig. 8a) allows the die designer to select the desired die base according to the vendor and type from the die base feature library. Then the die designer selects the desired configuration. If the standard configurations of the die bases available cannot fulfil the die designer’s requirement, the die designer can use the other two sub-modules to customise a die base to meet his specific needs. In the pins N screws sub-module, the die designer can edit the size and position of the various guide pins and screws in the die base. The thickness of the various plates in the die base can be edited using the thickness sub-module (interface shown in Fig. 8b). This sub-module also allows the die designer to modify the length and width of the various plates.

Fig. 8a,b
figure 8

Die base designer module. a Load N configure interface. b Thickness interface

The ejector system constructor module (interface shown in Fig. 18a) requires the die designer to first select the type of ejector pin to be added from the ejector pin feature library. Then the die designer needs to specify the various parameters of the selected pin and the location to place it. The die designer also has the option of editing and deleting the ejector pins created. The added ejector pins can be edited in size, orientation and translated to other positions. When the ejector pins have been positioned, the system automatically trims the ejector pins according to the parting surface.

The core slide designer module assists the die designer in overcoming external undercuts problems by generating core slides. The core slide designer is made up of 2 sub-modules—head design and body design. The head design sub-module (interface shown in Fig. 9a) enables the die designer to construct the core head. The die designer begins by performing a cut extrude to remove the protruding undercut area. The system will then automatically generate the core head. The body design sub-module (interface shown in Fig. 13a) allows the die designer to retrieve user-defined core slide bodies from the core slides feature library. There are currently two types of slide core—angle pin type and cam type.

Fig. 9 a
figure 9

Slide core designer module: head design interface. b Standard component interface

The standard components library module (interface shown in Fig. 9b) provides an additional tool that allows the die designer to browse the component database and add additional components to the die casting design. Presently, the components database includes components like locating rings, sprues and die base locking components. These components also come in different configurations as indicated in their respective catalogues. The die designer needs to specify the vendor and type to select the required component. The selected component will be placed in the specified location as indicated by the user. Similar to gates, runners, overflows and ejectors, the added component can be removed and edited after creation. The added component can also be translated with respect to their original position.

5 Case study

In this case study, the product model used is a push-button housing for pedestrian push buttons. The material used is aluminum with space for a sign placard. The push button housing is shown in Fig. 10. The die design is a 2-cavity layout of cavity inserts, complete with movable cores, gating and runner systems, die base and ejector system.

Fig. 10
figure 10

Push-button housing

Using the module cavity insert builder, the cavity inserts (ejector and cover) can be easily constructed. The first step is to design the cavity block, which is done using the bolster breaker sub-module. The cavity block size is set at 360 mm by 190 mm by 125 mm. Using the parting line selector sub-module, the parting lines are selected and a radiated surface of dimension 80 mm is created. The next step is to knit the faces on the product model that will be used to form the parting surface together using the sub-module parting face generator. In this case study, there are holes on the parting faces after they had been knitted together. Therefore hole patching, as illustrated in Fig. 3, is subsequently performed. The bolster breaker sub-module is then used to create the parting surface, which is made up of the radiated surface, parting faces and the patched faces. Once created, the parting surface is then used split the cavity block into the respective ejector and cover cavity inserts. The splitting up process is also performed through the sub-module bolster breaker and the ejector and cover cavity inserts are shown in Fig. 11b and c, respectively.

Fig. 11a–c
figure 11

Cavity insert builder: a Parting face generator interface. b Cover cavity insert. c Ejector cavity insert

Since this product model has an external undercut, a core slide is needed. Using core slide designer module, the die designer can design the necessary core slide for the undercut. The user begins with the selection of whether the location of the core is on the ejector or cover cavity insert. In this case study, it is on the cover cavity insert as shown in Fig. 12a. The die designer then performs a cut extrude on the protruding undercut area. The system then automatically generates the core slide head as shown in Fig. 12b.

Fig. 12 a
figure 12

Undercut feature. b Core slide head

This core slide head is combined with a standard core slide body. The core slide designer module contains core slide body feature library that can be retrieved. The core slide body selected for this case study is of the angle pin type. Figure 13 shows the cavity inserts complete with core slide mechanism. Upon completing the cavity inserts, the designer uses the module gating system constructor to construct the layout, gate, runners and overflows for the cavity inserts. The layout chosen is a 2-cavity layout shown in Fig. 14.

Fig. 13a,b
figure 13

Core slide designer: a Body design interface. b Cavity inserts with core slides mechanism

Fig. 14
figure 14

2-cavity layout with 500 mm distance between cavity inserts

The cavity layout is created by layout sub-module and the distance between the cavity inserts is set at 500 mm. The type of gate used is a fan gate and the runner type is semi-circular runner. Two overflows are added for this case study. The gates are positioned by specifying a point on the cavity inserts assembly that will coincide with the origin of the gate. Once the gate is mated according to its origin, the gate can be altered in its orientation by rotation or translation. The runners and overflows are positioned by creating a line that indicated the length of the runners and overflows. The start point of the line will be the entry of the runner and overflow. The gating system is shown in Fig. 15.

Fig. 15 a
figure 15

Gating system—biscuit; gate; runner; overflow. b Enlarged view of cavity insert

The next step requires the die designer to add the die base to contain the cavity inserts using the die base designer module. The die base used in this case study is of the vendor DME series D shown in Fig. 16. The size of the die base is 1,000 mm by 800 mm by 344 mm.

Fig. 16
figure 16

DME Die base D series

Finally, the ejector system constructor module assists the die designer with the addition of the ejector system for the die base. The ejector system consists of ten ejector pins that are made up of two types of ejector pins as shown in Fig. 17. The ejector pins are positioned in a similar way as the gates. The system automatically places the ejector pins on the ejector plate. The die designer needs to ensure that the ejector pins selected must exceed the parting surface. After all the ejector pins are positioned, the ejector pins are trimmed easily by the system according to the parting surface. The ejector system is as shown in Fig. 18. With the addition of the ejector system, the die designer has successfully created a die design consisting of a 2-cavity layout of cavity inserts, core slides, gating and runner system, die base and ejector system. The die design system for die casting is shown in Fig. 19.

Fig. 17 a
figure 17

Typical ejector pin. b Reinforced ejector pin

Fig. 18 a
figure 18

Ejector system constructor interface. b Cavity insert with the 10 ejector pins of two different types

Fig. 19
figure 19

Die design for die casting of the push button casing using the proposed system

6 Conclusion

Die casting is still a widely used process. In terms of adding value to raw material and cost effectiveness, few other processes can match die casting. The increasing use of lighter-weight metal components, such as aluminium and magnesium die castings, has highlighted the importance of shortening the lead-time of die design. The die design system for die casting presented in this paper is capable of reducing the lead-time of die design as it integrates the various stages of die design process. Through such a system, die designers can design a die with cavity inserts, die base, gating system, ejector system and standard components. Moreover it ensures that when die designers modify the die design, the changes can be easily performed, thus removing the need to re-design another die for the same product.

However, there are some limitations to the proposed die design system for die casting. The feature libraries that are built into the system are not sufficient, although the system is able to allow additional features to be added by the die designer as and when needed. A cooling system for die design has not been considered in the proposed system, but a module will be created for a cooling system in the future. Future work will also include enhancing the proposed system with more computational abilities, such as the calculation of cavity filling time, venting analysis and gating system analysis.