1 Introduction

Unlike conventional machining processes [1], 3D printing performs manufacturing using 3D computer-aided design (CAD) models by integrating together materials such as polymer, plastic, and metal powder [2, 3] to create a 3D object. This printing technology is advantageous over conventional manufacturing in the production of small amounts of parts having complex shapes. Therefore, 3D printing has been widely applied to various fields such as automobile, aircraft, armament, healthcare, fashion, and construction.

In addition to manufacturing, 3D printing can be used for part maintenance. Specifically, 3D printing enables the production of replacements for damaged parts at any site without requiring complex manufacturing processes provided that a printer and the 3D CAD model of the part are available. In other cases, if special parts fail, it often takes a long time from order to delivery even if the part is in stock. In contrast, 3D printing allows the immediate and economical production of even complex parts. Moreover, parts comprising a product may be discontinued, but 3D printing can enable the continued availability of these parts. Finally, producing parts for products operating in extreme environments (e.g., polar regions or the ocean) can be achieved without securing additional inventory or highly skilled personnel.

However, as Louis et al. [4] reported, applying 3D printing to maintenance presents several problems regarding certification of the manufactured parts, security issues by transmission of the design model, training of operators for 3D printing and provision of related information, and intellectual property conflicts. To address the issue with skilled operators, Kim et al. [5] proposed an information retrieval and inspection framework based on a parts library to support the maintenance of parts using 3D printing. They repair parts by extracting the damaged parts and printing their replacements. However, they did not consider repairing partially damaged parts, thus discarding them regardless of the damage degree, which can cause a steep increase in the maintenance time and cost and undermine the advantages of 3D printing for maintenance.

To overcome this problem, a framework for repairing partially damaged or worn parts by using 3D printing is proposed in this paper. The proposed framework consists of three systems comprising 3D scanning, maintenance support, and 3D printing. In turn, the maintenance support system includes three modules. One module stores, manages, and provides the information required during maintenance, whereas another module enables the user to identify the damaged parts by searching the 3D parts catalog to retrieve the necessary information, and the third module detects the position and extent of the damage and determines the error of the repaired parts by 3D printing.

The remainder of the paper is organized as follows. In Sect. 2, related works are presented and discussed. In Sect. 3, the proposed framework for part maintenance based on 3D printing to repair partially damaged part is explained. Section 4 details the components of the proposed framework to conform a maintenance support system. Section 5 reports the implementation of a prototype maintenance support system and presents the discussion of experimental results about repairing the ball from a valve. Finally, conclusions and future work directions are represented in Sect. 6.

2 Related Work

Seven categories of 3D printing have been defined: binder jetting, directed energy deposition [6, 7], material extrusion, material jetting, powder-bed fusion, sheet lamination, and vat photo polymerization according to criteria such as application, material, and size [8, 9]. The available 3D CAD file formats for 3D printing are stereolithography (STL) [10], additive manufacturing format (AMF) [11] and 3D manufacturing format (3MF) [12, 13]. Tools to support the production of parts using 3D printing include visualization simulation of 3D printing process [14], verification of tool path [15], sectioning of 3D shape [16, 17], and quality assessment of 3D CAD models [18].

A parts library should consist of classification system, 3D parts catalog, database, and library management system [19]. The classification system provides a list of part types, the hierarchical relationship between types, and the properties of each type. The ISO 13584 parts library [20] and ISO 15926 process plants [21] provide the metadata structures required to define the classification system of parts in general machinery and process plants. The 3D parts catalogs are constructed in compliance with the classification system. The database stores both the part classification system and 3D parts catalog, and the library management system handles the catalogs generated according to the classification system and retrieves them as requested by users.

In addition, retrieval of 3D CAD models aims to return the most similar 3D CAD model by comparing search conditions provided by the user with the available models in a parts library [22]. The alternative shape similarity-based 3D CAD model retrieval compares shapes of models stored in a database with the shape provided by the user to determine the required model [23]. This type of retrieval method is classified into six categories according to shape descriptors [24] based on global features [25], manufacturing feature recognition [26], graph [27], 3D object recognition [28], histogram [29, 30], and product information [31]. Several databases including the Engineering Shape Benchmark [32] provide 3D CAD models that can be used as test cases for evaluating and comparing the performance of various shape retrieval methods. Recently, 3D model retrieval methods based on deep learning have been proposed [33, 34].

