Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DETERMINING PRINT AGENT USE IN ADDITIVE MANUFACTURING
Document Type and Number:
WIPO Patent Application WO/2021/236097
Kind Code:
A1
Abstract:
Determining print agent use in additive manufacturing is described in which model data relating to a first representation of a three-dimensional (3D) part to be printed can be received, and a second voxelised representation of the 3D part to be printed can be generated, the voxelised representation comprising a plurality of voxels. The voxels forming the surface of the voxelised representation may be identified, and data relating to a normal vector of each of the voxels forming the surface of the representation may be determined. Using the determined normal vector data, the print agent use can be modified to produce desired effects to the structural characteristics of the physical 3D part during the physical printing process, such as providing uniformity to part quality.

Inventors:
FERNANDEZ AYMERICH ISMAEL (ES)
DOMINGUEZ MANCHADO CRISTINA (ES)
GONZALEZ MARTIN SERGIO (ES)
Application Number:
PCT/US2020/034175
Publication Date:
November 25, 2021
Filing Date:
May 22, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
B29C64/165; B29C64/393; B33Y10/00; B33Y50/02
Foreign References:
US20170368753A12017-12-28
US20170116747A12017-04-27
US20180001550A12018-01-04
Attorney, Agent or Firm:
WOODWORTH, Jeffrey C. et al. (US)
Download PDF:
Claims:
CLAIMS

1. A method comprising: receiving model data relating to a 3D part to be printed; generating a representation of the received model data, the representation comprising a plurality of voxels; identifying the voxels forming the surface of the representation from the plurality of voxels; determining data relating to a normal vector of each of the voxels forming the surface of the representation; and determining print agent use based at least in part on the normal vector data.

2. The method of claim 1 , wherein the received model data is a triangle mesh model or a sliced model.

3. The method of claim 2, wherein when the received model data is the sliced model, the identifying of the voxels forming the surface of the representation comprises: grouping the voxels into blocks of 3x3x3 voxels; and identifying voxel blocks comprising at least one solid voxel and at least one empty voxel.

4. The method of claim 3, wherein when the received model data is a sliced model, the determining of the data relating to the normal vector comprises: identifying the arrangement of solid voxels and empty voxels each voxel block; matching the identified arrangement with a corresponding arrangement in a normal vector database to obtain a normal vector for the voxel block; and assigning the obtained normal vector from the normal vector database to the voxel block.

5. The method of claim 2, wherein when the received model data is a triangle mesh model, the determining of the data relating to the normal vector comprises: determining the normal vector of each triangle in the triangle mesh model; and assigning the determined normal vector for each voxel within the triangle. 6. The method of claim 5, wherein assigning the determined normal vector further comprises assigning an average of the normal of a plurality of triangles for voxels which are located within the plurality of triangles.

7. The method of claim 1 , wherein the normal vector data of each voxel forming the surface of the representation is indicative of the orientation of the part of the surface where the voxel is located.

8. The method of claim 1 , wherein determining the print agent use comprises: identifying voxels forming the surface of the representation which are flat surface edge voxels, wherein flat surface edge voxels comprise substantially positive z component normal vectors, and wherein flat surface edge voxels have adjacent voxels comprising x or y component normal vectors; identifying voxels forming the surface of the representation which are vertical surface voxels, wherein vertical surface voxels comprise substantially positive and/or negative x and/or y component normal vectors; obtaining data relating the direction of movement of a re-coater and a print carriage; and adapting the application of print agent based on the identified flat surface edge voxels and vertical surface voxels, and the obtained data relating to the direction of movement of the re- coater and the print carriage.

9. The method of claim 8, wherein adapting the application of the print agent further comprises: adapting the amount of the print agent applied on parts of the surface of the representation with flat edge surface voxels towards an end of the direction of movement of the re-coater; and/or adapting the amount of the print agent applied on parts of the surface of the representation with vertical surface voxels towards the start and/or end of the direction of movement of the print carriage.

10. The method of claim 1 , further comprising applying the print agent based on the modified print agent use, wherein the print agent to be applied is a fusing agent and/or a detailing agent.

11. An additive manufacturing system comprising a controller, wherein the controller is to: receive 3D model data comprising a first representation of a 3D part to be printed; generate, using the received 3D model data, a second representation of the 3D part, the second representation comprising a plurality of voxels; identify, from the plurality of voxels of the second representation, the voxels forming a surface of the second representation; determine normal vector data of the voxels forming the surface of the second representation, the normal vector data being representative of the orientation of the surface of the second representation; and control the delivery of print agent based on the normal vector data.

