Feature protection for three-dimensional printing

In some examples, with respect to feature protection for three-dimensional printing, a three-dimensional model of a three-dimensional object to be printed may be ascertained. A determination may be made as to whether a configuration of a three-dimensional model feature of the three-dimensional model matches a removable feature configuration from a set of removable feature configurations. Based on a determination that the configuration of the three-dimensional model feature of the three-dimensional model matches the removable feature configuration from the set of removable feature configurations, the three-dimensional model feature may be removed from the three-dimensional model to generate a modified three-dimensional model.

BACKGROUND

In three-dimensional printing, a three-dimensional object may be formed, for example, by successively adding layers of material under computer control. The three-dimensional object may be based on a three-dimensional model that is utilized by a three-dimensional printer. Various techniques may be implemented to ensure quality of features of the three-dimensional object.

DETAILED DESCRIPTION

Feature protection for three-dimensional printing apparatuses, methods for feature protection for three-dimensional printing, and non-transitory computer readable media having stored thereon machine readable instructions to provide feature protection for three-dimensional printing are disclosed herein. The apparatuses, methods, and non-transitory computer readable media disclosed herein provide for selective saving of particular features (e.g., relatively thin features such as hair, fins, etc.) of a three-dimensional object (e.g., a head of a person, a beam including fins, etc.) that may not be present in a final build result of the three-dimensional object. For example, particular features of a three-dimensional object may be saved by either growing the features (e.g., increasing a thickness of hairs, etc.) or keeping the features the same size, while shrinking (e.g., eroding) other features of the three-dimensional object. In this regard, relatively large features may be shrunk by eroding, smaller features may be grown by dilation, or a combination of both eroding and dilation may be applied to the three-dimensional object.

As disclosed herein, a three-dimensional object may be based on a three-dimensional model that is utilized by a three-dimensional printer to generate the three-dimensional object. In certain cases, the three-dimensional model may include features that may be too thin to be printed consistently without breaking apart. For example, the three-dimensional model may represent a head of a person and include hairs that may be relatively thin (e.g., one voxel thin). In this regard, it may be technically challenging to generate the three-dimensional object to accurately retain the relatively thin features of the three-dimensional model, without the relatively thin features breaking apart or being poorly reproduced. According to another example, a three-dimensional object formed by the three-dimensional printing may be subject to thermal expansion. In this regard, erosion may be applied to outer layers of voxels of the three-dimensional object to shrink the three-dimensional object to counteract dimensional variation due to size dependent temperature effects. In this regard, it may be technically challenging to prevent undesirable shrinkage and/or elimination of relatively thin features of the three-dimensional object due to the applied erosion. In a similar manner, with respect to a ‘chemical binder’ system where a binder fluid may ‘bleed’ into powder areas beyond where it was printed, it may be technically challenging prevent undesirable ‘bleed’ of the binder fluid. Yet further, with respect to the metal three-dimensional printing systems where a binder agent is applied in a printer to a bed of powder to generate a ‘green part’, and where the ‘green part’ is subsequently fused/sintered in a separate oven/furnace, it may be technically challenging to accurately form the ‘green part’.

The apparatuses, methods, and non-transitory computer readable media disclosed herein address at least the aforementioned technical challenges by selectively saving, as disclosed herein, particular features (e.g., relatively thin features) of a three-dimensional object that may not otherwise be present in a final build result of the three-dimensional object. For example, particular features of a three-dimensional object may be saved, or preserved, by either growing the features or keeping the features the same size. In this regard, other features of the three-dimensional object may be shrunk (e.g., by eroding). For example, after a three-dimensional model of a three-dimensional object is divided (e.g., by slicing) into layers of voxels (e.g., three-dimensional pixels), the apparatuses, methods, and non-transitory computer readable media disclosed herein may be implemented to retain or grow relatively small features that may be too thin or fragile to be present after the three-dimensional object has been printed. In this regard, the relatively small features may also be retained or grown depending on the accuracy of the three-dimensional printer (e.g., the erosion and dilation techniques as disclosed herein may be applied to features which are below a comparative dimensional threshold). The apparatuses, methods, and non-transitory computer readable media disclosed herein may identify a skeleton (e.g., a backbone) of a three-dimensional model, and then selectively dilate (e.g., opposite of erosion) the skeleton to add it back into the original three-dimensional model.

