Slicing and/or texturing for three-dimensional printing

10318654 ยท 2019-06-11

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for slicing a three-dimensional model for printing of a corresponding object by a 3D printer, comprises: obtaining the envelope of the object as polygons, then for each region of a predefined work area within the slicing plane: identifying the closest polygon of said envelope that is positioned above said respective pixel; where no polygon is identified, then marking a corresponding region as a no-print region; if the direction vector of said closest above polygon has a positive component in the Z direction, then marking said corresponding region as a model region; and if the direction vector of said polygon has a negative component in the Z direction, then marking the region as a support region, and printing accordingly. An advantage of the above procedure is that the slicing, and in addition texture mapping, can be efficiently carried out on a graphics card or GPU.

Claims

1. A method for slicing a three-dimensional model for printing of a corresponding object by a 3D printer, the slicing made within a space having a Z axis, the Z axis being perpendicular to a printing plane, the method comprising: obtaining a representation of an envelope of an object as a collection of planar polygons, each polygon defined by shape, location coordinates and a direction vector that is perpendicular to the respective polygon, said direction vector pointing outwardly of said object and thereby distinguishing an inward face of said polygon from an outward face of said polygon; defining a slicing plane characterized by a Z0 coordinate along the Z axis; and dividing said slicing plane into regions that are within the object, regions that belong to a support structure and regions that are outside the object and not to be printed.

2. The method of claim 1, wherein said dividing said slicing plane into regions that are within the object comprises: finding a closest polygon of said envelope that is positioned above a respective region to be identified; where no polygon is identified, then marking a corresponding region as a no-print region; if a direction vector of a closest above polygon has a positive component in the Z direction, then marking said corresponding region as a model region; if a direction vector of said closest above polygon has a negative component in the Z direction, then marking the region as a support region.

3. The method according to claim 1 wherein said obtaining a representation further comprises orientating.

4. The method according to claim 1, further comprising obtaining texture maps and mapping regions of texture onto said slices.

5. The method according to claim 4, wherein said texture maps comprise maps defining color distribution, maps defining distribution of different materials and maps defining 3 dimensional surface texture.

6. The method of claim 1, wherein each region is a multi-voxel region, the method further comprising defining voxels in each region of said defined slice regions prior to printing.

7. The method of claim 1, further comprising: printing the object in layers, each layer corresponding to a respective slice of said plurality of planar slices, said each layer printed by: depositing support material in voxels of each region marked as a support region within said respective slice, depositing model material in voxels of each region marked as a model pixel within said respective slice.

8. The method according to claim 1, wherein printing a layer immediately follows the corresponding virtual slicing.

9. The method according to claim 1 carried out on a graphics card or a graphical processing unit.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.

(2) In the drawings:

(3) FIG. 1 is a simplified flow diagram illustrating a procedure for slicing a 3D model of an object to be printed, according to a first embodiment of the present invention;

(4) FIG. 2 is a schematic illustration of a 3D model to which the procedure of FIG. 1 is applied; and

(5) FIG. 3 is a simplified flow chart showing a modification of the procedure of FIG. 1 in order to map texture onto the 3D model.

DESCRIPTION OF SPECIFIC EMBODIMENTS OF THE INVENTION

(6) The present invention, in some embodiments thereof, relates to a way of carrying out slicing for three dimensional printing and, more particularly, but not exclusively, to a way that is particularly suitable for carrying out on a graphics card.

(7) As will be explained in greater detail below, a method for slicing a three-dimensional model for printing of a corresponding object by a 3D printer, comprises: obtaining the envelope of the object as polygons, then for each region of a predefined work area within the slicing plane: identifying the closest polygon of the envelope that is positioned above the respective region; where no polygon is identified, then marking a corresponding region as a no-print region; if the direction vector of said closest above polygon has a positive component in the Z direction, then marking said corresponding region as a model region; and if the direction vector of said polygon has a negative component in the Z direction, then marking the region as a support region, and printing accordingly. An advantage of the above procedure is that the slicing can be efficiently carried out on a graphics card or GPU.

(8) Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.

(9) Referring now to the drawings, FIG. 1 is a simplified flow diagram illustrating a procedure for implementing model slicing prior to object printing according to an embodiment of the present invention.

