3D printing model correction methods, systems and computer program products
The method analyzes 3D models to identify and correct suboptimal features, enhancing 3D printing efficiency and reliability by preventing failures and reducing waste and damage.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-23
- Publication Date
- 2026-04-02
AI Technical Summary
Conventional 3D printing methods fail to identify and correct unprintable and undesirable features in 3D models, leading to poor part quality, material waste, extended production times, and hardware damage.
A method for analyzing 3D models to identify suboptimal features such as insufficient build platform contact, attached and detached island features, and unvented volumes, followed by corrective measures like removing or adding supports, reorienting the model, or projecting features to a plane.
Prevents print failures, reduces material waste, streamlines production, and avoids hardware damage by identifying and correcting suboptimal features in 3D models.
Smart Images

Figure US2025047489_02042026_PF_FP_ABST
Abstract
Description
Attorney Dkt. No.1151.254.WO 3D PRINTING MODEL CORRECTION METHODS, SYSTEMS AND COMPUTER PROGRAM PRODUCTS RELATED APPLICATIONS
[0001] The present application claims the benefit of U.S. Provisional Patent Application Serial No.63 / 698,743, entitled “3D PRINTING MODEL CORRECTION METHODS, SYSTEMS AND COMPUTER PROGRAM PRODUCTS,” filed on September 25, 2024, with the United States Patent and Trademark Office, the disclosure of which is hereby incorporated by reference herein in its entirety. BACKGROUND
[0002] The present disclosure relates to methods, systems, and computer program products for 3D printing model correction, and more particularly, to methods, systems, and computer program products for 3D printing model correction in the field of additive manufacturing.
[0003] A group of additive manufacturing techniques sometimes referred to as “stereolithography” creates a three-dimensional (3D) object by the sequential polymerization of a light polymerizable resin. Such techniques may be “bottom-up” techniques, where light is projected into the resin on the bottom of the growing object through a light transmissive window, or “top-down” techniques, where light is projected onto the resin on top of the growing object, which is then immersed downward into the pool of resin.
[0004] The introduction of a rapid stereolithography technique sometimes referred to as continuous liquid interface production (CLIP) has expanded the usefulness of stereolithography from prototyping to manufacturing. (See e.g., J. Tumbleston, et al., Continuous liquid interface production of 3D objects, Science, 347, 1349-1352; R. Janusziewicz, et al., Layerless fabrication with continuous liquid interface production, PNAS, 113, 11703-11708 (18 October 2016); and U.S. Pat. Nos.9,211,678, 9,205,601, and 9,216,546).
[0005] Additive manufacturing techniques may provide design flexibilities that traditional manufacturing techniques do not offer. While additive manufacturing techniques enable innovative design possibilities, additional factors may need to be taken into consideration to facilitate a successful print.Attorney Dkt. No.1151.254.WO SUMMARY
[0006] According to some aspects of the present disclosure, a method for identifying features in a three-dimensional (3D) model may include receiving a 3D model, analyzing the 3D model to determine whether the 3D model includes a suboptimal feature, and outputting a notification indicating whether the 3D model includes the suboptimal feature.
[0007] In some embodiments, analyzing the 3D model includes analyzing a first layer of the 3D model, the first layer including a plurality of first voxels, and grouping ones of the first voxels into one or more connected components.
[0008] In some embodiments, analyzing the 3D model further includes storing data of the one or more connected components.
[0009] In some embodiments, the data includes at least one of a print area, a base area, a volume, or a height of the one or more connected components.
[0010] In some embodiments, analyzing the 3D model further includes analyzing a second layer of the 3D model, the second layer including a plurality of second voxels, grouping ones of the second voxels into the one or more connected components, and updating the data of the one or more connected components based on the ones of the second voxels.
[0011] In some embodiments, analyzing the 3D model further includes sequentially analyzing remaining layers of the 3D model, each of the remaining layers including a plurality of third voxels, grouping ones of the third voxels into the one or more connected components, and updating the data of the one or more connected components based on the ones of the third voxels.
[0012] In some embodiments, analyzing the 3D model further includes evaluating the data of the one or more connected components based on predefined criteria to determine whether the 3D model includes the suboptimal feature.
[0013] In some embodiments, the data includes a contact area and a print area of the one or more connected components. The contact area may correspond to a contact area with a build platform. Evaluating the data of the one or more connected components based on the predefined criteria may include determining whether a maximum ratio of the print area to the contact area exceeds a threshold value.
[0014] In some embodiments, analyzing the 3D model further includes determining that the 3D model includes an insufficient build platform contact feature in response to the maximum ratio of the print area to the contact area exceeding the threshold value. The suboptimal feature may include the insufficient build platform contact feature.Attorney Dkt. No.1151.254.WO
[0015] In some embodiments, analyzing the first layer, the second layer, and the remaining layers of the 3D model is sequentially performed to represent a build process for the 3D model. Analyzing the 3D model may further include grouping other ones of the third voxels into a new connected component. The other ones of the third voxels may be separated from the one or more connected components during at least a portion of the build process.
[0016] In some embodiments, analyzing the 3D model further includes determining that the 3D model includes an island feature in response to the other ones of the third voxels being grouped into the new connected component. The suboptimal feature may include the island feature.
[0017] In some embodiments, the method further includes performing a corrective measure on the 3D model in response to determining that the 3D model includes the suboptimal feature. Performing the corrective measure may include at least one of removing the suboptimal feature from the 3D model, adding one or more supports to the 3D model, reorienting the 3D model, adding one or more vent holes to the 3D model, or extruding or projecting the suboptimal feature to a plane corresponding to a build platform.
[0018] In some embodiments, the suboptimal feature includes at least one of an insufficient build platform contact feature, an attached island feature, a detached island feature, or an unvented volume feature.
[0019] In some embodiments, the method further includes forming a printed part using the 3D model as a build model for the printed part.
[0020] According to some aspects of the present disclosure, a method for identifying features in a three-dimensional (3D) model may include sequentially analyzing layers of a 3D model, each of the layers including a plurality of voxels, grouping ones of the voxels into connected components and tracking data of the connected components, assigning labels to the connected components and recording the data to the labels, updating the data for each of the labels after analyzing respective ones of the layers of the 3D model, and evaluating the data based on predefined criteria to determine whether the 3D model includes a suboptimal feature.
[0021] In some embodiments, the data includes a contact area and a print area of a respective one of the connected components. Evaluating the data based on the predefined criteria may include determining whether a maximum ratio of the print area to the contact area exceeds a threshold value.Attorney Dkt. No.1151.254.WO
[0022] In some embodiments, the print area corresponds to a largest print area of the respective one of the connected components in a respective one of the layers of the 3D model. The contact area may correspond to a contact area with a build platform.
[0023] In some embodiments, sequentially analyzing the layers of the 3D model is performed to represent a build process for the 3D model. The method may further include merging the data from respective ones of the labels in response to two or more of the connected components becoming connected to each other during the build process.
[0024] In some embodiments, the method further includes assigning a new label to ones of the connected components that are formed after analyzing a first one of the layers of the 3D model. Analyzing the first one of the layers of the 3D model may be performed before analyzing remaining ones of the layers of the 3D model.
[0025] In some embodiments, the method further includes performing a corrective measure on the 3D model in response to determining that the 3D model includes the suboptimal feature. The suboptimal feature may include at least one of an insufficient build platform contact feature, an attached island feature, a detached island feature, or an unvented volume feature.
[0026] In some embodiments, the data includes a contact area of a respective one of the connected components. The contact area may correspond to a contact area with a build platform. Evaluating the data based on the predefined criteria may include determining whether the contact area is below a threshold value.
[0027] In some embodiments, the plurality of voxels include occupied voxels intersecting geometry of the 3D model and unoccupied voxels that do not intersect the geometry of the 3D model. Ones of the occupied voxels may be grouped into the connected components. The method may further include identifying ones of the unoccupied voxels that are between ones of the connected components, and determining whether the ones of the unoccupied voxels correspond to an unvented volume feature of the 3D model based on the predefined criteria. The suboptimal feature may include the unvented volume feature.
[0028] According to some aspects of the present disclosure, a computer program product may include a tangible non-transitory computer-readable storage medium including computer-readable program code embodied in the computer-readable storage medium that when executed by at least one processor causes the at least one processor to perform operations including analyzing a three-dimensional (3D) model to determine whether the 3D model includes a suboptimal feature, and outputting a notification indicating whether the 3D model includes the suboptimal feature.Attorney Dkt. No.1151.254.WO
[0029] Aspects of the present disclosure are not limited to the above. Further aspects of the present disclosure will be understood by one of ordinary skill in the art based on the description hereinafter. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain principles of the present disclosure.
[0031] FIG.1 is a schematic diagram illustrating an additive manufacturing apparatus, according to some embodiments of the present disclosure.
[0032] FIG.2 is a schematic diagram illustrating a 3D model design system including a 3D model, according to some embodiments of the present disclosure.
[0033] FIGS.3A and 3B are schematic diagrams illustrating 3D model design systems including 3D models, respectively, according to some embodiments of the present disclosure.
[0034] FIG.4 is an example flowchart illustrating a method for identifying features in a 3D model, according to some embodiments of the present disclosure.
[0035] FIGS.5A to 5E are schematic diagrams illustrating a method for identifying features in the 3D model of FIG.2, according to some embodiments of the present disclosure.
[0036] FIG.6 is a schematic diagram illustrating a method for identifying features in the 3D model of FIG.3A, according to some embodiments of the present disclosure.
[0037] FIG.7 is an example flowchart illustrating a method for preparing a 3D model for an additive manufacturing process, according to some embodiments of the present disclosure. DETAILED DESCRIPTION
[0038] A 3D model may be designed and used as a build model for a printed part (i.e., a 3D object) in an additive manufacturing process (e.g., a 3D printing process). Although methods and systems for designing 3D models exist, conventional methods and systems have various disadvantages. In particular, conventional methods and systems often fail to identify features in 3D models that may be unprintable and / or undesirable. When unprintable and / or undesirable features in 3D models go undetected, it may lead to significant issues during the printing process. For example, these undetected features may cause poor part quality,Attorney Dkt. No.1151.254.WO increased material waste, extended production times, and / or hardware damage, which can impact the efficiency and cost-effectiveness of the printing process.
[0039] Example embodiments of the present disclosure provide various benefits and technical solutions to the foregoing and / or other problems associated with conventional methods and systems. For example, some embodiments of the present disclosure provide methods and systems for identification of unprintable and / or undesirable features (i.e., suboptimal features) in a 3D model, along with appropriate correction of these features. Accordingly, example embodiments of the present disclosure may help prevent print failures, reduce material waste, streamline production times, and avoid hardware damage, thereby saving time and costs for a printing process while improving the overall reliability and performance of a 3D printed part.
[0040] Hereinafter, example embodiments of the present disclosure will be described in more detail with reference to the accompanying drawings.
[0041] FIG.1 is a schematic diagram illustrating an additive manufacturing apparatus, according to some embodiments of the present disclosure.
[0042] Referring to FIG.1, an additive manufacturing apparatus 100 may include a cassette 102, a build platform 104, a light source 112, a carrier drive 114, and a controller 116.
[0043] The cassette 102 may be removable from the additive manufacturing apparatus 100 and may hold a liquid resin 108. The liquid resin 108 may be a photosensitive polymer that solidifies when exposed to ultraviolet (UV) light. The cassette 102 may include a transparent window 110 that is permeable to both UV light and oxygen. During an additive manufacturing process (e.g., a 3D printing process), the light source 112 may emit UV light through the window 110 to selectively cure the liquid resin 108 into a solid (i.e., a solidified resin), thereby forming a 3D printed part 106.
[0044] The build platform 104 may be removable from the additive manufacturing apparatus 100 and may have a flat surface. During the printing process, the printed part 106 may be printed upon the flat surface of the build platform 104. For example, the printed part 106 may be solidified resin that rises out of the liquid resin 108 while connected (e.g., adhesively attached) to the build platform 104. The carrier drive 114 may move the build platform 104 in a vertical direction toward the window 110 and away from the window 110 during the printing process. The controller 116 may be operatively coupled to the light source 112 and the carrier drive 114 and may control the light source 112 and the carrierAttorney Dkt. No.1151.254.WO drive 114 during the printing process. As used herein, the printing process may also be referred to as a build process.
[0045] FIG.2 is a schematic diagram illustrating a 3D model design system including a 3D model, according to some embodiments of the present disclosure. In particular, FIG.2 illustrates example features in a 3D model that may be unprintable and / or undesirable in an additive manufacturing process.
[0046] Referring to FIG.2, a 3D model design system may include a 3D model 218. For example, the 3D model 218 may be imported into a software tool (e.g., MeshLab, Paraview, 3D Builder, Carbon Design EngineTM, SolidWorks, etc.) and / or a printer user interface, so that it is viewable in a user interface 220. For example, the 3D model 218 may be created using Computer-Aided Design (CAD) software or by scanning an existing object. The 3D model 218 may be saved in a format compatible for 3D printing (e.g., STL, PLY, PNG, STEP, etc.). The 3D model 218 may be used as a build model for a printed part (e.g., see the printed part 106 in FIG.1) in an additive manufacturing process (e.g., a 3D printing process). To help illustrate example embodiments of the present disclosure, the printed part 106 in FIG.1 is not shown as an exact replica of the 3D model 218 in FIG.2. In actual practice, it will be understood that if the 3D model 218 was used as a build model for the printed part 106, the printed part 106 would resemble the 3D model 218.
[0047] The 3D model 218 may include an insufficient build platform contact feature 218_1, an attached island feature 218_2, and a detached island feature 218_3. The 3D model 218 may be located on a build platform model 222, which virtually represents a build platform (e.g., see the build platform 104 in FIG.1) on which a printed part is printed during a printing process. To help illustrate example embodiments of the present disclosure, the build platform model 222 is shown in FIG.2, but it will be understood that the build platform model 222 may not necessarily be included in the user interface 220. In some embodiments, the build platform model 222 may be an imaginary plane that the 3D model 218 is located on. In other words, a lowermost portion (e.g., a lowermost layer) of the 3D model 218 in FIG.2 may be considered to be in contact with a build platform. As used herein, it will be understood that the build platform model 222 may be represented virtually in the user interface 220 with the 3D model 218 thereon or may be an imaginary plane that the 3D model 218 is located on. In either case, the build platform model 222 is intended to represent a build platform on which a 3D part is printed. To help illustrate example embodiments of the present disclosure, the 3D model 218 in FIG.2 is oriented in a vertical direction opposite to how a printed part based on the 3D model 218 would be oriented during the printing process.Attorney Dkt. No.1151.254.WO That is, a lowermost portion of the 3D model 218 (e.g., a lowermost layer of the 3D model 218) contacting the build platform model 222 in FIG.2 would correspond to an uppermost portion of the printed part 106 (e.g., an uppermost layer of the printed part 106) contacting the build platform 104 in FIG.1. For example, a print direction of a printed part corresponding to the 3D model 218 may proceed from a bottom to a top of the 3D model 218.
[0048] Referring to FIGS.1 and 2, the insufficient build platform contact feature 218_1 may be a portion of the 3D model 218 that is susceptible to becoming disconnected from the build platform 104 (i.e., may pop off from the build platform 104) during a printing process due to high print forces relative to the adhesive contact forces on the build platform 104. For example, during the printing process, as the build platform 104 moves upwards and downwards, the printed part 106 attached to the build platform 104 may move upwards and downwards through the liquid resin 108. When the printed part 106 moves upwards, suction forces may be created as the liquid resin 108 is pulled into a void left by the upward movement of the printed part 106. The suction forces may pull on the printed part 106 away from the build platform 104, which can lead to the printed part 106 becoming disconnected (i.e., detached) from the build platform 104 if there is not enough adhesion between the printed part 106 and the build platform 104. The strength of this adhesion may be a function of a contact area between the printed part 106 and the build platform 104.
[0049] The insufficient build platform contact feature 218_1 may appear to be topologically valid for the printing process, meaning that if the adhesive forces during the process were infinite or if the print forces were minimal, the 3D model 218 could print as the printed part 106. However, given reasonable force ratios, minimal heights of concern, and the like, the insufficient build platform contact feature 218_1 may fall off during the printing process (i.e., may become disconnected from the build platform 104), thereby causing the printed part 106 to be different from the intended 3D model 218. If the insufficient build platform contact feature 218_1 falls off during the printing process, it may leave geometry of the printed part 106 (i.e., a portion of the printed part 106 having a specific geometry in the form of solidified resin) in the liquid resin 108, which may need to be recovered (i.e., may need to be removed from the cassette 102). The recovery process may extend production times for printed parts. If the recovery process is not performed, the additive manufacturing apparatus 100 may be damaged when the build platform 104 is lowered onto the geometry of the printed part 106 left in the liquid resin 108, particularly when the additive manufacturing apparatus 100 does not have active collision detection. The insufficient build platformAttorney Dkt. No.1151.254.WO contact feature 218_1 may thus be a feature that is topologically invalid for the printing process.
[0050] The attached island feature 218_2 may be a portion of the 3D model 218 that is not connected to the build platform 104 in any way, whether directly or indirectly through other portions of the 3D model 218, when initially printed during the printing process. As shown in FIG.2, the attached island feature 218_2 is connected to another portion of the 3D model 218 and thus appears to be topologically valid for the printing process. However, during the printing process, the attached island feature 218_2 may be separated (i.e., isolated) from the 3D model 218 when printed, as the 3D model 218 is printed from bottom to top. In other words, when the attached island feature 218_2 is printed, it is not directly connected to the build platform 104 (represented as the build platform model 222 in FIG.2). Additionally, at this point in the printing process, a portion of the 3D model 218 above the attached island feature 218_2 in FIG.2 has not yet been printed. As a result, the attached island feature 218_2 may be lifted off (i.e., separated from) the printed part 106 during the printing process, thereby causing the printed part 106 to be different from the intended 3D model 218. The attached island feature 218_2 may thus be a feature that is topologically invalid for the printing process.
[0051] The detached island feature 218_3 may be a portion of the 3D model 218 that is separated from (i.e., spaced apart from) the rest of the 3D model 218 and the build platform model 222 and is thus not physically connected to other portions of the 3D model 218 or the build platform model 222. When printed during the printing process, the detached island feature 218_3 may be detached from (i.e., separated from) the printed part 106. As a result, the detached island feature 218_3 may be left as a piece of cured, solidified resin in the cassette 102, which may require recovery to avoid risk of damage to the additive manufacturing apparatus 100. In addition, the detached island feature 218_3 may cause the printed part 106 to be different from the intended 3D model 218. The detached island feature 218_3 may thus be a feature that is topologically invalid for the printing process.
[0052] In some embodiments, the 3D model design system may include a processing module. The processing module may include, for example, a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, a controller, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another type of processing component. The processing module may be implemented in hardware, software, or a combination of hardware and software (e.g., firmware). In some embodiments, the processing module may include one orAttorney Dkt. No.1151.254.WO more processors capable of being programmed to perform one or more operations of the system.
[0053] In some embodiments, the system may include a storage module. The storage module may include volatile and / or nonvolatile memory. For example, the storage module may include random access memory (RAM), read only memory (ROM), a hard disk drive, and / or another type of memory (e.g., a flash memory, a magnetic memory, and / or an optical memory). The storage module may include internal memory (e.g., RAM, ROM, or a hard disk drive) and / or removable memory (e.g., removable via a universal serial bus (USB) connection). The storage module may include a non-transitory computer-readable medium storage device. In some embodiments, the storage module may utilize cloud-based storage services. In some embodiments, the storage module may be coupled to the processing module via, for example, a bus.
[0054] In some embodiments, the 3D design system may include an output module that outputs print specifications for the 3D model 218 in various file formats. A user may then print a 3D part based on the print specifications.
[0055] FIGS.3A and 3B are schematic diagrams illustrating 3D model design systems including 3D models, respectively, according to some embodiments of the present disclosure. In particular, FIGS.3A and 3B each illustrate another example feature in a 3D model that may be unprintable and / or undesirable in an additive manufacturing process.
[0056] Referring to FIGS.1 and 3A, a 3D model design system may include a 3D model 318a. The 3D model 318a may include an unvented volume feature 318a_1 (which may also be referred to as a cup feature). For example, the unvented volume feature 318a_1 may be a portion of the 3D model 318a that is enclosed or isolated without any means for air or gases to escape or be vented during a printing process. In other words, the unvented volume feature 318a_1 may be a cavity of the 3D model 318a that is enclosed or isolated during a printing process. The unvented volume feature 318a_1 may entrap liquid resin 108 during the printing process. As a result, the liquid resin 108 may be trapped in a pressure vacuum during the printing process, which may cause print defects such as, for example, blow out of the printed part 106, fringing of the printed part 106, and / or vacuum lines in the printed part 106, thereby causing the printed part 106 to be different from the intended 3D model 318a. The unvented volume feature 318a_1 may thus be a feature that is topologically invalid for the printing process. To help illustrate example embodiments of the present disclosure, the printed part 106 in FIG.1 is not shown as an exact replica of the 3D model 318a in FIG.3A. In actual practice, it will be understood that if the 3D model 318a was usedAttorney Dkt. No.1151.254.WO as a build model for the printed part 106, the printed part 106 would resemble the 3D model 318a.
[0057] Referring to FIGS.1 and 3B, a 3D model design system may include a 3D model 318b. The 3D model 318b may include an overhang feature 318b_1 (which may also be referred to as a bridge feature). For example, the overhang feature 318b_1 may be a portion of the 3D model 318b that projects either horizontally (e.g., parallel to a surface of the build platform model 222) or below a recommended self-supporting angle, with the projection occurring beyond an edge of a portion of the 3D model 318b beneath the overhang feature 318b_1. The overhang feature 318b_1 may be susceptible to suction forces when the printed part 106 moves upwards during a printing process. As a result, the overhang feature 318b_1 may be deflected (i.e., may bend or sag) away from the build platform 104 or may become disconnected from the printed part 106 during the printing process, thereby causing the printed part 106 to be different from the intended 3D model 318b. The overhang feature 318b_1 may thus be a feature that is topologically invalid for the printing process. To help illustrate example embodiments of the present disclosure, the printed part 106 in FIG.1 is not shown as an exact replica of the 3D model 318b in FIG.3B. In actual practice, it will be understood that if the 3D model 318b was used as a build model for the printed part 106, the printed part 106 would resemble the 3D model 318b.
[0058] Example features in a 3D model that may be unprintable and / or undesirable in an additive manufacturing process have been described above with reference to FIGS.1, 2, 3A, and 3B. Other features in a 3D model that may also be unprintable and / or undesirable in an additive manufacturing process include, for example, features of a 3D model requiring additional support (e.g., for reasons other than adhesion), features of a 3D model that are likely to break during a printing process, and fillet features of a 3D model that are likely to cause adhesion issues on the build platform 104. It will be appreciated that other features in a 3D model not mentioned above may also be unprintable and / or undesirable, and the present disclosure is not limited to the above-described features.
[0059] The above-described features (e.g., the insufficient build platform contact feature 218_1, the attached island feature 218_2, the detached island feature 218_3, the unvented volume feature 318a_1, the overhang feature 318b_1, etc.) in a 3D model may cause various issues for a printing process. These features may thus be referred to as suboptimal features of a 3D model. For example, these suboptimal features may cause hardware damage to the additive manufacturing apparatus 100, particularly when the printing process is performed repeatedly. In addition, these suboptimal features may causeAttorney Dkt. No.1151.254.WO interruptions to the printing process, which may be exacerbated when the printing process is automated and / or performed overnight. These suboptimal features may leave detritus in the cassette 102 or attached to the window 110 at the end of the printing process, which may cause damage to the window 110 when the build platform 104 is lowered or may cause the additive manufacturing apparatus 100 to enter a lengthy recovery sequence, which may not always be successful. In other words, suboptimal features of a 3D model may lead to hardware damage to the additive manufacturing apparatus 100 and / or lost production time. Further, even if the suboptimal features do not cause damage to the additive manufacturing apparatus 100, detritus left in the cassette 102 may become entrapped and unintentionally included in subsequent printed parts, thereby making them different from their intended design and unusable in some cases.
[0060] FIG.4 is an example flowchart illustrating a method for identifying features in a 3D model, according to some embodiments of the present disclosure. FIGS.5A to 5E are schematic diagrams illustrating a method for identifying features in the 3D model of FIG.2, according to some embodiments of the present disclosure. To help illustrate example embodiments of the present disclosure, the below description will mainly focus on the 3D model 218 of FIG.2. However, it will be understood that the present disclosure is not limited thereto. For example, in other embodiments, the 3D model may correspond to the 3D model 318a of FIG.3A, or the 3D model 318b of FIG.3B, without being limited thereto.
[0061] Referring to FIGS.2 and 4, a method for identifying features in a 3D model 218 may include receiving a 3D model 218 for an additive manufacturing process (step 410). In some embodiments, the 3D model 218 may be imported into a software tool (e.g., MeshLab, Paraview, 3D Builder, Carbon Design EngineTM, SolidWorks, etc.) and / or a printer user interface, so that it is viewable in a user interface 220. For example, the 3D model 218 may be created using Computer-Aided Design (CAD) software or by scanning an existing object. The 3D model 218 may be saved in a format compatible for 3D printing (e.g., STL, PLY, PNG, STEP, etc.). The 3D model 218 may be used as a build model for a 3D printed part (e.g., see the printed part 106 in FIG.1) during the additive manufacturing process (e.g., a 3D printing process).
[0062] The method may further include analyzing the 3D model 218 to determine whether the 3D model 218 includes a suboptimal feature (step 420).
[0063] Referring to FIGS.2, 4, and 5A to 5E, the 3D model 218 may include a plurality of layers 518a to 518e, each of which may be a thin horizontal layer. The layers 518a to 518e of the 3D model 218 may be considered as thin slices of the 3D model 218.Attorney Dkt. No.1151.254.WO The layers 518a to 518e may represent the volume and / or area of the 3D model 218 by dividing the 3D model 218 into layers (i.e., thin slices) that can be stacked to reconstruct the 3D model 218, thereby providing a voxel representation of the 3D model 218. For example, the geometry of the 3D model 218 may be converted into a discrete grid of voxels, which forms a 3D mesh. Although not specifically shown in FIGS.5A to 5E, it will be understood that each of the layers 518a to 518e may include a plurality of voxels. For example, the voxels may be pixels that represent the volume and / or area of the 3D model 218.
[0064] As used herein, representing the 3D model 218 as the plurality of layers 518a to 518e may be referred to as voxelizing the 3D model 218. In other words, the plurality of layers 518a to 518e may provide a voxel representation of the 3D model 218. For example, a voxel grid may be created by defining a 3D grid or lattice that divides the entire volume of the 3D model 218 (e.g., space occupied by the 3D model 218) into a plurality of voxels. Each of the plurality of layers 518a to 518e may include ones of the plurality of voxels. The resolution of the 3D model 218 may be increased or decreased by changing the size of the voxels. For example, decreasing the size of the voxels may increase the resolution of the 3D model 218, while increasing the size of the voxels may decrease the resolution of the 3D model 218. In some embodiments, voxelizing the 3D model 218 may include selecting a level of resolution for the 3D model 218 (e.g., formed by the plurality of layers 518a to 518e) by increasing or decreasing the size of the voxels (e.g., based on the geometry of the 3D model 218). For example, it may be helpful to have a higher resolution for 3D models with more complex geometry.
[0065] The plurality of layers 518a to 518e may correspond to layers (i.e., slices) of a printed part that is formed in a 3D printing process (i.e., a build process) where the 3D model 218 is used as a build model for the printed part. The plurality of layers 518a to 518e may be used to represent or model a build process for the 3D model 218. For example, a layer-by- layer analysis may be performed on the 3D model 218 using the plurality of layers 518a to 518e. Although not shown in FIGS.5A to 5E, in other embodiments, a voxel representation of a 3D model may be decoupled from the resolution of a printed part formed in a 3D printing process where the 3D model is used as a build model for the printed part. The thicknesses of the plurality of layers 518a to 518e may be exaggerated in FIGS.5A to 5E to help illustrate example embodiments of the present disclosure. In actual practice, it will be understood that the plurality of layers 518a to 518e may be much thinner than that shown in FIGS.5A to 5E. In addition, while the 3D model 218 (e.g., the voxel representation of the 3D model 218) is shown as including five layers 518a to 518e in FIGS.5A to 5E, the present disclosure is notAttorney Dkt. No.1151.254.WO limited thereto. It will be understood that the 3D model 218 may include more or less than five layers. For example, the number of layers included in a 3D model may be proportional to a height of the 3D model. In some embodiments, each of the layers 518a to 518e may have a same thickness, while in other embodiments, the layers 518a to 518e may vary in thickness. For example, the thicknesses of the layers 518a to 518e may be selected based on the geometry of the 3D model 218.
[0066] Referring to FIGS.2, 4, and 5A, analyzing the 3D model 218 may include analyzing a first layer 518a of the 3D model 218. Although not specifically shown in FIG. 5A, the first layer 518a may include a plurality of voxels. For example, the plurality of voxels may include occupied voxels that intersect the geometry of the 3D model 218 in the first layer 518a (i.e., contain part of the 3D model 218 in the first layer 518a), and unoccupied voxels that do not intersect the geometry of the 3D model 218 in the first layer 518a (i.e., contain empty space in the first layer 518a).
[0067] In some embodiments, analyzing the 3D model 218 may include grouping together adjacent ones of the voxels (e.g., connected regions of occupied voxels) into first and second connected components 518_c1 and 518_c2. Clusters of adjacent voxels in the first layer 518a may form distinct, contiguous regions, which may be used to identify the first and second connected components 518_c1 and 518_c2 of the 3D model 218. In some embodiments, each of the first and second connected components 518_c1 and 518_c2 may be assigned a label. For example, the first connected component 518_c1 may be assigned label 1, and the second connected component 518_c2 may be assigned label 2.
[0068] In some embodiments, analyzing the 3D model 218 may include tracking data of the first and second connected components 518_c1 and 518_c2. Data that may be tracked includes, for example, a base area, a maximum print area, and a current print area of each connected component 518_c1 and 518_c2. For example, the base area may correspond to a contact area of each connected component 518_c1 and 518_c2 with a build platform (represented as a build platform model 222 in FIGS.5A to 5E). As used herein, the base area may also be referred to as a contact area. The maximum print area may correspond to one of the plurality of layers 518a to 518e where each connected component 518_c1 and 518_c2 has the largest area. That is, the maximum print area may correspond to a largest print area of each connected component 518_c1 and 518_c2 in a respective one of the layers 518a to 518e. In some embodiments, the maximum print area may correspond to an area of a widest portion of each connected component 518_c1 and 518_c2. The current print area may correspond toAttorney Dkt. No.1151.254.WO an area of each connected component 518_c1 and 518_c2 within the most recently analyzed layer among the plurality of layers 518a to 518e.
[0069] To help illustrate example embodiments of the present disclosure, the plurality of layers 518a to 518e are represented as two-dimensional (2D) layers in FIGS.5A to 5E, and thus the term “area” is used in FIGS.5A to 5E. In actual practice, it will be understood that the plurality of layers 518a to 518e may be represented as 3D layers, and thus the volume and / or area of each connected component 518_c1 and 518_c2 may be tracked while analyzing the layers 518a to 518e. As used herein, it will be understood that the term “area” refers to a volume and / or an area of each connected component 518_c1 and 518_c2, unless the context clearly indicates otherwise. In other words, as used herein, the term “area” may be used interchangeably with the term “volume”, unless the context clearly indicates otherwise. For example, the area of each connected component 518_c1 and 518_c2 may be measured in square millimeters (mm2) (e.g., when area is tracked) and / or may be measured in cubic millimeters (mm3) or milliliters (mL) (e.g., when volume is tracked). In some embodiments, the area and / or volume of each connected component 518_c1 and 518_c2 may be measured by counting a number of voxels in each connected component 518_c1 and 518_c2. To help illustrate example embodiments of the present disclosure, the data shown in FIGS.5A to 5E is measured by counting a number of voxels, but it will be understood that the present disclosure is not limited thereto.
[0070] By tracking the base area, the maximum print area, and the current print area of each connected component 518_c1 and 518_c2, the amount of space occupied by features of the 3D model 218 may be tracked at different stages in a build process, features of the 3D model 218 that have already been printed may be tracked at different stages in the build process, and features of the 3D model 218 that contact a build platform (represented as the build platform model 222 in FIGS.5A to 5E) may be tracked at different stages in the build process.
[0071] In some embodiments, other data may also be tracked such as, for example, a height, three dimensional slopes or gradients, and bounding boxes of each connected component 518_c1 and 518_c2. As a result, vertical dimensions and / or elevations of features of the 3D model 218 may be tracked at different stages in the build process, angles and / or slopes of features of the 3D model 218 may be tracked at different stages in the build process (e.g., to identify overhangs and / or features requiring additional support), contact areas of features of the 3D model 218 may be tracked at different stages in the build process (e.g., to identify overhangs and / or slanted geometries), and distributions of stresses and / or masses ofAttorney Dkt. No.1151.254.WO features of the 3D model 218 may be tracked at different stages in the build process (e.g., to identify features susceptible to becoming disconnected during the printing process or susceptible to deformation).
[0072] Example data that may be tracked has been described above. However, it will be understood that the present disclosure is not limited thereto, and other data not mentioned above may also be tracked.
[0073] Analyzing the 3D model 218 may include storing the data of each connected component 518_c1 and 518_c2. For example, the data may be recorded to the label for each connected component 518_c1 and 518_c2. As shown in FIG.5A, the first connected component 518_c1 may have a base area of 10, a maximum print area of 10, and a current print area of 10, each of which are recorded to label 1. As discussed above, this data may correspond to a number of voxels in the first connected component 518_c1, but the present disclosure is not limited thereto. In addition, a ratio of the maximum print area to the base area for the first connected component 518_c1 may be recorded to label 1. In some embodiments, the ratio of the maximum print area to the base area may be a maximal value. That is, the ratio of the maximum print area to the base area may be stored as the highest observed ratio across the plurality of layers 518a to 518e of the 3D model 218. As used herein, the ratio of the maximum print area to the base area may thus also be referred to as the maximum ratio of the print area to the contact area. The second connected component 518_c2 may have a base area of 1, a maximum print area of 1, and a current print area of 1, each of which are recorded to label 2. As discussed above, this data may correspond to a number of voxels in the second connected component 518_c2, but the present disclosure is not limited thereto. In addition, a ratio of the maximum print area to the base area for the second connected component 518_c2 may be recorded to label 2. Since the first layer 518a is the first one of the plurality of layers 518a to 518e that is analyzed, the base area, the maximum print area, and the current print area of the first connected component 518_c1 may be the same. Similarly, the base area, the maximum print area, and the current print area of the second connected component 518_c2 may be the same.
[0074] Referring to FIGS.2, 4, and 5B, analyzing the 3D model 218 may include analyzing a second layer 518b of the 3D model 218. Although not specifically shown in FIG. 5B, the second layer 518b may include a plurality of voxels. For example, the plurality of voxels may include occupied voxels that intersect the geometry of the 3D model 218 in the second layer 518b (i.e., contain part of the 3D model 218 in the second layer 518b), andAttorney Dkt. No.1151.254.WO unoccupied voxels that do not intersect the geometry of the 3D model 218 in the second layer 518b (i.e., contain empty space in the second layer 518b).
[0075] Analyzing the 3D model 218 may include grouping ones of the plurality of voxels in the second layer 518b into the first and second connected components 518_c1 and 518_c2. For example, ones of the plurality of voxels in the second layer 518b that are connected to the first and second connected components 518_c1 and 518_c2 (e.g., ones of the occupied voxels in the second layer 518b) may be respectively grouped into the first and second connected components 518_c1 and 518_c2. The data of the first and second connected components 518_c1 and 518_c2 may then be updated based on the ones of the plurality of voxels in the second layer 518b that were respectively grouped into the first and second connected components 518_c1 and 518_c2. For example, the data for label 1 corresponding the first connected component 518_c1 may be updated, and the data for label 2 corresponding to the second connected component 518_c2 may be updated.
[0076] As shown in FIG.5B, the current print area of the first connected component 518_c1 in the second layer 518b may be 1, and thus label 1 may be updated to reflect that the current print area is 1. The base area of the first connected component 518_c1 may correspond to the area of the first connected component 518_c1 in the first layer 518a, and thus label 1 may still reflect that the base area is 10. The maximum print area of the first connected component 518_c1 may correspond to the area of the first connected component 518_c1 in the first layer 518a (e.g., since the area of the first connected component 518_c1 in the first layer 518a is greater than the area of the first connected component 518_c1 in the second layer 518b), and thus label 1 may still reflect that the maximum print area is 10. The ratio of the maximum print area to the base area of the first connected component 518_c1 may still be 1, and thus label 1 may still reflect that this ratio is 1.
[0077] The current print area of the second connected component 518_c2 in the second layer 518b may be 5, and thus label 2 may be updated to reflect that the current print area is 5. The base area of the second connected component 518_c2 may correspond to the area of the second connected component 518_c2 in the first layer 518a, and thus label 2 may still reflect that the base area is 1. The maximum print area of the second connected component 518_c2 may correspond to the area of the second connected component 518_c2 in the second layer 518b (e.g., since the area of the second connected component 518_c2 in the second layer 518b is greater than the area of the second connected component 518_c2 in the first layer 518a), and thus label 2 may be updated to reflect that the maximum print area is 5. The ratio of the maximum print area to the base area of the second connected componentAttorney Dkt. No.1151.254.WO 518_c2 may be 5, and thus label 2 may be updated to reflect that this ratio is 5, as this is the maximal value seen across the first and second layers 518a and 518b for the second connected component 518_c2.
[0078] Referring to FIGS.2, 4, and 5C, analyzing the 3D model 218 may include analyzing a third layer 518c of the 3D model 218. Although not specifically shown in FIG. 5C, the third layer 518c may include a plurality of voxels. For example, the plurality of voxels may include occupied voxels that intersect the geometry of the 3D model 218 in the third layer 518c (i.e., contain part of the 3D model 218 in the third layer 518c), and unoccupied voxels that do not intersect the geometry of the 3D model 218 in the third layer 518c (i.e., contain empty space in the third layer 518c).
[0079] Analyzing the 3D model 218 may include grouping ones of the plurality of voxels in the third layer 518c into the first and second connected components 518_c1 and 518_c2. For example, ones of the plurality of voxels in the third layer 518c that are connected to the first and second connected components 518_c1 and 518_c2 (e.g., ones of the occupied voxels in the third layer 518c) may be respectively grouped into the first and second connected components 518_c1 and 518_c2. As shown in FIG.5C, the first and second connected components 518_c1 and 518_c2 may become connected to each other. For example, analyzing the plurality of layers 518a to 518e may be performed to represent a build process for the 3D model 218, and the first and second connected components 518_c1 and 518_c2 may become connected to each other during the build process. In this case, the data of the first and second connected components 518_c1 and 518_c2 may be merged together. In some embodiments, the data of the first and second connected components 518_c1 and 518_c2 may be merged into label 1 or label 2, based on which one of the first and second connected components 518_c1 and 518_c2 (i.e., which one of label 1 or label 2) has the lowest ratio of maximum print area to base area (i.e., the lowest maximum ratio of print area to contact area). However, the present disclosure is not limited thereto, and other factors may dictate which label the data is merged into.
[0080] As shown in FIG.5C, the data of the first and second connected components 518_c1 and 518_c2 may be merged into label 1, since the ratio of the maximum print area to the base area of the first connected component 518_c1 is lower than that of the second connected component 518_c2. In this case, the first connected component 518_c1 may be considered to subsume (i.e., absorb) the second connected component 518_c2. For example, the first and second connected components 518_c1 and 518_c2 may have a combined base area of 11, and thus the first connected component 518_c1 that subsumes the secondAttorney Dkt. No.1151.254.WO connected component 518_c2 may be considered to have a base area of 11. Accordingly, label 1 may be updated to reflect that the base area is 11. While a ratio of the maximum print area to the base area for label 1 has a value of 10 / 11 after analyzing the third layer 518c, this ratio may remain stored at a value of 1 for label 1 since it is a maximal value, and label 1 previously had a value of 1 stored for this ratio after analyzing the first and second layers 518a and 518b of the 3D model 218. After the relevant data from label 2 is merged into the data for label 1 (e.g., the base areas are added together), label 2 may be set aside (e.g., may be partitioned, may be appropriately marked, may be grouped separately from label 1, etc.).
[0081] Merging the relevant data from label 2 into the data for label 1 and setting aside label 2 may help in identifying suboptimal features of the 3D model 218. For example, the data from label 1 corresponds to the combined data of the first connected component 518_c1 and the second connected component 518_c2, whereas the data from label 2 only corresponds to the data of the second connected component 518_c2. As such, if the data from label 1 fails a predefined criteria (discussed in greater detail below), then the entire 3D model 218 may not print correctly (e.g., may be unprintable). On the other hand, if the data from label 1 passes the predefined criteria, but the data from label 2 fails the predefined criteria, then a feature of the 3D model 218 that corresponds to the second connected component 518_c2 may be identified as a suboptimal feature. In other words, after the first and second connected components 518_c1 and 518_c2 become connected to each other (e.g., during the build process), the likelihood that the entire 3D model 218 may be unprintable decreases, as a feature of the 3D model 218 corresponding to the second connected component 518_c2 may not print correctly, but the rest of the 3D model 218 may print correctly.
[0082] Merging data into label 1 or label 2 based on which connected component 518_c1 or 518_c2 has the lowest ratio of maximum print area to base area may also help in identifying suboptimal features of the 3D model 218. For example, since the second connected component 518_c2 has a higher ratio of maximum print area to base area, the second connected component 518_c2 may be a feature of the 3D model 218 that is more susceptible to becoming disconnected from a build platform during a printing process (e.g., due to having a small contact area with the build platform relative to a print area of the feature). Thus, by setting aside label 2 instead of label 1, it may be easier to identify a suboptimal feature (e.g., an insufficient build platform contact feature) of the 3D model 218.
[0083] Referring to FIGS.2, 4, and 5D, analyzing the 3D model 218 may include analyzing a fourth layer 518d of the 3D model 218. Although not specifically shown in FIG.Attorney Dkt. No.1151.254.WO 5D, the fourth layer 518d may include a plurality of voxels. For example, the plurality of voxels may include occupied voxels that intersect the geometry of the 3D model 218 in the fourth layer 518d (i.e., contain part of the 3D model 218 in the fourth layer 518d), and unoccupied voxels that do not intersect the geometry of the 3D model 218 in the fourth layer 518d (i.e., contain empty space in the fourth layer 518d).
[0084] Analyzing the 3D model 218 may include grouping ones of the plurality of voxels in the fourth layer 518d into the first connected component 518_c1. For example, ones of the plurality of voxels in the fourth layer 518d that are connected to the first connected component 518_c1 (e.g., ones of the occupied voxels in the fourth layer 518d) may be grouped into the first connected component 518_c1. As shown in FIG.5D, other ones of the plurality of voxels in the fourth layer 518d (e.g., other ones of the occupied voxels in the fourth layer 518d) may be separated from the first connected component 518_c1. In this case, the other ones of the plurality of voxels in the fourth layer 518d that are adjacent each other (e.g., connected to each other) may be grouped together into third and fourth connected components 518_c3 and 518_c4. For example, clusters of the other ones of the plurality of voxels in the fourth layer 518d that are adjacent each other may form distinct, contiguous regions, which may be used to identify the third and fourth connected components 518_c3 and 518_c4 of the 3D model 218. In some embodiments, a new label may be assigned (e.g., generated for) each of the third and fourth connected components 518_c3 and 518_c4. For example, the third connected component 518_c3 may be assigned label 3, and the fourth connected component 518_c4 may be assigned label 4.
[0085] When a new connected component (e.g., the third and fourth connected components 518_c3 and 518_c4) and / or a new label (e.g., label 3 and label 4) is created after analyzing the first layer 518a of the 3D model 218 (i.e., an initial layer of the 3D model 218), this may indicate that the 3D model 218 includes an island feature. For example, since the third and fourth connected components 518_c3 and 518_c4 are formed (and labels 3 and 4 are generated) after analyzing the first layer 518a of the 3D model 218, the third and fourth connected components 518_c3 and 518_c4 may be printed without being connected to a build platform (represented as the build platform model 222 in FIG.5D) in any way, whether directly or indirectly through other portions of the 3D model 218, during at least a portion of the build process.
[0086] Analyzing the 3D model 218 may include storing data of the third and fourth connected components 518_c3 and 518_c4. For example, the data may be recorded to the respective label for each of the third and fourth connected components 518_c3 and 518_c4.Attorney Dkt. No.1151.254.WO As shown in FIG.5D, the third connected component 518_c3 may have a base area of 0 (since it does not contact a build platform), a maximum print area of 1, and a current print area of 1, each of which are recorded to label 3. The fourth connected component 518_c4 may have a base area of 0 (since it does not contact a build platform), a maximum print area of 1, and a current print area of 1, each of which are recorded to label 4.
[0087] Referring to FIGS.2, 4, and 5E, analyzing the 3D model 218 may include analyzing a fifth layer 518e of the 3D model 218. Although not specifically shown in FIG. 5E, the fifth layer 518e may include a plurality of voxels. For example, the plurality of voxels may include occupied voxels that intersect the geometry of the 3D model 218 in the fifth layer 518e (i.e., contain part of the 3D model 218 in the fifth layer 518e), and unoccupied voxels that do not intersect the geometry of the 3D model 218 in the fifth layer 518e (i.e., contain empty space in the fifth layer 518e).
[0088] Analyzing the 3D model 218 may include grouping ones of the plurality of voxels in the fifth layer 518e into the first, third, and fourth connected components 518_c1, 518_c3, and 518_c4. For example, ones of the plurality of voxels in the fifth layer 518e that are connected to the first, third, and fourth connected components 518_c1, 518_c3, and 518_c4 (e.g., ones of the occupied voxels in the fifth layer 518e) may be respectively grouped into the first, third, and fourth connected components 518_c1, 518_c3, and 518_c4. As shown in FIG.5E, the first and third connected components 518_c1 and 518_c3 may become connected to each other during the build process. In this case, the data of the first and third connected components 518_c1 and 518_c3 may be merged together. In some embodiments, the data of the first and third connected components 518_c1 and 518_c3 may be merged into label 1 or label 3, based on which one of the first and third connected components 518_c1 and 518_c3 (i.e., which one of label 1 or label 3) has the lowest ratio of maximum print area to base area (i.e., the lowest maximum ratio of print area to contact area). However, the present disclosure is not limited thereto, and other factors may dictate which label the data is merged into.
[0089] As shown in FIG.5E, the data of the first and third connected components 518_c1 and 518_c3 may be merged into label 1, since the ratio of the maximum print area to the base area of the third connected component 518_c3 is undefined (e.g., due to the third connected component 518_c3 having a base area of 0). An undefined ratio of a maximum print area to a base area may always be considered to be lower than a ratio of a maximum print area to a base area that has a value. After the relevant data from label 3 is merged intoAttorney Dkt. No.1151.254.WO the data for label 1, label 3 may be set aside (e.g., may be partitioned, may be appropriately marked, may be grouped separately from label 1 and label 4, etc.).
[0090] Merging the relevant data from label 3 into the data for label 1 and setting aside label 3 may help in identifying suboptimal features of the 3D model 218. For example, since label 3 was assigned after analyzing the first layer 518a of the 3D model 218, the third connected component 518_c3 may be identified as corresponding to an island feature of the 3D model 218, but it may not be known whether the third connected component 518_c3 corresponds to an attached island feature or a detached island feature of the 3D model 218. Setting label 3 aside may allow for the third connected component 518_c3 to be identified as corresponding to an attached island feature of the 3D model 218. For example, since label 3 is set aside, it may be determined that the data from label 3 has been merged with another label (e.g., label 1), which indicates that the third connected component 518_c3 has become connected to another connected component (e.g., the first connected component 518_c1) during the build process. The third connected component 518_c3 may thus be determined as corresponding to an attached island feature 218_2 of the 3D model 218.
[0091] As shown in FIG.5E, the fourth connected component 518_c4 may not become connected to another connected component during the build process. Since label 4 was assigned after analyzing the first layer 518a of the 3D model 218, the fourth connected component 518_c4 may be identified as corresponding to an island feature of the 3D model 218. In addition, since label 4 was not set aside, it may be determined that the data from label 4 has not been merged with another label, which indicates that the fourth connected component 518_c4 has not become connected to another connected component during the build process. It may thus be determined that the fourth connected component 518_c4 corresponds to a detached island feature 218_3 of the 3D model 218.
[0092] After each of the plurality of layers 518a to 518e have been analyzed, analyzing the 3D model 218 may include evaluating the data of the first, second, third, and fourth connected components 518_c1, 518_c2, 518_c3, and 518_c4 based on predefined criteria to determine whether the 3D model 218 includes a suboptimal feature. For example, the data for label 1, the data for label 2, the data for label 3, and the data for label 4 may be evaluated based on predefined criteria to determine whether the 3D model 218 includes a suboptimal feature.
[0093] In some embodiments, the predefined criteria may include a threshold value for a base area. For example, the threshold value for the base area may be 1, but is not limited thereto. In this case, any of the first, second, third, and fourth connected componentsAttorney Dkt. No.1151.254.WO 518_c1, 518_c2, 518_c3, and 518_c4 that have a base area with a value below 1 may be determined to correspond to an island feature of the 3D model 218. For example, since label 3 and label 4 have a base area with a value of 0, it may be determined that the third connected component 518_c3 and the fourth connected component 518_c4 correspond to an island feature of the 3D model 218. It thus may be determined that the 3D model 218 includes a suboptimal feature (e.g., an attached island feature 218_2 and a detached island feature 218_3). In addition, since label 3 is set aside, it may be determined that the third connected component 518_c3 corresponds to an attached island feature 218_2 of the 3D model 218. Since label 4 has not been set aside, it may be determined that the fourth connected component 518_c4 corresponds to a detached island feature 218_3 of the 3D model 218. Accordingly, it may be determined that the 3D model 218 includes the attached island feature 218_2 and the detached island feature 218_3, each of which is a suboptimal feature of the 3D model 218. As discussed above, it may also be determined that the 3D model 218 includes an island feature (i.e., a suboptimal feature) since label 3 and label 4 were assigned after analyzing the first layer 518a of the 3D model 218.
[0094] In some embodiments, the predefined criteria may include a threshold value for a ratio of a maximum print area to a base area (i.e., a threshold value for a maximum ratio of a print area to a contact area). The threshold value for the ratio of the maximum print area to the base area may be in a range from 0 to 5, but is not limited thereto. For example, the threshold value for the ratio of the maximum print area to the base area may be 2.5, but is not limited thereto. The threshold value for the ratio of the maximum print area to the base area may be set based on the geometry of the 3D model 218, design considerations for the 3D model 218, a type of resin used in a build process (e.g., see the liquid resin 108 in FIG.1), and the like. In some embodiments, connected components having a ratio of a maximum print area to a base area that is less than 5 may be considered to correspond to optimal features of the 3D model 218 (e.g., likely to print), connected components having a ratio of a maximum print area to a base area between 5 and 15 may be set aside for further analysis (e.g., performing a print simulation and / or a finite element analysis (FEA) of the connected components to determine whether they are likely to print), and connected components having a ratio of a maximum print area to a base area that is greater than 15 may be considered to correspond to suboptimal features of the 3D model 218, but the present disclosure is not limited thereto.
[0095] For example, when the threshold value for the ratio of the maximum print area to the base area is 2.5, any of the first, second, third, and fourth connected componentsAttorney Dkt. No.1151.254.WO 518_c1, 518_c2, 518_c3, and 518_c4 that have a ratio of a maximum print area to a base area that exceeds a value of 2.5 may be determined to correspond to an insufficient build platform contact feature of the 3D model 218. For example, since label 2 has a ratio of a maximum print area to a base area that has a value of 5, it may be determined that the second connected component 518_c2 corresponds to an insufficient build platform contact feature 218_1 of the 3D model 218. It thus may be determined that the 3D model 218 includes a suboptimal feature (e.g., the insufficient build platform contact feature 218_1). Since label 1 has a ratio of a maximum print area to a base area that has a value of 1, it may be determined that a portion of the 3D model 218 corresponding to the first connected component 518_c1 may be printable. For example, while the portion of the 3D model 218 corresponding to the first connected component 518_c1 may be printable, a feature of the 3D model 218 corresponding to the second connected component 518_c2 may become detached from a build platform when printed, which may cause a printed part to be different from the intended 3D model 218. In other words, while larger portions of the 3D model 218 may appear to be topologically valid for a printing process, sub-portions of the 3D model 218 (i.e., features of the 3D model 218) may still not print correctly, which may cause a printed part to be different from the intended 3D model 218. For example, different from that shown, if label 1 had a ratio of a maximum print area to a base area that had a value of 5, then it may be determined that the entire 3D model 218 is suboptimal. In other words, different from that shown, if label 1 had a ratio of a maximum print area to a base area that had a value of 5, then it may be determined that the first connected component 518_c1 (which has subsumed the second and third connected components 518_c2 and 518_c3) is an insufficient build platform contact feature, and thus the 3D model 218 as a whole may be unprintable. As discussed above, merging the relevant data from label 2 into the data for label 1 and setting aside label 2 (e.g., during the build process) may help in identifying sub-portions (i.e., suboptimal features) of the 3D model 218 that may not print correctly, in addition to being able to evaluate the printability of the 3D model 218 as a whole.
[0096] While example threshold value(s) for the ratio of the maximum print area to the base area are discussed above, it will be understood that these threshold value(s) may vary depending on the hardware of an additive manufacturing apparatus (e.g., see the additive manufacturing apparatus 100 of FIG.1). For example, different types of windows (e.g., see the window 110 in FIG.1) and / or build platforms (e.g., see the build platform 104 in FIG.1) may have different adhesive forces, and thus the threshold value(s) used to identify anAttorney Dkt. No.1151.254.WO insufficient build platform contact feature of the 3D model 218 may be modified in some embodiments based on the hardware of an additive manufacturing apparatus.
[0097] In some embodiments, since the third and fourth connected components 518_c3 and 518_c4 each have an undefined ratio of a maximum print area to a base area, it may be determined that the third and fourth connected components 518_c3 and 518_c4 correspond to island features of the 3D model 218 rather than insufficient build platform contact features. In other words, since the ratio of the maximum print area to the base area for each of label 3 and label 4 is undefined, it may be determined that the third and fourth connected components 518_c3 and 518_c4 correspond to island features (e.g., an attached island feature 218_2 and a detached island feature 218_3) of the 3D model 218 rather than insufficient build platform contact features.
[0098] Example predefined criteria that may be evaluated to determine whether the 3D model 218 includes a suboptimal feature has been described above. However, it will be understood that the present disclosure is not limited thereto, and other predefined criteria not mentioned above may also be evaluated.
[0099] FIG.6 is a schematic diagram illustrating a method for identifying features in the 3D model of FIG.3A, according to some embodiments of the present disclosure.
[0100] Referring to FIGS.1, 3A, 4, and 6, a similar method to that described above with reference to FIGS.2, 4, and 5A to 5E may be used identify unvented volume features of a 3D model 318a. To help illustrate example embodiments of the present disclosure, the below description will mainly focus on the 3D model 318a of FIG.3A. However, it will be understood that the present disclosure is not limited thereto. For example, in other embodiments, the 3D model may correspond to the 3D model 218 of FIG.2, or the 3D model 318b of FIG.3B, without being limited thereto.
[0101] A method for identifying features in a 3D model 318a may include analyzing the 3D model 318a to determine whether the 3D model 318a includes a suboptimal feature (step 420).
[0102] The 3D model 318a may include a plurality of layers 618a to 618d, each of which may be a thin horizontal layer. The layers 618a to 618d of the 3D model 318a may be considered as thin slices of the 3D model 318a. The layers 618a to 618d may represent the volume and / or area of the 3D model 318a by dividing the 3D model 318a into layers (i.e., thin slices) that can be stacked to reconstruct the 3D model 318a, thereby providing a voxel representation of the 3D model 318a. For example, the geometry of the 3D model 318a may be converted into a discrete grid of voxels, which forms a 3D mesh. Although notAttorney Dkt. No.1151.254.WO specifically shown in FIG.6, it will be understood that each of the layers 618a to 618d may include a plurality of voxels. For example, the voxels may be pixels that represent the volume and / or area of the 3D model 318a. To help illustrate example embodiments of the present disclosure, the layers 618a to 618d in FIG.6 do not reconstruct an exact replica of the 3D model 318a. In actual practice, it will be understood that the layers 618a to 618d may be stacked to closely reconstruct the 3D model 318a. The layers 618a to 618d may be used to represent or model a build process for the 3D model 318a. For example, a layer-by-layer analysis may be performed on the 3D model 318a using the layers 618a to 618d. The thicknesses of the layers 618a to 618d may be exaggerated in FIG.6 to help illustrate example embodiments of the present disclosure. In actual practice, it will be understood that the layers 618a to 618d may be much thinner than that shown in FIG.6. In addition, while the 3D model 318a (e.g., the voxel representation of the 3D model 318a) is shown as including four layers 618a to 618d in FIG.6, the present disclosure is not limited thereto. It will be understood that the 3D model 318a may include more or less than four layers.
[0103] In some embodiments, analyzing the 3D model 318a may include analyzing a first layer 618a of the 3D model 318a. Although not specifically shown in FIG.6, the first layer 618a may include a plurality of voxels. For example, the plurality of voxels may include occupied voxels that intersect the geometry of the 3D model 318a in the first layer 618a (i.e., contain part of the 3D model 318a in the first layer 618a), and unoccupied voxels that do not intersect the geometry of the 3D model 318a in the first layer 618a (i.e., contain empty space in the first layer 618a).
[0104] In some embodiments, analyzing the 3D model 318a may include grouping together adjacent ones of the voxels (e.g., connected regions of occupied voxels) into connected components 628 (represented by diagonal stripes in FIG.6). For example, the connected components 628 may be formed to reconstruct the 3D model 318a (e.g., to provide a voxel representation of the 3D model 318a). To help illustrate example embodiments of the present disclosure, the connected components 628 in FIG.6 do not form an exact replica of the 3D model 318a. In actual practice, it will be understood that the connected components 628 collectively may closely resemble the 3D model 318a. In some embodiments, each of the connected components 628 may be assigned a label. The description of the connected components 628 and the labels may be similar to or the same as that described above with reference to FIGS.2, 4, and 5A to 5E, and thus further description thereof will be omitted.
[0105] In FIG.6, numbers may indicate unoccupied voxels of the plurality of layers 618a to 618d. For example, the unoccupied voxels may correspond to one or more cavities ofAttorney Dkt. No.1151.254.WO the 3D model 318a (i.e., voids in the 3D model 318a). Labels having a zero value (0) may indicate that the unoccupied voxels corresponding to these labels are outside of the connected components 628 of the 3D model 318a during a build process (e.g., are not trapped between the connected components 628), which allows the liquid resin 108 to freely exit from these unoccupied voxels during a build process.
[0106] In the first layer 618a, labels having a zero value may be located outside the connected components 628, as the unoccupied voxels corresponding to these labels are not trapped between the connected components 628 and may thus allow the liquid resin 108 to exit. Labels having a value of 1 and a value of 2 may be located between respective ones of the connected components 628. In other words, if a label assigned in the first layer 618a has a value greater than zero, it may indicate that the unoccupied voxels corresponding to this label in the first layer 618a are sealed against a build platform (represented as a build platform model 222) and are trapped between connected components 628, and thus these unoccupied voxels are not vented. The labels having a value of 1 may indicate that the unoccupied voxels corresponding to these labels are enclosed between a build platform (represented as a build platform model 222) and ones of the connected components 628, and thus form a first cavity of the 3D model 318a that is not vented during the build process. Similarly, the label having a value of 2 may indicate that the unoccupied voxels corresponding to this label are enclosed between a build platform (represented as a build platform model 222) and ones of the connected components 628, and thus form a second cavity of the 3D model 318a that is not vented during the build process.
[0107] Analyzing the 3D model 318a may include analyzing a second layer 618b of the 3D model 318a. In the second layer 618b, labels having a value of 1 may be located between ones of the connected components 628. The labels having a value of 1 may indicate that the unoccupied voxels corresponding to these labels are enclosed between ones of the connected components 628, and are thus included in the first cavity of the 3D model 318a that is not vented during the build process.
[0108] Analyzing the 3D model 318a may include analyzing a third layer 618c of the 3D model 318a. In the third layer 618c, all the labels may have a zero value. For example, as shown by an imaginary line 624, all the unoccupied voxels in the third layer 618c may have a path that allows the liquid resin 108 to freely exit from the unoccupied voxels without being entrapped between ones of the connected components 628 during the build process. In other words, none of the unoccupied voxels in the third layer 618c may be entrapped between ones of the connected components 628 without a path for the liquid resin 108 to exit to theAttorney Dkt. No.1151.254.WO outside of the 3D model 318a. In some embodiments, the labels having a value of 1 and a value of 2 may be stored (e.g., set aside) at this time, which indicates that they are now vented at this point in the build process.
[0109] Analyzing the 3D model 318a may include analyzing a fourth layer 618d of the 3D model 318a. For example, as shown by an imaginary line 626, all the unoccupied voxels in the fourth layer 618d may have a path that allows the liquid resin 108 to freely exit from the unoccupied voxels without being entrapped between ones of the connected components 628. In other words, none of the unoccupied voxels in the fourth layer 618d may be entrapped between ones of the connected components 628 without a path for the liquid resin 108 to exit to the outside of the 3D model 318a.
[0110] After analyzing each of the plurality of layers 618a to 618d, analyzing the 3D model 318a may include evaluating the data of the unoccupied voxels based on predefined criteria to determine whether the 3D model 318a includes a suboptimal feature. In some embodiments, analyzing the 3D model 318a may include identifying ones of the unoccupied voxels that are between ones of the connected components 628, and determining whether the ones of the unoccupied voxels correspond to an unvented volume feature of the 3D model 318a based on the predefined criteria. For example, the data for the labels corresponding to the unoccupied voxels may be evaluated based on the predefined criteria to determine whether the 3D model 318a includes a suboptimal feature (e.g., an unvented volume feature).
[0111] In some embodiments, the predefined criteria may include evaluating whether a value of the labels exceeds a threshold value. For example, the threshold value may be zero (0), but is not limited thereto. In this case, it may be determined that the labels having a value of 1 and a value of 2 correspond to unvented volume features of the 3D model 318a (highlighted in gray at the bottom of FIG.6), since these labels correspond to unoccupied voxels of the 3D model 318a that were unvented until the third layer 618c was analyzed (e.g., in the build process). Accordingly, it may be determined that the 3D model 318a includes a suboptimal feature (e.g., the unvented volume feature 318a_1).
[0112] For example, if a printed part 106 was formed using the 3D model 318a as a build model, cavities in the printed part 106 that correspond to the unoccupied voxels for the labels having a value of 1 or 2 may be unvented in the printing process (i.e., the build process) until a layer of the printed part 106 corresponding to the third layer 618c is printed. As a result, the liquid resin 108 may initially be trapped in the printed part 106 (e.g., in the cavities of the printed part 106) until a layer of the printed part 106 corresponding to the third layer 618c is printed, at which point the liquid resin 108 may then freely exit to the outside ofAttorney Dkt. No.1151.254.WO the printed part 106. However, before the layer of the printed part 106 corresponding to the third layer 618c is printed, a pressure vacuum may be created in the printed part 106 due to the unvented volume feature(s), which can cause print defects such as, for example, blow out of the printed part 106, fringing of the printed part 106, and / or vacuum lines in the printed part 106, thereby causing the printed part 106 to be different from the intended 3D model 318a.
[0113] While the insufficient build platform contact feature 218_1, the attached island feature 218_2, the detached island feature 218_3, and the unvented volume feature 318a_1 have been described above with reference to FIGS.2, 3A, 4, 5A to 5E, and 6 as example features of 3D models that may be suboptimal features, the present disclosure is not limited thereto. For example, other suboptimal features that may be identified by analyzing a 3D model using the methods described above may include, for example, an overhang feature (e.g., see the overhang feature 318b_1 in FIG.3B), a feature of a 3D model requiring additional support (e.g., for reasons other than adhesion to the build platform), a feature of a 3D model that is likely to break during the build process, and a fillet feature of a 3D model that is likely to cause adhesion issues on the build platform. It will be appreciated that other features in a 3D model not mentioned above may also be determined as suboptimal features using the methods described above, and the present disclosure is not limited to the above- described suboptimal features.
[0114] Referring back to FIGS.2 and 4, the method may further include outputting a notification indicating whether the 3D model 218 includes a suboptimal feature (step 430). For example, a 3D model design system may provide a notification (e.g., to alert a user) that the 3D model 218 includes at least one suboptimal feature. In some embodiments, the notification may be, but is not limited to, an on-screen alert, a pop-up notification, or a status indicator. For example, the status indicator may be a visual indicator or icon that identifies the suboptimal feature(s) in the 3D model 218 within the user interface 220. The status indicator may highlight or otherwise indicate within the user interface 220 where the suboptimal feature(s) of the 3D model 218 are located. For example, the status indicator may highlight the insufficient build platform contact feature 218_1, the attached island feature 218_2, and the detached island feature 218_3 of the 3D model 218. As another example, the status indicator may highlight the unvented volume feature 318a_1 and / or the overhang feature 318b_1 (see FIGS.3A and 3B).
[0115] In some embodiments, a ratio of a maximum print area to a base area (i.e., a maximum ratio of a print area to a contact area), a height, and / or a volume (or area) of theAttorney Dkt. No.1151.254.WO insufficient build platform contact feature 218_1 may be evaluated against predefined criteria to determine whether the insufficient build platform contact feature 218_1 is indicated (or highlighted / flagged) by the notification. The predefined criteria may include threshold values for the ratio of the maximum print area to the base area, the height, and the volume (or area) of the insufficient build platform contact feature 218_1. For example, the threshold value for the ratio of the maximum print area to the base area of the insufficient build platform contact feature 218_1 may be 10, the threshold value for the height of the insufficient build platform contact feature 218_1 may be 1 mm, and the threshold value for the volume of the insufficient build platform contact feature 218_1 may be 0.5 mm3, but are not limited thereto. In this case, if the insufficient build platform contact feature 218_1 has a ratio of a maximum print area to a base area greater than 10, a height greater than 1 mm, and a volume greater than 0.5 mm3, the insufficient build platform contact feature 218_1 may be indicated by the notification as a suboptimal feature of the 3D model 218. If the insufficient build platform contact feature 218_1 has a ratio of a maximum print area to a base area less than or equal to 10, a height less than or equal to 1 mm, or a volume less than or equal to 0.5 mm3, the insufficient build platform contact feature 218_1 may not be indicated by the notification as a suboptimal feature of the 3D model 218. While example threshold values for flagging the insufficient build platform contact feature 218_1 are discussed above, it will be understood that these threshold values may vary depending on the hardware of an additive manufacturing apparatus (e.g., see the additive manufacturing apparatus 100 of FIG.1).
[0116] In some embodiments, the volume (or area) of the detached island feature 218_3 may be evaluated against predefined criteria to determine whether the detached island feature 218_3 is indicated (or highlighted / flagged) by the notification. The predefined criteria may include a threshold value for the volume (or area) of the detached island feature 218_3. For example, the threshold value for the volume of the detached island feature 218_3 may be 0.1 mm3, but is not limited thereto. In this case, if the detached island feature 218_3 has a volume greater than 0.1 mm3, the detached island feature 218_3 may be indicated by the notification as a suboptimal feature of the 3D model 218. If the detached island feature 218_3 has a volume less than or equal to 0.1 mm3, the detached island feature 218_3 may not be indicated by the notification as a suboptimal feature of the 3D model 218.
[0117] In some embodiments, outputting the notification includes providing a recommendation for a corrective measure to the 3D model 218 in response to determining that the 3D model 218 includes a suboptimal feature. The corrective measure may be determined based on the suboptimal feature. For example, the 3D model design system mayAttorney Dkt. No.1151.254.WO generate a report that describes the suboptimal feature(s) in the 3D model 218 and provides recommendations for modifications or corrections to the 3D model 218. The report may list the suboptimal feature(s) within the 3D model 218 and identify each suboptimal feature, with attributes such as location, size, and / or type of issue (e.g., attached island, detached island, insufficient contact with build platform, overhang, unvented volume, etc.). In some embodiments, the report may describe the risk of failure when using the 3D model 218 as a build model for a 3D part. For example, the report may describe that the detached island feature 218_3 will not be included in the 3D printed part, or that the attached island feature 218_2 has a low chance of being included in the 3D printed part (e.g., due to risk of being lifted off). In some embodiments, the report may indicate that there is a high risk of hardware damage to an additive manufacturing apparatus, a high risk of lost production time, and / or a high risk of a feature not being included in the 3D printed part based on predefined criteria. The predefined criteria may include a threshold value for the ratio of the maximum print area to the base area of the insufficient build platform contact feature 218_1 and / or a threshold value for the volume of the detached island feature 218_3. For example, the report may indicate the high risk when the threshold value for the ratio of the maximum print area to the base area of the insufficient build platform contact feature 218_1 is greater than 50 and / or when threshold value for the volume of the detached island feature 218_3 is greater than 1000 mm3, although embodiments are not limited thereto. In some embodiments, the report may include recommendations for each suboptimal feature in the 3D model 218. These recommendations may suggest modifications to the 3D model 218, removal of the suboptimal feature from the 3D model 218, and the like, which may increase the likelihood of a successful print.
[0118] The method may further include performing a corrective measure on the 3D model 218 in response to determining that the 3D model 218 includes a suboptimal feature (step 440). For example, performing the corrective measure on the 3D model 218 may include, but is not limited to, removing the suboptimal feature(s) from the 3D model 218, adding supports to the 3D model 218, reorienting the 3D model 218 (e.g., on the build platform model 222), redesigning the 3D model 218 to include vent holes (e.g., adding exterior holes to the 3D model), extruding or projecting the suboptimal feature to a plane corresponding to a build platform (e.g., represented as the build platform model 222) to ensure the suboptimal feature contacts the build platform, adding gusset-like features to the 3D model 218, redesigning the 3D model 218 to include a larger cross-section on the build platform model 222, redesigning the 3D model 218 to include smaller cross-sectionsAttorney Dkt. No.1151.254.WO throughout the 3D model 218, redesigning the 3D model 218 to avoid sudden changes in cross-sections, redesigning the 3D model 218 to include thicker walled features, redesigning the 3D model 219 to include wall features with substantially uniform thicknesses, and the like. In some embodiments, performing the corrective measure on the 3D model 218 may be an automated process by the 3D design system (e.g., done without user input) that is performed in response to determining that the 3D model 218 includes a suboptimal feature. In other embodiments, a user may perform the corrective measure for the 3D model 218.
[0119] Adding supports and / or gusset-like features to the 3D model 218 may help resist suction forces. For example, adding supports to the 3D model 218 between the build platform model 222 and each of the insufficient build platform contact feature 218_1, the attached island feature 218_2, and the detached island feature 218_3 may improve the likelihood that each of these features prints. The supports may improve adhesion between the insufficient build platform contact feature 218_1 and a build platform (e.g., see the build platform 104 in FIG.1). The supports may also allow for the attached island feature 218_2 and the detached island feature 218_3 to be connected to the build platform during the printing process. Adding supports between an unvented volume feature (e.g., see the unvented volume feature 318a_1 in FIG.3A) and the build platform model 222 may provide venting near the build platform during the printing process. Further, adding supports between an overhang feature (e.g., see the overhang feature 318b_1 in FIG.3B) and the build platform model 222 may help the overhang feature resist suction forces during the printing process.
[0120] For example, the supports may include bar supports and / or fence supports. The bar supports may be thin, elongated structures that are connected to the 3D model 218 to provide additional support during the printing process. The fence supports may be structures that create a grid of supports (e.g., resembling a fence) and are connected to the 3D model 218 to provide additional support during the printing process. The supports may later be removed from a printed part (e.g., see the printed part 106 in FIG.1) during subsequent processing of the printed part (i.e., post-processing of the printed part).
[0121] Adding vent holes to the 3D model 218 may improve the likelihood that an unvented volume feature of the 3D model 218 prints. For example, the vent holes may provide a means for liquid resin (e.g., see the liquid resin 108 in FIG.1) to escape outside of the 3D model 218 during the printing process. Reorienting the 3D model 218 may reduce island features and overhang features and may improve a contact area with a build platform. For example, reorienting the 3D model 218 may allow for the attached island feature 218_2Attorney Dkt. No.1151.254.WO and the detached island feature 218_3 to be connected to a build platform and may improve a contact area between the 3D model 218 and the build platform.
[0122] The method may further include forming a printed part using the 3D model 218 as a build model for the printed part (step 450). Referring to FIGS.1, 2, and 4, for example, the printed part 106 may be formed using the 3D model 218 as a build model for the printed part 106 in a printing process.
[0123] By performing the above-described steps, the risk of print failure during the printing process may be reduced, material waste during the printing process may be minimized, production times may be streamlined, and hardware damage to the additive manufacturing apparatus 100 may be avoided, thereby saving time and costs for the printing process while improving the overall reliability and performance of the 3D printed part 106.
[0124] FIG.7 is an example flowchart illustrating a method for preparing a 3D model for an additive manufacturing process, according to some embodiments of the present disclosure. To help illustrate example embodiments of the present disclosure, the below description will mainly focus on the 3D model 218 of FIG.2. However, it will be understood that the present disclosure is not limited thereto. For example, in other embodiments, the 3D model may correspond to the 3D model 318a of FIG.3A, or the 3D model 318b of FIG.3B, without being limited thereto.
[0125] Referring to FIGS.2 and 7, a method for preparing a 3D model 218 for an additive manufacturing process may include receiving a 3D model 218 for an additive manufacturing process (step 410). Step 410 is described above with reference to FIGS.2 and 4, and thus repeated description thereof will be omitted.
[0126] The method may further include performing a repair operation on the 3D model 218 (step 720). The repair operation may include one or more modifications or corrections to the 3D model 218 to improve the likelihood of a successful print. The repair operation may be an initial operation that screens the 3D model 218 for readily detectable features which may be unsuitable for printing.
[0127] The method may further include performing an autosnap operation on the 3D model 218 (step 730). The autosnap operation (which may also be referred to as an auto orientation process) may include automatically finding the flattest surface of the 3D model 218 to place on a build platform. The autosnap operation may automatically align and position parts of the 3D model 218 to increase the likelihood of a successful print. For example, the orientation of the 3D model 218 may correspond to the position of a printed part (e.g., see the printed part 106 in FIG.1) in the XYZ coordinate axis system relative to a buildAttorney Dkt. No.1151.254.WO platform (e.g., see the build platform 104 in FIG.1) and a print direction. Printing time, resin usage and labor may all be affected by the orientation of the 3D model 218. The autosnap operation aims to optimize the orientation of the 3D model 218.
[0128] The method may further include performing an autotrim operation on the 3D model 218 (step 740). The autotrim operation may include automatically orienting the bottom of the 3D model 218 to be flush on a build platform. In some embodiments, the autotrim operation may include automatically trimming or cutting parts of the 3D model 218 to improve the likelihood of a successful print. For example, the autotrim operation may remove excess geometry from the 3D model 218.
[0129] The method may further include performing an autosupport operation on the 3D model (step 750). The autosupport operation may include automatically generating supports for the 3D model 218, which may improve the likelihood of a successful print. For example, the 3D model 218 may be analyzed to identify areas of the 3D model 218 where supports would be helpful. This may include detecting geometries of the 3D model 218 that are not self-supporting during a printing process. For example, angles and distances from a build platform to the 3D model 218 may be evaluated to determine which parts of the 3D model 218 may need supports. Supports may then be generated and added to the 3D model 218. The autosupport operation may optimize the supports by adding the least amount of supports that are necessary, thereby minimizing material waste and reducing the amount of post-processing work.
[0130] The method may further include analyzing the 3D model 218 to determine whether the 3D model 218 includes a suboptimal feature (step 420). Step 420 is described above with reference to FIGS.2, 3A, 4, 5A to 5E, and 6, and thus repeated description thereof will be omitted. Step 420 may be used as an additional means for preparation of the 3D model 218 to avoid the 3D model 218 being used as a build model for a 3D part while still including unprintable and / or undesirable features (i.e., suboptimal features). In other words, step 420 may be used as an additional measure of protection when preparing the 3D model 218 for an additive manufacturing process to detect unprintable and / or undesirable features of the 3D model 218 that may not have been detected in steps 720 to 750.
[0131] In some embodiments, step 420 may be used as an initial analysis method to identify unprintable and / or undesirable features of the 3D model 218 (i.e., suboptimal features of the 3D model 218), and then finite element analysis (FEA) may be performed to simulate and analyze how different parts of the 3D model 218 respond to, for example, stresses, forces, and other physical effects induced by the printing process (i.e., the buildAttorney Dkt. No.1151.254.WO process) and whether these are likely to cause a print failure. For example, after identifying one or more suboptimal features of the 3D model 218 in step 420, FEA may be applied to the suboptimal feature(s) (e.g., to the connected component(s) corresponding to the suboptimal feature(s)), which may help in getting a more precise understanding of how the suboptimal feature(s) will behave under the conditions expected during the printing process.
[0132] Although not shown in FIG.7, in other embodiments, step 420 may be performed before steps 720 to 750. In this case, step 420 may be used an initial means of preparing the 3D model 218 for an additive manufacturing process before proceeding to steps 720 to 750, which may streamline a process for preparing the 3D model 218.
[0133] While FIG.7 shows that performing the repair operation on the 3D model 218 (step 720), performing the autosnap operation on the 3D model 218 (step 730), performing the autotrim operation on the 3D model 218 (step 740), and performing the autosupport operation on the 3D model (step 750) are performed in conjunction with step 420, it will be understood that the present disclosure is not limited thereto. In some embodiments, each of step 720, step 730, step 740, and step 750 may be performed independently of step 420. Further, each of step 720, step 730, step 740, and step 750 may be performed independently of one another or in various combinations with one another.
[0134] Example embodiments of the present disclosure provide methods and systems for identification of unprintable and / or undesirable features (i.e., suboptimal features) in a 3D model, along with appropriate correction of these features. Accordingly, example embodiments of the present disclosure may help prevent print failures, reduce material waste, streamline production times, and avoid hardware damage, thereby saving time and costs for a printing process while improving the overall reliability and performance of a 3D printed part.
[0135] Unless otherwise defined, all terms used herein have the same meaning as commonly understood by one of ordinary skill in the art. Further, all terms should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and the present disclosure and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0136] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of embodiments. The singular forms “a”, “an”, and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. The terms “comprises”, “comprising”, “includes”, “including”, “has”, “having” and any other variations thereof specify the presence of the stated features, steps, operations, elements, components and / or groups, but do not preclude the presence orAttorney Dkt. No.1151.254.WO addition of one or more other features, steps, operations, elements, components and / or groups thereof.
[0137] Example embodiments may be described herein with reference to the accompanying drawings. Many different forms and embodiments are possible without deviating from the teachings of the present disclosure. Accordingly, the present disclosure should not be construed as limited to the example embodiments set forth herein. As such, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the scope of the present disclosure. The present specification, including the drawings, shall be construed to constitute a complete written description of all combinations and subcombinations of the embodiments described herein, and of the manner and process of making and using them, and shall support claims to any such combination or subcombination.
[0138] The example embodiments are mainly described in terms of particular methods and devices provided in particular implementations. However, the methods and devices may operate effectively in other implementations. Phrases such as “example embodiment”, “one embodiment”, “embodiment” and “another embodiment” may refer to the same or different embodiments as well as to multiple embodiments. The embodiments are described with respect to systems and / or devices having certain components. However, the systems and / or devices may include fewer or additional components than those shown, and variations in the arrangement and type of the components may be made without departing from the scope of the present disclosure.
[0139] The example embodiments are also described in the context of particular methods having certain steps or operations. However, the methods and devices may operate effectively for other methods having different and / or additional steps / operations and steps / operations in different orders that are not inconsistent with the example embodiments. Thus, the present disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.
[0140] As will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc.) or combining software and hardware implementation that may all generally be referred to herein as a “circuit,” “module,” “component,” or “system.”Attorney Dkt. No.1151.254.WO Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
[0141] Any combination of one or more computer readable media may be utilized. The computer readable media may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an appropriate optical fiber with a repeater, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[0142] A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0143] Aspects of the present disclosure may be described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or otherAttorney Dkt. No.1151.254.WO programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable instruction execution apparatus, create a mechanism for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. As used herein, “a processor” may refer to one or more processors.
[0144] These computer program instructions may also be stored in a computer readable medium that when executed can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions when stored in the computer readable medium produce an article of manufacture including instructions which when executed, cause a computer to implement the function / act specified in the flowchart and / or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable instruction execution apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatuses or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0145] The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various aspects of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. Although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware- based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.Attorney Dkt. No.1151.254.WO
[0146] Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, JavaScript, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, JSON, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user’s computer, partly on the user’s computer, as a stand- alone software package, partly on the user’s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS).
[0147] The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the scope of the present disclosure. Thus, to the maximum extent allowed by law, the scope is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Claims
Attorney Dkt. No.1151.254.WO Claims:
1. A method for identifying features in a three-dimensional (3D) model, the method comprising: receiving a 3D model; analyzing the 3D model to determine whether the 3D model comprises a suboptimal feature; and outputting a notification indicating whether the 3D model comprises the suboptimal feature.
2. The method of Claim 1, wherein analyzing the 3D model comprises: analyzing a first layer of the 3D model, the first layer comprising a plurality of first voxels; and grouping ones of the first voxels into one or more connected components.
3. The method of Claim 2, wherein analyzing the 3D model further comprises storing data of the one or more connected components.
4. The method of Claim 3, wherein the data comprises at least one of a print area, a base area, a volume, or a height of the one or more connected components.
5. The method of Claim 3 or 4, wherein analyzing the 3D model further comprises: analyzing a second layer of the 3D model, the second layer comprising a plurality of second voxels; grouping ones of the second voxels into the one or more connected components; and updating the data of the one or more connected components based on the ones of the second voxels.
6. The method of Claim 5, wherein analyzing the 3D model further comprises: sequentially analyzing remaining layers of the 3D model, each of the remaining layers comprising a plurality of third voxels; grouping ones of the third voxels into the one or more connected components; andAttorney Dkt. No.1151.254.WO updating the data of the one or more connected components based on the ones of the third voxels.
7. The method of Claim 6, wherein analyzing the 3D model further comprises evaluating the data of the one or more connected components based on predefined criteria to determine whether the 3D model comprises the suboptimal feature.
8. The method of Claim 7, wherein the data comprises a contact area and a print area of the one or more connected components, wherein the contact area corresponds to a contact area with a build platform, and wherein evaluating the data of the one or more connected components based on the predefined criteria comprises determining whether a maximum ratio of the print area to the contact area exceeds a threshold value.
9. The method of Claim 8, wherein analyzing the 3D model further comprises determining that the 3D model comprises an insufficient build platform contact feature in response to the maximum ratio of the print area to the contact area exceeding the threshold value, and wherein the suboptimal feature comprises the insufficient build platform contact feature.
10. The method of any of Claims 6 to 9, wherein analyzing the first layer, the second layer, and the remaining layers of the 3D model is sequentially performed to represent a build process for the 3D model, wherein analyzing the 3D model further comprises grouping other ones of the third voxels into a new connected component, and wherein the other ones of the third voxels are separated from the one or more connected components during at least a portion of the build process.
11. The method of Claim 10, wherein analyzing the 3D model further comprises determining that the 3D model comprises an island feature in response to the other ones of the third voxels being grouped into the new connected component, and wherein the suboptimal feature comprises the island feature.Attorney Dkt. No.1151.254.WO 12. The method of any preceding Claim, further comprising performing a corrective measure on the 3D model in response to determining that the 3D model comprises the suboptimal feature, wherein performing the corrective measure comprises at least one of removing the suboptimal feature from the 3D model, adding one or more supports to the 3D model, reorienting the 3D model, adding one or more vent holes to the 3D model, or extruding or projecting the suboptimal feature to a plane corresponding to a build platform.
13. The method of any preceding Claim, wherein the suboptimal feature comprises at least one of an insufficient build platform contact feature, an attached island feature, a detached island feature, or an unvented volume feature.
14. The method of any preceding Claim, further comprising forming a printed part using the 3D model as a build model for the printed part.
15. A method for identifying features in a three-dimensional (3D) model, the method comprising: sequentially analyzing layers of a 3D model, each of the layers comprising a plurality of voxels; grouping ones of the voxels into connected components and tracking data of the connected components; assigning labels to the connected components and recording the data to the labels; updating the data for each of the labels after analyzing respective ones of the layers of the 3D model; and evaluating the data based on predefined criteria to determine whether the 3D model comprises a suboptimal feature.
16. The method of Claim 15, wherein the data comprises a contact area and a print area of a respective one of the connected components, and wherein evaluating the data based on the predefined criteria comprises determining whether a maximum ratio of the print area to the contact area exceeds a threshold value.Attorney Dkt. No.1151.254.WO 17. The method of Claim 16, wherein the print area corresponds to a largest print area of the respective one of the connected components in a respective one of the layers of the 3D model, and wherein the contact area corresponds to a contact area with a build platform.
18. The method of any of Claims 15 to 17, wherein sequentially analyzing the layers of the 3D model is performed to represent a build process for the 3D model, and wherein the method further comprises merging the data from respective ones of the labels in response to two or more of the connected components becoming connected to each other during the build process.
19. The method of any of Claims 15 to 18, further comprising assigning a new label to ones of the connected components that are formed after analyzing a first one of the layers of the 3D model, wherein analyzing the first one of the layers of the 3D model is performed before analyzing remaining ones of the layers of the 3D model.
20. The method of any of Claims 15 to 19, further comprising performing a corrective measure on the 3D model in response to determining that the 3D model comprises the suboptimal feature, wherein the suboptimal feature comprises at least one of an insufficient build platform contact feature, an attached island feature, a detached island feature, or an unvented volume feature.
21. The method of any of Claims 15 to 20, wherein the data comprises a contact area of a respective one of the connected components, wherein the contact area corresponds to a contact area with a build platform, and wherein evaluating the data based on the predefined criteria comprises determining whether the contact area is below a threshold value.
22. The method of any of Claims 15 to 21, wherein the plurality of voxels comprise occupied voxels intersecting geometry of the 3D model and unoccupied voxels that do not intersect the geometry of the 3D model, wherein ones of the occupied voxels are grouped into the connected components,Attorney Dkt. No.1151.254.WO wherein the method further comprises: identifying ones of the unoccupied voxels that are between ones of the connected components; and determining whether the ones of the unoccupied voxels correspond to an unvented volume feature of the 3D model based on the predefined criteria, and wherein the suboptimal feature comprises the unvented volume feature.
23. A computer program product, comprising: a tangible non-transitory computer-readable storage medium comprising computer- readable program code embodied in the computer-readable storage medium that when executed by at least one processor causes the at least one processor to perform operations comprising: analyzing a three-dimensional (3D) model to determine whether the 3D model comprises a suboptimal feature; and outputting a notification indicating whether the 3D model comprises the suboptimal feature.
Citation Information
Patent Citations
Continuous liquid interphase printing
US9205601B2
Method and apparatus for three-dimensional fabrication
US9211678B2
Method and apparatus for three-dimensional fabrication with feed through carrier
US9216546B2
Slicing preprocessing 3D model suspension detection methods
CN113370526A
Method and system for adapting a 3D printing model
EP3026638A1