Knowledge-based manufacturability assessment for optimization of additive manufacturing processes based on automated feature recognition from CAD models

Additive manufacturing (AM) is a significant development of the manufacturing sector that has emerged during the last decades and tends to change the way products are designed, manufactured, and repaired, enabling unprecedented flexibility levels. The unique process mechanism of AM enables the realization of complex designs after considering design limitations, which are unique to each process mechanism and machine. These limitations, together with the lack of established AM-related knowledge, lead to the design of parts that are not fully conforming with AM buildability restrictions, resulting in failed builds. To this end, this work presents a methodology that enables to embed the AM-related knowledge and use it for an automated manufacturability assessment. The 3D model of a part is used as an input in an.stp format, and the features that are relevant for AM manufacturability are recognized from the global CAD. Then, an analysis of the manufacturability of these features according to the limitations of the process and/or machine is performed, and design changes are suggested to the user aiming to improve the process outputs. The whole methodology is implemented in a software tool with an intuitive user-interface that supports the users in the design of parts that will be made with additive manufacturing.


Introduction
Additive manufacturing (AM) is one of the most groundbreaking developments of the manufacturing industry that has emerged in the last two decades. The unique value proposition of AM lies on the great flexibility that it can offer, which is one of the key traits that a manufacturing system must possess [1]. As a result, AM is an ever-increasing market that is getting a wider industrial acceptance each consecutive year [2].
AM provides an unparalleled design freedom, enabling the fabrication of very complex geometries, integration of assemblies into a single part, and use of tailored materials, with exceptional resource efficiency [3]. However, this design freedom is bound by specific limitations of each AM process, which stem from the physical mechanism that governs it, as well as the layer-by-layer approach that is common for every AM process [4]. To this end, a design for AM mentality should be employed [5], along with the shape optimization of the part [6] to ensure the manufacturability of the design. The manufacturability can be studied in terms of structural-intrinsic defects [7] and in terms of shape defectsgeometrical accuracy [8].
Manufacturability of an AM part should not be perceived as a binary state where a feature is either manufacturable or not. The knowledge that is acquired from the manufacturing process through monitoring, metrology, material testing, etc. should be integrated in the manufacturability assessment, leading to the development of metrics/thresholds that indicate if a part worth to be made as is or modifications are required [9]. This way, manufacturability can be quantified as a function of how close the part was fabricated compared to the reference model, in terms of geometrical accuracy [4], structural integrity [10], etc. [6] while also considering the process efficiency and sustainability as well as the final cost of the part [11].
In order to facilitate such an approach, it is crucial to map the geometrical features of a part that are of interest for manufacturability assessment of AM and develop standardized methods to quantify their manufacturability.
To this end, this paper proposes a methodology for the assessment of AM manufacturability, through automated recognition of features that are of interest for AM manufacturability from the original CAD of the part and through the use of previously established process knowledge, which can be acquired in a standardized manner. The whole methodology is implemented in a software tool that can aid engineers in the evaluation of their designs, leading to optimized process outputs after the conduction of a minimum number of test prints. Through this work, the manufacturability limits of each machine can be extracted, that is of utmost importance for ΑΜ machines especially for metal AM processes which mostly deliver functional parts, where the dimensional accuracy needs to be always between the desired tolerances.

Manufacturability assessment for AM
A number of different approaches have been published in the scientific literature for the AM manufacturability assessment of specific designs. Shi et al. [12] have proposed a feature-based method that takes as input the CAD file in.stl format and uses heat kernel signature to identify geometric features and manufacturing constraints to analyze the manufacturability of AM parts. Rudolph and Emmelmann [13] have also utilized the.stl format of the CAD file to evaluate the manufacturability of a design by cross-checking the part dimensions, wall thicknesses, gap dimensions, cylinder, and borehole diameters with experimentally defined hard limits. Mayerhofer et al. [14] have presented a knowledge-driven framework for manufacturability evaluation in AM based on ontologies. Ontologies were used to capture the knowledge and design guidelines for AM, and an analyzer of the. stl format of the CAD was utilized to extract the features that are relevant for AM manufacturability. Budinoff [15] has developed a tool for geometric analysis and manufacturability assessment of parts for polymer AM. Several aspects, such as overhanging geometries, tipping, and warping of the part and surface roughness, were considered in the analysis, as well as the effect of build orientation selection on these aspects. Tedia and Williams [16] have transformed the.stl file of the design into a voxel representation, through which the minimum feature size, support material, orientation, and manufacturing time were evaluated for the manufacturability assessment.
The majority of researchers have utilized the.stl format of the CAD model to perform the feature recognition and manufacturability assessment, which is logical, since this format is interwoven with the AM process. However, the quality of the polygonal mesh of the.stl file is subject to a lot of potential errors, such as poor resolution, flipped normals, intersecting facets, and non-manifold surfaces. The elimination of such error relies heavily to the expertise of the user in mesh repair. To this end, this work proposes a methodology for feature recognition from the.stp format of the 3D model of the part. The.stp format is a standardized neutral format with a guaranteed consistent quality regardless of the CAD software where the part is designed. Moreover, the.stp format preserves full topological and geometrical information of every CAD feature and enables the accurate representation of very complex geometries with B-Spline surfaces, thus facilitating the geometrical analysis of the part.

Feature extraction from .stp files
Although the.stp format of the CAD files has not been widely used for the manufacturability assessment of AM parts, there have been several approaches presented in literature regarding feature recognition from.stp files. Usually, the focus of those works is related to computer-aided manufacturing (CAM) and computer-aided process planning (CAPP) tasks, where individual parts or even entire assemblies are examined.
Malleswari et al. [17] have presented a Java application for the recognition of cylindrical (through and blind holes, cross holes) and planar features for parts that were manufactured through turning. In a similar fashion, Al-wswasi and Ivanov [18] have developed an application in C#, where apart from cylindrical and planar surfaces, also tapered and toroidal surfaces were recognized, as well as their convexity or concavity. However, in both cases, the work of the researchers was limited to axisymmetric parts.
Other works have been dedicated to feature recognition in prismatic parts for machining processes. Reddy and Poornachandra [19] have developed a tool for recognition of machining features from.stp files. The tool was able to recognize holes (through and blind), step holes, obround curves, slots, and pockets and communicate them to the user via a visual interface.
Apart from CAM, several works have developed feature recognition systems for CAPP tasks. Zhang et al. [20] developed a rule engine to identify engineering features from the data contained in the.stp file. The tool used the Open CasCade geometry engine to reconstruct the geometrical and topological information that are contained in the.stp file and used a set of "if-then" rules to classify the geometries into pre-defined features. Piseç et al. [21] have developed a feature recognition system for the recognition of machining features in "L-block" shaped parts. The system was able to recognize holes and machined faces and provide information regarding their geometry and topology.
Adjacency graphs have also been a very popular methodology for the recognition of engineering features from. stp files. Adjacency graphs enable to find the relationships among the different faces of parts and assemblies, since neighboring faces will share an edge. Ketal and Haleel [22] developed a tool that used attribute adjacency graphs (AAGs) to recognize form features from.stp files and a rule engine to recognize assembly features, as well as the mating relations (against, fit, insert, etc.) of those assembly features. Zhang et al. [23] used face adjacency graphs (FAGs) derived from the B-Rep part model description that is contained in the.stp file to recognize mating surfaces in assembly models. Apart from the B-Rep segmentation, Lambourne et al. [24] investigated different approaches for feature recognition. Neural networks require the conversion of B-rep features to FAG with node features, arcs, edges, and faces to be extracted from B-Rep; however, the increased computational power and time make this approach feasible for a small part of B-Rep [25]. In addition, the applicability of voxels in critical feature detection is studied. However, the information that can be contained in a voxel may cannot apply to cases where very small features are detected due to the excessive computational time that could be needed to process voxels of very small size in cases where the part is considerably large [26]. The issue of processing time and feasibility in small features is also applicable in point clouds [27]; usually a significant number of points are required to be sampled from the objects' surface. To this end, small areas of faces can be represented under-sampled and classified incorrectly. Moreover, Derek et al. [28] mention that regardless of the simplicity of the methods that rely on triangulation, it is preferable to work directly on the body faces. High-quality meshes require special meshing procedures. Finally, Lee and Kunwoo [29] identified the applicability of B-rep in complex 2D, 3D shapes, and the division of bodies into faces, edges, loops, coedges, and vertices, while they provide detail information on how these features are combined to represent the initial body. The.stp format utilizes the same representation methodology for the detection of unknown geometries which do not belong to known geometries.
However, none of the works that were examined in literature, apart from B-rep which is part of the.stp format, have tried to combine the information and reconstruct the closed shell feature, identifying intersecting points between bodies, and examine the manufacturability based on the detected features.

Approach and methodology
The improved accuracy of the.stp format compared to the. stl format as well as the study of features that do not belong on the classified features (e.g., cylinders and spheres) and the full reconstruction of the part so as to study the way that each body (classified or non-classified) is attached to the other, extracting also the critical conditions based on design for AM guidelines, consist the main advantages of the approach that is presented on the following paragraphs. The flowchart of the proposed methodology is depicted in Fig. 1.

The.stp neutral format
The official title of the.stp neutral format is "Automation systems and integration-Product data representation and exchange" which is also known as "STEP" that stands for "Standard for the Exchange of Product model data." The information that is related to the STEP products has been structured following the ISO10303 standard and different protocols which are available in STEP format. An.stp file always begins with the keyword "ISO-10303-21" and ends with the keyword "END-ISO-10303-21" [14][15][16]. Between these keywords, the main part of the file is contained, divided in two sections: (a) the "header section" where non-technical details about the part are given such as file description, file name, and file population which describes how many different parts are found inside this file; and (b) the "data section" which is the core of the file, incorporating all the geometrical details of the part (coordinates of points, direction of deployment, global and local coordinate system, etc.) [30].
The STEP format provides a very coherent data structure (as depicted in Fig. 2), as well as several benefits that arise from the extraction of information from this file. To this end, it was considered that the STEP format is the proper input for the development of the software tool for the manufacturability analysis compared to the other data structures that have been presented in Sect. 2. Some of the key points of.stp file are listed below.
1. It contains specific information for each classified geometrical feature (toroidal surface, spherical surface, ellipse, circle, etc.). Other formats contain only the coordinates of the points, and the reverse work has to be done in order to identify the feature that is described from a set of data points [31]. To this end, the easy representation of a feature in the global and local coordinate system and the connection with other features are enabled. 2. There are rules that determine whether a point is part of an internal or external volume. That facilitates the clas- sification of a cylindrical surface, as part of a hole or an external cylinder. These rules can be also used to identify pockets, etc. 3. The direction of deployment is known for each surface, for each feature and for each volume. Features that are vertical or horizontal or with an angle to the desired build axis are located easily, hence facilitating the identification of overhanging geometries. 4. It contains specific information that refers to the geometrical characteristics of the part which are connected via a self-explanatory diagram (Fig. 2), facilitating the extraction of useful information. 5. The dimensions of each feature are obtained directly from its definition, increasing the dimensional accuracy which is critical information when the critical condition of minimum acceptable feature has to be evaluated. On the other hand, in.stl files, the reconstructed feature dimensional accuracy depends on the quality of the triangulation and the related mesh. Table 1 contains a brief description of each element of the.stp file structure, which is depicted in Fig. 2.
Based on the hierarchy that is described in Fig. 2, several key elements of the.stp file can be extracted ( Fig. 3) accompanied by their definition, based on the work of Pisec et al. [21]. Each closed shell contains several advanced faces which contain information for the type of face (face bound or face outer bound) and the geometry of the face. The faces guide to edge loops and then to oriented edges. The next geometrical feature is the edge curve which leads to vertex points based on the geometry that this face refers (Fig. 4). The loop for each face of a shell ends when the vertex points and the geometry of this surface have been identified. On the other hand, the information that is depicted on the right-hand side of Fig. 2 gives the critical information for the studied feature-surface, such as the center of coordinate system and direction compared to the global coordinate system. By comparing the information from the left-hand side and from the right-hand side (topology), the full description of each face A Cartesian point that is located in the corner of a geometry, formed by the intersection of edges or faces Oriented edge A curve that belongs to the edges of the object; it is defined by its vertices and direction, as well as its shape (line, circle, ellipse, B-spline) Edge loop A closed path that is formed by joining a set of oriented edges Face outer bound/face bound An edge loop is used for bounding a face. The face outer bound represents a loop of points that determine the face externally whereas face bound represents a loop that determine the face internally Advanced face The general definition of a face that represents a type of surface Closed shell A group of one or more faces which forms a manifold surface

