An Agent-Based Decision Support Platform for Additive Manufacturing Applications

: The e ﬀ ective estimation and consideration of process cost, time, and quality for additive manufacturing operations, when a series of suitable technologies and resources are available, is very important for making informed product design and development decisions. The main objective of this paper is to propose the design, deployment, and use of an agent-based decision support platform, which is capable of proposing alternative additive manufacturing resources and process conﬁgurations to design engineers while reducing the number of communication steps among engineering teams and organizations. Di ﬀ erent computer-aided systems are utilised and interfaced for automating the information exchange as well as for accelerating the overall product development process.


Introduction
Additive Manufacturing (AM) is characterized by the layer-wise production of a part as opposed to conventional manufacturing (CM) of subtractive or forming methods, such as computer numerical control (CNC) milling and injection moulding [1,2]. Additive manufacturing processes can allow for increased design freedom to produce functional freeform products with high geometric complexity, previously not possible with CM, and are further enabled by advances in design for additive manufacturing (DfAM) [3]. AM is also an attractive option as it can provide significant cost savings compared to CM, due to the abatement of tooling and the reduced material usage [4]. AM can complement CM when used to quickly produce injection moulds and tools with conformal cooling for enhanced performance [5]. Further to this, the on-demand production of spare parts using AM enhances supply chain management by lowering warehousing and transport costs as well as by reducing lead times [6][7][8][9][10]. Designs optimised for AM using topological optimisation have significantly reduced weights, leading to substantial reductions in lifecycle fuel costs and emissions, which is of particular importance to aircraft parts [11]. AM parts see a diverse range of applications in aerospace, automotive, defence, medical implants, as well as in toys, and jewellery industries [12].
Various AM technologies are available for producing parts, including stereolithography, powder bed fusion, and directed energy deposition, among others [1,2]. Each AM technology has its own associated material preparation requirements, material phases, and workable materials, from polymers to metals, composites and ceramics, and even biological materials [13]. Cost, quality, and time performance achieved in the production of AM parts are important considerations for the product development process [3] and vary depending on the technologies and the resources used. Indeed, two different machines using the same AM technology can produce parts of different mechanical properties and performance in terms of quality, cost, and process time, depending on a series of factors. These factors include the type of material used as well as process parameters, such as layer table of suitable AM processes and materials for the build. Limitations of this DSS are the omission of consideration of cost and build speed parameters for process time estimation as well as the lack of STL file reading functionality, which would reduce any potential errors in the process dependent selection phase, where many part geometry parameters are input instead. Byun and Lee [29] used a modified TOPSIS method for analysing qualitative and quantitative data, using factors such as accuracy, roughness, strength, elongation, part cost and build time for ranking alternative AM processes in a pairwise comparison matrix. Borille and de Oliveira Gomes [27] used an analytic hierarchy process (AHP) and multiplicative analytic hierarchy process (MAHP) for comparing and ranking appropriate AM processes with consideration to cost, build time, accuracy, roughness, tensile strength, and elongation. Braglia and Petroni [28] used AHP for AM process selection based on cost, time, size, complexity, and surface texture. Zhang et al. [30] used a Multi-Attribute Decision-Making (MADM) approach, taking advantage of a knowledge value measuring method for making decisions involving production cost, time and quality, using a case study on AM system parameters from Rao and Padmanabhan [33]. These system parameters included mechanical quality properties, such as accuracy, surface roughness, tensile strength, and elongation, as well as part cost and build time. Meisel et al. [31] developed a DSS framework for the selection of suitable AM processes in remote or austere environments. Bikas et al. [32] presented a framework for facilitating process selection in AM. This framework included the evaluation of AM technologies, AM process selection, assessment of technical feasibility of AM processes, evaluation of the design, and finally process planning for hybrid manufacturing to reduce costs by combining CM and AM. Watson and Taminger developed a decision support framework for selecting AM vs CM methods, such as CNC milling, based on energy consumption indicators [34]. This framework accounted for the entire manufacturing lifecycle energy consumption required for both AM and CM and determined that there lies a critical value for the fraction of the bounding envelope that contains material whereby the energy consumption for AM and CM is equivalent. For volume fractions below this critical value, AM is more efficient and above this, CM is more efficient. Wang et al. [35] developed a DSS for AM process selection using a hybrid MADM with TOPSIS for ranking possible solutions. This DSS accounted for various performance parameters, including tensile strength, dimensional accuracy, surface finish, and material cost. A comprehensive review of the methods currently used for AM process selection was conducted by Wang et al. [36]. This review could support DfAM using knowledge-based DSS on top of examining and evaluating user preferences and AM process performance. Zhang et al. [37] developed a build orientation optimisation method for multi-part production in AM. They used a feature-based method to constrain the number of possible orientations for each part within a group of parts in a single build, which would ensure build quality was not compromised. Following this, a genetic algorithm was used for optimising the decision index of an integrated MADM model for each alternative orientation in order to minimize cost.