The apparatuses, methods, and non-transitory computer readable media disclosed herein may provide for implementation of relatively small feature protection to a three-dimensional model of a three-dimensional object. In this regard, small features may be grown arbitrarily large in order to ensure that they are ultimately present in the printed three-dimensional object.

The apparatuses, methods, and non-transitory computer readable media disclosed herein may provide for the selectively saving of particular features of a three-dimensional object by utilizing, as disclosed herein, a cut vertex lookup table that provides for connectedness when eroding voxels.

The apparatuses, methods, and non-transitory computer readable media disclosed herein may provide for the selectively saving of particular features of a three-dimensional object by setting of a minimum feature size to a specified radius.

For the apparatuses, methods, and non-transitory computer readable media disclosed herein, modules, as described herein, may be any combination of hardware and programming to implement the functionalities of the respective modules. In some examples described herein, the combinations of hardware and programming may be implemented in a number of different ways. For example, the programming for the modules may be processor executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the modules may include a processing resource to execute those instructions. In these examples, a computing device implementing such modules may include the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separately stored and accessible by the computing device and the processing resource. In some examples, some modules may be implemented in circuitry.

FIG. 1illustrates an example layout of a feature protection for three-dimensional printing apparatus (hereinafter also referred to as “apparatus100”).

Referring toFIG. 1, the apparatus100may include a three-dimensional model analysis module102to ascertain a three-dimensional model104of a three-dimensional object106to be printed. For example, the three-dimensional object106may be printed by a three-dimensional printer108.

A feature configuration analysis module110may determine whether a configuration of a three-dimensional model feature112of the three-dimensional model104matches a removable feature configuration from a set of removable feature configurations114.

Based on a determination that the configuration of the three-dimensional model feature112of the three-dimensional model104matches the removable feature configuration from the set of removable feature configurations114, a three-dimensional model modification module116may remove the three-dimensional model feature112from the three-dimensional model104to generate a modified three-dimensional model. In this regard, a three-dimensional object generation module118may cause the three-dimensional object106to be printed based on the modified three-dimensional model without a voxel of the three-dimensional model feature112that has been removed.

The feature configuration analysis module110may further determine whether the configuration of the three-dimensional model feature112of the three-dimensional model104matches a non-removable feature configuration from a set of non-removable feature configurations120.

Based on a determination that the configuration of the three-dimensional model feature112of the three-dimensional model104matches the non-removable feature configuration from the set of non-removable feature configurations114, the three-dimensional model modification module116may retain the three-dimensional model feature112in the three-dimensional model104. In this regard, the three-dimensional object generation module118may cause the three-dimensional object106to be printed based on the three-dimensional model104that includes a voxel of the three-dimensional model feature112that has been retained.

A three-dimensional model feature radius analysis module122may identify a three-dimensional model feature of the modified three-dimensional model104that does not include a minimum feature radius124. In this regard, the three-dimensional model feature radius analysis module122may increase a radius of the identified three-dimensional model feature to the minimum feature radius124.

According to examples, the non-removable feature configuration may include a centrally disposed voxel of the three-dimensional model104, and the centrally disposed voxel of the three-dimensional model104may be disposed between two further voxels of the three-dimensional model104.

According to examples, the removable feature configuration may include a centrally disposed voxel of the three-dimensional model104, and the centrally disposed voxel of the three-dimensional model104may be disposed centrally and adjacent to three further voxels of the three-dimensional model104.

According to examples, the removable feature configuration may include a voxel of a set of four voxels of the three-dimensional model104the set of four voxels may form a square shape (or another type of shape) with respect to the three-dimensional model104.

Operation of the apparatus100is described in further detail with reference toFIGS. 1-3. In this regard,FIG. 2illustrates example stages of operation of the apparatus100. Further,FIG. 3illustrates examples of removable feature configurations to illustrate operation of apparatus100.

