## 2 Proposed Methodology
### 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.