Registration is necessary to calculate the error between a point cloud and a 3D CAD model. One of the most widely used registration methods is the iterative closest point, whose early versions [35, 36] consider the point closest to a point set as corresponding points and determine a transformation matrix that minimizes the mean square of the distances among corresponding points. In addition, the mean square of the distance both from a point to the mesh plane [37] and by projecting a point to the camera direction for data collection [38, 39] have been used for registration. The error calculated during registration can be used as overall shape error between point clouds and corresponding 3D CAD models.

3 Maintenance Framework for Repairing Partially Damaged Parts

The proposed maintenance framework is intended to develop a system that supports the repairing of partially damaged parts using 3D printing. The framework also aims to provide the necessary technical aspects and information to enable users who are not familiar with 3D printing to efficiently perform maintenance. The proposed framework can be useful for platforms such as ships, armament, and offshore plants, and its application is especially useful when missions are performed far from land, communication is difficult, and the cost of returning to land for maintenance is high. Various parts can be produced using 3D printing with a relatively simple equipment and infrastructure provided that the required 3D CAD data is available. However, the need for a system that supports untrained users in 3D printing remains, as design/production experts are usually not residents in remote areas. Instead of remanufacturing the whole part, the proposed approach of utilizing 3D printing to repair damaged portions of a part helps to preserve the material stock and shorten the maintenance cycle. For repairing, however, users are generally required to have the knowledge to measure the position and extent of the damage. In contrast, the proposed support system based on the framework guides users throughout this maintenance process.

3.1 Repairing Procedure

A use case to identify the required technology and information for repairing partially damaged parts using 3D printing is defined, as illustrated in Fig. 1. The maintenance support system developed according to the proposed maintenance framework provides the information needed to repair partially damaged parts. A user is responsible for transferring data between the 3D scanning system for acquiring shape information and the 3D printing system for repairing parts.

Fig. 1
figure 1

Use case of maintenance procedure for repairing a partially damaged part using 3D printing

As mentioned above, the systems for repairing comprise 3D scanning, maintenance support, and 3D printing. For onsite part repairing using a 3D printer, the maintenance support system should allow onsite acquisition of design information from the damaged parts and provide printing-related information for repairing and post-repair inspection. In addition, this system should minimize requirements regarding user expertise and intervention. Therefore, 3D parts catalog retrieval is first required to obtain the information of a damaged part including its 3D CAD model. 3D part catalog has a set of data regarding to a part required for 3D printing. 3D part catalogs stored as a database and managed as a library. Second, damage detection is needed to identify the position and extent of the damage. Third, error measurement should determine whether the part has been properly repaired. The 3D printing system includes a 3D printer for repairing parts and a software for printer control. The 3D scanning system includes a 3D scanning device, a control software, and post-processing methods for the scan data to determine the shape of damaged and repaired parts.

Based on the use case, the maintenance processes are detailed as follows. When a part is damaged, acquisition of its 3D shape is first conducted in a process involving the user and 3D scanning system. The 3D shape of the damaged part is acquired as a point cloud and sent to the maintenance support system. As illustrated in Fig. 2, the user feeds the physical damaged part to the 3D scanning system, which scans the part to construct the corresponding point cloud. As illustrated in Fig. 2, the user feeds the physical damaged part to the 3D scanning system, which scans the part to construct the corresponding point cloud. Pre-machining is selectively performed by grinding, sanding or using sandpaper before part scanning, since irregular surface results inaccurate delta volume estimation. Detailed explanation about delta volume calculation is presented in Sect. 4.3.1. Given the scanning environment and geometrical characteristics of the part, the sufficient shape information may not be obtained through scanning. In this case, the user should selectively perform post-processing, which is repeatedly performed by modifying the acquisition parameters. As a result, improved point cloud data can be obtained for delivery to the maintenance support system.

