Model layout optimization for solid ground curing rapid prototyping processes

Model layout optimization for solid ground curing rapid prototyping processes

Robotics and Computer Integrated Manufacturing 18 (2002) 41–51 Model layout optimization for solid ground curing rapid prototyping processes X. Zhang...

814KB Sizes 0 Downloads 47 Views

Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

Model layout optimization for solid ground curing rapid prototyping processes X. Zhang, B. Zhou, Y. Zeng, P. Gu* Department of Mechanical and Manufacturing Engineering, The University of Calgary, 2500 University Drive, Calgary, Alberta, Canada T2N 1N4

Abstract Rapid prototyping technologies are capable of directly manufacturing physical objects from CAD models and have been increasingly used in product development, tool and die making and fabrication of functional parts. Solid ground curing (SGC) technology, one of the rapid prototyping technologies, is suitable of building multiple parts with different geometry and dimensions in batch production of rapid prototypes to minimize the cost of prototypes. However, the layout of CAD models in a graphic environment is time-consuming. Because of high cost of the resin, the layout of models in a batch is critical for the success of the SGC operations in any industrial environment. This paper presents the layout optimization using simulated annealing techniques. A software system was developed to assist Cubital operators to layout CAD models with various geometric shapes. The system accepts STL files from any solid modeling environment. Several examples are provided to illustrate the techniques and effectiveness of the approach. r 2002 Elsevier Science Ltd. All rights reserved.

1. Introduction Increasing global competition requires product oriented manufacturing firms to become more flexible and responsive to the ever-changing market. Substantial reduction of product development time will improve firms’ response to market demands and therefore gain competitive advantages. Rapid prototyping and manufacturing technologies have been improving manufacturers’ responsiveness in several aspects such as rapid creation of 3D models and prototypes; and cost-effective production of patterns and moulds with complex surfaces [1]. Rapid prototyping technologies are capable of directly generating physical objects from CAD models. A variety of rapid prototyping technologies have emerged including stereolithography, selective laser sintering (SLS), fused deposition manufacturing, laminated object manufacturing, 3D printing and solid ground curing (SGC). They have a common feature: the prototype is produced by adding materials, rather than removing or deforming materials as in traditional manufacturing processes [2]. These technologies can fill the uncertainty void between the conceptual design and *Corresponding author. Tel.: +1-403-220-5770; fax: +1-403-2828406. E-mail address: [email protected] (P. Gu).

an actual part. The technologies can also significantly improve the efficiency of pattern and mould making processes. SGC processes can produce multiple parts with different geometries and dimensions in a single setup and therefore are suitable for batch production. In the building process of SGC (Fig. 1), a mask is generated by electrostatically charging a glass plate with a negative image of the cross-section of the part, which is similar to the process used in the laser printer. In the meantime, a thin layer of liquid photo-curable resin is spread across the surface of the work place. Then, the glass plate with the mask is placed between the lamp and the surface of the workspace. Instead of using a laser beam, an UV lamp is used to flood the chamber and expose and solidify the entire layer. After the residual liquid resin is wiped off by a vacuum cleaner, the model tray moves back under the UV lamp for a second exposure that solidifies the liquid resin that is not totally cleaned by the vacuum. The voids in this layer are filled with hot liquid wax, which acts as support for overhangs and isolated parts. After the wax is cooled down to solid by a cold metal plate, this resin/wax layer is milled with a fly cutter to a specified thickness. The new layer of resin is applied when the model tray moves from the milling station back to the exposure chamber. The SGC process can produce multiple parts at the same time by simply slicing a batch of CAD models and charging the glass

0736-5845/02/$ - see front matter r 2002 Elsevier Science Ltd. All rights reserved. PII: S 0 7 3 6 - 5 8 4 5 ( 0 1 ) 0 0 0 2 2 - 9

42

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

Fig. 1. A schematic drawing of a Cubital SGC process (Dolenc, 1994).