Referring toFIG. 1, as disclosed herein, particular features of a three-dimensional object may be saved by either growing the features (e.g., increasing a thickness of hairs, etc.) or keeping the features the same size, while shrinking (e.g., eroding) other features of the three-dimensional object. In this regard, referring toFIG. 2, a three-dimensional model104of a three-dimensional object106to be printed may be denoted I as shown at200. The three-dimensional model104may be formed, for example, of two-dimensional structuring elements N4, N8, etc., three-dimensional structuring element N26, or other types of two-dimensional and/or three-dimensional structuring elements as also shown inFIG. 2.

A skeleton of the three-dimensional model104may be determined. For example, as shown inFIG. 2, the skeleton of the three-dimensional model104may be represented by inner voxels214, whereas a shell of the three-dimensional model104may be represented by outer voxels204. The voxels202may represent a result of an erosion on the three-dimensional model at200.

The eroded three-dimensional model104at206may include erosion of all of the outer voxels. In this regard, erosion of all of the outer voxels may result in elimination of the six voxels at208.

Alternatively, the dilated three-dimensional model104at210may include dilation of each of the outer voxels from the original three-dimensional model104at200.

For the apparatus100, instead of eroding as shown at206or dilating as shown at210, a “safe erosion” may be performed as shown at212. For the “safe erosion” at212, as disclosed herein, the three-dimensional model analysis module102may identify features of the three-dimensional model104that are not in an “opening”. The opening operation may be described as a sequential operation of eroding an object, and then dilating the result of the erosion. The “opening” may be represented by the following operation for an N4two-dimensional structuring element, where ⊖ represents erosion, and ⊕ represents dilation:
I●N4=(I⊖N4)⊕N4
Further, the three-dimensional model analysis module102may determine the shell (e.g., at204) of the three-dimensional model104, where certain features may be removed.

As disclosed herein, the feature configuration analysis module110may determine whether a configuration of a three-dimensional model feature112of the three-dimensional model104matches a removable feature configuration from the set of removable feature configurations114. Based on a determination that the configuration of the three-dimensional model feature112of the three-dimensional model104matches the removable feature configuration from the set of removable feature configurations114, the three-dimensional model modification module116may remove the three-dimensional model feature112from the three-dimensional model104to generate a modified three-dimensional model. In this regard, the three-dimensional model modification module116may remove voxels from the three-dimensional model104that are in the shell and that are not cut vertices (e.g., voxels that connect other voxels). That is, the three-dimensional model modification module116may remove the external corners of the shell that are not cut vertices. Further, once the external corners of the shell that are not cut vertices are removed, the three-dimensional model modification module116may remove the remaining voxels in the shell that are not cut vertices. Referring toFIG. 3, examples of features that may be removed are shown at300,302, and304. The removal operation may be represented by the following operation:
IΔB=I&(˜B)
This removal operation finds the intersection of voxels that are a part of I and not a part of B.

As disclosed herein, the feature configuration analysis module110may further determine whether the configuration of the three-dimensional model feature112of the three-dimensional model104matches a non-removable feature configuration from the set of non-removable feature configurations120. Based on a determination that the configuration of the three-dimensional model feature112of the three-dimensional model104matches the non-removable feature configuration from the set of non-removable feature configurations114, the three-dimensional model modification module116may retain the three-dimensional model feature112in the three-dimensional model104. In this regard, examples of non-removable features are shown inFIG. 4, where the features at400,402, and404may not be removed.

The feature identification of features that are not in the “opening” (hereinafter also designated “non-opening feature identification”) may be performed recursively for a specified number of times (e.g., 2 times, 3 times, etc.). In this regard, the number of times a recursive identification and subsequent removal are performed may depend on factors such as a type of the three-dimensional model104, a type of the three-dimensional object106, etc. Further, the number of times a recursive identification and subsequent removal are performed may also depend on factors such as a specified number of depletions of the original three-dimensional model104.

As disclosed herein, the three-dimensional model feature radius analysis module122may identify a three-dimensional model feature of the modified three-dimensional model104that does not include a minimum feature radius124. In this regard, the three-dimensional model feature radius analysis module122may increase a radius of the identified three-dimensional model feature to the minimum feature radius124. Thus, the three-dimensional model feature radius analysis module122may implement dilation of the resulting three-dimensional model (hereinafter also designated “resulting three-dimensional model dilation”) from the “non-opening feature identification”, and add the resulting dilated three-dimensional model from the “non-opening feature identification” into the original (or eroded) three-dimensional model. This dilation with respect to the “resulting three-dimensional model dilation” may set the minimum feature radius124to a value of n, which represents the radius to which all small features are to be dilated. For example, the dilation with respect to the “resulting three-dimensional model dilation” may set the minimum feature radius124of the single voxels at214to an increased value of “1” as shown at216.

