Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ORIENTATION OF OBJECT MODELS FOR ADDITIVE MANUFACTURING
Document Type and Number:
WIPO Patent Application WO/2023/249657
Kind Code:
A1
Abstract:
In an example, a method includes, by at least one processor, receiving an object model, the object model describing an object to be generated using additive manufacturing. A first portion of the object which is associated with a longer processing time during generation of the object than at least one other object portion may be identified. An orientation of generation for the object may be determined based on the first portion, and a virtual build volume modelling a build volume to be processed in additive manufacturing may be determined, the virtual build volume including the object model in the orientation.

Inventors:
GONZALEZ MARTIN SERGIO (ES)
ROCA VILA JORDI (ES)
RUBIO CASTILLO LETICIA (ES)
Application Number:
PCT/US2022/073088
Publication Date:
December 28, 2023
Filing Date:
June 22, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
G06F30/00; B29C64/393
Domestic Patent References:
WO2016138344A12016-09-01
Foreign References:
US20160085882A12016-03-24
US20180117850A12018-05-03
Other References:
QIN YUCHU ET AL: "Status, issues, and future of computer-aided part orientation for additive manufacturing", THE INTERNATIONAL JOURNAL OF ADVANCED MANUFACTURING TECHNOLOGY, SPRINGER, LONDON, vol. 115, no. 5-6, 15 May 2021 (2021-05-15), pages 1295 - 1328, XP037498474, ISSN: 0268-3768, [retrieved on 20210515], DOI: 10.1007/S00170-021-06996-6
Attorney, Agent or Firm:
DRYJA, Michael A. (US)
Download PDF:
Claims:
CLAIMS

1 . A method comprising, by at least one processor: receiving an object model, the object model describing an object to be generated using additive manufacturing; identifying a first portion of the object which is associated with a longer processing time during generation of the object than at least one other object portion; determining an orientation of generation for the object based on the first portion; and determining a virtual build volume modelling a build volume to be processed in additive manufacturing, the virtual build volume including the object model in the orientation.

2. A method according to claim 1 wherein identifying the first portion comprises defining a bounding box enclosing the first portion; and determining the orientation of generation for the object comprises determining an orientation of the object in which a smallest dimension of the bounding box is perpendicular to a plane of a layer in object generation.

3. A method according to claim 1 wherein the longer processing time during generation is associated with a number of printing passes of a print agent to be used in object generation which is greater than a default number of printing passes.

4. A method according to claim 1 wherein the object model comprises a first object model, the method comprising: receiving object model data, the object model data describing a plurality of objects to be generated using additive manufacturing and including the first object model; determining a plurality of candidate virtual build volumes indicating different possible placements and/or orientations of the plurality of objects, wherein the orientation of the first object model is fixed with respect to a vertical axis; evaluating, by at least one processor, the candidate virtual build volumes; and selecting a virtual build volume of the plurality of candidate virtual build volumes based on the evaluation.

5. A method according to claim 4 further comprising identifying, in addition to the first portion, any portion of any object modelled by the object model data which is associated with a longer processing time during generation of the object than at least one other object portion; and wherein evaluating the candidate virtual build volumes comprises evaluating the candidate virtual build volumes based on a number of layers to be generated containing an object portion associated with a longer processing time.

6. A method according to claim 5 wherein evaluating the candidate virtual build volumes comprises determining a weighted sum of the layers, wherein a weighting assigned to each layer is indicative of a time to process the layer.

7. A method according to claim 1 wherein the determined orientation of generation for the object is a first orientation and the method further comprises: determining a second portion of the object which is associated with a longer processing time during generation of the object than at least one other object portion, determining a second orientation of generation for the object based on the second portion; determining a second virtual build volume in which the object has the second orientation; evaluating the first and second virtual build volumes; and selecting a virtual build volume of the first and second virtual build volumes based on the evaluation.

8. A method according to claim 1 further comprising determining object generation instructions based on the determined virtual build volume.

9. A method according to claim 1 further comprising: generating, by the additive manufacturing apparatus, the object according to the instructions.

10. Apparatus comprising processing circuitry, wherein the processing circuitry comprises: an object orientation module to orient a model of an object to be generated using additive manufacturing by determining a region of the object to be generated which is associated with a longer processing time during generation of the object than at least one other object region, wherein the object is oriented to minimize the height of the region during object generation.

11. Apparatus according to claim 10, the processing circuitry further comprising: a virtual build volume assessment module to assess a set of candidate virtual build volumes modelling possible build volume contents for generation of a plurality of objects, wherein the plurality of objects comprise the object oriented to minimise the height of the region during object generation; and a print instructions module for determining print instructions for generating the object based on a virtual build volume of the set of candidate virtual build volumes which is selected following the assessment by the virtual build volume assessment module.

12. Apparatus according to claim 10 wherein the virtual build volume assessment module is to assess the set of candidate virtual build volumes based on at least one of a height of each candidate virtual build volume and a number of objects in each candidate virtual build volume.

13. Apparatus according to claim 10 further comprising a virtual build volume generation module to generate the set of candidate virtual build volumes by rearranging a set of virtual objects.

14. A tangible machine-readable medium storing instructions which, when executed by a processor, cause the processor to: determine a virtual build volume including an object model in an orientation which minimizes the number of layers over which a first portion of the object, which is associated with a longer processing time during generation of the object than at least one other object portion, is generated.

15. A tangible machine-readable medium according to claim 14 further storing instructions which, when executed by a processor, cause the processor to: determine a plurality of candidate virtual build volumes wherein the plurality of candidate virtual build volumes comprise the object model in a fixed orientation with respect to a plane of a layer in object generation and at least one second object model, wherein the orientation of the second object model with respect to the plane of the layer in object generation is different in different candidate virtual build volumes; and assess the plurality of candidate build volumes to determine a candidate build volume for use in determining additive manufacturing instructions for generating the objects.

Description:
ORIENTATION OF OBJECT MODELS 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 1A and 1B show an example of a method of determining a virtual build volume for additive manufacturing;

[0004] Figure 2 is an example of a method of determining a plurality of candidate virtual build volumes for additive manufacturing:

[0005] Figures 3 and 4 are examples of apparatus for use in additive manufacturing; and

[0006] Figure 5 is a simplified schematic diagram of a machine-readable medium in association with a processor, according to one example.

DETAILED DESCRIPTION

[0007] 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. 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 known as V1 R10A “HP PA12” available from HP Inc.

[0008] In some examples, selective solidification is achieved through 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 derived 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 to which fusing agent has been applied heats up/melts, coalesces and solidifies 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. In some examples, a binder agent may be printed on to build material.

[0009] In an example, a suitable fusing agent may be an ink-type formulation comprising carbon black, such as, for example, the fusing agent formulation commercially known as V1Q60A “HP fusing agent” available from HP Inc. In some examples, a fusing agent may comprise at least one of an infra-red light absorber, a near infra-red light absorber, a visible light absorber and a UV light absorber. Examples of print agents comprising visible light absorption enhancers are dye based colored ink and pigment based colored ink, such as inks commercially known as CE039A and CE042A available from HP Inc.

[0010] In some examples, a print agent may comprise a detailing agent which may also be used to control thermal aspects of a layer of build material - e.g. to provide cooling. In some examples, detailing agent may be used near edge surfaces of an object being generated. According to one example, a suitable detailing agent may be a formulation commercially known as V1Q61A “HP detailing agent” available from HP Inc.

[0011] 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 an object. Print agents may control or influence other physical or appearance properties, such as strength, resilience, conductivity, transparency, surface texture or the like.

[0012] 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 defined between 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.

[0013] In some examples, some object properties, build materials and/or print agents may be associated with a longer layer processing time that other properties/materials/agents.

[0014] For example, some print agents may be applied using more print passes than others. For example, while some agents may be applied in a single pass, or a default number of passes, other print agents may take multiple passes in order to deposit a sufficient quantity thereof onto a layer of build material, wherein the multiple passes may be more than the default number of printing passes. For example, some agents may be associated with a high contone level. Moreover, while such multiple passes may be used to deposit print agent onto just a localized portion of a layer, printheads or the like may nevertheless sweep across an entire layer such that depositing print agent in a local area may take substantially the same amount of time as applying print agent across the whole layer.

[0015] In other examples, other portions of the additive manufacturing process may increase the layer processing time. For example, a ‘low tint’ fusing agent may be used to provide bright colors when used with colored dyes (whereas the carbon black fusing agent mentioned above may produce darker objects). However, such a low tint fusing agent may have a lower light/heat absorption than carbon black fusing agent and therefore heating a layer including such a low tint fusing agent may take longer than heating a layer using carbon black fusing agent in order to reach a fusing temperature. This may also be the case when printing with other agents, such as conductive print agents, or relying on dyes or colorants to absorb energy to form a solidified object.

[0016] In other examples, a different thermal profile for heating a layer may be carried out to intrinsically provide certain properties. For example, certain properties may be enhanced by heating the build material relatively slowly whereas other properties, or simply time savings, may be seen when the layer is subjected to rapid heating.

[0017] In summary therefore, it may be the case that the layer processing time is not consistent for each layer during an additive manufacturing process.

[0018] Figure 1A is an example of a method, which may comprise a computer implemented method and/or a method of determining an orientation of at least one object to be generated within a build volume (also referred to herein as a fabrication chamber) of an additive manufacturing apparatus. The placement of object model(s) in an orientation for additive manufacturing may be referred to as a ‘virtual build volume’ as it models, or virtually represents, a possible placement of object(s) which may be generated in at least part of a build volume (or fabrication chamber) of an additive manufacturing apparatus.

[0019] Block 102 comprises receiving, by at least one processor, an object model. The object model comprises data describing an object to be generated in additive manufacturing, and may be referred to as a ‘virtual object’ herein. In some examples, the object model data may be received from a memory, over a network or the like. In some examples, the object model may comprise data describing at least the geometry of an object to be generated, for example in the form of a vector model or a mesh model of the object. In some examples, the object model may describe intended object properties, such as color, strength, density and the like. In some examples, the object model data describes the object to be generated as a plurality of non-overlapping contiguous sub-volumes. Such an object model may be referred to as a ‘voxel model’, wherein each sub-volume comprises a voxel (i.e. a volumetric pixel). In some examples, each sub-volume/voxel is associated with an object property (which may be an indication of whether the sub- volume/voxel represents a solid portion of the object) and/or at least one print agent. In some examples, the object model may comprise print instruction data, describing where print agent should be placed in order to produce the object, for example so as to provide an object having its intended properties. [0020] Block 104 comprises identifying, by at least one processor (which may comprise the same processor(s) as performs block 102), a portion of the object which is associated with a longer processing time during generation of the object than at least one other object portion. The processing time for the other object portion may for example be a default processing time. For example, as mentioned above, the identified portion may comprise a portion of the object associated with a property, build material or print agent which may result in a longer layer processing time than other portions.

[0021] As mentioned above, in some examples, the longer processing time during object generation is associated with a greater number of printing passes of a print agent to be used in object generation. For example, a number of drops of print agent to be applied may be higher than a maximum throughput of a printhead which is intended to apply the agent, and therefore multiple passes (or greater than a default number of printing passes, or a number of printing passes for at least one other object portion) may be specified. For example, the object may be intended to include a conductive portion, for example an electronic circuit. Such a property may be provided using a print agent which is to be applied in a plurality of printing passes in order to provide a predetermined conductivity. Portions of the object comprising such a circuit may be identified in block 104.

[0022] In some examples, the longer processing time during object generation may be associated with a number of heating operations, or a length of a heating operation. For example, portions of the object which are associated with colors which are to be produced using low tint fusing agent, or colorants or die without the use of carbon black fusing agent, may be identified. In some such examples, the core of an object may be generated using carbon black fusing agent which may provide strength whereas an outer ‘shell’ and/or visible portions of the object may be produced without use of carbon black fusing agent for example to provide a lighter color. In some examples, use of such low tint fusing agents may be associated with a greater number of heating passes and/or slower heating passes, wherein a heating element may be swept over a surface of the print bed. Therefore, greater energy may be delivered to the print bed, which may compensate for the lower heat absorption of the low tint fusing agent compared to that of carbon black fusing agent.

[0023] In other examples, the longer processing time may be associated with some other property, build material or agent used during additive manufacturing.

[0024] identifying the portion may for example comprise identifying, from the object model data, a portion of the object which is associated with a property indicative of a longer processing time. For example, the property may be associated with use of a particular print agent, build material and/or heating scheme which is to be used, wherein the print agent/build material/heating scheme is associated with a longer processing time than at least one another object portion. In other examples, the object model may indicate directly that a particular print agent, build material and/or heating scheme associated with a longer processing time is to be used for in generation of a portion of the object. In other examples, a portion may be tagged in the object model data to indicate it is associated with a longer processing time than other object portions.

[0025] In some examples, block 104 may comprise defining a bounding box enclosing an identified portion, and which may be associated with the identified portion. In some examples, the bounding box is a cuboid (although in principle it could be any shape), which may be the smallest cuboid which fully encloses the identified portion. For example, the cuboid may be the smallest cuboid which fully encloses a continuous or non- continuous portion associated with a slower layer processing time.

[0026] In some examples, a plurality of portions may be identified (and, in some such examples, a plurality of bounding boxes may be defined). For example, these may comprise different non-continuous regions of the object which are associated with processing times which are longer than a default processing time or longer than another object portion. In some examples, object regions may be considered to be non-continuous if they are separated by a threshold separation, wherein if the regions are separated by less than the threshold separation, they may be considered to be part of the same object portion.

[0027] In some examples in which a plurality of portions are identified, different portions may be associated with a different cause of more lengthy processing. For example, a first portion may be associated with a first print agent which is applied in multiple passes and a second portion may be associated with a second, different, print agent which is applied in multiple passes, wherein, in some examples, the number of associated passes may be different. In some examples, both numbers of passes may be greater than a default number of passes, as may be used in another object portion. In another example, a first portion may be associated with a print agent which is applied in multiple passes whereas a second portion may be associated with multiple and/or slower heating passes.

[0028] Block 106 comprises, by at least one processor (which may comprise the same processor(s) as performs block 102 and/or block 104), determining an orientation of generation for the object based on the identified portion(s). For example, this may comprise determining an orientation of generation of the object which minimizes a number of layers over which an identified portion is generated. This may therefore result in a faster generation time for the object overall. In some examples, this may comprise determining an orientation in which a bounding box is defined enclosing the portion associated with longer processing time is oriented so as to be parallel with axes of the virtual build volume (i.e. the sides of the bounding box may be parallel to the notional ‘walls’ and base or top of the virtual build volume).

[0029] It may be noted that the orientation of an object during generation may be different to the intended orientation in use - for example, objects may be generated ‘upside down’, or on their sides or in some other way. For example, the orientation of an electrical circuit in the object model may be on a side face. If the object was re-oriented such that the electrical circuit was on a face which was at least substantially parallel to the plane of the layer, it may be that the number of layers over which the circuit is generated is minimized. As the presence of even a small amount of a conductive agent (or other agent or property associated with a longer processing time) may result in a slower processing time for the layer as a whole, orienting the object with consideration of the portion of the object identified in block 104 may allow processing times to be considerably reduced. Moreover, as printing passes may be associated with maintenance routines such as ‘spitting’ in which nozzles are purged by ejecting print agent as waste, materials may also be conserved in this way, as the number of layers over which spitting of the particular print agent (e.g. in this example a conductive print agent) may be reduced.

[0030] In examples in which a bounding box is defined enclosing the portion associated with longer processing time, block 106 may comprise determining an orientation of the object in which a smallest dimension of the bounding box is perpendicular to a plane of a layer in object generation. This may orient the smallest dimension to be parallel to a vertical axis in object generation (i.e. an axis which is perpendicular to the plane of object generation). It may be noted that once the orientation is determined, the object may be rotated about a vertical axis without impacting the number of layers which are associated with longer processing times.

[0031] In examples in which a plurality of portions are identified in block 104, a plurality of orientations for the object may be determined in block 106. For example, there may be a first orientation which reduces the number of layers of generation associated with a first portion (e.g. minimizing the height of a bounding box associated with the first portion) and a second orientation which reduces the number of layers associated with generation of the second portion (e.g. minimizing the height of the bounding box associated with the second portion).

[0032] In examples in which a plurality of portions are identified in block 104, block 106 may comprise determining the orientation based on a selected one of these portions, wherein the portion may be selected randomly or deterministically. For example, in such cases, block 106 may comprise identifying the largest portion identified in block 104 (for example, the largest portion by voxel count, or by volume, or the largest bounding box), and the orientation may be determined based on the orientation of this portion. In other examples, a portion associated with the slowest processing time may be selected, and the object model oriented on that basis. In other examples, an orientation which minimizes the total number of layers associated with longer processing times may be determined.

[0033] Block 108 comprises determining, by at least one processor (which may comprise the same processor(s) as performs block 102, 104 and/or block 106), a virtual build volume including the object model in the orientation. In some examples, it may be the case that the object is to be generated by itself in a dedicated build operation. In other examples, the virtual build volume may indicate a possible placement of the object along with at least one other object. In such an example, the virtual build volume may indicate a possible placement and orientation of a plurality of objects in object generation, wherein the object described by the object model received in block 102 has an orientation determined in block 106.

[0034] Figure 1 B illustrates the effect of the method of Figure 1 A according to an example, and in two dimensions. An object model 110 may be analyzed in block 102 to identify a portion 112 associated with a longer processing time than at least one other object portion. In this example, a bounding box 114 is defined for this portion 112, and the object model 110 is then oriented within a virtual build volume 116 so that the smallest dimension of the bounding box 114 is parallel to the vertical axis of the virtual build volume 116.

[0035] In examples in which there are a plurality of orientations determined for the object (or there are a plurality of objects which may have different relative arrangements, as discussed below), a plurality of ‘candidate’ virtual build volumes may be determined. In such examples, a selection may be made between the candidate virtual build volumes, for example based on an overall predicted manufacturing time, as described in greater detail below.

[0036] The virtual build volume models at least part of an actual build volume (or fabrication chamber) which could result after carrying out an additive manufacturing operation. For example, this may specify the placement of the object(s) within the build volume (for example, location in three-dimensional space, which may be expressed using xyz coordinates relative to an origin, which may be defined as a corner of the build volume). In examples with a plurality of objects, the virtual build volume specifies the relative placement of objects to be generated within the build volume in the same possible object generation operation.

[0037] In some examples, the method of Figure 1A may further include determination of object generation instructions and/or generation of an object, as is described in greater detail below.

[0038] The method of Figure 1A allows for orientation of at least one object in additive manufacturing which takes into account object portions which may be associated with a longer processing time. In some examples, such object portions may be concentrated into a number of layers in object generation which may be less than if an arbitrary orientation was selected, in which case they may be distributed across the full height of the build volume. This may in turn reduce object generation times and, as noted above, may reduce maintenance routines such as ‘spitting’.

[0039] Figure 2 is another example of a method, which comprises (at least in part) a computer implemented method and/or a method of determining an arrangement of objects to be generated within a build volume.

[0040] Block 202 comprises, by at least one processor, receiving object model data modelling a plurality, or batch, of objects. It is intended in this example that at least some of the plurality of objects are generated together in a build volume in a single additive manufacturing operation. This object model data includes the object model described in relation to block 102 above, and further comprises data describing at least one other object.

[0041] Block 204 comprises, by at least one processor (which may be the same processor(s) as performs block 202), inspecting each object model to identify the portion(s) thereof which are associated with a longer processing time than other object portions (for example, longer than a default processing time). For example, as detailed above, this may comprise identifying, from the object model data, object portion(s) associated with object properties, build material and/or print agents which take longer to process. In this example, a bounding box is determined for each identified portion of each object comprising such an object portion. This ‘portion bounding box’ is the smallest cuboid which fully encloses all object portions which are associated with a longer processing time. In other examples, a plurality of portion bounding boxes may be determined for an object, for example where portions associated with longer processing times are non-continuous, or are separated by at least a threshold distance.

[0042] Block 206 comprises, by at least one processor (which may be the same processor(s) as performs block 202 and/or block 204), orienting each object for which a portion is identified in block 104 such that the portion bounding box has its smallest dimension perpendicular to the plane of a layer in object generation. Other objects may have some other orientation, for example being oriented in a random fashion, having an orientation specified by a user, having an orientation based on the originally supplied model data, having an orientation such that their smallest dimension is parallel to a vertical axis, or such that a bounding box defined for the object as a whole (an ‘object bounding box’ described in greater detail below) is oriented parallel to the axes of the virtual build volume or the like. As described below, in subsequent iterations of the method, another dimension of at least one portion bounding box may be aligned with the vertical axis.

[0043] In some examples, a cuboid ‘object bounding box’ may be defined enclosing each of the objects in the intended orientation of generation (and in some examples including some additional space such that objects will have a minimum separation distance), wherein each object bounding box has sides which are parallel to the dimensions of the virtual build volume. Such object bounding boxes may simplify the packing operation described below, as cuboids provide a relatively simple shape for packing. In examples in which a number of different orientations for the object are considered, a plurality of object bounding boxes may be defined for an object, in each case having its sides which are parallel to the sides and base of the virtual build volume, and fully enclosing the object in that orientation (in some examples with the additional space described above).

[0044] Block 208 comprises, by at least one processor (which may be the same processor(s) as performs any or any combination of blocks 202 to 206), packing the ‘virtual’ objects modelled by the object model data into a virtual build volume, to provide a candidate virtual build volume. This packing may be carried out manually, for example by a user. In other examples, a packing algorithm may be used which may respect certain criteria, such as a specification that the virtual objects do not intersect, and/or are separated by a minimum separation distance. In some examples, algorithms like Ants, Genetic Algorithms or Greedy Randomized Adaptive Search Procedure (GRASP) could be used in the packing process. In some examples, when determining a virtual build volume, separation distances may be defined to ensure that objects do not merge or deform during object generation. In addition, in particular when additive manufacturing processes use or generate heat, objects may be separated to provide at least a degree of thermal isolation between objects. For example, where fusing agent is applied to a layer which is then heated, this may result in the portion of the build material which received fusing agent reaching a fusing temperature. However, when there is also heating from a nearby object, the temperature in an area around that to which the fusing agent is applied may also reach its fusing temperature, resulting in a deformity, often in the form of a ‘bulge’, being formed in the object.

[0045] In this example, any object oriented in block 206 has the orientation determined thereby with respect to the vertical axis of the virtual build volume. However, while the vertical axis may be considered to be fixed in block 206, the angle of rotation about that axis may not be fixed. Viewed conceptually, the virtual object may be permitted to ‘spin’ around the vertical axis. The angle of rotation about the vertical axis for such objects may for example be selected by a user, may be a random selection (for example such that an object bounding box enclosing the object as a whole is aligned with the walls of the virtual build volume) or may be selected in some other way by the packing method.

[0046] Block 210 comprises, by at least one processor (which may be the same processor(s) as performs any or any combination of blocks 202 to 208), evaluating the candidate virtual build volume.

[0047] For example, in order to carry out the evaluation, the virtual build volume may be ‘sliced’ into a plurality of slices, each corresponding to a layer in additive manufacturing. The evaluation may comprise a count of the number of slices which comprise an identified portion associated with a longer processing time, or a ratio of the number of slices including such a portion to the number of slices without such a portion. In some examples, a weighted sum may be determined for the slices, wherein the weight corresponds to an expected object generation time, such that slices associated with a longer processing time may be given a different (e.g. higher) weight to slices which are not associated with such longer processing times. In some examples, a layer may be associated with more than one portion associated with a longer processing time. In such an example, the layer may be given the weight associated with the longest processing time of the different portions, or the weight may be determined in some other way. Counting the total number of slices may also be useful as minimizing the height of a build operation may also reduce the overall generation time.

[0048] It may be noted that orientation of individual objects such that the height of portions therein which are associated with longer processing times is minimized may in itself reduce the time taken to generate the batch of objects. Thus, in some examples, the virtual build volume may be assessed based on a packing score, as is set out below, without specific consideration of the number of layers which are associated with longer processing times.

[0049] Block 212 comprises determining, by at least one processor (which may be the same processor(s) as performs any or any combination of blocks 202 to 210) if at least one criteria is met. For example, this may be an indication, based on the evaluation, that the additive manufacturing operation will take less than a predetermined amount of time. In other examples, where the method may iterate as described below, the criteria may be set with reference to values determined on other iterations. In other examples, the criteria may be an indication that a predetermined number of iterations has been completed.

[0050] Assuming the criteria has not been met, the method may proceed to block 214 which comprises, by at least one processor (which may be the same processor(s) as performs any or any combination of blocks 202 to 212), determining a further virtual build volume. This may for example comprise “shuffling” the objects to provide a new candidate virtual build volume. This may be carried out as described in relation to block 208.