(10) An embodiment of the invention may use the Graphics card viewing frustum, that is a virtual field of view function, to produce the 3D body that is the object to be printed and to divide the object into orthogonal sections (slices). The body is described by a set of polygons in 3D space which define the body surface.

(11) The present embodiments may utilize the fact that surfaces with positive normal z-componentsthat is upwardly facing bodiesare not seen in orthogonal projections from the bottom, and can only be viewed from the inside of the body. Likewise downwardly facing surfaces are seen from the bottom and have negative normal z-components. These faces can be identified by initially supplying the surface with an orientation vector pointing to the inner body of the model. The orientation vector may be a normal to the polygon, and may have a component in the z direction.

(12) In order to identify such surfaces, all polygon faces with positive z component of the normal are marked by a color indicating the model material, and all polygon faces with negative z component to the normal are marked with a color indicating a support region.

(13) A slice may then be the result of orthogonal projection viewed from the bottom and may now contain the model and support areas marked by the respectively assigned colors.

(14) As will be explained in greater detail below, 3D textures may now be assigned to or around the surfaces in the slices in the model, and the textures provide the desired surface 3D textures, the object surface colors, the different object materials if any, and structures for the support areas.

(15) The features are assigned to regions of the slice and individual pixels are not calculated at this point.

(16) As a result, a typical slicing process which needs to calculate several thousand slices and may conventionally take several hours, can be run much faster using the graphics accelerator HW to calculate slices uses orthogonal projection and clipping.

(17) In greater detail, the slicing method involves using the graphics card viewing frustum to produce orthogonal sections, slices, of the 3D body. As successive slices are generated, the slicer eye point is gradually moved in the positive z direction according to the required slice resolution. The viewing frustum is modified accordingly.

(18) Every slice may thus contain one or both of model and support areas, the areas being marked by the different color or pattern assigned to the model surface or near surface. The colors or patterns comprise the textures for the materials, heterogeneous combinations of materials, i.e., digital materials (DM) or support structures.

(19) Referring again to FIG. 1, the first stageas shown in box 100is to load, or more precisely, MLoad, the 3D model or models to the graphics card for off-screen drawing. The model describes the object using a set of polygons that describe the surfaces of the object to be printed. The model is positioned according to desired positions and orientations.

(20) All polygons are part of a 3D surface, and a 3D surface has an inside and an outside. In box 102, the normal of every polygon is calculated. In box 104 the z-components of the normals are found in order to mark the insides and outsides of the object. Starting at the bottom, all polygon faces with negatively signed z-components of the normal are marked by a particular color indicating support regions, and the positively oriented polygon faces are marked by the model color.

(21) Subsequently, as shown in box 106, the position of the virtual camera (eye point) is set to z=0 to begin defining the first slice. The camera position then increments for each subsequent slice until the maximum height of the model is reached.

(22) Then, as in box 108, for each one of the slices, each part of the slice is projected upwards to the next polygon surface as a virtual camera looking upwards is slid along the length of the slice. If the first polygon surface in view is a downward facing outer surface then that region of the slice is marked as a support region. If the surface is a downward facing inner surface then the region is marked as a part of the object itself. It will be appreciated that the slice is in fact a two-dimensional area so that the process has be carried out over the entire area.

(23) As each slice is completed the camera or eye point is moved up the slice width in the z directionbox 110.

(24) The graphics card's fast and parallel calculation possibilities may allow the slices as above to be calculated quickly, and as stated, the calculations relate to regions of the slice and not to individual pixels. Individual 3D pixels, or voxels, are calculated subsequently prior to printing, simply from the properties of the region to which they belong.

(25) Reference is now made to FIG. 2, which is a simplified diagram illustrating how the above procedure may work on an L-shaped model piece 200. It will be appreciated that the model piece is a three-dimensional model piece, but is shown as 2D for simplicity. The piece has a vertical section 202 and a horizontal section 204, and the surfaces are defined by polygons and have an inner and an outer face to each surface.