Fig. 2
figure 2

Sequence diagram of 3D shape acquisition

The point cloud data delivered to the maintenance support system goes through the retrieval process illustrated in Fig. 3. The retrieval involves the user, the 3D parts catalog, and the retrieval and damage detection modules from the maintenance support system. The parts catalog is a database containing design information of the parts to be maintained, 3D printing-related information required for repairing, and post-repair inspection information. The point cloud corresponds to the shape data of the damaged part, which is different from the design data by the presence of damage. To maintain the part, it is necessary to determine its design information, which can be difficult if the damaged part is not identified. As part identification generally requires user expertise, the maintenance support system provides a retrieval module for simplifying this process. The shapes of the damaged part and part from the catalog are converted into descriptors. Then, the retrieval result is delivered to the user by filtering or listing the parts with high similarity calculated from the distance between descriptors. Once retrieval is complete, all the information of the identified part can be obtained from the catalog, and this information is handed over for subsequent damage detection.

Fig. 3
figure 3

Sequence diagram of part repairing

After part retrieval, damage detection determines the shape error (delta volume) through comparison between the scanning information and design shape of the damaged part, as illustrated in Fig. 4. To repair a damaged part, it is necessary to detect the position and extent of damage, which can be determined from the obtained delta volume. The difference between the acquired and design volumes indicates the extent of damage and is calculated in the damage detection module from the maintenance support system. The user receives the calculation result and hands over the delta volume and 3D parts catalog to the 3D printing system. Note that information related to 3D printing is included in the parts catalog, where the corresponding part is determined through part retrieval.

Fig. 4
figure 4

Sequence diagram of part retrieval

During part maintenance, the repair is carried out using the 3D printing system based on the delta volume and information from the 3D parts catalog, as shown in Fig. 5. First, the user provides the device parameters and build settings to the 3D printing system based on the related information included in the 3D parts catalog along with the delta volume. In the 3D printing system, tool path planning is first performed considering the provided information by the supporting software included in this system. Once tool path planning is completed, the 3D printing file containing the final printing configuration and conditions is set up for printing. As a result, the repaired printed part can be obtained and delivered to the 3D scanning system for final inspection. Before final inspection, post-machining is performed to remove undesired materials deposited in repaired part.

Fig. 5
figure 5

Sequence diagram of damage detection

Part inspection validates the repaired parts based on the tolerance established in the part design information. Tolerance is the acceptable error that ensures the functionality of the part and determines the suitability of the repaired part. Figure 6 illustrates the shape acquisition of the repaired part, which is the same as that of the damaged part, thus being another point cloud. Then, the error measurement module of the maintenance support system determines the error between the point cloud from the repaired part and the original design shape from the 3D parts catalog. Note that functionally critical positions are also available in the 3D parts catalog as measurement points with tolerances. After the error is measured, it is compared with the tolerance, and the result is indicated to the user. Based on this information, the user judges whether to perform part replacement in the target product or remanufacture the whole part.

Fig. 6
figure 6

Sequence diagram of part inspection

3.2 Maintenance Framework Structure

The proposed maintenance framework for repairing partially damaged part is based on the identified systems and technological components from the use case presented in Sect. 3.1, namely maintenance system and processes of shape information acquisition, part retrieval, damage detection, part repairing, and part inspection. The resulting framework is shown in Fig. 7. There are three components that constitute the framework: 3D scanning system, maintenance support system, and 3D printing system. Each system includes hardware and software components. The figure also illustrates the information flow between systems and type of transmitted data.

Fig. 7
figure 7

Maintenance framework for repairing partially damaged parts using 3D printing

First, the 3D scanning system acquires shape of a part. There are various types of 3D scanners such as optical, laser, and contact. The 3D scanner acquires shape information by sampling the surface of the object in three dimensions. The 3D scanning system in the proposed system consists of 3D scanner hardware, scanning support software, and post-processing software. Through the support software, the user can scan the parts, whose acquired information is transmitted to the maintenance support system after post-processing if necessary. XYZ format is selected to encode the point cloud, as it is the most basic format for storing raw scanning data.