Fig. 3
Workflow for manufacturability analysis can be acquired. During this effort, there are some challenges that have to be addressed in order to identify internal and external geometries/features.

Extraction of fundamental information from the .stp file
The fundamental information is extracted by identifying the vertex points of the face bounds and the points of face outer bounds. When a vertex point is identified in face bound and face outer bound, then it is an internal point which means that a an internal geometry is observed. When a point is identified only on the face outer bound, it is an external point of a geometry. In addition, the internal points of a plane are not mentioned, apart from the points that are in contact with other planes, geometries, and features. The connection of vertex points that do not belong to a classified geometry are connected with straight lines; in any other case, the definition of the B-spline curve with knots will provide the desired information, in order to connect the vertex points of a plane.
Other important rules denote that all the classified features are described with vertex points that are found for different values of the local X-axis (in the local coordinate system of the feature, the relation of which to the global coordinate system of the part is provided in the.stp file), while the values of the local Y-axis are the same each time. If vertex points are identified at the bottom or top surface of a body, then is shared by two different bodies. As an example, a cylinder with center O (20,7) and radius, R = 4.5, is described from vertex points, on top and bottom surfaces, which are found in positions (15.5,7), (24.5,7). If there are vertex points where the Y-axis value is different from the center of the circle, then the surface of the cylinder at the related height is in contact with another surface [30]. An example is depicted in Fig. 5 where the circle at the left-hand side, with radius, R = 2.5, which intersects a line at the top is described with more than two points {(12.5, 0), (17.5, 0), (17.21, 1.17), (17.21, -1.17 For that reason, it is important to start by gathering all the information that is related to a unique face separately and then try to combine the faces that refer to classified features. Each fully described feature can be called as a body. It is important to mention that each classified body is produced by joining two faces where different edge loops belong. The definition of the various.stp elements is depicted in Fig. 4, where one can observe that at least two faces are needed to form a unique surface. After describing the workflow that is required to store all the information, starting from the closed shell up to the vertex points, it is evident that the flow of information that is described in Fig. 2 provides a clear overview, in order to extract the information in a meaningful way and correlate this information with the visualization of Fig. 4. The acquisition of the information that is available in every.stp file is the first step of the methodology that is described in the present work. The next steps are the characterization of internal and external volume, the connection of faces so as to create bodies and connect them, the manufacturability assessment based on the critical thresholds that will be described later, and finally the visualization of the results with a clear and intuitive way (Fig. 3).
The critical conditions that are evaluated during the fourth step are (a) bridges, (b) overhangs, (c) walls, (d) aspect ratio, (e) holes, (f) minimum features size, and (g) unsupported area of a body. These features have received great interest in the available literature [4,5], especially for 3-axis AM machines tools. When more than three axes are available (e.g., rotating build platform), the manufacturability limits differ since the additional degrees of freedom offer higher flexibility in terms of the buildable features. Although it is more common to find AM machines that work in 5 axes, especially in metal AM, so as to deposit material vertically on the build plate, there are few cases where the path planning strategy needs to be developed in 3 axes to avoid collision between existing features and the deposition head. This strategy is common in repair processes, where there are existing features as well as when the different features are developed in a specific order for optimized process in terms of resources and thermal stresses-heat accumulation. To this end, all the critical features will be studied, irrespective of the working axes. Apart from cylindrical surfaces, the.stp structure contains information that facilitate the definition of other geometries such as spheres, conical shapes, and Bearing in mind the definition of each of these features as well as that at least two advanced faces of the closed shell are needed to fully define geometry, each one of the geometries can be extracted alongside with their critical information.

Extraction of critical features from .stp file
The critical condition for each geometry that has been mentioned in the last paragraph is determined by identifying the source of buildability issue. As an example, for overhangs and bridges, the main issue is the deposition of material on areas where there is no other material to support the underdevelopment structure. To this end, the gravity force leads to huge distortion that sometimes may lead to breakage. Thus, by identifying the starting and end vertex point of all the bodies, the model can evaluate if each body is in touch, totally or partially, with other bodies either at the starting plane or at the end plane.
As it has been pointed out in Fig. 4, when a geometry/ body intersects edges or faces, the Cartesian points of the section are included on the vertex points of the intersected bodies. To this end, the vertex points table of each body includes all the necessary information to fully define the coordinates of the body across the height. The vertex points and the Cartesian points that determine a body are identified at the edge loop of each face of the closed shell. If the points refer only to the bottom and top surface of the part, then the body cannot be in touch with any other body across the height apart from the plane where the vertex points are located. Figure 6 includes both bridge and overhangs. For each body, the vertex points that determine the body are included between the constraint lines. As it can be observed for this case, the Cartesian points at the edge of the bodies are more than enough to determine the limits of the body.
For each separate body or combination of bodies, specific rules apply enabling the identification of manufacturability limits. The preparatory work for all the bodies includes the following steps. First of all, it is important to group all the information of the vertex points from each individual body, based on the distance from the build platform. To do that, it is important to define the build direction. Later, by combining all the vertex points that are at the same distance from the build plate in the height direction and by investigating which of these points belong to standalone features and internal geometries, the vertex points that belong to unclassified features are found. Unclassified features are the geometries that are formed from different bodies, and they do not belong to one of the classified features as they are determined from.stp structure (see the right-hand side of Fig. 2). These geometries are characterized from their vertex points and the intersecting bodies.
The determination of bodies and geometries is very important for the extraction of critical geometries and the manufacturability constraints. These features are found hereafter. The most complex conditions that need to be detected are the overhangs and bridges since they rely on the intersection of bodies and the examination of rules that rely on DfAM guidelines.

Bridges-overhangs-unsupported areas
A body that activates this condition is formed from Cartesian points across the height that is not in contact with other bodies which they also belong to the same line, circle, ellipse, or B-spline. A typical and simple example is found in Figs. 6 and 7 where the top face of both non-classified bodies are found alone, without any other intersecting body. The same rule is true for planar overhangs and nonplanar geometries that are represented with B-splines. The overhangs are distinguished from bridges by considering that the first is a geometry with only one body (Fig. 7) or a combination of bodies with common vertex points without any other intersection across the height. Bridges are determined as a combination of three (at least) different bodies with common vertex points that depict the end of the one body and the beginning of the next body. At the simple case that   Figs. 7 and 8, there are three (3) different bodies that form a bridge; the middle body (body 2) has four common vertex points with the vertical bodies in each side (bodies 1, 3), while the vertical bodies have also 4 vertex points with the rest of the part (Fig. 8).
Although a body or a sequence of bodies can be determined as bridges or overhangs, it is important to measure critical condition with the other bodies on the borders. For both overhangs and bodies 1, 3 of bridges, it is crucial to calculate the angle with the plane which is parallel to the build platform, in order to compare it with the manufacturability threshold that has been obtained from the experimental work. For bridges, the length of body 2 is critical as it characterizes the bridge length, which determines if a bridge is manufacturable with or without supports. Finally, the distance between the coordinates of the circled Cartesian points will indicate if the critical condition has been activated.
Last but not least, if a body is developed in a direction, which is perpendicular to the build direction, then it is characterized as an unsupported body, while the same happens for a body that is partially supported (see Fig. 5, circle R2.5) which means that some of the Cartesian points of the circle are identified in areas where there is no other body below to support the structure. The direction of deployment for each body is obtained from information that is enclosed in Direction, XDirection of the.stp file (see Fig. 2). Figure 5 gives a clear view of how the wall feature can be recognized. To begin with, the included terms are identified with similar way as the main restriction refers to the distance between consecutive tracks or the distance between Cartesian points of the same layer. The AM process mechanism indicates the minimum distance considering the nozzle size, the laser spot size, the wire size, etc. Thus, the minimum feature size can be considered equal to the laser spot size and the nozzle diameter, as a preliminary rule of thumb, while single track experiments can indicate the true value of the track width for a specific process/machine combination [33]. If there are Cartesian points of different bodies or within the same body with distance in a plane parallel to the build platform less than the minimum size, then the included features are not manufacturable, or there is significant possibility the two separate lines to get in touch. As an example, the circled area in Fig. 5 is considered as a critical condition between the hole and the nearby line may come considerably close. For this example, all the points of the circle have to be found across the height of the hole and check if any other body is in a distance less than the threshold.

Aspect ratio
The height of a feature (single wall, cylinder, etc.) is also a critical information for stability and distortion reasons. This information has to be combined with the thickness and the diameter of the feature so as to define the aspect ratio that is considered acceptable for each process mechanism, machine, and material. For the standalone features (cylinders, etc.), the.stp file contains all the information to fully define the top and bottom surface of the body. To this end, both the wall thickness, the diameter, and the height are known. For walls that arise from non-standalone features, it is important to create a feature by combining different bodies and then identify the thickness of this body and the minimum distance between all the different bodies/geometries of a 3D model (Fig. 5).

Holes-cylinders
In the.stp file, a cylinder is determined with its center and radius (see Fig. 5) as well as with its direction of deployment in local and global coordinate system. As it described in Fig. 9, a cylinder is determined by combining Fig. 9 Implementation in MATLAB the information from two different edge loops which indicate same radius, center, direction of deployment, two common vertex points, and two anti-diametrical Cartesian points. By taking advantage of the information that is enclosed to face bounds and face outer bounds, the bodies are characterized as holes and cylinders as well as thin wall cylinders. The difference of radius characterizes the wall thickness.
From the aforementioned, it is extracted that is of utmost importance to fully define the bodies and their intersecting geometries so as to proceed to manufacturability analysis. For each analysis, the user uploads the 3D CAD in.stp format and fills in the values of the critical conditions/thresholds as well as the desired build direction. The output of the developed software tool gives indication about possible manufacturability issues. The manufacturability evaluation considers thresholds that are related to the material properties and machine specifications and indicates the range of values that are appropriate for the successful build of the included bodies. The procedure to obtain these thresholds is described in Sect. 4.1.
Since the overhangs and bridges can take very complex and difficult shape, significant work is required to ensure the proper operation of a tool in all the different conditions. The complexity is also raised when open infil geometries are identified. Table 2 gathers all the rules that are used for the detection of the critical features in the current version of the software tool.

Implementation and case study
The presented workflow has been implemented in MAT-LAB, aiming to create a structured model taking advantage of the "struct" functionality of MATLAB [34], in order to create structures, where all the information will be gathered at first for each face separately, then for each body separately, and finally for all the bodies, representing all the features of the part. Apart from the classified features there are too many shapes that do not belong to a specified shape. To this end, all the information that refer to the same axis is gathered based on the selected build direction. Finally, all the vertex points that refer to the same height but for non-classified bodies are gathered, in order to be connected with the classified bodies or other unclassified bodies, which are found on the same heights and create the final body.
For each height, it is important to know the coordinates (based on the global coordinate system) that determine the limits of the body in the X, Y direction (we assume the Z direction as the build direction) so as to investigate the connection with the lower and/or upper faces. Overall, for each body, all the vertex points of the upper and lower surface must be known so as to investigate possible manufacturability issues of the different features.

Standardized protocol to calibrate the tool
The design that is used as test artifact is related only to the capabilities of the machine to create different features alongside with the accuracy that these features can be built. According to [35], the main purpose of a test artifact is to quantitatively evaluate the potentials and the performance of a system. Individual and different systems that are capable to produce the same standard artifact can be easily compared by standard artifacts. Additionally, considering proper design, the standard test artifact can be used to evaluate the capabilities of the system. The standard test artifact is proposed as a mean for performance verification between system users and vendors and offers a platform for vendors to demonstrate the improved potential of their AM systems. According to literature [35], the test artifact should be created several times (10-15) so as to evaluate the capabilities of the machine to give the same outputs when the process inputs are the same. In industrial scenarios, the repeatability of a process is of utmost importance. Based on the same source, the test artifacts for AM processes should: • Be large enough to evaluate and demonstrate the performance of the system near the edges of the build platform as well as near the center. In this case, three single wall structures are proposed that are developed between the limits of the building platform. The one structure is developed at the middle of the table while the other two at the back/front side of the platform. This feature is tested separately from the following points. • Have a significant number of features of different sizes (small, medium, and large features). • Have holes and bosses of different diameter and wall thickness to aid in verifying the actual size of the molten material and compensate during the slicing process. • Not take significant time to build. • Not spend significant resources. • Contain surfaces that can be easily measured. • Include many features of possible "real "parts (thin walls, flat surfaces, holes). • Include simple and classified geometrical features, allowing clear definition and easy control of the under-development geometrical feature. • Require no support structures and post-treatment. • Allow and facilitate repeatability measurements (in cases where the material is flexible, different criteria should be considered). • Separate features that maybe stop the process (bridges where the length is large may not be fulfilled leading to Table 2 Critical feature extraction and manufacturability evaluation Critical feature

Feature extraction rules
Rules for manufacturability evaluation Bridges At least one unsupported body/ geometry with vertex points that intersects geometries/bodies that contain vertex points on a supported geometry Calculate the distance between the vertex points of a body (body 2, Fig. 8) that intersects geometries that are fully supported in the direction that is parallel to the ground Overhangs Identify at least two vertex points with a supported body/geometry. These vertex points should be part of a body with Cartesian points that do not intersect any other body/geometry and they should belong to edge loops that can form different geometries such as lines, circles, ellipse, and B-splines For this study, the NIST (National Institute of Standards and Technology) artifact has been adopted and modified accordingly in order to investigate the manufacturability of features from different AM processes [36]. The manufacturability limits depend on the process mechanism and materials and should not depend on the process parameters. We consider that the basics of design for AM are followed as described in [3][4][5][6]. The design of the part and the actual part are found accordingly in Fig. 10. For this study, the test artifacts have been produced in FDM printer due to the ease of developing parts with this process, while it is a resource-efficient process. The same methodology applies also on different AM processes.
The steps that are required in order to extract the manufacturability thresholds are listed below: • Measure the overall dimensions of the part. • Check the parallelism of the different sides across the length. • Measure the wall of each cube and determine the lower acceptable limit as well as how the accuracy changes when the wall thickness increases. Compare this value with the laser spot size or with the nozzle size. • Measure the diameter of holes and determine the lower acceptable limit as well as how the accuracy changes when the diameter increases. • Measure the diameter of cylinders and determine the lower acceptable limit as well as how the accuracy change when the diameter increases.
• Find out the angle where the surface or the geometrical accuracy of the overhangs are not acceptable. • Find out the maximum length that bridges can be developed without support structures.
A test procedure in order to measure the manufacturability thresholds should be proposed considering the accuracy of the measuring device and the application of the final part. At first, the accuracy of the measuring device needs to be established so as to investigate the accuracy of each measurement. The measurement should be repeated almost 20 times so as to identify the precision of measurements. The standard deviation of all the values and the mean value of the measurements characterize the output of the metrology phase. A confidence factor is also considered for each measurement which depends on the human factor and the working condition of the measuring device.
In addition, factors that can affect the measurements should be also considered. As an example, the part temperature or the ambient temperature should vary in a realistic range. If temperature impacts the result and the operating temperature of the part varies, then the measuring process should be made in different temperatures. The same should happen with factors such as humidity and water. There is a variety of industrial standards for measurements with different devices; however, Part 2.1 of VDI/VDE 2630 or ISO17025 have been developed for users of industrial computed tomography (CT) scan systems, while the standard 9001 determine the accuracy of measurements with CMM and vernier caliper. For 3D scanning, a similar standard is not available due to the dependency of the measuring process on the mounting of the device, handheld or tripod mounted, scanning angle and scanning method, reflectivity of the surface, and complexity of the environment where the scanning process takes place. Finally, the accuracy of the aforementioned devices varies between 0.001 − 0.2mm for displacement measurement and 0.001 − 0.2deg for rotational measurements.
By developing the same part with different process parameters and with the same material, a better understanding of the thresholds can be obtained. This knowledge is integrated on the model in the form of thresholds in order to evaluate the manufacturability of different features. It is important to conduct the same experimental work for different AM machines from the same process family because the machine specifications or the material properties may affect the final thresholds. With increasing number of experiments for different combinations of inputs, mathematical models can be used so as to create a map of the effect of process inputs on process outputs, generating knowledge for the process that can be used with the proper input from the tool.

Results and discussion
As it has been mentioned previously, the tool has been developed and tested in MATLAB. For this purpose, different designs have been tested to point out that this tool is capable to read.stp files with different features and take advantage of the information that is available from the.stp file. Complex features are included so as to point out the capabilities of this tool (Fig. 11), while in Fig. 11b, a test artifact that is used widely in FDM processes for machine calibration and detection of manufacturability limits is depicted. The 3D CAD of the designs that have been tested is depicted in Fig. 11.
By evaluating the performance and the functionalities of the tool for the different designs, it seems that this tool works fine with parts that are designed to have flat bottom side or more precisely that they do not need support structures for the feature that touch the build plate. The user should select the build direction in a way so as to maintain the minimum support structures (Fig. 11b). The thresholds that have been used for the aforementioned examples are indicative in order to point out that the tool works as intended and identify critical conditions within a given.stp file. In addition, for better interaction between the user and the tool, apart from the warning messages, visualization with different colors is provided in order to distinguish the parts where manufacturability issues have been detected. An intuitive user interface has also been developed to facilitate the interaction with the user. The user fills in the critical dimensions and the software tool returns the 3D plot of the part with red and blue colors. In addition, pop up messages inform the user about possible issues as it can be seen in Fig. 12. Each message is followed by a description of the problem.
For the visualization of the manufacturability issues, red color is used where a manufacturability issue has been detected, while blue is suggested for the rest of the part which is manufacturable. Two different views of the part are depicted based on the selected build direction so as to provide a total overview of the issue (Fig. 13). In Fig. 13a, the 3D model has been tested that is depicted in Fig. 11a, while in Fig. 13b, the model that is depicted in Fig. 11b has been tested, and manufacturability issues have been identified considering an overhang angle that is not manufacturable and bridge that overcomes the acceptable limit.
For the experimental validation of the tool, one of the demo parts has been manufactured to compare the predicted results with the actual part geometry. The part that has been manufactured is the, so-called, 3D Benchy, which is a popular benchmark component for FDM machines. The manufacturability issues have been also detected on the actual part that has been previously examined in Fig. 13b and manufactured with FDM process as it can be seen in Fig. 14. It can be observed that the predicted results from the proposed tool are very well aligned with the actual manufacturability issues that the part exhibits, specifically the following: 1. The overhanging geometry at the hull of the ship has been poorly printed and a layer shifting effect is observed. 2. The bridge geometry at the door of the ship's cabin is poorly printed, due to excessive bridge length. 3. The overhanging geometry at the top of the ship's cabin is poorly printed, due to excessive overhang length. 4. The horizontal holes (which are one of the challenging features of this part) are very finely printed, as predicted by the proposed tool.

Conclusions
This work presents a software tool for manufacturability analysis, which takes as input the 3D CAD model in.stp format enabling the detection of non-manufacturable features and critical conditions for specific materials, process mechanisms, and AM machines. The test artifact for the threshold extraction ensures the applicability of the present tool in several AM process families and materials. The utilization of.stp format improves the accuracy of the evaluation while guarantee consistent outputs irrespective of CAD design software, pointing out that is a very promising input format for AM process. As future work, this tool can be improved by integrating the distortion map based on the dimensions of the features and the selected material while detecting also features from the path planning trajectories which is applicable for machines that operate in more than 3 axes. Although these machines do not face the same manufacturability risks, sometimes path planning adjustments or design modifications are required, in case a critical aspect ratio or a minimum wall thickness has been detected. Funding This paper is partially supported by European Union's Horizon 2020 research and innovation programme under the INTE-GRADDE (Intelligent data-driven pipeline for the manufacturing of certified metal parts through Direct Energy Deposition processes) project www. integ radde proje ct. eu/, grant agreement no. 820776d.

Availability of data and material Not applicable.
Code availability Not applicable.

Declarations
Ethics approval The authors respect the ethical guidelines of the journal.

Consent to participate Not applicable.
Consent for publication Not applicable.

Conflicts of interest
The authors declare no competing interests.

Fig. 14 Manufacturability evaluation on an actual part and validation of algorithms
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http:// creat iveco mmons. org/ licen ses/ by/4. 0/.