Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DIMENSIONAL COMPENSATIONS FOR ADDITIVE MANUFACTURING
Document Type and Number:
WIPO Patent Application WO/2020/145997
Kind Code:
A1
Abstract:
In an example, a method includes receiving, at at least one processor, object model data representing at least a portion of an object that is to be generated by an additive manufacturing apparatus by fusing build material within a fabrication chamber. An indication of an intended object placement location within the fabrication chamber may be determined, and a plurality of predefined locations within a fabrication chamber may be identified based on a volumetric extent of the object or object portion if placed in its intended object placement location, wherein the predefined locations are related to dimensional compensation values. A dimensional compensation value to apply to the object model data may be determined by combining the dimensional compensation values relating to the identified plurality of predefined locations and applied to the object model data to generate modified object model data.

Inventors:
DIEGO GUTIERREZ VICTOR (ES)
FREIRE GARCIA MANUEL (ES)
GURDIEL GONZALEZ ENRIQUE (ES)
SANROMA GARRIT JORDI (ES)
Application Number:
PCT/US2019/016014
Publication Date:
July 16, 2020
Filing Date:
January 31, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
B29C64/393; B29C64/20; B33Y30/00; B33Y50/02
Domestic Patent References:
WO2017099804A12017-06-15
WO2017019100A12017-02-02
Foreign References:
US20170310935A12017-10-26
EP3205483A12017-08-16
Attorney, Agent or Firm:
LEMMON, Marcus B. et al. (US)
Download PDF:
Claims:
CLAIMS

1 . A method comprising:

receiving, at at least one processor, object model data representing at least a portion of an object that is to be generated by an additive manufacturing apparatus by fusing build material within a fabrication chamber;

determining, using at least one processor, an indication of an intended object placement location within the fabrication chamber;

identifying a plurality of predefined locations within a fabrication chamber based on a volumetric extent of the object or object portion if placed in its intended object placement location, wherein the predefined locations are related to dimensional compensation values;

determining, using at least one processor, a dimensional compensation value to apply to the object model data by combining the dimensional compensation values relating to the identified plurality of predefined locations; and

applying, using at least one processor, the determined dimensional compensation value to the object model data to generate modified object model data.

2. A method according to claim 1 in which identifying a plurality of predefined locations within a fabrication chamber based on the volumetric extent of the object or object portion comprises:

for each of a plurality of predefined locations within a fabrication chamber, dividing the fabrication chamber into sections which have a common vertex at the predefined location,

determining if an object portion exists in each section, wherein:

if an object portion exists in all sections, the predefined location is identified; and otherwise, the predefined location is not identified.

3. A method according to claim 1 in which identifying a plurality of predefined locations within a fabrication chamber based on the volumetric extent of the object or object portion comprises: identifying the predefined locations which will be interior to the object if placed in its intended object placement location;

determining if a volumetric coverage of the identified predefined locations is within a threshold volume of the volumetric extent of the object; and

if the volumetric coverage of the identified locations is less than the volumetric extent of the object by more than the threshold volume, identifying at least one predefined location which is within a threshold distance of a perimeter of the object, wherein the threshold distance is determined such that the volumetric coverage of the identified locations is within the threshold volume of the volumetric extent of the object.

4. A method according to claim 1 in which determining the dimensional compensation value to apply to the object model data comprises averaging dimensional compensation values relating to the identified plurality of predefined locations.

5. A method according to claim 4 comprising determining a weighted average comprising at least one dimensional compensation value which is related to a predefined location which is external to an object volume, wherein dimensional compensation values which are related to predefined locations which are external to the object volume have a lower weighting than those which are related to predefined locations which are internal to the object volume.

6. A method according to claim 5 wherein the weighting for dimensional compensation values which are related to predefined locations which are external to the object volume is proportional to an inverse of a distance of the predefined location from the object.

7. A method according to claim 1 in which the determined dimensional compensation value specifies at least one of a scaling factor and an offset factor.

8. A method according to claim 1 further comprising determining object generation instructions for generating the object based on the modified object model data, the object generation instructions specifying an amount of print agent to be applied to each of a plurality of locations on a layer of build material.

9. A method according to claim 8 further comprising generating an object based on the object generation instructions.

10. Apparatus comprising at least one processor, the at least one processor comprising:

a memory to store a mapping resource associating dimensional transformations to compensate for object deformation in additive manufacturing to predetermined locations within a fabrication chamber; and

a model modification module to:

determine a dimensional transformation for an object to be generated using additive manufacturing from the mapping resource by determining an average of the dimensional transformations mapped to predetermined locations selected based on an intended volumetric extent of the object within a fabrication chamber; and

modify object model data modelling the object using the dimensional transformation.

11 . Apparatus according to claim 10 in which the mapping resource comprises a set of dimensional transformation values associated with the predetermined locations, and the predetermined locations are spatially distributed within a fabrication chamber.

12. Apparatus according to claim 10 further comprising:

a print instructions module for determining print instructions for generating the object from the modified object model data.

13. Apparatus according to claim 12 further comprising additive manufacturing apparatus to generate an object according to the print instructions.

14. A tangible machine-readable medium comprising instructions which when executed by a processor cause the processor to:

determine a volume of a fabrication chamber to be occupied by an object to be generated within the fabrication chamber; and

using a look-up resource associating dimensional compensations with each of a plurality of locations in the fabrication chamber, determine a dimensional compensation to apply to the object based on an average of a plurality of dimensional compensations relating to selected locations, wherein the locations are selected based on their position relative to the volume to be occupied by the object.

15. A tangible machine-readable medium according to claim 14 further comprising instructions which when executed by the processor cause the processor to apply the determined dimensional compensation to a data model representing the object.

Description:
DIMENSIONAL COMPENSATIONS FOR ADDITIVE MANUFACTURING

BACKGROUND

[0001] Additive manufacturing techniques may generate a three-dimensional object through the solidification of a build material, for example on a layer-by-layer basis. In examples of such techniques, build material may be supplied in a layer-wise manner and the solidification method may include heating the layers of build material to cause melting in selected regions. In other techniques, chemical solidification methods may be used.

BRIEF DESCRIPTION OF DRAWINGS

[0002] Non-limiting examples will now be described with reference to the accompanying drawings, in which:

[0003] Figure 1 is a flowchart of an example method of modifying object model data;

[0004] Figure 2A and 2B show visualisations of example mapping resources;

[0005] Figure 3A is a flowchart of an example method for identifying a plurality of predefined locations within a fabrication chamber;

[0006] Figure 3B is a schematic illustrating aspects of the method of Figure 3A according to one example;

[0007] Figure 4 is a flowchart of another example method for identifying a plurality of predefined locations within a fabrication chamber;

[0008] Figure 5 is a flowchart of an example method of combining dimensional compensation values relating to identified locations;

[0009] Figure 6 is a flowchart of an example method of object generation;

[0010] Figures 7 and 8 are simplified schematic drawings of example apparatus for additive manufacturing; and [0011 ] Figure 9 is a simplified schematic drawing of an example machine-readable medium associated with a processor.

DETAILED DESCRIPTION

[0012] Additive manufacturing techniques may generate a three-dimensional object through the solidification of a build material. In some examples, the build material is a powder-like granular material, which may for example be a plastic, ceramic or metal powder and the properties of generated objects may depend on the type of build material and the type of solidification mechanism used. In some examples the powder may be formed from, or may include, short fibres that may, for example, have been cut into short lengths from long strands or threads of material. Build material may be deposited, for example on a print bed and processed layer by layer, for example within a fabrication chamber. According to one example, a suitable build material may be PA12 build material commercially referred to as V1 R10A“HP PA12” available from HP Inc.

[0013] In some examples, selective solidification is achieved using heat in a thermal fusing additive manufacturing operation. This may comprise directional application of energy, for example using a laser or electron beam which results in solidification of build material where the directional energy is applied. In other examples, at least one print agent may be selectively applied to the build material, and may be liquid when applied. For example, a fusing agent (also termed a‘coalescence agent’ or‘coalescing agent’) may be selectively distributed onto portions of a layer of build material in a pattern derived from data representing a slice of a three-dimensional object to be generated (which may for example be generated from structural design data). The fusing agent may have a composition which absorbs energy such that, when energy (for example, heat) is applied to the layer, the build material heats up, coalesces and solidifies upon cooling, to form a slice of the three-dimensional object in accordance with the pattern. In other examples, coalescence may be achieved in some other manner.

[0014] According to one example, a suitable fusing agent may be an ink-type formulation comprising carbon black, such as, for example, the fusing agent formulation commercially referred to as V1 Q60A“HP fusing agent” available from HP Inc. In one example such a fusing agent may comprise an infra-red light absorber. In one example such a fusing agent may comprise a near infra-red light absorber. In one example such a fusing agent may comprise a visible light absorber. In one example such a fusing agent may comprise a UV light absorber. Examples of print agents comprising visible light enhancers are dye based colored ink and pigment based colored ink, such as inks commercially referred to as CE039A and CE042A available from HP Inc.

[0015] In addition to a fusing agent, in some examples, a print agent may comprise a coalescence modifier agent, which acts to modify the effects of a fusing agent for example by reducing or increasing coalescence or to assist in producing a particular finish or appearance to an object, and such agents may therefore be termed detailing agents. In some examples, detailing agent may be used near edge surfaces of an object being printed. According to one example, a suitable detailing agent may be a formulation commercially referred to as V1 Q61 A“HP detailing agent” available from HP Inc. A coloring agent, for example comprising a dye or colorant, may in some examples be used as a fusing agent or a coalescence modifier agent, and/or as a print agent to provide a particular color for the object.

[0016] As noted above, additive manufacturing systems may generate objects based on structural design data. This may involve a designer generating a three- dimensional model of an object to be generated, for example using a computer aided design (CAD) application. The model may define the solid portions of the object. To generate a three-dimensional object from the model using an additive manufacturing system, the model data can be processed to generate slices of parallel planes of the model. Each slice may define a portion of a respective layer of build material that is to be solidified or caused to coalesce by the additive manufacturing system.

[0017] Figure 1 is an example of a method, which may comprise a computer implemented method of modifying object model data.

[0018] The object model data may be modified to compensate for anticipated departures from intended dimensions when generating an object.

[0019] For example, it may be the case that when an object is generated in a process which includes heat (thermal fusing techniques), additional build material may adhere to the object on generation. For example, print agent may be associated with a region of a layer of build material. However, when fusing agent has been applied and energy is supplied, build material of neighbouring regions may become heated and fuse to the outside of the object (in some examples, being fully or partially melted, or adhering to melted build material as powder). Therefore, a dimension of an object(s) may be larger than the regions to which fusing agent is applied. In order to compensate for the fact that objects may tend to ‘grow’ during manufacture in this manner, the object volume as described in object model data may be reduced.

[0020] In other examples, objects may be smaller following object generation than is specified when printed. For example, some build materials used to generate objects may shrink on cooling.

[0021] A particular object may be subject to mechanisms which result in growth and shrinkage, and the actual compensation to be applied may be determined by consideration of, or may be influenced by, the different degrees by which an object may be affected by such processes.

[0022] The method comprises, in block 102, receiving, at at least one processor, object model data representing at least a portion of an object that is to be generated by an additive manufacturing apparatus by fusing build material within a fabrication chamber. In some examples, the fusing process may comprise a thermal fusing process in which heat is applied.

[0023] The object model may comprise data representing at least a portion (in some examples, a slice) of an object to be generated by an additive manufacturing apparatus by fusing a build material. The object model data may for example comprise a Computer Aided Design (CAD) model, and/or may for example be a STereoLithographic (STL) data file. In some examples, the object model data may represent the object or object portion as a plurality of sub-volumes, wherein each sub-volume represents a region of the object which is individually addressable in object generation. In some examples herein, the sub-volumes may be referred to as voxels, i.e. three-dimensional pixels.

[0024] The method further comprises in block 104, determining, using at least one processor, an indication of an intended object placement within the fabrication chamber. This may comprise, for example, determining at least one indicative coordinate of the intended object location on a coordinate system of the fabrication chamber. For example, a corner of the fabrication chamber may be designated as the origin and at least one x, y and z offset may be used to specify an intended location of an object. In some examples, there may be a plurality of coordinates which indicated the intended placement, for example coordinates of object vertices or the like.

[0025] Block 106 comprises identifying a plurality of predefined locations within a fabrication chamber based on the volumetric extent of the object or object portion if placed in its intended object placement location, wherein the predefined locations are related to dimensional compensation values. The dimensional compensation values relating to the predefined locations may be predetermined dimensional compensation values.

[0026] As set out in greater detail below, the locations may comprise those locations which coincide with the volume of the object (i.e. the solid volume) or which are within an object perimeter. In some examples, locations which are close to the object perimeter may be identified in block 106 Therefore, the identified locations may be identified based on the location and the volume it is intended to occupy in the fabrication chamber. In other words, the identified locations may be identified based on their location relative to the volume of the fabrication chamber to be occupied by the object. In some examples, an identified location may be identified when it is within the volume of the fabrication chamber to be occupied by the object. In another example, an identified location may be identified when it is within the volume a threshold distance of the volume of the fabrication chamber which is to be occupied, or taken up, by the object.

[0027] In some examples, the dimensional compensation values may describe a parametrical transformation, for example a geometrical transformation such as at least one of an offset and a scaling factor. In one example, a dimensional compensation may indicate three scaling factors (one for each of the three orthogonal dimensions) and three offset factors (one for each of the three orthogonal dimensions). A scaling factor may be used to multiply all specified dimensions in the direction of an axis by a value, which may be greater than 1 in order to increase the dimensions and less than 1 to reduce the dimensions. An offset factor may specify, for example by a specified distance (which may be specified in predefined units, for example addressable units such as pixels or‘voxels’ as are discussed in greater detail below), an amount to add or remove from a surface of the object (or a perimeter within a layer). For example, a distance as measured in the direction of a normal from the object surface may be specified and the object may be eroded or dilated (i.e., inflated or enlarged) by this distance.

[0028] In some examples, where scaling is not indicated in a given dimension, the scaling factor in relation to that dimension may be set to 1 , and if no offset is indicated in a given dimension, the offset factor in relation to that dimension may be set to 0

[0029] As stated above, the predefined locations within the fabrication chamber are related to dimensional compensation values. It has been noted that dimensional accuracy can be related to the location of object generation. Therefore, it is possible to derive a‘map’ between locations in a fabrication chamber and dimensional compensation values, with different locations being associated with different values.

[0030] As will be set out in greater detail below, in some examples, a mapping resource may comprise a plurality of dimensional compensation values which relate to dispersed locations within a fabrication chamber, for example comparable to nodes of a three dimensional grid of locations within a fabrication chamber. In some examples, such a mapping resource relating predefined locations to dimensional compensation values may be derived from an inference model, which may be generated using a training dataset derived from objects previously generated using additive manufacturing. In some examples the dimensional compensation values to apply maybe determined for example based on an analysis of thermal and/or material considerations.

[0031] Block 108 comprises determining, using at least one processor, a dimensional compensation to apply to the object model data by combining the dimensional compensation values relating to the identified plurality of predefined locations. For example, the values which are related to locations which are enclosed by the volume of the object may be combined. In other examples, other values (for example, those associated with locations which are outside the object volume but within a threshold distance of the object’s perimeter) may be included in the combination. In some examples, the combination may comprise determining an average value (which in some examples may comprise a weighted average, for example with values relating to locations which are outside the volume to be occupied by the object being give a lower weighting than those within the volume to be occupied by the object, as will be discussed in greater detail below).

[0032] Block 1 10 comprises applying, using at least one processor, the determined dimensional compensation value(s) to the object model data to determine modified object model data. In some examples, where the object model data is described in terms of sub-volumes, such sub-volumes may be added or removed (or eroded). Where the object is, for example, described by a mesh model or the like, the mesh model may be adjusted, expanded or contracted as set out by the determined dimensional compensation value(s).

[0033] In some examples, the dimensional compensation value(s) may indicate at least one of a scaling factor and an offset factor. In one example, the dimensional compensation value(s) may indicate three scaling factors (one for each of the three orthogonal dimensions) and three offset factors (one for each of the three orthogonal dimensions). As noted above, if scaling is not indicated in a given dimension, the scaling factor in relation to that dimension may be set to 1 , and if no offset is indicated in a given dimension, the offset factor in relation to that dimension may be set to 0.

[0034] Therefore, block 108 may comprise changing the object model data to include scale and/or offset factor where applicable in each dimension. The scale and/or offset factor may be applied to a mesh model of the object or to a voxel model of the object or to a model of the object defined in some other way.

[0035] While in some examples, the location of the object could be indicated using a single representative coordinate, for example a centre of mass, or a centre of a bounding box enclosing the object, the method of Figure 1 proposes selecting a plurality of locations. Such a method may be useful because different portions of the object may extend into regions of the fabrication chamber associated with different dimensional compensation values. If just one location is used to identify a compensation, this may result in a loss of information: the corrections designed to compensate for the deformation associated with just one of these zones may be considered.

[0036] The method of Figure 1 however proposes identifying the locations based on the volumetric extent of the object, allowing the values associated with a representative volume within the fabrication chamber to be considered.

[0037] Figure 2A is a representation of a first example of a mapping resource 202, where each point is a location within a virtual fabrication chamber 204, which models a real fabrication chamber, and is associated with a particular dimensional compensation (for example, a scaling factor in Y, or an offset in Z). In this example, a 3 by 3 grid of nodes is provided. The nodes in this case are evenly distributed in all dimensions, although this need not be the case in all examples. Each node represents a value for a dimensional compensation which is associated with a predefined location within the fabrication chamber.

[0038] An object, in this example a cylinder 206 is to be generated in the fabrication chamber, and the volume of the object when printed would encompass six defined node locations (marked in the Figure with an outer ring). Therefore, the values of these six locations/nodes may be combined to generate a value to be used as a dimensional compensation for the object. For example, this may comprise determining an average of the values associated with the identified locations/nodes.

[0039] In one practical example, fixed spacing may be used in the grid, which may be arranged such that the whole build volume of a fabrication chamber is substantially covered, and the grid is centred between maximum and minimum values.

[0040] For example, the number of nodes in each axis may be calculated as the ratio between each dimension and the node spacing, rounded up to the next integer number if not integer, and by adding one. Considering a particular example with xyz coordinates, the spacing between the nodes of the grid may be set to 50mm for a fabrication chamber with printable dimensions of 250mmx165mmx1 10mm, with an origin of coordinates defined as (0,0,0), In such an example, the number of nodes in each axis may be determined as follows:

[0041] x) 250/50=5 -> 5+1 =6

[0042] y) 165/50=3.3 -> 4+1 =5

[0043] z) 110/50=2.2 -> 3+1 =4

[0044] The nodes may be set such that the printable space is centred between the first and the last values in each dimension. The range of the nodes in each dimension is the product of the number of nodes minus one by the spacing value. To continue the example above, the range of the nodes in each dimension is as follows:

[0045] x) 50 * 5=250 mm

[0046] y) 50 * 4=200 mm

[0047] z) 50 * 3=150 mm

[0048] The minimum node may be set to be the origin of coordinates minus half of the difference between the range of the nodes and the printable range. To continue the example above, the placement of the minimum node in xyz coordinates may be determined as follows:

[0049] x) 0 - 0.5 * (250-250) = 0

[0050] y) 0 - 0.5 * (200-165) = -17.5

[0051] z) 0 - 0.5 * (150-1 10) = -20 [0052] This means that the minimum node in this example relates to the x,y,z position within the fabrication chamber of (0, -17.5, -20).

[0053] The rest of the nodes coordinates are given by the translations of the minimum node in each dimension using the spacing an integer amount of times. The allowed coordinate values by axis in the example are therefore positioned as follows:

[0054] x) {0, 50, 100, 150, 200, 250}

[0055] y) {-17.5, 32.5, 82.5, 132.5, 182.5}

[0056] z) {-20, 30, 80, 130}

[0057] All the coordinates of the nodes of the grid in this example are given by the possible combinations of the coordinates by axis, in this case there would be 6 * 5 * 4=120 nodes in total. It may be noted that some of the nodes are outside the fabrication chamber.

[0058] In other examples, the spacing value of the grid can be different in each dimension. This may for example be appropriate if a dimensional compensation is more variable in one dimension than in another. More generally, the grid may vary over the virtual fabrication chamber. In some examples, the spacing of nodes may vary according to the variability of the values, such that more values/nodes are stated or defined when the rate of change of the node to node values is higher than when it is lower. For example, there may be more nodes (i.e. the nodes may have a closer spacing) towards the edges of the fabrication chamber than in a centre. This could for example reflect that such regions tend to be associated with higher thermal gradients.

[0059] In addition the methodology can be extended to coordinates that do not represent spatial dimensions, such as a volume or a surface of the part being printed. In those cases, an appropriate range and spacing for those dimensions may be set.

[0060] For example, it may be determined that the dependency of the scaling factors is strongly related to a vertical coordinate (e.g. a z height) and a measure of the mean wall thickness defined as volume divided by surface. A two dimensional grid may be defined, wherein the bounds of the mean wall thickness axis are defined by the minimum and maximum mean wall thicknesses used to determine the relationship, and the spacing of the nodes may be determined based on, for example the rate of change of the dependency as set out above. Any mean wall thickness values which are outside the minimum-maximum node range may be taken to have a value equal to that of the minimum or the maximum node as appropriate.

[0061] In another example, there may be additional descriptors used to determine a dimensional compensation in a model in which a xyz dependence is also determined. Again, the bounds of such additional descriptors (for example, mean wall thickness, object volume, or some other object property, or an operational parameter of the additive manufacturing apparatus) may be determined and sampled to define nodes.

[0062] Figure 2B shows an example visualization of a mapping resource 208 of scaling factors to apply in the Z dimension, wherein the scaling factors are associated with an xyz position within a fabrication chamber. Each location/node is represented as a sphere. The value of each node is represented on a color scale and in this example is a vertical scaling factor (i.e. resulting in a change of the height of the object in the orientation in which it is generated). The scaling factor is greater than one where a virtual object is to be enlarged and less than one where a virtual object is to be reduced in size. Corresponding models may be created for scaling factors to apply in other dimensions (i.e. to change a width or a depth of an object in the orientation in which it is generated) and/or for each of a scaling factor and an offset factor.

[0063] Figure 3A is a first example of a method of identifying a plurality of predefined locations within a fabrication chamber based on the volumetric extent of the object or object portion if placed in its intended object placement location, as mentioned above in relation to block 106.

[0064] Block 302 comprises, for each location of a plurality of predefined locations within a fabrication chamber (e.g. for each location/node of a mapping resource as shown in Figure 2A or 2B), dividing the objects into sections which have a common vertex at the location. For example, in the case of a three dimensional space, a location/node may be selected and the space may be divided in to eight sections. The relative size of these sections will differ depending on the location under consideration: if the node selected is in the centre of the space of the fabrication chamber, the sections will be relatively similar in volume, but if the node is towards one corner, the sections may differ considerably in volume.

[0065] Block 304 comprises determining if an object portion exists in each section. For example, this may comprise comparing the volume occupied by the object with the location. In one example, if the object model is a mesh model describing the object with a plurality of vertices, it may be determined if at least one object vertex is in each of the sections.

[0066] For example, each predefined location may be defined using coordinates (in the context of a 3D space, these may be xyz coordinates) with the coordinates of the vertices of the object mesh model. There are 8 possible results of this comparison: the x, y and z coordinates can be greater or less than a coordinate of the predefined location independently. Depending on the result of this comparison, the vertices can be classified as being in one of the eight sections. It may then be determined if any of the sections are entirely free of vertices.

[0067] The method may then proceed in one of two ways: If an object portion exists in all sections (e.g. if at least one object vertex can be found in each of the sections), then, in block 306, the location is identified for inclusion in a combination as set out in block 108. If however at least one section does not contain any object portion (e.g. there is at least one section without any object vertices), then the method proceeds in block 308, and that location is not selected.

[0068] In this way, a plurality of locations may be identified based on the volumetric extent of the object, and the method is therefore one example of a method of carrying out block 106.

[0069] Figure 3B shows the principle in two dimensions, so in this case a space 310 is divided into four sections when considering each location. The space 310 contains an object 312. Three example locations, 314a, 314b, 314c are shown. The first of these locations 314a is interior to the object volume, and there are object vertices in all of the four sections. The second location 314b is interior to a hollow portion of the object 312, and again there are object vertices in all of the four sections. However, the third location 314c, which is internal to a notional‘bounding box’ enclosing the object, but slightly outside the object itself may be associated with one section (the lower right section) which does not contain any object portions. Therefore, the first and second locations 314a, 314b may be identified by the method of Figure 3A (and therefore used in the combination described in relation to block 108), but the third location 314c may not be identified/used in the combination. [0070] This method is suited to a common scenario in additive manufacturing, in which models often specify hollow objects. Application of this method means points which are contained within such ‘empty’ portions of a hollow object will be identified, and therefore it may result in identifying a relatively large number of locations, which may then be combined to provide a good estimate of the conditions within the fabrication chamber which may impact object generation. The method is also relatively easy to compute, for example when compared to methods which identify locations which are strictly interior to the object (i.e. which are enclosed by the surface of the object), such as convex hull analysis.

[0071 ] Figure 4 is another example of identifying a plurality of predefined locations within a fabrication chamber to be combined. In other words, the method is another example of a method of carrying out block 106. In this example, as well as locations which coincide with the exact volume to be occupied by the object, other locations may be identified. This may allow the volume represented by the locations to be more closely matched to the volume of the object itself.

[0072] For example, to consider the case of a relatively long, thin object, if the nodes/locations are spaced by more than the diameter of the object, such an object could be formed which may be, at least to a large extent,‘between’ the nodes. Thus, the method of Figure 3A may identify few locations- or even no locations at all.

[0073] In this example, the method comprises, in block 402, identifying the predefined locations which are interior to a volume (i.e. the‘solid portions’) of the object. In some examples such methods may comprise an evaluation of the‘convex hull’ of the object. However, in this example, the distance of a predefined location/node from an object surface is considered. When this distance is zero or negative, the location/node is identified as being interior to the object. In other examples, locations may be identified as described in relation to Figure 3A.

[0074] The method then proceeds with block 404, which comprises determining if the volumetric coverage of the identified predefined locations is within a threshold volume of the volumetric extent of the object. For example, this may comprise considering a virtual fabrication chamber as a tessellation of sub-volumes, each having a location at its centre. In an example where the locations are a regular grid of nodes, the sub-volumes may be cubes. The total volume of the sub-volumes associated with the selected locations may be compared to the absolute volume of the object.

[0075] If the volumetric coverage of the identified locations is less than the volumetric extent of the object by a threshold volume, the method comprises identifying a plurality of further locations. In particular, in this example, the method comprises, in block 406, identifying those locations which are within a threshold distance of a perimeter of the object, wherein the threshold distance is determined such that the volumetric coverage of the identified locations is within a threshold volume of the volumetric extent of the object.

[0076] The method then loops back to block 404, with the threshold distance in block 406 being increased until the condition of block 406 is satisfied, at which point the method terminates in block 408.

[0077] To consider this in terms of a practical example, the volume of an object model may be determined, and a corresponding number of locations may be determined. For example, if locations are defined having a spacing of 20 mm, then one of these locations corresponds to a volume of 20mm * 20mm * 20mm = 8000 mm 3 of fabrication chamber. If an object to be generated will have a solid volume of 48000 mm 3 , then it may be determined that 48000/8000 = 6 locations are to be identified.

[0078] According to the method of Figure 4, these may be identified in an iterative manner. First, in block 402, the locations which actually coincide with the solid volume of the object are identified. If there are six or more such locations, the method may terminate at that stage. However, if there are less than six, the perimeter of the object may effectively be expanded, for example by a ‘tolerance’ distance. In this example, a suitable first tolerance distance may be 1 mm. The number of points within this increased volume may be found and if this is less than six, the tolerance distance may be increased again for example to 2 mm, and so on.

[0079] In some examples, determining if the volumetric coverage of the identified locations is within a threshold volume of the volumetric coverage of the object may mean that the volumetric coverage associated with the locations is less than the volumetric coverage of the expanded perimeter. For example, the threshold may be set such that some percentage less than 100 (e.g. 80%) of the locations may be determined to be sufficient (or, in the example above, the method may terminate when five locations have been identified).

[0080] Practical examples have shown that a suitable number of locations may often be identified with a tolerance of 0 or 1 mm, and that computational resources consumed in identifying additional locations in this way are relatively small.

[0081] In another example, the method of Figure 3A may be extended to allow sections of additional locations by virtually shifting a position of a location by a threshold tolerance and identifying if an object portion may be found in each of the sections with the location in its shifted position. If so, the location may be selected, and the process may be iterated, in some examples with increasingly large shifts, for example until the condition set out in block 404 is met.

[0082] Figure 5 is an example of a method of combining the dimensional compensation values relating to the identified plurality of predefined locations, for example as described in relation to block 108 of Figure 1.

[0083] In this example, the dimensional compensations are combined by determining a weighted average and the method comprises, in block 502, applying a first weighting to dimensional compensation value(s) which are related to location(s) which are internal to the object volume. This may relate to the‘solid portions’ of the object (although in some examples, such solid portions may comprise a fill pattern, such as a honeycomb fil).

[0084] Block 504 comprises applying a second weighting to dimensional compensation value(s) which are related to location(s) which are external to the object volume. Dimensional compensation values relating to locations which are external to the object volume have a lower weighting than those which are internal to the object volume.

[0085] In some examples, the weighting of values which are related to locations which are external to the object volume may decrease with distance, and in one example the weighting is proportional to the inverse of the distance of the location from the object. For example, where a tolerance is applied, the weighting may be 1 at the surface of the object and 0 at the edge of the tolerance band, with a linear slope therebetween. In other examples, other weighting schemes may be applied. [0086] Figure 6 is an example method of generating an object, which may follow the method of Figure 1 .

[0087] Block 602 comprises determining object generation instructions (or‘print instructions’) for generating the object based on the modified object data. The object generation instructions in some examples may specify an amount of print agent to be applied to each of a plurality of locations on a layer of build material. For example, generating object generation instructions may comprise determining‘slices’ of a virtual fabrication chamber, and rasterising these slices into pixels (or voxels, i.e. three- dimensional pixels). An amount of print agent (or no print agent) may be associated with each of the pixels/voxels. For example, if a pixel relates to a region of a fabrication chamber which is intended to solidify, the object generation instructions may be generated to specify that fusing agent should be applied to a corresponding region of build material in object generation. If however a pixel relates to a region of the fabrication chamber which is intended to remain unsolidified, then object generation instructions may be generated to specify that no agent, or a coalescence modifying agent such as a detailing agent, may be applied thereto. In addition, the amounts of such agents may be specified in the generated instructions and these amounts may be determined based on, for example, thermal considerations and the like.

[0088] Block 604 comprises generating an object based on the object generation instructions. For example, such an object may be generated layer by layer. For example, this may comprise forming a layer of build material, applying print agents, for example through use of ‘inkjet’ liquid distribution technologies in locations specified in the object generation instructions for an object model slice corresponding to that layer using at least one print agent applicator, and applying energy, for example heat, to the layer. Some techniques allow for accurate placement of print agent on a build material, for example by using printheads operated according to inkjet principles of two dimensional printing to apply print agents, which in some examples may be controlled to apply print agents with a resolution of around 600dpi, or 1200dpi. A further layer of build material may then be formed and the process repeated, for example with the object generation instructions for the next slice.

[0089] In this way, the object once formed may end up being closer to an intended size. [0090] While in this example, the modification to the data was made before object generation instructions were determined, this need not be the case in all examples, and in other examples object generation instructions may be generated then modified.

[0091] In some examples, the methods set out herein may be combined with other methods of object model modification. For example, a modification function may be employed in the vicinity, or locality, of small features. An erosion of such small features may result in an unacceptable reduction in their size, either obliterating the feature or rendering it too small to fuse or too delicate to survive cleaning operations. For example, if a feature has a dimension of around 0.5 mm, this may correspond to 12 voxels at 600dpi. If three or four voxels are eroded from the side of such a small feature, it will lose approximately 50 to 60% of its cross-section, reducing its size to less than 0.3 mm. Such a feature may be too small to survive cleaning operations. Thus, in some examples, other functions may be used to ensure that small features are preserved.

[0092] As briefly mentioned above, in one example, the mapping resource(s) may comprise or be based on an inference model generated from a training dataset. A‘training dataset’ in this context is a set of data which is processed to allow an inference model to be‘learnt’. A relationship between dimensional inaccuracies and the placement of an object in a fabrication chamber may be inferred from the training set and used to build the inference model. This in turn may be used to provide a mapping resource, for example with explicitly defined values in a look-up table relating to a 3D space as described above.

[0093] For example, the training set may comprise data gathered from a set of objects generated using an additive manufacturing process. In some examples, these may be generated using the same class of additive manufacturing process (for example, all the objects may be generated using selective laser sintering, or all the objects may be generated using a fusing agent printed onto a layer of build material, or all the objects may be generated using some other common additive manufacturing process). In other examples, all the objects may be generated using a particular class of apparatus. In some examples, all the objects may be generated using the same instance of an additive manufacturing apparatus (i.e. a particular 3D printer).

[0094] Inference models may be developed by use of curve fitting, machine learning and/or artificial intelligence techniques. In some examples, the set of objects from which measurements are acquired for forming the training dataset may comprise at least 100 objects, and in other examples may be many times higher, for example comprising at least 1000, or tens or hundreds of thousands of objects. Each object may provide one or a plurality of data points such as measurements of object dimensions. An inference model based on a training dataset will generally improve with size, but the impact of additional samples reduces as the sample set grows large. In some examples, generating the inference model may comprise, for example, carrying out a data fitting and/or function approximation for data interpolation operations on the training dataset. For example, the inference model may be generated using curve fitting, in some examples using spline based data interpolation techniques, for example based on thin-plate splines. In other examples, other methods may be used, for example other polyharmonic data fitting techniques (for example other polyharmonic splines), data regression such as Support Vector Machine regression, smoothing techniques or the like. The inference model may be realised as an algorithm, a look-up table, a neural network with programmed weights or may be represented in some other way.

[0095] In other examples, the mapping resource(s) may be developed based on theoretical or measured models of behaviour such as thermal behaviour and/or material behaviour modelling predicted deviations from intended object dimensions in additive manufacturing.

[0096] In some examples, there may be a plurality of mapping resources, which may relate to different object generation parameter values. The parameter(s) may be any parameter which may have an impact on dimensional inaccuracy. For example, the parameter(s) may comprise any, or any combination of, environmental conditions, object generation apparatus, object generation material composition, object cooling profile or print mode.

[0097] A specification of the environmental conditions may, for example, comprise providing any, or any combination of, an indication of the environmental temperature, humidity, air pressure or the like. It has been noted that varying the environmental conditions can result in different dimensional inaccuracies being seen in generated objects.

[0098] A specification of the object generation material composition may comprise any, or any combination of, a specification of a choice of build material and/or print agent, a source or batch of object generation material to be used, a proportion of fresh to recycled build material or the like. Such factors may also impact the dimensional inaccuracies seen in generated objects.

[0099] Cooling profiles may also impact dimensional inaccuracies. For some build material types, relatively slow cooling profiles may have less of an impact on dimensional accuracy than faster cooling profiles, which may be more likely to cause a change (or a greater change) in object dimensions.

[00100] The choice of print mode (for example, draft/prototype/fast or detailed/slow) may also have an effect on dimensional inaccuracy, with draft, prototype or fast modes tending to be associated with greater dimensional inaccuracy than detailed or slower operational modes.

[00101] Figure 7 shows an apparatus 700 comprising processing circuitry 702. The processing circuitry 702 comprises a memory 704, which in use of the apparatus stores a mapping resource 706, and a model modification module 708.

[00102] In some examples, the mapping resource 706 may, in use of the apparatus 700, be stored in the memory 704 of the apparatus 700, and may comprise data. The mapping resource 706 comprises, stores or holds dimensional transformations (which are intended to compensate for object deformation in additive manufacturing) to predetermined locations within a fabrication chamber. The locations may be described by coordinates in at least one axis. In one example, the mapping resource represents at least one multidimensional (e.g. 3D) grid of values (‘nodes’) with locations within a fabrication chamber. In one example, the mapping resource comprises a set of dimensional transformation values associated with distributed spatial locations within a fabrication chamber. In some examples, for at least one set of dimensional transformation values, the distributed spatial locations are evenly distributed in space in at least one dimension. The dimensional transformation values may comprise geometrical transformation values, for example scale and/or offset values.

[00103] The model modification module 708, in use of the apparatus 700, determines a dimensional transformation for an object to be generated using additive manufacturing from the mapping resource 706 by determining an average of the dimensional transformations mapped to locations which are selected based on an intended volumetric extent of the object within a fabrication chamber and to modify the object model data using the dimensional transformation. [00104] As has been noted above, in some examples selecting the locations to include in the average based on the volumetric extent may comprise selecting locations which correspond to intended locations of the interior, or the solid portions of the object. In some examples, selecting the locations to include in the average based on the volumetric extent may comprise selecting locations such that a volume of the fabrication chamber associated with such locations matches (at least to within a predetermined threshold) the volume of the object in terms of absolute size, for example by considering a tolerance around the object. For example this may be determined as described with reference to Figure 4. In other examples, selecting the locations to include in the average based on the volumetric extent may comprise the spatial extent of the object, including hollow portions thereof. For example this may be determined as described with reference to Figure 3A.

[00105] In some examples, a method for identifying the locations may for example be selected on the object(s) to be generated. As noted above, in some examples, hollow objects may be associated with the method of Figure 3A and thin objects may be associated with the method of Figure 4. In other examples, the method of determining the locations may comprise determining the method to use based on trial and error, or machine learning techniques, or the like. In other examples, the method may be predetermined.

[00106] In some examples, the average comprises a weighted average, as discussed above. For example this may be determined as described with reference to Figure 6.

[00107] Figure 8 shows additive manufacturing apparatus 800 to generate an object comprising processing circuitry 802. The processing circuitry 802 comprises the mapping resource 706 and the model modification module 708 of Figure 7 and further comprises a print instructions module 804.

[00108] The print instructions module 804, in use of the apparatus 800, determines print instructions for generating the object from the modified object model data. The print instructions (or object generation instructions) may, in use thereof, control the additive manufacturing apparatus 800 to generate each of a plurality of layers of the object. This may for example comprise specifying area coverage(s) for print agents such as fusing agents, colorants, detailing agents and the like. In some examples, object generation parameters are associated with object model sub-volumes (voxels or pixels). In some examples, the print instructions comprise a print agent amount associated with sub- volumes. In some examples, other parameters, such as any, or any combination of heating temperatures, build material choices, an intent of the print mode, and the like, may be specified. In some examples, halftoning may be applied to determined object generation parameters to determine where to place fusing agent or the like.

[00109] The additive manufacturing apparatus 800, in use thereof, generates the object in a plurality of layers (which may correspond to respective slices of an object model) according to the print instructions. The additive manufacturing apparatus 800 may for example generate an object in a layer-wise manner by selectively solidifying portions of layers of build material. The selective solidification may in some examples be achieved by selectively applying print agents, for example through use of ‘inkjet’ liquid distribution technologies, and applying energy, for example heat, to the layer. The additive manufacturing apparatus 800 may comprise additional components not shown herein, for example any or any combination of a fabrication chamber, a print bed, printhead(s) for distributing print agents, a build material distribution system for providing layers of build material, energy sources such as heat lamps and the like.

[00110] The processing circuitry 702, 802 or the modules thereof may carry out any or any combination of the blocks of Figure 1 , 3A, 4 or 5, and/or block 602 of Figure 6.

[00111] Figure 9 shows a tangible machine-readable medium 900 associated with a processor 902. The machine-readable medium 900 comprises instructions 904 which, when executed by the processor 902, cause the processor 902 to carry out tasks. In this example, the instructions 904 comprise instructions 906 to cause the processor 902 to determine a volume of a fabrication chamber which is to be occupied by an object to be generated within the fabrication chamber and instructions 908 to cause the processor 902 to, using a look-up resource associating dimensional compensations with each of a plurality of locations in the fabrication chamber, determine a dimensional compensation to apply to the object based on an average of a plurality of dimensional compensations relating to selected locations (i.e. an average of dimensional compensations obtained from the look-up resource), wherein the locations are selected based on their position relative to the volume to be occupied by the object.

[00112] In some examples, the instructions 904 comprise instructions which when executed cause the processor 902 to apply the dimensional compensation to a data model representing the object. [00113] In some examples, the instructions when executed cause the processor 902 to carry out any or any combination of the blocks of Figure 1 , 3A, 4 or 5, and/or block 602 of Figure 6. The locations may be selected using the methods for identifying location described in relation to Figure 3A or 4, or any alternative methods for identifying locations set out herein. In some examples, the instructions may cause the processor 902 to act as any part of the processing circuitry 702, 802 of Figure 7 or Figure 8. In some examples, the tangible machine-readable medium 900 may store a mapping resource 706.

[00114] Examples in the present disclosure can be provided as methods, systems or machine-readable instructions, such as any combination of software, hardware, firmware or the like. Such machine-readable instructions may be included on a computer readable storage medium (including but not limited to disc storage, CD-ROM, optical storage, etc.) having computer readable program codes therein or thereon.

[00115] The present disclosure is described with reference to flow charts and/or block diagrams of the method, devices and systems according to examples of the present disclosure. Although the flow diagrams described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. It shall be understood that each block in the flow charts and/or block diagrams, as well as combinations of the blocks in the flow charts and/or block diagrams can be realized by machine-readable instructions.

[00116] The machine-readable instructions may, for example, be executed by a general purpose computer, a special purpose computer, an embedded processor or processors of other programmable data processing devices to realize the functions described in the description and diagrams. In particular, a processor or processing apparatus may execute the machine-readable instructions. Thus functional modules of the apparatus (such as the mapping resource 706, the model modification module 708 and/or the print instructions module 804) may be implemented by a processor executing machine- readable instructions stored in a memory, or a processor operating in accordance with instructions embedded in logic circuitry. The term‘processor’ is to be interpreted broadly to include a CPU, processing unit, ASIC, logic unit, or programmable gate array etc. The methods and functional modules may all be performed by a single processor or divided amongst several processors. [00117] Such machine-readable instructions may also be stored in a computer readable storage that can guide the computer or other programmable data processing devices to operate in a specific mode.

[00118] Machine-readable instructions may also be loaded onto a computer or other programmable data processing devices, so that the computer or other programmable data processing devices perform a series of operations to produce computer-implemented processing, thus the instructions executed on the computer or other programmable devices realize functions specified by flow(s) in the flow charts and/or block(s) in the block diagrams.

[00119] Further, the teachings herein may be implemented in the form of a computer software product, the computer software product being stored in a storage medium and comprising a plurality of instructions for making a computer device implement the methods recited in the examples of the present disclosure.

[00120] While the method, apparatus and related aspects have been described with reference to certain examples, various modifications, changes, omissions, and substitutions can be made without departing from the spirit of the present disclosure. It is intended, therefore, that the method, apparatus and related aspects be limited by the scope of the following claims and their equivalents. It should be noted that the above- mentioned examples illustrate rather than limit what is described herein, and that those skilled in the art will be able to design many alternative implementations without departing from the scope of the appended claims. Features described in relation to one example may be combined with features of another example.

[00121] The word“comprising” does not exclude the presence of elements other than those listed in a claim,“a” or“an” does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the claims.

[00122] The features of any dependent claim may be combined with the features of any of the independent claims or other dependent claims.