The maintenance support system consists of a parts library management module that stores, manages and provides the required information during maintenance, a retrieval module that identifies the damaged parts by retrieving parts from the catalog, and a shape comparison module that detects the position and extent of damage and measures the error of the repaired part. In addition, a user interface shows the necessary information to the user, and data upload and download components perform operations for file-based data exchange between the 3D scanning and printing systems. STL format is adopted for delivering the part shape information to be printed on the 3D printing system. Other input information should be manually provided by the user.

The management module of the parts library in the maintenance support system consists of a 3D parts catalog database, part classification, and data management components. The 3D parts catalog database stores the design data and other required datasets for part maintenance. These datasets should include the information necessary for maintenance such as 3D printing conditions, tolerances, CAD model quality, and basic information of parts including functional and dimensional properties. The part classification component uses a standard classification system for efficient management and information retrieval from the parts catalog. Finally, the data management component allows data handling by accessing the 3D parts catalog database to perform tasks such as adding new parts or modifying stored data. More details on the management module of the parts library are provided in Sect. 4.1.

The retrieval module in the maintenance support system is the core for identifying the damaged parts and acquiring related data from the 3D parts catalog. Two approaches are provided to assist untrained users in the identification of damaged parts. If the user has some knowledge about the damaged part, a conventional keyword-based search can be used to retrieve the part data from information such as its name and dimensions. The user can then identify the damaged part from a list of filtered result. Otherwise, if the user has no prior knowledge about the part, a shape similarity approach can automatically retrieve the most similar parts in the database and then return the required information of the damaged part. More details on part retrieval are provided in Sect. 4.2.

In the maintenance support system, the shape comparison module is divided into damage detection module, which determines the position and extent (delta volume) of the damage from the part to be repaired by comparing the part to its original design, and an error measurement module, which compares the repaired part with the design shape for validation. Both modules register the scanned point cloud from damaged/repaired parts along with the design shape. The lost volume obtained from the damage detection module is converted into an STL file and transmitted to the 3D printing system. The errors obtained from the error measurement module are indicated to the user for a final decision considering the part tolerance. More details on the shape comparison module and its functionality are provided in Sect. 4.3.

Finally, the 3D printing system allows repairing the damaged parts by additive manufacturing on the affected area. Various approaches to 3D printing are available depending on the manufacturing processes and employed materials. The proposed 3D printing system consists of a 3D printer, control software, and tool path generation software. When the information of a part is available for determining the 3D printing conditions, the corresponding tool path is generated and the repairing printing initiates. Printing is monitored by the control software that commands the printer hardware. After the user obtains the repaired parts, inspection is performed to assess the repairment quality and remanufacture the whole part if the repair fails.

4 Maintenance Support System

4.1 Parts Library Management Module

The parts library management module handles 3D parts catalogs and part classification as illustrated in Fig. 8. The catalogs provide comprehensive information about the parts and include part property values, 3D CAD data, and inspection points. The part properties are related to function, 3D printing, maintenance, and CAD model quality. The 3D CAD data include design data in STEP format containing the 3D shape of the original design, 3D printing data in STL format, and shape descriptors. Part classification comprises the part types, tree-based hierarchy of types, list of properties and those belonging to each type, and measurement units. The part properties and their values are stored in the 3D parts catalogs according to part classification. Both catalogs and classification are stored in and retrieved from the database of the parts library management module via data management.

Fig. 8
figure 8

Parts library management module

A data model to store the part classification and 3D parts catalog data in the database is defined as shown in Fig. 9. Entity Class represents the part type, relationship parentClass establishes the hierarchy of types, whereas entity Property declares properties, and entity UnitOfMeasure specifies the measurement units. In addition, relationship hasPropertyOf represents the property list of each part type, and entity 3DPartCatalog represents the part data including property values via entity PropertyValue, 3D CAD data via entity FileSet, and measuring points via entity MeasuringPointSet. Part classification for maintenance provides properties for processes such as 3D printing, maintenance, and CAD model quality besides conventional functional properties. Therefore, entity Property has sub-entities FunctionalProperty, 3DPrintingProperty, MaintenanceProperty, and CADQualityProperty. Figure 10 depicts part classification for seals and valves according to the proposed data model. The superclass of BallValve is RotaryMotionValve with properties such as NominalDiameter, PowderMaterial, Minimum Tolerance, and Angle Tolerance, which are functional, 3D printing, maintenance, and CAD model quality properties, respectively.

Fig. 9
figure 9

Data model to store part classification and 3D parts catalogs

Fig. 10
figure 10

Part classification: part types and their properties

4.2 Retrieval Module

The retrieval module supports the accurate identification of damaged parts. For an untrained user to identify damaged parts, the proposed system framework includes two retrieval approaches, namely conventional keyword-based search and similarity-based retrieval. These approaches provide flexibility to the proposed maintenance system by allowing part retrieval based on the user’s prior knowledge and information that can be obtained from the damaged part. Among the approaches, shape similarity requires little prior knowledge but takes additional time to scan and retrieve the damaged parts, whereas the keyword-based search is efficient but requires prior knowledge about the part. The shape similarity-based approach takes an input part and searches for similar parts in the database. Similarity-based retrieval using view-based partial shape retrieval is adopted in our proposed framework which returns the most similar 3D models in the database by analyzing images. For our system, the performance of partial retrieval is higher than that of global retrieval given the difference between the shapes of the available design and damaged part. Moreover, the view-based approach that considers 3D geometries converted into 2D images instead of directly using the object 3D surface/point cloud information has recently shown improved performance and computational efficiency.

To apply view-based partial shape retrieval, a method to convert point cloud information into an image should be included in the proposed framework. The proposed view-based partial retrieval method illustrated in Fig. 11. Data on the XYZ format obtained from the 3D scanning system is the input, and the retrieval module conducts a five-step process to identify the part. First, to convert the point cloud into an image, the position and resolution of the virtual camera are determined to project the point cloud. The module determines the optimal viewpoint and resolution by calculating the area occupied by the projected point cloud and the density of the projected image. Then, the point cloud is rendered as a depth image based on the determined viewpoint and resolution. Key points are extracted from the rendered depth image, and feature descriptors of individual key points are calculated and represented as a single descriptor by using precomputed parameters. Therefore, a single descriptor, called query descriptor, represents the image from the point cloud. Finally, the retrieval result is determined by quantitatively comparing the descriptors in the database with the query descriptor. The descriptors in the database are generated like the query descriptor during construction of the 3D parts catalog but omitting the calculation of the optimal viewpoint and resolution, because surface information over every direction is available in the database. In addition, the depth image is rendered in several viewpoints around the object, and thus multiple descriptors are generated per part in the database. As database descriptors are related to the design and properties of each part, the user obtains this information corresponding to the damaged part.

Fig. 11
figure 11

Proposed view-based partial shape retrieval. GMM Gaussian mixture model

The implemented retrieval is based on Fisher vectors that provide similar accuracy as methods based on the widely used convolutional neural networks. The Fisher vector comprehensively encodes the key points and corresponding features obtained from the image into a single descriptor. Thus, the similarity between two images can be quantitatively determined from the distance between two descriptors. Unlike similar methods such as a bag of visual words and vectors of locally aggregated descriptors that also determine a single descriptor, Fisher vectors consider more characteristics from the feature distribution. In the proposed system, the parameters of the Gaussian mixture model calculated from the part features representing the Fisher vector in the database is stored and the query descriptor of a target part is generated by these parameters, as illustrated in Fig. 12.

Fig. 12
figure 12

Example of proposed view-based partial shape retrieval

4.3 Shape Comparison Module

4.3.1 Damage Detection

The position and extent of damage in a part can be expressed by the delta volume, which is the difference of volume between the shapes of the damaged part and design. The position and value of this volume indicate the location and extent of the damage, respectively. Figure 13 describes the calculation of the delta volume for damage detection, and Fig. 14 illustrates the results at each calculation step.