FIGS. 5-7respectively illustrate an example block diagram500, an example flowchart of a method600, and a further example block diagram700for feature protection for three-dimensional printing. The block diagram500, the method600, and the block diagram700may be implemented on the apparatus100described above with reference toFIG. 1by way of example and not limitation. The block diagram500, the method600, and the block diagram700may be practiced in other apparatus. In addition to showing the block diagram500,FIG. 5shows hardware of the apparatus100that may execute the instructions of the block diagram500. The hardware may include a processor502, and a memory504(i.e., a non-transitory computer readable medium) storing machine readable instructions that when executed by the processor502cause the processor to perform the instructions of the block diagram500. The memory504may represent a non-transitory computer readable medium.FIG. 6may represent a method for feature protection for three-dimensional printing.FIG. 7may represent a non-transitory computer readable medium702having stored thereon machine readable instructions to provide feature protection for three-dimensional printing. The machine readable instructions, when executed, cause a processor704to perform the instructions of the block diagram700also shown inFIG. 7.

The processor502ofFIG. 5and/or the processor704ofFIG. 7may include a single or multiple processors or other hardware processing circuit, to execute the methods, functions and other processes described herein. These methods, functions and other processes may be embodied as machine readable instructions stored on a computer readable medium, which may be non-transitory (e.g., the non-transitory computer readable medium702ofFIG. 7), such as hardware storage devices (e.g., RAM (random access memory), ROM (read only memory), EPROM (erasable, programmable ROM), EEPROM (electrically erasable, programmable ROM), hard drives, and flash memory). The memory504may include a RAM, where the machine readable instructions and data for a processor may reside during runtime.

Referring toFIGS. 1-5, and particularly to the block diagram500shown inFIG. 5, the memory504may include instructions506to ascertain a three-dimensional model104of a three-dimensional object106to be printed.

The processor502may fetch, decode, and execute the instructions508to determine whether a configuration of a three-dimensional model feature112of the three-dimensional model104matches a removable feature configuration from a set of removable feature configurations114.

Based on a determination that the configuration of the three-dimensional model feature112of the three-dimensional model104matches the removable feature configuration from the set of removable feature configurations114, the processor502may fetch, decode, and execute the instructions510to remove the three-dimensional model feature112from the three-dimensional model104to generate a modified three-dimensional model.

Referring toFIGS. 1-4 and 6, and particularlyFIG. 6, for the method600, at block602, the method may include ascertaining a three-dimensional model104of a three-dimensional object106to be printed.

At block604the method may include determining a shell (e.g., seeFIG. 2) that represents outer three-dimensional model features of the three-dimensional model104.

At block606the method may include determining, for the shell, whether a configuration of a three-dimensional model feature of the three-dimensional model104matches a removable feature configuration from a set of removable feature configurations114.

Based on a determination that the configuration of the three-dimensional model feature of the three-dimensional model104matches the removable feature configuration from the set of removable feature configurations114, at block608the method may include removing the three-dimensional model feature from the three-dimensional model104to generate a modified three-dimensional model.

Referring toFIGS. 1-4 and 7, and particularlyFIG. 7, for the block diagram700, the non-transitory computer readable medium702may include instructions706to ascertain a three-dimensional model104of a three-dimensional object106to be printed.

The processor704may fetch, decode, and execute the instructions708to determine a shell that represents outer three-dimensional model features of the three-dimensional model104.

The processor704may fetch, decode, and execute the instructions710to determine, for the shell, whether a configuration of a three-dimensional model feature of the three-dimensional model104matches a non-removable feature configuration from a set of non-removable feature configurations114.

Based on a determination that the configuration of the three-dimensional model feature of the three-dimensional model104matches the non-removable feature configuration from the set of non-removable feature configurations114, the processor704may fetch, decode, and execute the instructions712to retain the three-dimensional model feature in the three-dimensional model104, and cause the three-dimensional object106to be printed based on the three-dimensional model104.