Agent-Based Decision Support Systems and Cloud Manufacturing
A software agent in the manufacturing domain is typically a computer programme that may act on behalf of an engineer or operator. Agent-based decision support systems (ABDSS) are typically autonomous computer or software systems, which communicate with the environment on behalf of a designer, an engineer or an operator to achieve a predefined goal [38]. Similar platforms have been developed previously for a plethora of applications. For example, an agent-based system (ABSTUR) capable of picking an optimal route to avoid overcrowded and non-profitable tourist routes was devised. The agents in ABSTUR represented the simulator, different categories of tourists and the route manager [39]. ABDSS can be adaptive and intelligent, tailoring their behaviour to environmental changes and can apply a fixed set of rules to enable reasoning, learning, and planning functionality. Multi-agent systems are a group of agents, which work baring similarity to a community of human workers, collaborating with predefined roles, towards a particular goal through effective communication and reasoning [38]. They enable decentralized problem solving [40] and can combine machine learning, simulation, and multi-criteria decision-making features. ABDSS have been used in areas, such as engineering design [41], process planning [42], production planning and resource allocation [43], production scheduling and control [44], process control monitoring and diagnosis [45], enterprise organisation and integration [46], networked production [47], assembly, and life-cycle management [48,49].
A Multi-Agent Systems (MAS) architecture was developed by Legien et al. [21] for supporting technology recommendations, specifically related to material choice support for casting with cost estimations. In the field of DfAM, Dhokia et al. proposed an agent-based generative design tool [50]. In the area of process planning, a number of multi-agent systems and platforms have been proposed for machining prismatic parts utilising STEP-NC [51,52]. MAS for modelling AM processes have also been proposed, without however elaborating on how different AM technologies and equipment may be utilised as a part of the same platform [53]. Recent research works have suggested the integration of MAS in cloud manufacturing platforms for AM [54]. Cloud manufacturing is a paradigm, which is enabled by cloud computing technologies as well as by the integration of networked manufacturing systems, including networked manufacturing, virtual manufacturing, internet of things (IoT), and agile manufacturing technologies [55,56].
In a previous work of this paper's authors, the use of blockchain technology principles was introduced for securely managing AM product development data with a MAS, mainly for storing product development information in a secure way [57]. In this paper, a novel MAS approach is presented for facilitating and accelerating the process of designing and manufacturing a product utilising AM technologies, by integrating CAD, CAM tools, and MES data, and by automatically selecting the most suitable AM process configuration, equipment, and service provider.

Comparison with Other AM Platforms
Several different AM platforms in the market offer manufacturing execution or AM production capabilities as a service. Manufacturing service providers such as Materialise, Stratasys, Formlabs, Shapeways, Protiq, 3D-Hubs, and others provide similar manufacturing options at different capacities. These companies usually have access to proprietary machines and software. These platforms come with their own features and require a significant amount of time for engineers and designers to understand how they work and how they may be adapted to their own needs.
When reviewing the services provided by the likes of Materialise, Protiq, Shapeways (Figure 1), or others, it is to be noted that what is offered to users is more of a marketplace, where the user defines the requirements to print parts and then place an order for having those parts printed. These platforms typically are also capable of providing a delivery date. However, being a web-based service, the downside with such services is that there is no direct integration with CAD software environments. As the designer must exit the design environment and move to a different software application, which requires the designer to upload the file in a specific CAD format, experimentation with a different version of the same design is more error-prone and time-consuming.
At the same time, whenever a user wishes to check what the consequences will be in case the quality parameters (such as finishing quality) are changed, the same process will have to be followed again. Additionally, the user typically receives no feedback about the process parameters, such as layer thickness, or the AM machine that will be used for printing the part. In case there are strict requirements regarding layer thickness, density or even the machine to be used, there is usually no straightforward way to input these requirements in these platforms. Furthermore, the cost and time estimations received by the user are typically based on part volume and support information and not on the output of a CAM/slicing software tool, which may mean that cost and time estimations are not as accurate as they could be. the requirements to print parts and then place an order for having those parts printed. These platforms typically are also capable of providing a delivery date. However, being a web-based service, the downside with such services is that there is no direct integration with CAD software environments. As the designer must exit the design environment and move to a different software application, which requires the designer to upload the file in a specific CAD format, experimentation with a different version of the same design is more error-prone and time-consuming.  Features of these platforms include: • Automated generation of support structures (not user viewable); • Repair of STL model (not user viewable); • Selection of process parameter (not user viewable); • Quality selection (the user has limited options); • They are oriented towards enterprise or early-adoption customers that have a finished design and need a prototype; • Material selection is limited-they typically use medium to high-end materials.
Furthermore, there are other software packages like Netfabb, Repetier ( Figure 2), or Simplify3D, that can cater to a wide range of 3D printing systems, or build platforms by importing machine/system settings directly from their website repository or by specifically feeding in different parameters for specific platforms and materials within the software to create profiles or printer configurations. Such software provides more flexibility to the designer by allowing for more customization options down to the minute details like support density, layer thickness, infill density, material options, extrusion options, and many others depending on the AM technology. The use of this software, however, is not an automated procedure since the designer is required to have intricate knowledge of the slicing/CAM tool software. Specific versions of software packages like Netfabb or Repetier are free-to-use software packages, whereas Simplify3D is a commercial software tool, providing the flexibility to import printers and configuration files through their website with a proprietary slicing engine.
The list of features of these platforms include: • They are highly flexible-and therefore the setup with host and server is complex.

•
The capability of repairing defective STL meshes.

•
Control of layer thickness, material, density, and other process parameters is allowed.

•
Custom generation of support structures, patterns, infill density for supports is allowed.

•
Custom slicers can be imported-for example, newer versions of the slicing engines from Prusa, Cura, Netfabb, or others. This is a feature that is not typically addressed to average users, but it is still useful when special design and production requirements need to be considered. material options, extrusion options, and many others depending on the AM technology. The use of this software, however, is not an automated procedure since the designer is required to have intricate knowledge of the slicing/CAM tool software. Specific versions of software packages like Netfabb or Repetier are free-to-use software packages, whereas Simplify3D is a commercial software tool, providing the flexibility to import printers and configuration files through their website with a proprietary slicing engine. The list of features of these platforms include: • They are highly flexible-and therefore the setup with host and server is complex.

•
The capability of repairing defective STL meshes.

•
Control of layer thickness, material, density, and other process parameters is allowed. In this paper a different approach is presented, whereas the selection of AM part process configuration options is invoked directly within a CAD environment. The proposed approach would allow for the accurate simulation of AM processes utilising different process configurations. The proposed software platform is designed to extract the required part information automatically from the CAD model design. The platform is capable of testing different process configurations on a diverse range of AM machines and then allows the consideration of multiple criteria, related to cost, time and to parameters affecting quality, for selecting a suitable AM machine and process configuration. The proposed platform is capable of considering custom machine profiles that have been developed by AM service providers over time, based on their experience, diverse material profiles, as well as vendors from different locations. Since the platform can directly be integrated into a CAD environment, the designer may experiment with different design versions or part features without exiting the CAD system.

Scope
Designers would welcome receiving feedback regarding the impact of design features-typically modelled in CAD software-is on the production process, as there is no information on the printed product cost as well as on its delivery. A series of part characteristics need to be considered, including their geometry and technical specifications. The first features that need to be checked, before a specific AM is considered for producing a part, are its external dimensions and the minimum wall thickness. In particular, each part will have a maximum x, y, and z dimension, which will dictate the appropriate build volume requirement for that part. This is of importance to AM machine selection, as each machine will have a maximum build envelope and recommended minimum wall thickness.
Designers are also typically not aware of the capabilities and performance characteristics of diverse AM equipment and technologies. They usually do not have enough knowledge about the different process configurations of each available machine that are suitable for the part designs. Furthermore, they do not have access to information pertaining to the machines' availability as well as to their cost, time performance capabilities and to their process parameters options.
Although many different AM technologies and equipment are available from a number of third-party companies or cooperating suppliers, there is no way of comparing the high number of the resulting process configurations, comprising of different materials, specifications, and supplier/machine options, other than obtaining this information by receiving bids directly from the available suppliers.
However, this is a time-consuming process on which product or part designers have little or no control at all.

Approach
In this paper, an agent-based approach is proposed, whereby different agents undertake the role of representing diverse stakeholders and resources in the process of designing and manufacturing a product utilising AM technology. Design Agents, in the form of desktop software applications, represent product design engineers and their role is to automate the process of identifying and then submitting the technical specifications of a product or part, while Machine Agents represent the process engineers who would analyse the part geometry and technical specifications and would then return to the designer with information about the process cost and time performance as well as about the process configuration itself. Both Design and Machine Agents are in essence software modules that may potentially replace human operators in a series of activities related to the negotiation and handling of 3D printing orders as well as to the selection of a suitable machine and process configuration. The Design Agent may, in the end, select the AM service provider (represented by a Machine Software Agent) who would make the best offer, considering cost, time, and process criteria. The proposed approach allows Machine Agents to communicate with specific CAM systems that correspond to each 3D printer they represent. These CAM systems are typically associated with a number of process profiles that contain special parameters values for different combinations of materials, process accuracy, part density, and support options. In this paper, the Fused Deposition Modelling (FDM) AM processes have been modelled, but other AM technologies, such as Powder Bed Fusion or Direct Energy Deposition, could also be modelled, taking advantage of the same platform and design principles. Each Machine Agent may choose from a multitude of process configuration profiles. Specifically, each AM process profile associated with a specific AM machine and its CAM software contains the following information:

•
Material to be used, including its properties, such as density, cost per weight unit, chamber, or bed temperature; • Support options, such as support profiles, support on build plate or x-y basis, and parameters per support option; • Part density; • AM layer thickness, which is usually directly related to part quality (finish quality, tensile strength, impact strength, and hardness) [58,59].
Each of these profiles corresponds to a specific combination of material, support option, part density, and quality. The standard and most accurate way to check the print feasibility of a part, for a specific AM machine, is to simulate the execution of its G-code, that is generated by a CAM software programmed for that AM machine. This simulation could provide useful information, such as material usage, cost, and build times. It is assumed that the CAM software utilises the latest firmware update for the 3D printer, as well as the most updated information pertaining to the availability of the machines. This information is typically not known to the organisation that wishes to place an order for their parts. It can become quite challenging for a design engineer working for that organisation to explore possible combinations of available equipment, suitable material, process configurations, and service providers [60]. The proposed platform ( Figure 3) is based on the Java Agent Development Framework (JADE) [61]. Design Agents are software modules representing design engineers and provide engineers with a Graphical User Interface for specifying the CAD file of the part and its technical specifications, including support options, materials that could be used, the minimum density, the maximum layer thickness (minimum 3D printing accuracy), quantity, and the order due date. One of the main reasons why an agent-based approach was selected is that this way it is easier to distribute the overall computational load to all Machine Agents that are available. Since the proposed approach is in principle simulation-based, the overall computational time required for simulating the 3d printing process for a wide range of machines would be quite long. Instead, by using agents, the designer will only have to wait for as long as it is required for the slowest Machine Agent to return its process alternatives. At the same time, the interaction of each agent with operators and other IT systems could also be done independently, i.e., each Agent may be interfaced to a different MES or CAM platform. Each platform (belonging, for instance, to a particular manufacturing OEM) will have to host the main container and can have as many other containers (each one belonging, for instance, to a particular AM service provider) as needed. Different platforms may also be connected, which in principle would allow different networks of service providers to be connected. An Agent Management System (AMS) is also part of the platform, providing an assigning service. The Directory Facilitator (DF) provides a Yellow Pages service, allowing agents to find other agents that are also part of the proposed JADE framework.
The sequence of steps followed, and the information contained in the messages exchanged among the Design and Machine Agents and the platform components, including the CAM software and the MES are depicted in the UML sequence diagram of Figure 4. The list below provides more details about each of these steps: • Once a part is designed, the design engineer (Designer) uses the part geometry analysis tool, which launches the Design Agent (a software instance) who then uploads the CAD file to the cloud or to a remote repository and provides the minimum technical specifications (maximum layer thickness, minimum part density), the basic geometric information (external dimensions and minimum wall thickness), the list of alternative materials that can be used, the number of parts to be produced, the order due date, and decision criteria weights.

•
The Design Agent finds all available Machine Agents (software instances) through the platform DF and then sends a message to all suitable Machine Agents, encapsulating all information provided by the Designer, including the link to the repository containing the CAD file, while asking for a bid.

•
The Machine Agent selects all CAM process profiles that fulfil all material, density specifications, and support options and calls the CAM software to generate the G-code and simulate the AM process for each one of these profiles.

•
The output of the CAM software is then received by the corresponding Machine Agent and the processing time and cost per part are calculated.

•
The Machine Agent then requests information regarding the availability of the machine from its MES and estimates the end date for the specific order. This is done by utilising all available idle time slots for producing the number of parts requested by the Design Agent. A part geometry analysis tool has been developed and integrated with a commercial CAD platform for launching the Design Agent and for automatically passing to it basic design information, such as the CAD file and the maximum external dimensions and the minimum wall thickness of the part. The designer may edit these values, especially in cases where the geometry of the parts is complex and the calculation of the values of certain features, such as the wall thickness, is not straightforward.
Each platform (belonging, for instance, to a particular manufacturing OEM) will have to host the main container and can have as many other containers (each one belonging, for instance, to a particular AM service provider) as needed. Different platforms may also be connected, which in principle would allow different networks of service providers to be connected. An Agent Management System (AMS) is also part of the platform, providing an assigning service. The Directory Facilitator (DF) provides a Yellow Pages service, allowing agents to find other agents that are also part of the proposed JADE framework.
The sequence of steps followed, and the information contained in the messages exchanged among the Design and Machine Agents and the platform components, including the CAM software and the MES are depicted in the UML sequence diagram of Figure 4. The list below provides more details about each of these steps: • Once a part is designed, the design engineer (Designer) uses the part geometry analysis tool, which launches the Design Agent (a software instance) who then uploads the CAD file to the cloud or to a remote repository and provides the minimum technical specifications (maximum layer thickness, minimum part density), the basic geometric information (external dimensions and minimum wall thickness), the list of alternative materials that can be used, the number of parts to be produced, the order due date, and decision criteria weights.

•
The Design Agent finds all available Machine Agents (software instances) through the platform DF and then sends a message to all suitable Machine Agents, encapsulating all information provided by the Designer, including the link to the repository containing the CAD file, while asking for a bid.

•
The Machine Agent selects all CAM process profiles that fulfil all material, density specifications, and support options and calls the CAM software to generate the G-code and simulate the AM process for each one of these profiles.

•
The output of the CAM software is then received by the corresponding Machine Agent and the processing time and cost per part are calculated.

•
The Machine Agent then requests information regarding the availability of the machine from its MES and estimates the end date for the specific order. This is done by utilising all available idle time slots for producing the number of parts requested by the Design Agent.

•
All alternative process configurations are sent by the Machine Agents back to the Design Agent who then estimates their utility by considering the relative importance of all criteria identified by the Designer.

•
Then the best alternative is identified by the Design Agent, who sends a message with an order placement request to the corresponding Machine Agent.

•
As soon as the Machine Agent confirms the order, the best alternative process configuration with all pertinent information, regarding the process parameters, the service provider and cost, tardiness performance is presented back to the Designer.

•
The Machine Agents are then reset so that they can receive new requests from new instances of the same or other Design Agents from the same or another Agents' Platform.
Appl. Sci. 2020, 10, x FOR PEER REVIEW 9 of 20 • Then the best alternative is identified by the Design Agent, who sends a message with an order placement request to the corresponding Machine Agent.

•
As soon as the Machine Agent confirms the order, the best alternative process configuration with all pertinent information, regarding the process parameters, the service provider and cost, tardiness performance is presented back to the Designer.

•
The Machine Agents are then reset so that they can receive new requests from new instances of the same or other Design Agents from the same or another Agents' Platform. A simplified example of the overall information exchange and alternatives generation process is presented in Figure 5. The Designer submits a part design together with the associated technical specifications to the Design Agent, which are then sent, as part of a 'MessageA' type message, to 2 Machine Agents, representing two 3D printers. Each Machine Agent generates all alternatives that satisfy the technical specifications and then invoke their corresponding CAM tool, providing as input the process parameters for each alternative and the CAD file. As soon as the CAM process simulation (G-code generation) is completed, the output of the simulation together with planning information from the MES are used for calculating the performance indicators for each alternative. This information is sent back to the Design Agent as part of a 'MessageB' type message. The Design Agent ranks all received alternatives, by calculating the utility of each one of them after considering the  A simplified example of the overall information exchange and alternatives generation process is presented in Figure 5. The Designer submits a part design together with the associated technical specifications to the Design Agent, which are then sent, as part of a 'MessageA' type message, to 2 Machine Agents, representing two 3D printers. Each Machine Agent generates all alternatives that satisfy the technical specifications and then invoke their corresponding CAM tool, providing as input the process parameters for each alternative and the CAD file. As soon as the CAM process simulation (G-code generation) is completed, the output of the simulation together with planning information from the MES are used for calculating the performance indicators for each alternative. This information is sent back to the Design Agent as part of a 'MessageB' type message. The Design Agent ranks all received alternatives, by calculating the utility of each one of them after considering the relative importance of all decision criteria, using the Simple Additive Weighting method, and presents the best ones to the designer.
Appl. Sci. 2020, 10, x FOR PEER REVIEW 10 of 20 Figure 5. Example of the information exchange process.

Software Design and Implementation
The main components of the proposed platform are the Design and the Machine Agents both implemented in the 'DesignAgent' and 'MachineAgent' classes, respectively ( Figure 6). Both components are implemented in Java, inheriting the initialisation, lifecycle, and communication functions from the JADE core Agent class. Each Agent has its own settings, such as the location of the Agents' facilities, the decision criteria weights for the Design Agent and the process profiles and cost parameters for the Machine Agent. The information sent from the Design Agent to Machine Agents is contained in a 'MessageA' object, while all alternatives generated by each Machine Agent and sent back to the Design Agent are part of a 'MessageB' object.

Software Design and Implementation
The main components of the proposed platform are the Design and the Machine Agents both implemented in the 'DesignAgent' and 'MachineAgent' classes, respectively ( Figure 6). Both components are implemented in Java, inheriting the initialisation, lifecycle, and communication functions from the JADE core Agent class. Each Agent has its own settings, such as the location of the Agents' facilities, the decision criteria weights for the Design Agent and the process profiles and cost parameters for the Machine Agent. The information sent from the Design Agent to Machine Agents is contained in a 'MessageA' object, while all alternatives generated by each Machine Agent and sent back to the Design Agent are part of a 'MessageB' object.
Each Agent can be instantiated in a computer that has a Java Runtime Environment. The platform has been tested and used in networked environments with multiple nodes (computers). A special interface has been built, allowing a commercial CAD system to launch a Design Agent.
components are implemented in Java, inheriting the initialisation, lifecycle, and communication functions from the JADE core Agent class. Each Agent has its own settings, such as the location of the Agents' facilities, the decision criteria weights for the Design Agent and the process profiles and cost parameters for the Machine Agent. The information sent from the Design Agent to Machine Agents is contained in a 'MessageA' object, while all alternatives generated by each Machine Agent and sent back to the Design Agent are part of a 'MessageB' object.

Cost Function
Significant consideration must be given while assessing the cost function for an AM process. The selection criteria of an AM technology largely depend on machines, location, materials, post-processing operations, and many other factors that are deployed in an AM production line. This must also be considered while deriving a cost function for an AM technology. This will determine the most viable AM technology to build a product. The calculation of a cost function will vary significantly in different AM technologies that are currently available in the market. This is because, depending on the AM technology deployed, the values of these factors will vary. For example, the cost factors of a material extrusion process are different when compared with the ones associated with a powder bed fusion process. This could be in the form of energy consumption, labour, overheads, materials cost, capital investment for an AM machine, support volume generated for a build, which in particular can affect the material cost depending on the chosen orientation, or it could be in the form of necessary post-processing operations required for a finished product.
The cost per order is calculated by each Machine Agent for every machine and process profile by considering process material and time requirements as well as shipping cost elements [62,63]. Equation (1) shows a generic cost function used for estimating the overall cost. This equation is derived based on existing techno-economical models used for conventional manufacturing processes [63]. where: • s denotes the Machine Agent representing a specific machine of a service provider, • c denotes the process configuration index, • C sc is the overall cost for agent s and configuration c, • Q is the order quantity, • A sc is the cost rate (€/h) for configuration c of the machine represented by agent s, • T sc represents the processing time per piece if configuration c of the machine represented by agent s is selected, • M sc is the total material cost (€/kg) for building the part using configuration c of the machine represented by agent s, • W sc is the overall weight (kg) of the piece if configuration c of the machine represented by agent s is used, including support material, • P sc represents the set-up and post-processing operations cost per part, • K s is the average shipping cost rate from the service provider represented by agent s [€/(km.kg)], • D s is the distance between the service provider represented by agent s and the Designer's location and • F is the fixed cost per order, • d(Q,W sc ) is the discount rate applied, based on the overall cost, excluding material costs, which is in turn a function of the part weight and ordered quantity.
Since the cost function is generic enough so that it can be applied across multiple machine profiles and configurations irrespective of the AM technology or machine used, machine and build plate utilisation were assumed to be at their maximum of 100%. Furthermore, the costs regarding labour or energy consumption would be categorized under the cost rate (A sc ). Fixed cost (F) includes overheads and the initial cost of the machines and infrastructure required for the production facility.

Test Cases
The test cases in this paper were devised for validating the proposed approach, utilising the latest stable version of a platform, which is being used by researchers of the I-Form Advanced Manufacturing Research Centre for designing and planning 3D printing experiments. Part of these experiments are conducted in cooperation with the industry. The cases are related to an injection moulding company in Ireland that wishes to produce several prototype plastic parts for allowing their client (OEM) and their sales representatives to review the part before committing to the final design that will lead to the development of the mould, which is an expensive process. It is assumed that six different service providers are available in five European countries, using three different types of FDM 3D printers.

Test Case 1
In the first test case, a relatively simple part was selected, where lower layer thickness, cost, and tardiness are favoured. The criteria weights for evaluating the alternative process configurations from all six service providers were: layer thickness (40%), density (0%), tardiness (30%), and cost (30%). The materials to be considered were Polylactic Acid (PLA) and Acrylonitrile Butadiene Styrene (ABS). Once the product design is completed, a design engineer has the option to use the part geometry analysis tool, which will automatically convert the native CAD file to an STL file and will calculate the external dimensions of the part (Figure 7). Then it will launch the Design Agent ( Figure 8). For all 3D printers, the Prusa Slicer CAM tool [18] was interfaced with the corresponding Machine Agents for generating the G-code, while plain text files were used for representing the information related to the machines' availability as stored in standard MES platforms. The process profiles that are available for each machine correspond to 3 different layer thicknesses, i.e., 0.05 mm, 0.15 mm, and 0.30 mm, 2 materials (PLA, ABS), 4 infill densities (0%, 20%, 50%, 70%), and 3 support options. The overall number of profiles is therefore 72 per machine. More process configuration profiles could be prepared and used but for illustration purposes, the number of profiles in this paper was limited to 72. In this case, as per the user's layer thickness, density and material requirements, 2 layer thicknesses (0.05 mm, 0.15 mm), 2 materials (ABS, PLA), 2 infill densities (50%, 70%), and 1 support option were tested. The overall number of combinations is therefore 8, which is equal to the total number of profiles tested and simulated per agent and machine. Figure 9 presents the least and most expensive process alternatives, as well as the one that was selected as the best.
prepared and used but for illustration purposes, the number of profiles in this paper was limited to 72. In this case, as per the user's layer thickness, density and material requirements, 2 layer thicknesses (0.05 mm, 0.15 mm), 2 materials (ABS, PLA), 2 infill densities (50%, 70%), and 1 support option were tested. The overall number of combinations is therefore 8, which is equal to the total number of profiles tested and simulated per agent and machine. Figure 9 presents the least and most expensive process alternatives, as well as the one that was selected as the best.   For the test case 1, agent MA6 provided the least expensive configuration. However, due to its lower degree of availability, this alternative was not the one selected. MA4 provided the best-balanced configuration, exhibiting low cost and tardiness. The most expensive process configuration was provided by agent MA2, since the AM service provider the agent represents is the most expensive one and this particular configuration is related to the lowest possible layer thickness and the highest infill density, leading also to very high tardiness.  For the test case 1, agent MA6 provided the least expensive configuration. However, due to its lower degree of availability, this alternative was not the one selected. MA4 provided the bestbalanced configuration, exhibiting low cost and tardiness. The most expensive process configuration was provided by agent MA2, since the AM service provider the agent represents is the most expensive one and this particular configuration is related to the lowest possible layer thickness and the highest infill density, leading also to very high tardiness.

Test Case 2
In the second test case, a more complex part was selected ( Figure 10). The company would prefer a part with a higher infill density, while cost would not be as important as density, delivery date, and layer thickness. The criteria weights for evaluating the alternative process configurations from all six service providers were: layer thickness (20%), density (50%), tardiness (20%), and cost (10%). The materials to be considered were PLA and ABS. All cost parameters and machines' availability have been assumed to be the same as in test case 1. The parameters used for launching the Design Agent and the information received from the Machine Agents are shown in Figure 11.

Test Case 2
In the second test case, a more complex part was selected ( Figure 10). The company would prefer a part with a higher infill density, while cost would not be as important as density, delivery date, and layer thickness. The criteria weights for evaluating the alternative process configurations from all six service providers were: layer thickness (20%), density (50%), tardiness (20%), and cost (10%). The materials to be considered were PLA and ABS. All cost parameters and machines' availability have been assumed to be the same as in test case 1. The parameters used for launching the Design Agent and the information received from the Machine Agents are shown in Figure 11.     The best and least expensive alternatives were generated by Agent MA6 (Figure 12). The best and least expensive alternatives were generated by Agent MA6 (Figure 12). The best alternative, in particular, is a balanced solution, where a profile with the highest density and medium layer thickness was chosen so that cost and tardiness could be kept at low levels. The most expensive alternative was produced by Agent MA2, whose cost rates are the highest among the six AM service providers.

Cases Results Comparison and Simulation Validation
The results obtained from the two cases are summarised in Table 1. The 30% higher volume of the part corresponding to test case 2, together with the fact that a higher density was selected led to higher process times (and therefore tardiness) and cost. The best alternative, in particular, is a balanced solution, where a profile with the highest density and medium layer thickness was chosen so that cost and tardiness could be kept at low levels. The most expensive alternative was produced by Agent MA2, whose cost rates are the highest among the six AM service providers.

Cases Results Comparison and Simulation Validation
The results obtained from the two cases are summarised in Table 1. The 30% higher volume of the part corresponding to test case 2, together with the fact that a higher density was selected led to higher process times (and therefore tardiness) and cost. For the validation of the test cases, two alternatives were chosen: the best alternative of test case 1 and a randomly selected alternative generated for test case 2. The corresponding parts were printed, using the process parameters suggested by the corresponding Machine Agents in the same 3D printer type, which is associated with these agents. The process time and the weight of the parts were measured. The variations observed from the values simulated versus actual part build time and weight are summarised in Table 2: The differences between simulated and actual process times and part weights are: • Time per part: 1-2%, • Weight per part: 3-4%.
Assuming that a 95% accuracy is expected from the simulation process, these variations are well within range. The printed parts are shown in Figure 13. Assuming that a 95% accuracy is expected from the simulation process, these variations are well within range. The printed parts are shown in Figure 13.

Conclusions
This paper presents an agent-based approach for automating the process of selecting an AM service provider, the corresponding equipment and desired process configuration, while considering

Conclusions
This paper presents an agent-based approach for automating the process of selecting an AM service provider, the corresponding equipment and desired process configuration, while considering a set of often conflicting criteria.
The main goal of this approach is the implementation of a platform that is capable of supporting designers and engineers towards making informed product design and development decisions. The Machine Agents are in principle capable of interfacing open-ended CAM tools that are used with 3D Printers as well as of evaluating quite accurately the performance of several alternative process configurations. One of the main advantages of the proposed approach is that it can handle as many alternative AM service providers, equipment, and configurations as needed since the overall computing load is distributed evenly to the Machine Agents.
The proposed approach and platform could in principle be used with any kind of 3D equipment, given that the associated CAM software could be interfaced. However, this cannot always be the case, as, especially in the case of metal AM equipment, the CAM tools used by these machines are often proprietary and do not provide an Application Programming Interface (API) that would allow for the straightforward integration with the corresponding Machine Agents. Recent developments in the domain of robotic process automation (RPA) could provide an alternative way for interfacing and utilising the proprietary CAM systems in a near-automated way. With this technology, the interaction between a human operator and a software system may be replicated and executed on-demand in a fully parameterized manner. This opens possibilities for the integration of different CAM tools and platforms that could be interfaced with the proposed agent-based platform. The proposed approach could also complement existing platforms and approaches by, for instance, providing information regarding cost and time performance of diverse process configurations so that a limited number of configurations be reviewed in these platforms.
Further information, such as specific parts' geometry characteristics and feature sets could also be useful for identifying the most suitable process configurations and print profiles, based on the past performance of these profiles in the production runs with parts sharing similar features or characteristics. The platform is planned to be presented to the public utilising the central computer server of the Laboratory for Advanced Manufacturing Simulation and Robotics at UCD.
As part of the I-From Advanced Manufacturing Centre, it is also planned to provide further support for different AM manufacturing technologies that are of particular interest for research teams and the industry.
Funding: This publication has been supported in part by a research grant from Science Foundation Ireland (SFI) under Grant Number 16/RC/3872 and is co-funded under the European Regional Development Fund.

Conflicts of Interest:
The authors declare no conflict of interest.