plate with a negative image of multiple cross-sections. Thus, Cubital machines can be used for production of multiple models in batches. However, in the building process of SGC, the resin that does not contribute to the part and is wiped off cannot be reused because it has been partially cured during the initial exposure. If one needs to build a single part and there are no other parts to share the block, this part can be very expensive unless it occupies most of the model tray. Moreover, most of the other rapid prototyping machines have to weave the cross-sections of each part in a batch one by one. Although the lead time on these machines can be reduced by producing multiple parts, the production time does depend on the number of parts and the parts geometry. In the SGC process, the UV lamp exposes every layer with the same time span as predetermined by the operator. Thus the resin consumption and fabrication time per layer are constant, independent of the parts’ geometry and the number of the parts in the batch. Consequently, the time and the cost of producing a batch of parts simply depend on the number of layers produced in the fabrication. In order to maximize productivity and minimize cost, parts in every batch should be ‘packed’ as low as possible within the given area of the model tray so that the fabrication layers for the batch of parts can be minimized. When more than one part is manufactured at the same time, within the 3D graphic environment, the operator simulates packing of actual parts by placing them, or their CAD models, inside an envelope on a

computer screen and makes sure that parts do not intersect with each other, and that they are totally inside the building volume. Parts in each batch can be used for different applications and for different customers. Thus the shape and size of parts can vary dramatically, which makes it even more difficult for an operator to find an optimal model layout solution manually. Therefore, a computerized system is needed to find the optimal batch configuration layout for the minimum cost of production.

2. Related research work The model layout problem can be categorized into the well-known bin-packing problem. Applications of the bin-packing problem can be found in VLSI layout design, stock cutting and other fields. The classical 2D and 3D bin-packing problems have been proven to be NP-hard [3]. Since the bin-packing problem is of practical importance, efficient approximation algorithms that produce close-to-optimal solutions have been developed. These approaches include linear programming, heuristic techniques, simulated annealing (SA) and genetic algorithm (GA). Linear programming methods have been extensively studied and successfully applied to a broad class of stock cutting problems. However, these methods are not appropriate for many real problems due to their structures or sizes. In such cases, heuristic methods are

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

used, such as dynamic programming and tree-search methods. Dynamic programming is a method that converts a problem into a series of single-stage problems. The difficulty is in quickly determining the optimal decisions. The tree-search method enumerates all possible solutions in a tree-like structure. Heuristics start out on one path and terminate when either an optimal solution is believed to have been found or the path is known to result in an unsatisfactory solution. Most of the above approaches either do not give an optimal or near optimal solution or are not applicable to a wide variety of applications, and the formulations of problems are rather complicated [4]. To overcome the limitations of linear programming and heuristic techniques, research efforts have been made using SA and GA to solve packing problems. Rao and Iyengar [5] applied SA to a variety of the binpacking problems. Extensive simulation experiments demonstrated that the solutions obtained by SA showed a significant improvement over those obtained by any of the well-known heuristic methods. Cagan [6] explored 2D and 3D layout problems using SA. An adaptive annealing schedule, multi-resolution modeling and a dynamic move selection strategy were proposed to improve algorithm performance. Han and Na [7] proposed a nesting approach with two stages: initial layout stage and layout improvement stage. A selforganization assisted layout algorithm generates a ‘good’ initial layout; then SA was used to improve the initial layout. Corcoran [8] explored GA in 3D packing problems and showed that GA yielded good solutions for 3D packing problem. It is worthwhile to mention that Ikonen et al. [9] used GA to solve a 3D model layout problem for an SLS machine. Most of the research mentioned above simplify shapes of the parts. Ikonen’s approach does not require geometry of parts to be simplified before packing. However, the searching process of the packing can be very time-consuming using this method (e.g. 8.5 h for 15 parts). In short, it has been demonstrated that GA and SA are capable of solving bin-packing problems. However, the performances of GA and SA in terms of efficiency and effectiveness depend greatly on the solution space, the implementation strategies and the objective functions. In this study, SA algorithm was applied to the present packing problem according to the specific objective function and searching strategies for SGC processes.