(26) Now we consider the calculation of slice 206. A virtual camera looking upwards is slid along the length of the slice. As long as the virtual camera is within the upright model part 202 then the first face that the virtual camera sees is the inward facing side of the upper wall 208. Hence the region of the slice within the vertical 202 is marked as being within the model.

(27) As the virtual camera exits the upright and moves under the extension of the L shape, the first surface that the virtual camera meets is the downward facing external surface of lower wall 210. Hence the region outside the upright and under the extension of the L is marked as a support region.

(28) In those parts of the slice that are neither within the model or under the extension of 204, but are outside the L shape altogether, the upward looking camera meets no polygon surface and thus the regions are marked as no print regions.

(29) According to an embodiment of the invention, the graphics card may thus render the 3D scene by looking in the Z-direction, that is from the slice upwards, to form a parallel projection view. For each slice the camera is set on the z-plane of the slice (z-position of camera) and slides along a vector in the slice which is perpendicular to the z-plane (view direction) from bottom upwards.

(30) The graphics card may thus automatically calculate the model and support regions using polygons, projections and polygon culling, ready for the later defining of the individual pixels within the region. All visible polygon faces with the normal vector pointed inside may be rendered and marked as belonging to the model and all visible polygons with the normal vector pointing outside may be rendered and marked as belonging to the support structure.

(31) Now in general, simply mapping regions as model or support or non-print is not sufficient. Real world objects that users require to print need colors, different materials at different locations, surface patterns, 3D textures and the like. Again, the graphics processor can provide an answer. A texture mapping unit (TMU) is a component in modern graphics processing units (GPUs). A TMU is able to rotate and resize a bitmap to be placed onto an arbitrary plane of a given 3D object as a texture. In modern graphics cards a TMU is typically implemented as a discrete stage in a graphics pipeline.

(32) To render a 3D scene, textures are mapped over the top of polygon meshes. This is called texture mapping and is accomplished by the TMUs on the graphic card.

(33) A texture map may be applied, or mapped, to the surface of a shape or polygon. The application process is akin to applying patterned paper to a plain white box. For example, every vertex in a polygon may be assigned a texture coordinate either via explicit assignment or by procedural definition. Multitexturing is the use of more than one texture at a time on a polygon.

(34) In an embodiment of the invention, texture mapping, as described above, can be used to generate the interesting or complex and multi-material structures of the model (e.g., DM) and of the support, for example to define the support as a grid.

(35) The method is illustrated in the simplified flow chart FIG. 3. The method comprises using a predefined 2D or 3D texture or color map, and defining its mapping on the same polygons that define model shape. For the slices the texture map or maps are obtained, box 300. There may be separate texture maps for color and surface pattern 302, for different materials 304 and for different 3D depth texture 306. Further texture maps may be designed as needed, and different texture maps may be combined in one or more files for convenience. The texture map regions are mapped onto the slice regions in box 308. Different textures can be applied separately for the two different polygon sides, the outside and the inside, and after rendering, which is carried out as above, the output may include color and texture representation of the model or support structures.

(36) The graphics processor does not have a direct way of representing different materials. However it is very good at representing color, and thus color can represent the different materials of the different voxels to be printed in the generated slice. Multitexturing can then be used to combine the colors that mean material type with the colors that are intended to appear on the object.

(37) 3D texture can further be used to generate structures with the depth. Because the depth is calculated from the surface the graphics processor may simply generate coated or multi-coated layer structures and gradient structures in the direction that is perpendicular to the surface plane as part of a projection process into the depth of the model. For example, a particular object may require a hard shell at the surface and soft filler material, or may require waterproofing at the surface. The texture maps are a way to allow the graphics processor to apply the relevant information to the regions in the slice.

(38) It is expected that during the life of a patent maturing from this application many relevant ink jet and other printing technologies will be developed and the scope of the term printing is intended to include all such new technologies a priori.

(39) The terms comprises, comprising, includes, including, having and their conjugates mean including but not limited to.

(40) The term consisting of means including and limited to.

(41) As used herein, the singular form a, an and the include plural references unless the context clearly dictates otherwise.

(42) It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment, and the above description is to be construed as if this combination were explicitly written. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention, and the above description is to be construed as if these separate embodiments were explicitly written. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.

(43) Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.

(44) All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting.