## Materials and Methods
### Imaging Acquisition and Mesh Processing  
The proposed method relies on two types of software. The first steps of the process are accomplished by mesh manipulation and mesh repairing software: InVesalius 3.1, MeshLab 2016, Blender 2.79. The final step is performed through the slicing software, Ultimaker  
Figure 1: Computed Tomography (CT) conversion workflow. to set up the printing parameters. Preoperative computed tomographic data with a section width of 0.6-1 mm were accessed in a standard digital imaging and communications in medicine (DICOM) format. To produce our own model, each DICOM file was imported to imaging software (InVesalius 3.1) and rendered to generate virtual reconstructions of the selected structures. Importing DICOM images, InVesalius allows to visualize the internal structures of interest in the three main axes of the human body: the axial, sagittal, and coronal orientations. Setting different density values, the software permits to highlight specific regions and to generate the 3D model of the selected area, eliminating unnecessary anatomical parts. The image segmentation process arranges the scanned volume into non-overlapping, connected, and homogeneous regions. Segmentation procedure can be manual, where the outlines of the selected image portion are manually adjusted on the display; or automatic, in which the algorithm automatically divides the image into predefined regions that show similar characteristics within these areas. We adopted a semi-automatic approach, since a manual approach is hardly compatible with the number of images to be processed, but an automatic segmentation systems may not guarantee the generation of a 3D printable volume (Figures 2 and 3). The surface created with InVesalius was exported in \"standard triangulation language\" (.stl) format, a standard 3D printing format. Then it was repaired and simplified using MeshLab 2016, an open-source software of mesh processing. The main purpose of this software is the mesh repair, by eliminating the mesh irregularities and errors derived from the image segmentation of InVesalius. This is possible with various types of automatic and semi-manual tools. Automatic mesh cleaning  
Figure 3: Holes in the mesh of the femur in the medial epicondyle area. Figure 2: Segmentation errors in the medial epicondyle of a femur. filters include the removal of the \"orphaned\" triangles (vertices and edges situated in the model's internal cavity, unattached to the rest of the object) through the \"Ambient Occlusion\" filter. Ambient Occlusion is a shading and rendering technique used to calculate how exposed each point in a scene is to ambient lighting. Ambient occlusion can be seen as an accessibility value that is calculated for each surface point. This function simulates a diffused global illumination throwing rays from every visible point and calculating how many of these actually reach the \"sky\" (considered as the light source) and how many instead are obstructed. The result is a diffuse, non-directional shading effect that casts no clear shadows but that darkens enclosed areas. As a result, the object is illuminated externally, while internal vertices and faces are darkened. Hence can be easily selected and eliminated, by applying a vertex quality selection (Figure 4). Setting the Min Quality Value = 0, we can select all the internal vertices, edges, and faces. The Max Quality Value need to be very close to the Min Value in order to avoid the elimination of external mesh portions. The mesh exported from MeshLab is a hollow three-dimensional model, not yet ready for 3D printing. It is necessary to fill holes and smooth the surface. Then, the 3D model is divided in multiple parts for two reasons. First of all, the 3D model requires a flat bottom area to have a better platform adherence during the 3D printing phase. Secondly, very large bones can exceed the building volume. We used Blender to optimize our mesh, by filling holes, smoothing the surface, and cutting the 3D model.