12. The system of claim 11 , wherein the system further comprises: a re-coater to spread a layer of build material on a powder bed; a print carriage to apply the print agent on the layer of the build material based on the determination by the controller.

13. The system of claim 12, wherein the controller is to determine the print agent use by: identifying voxels forming the surface of the second representation which are flat surface edge voxels, wherein flat surface edge voxels comprise substantially positive z component normal vectors, and wherein flat surface edge voxels have neighbouring voxels comprising x or y component normal vectors; identifying voxels forming the surface of the second representation which are vertical surface voxels, wherein vertical surface voxels comprise substantially positive or negative x or y component normal vectors; determining data relating to the direction of movement of the re-coater and the print carriage; and adapting the application of print agent by the print carriage based on the identified flat surface edge voxels and vertical surface voxels, and data relating to the direction of movement of the re-coater and the print carriage.

14. The system of claim 13, wherein the adapting of the application of the print agent by the print carriage further comprises: adapting the amount of the print agent applied when the print carriage approaches the parts of the surface of the second representation with flat edge surface voxels towards the end of the direction of movement of the re-coater; and/or adapting the amount of the print agent applied for one in every two layers of build material layered on top of one another in parts of the surface of the second representation with vertical surface voxels towards the start and/or end of the direction of movement of the print carriage.

15. A non-transitory computer-readable medium comprising instructions, which when executed on a computing device, cause the computing device to: obtain object model data defining a three-dimensional model of an object to be printed by an additive manufacturing system; obtain a representation of the received model data, the representation comprising a plurality of voxels; generate voxel data that identifies a surface of the representation from the plurality of voxels; generate data relating to a geometrical normal of each of the voxels forming the surface of the representation; and generate print agent data relating to print agent use based at least in part on the generated geometrical normal data.

Description:
DETERMINING PRINT AGENT USE IN ADDITIVE MANUFACTURING

BACKGROUND

[001] Three-dimensional (3D) objects generated by an additive manufacturing process may be formed in a layer-by-layer manner and, in one example, an object may be generated by solidifying portions of layers of build material. In other examples, 3D objects may be generated using extruded plastics or sprayed materials as build materials, which solidify to form an object.

[002] Additive manufacturing systems may generate objects based on design data. This may involve a designer generating a 3D digital model of an object to be generated, for example using a computer aided design (CAD) application.

BRIEF DESCRIPTION OF THE DRAWINGS

[003] Figure 1 is an example additive manufacturing system according to the present disclosure.

[004] Figure 2 is a schematic diagram showing components of a controller according to an example;

[005] Figure 3 is a flow diagram showing a method of determining print agent use according to an example;

[006] Figure 4 is an example of a computer readable medium comprising instructions to determine print agent use according to an example;

DETAILED DESCRIPTION

[007] In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific examples in which the disclosure may be practiced. It is to be understood that other examples may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims. It is to be understood that features of the various examples described herein may be combined, in part or whole, with each other, unless specifically noted otherwise.

[008] Additive manufacturing systems that are also referred to as three-dimensional, or 3D, printers may generate objects based on structural design data. In general with regard to 3D printing, the term "build material" is to be understood in the sense of a physical substance that can be used to generate an object. 3D printing is a process of making a three-dimensional solid or physical object of virtually any shape from a digital 3D model defined primarily in a certain format. The 3D model may be an object or objects to be created via 3D manufacturing processes during a printing operation. It may include a single object, multiple objects, an object fully enclosed in another object, or multiple objects in an interlocked and inseparable assembly.

[009] An example of an additive manufacturing process uses a fusing technique where at least one print agent is selectively applied to the build material, and the print agent may be liquid when applied. The print agent may, in one example, be a fusing agent which 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 to which fusing agent has been applied heats up/melts, coalesces and then solidifies upon cooling to form a layer of the three-dimensional object in accordance with the pattern. In other examples, coalescence may be achieved in some other manner. In some fusing techniques a detailing agent which acts to modify the effects of a fusing agent may be used in addition to the fusing agent. The detailing agent may, for example, reduce (e.g. by cooling) coalescence or assist in producing a particular finish or appearance to an object. Detailing agent 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 printed. The print agent is not limited to being a fusing agent and/or detailing agent and may be any substance which, when selectively applied to the build material, may alter the physical characteristics of the build material. In some examples, the build material may alter the visual characteristics of the build material by providing colour or transparency. In a further example, the print agent may alter the structural characteristics of the build material by providing conductivity. The example solution described in detail below is suitable for 3D printing techniques including localised fusing, but can include other additive manufacturing techniques.