Fig. 13
figure 13

Procedure for damage detection

Fig. 14
figure 14

Ball of a valve to evaluate the proposed system and framework. a Part design and b damaged part for evaluation

First, data points are sampled from the 3D CAD model of the design shape for subsequent registration. As shown in Fig. 14a, the 3D CAD model is represented by a triangular mesh. The number of points to be sampled per triangle is decided according to the area ratio of each triangle. Then, points are randomly sampled inside every triangle following a uniform distribution. Figure 14b shows the points sampled from 3D CAD data. After sampling, registration is performed to match the reference coordinate system by using the point cloud from the damaged part and the design shape. Registration consists in finding translation and rotation matrices that minimize error \(d\) between points \({\mathbf{P}} = \left\{ {{\mathbf{p}}_{i} \in {\mathbb{R}}^{3} } \right\}\) from the damaged part and points \({\mathbf{X}} = \left\{ {{\mathbf{x}}_{i} \in {\mathbb{R}}^{3} } \right\}\) sampled from the 3D CAD model. Error \(d\) can be expressed as

$$d\left( {{\mathbf{R}},{\mathbf{T}}} \right) = \frac{1}{{N_{\text{P}} }}\mathop \sum \limits_{i = 1}^{{N_{\text{P}} }} \left\| {{\mathbf{x}}_{i} - {\mathbf{R}} \cdot {\mathbf{p}}_{i} - {\mathbf{T}}} \right\|^{2}$$
(1)

where \({\mathbf{R}}\) is the rotation matrix, \({\mathbf{T}}\) is the translation matrix, and \(N_{\text{P}}\) is the number of points in \({\mathbf{X}}\). To solve this problem, the iterative closest point algorithm32 is applied from which the R and T minimizes error d given by the distance between closest points is found using singular value decomposition. Then, point set P is transformed using R and T and repeat registration until error d is below a predefined threshold. The final registration outcome is shown in Fig. 14c. Then, the required mesh model is reconstructed from the point cloud of the damaged part to calculate the delta volume. For mesh reconstruction, Poisson surface reconstruction is used that retrieves the surface from a point cloud by stating the corresponding Poisson problem [40]. Reconstruction of the damaged part, whose result is shown in Fig. 14d, allows to approximate data including noise to a smooth curved surface. Finally, the delta volume is calculated using the mesh model of the damaged part and the 3D CAD model by applying Boolean subtraction between meshes, as shown in Fig. 14e.

4.3.2 Error Measurement

After repairing the part, error at critical points is measured by comparing it with the 3D CAD model from the original design. To measure the error, the points from the scanned point cloud of the repaired part corresponding to the measurement points are determined, and the mean square of the distance among these points defines the error:

$$d\left( {{\mathbf{X}},{\mathbf{Y}}} \right) = \frac{1}{N}\mathop \sum \limits_{i = 1}^{N} \left\| {{\mathbf{x}}_{{{\text{e}}i}} - {\mathbf{y}}_{i} } \right\|^{2}$$
(2)

where \({\mathbf{X}}_{\text{e}} = \left\{ {{\mathbf{x}}_{{{\text{e}}i}} \in {\mathbb{R}}^{3} } \right\}\) is the measurement points from the 3D CAD model, \({\mathbf{Y}} = \left\{ {{\mathbf{y}}_{i} \in {\mathbb{R}}^{3} } \right\}\) is the set of corresponding nearest points from the repaired part, and \(N\) is the number of measurement points.

5 Implementation and Experiments

The maintenance support system is implemented based on the proposed framework and conducted an experiment for part repairing using the system with commercial 3D scanning and printing systems, whose specifications are respectively listed in Tables 1 and 2. The experiment aimed to evaluate the ability of the maintenance support system based on the proposed framework to support the repairing of a partially damaged part by an untrained user. The ball from a ball valve is selected as target part for the experiment and cut a section of the part to simulate the damage. Pre-machining was not necessary in our experiment since cutting a section is performed by machine. However, as we mentioned in Sect. 3.1, pre-machining is required to reduce irregular surface if a part is damaged in real environment. Figure 15 shows the design shape of the part and a picture of the part with the simulated damage. Figure 16 shows the experimental procedure and results along with data transference among systems. The 3D scanning system, the maintenance support system, and the 3D printing system are consistent with the use case developed in Sect. 3.1.

