The present invention relates to printing three-dimensional (3D) objects. More particularly, the present invention relates to systems and methods for printing colored 3D objects.
In recent years, numerous technological advancements have become available in the field of three-dimensional (3D) inkjet printing. For 3D inkjet printing, building materials are selectively jetted from one or more print heads and dispensed onto a fabrication tray to form the 3D object, layer-by-layer, according to a pre-determined configuration as defined by a software file.
Building materials may be modeling materials, which are selectively dispensed to produce the 3D object, and support materials (also referred to as “supporting material”), which are selectively dispensed to form support constructions which sustain specific regions of the 3D object during the printing process.
For instance, a support construction may be necessary when the object includes negative angle surfaces, hollows and/or overhangs, and is typically configured to be removed after the printing is complete. For colored 3D inkjet printing, building materials are dispensed to form colored the 3D object.
For printing of complex 3D objects, for instance colored 3D objects having complex or intricate geometries, the generated software file may present a model of the object that is at a higher resolution than is preferable for utilization by the 3D printing system.
It is therefore desirable to reduce the complexity of the model of the 3D object, and accordingly reduce the required computation time for processing and printing the 3D object.
There is thus provided, according to some embodiments of the invention, a method of printing a colored 3D object, the method including: receiving, by a processor, an original 3D digital model of a colored 3D object including data relating to the geometry and to the color of the 3D object, receiving, by the processor, a printing resolution information relating to a 3D printing device connected to the processor, reducing, by the processor, the amount of data of the original 3D digital model in accordance with the printing resolution of the printing device, a geometric variation threshold and a color variation threshold, thereby generating an approximated 3D digital model of the colored 3D object, and printing the 3D object on the 3D printing device based on the approximated 3D digital model.
In some embodiments, the geometry data of the original 3D digital model includes a series of vertices, edges and faces. In some embodiments, reducing the amount of data of the original 3D digital model includes (i) for each edge of the 3D digital model, calculating the lowest contraction cost, said contraction cost including a combination of a geometric parameter and of a color parameter; (ii) contracting the edge having the lowest combined contraction cost; (iii) adjusting the connected edges accordingly; and (iv) repeating steps (i) to (iii) until a termination condition is satisfied.
In some embodiments, the termination condition is satisfied when (i) the approximated model includes a target reduced number or percentage of faces as compared to the original model; (ii) the lowest edge contraction cost includes a geometric parameter which is above the geometric variation threshold; (iii) the lowest edge contraction cost includes a color parameter which is above the color variation threshold; or (iv) any combination thereof. In some embodiments, reducing the amount of data of the 3D digital model includes contracting all the edges having a length less than the size of a pixel or voxel as defined by the printing resolution.
In some embodiments, the contraction cost includes a value corresponding to a balance indicating the weight ratio between the geometric and the color parameters. some embodiments, the ratio is between 1:100,000 and 100,000:1.
In some embodiments, no edge contraction is made if the two vertices of an edge are located in different texture maps. In some embodiments, the color data of the original 3D digital model corresponds to a color value assigned to each vertex of the 3D digital model, to a texture map, or to both. In some embodiments, where the printing resolution information of the 3D printing device is expressed as a number of pixels per unit of distance or as a number of voxels per unit of distance.
There is thus provided, according to some embodiments of the invention, a system for printing a colored 3D object, the system including: a 3D printing device, including a printing resolution, and a processor, in communication with the 3D printing device, where the processor is configured to: receive an original 3D digital model of a colored 3D object including data relating to the geometry and to the color of the 3D object, receive a printing resolution information relating to the 3D printing device, reduce the amount of data of the original 3D digital model in accordance with the printing resolution of the printing device, a geometric variation threshold and a color variation threshold, thereby generating an approximated 3D digital model of the colored 3D object, and issue a command to the 3D printing device to print the 3D object based on the approximated 3D digital model.
In some embodiments, the geometry data of the original 3D digital model includes a series of vertices, edges and faces. In some embodiments, reducing the amount of data of the original 3D digital model includes (i) for each edge of the 3D digital model, calculating the lowest contraction cost, said contraction cost including a combination of a geometric parameter and of a color parameter; (ii) contracting the edge having the lowest combined contraction cost; (iii) adjusting the connected edges accordingly; and (iv) repeating steps (i) to (iii) until a termination condition is satisfied.
In some embodiments, the termination condition is satisfied when (i) the approximated model includes a target reduced number or percentage of faces as compared to the original model; (ii) the lowest edge contraction cost includes a geometric parameter which is above the geometric variation threshold; (iii) the lowest edge contraction cost includes a color parameter which is above the color variation threshold; or (iv) any combination thereof. In some embodiments, reducing the amount of data of the 3D digital model includes contracting all the edges having a length less than the size of a pixel or voxel as defined by the printing resolution.
In some embodiments, the contraction cost includes a value corresponding to a balance indicating the weight ratio between the geometric and the color parameters. In some embodiments, the ratio is between 1:100,000 and 100,000:1. In some embodiments, no edge contraction is made if the two vertices of an edge are located in different texture maps.
In some embodiments, the color data of the original 3D digital model corresponds to a color value assigned to each vertex of the 3D digital model, to a texture map, or to both. In some embodiments the printing resolution information of the 3D printing device is expressed as a number of pixels per unit of distance or as a number of voxels per unit of distance.
The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanied drawings. Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous or similar elements, and in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components, modules, units and/or circuits have not been described in detail so as not to obscure the invention.
Some features or elements described with respect to one embodiment may be combined with features or elements described with respect to other embodiments. For the sake of clarity, discussion of same or similar features or elements may not be repeated.
Although embodiments of the invention are not limited in this regard, discussions utilizing terms such as, for example, “processing”, “computing”, “calculating”, “determining”, “establishing”, “analyzing”, “checking”, or the like, may refer to operation(s) and/or process(es) of a computer, a computing platform, a computing system, or other electronic computing device, that manipulates and/or transforms data represented as physical (e.g., electronic) quantities within the computer's registers and/or memories into other data similarly represented as physical quantities within the computer's registers and/or memories or other information non-transitory storage medium that may store instructions to perform operations and/or processes.
Although embodiments of the invention are not limited in this regard, the terms “plurality” and “a plurality” as used herein may include, for example, “multiple” or “two or more”. The terms “plurality” or “a plurality” may be used throughout the specification to describe two or more components, devices, elements, units, parameters, or the like. The term set when used herein may include one or more items.
Unless explicitly stated, the method embodiments described herein are not constrained to a particular order or sequence. Additionally, some of the described method embodiments or elements thereof may occur or be performed simultaneously, at the same point in time, or concurrently.
Reference is made to
Computing device 100 may include a controller or processor 105 (e.g., a central processing unit processor (CPU), a chip or any suitable computing or computational device), an operating system 115, memory 120, executable code 125, storage 130, input devices 135 (e.g. a keyboard or touchscreen), and output devices 140 (e.g., a display), a communication unit 145 (e.g., a cellular transmitter or modem, a Wi-Fi communication unit, or the like) for communicating with remote devices via a communication network, such as, for example, the Internet.
Controller 105 may be configured to execute program code to perform operations described herein. The system described herein may include one or more computing device(s) 100, for example, to act as the various devices or the components shown in
Operating system 115 may be or may include any code segment (e.g., one similar to executable code 125 described herein) designed and/or configured to perform tasks involving coordinating, scheduling, arbitrating, supervising, controlling or otherwise managing operation of computing device 100, for example, scheduling execution of software programs or enabling software programs or other modules or units to communicate.
Memory 120 may be or may include, for example, a Random Access Memory (RAM), a read only memory (ROM), a Dynamic RAM (DRAM), a Synchronous DRAM (SD-RAM), a double data rate (DDR) memory chip, a Flash memory, a volatile memory, a non-volatile memory, a cache memory, a buffer, a short term memory unit, a long term memory unit, or other suitable memory units or storage units.
Memory 120 may be or may include a plurality of similar and/or different memory units. Memory 120 may be a computer or processor non-transitory readable medium, or a computer non-transitory storage medium, e.g., a RAM.
Executable code 125 may be any executable code, e.g., an application, a program, a process, task or script. Executable code 125 may be executed by controller 105 possibly under control of operating system 115. For example, executable code 125 may be a software application that performs methods as further described herein.
Although, for the sake of clarity, a single item of executable code 125 is shown in
Storage 130 may be or may include, for example, a hard disk drive, a universal serial bus (USB) device or other suitable removable and/or fixed storage unit. In some embodiments, some of the components shown in
Input devices 135 may be or may include a keyboard, a touch screen or pad, one or more sensors or any other or additional suitable input device. Any suitable number of input devices 135 may be operatively connected to computing device 100. Output devices 140 may include one or more displays or monitors and/or any other suitable output devices.
Any suitable number of output devices 140 may be operatively connected to computing device 100. Any applicable input/output (I/O) devices may be connected to computing device 100 as shown by blocks 135 and 140. For example, a wired or wireless network interface card (NIC), a universal serial bus (USB) device or external hard drive may be included in input devices 135 and/or output devices 140.
Embodiments of the invention may include an article such as a computer or processor non-transitory readable medium, or a computer or processor non-transitory storage medium, such as for example a memory, a disk drive, or a USB flash memory, encoding, including or storing instructions, e.g., computer-executable instructions, which, when executed by a processor or controller, carry out methods disclosed herein.
For example, an article may include a storage medium such as memory 120, computer-executable instructions such as executable code 125 and a controller such as controller 105. Such a non-transitory computer readable medium may be for example a memory, a disk drive, or a USB flash memory, encoding, including or storing instructions, e.g., computer-executable instructions, which when executed by a processor or controller, carry out methods disclosed herein.
The storage medium may include, but is not limited to, any type of disk including, semiconductor devices such as read-only memories (ROMs) and/or random-access memories (RAMs), flash memories, electrically erasable programmable read-only memories (EEPROMs) or any type of media suitable for storing electronic instructions, including programmable storage devices. For example, in some embodiments, memory 120 is a non-transitory machine-readable medium.
A system according to embodiments of the invention may include components such as, but not limited to, a plurality of central processing units (CPUs), a plurality of graphics processing units (GPUs), or any other suitable multi-purpose or specific processors or controllers (e.g., controllers similar to controller 105), a plurality of input units, a plurality of output units, a plurality of memory units, and a plurality of storage units. A system may additionally include other suitable hardware components and/or software components.
In some embodiments, a system may include or may be, for example, a personal computer, a desktop computer, a laptop computer, a workstation, a server computer, a network device, or any other suitable computing device.
For example, a system as described herein may include one or more facility computing device 100 and one or more remote server computers in active communication with one or more facility computing device 100 such as computing device 100, and in active communication with one or more portable or mobile devices such as smartphones, tablets and the like.
According to some embodiments, systems and methods are provided for mesh simplification of 3D printing object models. The simplification may include a sequence of local updates to the mesh (e.g., reducing a vertex), where each update may reduce the size of the mesh and/or decrease the approximation precision of the 3D model.
For mesh simplification, in some embodiments of the invention, the Quadric Error Metrics approach is applied in order to maintain high fidelity to the original 3D model (e.g., prior to the simplification). Each vertex in the mesh may be connected to ‘N’ triangles, and therefore the vertex has zero distance from all planes defined by these ‘N’ triangles. Considering a movement of such a vertex, the total distances from the planes may be larger than zero.
A symmetric 4×4 matrix ‘Q’ may be defined as square of distances from the planes. For each edge ‘E’, the matrix ‘Q’ may be calculated for a pair of vertices with the goal of minimizing ‘Q’.
Reference is now made to
The size of a triangle may give power relative to the triangle area, where lower ‘Q’ may indicate that removing an edge result in a lower influence on the original geometry. Accordingly, the lowest ‘Q’ edge may be contracted to adjust the corresponding mesh.
According to some embodiments, in addition to the geometrical simplification of the 3D mesh, colors may be simplified as well. For example, a color distance may be represented by Euclidean (or other) change in the colors Green, Red and Blue: CD=√{square root over ((ΔR2+ΔG2+ΔB2))}.
In order to carry out the color simplification, a color tolerance may be defined, for instance a scalar value corresponding to the color distance ‘CD’. In some embodiments, for an input of mesh vertices, X/Y/Z coordinates and RGB colors, the color tolerance may be applied to generate the simplified 3D mesh. For example, calculation of the mesh simplification may consider at least one of: final number of faces, geometrical tolerance and color tolerance. In some embodiments, color conventions other than RGB may be used. For example, at least one of the following may be utilized: CIELAB (a color space defined by the International Commission on Illumination where “L” relates to lightness, “A” relates to red/green and “B” relates to blue/yellow), HEX (a 6-symbol code to express color values), HSL (hue, saturation, and lightness), CMYK (Cyan, Magenta, Yellow, and Black colors used for printing), and RGB.
Reference is now made to
For printing a 3D object 30, dedicated information may be retrieved for a 3D digital model 310 of the 3D object 30. In some embodiments, a processor 301 (e.g., similarly to controller 105 shown in
The original 3D digital model 310 may include data relating to the geometry 311 and to the color 312 of the 3D object 30. For example, the original 3D digital model 310 may include a data vector with X/Y/Z coordinates and RGB colors. The original 3D digital model 310 may include geometry data 311 associated with vertices, edges and/or faces of the mesh of the 3D digital model.
In some embodiments, the color data 312 of the original 3D digital model 310 may correspond to a color value assigned to each vertex of the 3D digital model 310, and/or to a texture map.
For example, a texture map may include texture information for each point in the 3D digital model, such that texture constraints (i.e. color constraints) are taken into account during the modification of the model. In some embodiments, no edge contraction is made if the two vertices of an edge are located in two different texture maps.
In some embodiments, the color data 312 may include transparency data as additional values to the color.
The processor 301 may further receive a printing resolution information 303 relating to a 3D printing device 302, in order to simplify the resolution of the original 3D digital model 310 to suit the printing resolution information 303.
In some embodiments, the printing resolution information 303 of the 3D printing device 302 may be expressed as a number of pixels per unit of distance or as a number of voxels per unit of distance. In some embodiments, the processor 301 may calculate a maximal displacement to the received 3D digital model for each iteration of the mesh simplification.
According to some embodiments, the processor 301 may “simplify” or reduce the amount of data of the original digital model 310 in accordance with the printing resolution 303 of the printing device 320, a geometric variation threshold 321 (e.g., a predefined number of faces to keep at the mesh) and a color variation threshold 322 (e.g., a threshold for color values at each vertex).
For example, the color variation threshold 322 may indicate that mesh contraction resulting in color difference exceeding a predefined threshold may not be validated.
Accordingly, the processor 301 may generate an approximated 3D digital model 320 of the colored 3D object 30. In some embodiments, the processor 301 may calculate for each point in the mesh the result of the reduction (e.g., removal of a vertex) and check if the reduction exceeds the geometric variation threshold 321 and/or the color variation threshold 322.
In some embodiments, the processor 301 may define a plurality of shells of the geometry 311 of the original 3D digital model by a bounding box, and/or offsetting at least one of one or more edges, one or more vertices, or one or more faces of the bounding box, inwardly or outwardly, in the same manner or independently of one another.
In some embodiments, reducing the amount of data of the 3D digital model 310 may include contracting all the edges having a length less than the size of a pixel or voxel as defined by the printing resolution 303.
For example, the processor 301 may calculate a combined geometry cost and color cost function, for triangle coordinates (X,Y,Z,R,G,B) on a geometry/color plane. The squared distance of any point on the triangle (e.g., a vertex) to that plane may be calculated to determine if the variation threshold is reached (e.g., at edges of the mesh) with the modified or approximated 3D digital model. Additional predefined conditions on the approximated 3D digital model may include forbidding contraction of boundary edges, and/or minimizing texture distortions by vertex movement.
According to some embodiments, reducing the amount of data of the original 3D digital model 310 may include for each edge of the 3D digital model 310, calculation by the processor 301 of the lowest contraction cost, said contraction cost including a combination of a geometric parameter and of a color parameter.
In some embodiments, the processor 301 may further contract the edge having the lowest combined contraction cost. In some embodiments, the processor 301 may further adjust the connected edges accordingly. In some embodiments, the processor 301 may further repeat the above steps until a termination condition is satisfied. For example, the termination condition may include a minimal number of faces associated with the printing resolution 303.
In some embodiments, the termination condition is satisfied for at least one of: the approximated model includes a target reduced number or percentage of faces as compared to the original model, and/or the lowest edge contraction cost includes a geometric parameter which is above the geometric variation threshold, and/or the lowest edge contraction cost includes a color parameter which is above the color variation threshold.
In some embodiments, the contraction cost includes a value corresponding to a balance indicating the weight ratio between the geometric and the color parameters. For example, the ratio may be between 1:100,000 and 100,000:1.
In some embodiments, the processor 301 may issue a command to the printing device 302 to print the “simplified” or approximated 3D object on the 3D printing device based on the approximated 3D digital model.
Reference is now made to
In Step 401, an original 3D digital model of a colored 3D object is received (e.g., by the processor), the 3D digital model including data relating to the geometry and to the color of the 3D object.
In Step 402, a printing resolution information is received (e.g., by the processor), relating to a 3D printing device.
In Step 403, the amount of data of the original 3D digital model may be reduced (e.g., by the processor), in accordance with the printing resolution of the printing device, a geometric variation threshold and a color variation threshold, thereby generating an approximated 3D digital model of the colored 3D object.
In Step 404, the 3D object may be printed on the 3D printing device based on the approximated 3D digital model.
Reference is now made to
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents may occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes.
Various embodiments have been presented. Each of these embodiments may of course include features from other embodiments presented, and embodiments not specifically described may include various features described herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IL2022/051355 | 12/20/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63294538 | Dec 2021 | US |