[0010] Using computer aided design (CAD) applications, a designer is able to create 3D representations of 3D parts to be printed in any orientation. A localised fusing additive manufacturing process may comprise a recoater to spread the build material (which may be powder based) over a build platform, and a print carriage comprising a printhead or a plurality of printheads to selectively apply a fusing agent and/or detailing agent. An energy emitter may be provided to apply fusing energy to promote coalescence of the build material in areas where the fusing agent has been selectively applied. In an example, the energy emitter may be a heater and the fusing energy may be thermal energy. The print carriage selectively applies, via the printheads, the fusing/detailing agents in specified locations such that after several iterations of layering build material, applying fusing/detailing agents and providing fusing energy to coalesce the build material in areas where the fusing agent has been selectively applied, the 3D representation as created by the designer is realised in a physical 3D part.

[0011] Obtaining data in relation to orientation of a 3D part to be printed may allow for the determination of structural characteristics such as part quality of the physical 3D part once it has been printed. In one example, the orientation data can be based on normal vectors at any given location of the surface of the 3D representation of the 3D parts to be printed. This in turn allows for the determination of any adjustments that may be made to the application of fluids such as fusing agent and/or detailing agent) to produce desired effects to the structural characteristics of the physical 3D part during the physical printing process, such as providing uniformity to part quality.

[0012] With reference to fig. 1 , there is shown an example additive manufacturing system 100 according to the present disclosure. In this example, the system 100 comprises a controller 110. The controller 110 receives model data 120 relating to a 3D part to be printed. In an example, the model data 120 received by the controller 110 may be provided as a 3MF - 3D manufacturing - format print file. A 3MF file may contain one or a plurality of geometry models, for example, triangular mesh models and/or sliced models. In the context of 3MF, the triangular mesh model is part of a 3MF core specification in which geometries can be represented by means of a plurality of triangles forming a “shell” of a 3D part to be printed. The plurality of triangles connected together may be referred to as a mesh. Further, the sliced model represents geometries by means of slices, where 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. The controller 110 is controllable to process the model data 120 and to produce a “voxelised” representation of the 3D part to be printed using a plurality of voxels (volume pixel). A voxel is a volume representation of a point in 3D space which has been divided into discrete regions. A voxel is represented in the shape of a cube where its width, height and depth are expressed with integers. Similarly, the coordinates of the voxel in 3D space is also expressed with integers. In an example, the voxelised representation of the 3D part to be printed may be displayed in a display unit (not shown) which can include a viewing application that has the capability of enabling reviewing, annotating and/ or modifying of the voxelised representation.

[0013] Still referring to fig. 1 , the additive manufacturing system 100 comprises a recoater 130 and a print carriage 140. The recoater 130 may apply a layer of build material on a build platform (not shown) and the print carriage 140 may selectively apply, via printheads (not shown) on the print carriage 140, fluid over the layer of the build material. In an example, the fluid applied may be a fusing agent and/or a detailing agent. The fusing agent, when provided with fusing energyto the whole of the layer of build material, causes build material particles on which the fusing agent is selectively applied to heat up above their melting point, causing the particles to melt, coalesce, and then solidify upon cooling. The detailing agent may selectively be applied to the build material and acts to modify the effects of a fusing agent or energy applied for example by inhibiting, reducing or increasing coalescence or to assist in producing a particular finish or appearance to an object. The controller 110 processes the model data relating to a 3D part to be printed to obtain data in relation to the 3D part to be printed. In an example, the data may be geometrical normal data related to the orientation of a surface of a representation of the 3D part to be printed. The controller 110 is controllable to output the processed model data from the controller 110 to the print carriage 140 so as to control the delivery or use of print agent based on the geometrical normal data. After successive layers of applying the build material, applying the fluid, and providing fusing energy, a physical 3D part may be formed based on the processed 3D model as output by the controller 110.

