1 Introduction

Additive manufacturing (AM), derived from rapid prototyping (RP), has been investigated and developed for more than three decades. It cannot only provide prototypes rapidly to support the product development, but also produce functional or end-use parts for different application areas [1,2,3,4,5].

Due to its unique processing manner, layer by layer, it owns a great advantage of manufacturing customized parts with extremely complex geometries against traditional processes. Furthermore, AM technologies can realize manufacturing a group of parts with the same or different geometries in the same build platform simultaneously without using any tools or fixtures since multiple contours of different parts can be placed within one common slice/layer to be built. Therefore, it is a real and ideal technology for the “concurrent manufacturing” [6]. Significant savings in cost and time can be achieved in rapid prototyping (RP) by manufacturing multiple parts in a single setup to achieve efficient machine volume utilization [7]. Intuitively, to improve the machine utilization, more parts should be placed as compactly as possible to harness the build volume so as to reduce the total build time and cost per machine run. It seems that this is a classical nesting or packing problem. However, due to the special constraints of AM, the placement problem is different from other classical nesting or packing problems. When placing multi-parts into a build volume, not only the compactness should be maximized to reduce the total build time and cost, but also the part’s production quality should be guaranteed. In addition, the characteristics of AM processes, the features of part group, the production contexts of AM service bureaus, and the specific preferences and requirements of users should be taken into consideration when doing the multi-part placement. Hence, these factors form the customized constraints of AM to make this problem a special variant of classical nesting or packing problem. Currently, due to the insufficient maturity of manufacturing functional parts and little research attention paid on the process planning or scheduling in AM, only a few solutions were proposed in literature to deal with the part placement problem. Till now, in AM service bureaus, the problem is mainly solved manually by skilled technicians who place parts as many as possible [8].

However, doing the part placement manually in a graphic environment is time-consuming, and it becomes more complicated when placing a batch of parts with a large quantity and very complex geometries [9]. Obviously, it is very difficult or even impossible for an operator to find an optimal part placement solution manually when facing such a nesting or packing (NP)-hard problem.

In many production processes, optimization of material usage by means of nesting plays an important role. Traditionally, 2D nesting has been an aspect of sheet metal manufacturing. With the increasingly mature application of layered manufacturing, 3D nesting has become an essential part of the workflow. The reason for this is that the quality of the 3D nest not only influences the required amount of raw material and the quality of the individual products, but also has a direct impact on the throughput time of a production batch [10].

Canellidis et al. studied the platform layout optimization problem for the simultaneous fabrication of different parts, which is addressed in the batch planning of stereolithography additive manufacturing technology. The methodology proposed employs a genetic algorithm technique for the 2D nesting of parts on the platform of the stereolithography machine [11].

Zhang et al. proposed a strategy composed of two main steps, applying an “AM feature-based orientation optimization method” to optimize each part’s build orientation to guarantee the production quality and applying a designed “parallel nesting” algorithm for increasing the compactness of placement by using the parts’ projection profiles so as to decrease the total build time and cost [12].

Bernard et al. introduce a new nesting scheme to more exactly describe this AM industry problem and then propose a parallel nesting method for both improving machine utilization and guaranteeing production quality [13]. Angelo et al. report a collection of the most significant published methods for the estimation of the factors that most influence the build direction is presented [14].

The build time and cost for each build cycle depend on nesting issues (build orientations, placement locations, and geometries of input objects) [15]. Nesting and scheduling problems in the AM literature can be categorized into three types: nesting for AM (NfAM) ([13, 16]); scheduling for AM (SfAM) ([15, 17]); and nesting and scheduling for AM (NSfAM) ([18,19,20,21]). Compared with NfAM problems, SfAM and NSfAM problems have been highlighted recently.

In this paper, a new algorithm for 3D printing nesting has been presented, and it has been developed within the definition of a previsional model that aims to evaluate the performance to manufacture a particular component comparing different available 3D printing technologies.

For this reason, the main purpose of this innovative algorithm is providing to previsional model a worthy solution to compute a possible nesting configuration for a given platform. Therefore, this algorithm has been developed considering the production of medium/large lots of components in which these last have the same dimensions. In particular, it does not contemplate the possibility of engaging components of different dimensions because this is a typical issue that the technicians face during the job setup considering a particular technology and production needs in terms of queue to manage.

The presented algorithm aims to provide a possible layout available to the components on the printing surface based on the geometric characteristics without the use of iterative processes that characterize the most common nesting techniques.

Therefore, what distinguishes this algorithm is the possibility to estimate a feasible number of printable components (for a given printed bed) without having to resort to iterative processes.

The proposed methodology aims to be integrated within innovative systems that exploit the cloud manufacturing paradigm. Specifically, the algorithm was specially developed with technologies integrable within different software structures.

In fact, for system oriented to cloud manufacturing, where there are several technological resources (manufacturing resources, IT resources, etc.), for additive manufacturing service, it is extremely important to have some integrated tool/applications that support the technicians to define a quicky quotation for a given order. In this context, the developed tool provides a great advantage because it provides, in quick times, an estimation of printable components for a given 3D printing technology. This parameter is extremely important for aspects concerning the economy of scale. Indeed, this algorithm is integrated in a previsional model that provides information about technological and economic aspects.

The algorithm was designed to be implemented within DSS-oriented software architectures or decision support systems designed for the context of additive manufacturing. Specifically, these solutions aim to assist technicians in product–process development.

In this context, the integration of the developed algorithm would allow technicians to have a function able to estimate, during the preliminary phase of product development, the number of components that can be printed in a single job and, therefore, also evaluate the connected aspects to costs.

The objective was, therefore, to obtain an effective tool able to compute a possible nesting configuration (number of components that it is possible to print with a given 3D printing technology and with a single job) to feed the previsional model in order to compute several key performance indicator (KPIs) that allow to evaluate the available technologies in terms of cost estimation and technological compatibility.

2 AMSA methodology

The previsional model and the nesting algorithm have been implemented as part of a research project Additive Manufacturing Spare parts market Application (AMSA). This project has developed a tool, called AMSA, having as main goal the definition of a common platform to supply different kinds of services: product development oriented to the additive manufacturing (DFAM, design for additive manufacturing), production of prototype or small series with additive manufacturing, and reverse engineering activities to obtain CAD models starting from a physical object. The definition of different kinds of services allows to satisfy several client needs such as necessity to define an innovative product characterized by high performance in terms of stiffness/weight ratio, possibility to manufacture small series, such as in the motorsport field, and possibility to define CAD models for the obsolete parts for which the geometrical information are missed. AMSA platform relies on the reconfigurable supply chain that is dynamic, and it depends on the particular client needs. For example, when the client requires the manufacture of a small series of a particular component, AMSA allows the technicians to choose the best solutions in terms of price and distance. Therefore, the suppliers that contribute to the definition of the dynamic supply chain have an important role. The AMSA platform, for these reasons, represents an important tool able to link the suppliers to the customers in the best manner in order to obtain services characterized by a high performance level.

In fact, it provides support to the AMSA operator in appropriately evaluating supplier selection logics based on the characteristics of the geometry to be built.

Therefore, a methodology has been developed that is able to extrapolate and to cross a series of information able to provide, for each component to be produced through additive manufacturing, a series of key information:

  • The most suitable technology

  • The suggested machine

  • The production time

  • The production cost

Considering the large number of variables to be managed, it was decided to propose a methodology based on the selection of a series of KPIs. The purpose of the latter is to provide a compatibility index of each machine (no technology) with respect to the component requirements to be produced.

The KPIs have percentage values from 0 to 100% and different calculation methods depending on the considered case. Once the KPIs have been calculated, the platform has a list of solutions ordered according to a compatibility KPI obtained as an average (appropriately weighted) of the other available KPIs.

3 Key performance indicators

Key performance indicators represent a synthetic method to collect information and correlate it with each other. The developed previsional model allows to filter the technologies according to the appropriate performance indexes (KPIs) reported below [2122]:

  1. 1.

    CST: production cost

  2. 2.

    MAT: material

  3. 3.

    TMP: production time

  4. 4.

    ING: overall dimensions of the component in the machine

  5. 5.

    PRE: technology precision

  6. 6.

    RIS: technology resolution

  7. 7.

    STQ: undercuts management

  8. 8.

    RGS: technology roughness

  9. 9.

    CBA: technology compatibility with the component to produce

The indexes listed above, as it can be seen from the synthetic description, analyze different technological aspects related both to the technical characteristics of the machines but also to the qualitative aspects of the components that must be realized.

The objective of this previsional model is to assist AMSA technicians in choosing, among accredited suppliers to the platform, the most advantageous solutions considering the aspects that distinguish the production of a particular component.

The main KPIs are certainly CST, TMP, and CBA; however, even the geometric KPIs could be useful to allow the AMSA operator to make the necessary evaluation. For a detailed description of KPI, see Appendix 1.

4 Nesting algorithm

Within the previsional model definition, aimed at evaluating the performance of printer technologies, based on the characteristics of the component to be manufactured, it was necessary to develop an algorithm for the management of the aspects connected to the nesting of the components on the printer plan produced by additive manufacturing.

In particular, this need emerges in the calculation of the following indices:

  1. 1.

    CST: production cost

  2. 2.

    TMP: production time

  3. 3.

    ING: overall dimensions of the component in the machine

  4. 4.

    CBA: technology compatibility with the component to produce

5 Consideration on INPUT parameters for index calculation

In the listed indices the variable “m” appears, which represents the number of components that can be positioned on the printer plan. This variable represents, precisely, the nesting activity and requires the development of an appropriate algorithm that mainly defines the following data:

  • Printer plan type: rectangular or circular

  • Printer plan dimensions

  • Component plan dimensions

This allows the component number calculation that can be positioned on the printer surface (Fig. 1).

Fig. 1
figure 1

Definition of the nesting algorithm

The rectangular and circular case studies concern the printing plans that can be found in the main commercial 3D printing systems; therefore, the cases analyzed may well be representative of the possible solutions that the algorithm must be able to manage.

Therefore, based on the previously mentioned need, to quantify the number of components that can potentially be positioned on a printer plan, taking into account the component dimensions, an algorithm has been developed that has been implemented in the previsional model which in turn has been integrated into the AMSA platform. The algorithm has a top-down structure as it is not an iterative algorithm but is based on the use of parameterized geometric data, with the aim of providing an estimate quickly and sufficiently reliable. Therefore, there are no iterations on the parameters as the definition of the latter is made upstream of the algorithm. Furthermore, the algorithm does not deal with managing the qualitative aspects of the printed components.

In fact, the technicians, to use the application, will insert some input parameters such as distance between the parts and distance from the edges of the printing surface. This technological information are available to technicians because they are linked to the production context know-how.

6 Nesting algorithm definition

The Nesting algorithm can be briefly summarized with the following diagram (Fig. 2).

Fig. 2
figure 2

Nesting algorithm diagram

Obviously, the scheme shown represents a simplification but allows to effectively understand the layout of the same and what are the inputs in detail.

In particular, it appears evident that the nesting algorithm can be considered as composed of sub-algorithms that allow, in turn, to compute the number of components in the following cases: rectangular and circular printer plans.

The input data shown in the diagram are detailed below:

  • x = X dimension of the printer plane.

  • y = Y dimension of the printer plane.

  • gapB = offset with respect to the printer plane border.

  • gapX = X distance among the components.

  • gapY = Y distance among the components.

  • xc = X dimension of the component bounding box.

  • yc = Y dimensions of the component bounding box.

As can be seen from the input data, there are information about:

  • Printer plane dimensions

  • Component dimensions

  • Positioning distances

Below will be described in more detail the two sub-algorithms that make up the general nesting algorithm.

7 Nesting algorithm definition for CIRCULAR printing plan

This section reported the description of the computation algorithm of the component number in the case of a circular printing plan. Figure 3 shows the summary workflow.

Fig. 3
figure 3

Circular nesting workflow

The circular printing plan is obviously identified by a radius (Fig. 4), and, for this reason, when the data of the printing plan are inserted, in the case of a circular plan, the following condition will be obtained: X = Y = r * 2 (r = radius). Figure 5 also shows the previously indicated offset “gapB” (Fig. 3) and the difference “r-gapB” which represents the radius for the calculation of the useful surface for the components positioning.

Fig. 4
figure 4

Circular printing plan

Fig. 5
figure 5

Circular printing plan — positioning

In the positioning calculation, the algorithm assumes that the first component is positioned in the center of the printing plane as shown in Fig. 5.

Further, the algorithm considers that the bounding box dimensions are parallel to the axes. Considering the printing plane symmetry (being circular) the same result is obtained for the following scenarios:

  • xc parallels to the x axis and yc parallels to the y axis.

  • xc parallels to the y axis and yc parallels to the x axis.

Therefore, the positioning shown in Fig. 5 is considered as default. Starting from this assumption, the algorithm calculates a potential number of components that can be inserted to cover the entire printing plan, from the dimensions in plan of the component and from the printing plan dimensions considering a determinate extrusion direction. In particular, the technicians, for a given component, can choose a particular extrusion direction, and the algorithm considers the other directions to define the dimensions in plan.

Therefore, the following functions are present:

$$NumberCWX=int(\frac{\left(r-gapB-\frac{xc}{2}\right) \, }{\left(xc+gapX\right)})+1$$
$$NumberCWY=int(\frac{\left(r-gapB-\frac{yc}{2}\right) \, }{\left(yc+gapY\right)}+1$$

These functions allow you to calculate the maximum number of components in the X and Y directions (Fig. 6).

Fig. 6
figure 6

a NumberWX calculation; b number WY calculation

With the calculation of the components in the two directions, the algorithm, in the preliminary phase, computes the scenario shown in Fig. 7. The figure shows how there are components, according to this computation, which are obviously not in the print domain as the plan is circular. Another aspect that is highlighted in this case is how, in the first phase, the calculation concerns only a quarter of the printing plan. This facilitates the algorithm in terms of calculation times.

Fig. 7
figure 7

Circular printing plan — maximum number of components

In order to understand what the components are actually contained within the printing plan, in the algorithm, a set of parametric equations have been integrated in order to monitor each vertex of the rectangles that identify the plan surface of the component overall volume and to identify if a component is within the printing area or not.

Below are the formulations of these equations:

$$P1ij=(\left[\left(\frac{xc}{2}+\Delta x\right)+\left(xc+\Delta x\right)*\left(Nx-1\right)\right], \left[\left(\frac{yc}{2}+ \Delta y+yc\right)+\left(\Delta y+yc\right)*\left(Ny-1\right)\right])$$
$$P2ij=(\left[\left(\frac{xc}{2}+\Delta x+xc\right)+\left(xc+\Delta x\right)*\left(Nx-1\right)\right], \left[\left(\frac{yc}{2}+ \Delta y+yc\right)+\left(\Delta y+yc\right)*\left(Ny-1\right)\right])$$
$$P3ij=(\left[\left(\frac{xc}{2}+\Delta x+xc\right)+\left(xc+\Delta x\right)*\left(Nx-1\right)\right], \left[\left(\frac{yc}{2}+ \Delta y\right)+\left(\Delta y+yc\right)*\left(Ny-1\right)\right])$$
$$P4ij=(\left[\left(\frac{xc}{2}+\Delta x\right)+\left(xc+\Delta x\right)*\left(Nx-1\right)\right], \left[\left(\frac{yc}{2}+ \Delta y\right)+\left(\Delta y+yc\right)*\left(Ny-1\right)\right])$$

The equations refer to the vertices shown in Fig. 8.

Fig. 8
figure 8

Control vertices

In particular, the equations listed above describe the coordinates of all 4 vertices for each rectangle positioned on the printing plane. For each vertex, it is necessary to calculate the distance. A rectangle (component) is inside the printing plane, if and only if, all 4 vertices have a distance from the center lower than the difference between the radius and the offset “gapB”; rather, the following conditions are valid simultaneously:

  • - \(D1i\le \left(r-gapB\right)\)

  • - \(D2i\le \left(r-gapB\right)\)

  • - \(D3i\le \left(r-gapB\right)\)

  • - \(D4i\le (r-gapB)\)

where D1i represents the distance of vertex 1 belonging to component i. After checking how many components with respect to the conditions listed above, the result obtained is reported in Fig. 9.

Fig. 9
figure 9

Result of the check of the components inside the circular printing plan

After the components have actually been computed within the printing plan for the quarter surface, the components for the entire surface are then evaluated as shown in Fig. 10. In particular, these components are highlighted in yellow to indicate the rows belonging to the x and y axes, and the components replicated in the respective quadrants are indicated in orange.

Fig. 10
figure 10

Result of the check of the components inside the whole circular printing plan

This calculation has been further refined if there is a single row of components in the x direction of the printing plane. It is necessary to consider this scenario in order to make the algorithm more robust.

In fact, if it is considered the scenario of Fig. 11, the solution described above considers the insertion of only 5 components.

Fig. 11
figure 11

Scenario for which further implementation is needed

However, this solution does not appear to be robust as, as can be seen in Fig. 11, if components 2 and 4 were properly translated, it would be possible to insert further components.

Figure 12 shows the A and B dimensions defined as:

  • A: distance between point P2 * (projection in the vertical direction of point P2 on the circumference identified by R* = (R-gapB)) and point P2, rather

Fig. 12
figure 12

a Size check. b New layout

$$A=dist(P{2}^{*}P2)$$
  • B: half dimension in Y direction of the component overall volume

$$B= \frac{yc}{2}$$

In order to insert an additional component, distance A must be greater than B, rather

$$A\ge B$$
$$dist\left(P{2}^{*}P2\right)\ge \frac{yc}{2}$$

If this condition is verified, the algorithm requires the insertion of 2 components instead of 1 as shown in Fig. 12.

8 Nesting algorithm definition for RECTANGULAR printing plan

This section reported the description of the computation algorithm of the component number in the case of a rectangular printing plan. Figure 13 shows the summary workflow.

Fig. 13
figure 13

Rectangular nesting workflow

The algorithm is more efficient in the potential component number definition for the rectangular printing plan.

Figure 14 shows the offset “gapB,” previously indicated as in the case of the circular printing plan, and the axes origin necessary for the number of component calculation.

Fig. 14
figure 14

Rectangular printing plan

It is assumed that the bounding box dimensions are parallel to the axes. The scenarios that can be presented are the following:

  • xc parallels to the x axis and yc parallels to the y axis.

  • xc parallels to the y axis and yc parallels to the x axis.

The choice of the scenario to be considered in the component number definition is defined by the algorithm based on the potential number of allocable components. In particular, it is considered as a reference condition that between the two, it is possible to insert a greater number of components.

Starting from this assumption, the algorithm calculates the maximum number of components that can be inserted, to cover the entire printing plan, for both scenarios, from the dimensions in plan of the component overall volume and from the printing plan dimensions, using the following functions:

$$NumberRWX=int(\frac{\left(x-\left(gapB*2\right)\right)}{\left(xc+gapX\right)})$$
$$NumberRWY=int(\frac{\left(x-\left(gapB*2\right)\right)}{\left(xc+gapY\right)})$$

These functions allow to calculate the maximum number of components in the x and y directions for the two orientations suggested above (1 and 2).

The possible cases are reported in Table 1.

Table 1 Number of component calculation for scenarios 1 and 2

The component number will therefore be equal to

$$N=NumberRWX*NumberRWY$$

The number of components is calculated for both scenarios and is equal to

$$Numero dei componenti=Max({N}_{A}, { N}_{B})$$

The positioning of the single overall volumes in plan is governed by the following parametric equations:

$$P1ij=\{(xc+gapX+xc)+\left[\left(xc+gapX\right)*\left(i-1\right)\right]\}, \{\left(yc+gapY+yc\right)+[\left(gapY+yc\right)*\left(j-1\right)]\}$$
$$P2ij=\{(xc+gapX)+\left[\left(xc+gapX\right)*\left(i-1\right)\right]\}, \{\left(yc+gapY+yc\right)+[\left(gapY+yc\right)*\left(j-1\right)]\}$$
$$P3ij=\{(xc+gapX)+\left[\left(xc+gapX\right)*\left(i-1\right)\right]\}, \{\left(yc+gapY\right)+[\left(gapY+yc\right)*\left(j-1\right)]\}$$
$$P4ij=\{(xc+gapX+xc)+\left[\left(xc+gapX\right)*\left(i-1\right)\right]\}, \{\left(yc+gapY\right)+[\left(gapY+yc\right)*\left(j-1\right)]\}$$

The equations refer to the vertices shown in Fig. 15.

Fig. 15
figure 15

Control vertices

In particular, the equations listed above describe the coordinates of all 4 vertices for each rectangle positioned on the printing plane.

Figure 16 shows the component positioning phase on the rectangular printing plane considering the mutual distances between the components themselves in the x and y direction.

Fig. 16
figure 16

Rectangular printing plan — positioning

Nesting management in the case of the rectangular printing plan entails the need to consider two specific cases within the algorithm.

The first case, reported in Fig. 17, foresees, as orientation, the following scenario (scenario 1):

  • xc in the X direction

  • yc in the Y direction.

Fig. 17
figure 17

New positioning, scenario 1

In this case, it could be verified that the insertion of a further row of components in the Y direction is not physically possible. However, this scenario does not allow a priori to exclude the possibility of inserting additional components by rotating them. It is possible to rotate the components and insert additional files. The condition for this event to occur is described below.

First of all, the number of possible rows, with components rotated with respect to the general orientation, defined according to the following formula, is calculated:

$$Numero di file (Nf)= int(\frac{A}{\left(xc+gapY\right)})$$
$$A\ge \left(xc*Nf\right)+(gapY*\left(Nf-1\right))$$

Figure 18 shows the completion of the nesting phase with all the possible components that can be inserted on the printing table according to the defined parameters.

Fig. 18
figure 18

New complete positioning, scenario 1

The second case, shown in Fig. 19, provides, as a guideline, the following scenario (scenario 2):

  • xc in the Y direction

  • yc in the X direction

Fig. 19
figure 19

New positioning, scenario 2

In this case, it could be verified that the insertion of a further row of components in the X direction is not physically possible. However, this scenario does not allow a priori to exclude the possibility of inserting further components by rotating them. It is possible to rotate the components and insert additional files. The condition for this condition to occur is described below.

First of all, the number of possible files with components rotated with respect to the general orientation, defined according to the following formula, is calculated:

$$Numero di file (Nf)= int(\frac{A}{\left(yc+gapX\right)})$$
$$A\ge \left(yc*Nf\right)+(gapY*\left(Nf-1\right))$$

Figure 20 shows the completion of the nesting phase with all the possible components that can be inserted on the printing table according to the defined parameters.

Fig. 20
figure 20

New complete positioning, scenario 2

9 Results and discussion

The implementation of the nesting algorithm has been structured in two different steps:

  • Step 1, algorithm implementation using the TCL language (tool command language)

  • Step 2, porting of the algorithm to the Java language (Appendix 2)

The choice to use the TCL language was made due to the availability of a development environment, which provides tools able to plot the results giving, therefore, the possibility to graphically verify the quality of the solution (Fig. 21). The figure also shows an example of application of the algorithm on a real mechanical component characterized by dimensions in plan equal to 100 × 200 mm (https://grabcad.com/) [23].

Fig. 21
figure 21

Graphic visualization in HM environment (a) and (b) example of graphic verification

In Fig. 21d it is highlighted the output of the algorithm for the considered real component.

This development environment is a CAE tool, Altair® HyperMesh®, which allows to literally design the component layout on the printing plan through appropriate APIs available. The language with which it is possible to interact with the APIs present is TCL [24].

In step 2, after the development and testing of the algorithm, thanks also to the visualization of the results in the HyperMesh® environment, they were ported to Java. This choice was dictated by the implementation requirements for its integration into the AMSA platform.

The developed algorithm aims to address the problems associated with nesting operations for 3D printing technologies. Several nesting algorithms are present in the literature, many of which are based on optimization algorithms that often require different iterations to obtain the final configuration.

The present algorithm, although it is not based on optimization algorithms, turns out to be a technologically solution as it allows to provide an estimate of the components that can be positioned on the printing plan (circular or rectangular) which is for the purposes of estimating the production costs.

The main advantage, compared to the more expensive optimization algorithms, lies in the fact that, based on geometric considerations, it is able to provide an estimate in a very short time and, therefore, the technician has an available immediate tool for estimating the components that can be placed on any printing plan with the only condition of having the dimensions of the printing plan itself and of the component for a given orientation.

The analyzed case studies within the paper refer to the bounding box of the possible components to be printed and not to the actual geometries. It is important to highlight that the bounding box plays an important role in defining the number of components that can be printed on a given printer plane.

Through the bounding box, the maximum dimensions in plan of a given component and the maximum height defined at a given inclination are defined. The technology was also developed for powder bed 3D printing systems, such as SLM, and, specifically, the definition of the reference bounding boxes for testing the algorithm was conducted in collaboration with printing centers. The latter, possessing the technologies at home, have transferred their needs and the most relevant technological information to the authors for the development of a method that allows to obtain, in a very short time, a hypothesis of components distribution on the printer plane.

The algorithm was not designed to be integrated into commercial 3D printing systems, as its goal is to be implemented in the future, in solutions that are placed downstream of the production system and that want to assist the decision-making process in the preliminary product development phases.

It is important to highlight that, as for the classic nesting techniques based on iterative processes, in the case study, in the first analysis, the qualitative aspects were not considered, as the tool was designed to assist technicians in the cost estimation and not in the product–process development phase. However, the authors are conducting additional studies aimed at improving the algorithm by introducing additional technological parameters typical of the most common additive manufacturing processes, specifically SLM. The innovation introduced by this algorithm is to provide a solution which, although based on mathematical and geometric rules, can be integrated into solutions based on cloud manufacturing. In fact, this solution was developed specifically for an application of the cloud manufacturing paradigm, and, compared to classic nesting systems, it is expressly designed for 3D printing.

10 Conclusions

The technical specification definition for the previsional model implementation has led the need to develop a nesting algorithm for the computation of the printable component number on a given printing plan. This variable is necessary for some KPI calculation that allows to evaluate in advance the qualitative aspects of the components obtained for each printing technology. This tool allows AMSA technicians to choose the best performing technologies to request a quotation for a particular component. The objective has not been to provide a tool properly dedicated to the proper nesting of the components on the printing plane (this is a typical issue that the technicians face during the job setup considering a particular technology and production needs in terms of queue to manage), but the objective was to estimate the component number for a consequent estimate of the costs for a given machine park. The algorithm was not designed to be integrated into commercial 3D printing systems, as its goal is to be implemented in the future, in solutions that are placed downstream of the production system and that want to assist the decision-making process in the preliminary product development phases.

Currently, the algorithm has been developed to work in the XY plane taking into account the needs expressed by industrial partners that collaborate in the research activities. Indeed, the industrial partners work with different 3D printing technologies such as SLM and DMD, and they have a consolidate know-how about the additive manufacturing processes. However, among future developments, the integration of the Z axis within the algorithm is expected.

The objective was, therefore, to obtain an immediate tool at the service of the calculation algorithms of the cost estimate and of the technological compatibility of the available machines for a given component.

This algorithm represents a flexible solution that it is possible to implement within other previsional model or framework to evaluate the 3D printer performance considering as AM becomes increasingly widespread and taking into account to have a useful tool to quickly evaluate a potential number of a particular component to print with a determinate machine and for a given extrusion direction. The developed algorithm is a utility that can be integrated into any platform. In fact, it was created to be integrated into solutions that exploit the cloud manufacturing paradigm and therefore was not designed to be integrated within real CAD systems but rather for web-based platforms that also act as decision support systems (DSS). The software was developed using various technologies, one of which listed in the article is Java which stands out for its extreme flexibility and integrability with any system.