Apparatus that generate three-dimensional objects, including those commonly referred to as “3D printers”, have been proposed as a potentially convenient way to produce three-dimensional objects. These apparatus typically receive a definition of the three-dimensional object in the form of an object model. This object model is processed to instruct the apparatus to produce the object using one or more production materials. These production materials may comprise a combination of agents and powdered substrates, heated polymers and/or liquid solutions of production material. The processing of an object model may be performed on a layer-by-layer basis. It may be desired to produce a three-dimensional object with one or more properties, such as color, mechanical and/or structural properties. The processing of the object model may vary based on the type of apparatus and/or the production technology being implemented. Generating objects in three-dimensions presents many challenges that are not present with two-dimensional print apparatus.
Various features of the present disclosure will be apparent from the detailed description which follows, taken in conjunction with the accompanying drawings, which together illustrate, by way of example, features of the present disclosure, and wherein:
In the production of three-dimensional objects, e.g. in so-called “3D printing”, there is a challenge to represent a three-dimensional object by an object model in a data efficient manner. Raster-based formats, which represent a three-dimensional object as a series of unit volumes referred to herein as “voxels”, in a similar manner to the way in which a two-dimensional image is divided into unit area referred to as “pixels”, require a large amount of data. Given this, a three-dimensional object is often represented in a vector-based format, e.g. data from a STereoLithography “.stl” file. Vector-based formats represent a three-dimensional object using defined model geometry, such as meshes or polygons and/or combinations of three-dimensional shape models. For example, a “.stl” file may comprise a vector representation in the form of a list of vertices in three dimensions, together with a surface tessellation in the form of a triangulation or association between three vertices.
The interior of a three-dimensional object encoded in a vector-based format is typically interpreted to be solid. A designer may, however, want to specify that the interior of part or all of a three-dimensional object have a lattice structure satisfying one or more conditions. For example, the designer may wish to specify a lattice size or shape to be applied to part or all of a model to control mechanical properties of the three-dimensional object. Such mechanical properties may include one or more of the tensile strength, weight, centre of gravity and metacentre. For example, centre of gravity and metacentre can be controlled by specifying different lattice densities for different parts of the three-dimensional object.
Certain examples described herein enable a designer to specify the internal structure, and including in some examples the surface structure, of a three-dimensional object in an object model in a data efficient manner. In particular, at least one lattice index can be included in the object model corresponding to a three-dimensional object, with each lattice index representative, in conjunction with an associated three-dimensional threshold matrix, a lattice structure for a corresponding volume of the three-dimensional object. The object model may also include a vector representation of the three-dimensional object.
Certain examples described herein enable a three-dimensional object with a desired structure to be produced. The term “lattice” as described herein refers to an arrangement of a production material within three-dimensions, e.g. this may be a regularly repeated arrangement of a particular sub-structure that makes up a three-dimensional object to be produced. This may cover arrangements that utilize tiling, repeated polyhedra and/or sub-structure repetitions that vary in at least one of density and frequency. In this manner, examples may include, amongst others: a regular crisscrossing of strips of material; (sub)-structure walls with varying thickness; and coil-type structures (including those of varying thickness and hence elasticity). Structures or sub-structures may be repeated in any direction in at least one of the three-dimensions. Frequency of repetition may vary in any direction in at least one of the three-dimensions.
A lattice structure can be represented by a three-dimensional matrix. A three-dimensional matrix can be represented by a group of two-dimensional lattices, each two-dimensional lattice representing a planar layer of the volume. For example, a simple cubic structure can be represented by:
In the following description, for ease of explanation, simple cubic structures will be considered and the corresponding three-dimensional matrices will be represented by one of the repeating layers, this repeating layer being repeated seven times and capped with a full layer.
In an example, the three-dimensional threshold matrix is given by:
This three-dimensional threshold matrix corresponds to either a solid structure or one of three possible cubic structures, in dependence on the lattice index entered by the designer. In particular, each entry in the three-dimensional threshold matrix corresponds to a voxel, and the voxel is filled if the lattice index is smaller than or equal to the value of the entry. In this respect, the lattice index acts in an analogous manner to a halftone value.
Accordingly, if the lattice value is between 129 and 255, then the following three-dimensional lattice structure is provided:
If the lattice value is between 65 and 128, the following three-dimensional lattice structure is provided in which the cell dimensions in the plane of the two-dimensional repeating lattice is halved in comparison to a lattice value between 129 and 255:
If the lattice value is between 1 and 64, the following three-dimensional lattice structure is provided in which the cell dimensions in the plane of the two-dimensional repeating lattice is halved in comparison with a lattice value between 65 and 128.
A lattice index equal to 0 would correspond to all voxels being filled, i.e. a solid structure.
As set out above, by using a three-dimensional threshold matrix, lattices with different cell sizes can be represented by different lattice indices. This provides a data efficient way of storing the internal structure of a three-dimensional object. Further, the processing time to process the lattice indices and three-dimensional threshold lattices is short.
In the above examples, a voxel is filled if the value of the corresponding lattice index is smaller than or equal to the value of the corresponding matrix element of the three-dimensional threshold matrix. Other examples may use different comparisons between the values of lattice indices and matrix elements of the three-dimensional threshold matrix. For example, a voxel may be filled if the corresponding lattice index is greater than or equal to the corresponding matrix element.
In other examples, different three-dimensional threshold matrices can be used to allow lattice parameters other than cell size to be specified by the designer by a lattice index. For example, the following three-dimensional threshold matrix can be used when specifying the thickness of a lattice wall:
In another example, the three-dimensional threshold matrix provides for rounding of the intersections between cell walls. In this way, the concentrations of stress that are present at intersections at sharp angles are alleviated. The following three-dimensional threshold matrix provides for such stress relief cells.
Each of the three-dimensional threshold matrices discussed above by way of example illustrates a corresponding lattice feature that can be specified by the designer of a three-dimensional object model. Other three-dimensional threshold matrices, particularly three-dimensional threshold matrices with larger dimensions, could allow a designer to specify combinations of these lattice features.
In an example, the object data generator 110 uses a single three-dimensional threshold matrix and the user input 120 from the designer indicates a lattice index for use with that three-dimensional threshold matrix. In another example, the object data generator 110 can use a plurality of different three-dimensional threshold matrices, the user input 120 includes both an indication of the lattice index and an indication of the three-dimensional threshold matrix, and the lattice index data 150 includes an indication of the three-dimensional threshold matrix or the three-dimensional threshold matrix itself.
The three-dimensional threshold matrices discussed above relate to simple cubic matrices for ease of representation. The three-dimensional threshold matrices could correspond to more complicated structures.
The matrix generator 250 processes the three-dimensional threshold matrix and the lattice indices as discussed above to generate one or more three-dimensional lattice matrices for different part of the three dimensional object in the manner discussed above. An object structure generator 240 then processes the three-dimensional shape data in conjunction with the three-dimensional lattice matrices to generate the instructions 270 for the additive manufacturing system.
In one case, the apparatus 200 may be implemented as part of an additive manufacturing system, e.g. may comprise electronics or portions of an embedded controller for a “3D printer”. In another case, one or more portions of the apparatus 200 may be implemented using computer program code configured to be processed by one or more processors. These processors may form part of an additive manufacturing system (e.g. a computing module of a “3D printer”) and/or may form part of a computer device communicatively coupled to the additive manufacturing system (e.g. a desktop computer configured to control a “3D printer” and/or a “3D print driver” installed on the computer device). In one case, the computer device may comprise a server communicatively coupled to an additive manufacturing system; e.g. a user may submit the data 210,220 defining the three-dimensional object from a mobile computing device for processing by the apparatus 200 “in the cloud”, the apparatus 200 may then send the material formation instructions 270 to an additive manufacturing system via a network communications channel.
An example of an apparatus arranged to produce a three-dimensional object according to the material formation instructions 270 will now be described with reference to
In
In the example of
In one case, the functionality of the apparatus 200 and the deposit controller 320 may be combined in one embedded system that is arranged to receive the data 210,220 defining the three-dimensional object, or data useable to produce this, and control the apparatus 300 accordingly. This may be the case for a “stand alone” apparatus that is arranged to receive data 210,220, e.g. by physical transfer and/or over a network, and produce an object. For example, this apparatus may be communicatively coupled to a computer device that is arranged to send a “print job” comprising the object definition 210,220, or data useable to produce the object definition 210, to the apparatus in the manner of a two-dimensional printer.
Certain system components and methods described herein may be implemented by way of computer program code that is storable on a non-transitory storage medium. The computer program code may be implemented by a control system comprising at least one processor that is arranged to retrieve data from a computer-readable storage medium. The control system may comprise part of an object production system such as an additive manufacturing system. The computer-readable storage medium may comprise a set of computer-readable instructions stored thereon. The at least one processor may be configured to load the instructions into memory for processing. The instructions are arranged to cause the at least one processor to perform a series of actions. The instructions may instruct the method 500 of
The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching. Techniques, functions and approaches described in relation to one example may be used in other described examples, e.g. by applying relevant portions of that disclosure.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2015/058862 | 4/23/2015 | WO | 00 |