Patent Publication Number: US-10317882-B2

Title: Processing object data

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This is a continuation of U.S. patent application Ser. No. 14/888,061 filed Oct. 29, 2015 which is itself a Section 371 national stage of international application no. PCT/EP2014/058822 filed Apr. 30, 2014. 
    
    
     BACKGROUND 
     Additive manufacturing systems that generate three-dimensional objects on a layer-by-layer basis have been proposed as a convenient way to produce three-dimensional objects. 
     An object to be generated may be represented digitally, for example in a suitable computer-aided design (CAD) format. The digital representation of an object to be generated may be processed before being provided to an additive manufacturing system to generate the object. 
    
    
     
       DRAWINGS 
       Examples will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which: 
         FIG. 1  is block diagram of an object processor according to one example; 
         FIG. 2  is an illustration of a number of image slices according to one example; 
         FIG. 3  is block diagram of an additive manufacturing system according to one example; 
         FIG. 4  is a block diagram of an object processor according to one example; 
         FIG. 5  is a block diagram showing an implementation of an object processor according to one example; 
         FIG. 6  is a block diagram of a geometrical transformation module according to one example; 
         FIG. 7  is a block diagram of a sacrificial structure generation module according to one example; 
         FIG. 8  is a block diagram of a virtual object generation module according to one example; 
         FIG. 9  is an illustration of an object model according to one example; 
         FIG. 10  is an illustration of a virtual object according to one example; 
         FIG. 11  is an illustration of an object model and virtual object according to one example; 
         FIG. 12  is a block diagram of an intermediate slice generation module according to one example; 
         FIG. 13  is a block diagram of an intermediate slice modification module according to one example; 
         FIG. 14  is a block diagram of a slice data generator module according to one example; 
         FIG. 15  is a block diagram of a processing pipeline according to one example; 
         FIG. 16  is a block diagram of a portion of an additive manufacturing system according to one example; and 
         FIG. 17  is an illustration of an object model according to one example. 
     
    
    
     DESCRIPTION 
     Some additive manufacturing systems generate three-dimensional objects through the selective solidification of successive layers of a build material, such as a powdered build material. Some such systems may solidify portions of a build material by selectively delivering an agent to a layer of build material. Some systems, for example, may use a liquid binder agent to chemically solidify build material. Other systems, for example, may use liquid energy absorbing agents, or coalescing agents, that cause build material to solidify when suitable energy, such as infra-red energy, is applied. 
     Repetition of these processes enables a three-dimensional object to be generated layer-by-layer, through selective solidification of portions of successive layers of build material. 
     Other kinds of additive manufacturing systems also exist, including fused deposition model (FDM) systems, selective laser sintering (SLS) and light polymerization systems, among others. 
     According to one example, the digital representation, such as an object model, of an object to be generated may be processed before being provided to an additive manufacturing system to generate the object. The type of processing may depend, for example, on characteristics of the additive manufacturing system on which the object is to be generated. 
     For example, an additive manufacturing system may unintentionally introduce distortions into objects it generates. This may lead to a generated three-dimensional object not faithfully reproducing a three-dimensional object model used to generate the object. Such distortions may include, for example, geometrical distortions which may cause, for example, various object distortions, such as edge distortions, and surface distortions, to name but a few. 
     According to examples described herein, different kinds of transformations or processing may be performed on an object model to compensate for any such distortions. An additive manufacturing system may then generate an object based on the transformed object model and produce an object that accurately matches the object described in the original object model. 
     The processing may, for example, also comprises specific processing based on the type of solidification process used by an additive manufacturing system. For example, PCT Application PCT/EP2014/050841, filed by Hewlett-Packard Development Company on 16 Jan. 2014, the contents and teachings of which are hereby incorporated herein in their entirety, and for which priority is claimed, describes an additive manufacturing system to generate a three-dimensional object. The described system enables the generation of a three-dimensional object through the selective solidification of portions of successive layers of a build material through the selective delivery of multiple agents to layers of a build material. In one example a coalescing agent and a coalescence modifier agent may be selectively delivered to layers of build material. 
     The temporary application of energy may cause portions of the build material on which coalescing agent has been delivered or has penetrated to heat up above the melting point of the build material and to coalesce. Upon cooling, the portions which have coalesced become solid and form part of the three-dimensional object being generated. A coalescence modifier agent serves to modify the degree of coalescence of a portion of build material on which the coalescence modifier agent has been delivered or has penetrated. 
     In one example, the type of processing performed may be used to generate data to determine on which portions of a layer of build material each of the agents are to be deposited. 
     The examples described herein are described with specific reference to a multiple agent additive manufacturing system. It will be understood, however, the examples described herein are in no way limited to use with a multiple agent additive manufacturing system, and may be used, with suitable adaptations, with other suitable additive manufacturing systems. Such other systems may include, for example, selective laser sintering (SLS) systems, selective inhibition sintering (SIS) systems, and fused deposition model (FDM) systems. 
     System Overview 
       FIG. 1  illustrates a block diagram of an object processor  100  according to one example. The object processor  100  obtains object model data  102  representing a model  103  of a three-dimensional object to be generated by an additive manufacturing system. The object processor  100  additionally obtains data  106  representing characteristics of the additive manufacturing system on which the object is to be generated. 
     The object processor  100  is to perform a series of transformations on the obtained object model data  102 , taking into account the characteristic data  106  to generate a transformed object model, as will be described further below. Once the transformations have been performed the object processor  100  generates slice data  108 . 
     The generated slice data  108  represents multiple slices of the transformed object model, with each slice represented as an image, as illustrated in  FIG. 2 .  FIG. 2  shows a number of images  202   a  to  202   n,  each representing a slice of the transformed object model. It should be noted that the images shown in  FIG. 2  are purely illustrative. 
     Each image  202   a  to  202   n  defines a portion or portions of a layer of build material where an agent is to be delivered by an additive manufacturing system. For example, in an additive manufacturing system that uses two agents, such as a coalescing agent and a coalescing modifier agent, each image may define a portion, or portions, of a layer of build material on which a coalescing agent is to be delivered, and may define a portion, or portions, of a layer of build material on which a coalescence modifier agent is to be delivered. In an additive manufacturing system that uses more than two agents each image may define a portion, or portions, of a layer of build material on which each agent is to be delivered. 
     In one example, each slice may be represented by a single image. For example, each image may include multiple separations or channels, with each channel defining a portion, or portions, of a layer of build material on which a different agent is to be deposited by an additive manufacturing system. 
     In another example, each slice may be represented by multiple images, with each image of the slice defining a portion, or portions, of a build material on which a different agent is to be deposited by an additive manufacturing system. 
     An example additive manufacturing system  302  is illustrated in  FIG. 3 . The additive manufacturing system  302  obtains slice data  108  representing slices  202   a  to  202   n  and processes the slice data  108  to control the system  302  to generate a three-dimensional object  304 . In some examples the additive manufacturing system  302  may perform further processing on the slice data  108  to generate data to control the additive manufacturing system  302  to generate the three-dimensional object  304 . 
     Object Processing 
     Referring now to  FIG. 4 , there is illustrated an object processor  400  according to one example. 
     The object processor  400  comprises one or multiple transformation modules  402 , as will be described below in greater detail. 
     In one example, as illustrated in  FIG. 5 , the object processor  400  may comprise a controller  502 , such as microprocessor, coupled to a memory  504  through an appropriate communications bus (not shown). The memory  504  may store machine readable instructions  506 . The controller  502  may execute the instructions  506  to cause the controller  502  to process the object model data  102  to generate slice data  108 . The instructions  506  may define processing operations to be performed by the transformation modules described herein. 
     In another example each transformation module may be implemented using hardware, or a combination of software and hardware. 
     Geometric Transformations 
     In one example, the object processor  400  comprises a transformation module that is a geometrical transformation module  402   a,  as illustrated in  FIG. 6 . The geometrical transformation module  402   a  may perform one or multiple geometric transformations on the object model data  102  as described herein. The geometric transformations may be applied, for example, to compensate for differences between the object  103  defined in the object model data  102  and the object  304  generated by an additive manufacturing system from the object model. In one example, the geometrical transformation module  402   a  may be defined in addition to or in substitution of the other modules described further below. 
     For example, some additive manufacturing systems may unintentionally introduce geometric distortions, such as size distortions, edge distortions, surface distortions, and the like, during the generation of a three-dimensional object. This may lead to a generated three-dimensional object not faithfully reproducing a three-dimensional object model used to generate the object. 
     The details relating to any such distortions may be included in, or may be derivable from, the characteristic data  106 . In one example the characteristic data  106  is obtained from the additive manufacturing system  302 . In another example the characteristic data  106  may be obtained from a remote network location, such as a manufacturer&#39;s web site, or in any other suitable manner. 
     For example, through experimentation it may be determinable that the additive manufacturing system  302  unintentionally generates three-dimensional objects that are a smaller by a given percentage in a particular axis or axes. This could occur, for example due to build material contraction during the generation of three-dimensional objects. Such data may be reflected in the characteristic data  106 . Accordingly, when the object processor  400  is to process object model data  102  the transformation module may obtain the characteristic data  106  and may apply a suitable geometrical scaling factor to the object model data  102 . In this way an object  304  generated by the additive manufacturing system may better conform to the object model  103  defined in the object model data  102 . 
     In another example, distortions may be unintentionally introduced into three-dimensional objects generated by the additive manufacturing system  302  due to factors such as, for example, the heating of build material and the cooling of build material. If such distortions can be quantified they may be included in the characteristic data  106  and used by the transformation module to perform a suitable geometrical transformation module to compensate for any distortion. In one example the characteristic data may include a lookup table. 
     In one example, the characteristic data  106  may be linked to environmental or other conditions. For example, it may be determined that when the ambient temperature is 20 degrees Celsius a first scaling factor is to be applied in a given axis or axes, whereas when the ambient temperature is 30 degrees Celsius a second scaling factor is to be applied. 
     In one example, the characteristic data  106  may define characteristics of a build material to be used by an additive manufacturing system. For example, the characteristic data  106  may comprise data relating to physical characteristics of the build material, the age of the build material, the humidity level of the build material, the type of build material, the average particle size of the build material (for powdered build materials), the pureness of the build material, and so on. 
     In one example the characteristic data  106  may define characteristics of agents used in the additive manufacturing system, such as a coalescing agent and a coalescence modifier agent. 
     In other words, the characteristic data  106  may comprise any suitable data that may be related to causing, either directly or indirectly, an unintentional geometrical transformation in objects generated by an additive manufacturing system. 
     In one example a transformation may include applying a global scaling factor to the object model described in the object model data  102 . In other examples, a transformation may include complex transformations based on factors that may include: object model geometry; object model surface topology; object model structure; and proximity of structural features within an object model. 
     In one example the object model data  102  may be described in a suitable vector format that may use, for example, geometrical primitives such as points, lines, curves, polygons, etc. some or all of which may be based on mathematical expressions. Performing transformations on such vector data enables complex object transformations to be performed without degrading the quality of the original data. 
     Sacrificial Structures Generation 
     In one example, the object processor  400  comprises a transformation module that is a sacrificial structure generation (SSG) module  402   b,  as illustrated in  FIG. 7 . In one example, the SSG module  402   b  may be present in the object processor  400  in addition to or in substitution of the other transformation modules  402  described herein. 
     The SSG module  402   b  generates new features that are added to the object model  103 . The new features are features that were not included in the original object model  103 . The new features may be structural features that will be generated with the object  304  when the object is generated by the additive manufacturing system  302  but which may be removed prior to the generated object  304  being deemed a final object. For example, at least some of the sacrificial structures may be removed during a manual or automatic post-processing operation. 
     In one example the SSG module  402   b  processes original object model data  102 , for example when no geometrical transformations are performed on the object model data  102 . In another example the SSG module  402   b  processes object model data that has been modified as a result of geometrical transformations having been performed thereon by the geometrical transformation module  402   a.    
     The type of sacrificial structure to be added to the object model data  102  by the SSG module  402   b  may be dependent, at least in part, on the characteristic data  106 . The characteristic data  106  may, for example, define the conditions or circumstances in which a sacrificial structure may be added to the object model data  102 . 
     The SSG module  402   b  may then add suitable features to the object model data  102 . 
     For example, the characteristic data  106  may define the conditions under which it may be useful to add anchoring features to the object model data  102  to help ensure that during generation of the object the object is suitably supported or anchored on a build support member of an additive manufacturing system. 
     The SSG module  402   b  may then add suitable features to the object model data  102 . 
     For example, the characteristic data  106  may define the conditions under which it may be useful to add additional structural elements to the object model data  102  to help ensure structural integrity of certain features of the object model  103 . 
     The SSG module  402   b  may then add suitable features to the object model data  102 . 
     For example, the characteristic data  106  may define the conditions under which it may be useful to add a ‘heat reservoir’ in proximity to a portion of the object  103  to help control the accumulation of heat and hence to control the effect of thermally induced stresses on a generated object. A heat reservoir may comprise, for example, an additional object, such as solid or other non-solid object, that is proximate to the object model  103  and which serves to absorb or emit heat during the generation of a three-dimensional object. 
     For example, as shown in  FIG. 17 , when an object model  103  has an overhanging structure  104 , the SSG module  402   b  may add a sacrificial object  105  to the object model. The added sacrificial object  105  may, for example, have the same, or a similar, shape profile to the overhanging structure  104  and be positioned below the overhanging structure  104 , but not connected to structure  104  or any other part of the object. When the object is generated from the model  103  by an additive manufacturing system, the added sacrificial object  105  may act as heat source and may help decrease the thermal gradients experienced by the overhanging structure  104 . This may, for example, help reduce the distortion of the overhanging structure. The same technique may also be used for other structural features other than overhanging structures. 
     The SSG module  402   b  may then add suitable features to the object model data  102 . 
     Virtual Object Generation 
     The additive manufacturing system described in PCT Application PCT/EP2014/050841 mentioned above may allow three-dimensional objects to be created that may have controllably variable, or different, object properties within a single generated object. This may allow an object to have, for example, one or more variable properties, that may include: variable accuracy properties; variable surface roughness properties; variable strength properties; variable object porosity properties; variable inter-layer strength properties; variable object elasticity properties; variable density properties; and other variable mechanical or physical properties. For example, a created object may comprise one portion that has a first level of surface roughness, and a second portion that has a second level of surface roughness. Variable object properties may be generated within a generated object by depositing appropriate patterns of a coalescing agent and a coalescence modifier agent on a layer of build material. 
     An object property may be defined by object property data. The object property data may, for example, be defined within the object model data  102 , or may, for example, be defined using external object property data. The object model data may define, for example, that a portion, or the whole, of, an object is intended to have a certain object property, such as a certain surface smoothness. The object property data may also define multiple object properties for a portion or portions of an object. 
     The generation of a three-dimensional object with controllably variable properties may be possible, for example, by modulating the manner in which agents, such as a coalescing agent and a coalescence modifier agent, are delivered to the layers of build material by the additive manufacturing system used to generate the object. 
     To enable the generation of variable property objects the object processor  400  may comprise a transformation module that is a virtual object generation (VOG) module  402   c,  as illustrated in  FIG. 8 . The VOG module  402   c  may be present in the object processor  400  in addition to or in substitution of the other modules described herein. 
     The VOG module  402   c  generates new ‘virtual’ objects, defined in virtual object data  804  based on object property data  802 . In one example the virtual objects may be incorporated into the object model data  102  or into object model data that has been previously transformed as described above. Virtual objects are objects that are not physically generated by an additive manufacturing system but which may cause one or multiple portions of a generated object to have different object properties. In one example, the virtual objects may modify the way in which slice data  108  is generated. 
     In one example the VOG module  402   c  may process original object model data  102 . In another example the VOG module  402   c  may process object model data that has been previously processed by a transformation module. 
       FIG. 9  shows an object model  103  of object to be generated by an additive manufacturing system, such as the system  302 . 
     In response to object property data associated with the object model  103 , the VOG module  402   c  may generate a virtual object, such as virtual object  1002 , as illustrated in  FIG. 10 . 
     A portion or the whole of a generated virtual object may spatially coincide with a portion or the whole of an object model  103 . In some examples a virtual object may also not spatially coincide with a portion of an object model  103 , but may be proximate thereto. 
     As illustrated in  FIG. 11 , the generated virtual object spatially coincides with portions of the object model  103 . In the example shown it can be seen that the virtual object  1002  spatially coincides with a thin layer of the object  103  around the vertical external sides of the object  103 . This could, for example, be as a result of object property data defining that the vertical external sides of the object  103  are to have a different object property than the horizontal sides of the object  103 . For example, it may be intended for the object generated from the object model  103  is to have a first level of surface smoothness on its vertical sides, and is to have a second level of surface smoothness on its external horizontal sides. 
     Slice Generation 
     In one example, the object processor  400  comprises a transformation module that is an intermediate slice generation module  402   d,  as illustrated in  FIG. 12 . The intermediate slice transformation module  402   d  may transform the object model data  102  (or modified object model data if this has been modified by another transformation module) into intermediate slice data  1202 . In one example the slices are represented in a suitable vector graphics format, represented in only two-dimensions. Each intermediate slice may represent a slice of the modified object model as well as a corresponding slice of any coinciding virtual object generated. In one example, the slice generation module  402   d  may be present in the object processor  400  in addition to or in substitution of the other modules described herein. 
     It should be noted, however, that the intermediate slices generated by the slice generation module  402   d  are not the slice data  108  that is output by the object processor  400 . Each generated intermediate slice represents a slice of the modified object model data  102 , and each intermediate slice may represent a slice of the modified object model having a predetermined thickness. The thickness of each generated intermediate slice may, for example, be based on the characteristic data  106 . In one example, the characteristic data  106  defines the thickness of each layer of build material that is processed by the additive manufacturing system  302 . In one example, the thickness of each generated intermediate slice may represent a thickness in the range of about 50 to 200 microns, depending on the nature of the additive manufacturing system  302 . In some examples each generated intermediate slice may represent other thicknesses. 
     In another example the thickness of each generated intermediate slice may be less than the thickness of each layer processed by the additive manufacturing system  302 . In one example, the thickness of each generated slice may be in the range of about 10 to 50 microns. If generated intermediate slices are thinner than the thickness of each layer of build material processed by the additive manufacturing system  304  the additive manufacturing system  304  may combine multiple slices before processing a slice of build material. This ‘over-sampling’ of slices may enable the additive manufacturing system  304  to improve the quality of generated objects, for example, by enabling interpolation of data between adjacent slices. This may be beneficial, for example, if a feature of the object model  103  coincides with a boundary between two layers of build material. In this way, an additive manufacturing system may use multiple slice images to determine a pattern of which one or more agents may be delivered to a layer of build material. 
     The number of intermediate slices generated by the object processor  100  may be determined from the characteristic data  106 . 
     Slice Modification 
     In one example, the object processor  400  comprises a transformation module that is an intermediate slice modification (ISM) module  402   e,  as illustrated in  FIG. 13 . In one example, the ISM module  402   e  may be present in the object processor  400  in addition to or in substitution of the other modules described herein. 
     In examples where the ISM module  402   e  is present, the slice modification module  402   e  may perform geometrical transformations on intermediate slice data  1202  to generate modified intermediate slice data  1302 . The transformations performed by the ISM module  402   e  may be similar in nature, albeit in a two-dimensional slice, to the geometric transformations described above with reference to the geometrical transformation module  402   a.  Accordingly, when the object processor  400  is to process object model data  102  the slice modification module  402   e  may obtain the characteristic data  106  and apply a suitable geometrical transformation to the appropriate slice data. In this way an object  304  generated by the additive manufacturing system may better conform to the object model  103  defined in the object model data  102 . 
     For example, transformations to perform operations including geometric scaling and distortion compensation may be performed on generated slices. In one example the transformations applied to the generated slices may be made in addition to transformations performed on the object model data  102 . In other examples, at least some transformations performed on the generated slices may be omitted from being performed on the object model data  102 . 
     Final Slice Data Generation 
     In one example, the object processor  400  further comprises a transformation module that is a final slice data generation (FSDG) module  402   f,  as illustrated in  FIG. 14 . 
     In one example the FSDG module  402   f  processes the modified intermediate slice data  1302  to generate final slice data  108  taking into account the characteristic data  106 . In one example the FSDG module  402   f  processes the unmodified intermediate slice data  1202  to generate final slice data  108  taking into account the characteristic data  106 . 
     As previously mentioned, the final slice data  108  represents multiple slices of the transformed object model, with each slice represented as an image, as illustrated in  FIG. 2 . In one example, each slice image is generated to be a continuous tone or ‘contone’ image represented in a suitable bitmap or rasterized format representing multiple channels, or separations, each having an appropriate bit depth. In one example a suitable bit depth may be 8 bits, although in other examples other bit depths may be used. 
     The generation of contone images for each slice may involve, for example, converting vector data of each slice into solid and non-solid areas, based on the geometries defined for each slice. 
     In one example, each generated contone image may define, for each pixel of the contone image, a density or quantity of an agent that is to be deposited at a corresponding location on a layer of build material. For example, in a contone image having a bit depth of 8 bits, each pixel of the contone image may represent one of 256 (zero to 255) levels. The application of different quantities of agent at different locations on a layer of build material may enable an object to be generated having variable object properties, as described above. 
     The generated contone image for each slice defines, for each of the agents available in the additive manufacturing system  302 , the portions of a layer of build material on which each of the agents are to be delivered by the additive manufacturing system  302 . For example, if the additive manufacturing system  302  uses two agents, such as a coalescing agent and a coalescence modifier agent, one channel, or separation, of the image may be used to represent those portions of a layer of build material on which a first agent is to be deposited, and one channel, or separation, may be used to represent those portions of a layer of build material on which a second agent is to be deposited. 
     The generation of the different channels for each image slice may be based, for example, on the presence of a portion of the modified object model and a portion of a virtual object. 
     For example, if a modified intermediate image slice comprises only a portion of the modified object model, the FSDG module  402   f  may generate an image slice that comprises only a contone image corresponding to portions of a layer of build material where a coalescing agent is to be deposited. 
     If, however, a modified intermediate image slice comprises spatially overlapping portions of both the modified object model and a virtual object, the FSDG module  402   f  may generate an image slice that comprises a contone image corresponding to portions of a layer of build material where a coalescing agent is to be deposited, and a contone image corresponding to portions of a layer of build material where a coalescence modifier agent is to be deposited. 
     For example, if the spatially overlapping portion of the virtual object indicates that a specific object property is intended, the FSDG module  402   f  will determine the appropriate patterns in which coalescing agent and coalescing modifier agent are to be deposited on a layer of build material. In this way, when the object is generated by the additive manufacturing system  302  that portion of the generated object will have the intended object property. 
     The specific manner in which the patterns, ratios, densities, etc. of coalescing agent and coalescence modifier agent that, when deposited on a layer of build material, may be used to generate different object properties may be determinable, for example, from the characteristic data  106 , or from any suitable source. 
     Example Pipeline 
     As described above, the object processor  100  may comprise a number of different types of transformation modules  402 . The exact configuration of the object processor  100  may depend on numerous factors. The object processor  100  may thus act, in one example, as a processing pipeline in which different transformation modules may sequentially process object model data to generate slice data to drive an additive manufacturing system.  FIG. 15  shows a block diagram of a processing pipeline  1500  according to one example, 
     The example processing pipeline  1500  comprises a geometrical transformer  1502  that obtains object model data  102 . The geometrical transformer  1502  may perform geometrical transformations on the object data  102  as described above. 
     The output of the geometrical transformer  1502  may then be processed by a virtual object generator  1504 , as described above, and that may generate one or multiple virtual objects. 
     The output of the virtual object generator  1504  may then be processed by a slice generator  1508 , as described above, to generate output slide data  108 . 
     One of more of the modules  1502 ,  1504 , and  1506  may make use of characteristic data  106 , as described above. 
     In other examples other architectures of processing pipelines may be used, for example comprising more or less transformation modules than the processing pipeline  1500 . 
     Final Step 
     The generated slice data  108  may then be supplied to an additive manufacturing system to generate the three-dimensional object represented thereby. An additive manufacturing system may, for example, perform additional processing on the slice data, for example as part of the data processing pipeline of the additive manufacturing system. The data processing pipeline, which may in some examples be similar in nature to a data processing pipeline in an inkjet printing system, may perform additional processing which may include halftoning operations, print masking operations, swath cutting operations, and the like. 
       FIG. 16  illustrates a portion of an additive manufacturing system  302  that comprises a data processing pipeline  1602 . The additive manufacturing system data processing pipeline  1602  obtains the slice data  108  and transforms the slice data  108  into data suitable to control the additive manufacturing system to generate a three-dimensional object according to the slice data. 
     In one example the data processing pipeline  1502  may comprise a halftoning module  1604  and a print masking module  1606 . In other examples the data processing pipeline  1602  may comprise additional or alternative processing modules. 
     The halftoning module  1604  may, for example, transform the contone image of each slice into halftone data that defines the locations or patterns in which drops of agent are to be deposited on a layer of build material. 
     The print masking module  1606  may, for example, transform the halftone data into data that defines the timing of when the additive manufacturing system  302  deposits those drops of agent. This may depend, for example, on whether mechanism used to deposit the drops of agent uses, for example, a page wide array of printhead nozzles, or a scanning printhead. 
     In one example the object processor  400  may be integrated into an additive manufacturing system such as the additive manufacturing system  302 . 
     It will be appreciated that embodiments of the present invention can be realized in the form of hardware, software or a combination of hardware and software. Any such software may be stored in the form of volatile or non-volatile storage such as, for example, a storage device like a ROM, whether erasable or rewritable or not, or in the form of memory such as, for example, RAM, memory chips, device or integrated circuits or on an optically or magnetically readable medium such as, for example, a CD, DVD, magnetic disk or magnetic tape. It will be appreciated that the storage devices and storage media are embodiments of machine-readable storage that are suitable for storing a program or programs that, when executed, implement examples described herein. Accordingly, embodiments provide a program comprising code for implementing a system or method as claimed in any preceding claim and a machine readable storage storing such a program. Still further, embodiments of the present invention may be conveyed electronically via any medium such as a communication signal carried over a wired or wireless connection and embodiments suitably encompass the same. 
     All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive. 
     Each feature disclosed in this specification (including any accompanying claims, abstract and drawings), may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.