[0014] With reference to fig. 2, the controller 110 may comprise a plurality of components, some of which are described below. The controller may be a programmable logic device (PLD) or other computing device that can carry out instructions. The controller may include one or multiple processing elements that are integrated in a single device as described in the example below or distributed across devices.

[0015] The controller 110 of the system 100 may comprise a data input/output interface unit 111 to receive input data from external components, for example, user input devices (not shown) to allow a user to interact with the system 100. The unit 111 may also output data from the controller 110 to other external components, for example, such as a display unit (not shown).

[0016] The controller 110 may further comprise a processor 112 to manage all the components within the controller 110, and process all data flow between the components within the controller 110. The processor may be any of a central processing unit, a semiconductor-based microprocessor, an application specific integrated circuit (ASIC), and/or other device suitable for retrieval and execution of instructions.

[0017] The controller 110 may further comprise a storage or memory unit 113 to store any data or instructions which may need to be accessed by, for example, the processor 112. The memory unit 120 may be any form of storage device capable of storing executable instructions, such as a non-transient computer readable medium, for example Random Access Memory (RAM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, or the like.

[0018] Referring to fig. 1 and 2, in one example, the memory unit 113 may include instructions to cause the processor 112 to carry out actions. The instructions can be: to receive 113a model data 120 relating to the 3D part to be printed by the additive manufacturing system; to generate 113b a representation of the 3D part to be printed based at least in part on the model data 120, wherein the generated representation comprises a plurality of voxels; to identify 113c voxels forming a surface of the representation of the 3D part to be printed; to determine 113d normal vector data of each voxel forming the surface of the representation; and to determine 113e print agent use based at least in part on the normal vector data.

[0019] Reference is now made to fig. 3 which shows an example method of determining print agent use according to the present disclosure and to fig. 2 which refers to the elements in an example controller 110. Method 200 starts with block 201 - receiving model data 120 relating to a 3D part to be printed. The model data 120 may be received by the controller 110, via the input/output interface unit 111 of the controller 110. The model data 120 is a first representation of the 3D part to be printed. In an example, the model data 120 may be provided as a 3MF - 3D manufacturing - format print file. A 3MF file may contain one or a plurality of geometry models, for example, triangular mesh models and/or sliced models. The model data 120 is not limited to a 3MF file format with triangular mesh models and/or sliced models as geometry models, and may be any file format compatible to represent a 3D model representation of a 3D part to be printed.

[0020] Block 202 of method 200 comprises generating a representation of the received model data 120, wherein the representation comprises a plurality of voxels (“voxelised” representation). The voxelised representation, is a second representation of the 3D part to be printed and may be generated by the controller 110, wherein the memory unit 113 may instruct the processor 112 of the controller 110 to generate the voxelised representation of the received model data 120. The voxelised representation may be a representation of the 3D part to be printed comprising a plurality of voxels representing the volume of the 3D part in 3D space. In an example, the model data 120 may be a 3MF file representing the 3D part to be printed using a triangular mesh model. Where the model data 120 uses a triangular mesh model, the voxelisation may comprise filling the shell formed by the triangular mesh with voxels without exceeding the boundaries created by the triangular mesh. In a further example, the model data 120 may be a 3MF file representing the 3D part to be printed using a sliced model. Where the model data 120 uses a sliced geometry model, the voxelisation may comprise substituting each slice of the model with voxels. In an example, the voxelised representation of the 3D part to be printed may be displayed in a display unit which can include a viewing application that has the capability of enabling reviewing, annotating and/ or modifying of the voxelised representation.

[0021] Once the voxelised representation of the received model data 120 has been generated, block 203 of the method 200 comprises identifying the voxels forming the surface of the representation from the plurality of voxels. The memory unit 113 of the controller 110 may instruct the processor 112 of the controller 110 to identify the voxels forming the surface of the voxelised representation. In an example, the model data 120 may be a 3MF file representing the 3D part to be printed using a triangular mesh model. Where the model data 120 uses a triangular mesh geometry model, identifying 203 the voxels forming the surface of the 3D representation may comprise identifying, via the processor 112, the voxels in the voxelised representation which are closest to the shell of the triangular mesh model. In a further example, the model data 120 may be a 3MF file representing the 3D part to be printed using a sliced geometry model. Where the model data 120 uses a sliced geometry model, identifying 203 the voxels forming the surface of the 3D representation may comprise grouping, via the processor 112, for each voxel in the voxelised representation, the neighbouring voxels within the current layer of each voxel and the immediate layer above and below the current layer such that each voxel is the central voxel of a block of 3x3x3 voxels (voxel blocks). The processor 112 may then identify voxel blocks comprising solid voxels and empty voxels. Solid voxels represent the voxels in the 3D space which form part of the 3D part to be printed, and empty voxels are the voxels in the 3D space which do not form part of the 3D part to be printed. Voxel blocks comprising at least one solid voxel and at least one empty voxel may be indicative of being a voxel block on the surface of the voxelised representation. In an example, the central voxel in a voxel block may be a voxel forming the surface of the voxelised representation. In this example, this central voxel would be a solid voxel with neighbouring empty voxels adjacent to a first face of the central voxel, and neighbouring solid voxels adjacent to a second face of the central voxel. In an example, the second face may be an opposite face on the voxel to the first face.

[0022] Identifying the surface of the voxelised representation allows for the determination of the orientation of the surface at any point of the surface of the representation. Once the surface of the voxelised representation has been identified, block 204 of method 200 comprises determining data relating to the normal vector of each of the voxels forming the surface of the representation. The memory unit 113 of controller 110 may instruct the processor 112 of the controller 110 to determine normal vector data of each voxel forming the surface of the 3D representation. In an example, the model data 120 may be a 3MF file representing the 3D part to be printed using a triangular mesh model. Where the model data 120 uses a triangular mesh geometry model, the processor 112 of controller 110 may determine 204 the normal vector data by identifying the normal vector of each triangle forming the triangular mesh. Once the normal vector of each triangle is identified, the processor 112 may assign the same normal vector to all the voxels forming the surface of the voxelised representation which are common to the same triangle. Where there are voxels which are common to more than one triangle, the processor 112 may assign an average of the normal vectors of those triangles to the voxels forming the surface of the representation containing the more than one triangle. In a further example, the model data 120 may be a 3MF file representing the 3D part to be printed using a sliced model. Where the model data 120 uses a sliced geometry model, the processor 112 may determine 204 the normal vector data by identifying, via the processor 112, the arrangement of voxels within each 3x3x3 voxel block. The processor 112 may identify voxels forming the surface of the representation as solid central voxels of the voxel block with neighbouring empty voxels adjacent to a first face of the central voxels, and neighbouring solid voxels adjacent to a second face of the central voxels. The processor may then match the identified arrangement of solid voxels and empty voxels in the voxel block with a corresponding arrangement in a normal vector database. In an example, the normal vector database may comprise every possible arrangement of solid voxels and empty voxels within a voxel block and the corresponding normal vector associated with that arrangement. Once the voxel arrangement of the voxel block has been matched with a corresponding arrangement in the normal vector database, the processor 112 may assign the voxel block with the normal vector associated with that voxel arrangement. In an example, the normal vector database may comprises a look-up table. The look-up table may comprise each arrangement of solid and empty voxels within a voxel block and the corresponding normal vector associated with each arrangement. In an example, the solid voxel may be represented by a 1 and the empty voxel may be represented by a 0 in the look-up table. Assigning the normal vector for each arrangement may comprise determining, via the processor 112, a vector of each of the solid voxels neighbouring the solid central voxel in the voxel block, wherein the vector of each of the neighbouring solid voxels are in a direction from the centre of the neighbouring solid voxel towards the centre of the central solid voxel. The processor 112 may then average the vectors of each neighbouring solid voxel to obtain the normal vector of the central solid voxel. In an example, the normal vector of the central solid voxel is assigned to the voxel block.

[0023] The normal vector data may be used to identify the orientation of the surface of the representation. In an example, a voxel with a normal vector that has a positive ‘z’ component and negligible ‘x’ and/or y component(s) may be indicative of a “flat surface voxel” which is a voxel on the surface of the representation where the surface is flat. The ‘x’ and ‘y’ components may be negligible if they are close to zero. In an example, the ‘x’ and y components of the normal vector may be considered to be close to zero and negligible with the tolerance depending on the build material and application. In an example, ‘x’ and y components may be negligible if they are within 5 sexagesimal degrees (~0.087 (sin(5 0 ))). In a further example, a voxel with a normal vector that has positive and/or negative ‘x’ and/or y component(s) and a negligible ‘z’ component may be indicative of a “vertical surface voxel” which is a voxel on the surface of the representation where the surface is vertical. The ‘z’ component may be negligible if it is close to zero. In an example, the ‘z’ component of the normal vector may be to be considered close to zero if it is within 5 sexagesimal degrees (~0.087 (sin(5 0 ))) but the tolerance may vary depending on the build material and application. In another example, a voxel with a normal vector that has a positive ‘z’ component and negligible ‘x’ and/or ‘y’ component(s), and adjacent voxels with a normal vector that has positive and/or negative ‘x’ and/or y component(s), may be indicative of a “flat surface edge voxel”. Flat surface edge voxels are flat surface voxels on the edge of the flat surface of the representation. [0024] Block 205 of method 200 comprises determining print agent use based at least in part on the determined normal vector data. The memory unit 113 of controller 110 may instruct the processor 112 of the controller 110 to determine print agent use. In an example, the processor 112 of the controller 110 may determine print agent use, wherein the amount of detailing agent and/or fusing agent applied is to be reduced/increased in regions of the surface of the 3D part to be printed comprising flat surface edge voxels. The processor 112 may also obtain data relating to the direction of movement in which the recoater is to spread the build material on the build platform. This may be done to eliminate or reduce abraded top edges in a 3D printed part caused by an excess of build material collected at the region of the surface comprising flat surface edge voxels which may exist towards the end of the direction of movement of re-coater. A reduction of detailing agent applied may promote greater absorption of thermal fusing energy by the fusing agent to allow for the fusing of build material particles. The processor 112 may identify flat surface edge voxels based on the normal vector data. If the processor 112 identifies flat surface edge voxels towards the end of the direction of movement of the re-coater, the processor 112 may determine that the amount of print agent that may be selectively applied in that region of the surface of the 3D part to be printed may need to be adjusted such as reduced/increased. In turn, the processor 112 may instruct the print carriage 140 to reduce/increase the amount of print agent that may selectively be applied.

[0025] In a further example, the processor 112 of the controller 110 may determine print agent use, wherein the amount of detailing agent and/or fusing agent applied is to be reduced/increased in regions of the surface of the 3D part to be printed comprising vertical surface voxels. The processor may also obtain data relating to the direction of movement in which the print carriage is to selectively apply the fusing agent/detailing agent on the layer of build material. This may be done to eliminate or reduce excess surface rugosity in a 3D printed part caused by a delay in the ceasing of the application of the detailing agent before the application of the fusing agent in the direction of the movement of the print carriage. Such a delay may result in a surplus of detailing agent being applied over the fusing agent in each layer during the physical printing process. The processor 112 may identify vertical surface voxels based on the normal vector data. If the processor 112 identifies vertical surface voxels at the beginning and/or towards the end of the direction of movement of the print carriage, the processor 112 may determine that the amount of print agent that may be selectively applied in the region of the surface of the 3D part to be printed may need to be withheld for example, for one in every two layers of build material. In turn, the processor 112 may instruct the print carriage 140 to withhold the amount of print agent that may selectively be applied for one in every two layers of build material.

[0026] In other examples, determining print agent use may include adjusting or modifying the way in which print agent is delivered or a pattern of print agent is applied in regions of the surface of the 3D part to be printed based at least in part on the determined surface normal data which is indicative of the orientation of the surface of the 3D part to be printed.

[0027] Figure 4 shows a memory 300, which is an example of a computer readable medium storing instructions 301 , 302, 303, 304 and 305 that, when executed by a processor 320 communicably coupled to a computing device, may cause the processor 320 to determine print agent use in accordance with any of the examples or the flow diagram described above. Instruction 301 is to obtain object model data defining a three-dimensional model of an object to be printed by an additive manufacturing system. Instruction 302 is to obtain a representation of the received model data, the representation comprising a plurality of voxels. Instruction 303 is to generate voxel data that identifies a surface of the representation from the plurality of voxels. Instruction 304 is to generate data relating to a geometrical normal of each of the voxels forming the surface of the representation. Instruction 305 is to generate print agent data relating to print agent use based at least in part on the generated geometrical normal data. The computer readable medium may be any form of storage device capable of storing executable instructions, such as a non-transient computer readable medium, for example Random Access Memory (RAM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, or the like.

[0028] In addition to the examples described in detail above, the skilled person will recognize that various features described herein can be modified and/or combined with additional features, and the resulting additional examples can be implemented without departing from the scope of the system of the present disclosure, as this specification merely sets forth some of the many possible example configurations and implementations for the claimed solution.