[0051] In this example, the orientation of objects comprising a portion associated with a longer processing time during generation of the object than at least one other object portion is fixed with respect to the plane of a layer in object generation (i.e. the vertical axis is fixed). In other words, while objects oriented in block 206 may be locked into the orientations determined thereby, and allowed to rotate about the vertical axis but not a horizontal axis, other objects may be rotated about a horizontal axis, or about any axis. In some examples, there may be other condition(s) placed on the re-arrangement of objects within the candidate virtual build volumes. For example, the rotations and translations applied when re-arranging the objects may be constrained. For example, rotations may be 90° rotations, or 45° rotations but a full range of rotation angles may not be accessible. This may assist in reducing the search area in identifying a suitable virtual build volume from the candidate virtual build volumes.

[0052] In some examples, some or all of the virtual objects may be repositioned within the virtual build volume in block 214. In some examples, the method may comprise validating that the new object placement remains inside the printable volume and does not result in an intersection between objects.

[0053] The method may then loop back to block 210, in which the evaluation is carried out on the new candidate virtual build volume. The method may continue to loop until the criteria is met. For example, the criteria may comprise any or any combination of: a determination that a new 'best' solution has not been found in the previous n iterations, where n is a predetermined integer, the difference between the best solutions is less than a predetermined difference, a predetermined number of iterations have been completed, a candidate virtual build volume which can be generated in less than a predetermined amount of time has been identified or the like. In some examples, the predetermined criteria may relate to a rate of change of the result of the evaluation. In some examples, the method may iterate until a rate of change of the evaluation output is lower than a predetermined threshold (or in other words, until new candidate virtual build volumes do not produce significant improvements over previously evaluated candidate virtual build volumes).

[0054] Once the criteria has been met, the determination in block 212 is positive and the method proceeds to block 216. Block 216 comprises selecting, by at least one processor (which may comprise the same processor(s) as performs any or any combination of blocks 202 to 214), one of the candidate build volumes based on the evaluation. For example, this may comprise selecting the candidate build volume associated with a value indicative that it will be produced in the shortest amount of time, and/or may comprise selection based on a packing score as further set out below. Selection between evaluated candidate virtual build volumes may comprise selecting, in some examples automatically, the candidate virtual build volume based on a predetermined criteria (e.g. lowest or highest score, which may depend on the evaluation scheme used) or in some other way.

[0055] The method then proceeds to block 218, which comprises determining, by at least one processor (which may be the same processor(s) as performs any or any combination of blocks 202 to 216), instructions for use by an additive manufacturing apparatus to generate the object. For example, determining additive manufacturing, or object generation, instructions may comprise determining ‘slices’ of the selected virtual build volume, and rasterizing 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 build volume which is intended to solidify, the additive manufacturing 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 build volume which is intended to remain unsolidified, then additive manufacturing 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 determined instructions and these amounts may be determined based on, for example, thermal considerations and the like. In other examples, additive manufacturing instructions may be determined in some other way, for example specifying direction of energy and/or placement of other agents such as curing or binding agents. In further examples, the object model data may be provided in a print-ready format, such that additive manufacturing instructions may already effectively be encoded therein.

[0056] In some examples, the method may further comprise, in block 220, and by additive manufacturing apparatus, generating the object according to the instructions. For example, the objects may be generated in a layer-wise manner. 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 additive manufacturing instructions for an object model slice corresponding to that layer, and using at least one print agent applicator, and applying energy, for example heat, to the layer. A further layer of build material may then be formed and the process repeated, for example with the additive manufacturing instructions for the next slice. In other examples, other object generation techniques may be used.

[0057] As mentioned above, in some examples, at least one object model may comprise more than one portion associated with a longer processing time. In such examples, the method may be repeated with another identified portion having its optimal rotation with respect to the virtual build volume. In other words, in a first set of at least one iteration, an object may have a first orientation which is fixed with respect to the vertical axis, wherein the first orientation is determined based on a first portion associated with a longer processing time. In a second set of at least one iteration, the object may have a different second orientation which is fixed with respect to the vertical axis, wherein the second orientation is based on a second portion associated with a longer processing time.

[0058] As noted above, in some examples the different portions may be associated with a different cause of more lengthy processing, for example different multipass print agents, or slower heating for one portion, and multiple print agent passes for the other portion, and the like. This may result in portions of different categories being defined, wherein different categories are associated with different causes of more lengthy processing.

[0059] In some such examples, packing operations may be carried out with respect to each category of portion in turn, such that there may be partial packing operations for each of a subset of object models. For example, object models having a first category of portion (e.g. a portion associated with a first multi-pass print agent) may be packed first (in some examples, whether or not they also include a portion of the second category) in the manner set out with reference to block 208, and these objects may be rearranged as set out in relation to block 214. When a solution has been reached for these objects based on an evaluation, for example as described above with reference to block 210 and 212, object models having a second category of portion (e.g. a portion associated with a second multi-pass print agent) may then be packed into the remaining space in the virtual build volume, i.e. on top of the already packed objects, and without changing positions of the already packed objects. Again, these objects may be packed as described in relation to block 208, rearranged as described in block 214, and the arrangement may be evaluated with reference to a criteria as described in relation to block 210 and 212. In some examples, the first object models to be packed may be those associated with portions having the longest associated processing times, and the method may then proceed with packing objects associated with regions of progressively shorter processing times.

[0060] The method may proceed in this way until all categories of portions have been addressed. In some such examples, the method may then be repeated, but starting with a different category of portion, such that the best solution out of each packing operation may be identified. The selected build volume may be selected based on the outcome of these sets of iterations.

[0061] Similarly, the method described in Figure 2 may undergo a further iteration from block 206 with at least one object oriented with its portion bounding box having a non- minimal dimension aligned with the vertical axis, as this may yield a better overall solution. For example, the portion bounding box may have its next smallest dimension aligned with the vertical axis.

[0062] According to the method of Figure 2, therefore, a plurality of candidate virtual build volumes are determined and evaluated until, for example, a predetermined criteria is reached, at which point a ‘best’ candidate virtual build volume may be adopted as a selected build volume.

[0063] As mentioned above, a score for a candidate build volume may be determined and a build volume may be selected from the candidate build volumes based on a packing score. This may in some examples include an evaluation of a number of layers associated with longer processing times, although in other examples, the score may not include such an evaluation as the orientation of the objects with a consideration of this may tend to reduce the number of layers associated with longer processing times in any event.

[0064] In examples, a packing score may comprise an evaluation of the packing efficiency, i.e. how efficiently the space available in a build volume is utilized. For example, such a score may take account of the number of objects and the overall height of the occupied build volume as generally the lower the height of the build volume, the faster the build volume may be generated.

[0065] For example, a candidate virtual build volume may be assessed using an equation as set out below:

Where: p = Number of objects which are omitted from candidate virtual build volume Z = height of each object in the build volume, measured from the bottom of the build volume

V = score based on number of longer processing time layers d = Usable height of build volume a = Assigned importance of the average height p = Assigned importance of the maximum height y = Assigned importance of grouping longer processing time layers n = number of objects [0066] The first term of the equation (eP) seeks to optimize the number of objects in the build volume, and in this example, this is given the greatest weight in the output score by comparing the number of objects included with a target number of objects (with p being the difference). The bracketed portion of the equation ranges from 0 to 1 and takes into account different parameters that affects the ‘goodness’ of the object arrangement of the candidate virtual build volume, including the average height of the objects in the build volume, and the total height as a proportion of the usable height. A score of 0 for the first term may indicate a ‘perfect’ packing. The final term, which may be optional, directly evaluates the number of layers associated with a longer processing time.

[0067] For example, candidate_virtual_build_volume_packing_score as set out above may be evaluated with a, p and y being selected, for example according to user priorities or default parameters.

[0068] Of course, this is just one example of an equation which could be used and, depending on the intended use case, the basis of an evaluation may change. For example, an evaluation may comprise a weighted sum of the layers, wherein each layer is weighted based on whether it is associated with a longer processing time. In some examples, there may be a plurality of different anticipated processing times, and a plurality of associated weights. In other examples, an estimated processing time for the build operation may provide a basis of a score for the candidate virtual build volume.

[0069] Figure 3 shows an example of apparatus 300 comprising processing circuitry 302. The processing circuitry 302 comprises an object orientation module 304, which, in use of the apparatus 300, orients a model of an object to be generated using additive manufacturing by determining a region (or portion) of the object to be generated using a longer processing time than other object regions (for example, longer than a default processing time). In an example, the object orientation module 304 determines object regions which are to be generated with a plurality of print agent passes, wherein the plurality of printing passes may be more printing passes than a default number, or a number use in some other object region. In another example, the object orientation module 304 determines object regions which are to be generated with a relatively slow heating operation. Moreover, the object orientation module 304 is to orient the object based on the region, and in particular in some examples is to minimize the height of the region during object generation. In some examples, the object orientation module 304 may determine regions of a plurality of objects to be generated, and may determine an orientation for each of these objects. In some examples, the object orientation module 304 may determine a plurality of regions within an object which are associated with a longer processing time, in such examples, a plurality of orientations may be determined, wherein at least one orientation is associated with each region. For example, the object orientation module 304 may define bounding boxes enclosing at least one region in at least one object, and the bounding box may be oriented such that its smallest dimension is parallel to a vertical axis of a virtual build volume.

[0070] in some examples, the object orientation module 304 may carry out any or any combination of blocks 104 and 106 of Figure 1A or blocks 204 and 206 of Figure 2 based on data such as that received in block 102 of Figure 1A or block 202 of Figure 2.

[0071] Figure 4 shows an example of additive manufacturing apparatus 400 comprising processing circuitry 402. The processing circuitry 402 comprises an object orientation module 304 as described in relation to Figure 3. Moreover, the processing circuitry 402 comprises a virtual build volume assessment module 404, a print instructions module 406 and a virtual build volume generation module 408.