43

Packing tasks are characterized by the following three objectives: * * *

fitting models into the specified container; avoiding any overlap between models; achieving high packing density, in other words, achieving the minimum overall height.

In the present application, the CAD model of each part is represented in STL format. It consists of coordinate information of facet triangles and their corresponding outward pointing normal in a 3D space. Compared to other formats of CAD models, STL format is very straightforward. However, the search would be very time-consuming if the complete information of an STL model is encoded in the algorithm. This is because one simple operation such as ‘rotate’ or ‘move’ means recalculation of the new location of every triangle facet of a model, and it is very common for a mechanical part to have hundreds and thousands of triangle facets in an STL model. Moreover, these operations are used in thousands of ‘iterations’ during the searching process of SA. Thus the simplification is necessary. Most of the researchers simply envelop a part with a rectangular box because it is easy to implement and keeps the packing algorithm from becoming too complicated [4]. This method was also used in this research. The difference lies in the formulation of objective functions and specific search strategies. The 3D model layout can then be described in the following steps (Fig. 2): 1. Parse STL files of the parts to be manufactured and generate an envelope for each part model. 2. Pack envelopes in a bin according to a specific algorithm. The bin has the same size as that of the maximum manufacturing volume of the Cubital machine. 3. Calculate the updated STL file for each part. 4. Demonstrate the final result of the layout. Steps 1, 3, and 4 involve techniques in computer graphics and visualization, which are not specifically related to the packing problem and are relatively easier to implement with existing graphic tools. Our focus is on Step 2. The formulation of this problem is critical to establish a proper algorithm. The bin-packing problem can be represented as an optimization problem in Eq. (1): min h ¼ f ð pÞ s:t:

3. Formulation of model layout problem In this work, the SGC model tray is represented as a container with an upper limit. The model layout problem in this research can be described as packing a batch of parts of different sizes into the container (bin).

p ¼ h p1 ; p2 ; y; pn i; P ¼ ,; p

8i8j 0oipn; 0ojpn; i ¼ j; pi -pj ¼ F; 8i 0oipnpi -B ¼ F;

ð1Þ

44

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

Fig. 2. Procedure of model packing.

where n is the number of models, pi the packing state of a model, p the layout, P the set of all layouts, B the boundary of bin, pi -pj the overlap between any two models, pi -B the overlap between a model and a bin, h the overall height of a layout and f the objective function mapping the set P into the set of real numbers. In this present problem, a layout is a batch of parts satisfying the constraints defined by Eq. (1). The objective function is defined as the overall height of a layout. The packing state of a model is determined by the location (coordinates) and the orientation of model’s envelope. For each part a ‘local’ coordinate system is defined, the origin of which is the geometric center of its envelope. The bottom-left corner of the container (bin) is defined as the global origin. The coordinates of the geometric center of an envelope determine the location of this envelope in the container. The number of state of model orientation is six as shown in Fig. 3. The change from one state to another can be realized through one or two rotational operations. The operation ‘rotate’ is to spin an envelope 901 around one axis of its ‘local’ coordinate system. For example, to change the envelope in Fig. 3 from state (a) to state (b), it can be rotated around its x-axis (state (d)) and then rotated around its y-axis. The surfaces of every envelope are always perpendicular or parallel to the orthogonal axis. The state of each envelope pi is represented as pi ¼ hxi ; yi ; zi ; yi ; Xi ; Yi ; Zi i

i ¼ 1; y; n;

ð2Þ

where xi ; yi and zi stand for the coordinates of the center of the envelope of the ith model; yi is the orientation of the envelope; n is the total number of parts to be packed; Xi ; Yi and Zi are the lengths of the ith envelope along x; y and z directions. The objective function f defines a goodness value for each packing candidate to guide the search in a

Fig. 3. Degrees of freedom of model orientation.

promising direction. In this study, the goal is to minimize the overall layout height which can be determined by the following equation:   Zi n þ zi : f1 ¼ max ð3Þ i¼1 2 During the search process, overlap is permitted to allow models to be moved through one another and results in a more thorough search of the solution space. Since any overlap should be avoided in a final layout, the overlap is penalized in the objective function. Thus the objective function has a second term, f2 : f2 ¼

n1 X n X

Oij

i; j ¼ 1; 2; yn;

i¼1 j¼iþ1

Oij ¼ Oij ðxÞ þ Oij ð yÞ þ Oij ðzÞ:

ð4Þ

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

When two rectangular boxes overlap in parallel, the overlap is also a rectangular box. In Eq. (4), Oij ðxÞ; Oij ðyÞ and Oij ðzÞ are the lengths of the overlap between the envelopes of the ith and the jth models along x; y and z directions, respectively. Oij is the sum of the lengths of the overlap along the three orthogonal directions. The overlap quantification in Eq. (4) and the following linearly weighted objective function are most commonly used for multi-objective optimizations [7,9]: f ð pÞ ¼ w1 f1 ð pÞ þ w2 f2 ð pÞ:

ð5Þ

However, this function can seldom result in successful optimization in this packing problem. In the search process, f value of one solution was compared with that of another solution so that the search always goes in the direction of reducing the value of the objective function. With different values of the weights, the comparison results can be very different. Thus the relative value of these two weights is critical. Since the range of f2 varies dramatically according to the number of parts in a batch and the dimensions of parts, there is no single good choice of a pair of ‘weights’ for different packing instances. Even if there were a pair of weights reflecting the importance of the overlap and the height objectively, it would be difficult to decide their values mathematically. If the overlap f2 is given more weight than it deserves, namely, w2 being much larger than w1 ; the objective function would be more sensitive to the change of the overlap value f2 : The models would be placed apart in the early stage of the search process to eliminate the overlap. Finally, the models would be stacked higher in the container. If the height is given more significance than it deserves, the objective function would be more sensitive to the change of the overall height and the overlap would be encouraged because the value of the objective function would be reduced with layouts of lower height. To avoid the difficulty of determining the values of weights, a nonlinear objective function and another overlap definition were proposed and used in this study. The objective function is given below: f2 f ¼ if f2 o1; then f2 ¼ 1: ð6Þ ðZMAX  f1 Þ ZMAX is the upper limit of the container. It was set f2 ¼ 1 when f2 o1 because the value of the objective function f could not be equal to 0, otherwise it would cause premature convergence. In other words, the solution would not be improved when the objective function value could not be further minimized. In Eq. (4) the overlap between two envelopes was calculated by summing up the overlapped lengths in three dimensions. Another mathematical definition of the overlap between two envelopes was given to fit for the objective function in Eq. (7): Oij ¼ min½Oij ðxÞ; Oij ðyÞ; Oij ðzÞ :

ð7Þ

45

The motivation for using the nonlinear objective functions is that overlap is good during the search process, assuming that moving through infeasible configuration (layout) can lead to superior feasible configuration (layout) [4]. Using this objective function, the algorithm would guide the search towards lowering the layout height after the overlap is already very small. Thus the overall height in the final layout solution is generally low although tiny overlap still exists in the models. SA approach is used to solve the above optimization problem. Tests were conducted to compare the packing using the quantified overlap with those using the overlap defined in Eq. (4). SA showed worse performance or no better performance when using the first method. The results of these tests would be shown later in this paper. The packing algorithm defined here cannot guarantee to find an admissible solution. To eliminate the small overlap in the solution obtained from SA, a simple compensation algorithm was programmed. After the SA search process is completed, if overlap exists, the compensation program can be executed to identify the overlapped models and move them apart along a distance indicated by the minimum overlap. Since the movements may generate new overlaps, all models are checked again. If new overlaps occur, the procedure continues until no overlap exists among the models. Overlap can be easily eliminated in most cases after executing this compensation program. In the test cases, the overall height achieved through SA was increased insignificantly.

4. Simulated annealing approach 4.1. Concepts of SA SA is loosely based on the physical idea of annealing (cooling) metals in order to find the lowest energy-state of that metal. The mathematical interpretation of annealing is a cooling schedule, which is a decreasing function of time. SA is a stochastic computational technique derived from statistical mechanics for finding near global-minimum-cost solutions to large optimization problems. In many instances, finding the global minimum value of an objective function with many degrees of freedom subject to conflicting constraints is an NP-hard problem, since the objective function will tend to have many local minima. A procedure for solving optimization problems of this type should sample the search space in such a way that it has a high probability of finding the optimal or a near-optimal solution in a reasonable time. SA was proposed by Kirkpatrick et al. [10]. The idea was derived from the algorithm by Metropolis [11]. Initially, the starting temperature, T; is given a high

46

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

value and the system is assumed to start at an initial state p: The value of the objective function f at that point is calculated. A generation mechanism is defined, so that given a state p; a new state p0 can be obtained randomly from the neighborhood of p; which is then evaluated. D ¼ f ð p0 Þ  f ð pÞ is the change in objective function because of the move. If this move leads to an improvement in the objective function, the new design is accepted and becomes the current state. SA also accepts the new solution when its objective function value is worse than that of the old one. This can be calculated with the socalled Metropolis probability. The probability for a state to be accepted is determined as follows: ( 1 if Dp0; Paccept ¼ ð8Þ D=T if DX0: e The temperature starts out high and decreases with time. At each temperature, the system is perturbed several times. The set of iterations carried out at each value of the temperature is called a Markov chain. The number of iterations in a chain is sometimes referred to as the chain length. Initially, moves made through the state space are almost random, resulting in a broad exploration of the objective function space. As the probability of accepting inferior moves decreases, they tend to get rejected, allowing the algorithm to converge to an optimum.

predefined move. A move, j; is an operation through which a new layout solution p0 can be derived from the j old one p:p!p0 : A move set is a set comprised of different moves through which perturbations can be made to the model layout. When a new layout is generated from the old one, a move is selected from the move set with certain possibilities. Six moves are defined in the move set for solving the present problem: *

*

*

*

*

5. Packing strategies 5.1. The move set The SA search process begins with one or multiple solution (s), then finds other solutions through

*

Rotate. To change the orientation of the envelope of a model without changing the location of the envelope center. There are six orientations to be selected. However, more possibilities are given to the orientation that minimizes the height of envelope. Stroll. To randomly change the location of the center of the envelope in 7x; 7y or 7z directions. The moving distance depends on the current temperature. At a higher temperature, a longer distance of movement will be selected in an attempt to achieve a greater change in the cost function and to avoid local minimal. Swap. To switch the locations of two envelopes; two envelopes to be swapped are selected randomly. Move towards origin (0,0,0). To move a randomly selected envelope along a direction so that the x; y and z coordinates of that envelope will be decreased. The moving distance depends on the temperature at that moment. ‘Eliminate’ overlap. To calculate the overlapping vector between envelopes then move each envelope along the corresponding vector. This operation aims to decrease the overall overlaps, not actually eliminate all overlaps because after the move new overlaps might be generated. Move against wall. To move a randomly selected envelope in x2y plane (without changing its z

Fig. 4. SA algorithm in model layout optimization.

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

position) towards the nearest wall until it touches other envelopes or the wall of container, and then move the envelope downward until it touches other envelopes or the bottom of container. In fact there are two basic operations in the move set above, which are rotate and stroll, other operations can be considered as a special stroll operation or a sequence of stroll operations. The main purpose of the latter four operations is to improve the efficiency of the algorithm. 5.2. Overlap detection and calculation The overlap is calculated to evaluate the extent to which two or more envelopes overlap. To make this

Fig. 5. Packing eight identical envelopes with optimal solution.

47

calculation easier, envelopes are projected to a 2D coordinate plane. Once there is overlap between two envelopes, there will be overlap on every 2D plane (x2z; x2y or y2z plane). If there is no overlap between the projections in any 2D plane, then there is no overlap between these two envelopes Fig. 4.

6. Experimental results Several 3D packing problems with known global optima were created. These benchmark tests were created by dividing the container (working volume of 300 300 300 mm3) into a number of smaller blocks. The resulting blocks were given a random initial configuration and the layout was optimized for overall packing height. The first test problem was to pack eight identical cubes of 150 150 150 mm3. Obviously the optimal height is 300. The starting temperature was set to 2000, the length of Markov chain (mc) was 4000 and temperature reduction multiplier (kt ) was changed from 0.90, to 0.92 and to 0.95. SA was run three times under each of three conditions. For each group of parameters, the results were rather consistent. The results of SA packing are shown in Figs. 5–7. There are two trajectories in every figure. The upper annealing curve illustrates the sum of fitness/energy values of accepted solutions, while the lower one shows the values of the best fitness/energy at different times in the searching process. All the annealing curves show that in the high temperature regime (the early stage of searching) most generated solutions were accepted. However, in the low temperature regime, new solutions were accepted if they led to a better value of the objective function because the

Fig. 6. Result of SA (start temperature=2000, ml=4000, kt ¼ 0:90).

48

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

Fig. 7. Result of SA (start temperature=2000, ml=4000, kt ¼ 0:92).

Fig. 8. Result of SA calculations (start temperature=2000, ml=4000, kt ¼ 0:95).

Metropolis criterion was dominated by the change in cost and not by the acceptance probability due to the low value of the temperature. When the temperature decrements were slower as shown in Fig. 7.6 and 7.7, global optima were found in their early stages of the searching process. The figures show that the rate of temperature decrement trate has a profound impact on the quality of the final solution obtained by annealing. Too slow a rate wastes computational time while too fast a cooling rate quenches the system and yields local minima. When kt ¼ 0:90 (Fig. 7), which means the temperature drops fast, the final result of SA is not good. There is overlap among parts when the search ends (the value of

energy should be equal to 1 when optimal is found). Therefore, it can be determined that the search is stuck in local optima (Fig. 8). The second benchmark test was to pack 18 identical cylinder-shaped parts with 100 mm diameter and 50 mm height. Thus the volume of the envelope is 100 100 50 mm3. To fit these 18 cylinder-shaped parts into the container with the area of 300 300 mm2, the optimal height should be 100 mm, that is, the parts are stacked into two layers with nine parts in each layer. Fig. 9 shows the result of packing 18 ring-shaped parts. The length of the Markov chain was 10,000 with the starting temperature at 8000. After the SA search terminated, the height of the layout was 69 mm, which

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

49

Fig. 9. VRML view of 18 ring-shaped parts layout.

Fig. 10. VRML view of 18 ring-shaped parts after compensation.

meant the parts on the ‘second’ level were overlapping with the parts on the first level. In this research, this phenomenon happened frequently when the number of parts increases to more than 12. To solve this problem, the compensation algorithm was used. This method could not guarantee the elimination of all the overlaps under every condition, but it worked most of the time when the container was not too jammed. The result of this compensation algorithm is illustrated in Fig. 10. Another series of tests were carried out using the same 18 ring-shape parts. The objective function and parameters also stayed the same as those in the previous test. The only difference was that the overlap defined in Eq. (4) was used in these tests. Fig. 11 shows a typical packing result of these tests. The overall height was 150 mm. Since in these tests, overlaps were overemphasized (summed up in three directions), three parts were placed in a direction with a high geometric center to avoid overlapping with each other. It seems that there was enough place in the first layer for another part from

Fig. 11. Packing result of 18 ring-shaped parts when using summed overlap.

the third layer thus another two in the third layer could be stacked on the parts in the first layer, and there would still be one part on the third layer. However, this

50

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51

Fig. 12. VRML view of 20 real parts layout.

imaginary layout configuration would not be favored since the value of the objective function would not change (since there was no overlap and the overall height did not change). The search would therefore be stuck in this situation unless all of the three parts could be rotated/moved in a direction with a low geometric center. Since SA search always has an inherent stochastic manner, the chances are rare if the overlap is over emphasized. At last, SA was used to pack 20 real parts with different shapes and dimensions, in which case the optimal condition was not known. The result is satisfactory after executing the compensation algorithm (Fig. 12).

7. Software implementation The packing program was written in Visual C++ on the Windows NT platform. The user can adjust the algorithm parameters through the provided graphic user interface. Although the efficiency of the algorithm was not the major concern of this research, the time needed to obtain a satisfactory solution was quite reasonable. Generally, the execution time for solving a mediumsized packing problem (about 20 parts) was about 20 min on a personal computer with 64 MB memory and 300 MHz CPU. The packing program can parse STL files of the models and update them with the packing information. The final layout solution can be transformed into VRML format and viewed in VRML viewer. The updated STL files can be directly loaded into the Cubital machine for manufacturing of multiple parts in a batch.

8. Conclusions Rapid prototyping and manufacturing technologies can substantially reduce product development time and respond quickly to market demands. As one of the

common technologies of rapid prototyping technologies, the SGC process can produce multiple parts simultaneously. However, research needs to be done to reduce the production cost and to improve machine productivity. In model layout optimization, the model layout problem was identified to improve the productivity of the SGC process and to reduce the cost using SA. SA was applied to solve this problem. A move set to perturb new layout solutions was defined. A new objective function was proposed and compared with the conventional linear-weighted objective function. The SA approach was efficient and effective. The developed software tool kit can relieve Cubital machine operators from tedious and not necessarily effective work of packing part models on the DFE workstation. It can also receive the STL format from Pro/Engineer, generate the envelope automatically and update the STL files of the models and the corresponding envelopes with the layout solution. The final layout can be transformed into VRML format and viewed with VRML viewer. The updated STL files can be directly loaded into the Cubital machine for manufacturing multiple parts in a batch.

Acknowledgements This research was supported by the Natural Sciences and Engineering Research Council of Canada (NSERC) through a Strategic Grant STR192769.

References [1] Yan X, Gu P. A review of rapid prototyping technologies and systems. Computer-Aided Des 1996;28(4):307–18. [2] Kruth JP. Material increases manufacturing by rapid prototyping techniques. Ann CIRP 1991;40/2:603–13. [3] Garey MR, Johnson DS. Computers and intractability: a guide to the theory of NP-completeness. San Fransisco: W.H. Freeman and Co., 1979.

X. Zhang et al. / Robotics and Computer Integrated Manufacturing 18 (2002) 41–51 [4] Szykman S, Cagan J. A simulated annealing-based approach to three-dimensional component packing. J Mech Des 1995;117: 308–14. [5] Rao RL, Iyengar SS. Bin-packing by simulated annealing. Comput Math Appl 1994;27(5):71–89. [6] Cagan J. A shape annealing solution to the constrained geometric Knapsack problem. Computer-Aided Des 1994;28(10): 763–9. [7] Han G-C, Na S-J. Two-stage approach for nesting in twodimensional cutting problems using neural network and simulated annealing. J Eng Manuf 1996:509–19.

51

[8] Corcoran III AL, Wainwright Roger L. A genetic algorithm for packing in three dimensions. Symposium on Applied Computing (SAC 92), Kansas City, March 1–3, 1992, p. 1021–30. [9] Ikonen I, Biles WE. A genetic algorithm for optimal object packing in a selective laser sintering rapid prototyping machine. Seventh International Conference on Flexible Automation and Intelligent Manufacturing, Middlesbrough UK, 1997, p. 751–9. [10] Kirschman S, Gelatt II CD, et al. Optimization by simulated annealing. Science 1983;220:671–80. [11] Metropolis M, Rosenbluth A, et al. Equation of state calculations by fast computing machines. J Chem Phys 1953;21:1087–92.