Table 1 Specifications of 3D scanner for repairing damaged part
Table 2 Specifications of 3D printer for repairing damaged part
Fig. 15
figure 15

Example of proposed damage detection: a damaged part point cloud and 3D CAD model, b sampling of 3D CAD model, c registration between sampled points and point cloud, d mesh reconstruction of damaged part, and e delta volume between model and damaged part

Fig. 16
figure 16

Experimental procedure and results

In the experiment, the part classification of gaskets, O-rings, and valves are included to conform the parts library management module. Then, the catalog information of 12 gaskets, 10 O-rings, and 10 valves are uploaded to the system. First, metal gaskets were considered for the parts catalog construction. Gaskets with various shapes were selected and sample data constructed. In addition, O-rings have the same shape but different sizes and materials, where the most common material is (natural) rubber, but we assumed for the catalog that copper O-rings exist. Finally, metal valves were selected for catalog construction. Figure 17 illustrates the catalog information about a ball valve.

Fig. 17
figure 17

Catalog information of ball valve

During the experiment, the damaged part was scanned using the 3D scanning system to obtain its shape, which was post-processed for noise removal using the software provided by the scanner manufacturer. The resulting point cloud was encoded in the XYZ format and delivered to the maintenance support system. Then, the user retrieved the damaged parts using the retrieval module from the maintenance support system. As the user did not have sufficient knowledge of the part, view-based partial shape retrieval was employed. From the retrieval, it was possible to accurately identify the damaged part and retrieve the design shape and 3D printing information of the part. The damage detection module of the shape comparison was then used to detect the position and extent (delta volume) of the damage. As a result, the mesh encoded in the STL format for the delta volume was handed over to the 3D printing system.

The repair process began after uploading the obtained mesh in STL format and providing the 3D printing information of the part to the 3D printing system. As the 3D parts catalog contains information about the design of each part along with 3D printing parameters, the user easily input such information through the user interface provided by 3D printing system. The tool path for the repair was created by the function included in the 3D printing system, and the damaged part was repaired through additive manufacturing of the metal material. The effect of post machining is shown in Figs. 16 and 18. Exterior surface generated by 3D printing is not smooth nor precise until post-machining is performed.

Fig. 18
figure 18

Shape of the ball part: a before repairing, b after printing, and c after post-machining

Finally, to validate the repaired part, it was scanned to obtain its point cloud. Then, the error of the repaired part is calculated from the distance at measuring points between the point cloud and design shape after registration. Given that the tolerances of the ball part are available in the 3D parts catalog, the user was able to judge the suitability of the repaired part by comparing the calculated errors and tolerances. The part repaired in the experiment was suitable for use, as shown in Fig. 18.

6 Conclusions

A maintenance framework for repairing partially damaged parts using 3D printing is proposed. The proposed framework requires less time and resources for maintenance by performing repair instead of remanufacturing the complete damaged part. To avoid the necessity of skilled operators for repairing based on 3D printing, the following three technological components were included in the proposed framework:

  • Parts library management module to build 3D parts catalogs considering repair by 3D printing.

  • Part retrieval module to identify damaged parts without professional knowledge.

  • Shape comparison module to automate the measurement of the position and extent of the damage and calculate the error of the repaired part after printing for its validation.

To verify the proposed framework, a prototype system is developed and conducted an experiment aiming to repair a damaged ball using 3D printing. The experimental results confirmed the successful maintenance by an untrained user using the prototype system.

Future research will focus on improvements for each component of the framework. For instance, retrieval based on deep learning will be applied to improve the accuracy of view-based shape retrieval. In addition, the data structure of the 3D parts catalog will be extended to include more detailed information for metal 3D printing. Moreover, to improve the accuracy of damage detection and error measurement, different registration methods will be explored.