[0072] In use of the apparatus 400, the virtual build volume generation module 408 generates at least one candidate virtual build volume, and may generate a set of candidate virtual build volumes by rearranging a set of virtual objects. The orientation of object(s) comprising regions associated with longer processing times may be fixed with respect to a vertical axis, or perpendicular to a plane of a layer in object generation, in at least some of the candidate virtual build volumes. For example, the virtual build volume generation module 408 may operate as described in relation to block 108, 208 and/or 214.

[0073] In use of the apparatus 400, the virtual build volume assessment module 404 assesses at least one candidate virtual build volume modelling possible build volume contents for generation of a plurality of objects, wherein the plurality of objects comprise the object which is oriented, by the object orientation module 304 and as described in relation to Figure 3, to minimize the height of the region during object generation.

[0074] in some examples, the virtual build volume assessment module 404 may select a candidate virtual build volume. For example, this may be selected to minimize a projected time for a build operation although in other examples other criteria may also be considered. For example, the virtual build volume assessment module 404 may assess (or analyze) the set of candidate virtual build volumes based on at least one of a height of each candidate virtual build volume and a number of objects in each candidate virtual build volume. In other words, while the object orientation module 304 may tend to arrange object regions which are associated with a longer processing time such that they tend to lie in relatively few layers, the virtual build volume assessment module 404 may take into account other criteria for example as part of an optimization problem (or partial optimization problem) in evaluating a virtual build volume. In some examples, the assessment criteria may have associated relative influences on a function such that each can be given a relative importance. In some examples, a packing score may be determined as described above. For example, the virtual build volume assessment module 404 may carry out any or any combination of blocks 210, 212 or 216 of Figure 2.

[0075] The print instructions module 406, in use of the apparatus 400, determines print instructions (or additive manufacturing instructions) for generating the object based on a virtual build volume of the set of candidate virtual build volumes which is selected following assessment by the virtual build volume assessment module 404. For example, the print instruction module 406 may operate as described in relation to block 218, although in other examples, print instructions may be generated in some other way.

[0076] The additive manufacturing apparatus 400 may comprise additional apparatus for generating objects in additive manufacturing not shown herein. For example, the additive manufacturing apparatus 400 may comprise any or any combination of a build volume in which at least one object may be generated, a print bed, print agent applicator(s) such as 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, which are not described in detail herein. For example, the additive manufacturing apparatus 400 may carry out block 220 described above, for example using print instructions determined by the print instructions module 406.

[0077] The processing circuitry 302, 402 may, in use of the apparatus 300, 400, carry out any or any combination of the blocks of Figure 1A, or any of block 202 to 218 of Figure 2.

[0078] Figure 5 shows an example of a tangible machine readable medium 500 in association with a processor 502. The machine readable medium 500 stores instructions 504 which, when executed, cause the processor 502 to carry out certain operations. In this example, the instructions 504 comprise instructions to cause the processor 502 to determine a virtual build volume including an object model in an orientation which minimizes the number of layers over which a first portion of the object, which is associated with a longer processing time during generation of the object than at least one other object portion, is generated.

[0079] The instructions 504 may, when executed, cause the processor to determine a plurality of candidate virtual build volumes, wherein the plurality of candidate virtual build volumes comprise the object model in a fixed orientation relative with respect to a plane of a layer in object generation and at least one second object model, wherein the orientation of the second object model is different with respect to the plane of the layer in object generation in different candidate virtual build volumes. In some examples, as set out above, the instructions may apply rotation(s) (e.g. a predetermined number of rotations) to the objects to generate different object orientations, and/or translations to shift the intended locations of object(s) within a fabrication chamber or build volume.

[0080] The instructions 504 may, when executed, cause the processor to assess the plurality of candidate virtual build volumes to determine a candidate virtual build volume for use in determining additive manufacturing instructions for generating the objects. The assessment may comprise analyzing, for example scoring, the plurality of possible object generation arrangements modelled by the plurality of candidate virtual build volumes.

[0081] In some examples, the instructions 504 may cause the processor 502 to carry out any, or any combination, of the blocks of Figure 1A or any of block 202 to 218 of Figure 2, or may control an additive manufacturing apparatus to carry out block 220 of Figure 2. For example, the possible object generation arrangements may be characterized as candidate virtual build volumes as described above.

[0082] In some examples, the instructions 504 may comprise instructions to cause the processor 502 to act as the object orientation module 304, the virtual build volume assessment module 404, the print instructions module 406 and/or the virtual build volume generation module 408.

[0083] 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.

[0084] The present disclosure is described with reference to flow charts and 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.

[0085] 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 and devices (for example the object orientation module 304, the virtual build volume assessment module 404, the print instructions module 406 and/or the virtual build volume generation module 408) 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.

[0086] 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.

[0087] Such 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 device(s) 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 block(s) in the flow charts and/or in the block diagrams.

[0088] 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.

[0089] 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 only 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.

[0090] 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. [0091] The features of any dependent claim may be combined with the features of any of the independent claims or other dependent claims.