WO2020068059A1 - Evaluating candidate virtual build volumes - Google Patents

Evaluating candidate virtual build volumes Download PDF

Info

Publication number
WO2020068059A1
WO2020068059A1 PCT/US2018/052790 US2018052790W WO2020068059A1 WO 2020068059 A1 WO2020068059 A1 WO 2020068059A1 US 2018052790 W US2018052790 W US 2018052790W WO 2020068059 A1 WO2020068059 A1 WO 2020068059A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual build
candidate virtual
processor
axis
volumes
Prior art date
Application number
PCT/US2018/052790
Other languages
French (fr)
Inventor
Quim MUNTAL DIAZ
Manuel Freire Garcia
Jordi SANROMA GARRIT
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2018/052790 priority Critical patent/WO2020068059A1/en
Publication of WO2020068059A1 publication Critical patent/WO2020068059A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B22CASTING; POWDER METALLURGY
    • B22FWORKING METALLIC POWDER; MANUFACTURE OF ARTICLES FROM METALLIC POWDER; MAKING METALLIC POWDER; APPARATUS OR DEVICES SPECIALLY ADAPTED FOR METALLIC POWDER
    • B22F10/00Additive manufacturing of workpieces or articles from metallic powder
    • B22F10/80Data acquisition or data processing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/30Auxiliary operations or equipment
    • B29C64/386Data acquisition or data processing for additive manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B22CASTING; POWDER METALLURGY
    • B22FWORKING METALLIC POWDER; MANUFACTURE OF ARTICLES FROM METALLIC POWDER; MAKING METALLIC POWDER; APPARATUS OR DEVICES SPECIALLY ADAPTED FOR METALLIC POWDER
    • B22F12/00Apparatus or devices specially adapted for additive manufacturing; Auxiliary means for additive manufacturing; Combinations of additive manufacturing apparatus or devices with other processing apparatus or devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P10/00Technologies related to metal processing
    • Y02P10/25Process efficiency

Definitions

  • Additive manufacturing techniques may generate a three- dimensional object through the solidification of a build material, for example on a layer-by-layer basis.
  • 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.
  • chemical solidification methods may be used.
  • Figure 1 is an example of a method of evaluating candidate virtual build volumes for additive manufacturing
  • Figure 2 is a schematic diagram of an example print bed indicating different object placements
  • Figure 3 shows comparative examples of dimensional accuracy when a boundary between printhead paths is crossed, and when the boundary is avoided;
  • Figure 4 is an example method of generating an object in additive manufacturing
  • Figures 5 and 6 are examples of apparatus for use in additive manufacturing; and [0008] Figure 7 is a simplified schematic diagram of a machine readable medium in association with a processor, according to one example.
  • Additive manufacturing techniques may generate a three- dimensional object through the solidification of a build material.
  • 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.
  • a suitable build material may be PA12 build material commercially known as V1 R10A“HP PA12” available from HP Inc.
  • 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.
  • at least one print agent may be selectively applied to the build material, and may be liquid when applied.
  • a fusing agent also termed a‘coalescence agent’ or‘coalescing agent’
  • a fusing agent may be selectively distributed onto portions of a layer of build material in a pattern derived from data representing a slice of a three-dimensional object to be generated (which may for example be generated from structural design data).
  • the fusing agent may have a composition which absorbs energy such that, when energy (for example, heat) is applied to the layer, the build material 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.
  • a suitable fusing agent may be an ink-type formulation comprising carbon black, such as, for example, the fusing agent formulation commercially known as V1 Q60A“HP fusing agent” available from HP Inc.
  • 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.
  • print agents comprising visible light enhancers are dye based colored ink and pigment based colored ink, such as inks commercially known as CE039A and CE042A available from HP Inc.
  • a print agent may comprise a detailing agent, or coalescence modifier agent, which acts to modify the effects of a fusing agent for example by reducing (e.g. by cooling) or increasing coalescence or to 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.
  • detailing agent may be used near edge surfaces of an object being printed.
  • a suitable detailing agent may be a formulation commercially known as V1 Q61A“HP detailing agent” available from HP Inc.
  • a coloring agent for example comprising a dye or colorant, may in some examples be used as a fusing agent or a coalescence modifier agent, and/or as a print agent to provide a particular color for the object.
  • Print agents may control or influence other physical or appearance properties, such as strength, resilience, conductivity, transparency, surface texture or the like.
  • 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.
  • 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.
  • it may be intended to manufacture objects to a high dimensional accuracy.
  • Figure 1 is an example of a method, which may comprise a computer implemented method and/or a method of evaluating a candidate arrangement of object(s) to be generated within a build volume of an additive manufacturing apparatus.
  • the candidate arrangement may be referred to as a ‘candidate virtual build volume’ as it models, or virtually represents, a possible placement of object(s) which may be generated in a build volume (or fabrication chamber) of an additive manufacturing apparatus.
  • Block 102 comprises receiving, by at least one processor, object model data.
  • the object model data describes at least a first object to be generated in additive manufacturing, and may in some examples describe a plurality of objects.
  • the object model data may be received from a memory, over a network or the like.
  • the object model data may describe at least the geometry of object(s) to be generated, for example in the form of a vector model, a mesh model or a voxel model of the object(s).
  • the object model data may describe intended object properties, such as colour, strength, density and the like.
  • Block 104 comprises determining, by at least one processor (which may comprise the same processor(s) as performs block 102), a candidate virtual build volume indicating a possible placement and orientation of the first object in object generation.
  • the candidate virtual build volume models an actual build volume (or fabrication chamber) which could result after carrying out an additive manufacturing operation.
  • this may specify the placement of the first object within the build volume (for example, its 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), and in some examples, its placement relative to other objects to be generated within the build volume in the same possible object generation operation.
  • the orientation of the first object may also be specified.
  • the orientation of the object during generation may not be constrained to the intended orientation in use - objects may be generated‘upside down’, or on their sides or in some other way.
  • Block 106 comprises evaluating, by at least one processor (which may comprise the same processor(s) as that which performs block 102 and/or block 104), the candidate virtual build volume, wherein the evaluation comprises determining if at least part of the object is to span a boundary between a first print agent applicator path and a second print agent applicator path during object generation.
  • a print agent applicator path describes the path a print agent applicator takes relative to a layer of build material when applying print agent.
  • the print agent applicator(s) may be mounted on or in a moveable carriage, which scans the applicators over a print bed on which the build material layer is formed.
  • a print agent applicator moves it may be selectively controlled to dispense print agent, for example from each of a plurality of nozzles, which may therefore fall on a region of the build material layer which is (at least substantially) directly below the print agent applicator nozzle at that point in its pass.
  • This allows a print agent applicator which is smaller than the print bed to apply print agent to (to‘address’) different areas of the build material layer.
  • the extent of the region of the build material layer to which print agent may be applied by a particular print agent applicator is referred to herein as a print agent applicator path.
  • the first and second print agent applicator paths may be made by the same print agent applicator, passing over a build volume in multiple passes, or by different print agent applicators which may pass over a build volume, for example in a coordinated manner and/or for example each making a single pass.
  • the part of the object which is considered in block 106 may be a particular dimension, or an‘axis’ of the object, as is further detailed below.
  • blocks 104 and 106 may be carried out iteratively, with different candidate build volumes. This may allow suitable candidate build volume(s) to be identified and utilised in additive manufacturing.
  • candidate virtual build volumes which may be described as a nesting or object batching process, have been proposed, which may seek to optimise (in some examples, within constraints) certain criteria. For example, such candidate build volumes may be evaluated to determine how efficiently they use the space available in a build volume.
  • candidate virtual build volumes may be compared such that the build volume in which a certain number of objects can be generated in a minimum height is identified, as the lower the height of the build volume, the faster the build volume may be generated.
  • ‘nesting’ analysis has, for example, been carried out to converge on a selected candidate virtual build volume which seeks to minimise a target function which depends on parameters such as the height of the virtual build volume, the number of objects contained within the build volume and/or the density. In some examples, this is carried out by determining a random initial solution, and generating a score for the candidate virtual build volume based on a predetermined target function.
  • the candidate virtual build volume may then be ‘shuffled’, for example by applying a random rotation to object(s) (and in some examples, validating that the new object placement remains inside the printable volume and does not result in an intersection between objects), and the shuffled candidate virtual build volume is then scored again. This process may continue until, for example, a threshold parameter is achieved, or the best score (for example the minimum or maximum score) after a predetermined number of iterations may be selected.
  • nesting analysis as described above may be replaced by, or additionally incorporate, a consideration of whether at least part of the object spans a boundary.
  • This may for example introduce an additional optimisation criteria to a nesting analysis or batching process (i.e. grouping objects for generation in one ‘batch’ in a single build volume). For example, this may comprise determining the number of intersections between object(s) (or axes of object(s)) and boundaries, such that a greater number of intersections may result in a negative impact on a score of a candidate virtual build volume.
  • this may allow a set of candidate virtual build volumes to be evaluated so as to select a particular virtual build volume on which to base an additive manufacturing operation based on how many parts which have been identified as being associated with a high intended accuracy extend over a boundary between print agent applicator paths.
  • this may allow a build volume to be identified in which objects are generated by individual print agent applicators.
  • the number of intersections between object parts (which may be identified object parts such as the axes discussed below) may be considered (in some examples along with other criteria) in assessing candidate build volumes, such that a lower number of intersections tends to increase a favourability (or ‘score’) of the candidate virtual build volume.
  • the dimensions of the object may be associated with a hierarchical priority level. For example, it may be that there is a first dimension of an object which is to be generated with a high dimensional accuracy whereas the dimensional accuracy of a second dimension may be associated with a higher degree of tolerance. Therefore, the evaluation carried out in block 106 may score a candidate virtual build volume higher (or more favourably) if the second dimension spans the boundary but the first dimension does not than if the reverse was true.
  • Figure 2 shows a schematic representation of a print bed 200.
  • Print agent is to be applied, in this example, by three print agent applicators, in this example printheads 202a-c, each of which sweep over a different part of the print bed 200, and therefore provide three print agent applicator paths 204a-c. While care may be taken to align the printheads 202, there may be minor misalignments and/or the printheads may become mis-aligned over time.
  • Four instances of an object 206a-d are shown in two dimensions, indicating possible placements in the print bed.
  • the object 206 has two defined dimensions, also referred to as axes herein.
  • the first axis 208a runs the length of the arrow-shaped object 206 whereas a second axis 208b runs across the width of the object 206 as shown.
  • the dimension of the first axis 208a and the dimension of the second axis 208b may be associated with different priority levels. In this example, it is assumed that accuracy of the object length (axis 208a) is more of a priority for the object’s intended purpose than the width (axis 208b).
  • the axes may be defined as vectors. While the axes shown here are perpendicular, this need not be the case.
  • Axes may be defined at any angle to an object and/or each other, and there may be parallel axes defined (for example, another axis could be associated with width of the shaft of the arrow as well as axis 208b relating to the width of the arrow head)
  • each of the objects 206 are now considered in turn, working left to right.
  • the leftmost object 206a does not cross any boundaries between print agent applicator paths 204. Therefore, this object 206a may be printed with a high accuracy in both its length and its width dimensions.
  • the second object 206b is placed such that a boundary intercepts its width. This may introduce dimensional inaccuracies, in particular in the second axis 208b.
  • the third object 206c is placed such that a boundary intercepts its length, and may therefore introduce dimensional accuracies in particular in the first axis 208a.
  • the placement of the second object 206b may be preferred to the placement of the third object 206c.
  • the first axis 208a of the fourth object 206d intercepts with two print agent applicator path boundaries. Therefore, this may introduce additional dimensional inaccuracy along the length when compared to the placement of the third object 206c therefore, the placement of the third object 206c may be favoured over the placement of the fourth object 206d.
  • a function which seeks to evaluate a candidate virtual build volume may be applied to four different candidate virtual build volumes, each containing a single instance of the object 206, and placing the object 206 in a different one of the positions shown in Figure 2.
  • the function may evaluate the candidate virtual built volumes based on intersections between the object axes and a boundary.
  • the candidate virtual build volumes may be ranked in order, with the candidate virtual build volume in which the object 206 is shown in the leftmost position being the most favourable, the candidate virtual build volume with the object 206 shown in the second position along being the second ranked, the object 206 shown in the third position along being the third ranked and the object shown in the fourth position along being the least favoured candidate virtual build volume.
  • Figure 2 is used to demonstrate the principle for a single object 206.
  • the function may evaluate different arrangements of a plurality of objects, for example to identify a favoured‘overall’ arrangement, which in some cases may mean sacrificing accuracy in some of the objects.
  • the build volume is to contain multiple objects.
  • the evaluation process may seek to optimise (at least within constraints) over the full set of objects, for example by determining the number of (e.g. counting) the number of axes which cross boundaries.
  • the evaluation process may consider other factors, such as any or any combination of the relative importance of axes crossing a boundary, the height of the virtual build volume, the density of object placement, the overall number of objects, and the like.
  • Figure 3 shows an example of dimensional accuracy of an object printed in two different positions.
  • a first position associated with line 302
  • the object spans a boundary between print agent paths.
  • the measurements along its length show a deviation from an intended dimension of up to 0.1 mm.
  • the maximum deviation is around 0.06mm, and the average magnitude deviation is lower.
  • the process of Figure 1 may be carried out iteratively, with new candidate virtual build volumes being determined and evaluated recursively for example until, for example, a predetermined criteria is reached and/or until a certain number of evaluations has been carried out, at which point the best scoring candidate virtual build volume may be adopted as a selected build volume.
  • the predetermined criteria relates to a rate of change of the result of the evaluation.
  • 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).
  • Figure 4 shows an example of a process which may be carried out to identify a virtual build volume from which to generate object generation instructions, and to generate such instructions (which portions of the method may be computer implemented), and then to generate an object.
  • Block 402 comprises receiving object model data describing a plurality of objects to be generated in additive manufacturing. This may for example comprise receiving object model data as described in relation to block 102 above.
  • the axes may be defined as vectors, and may have a directionality.
  • Block 404 comprises identifying, for each of the plurality of objects, at least one axis of that object which is associated with a high intended manufacturing accuracy.
  • this information may be provided with the object model data.
  • the information may be indicated by a user input or the like, and identified by a processing apparatus accordingly.
  • Block 406 comprises associating an importance level with each identified axis.
  • the different axes may be ranked, for example having one of a predetermined set of ranks or in order, or in some other way.
  • each axis may be associated with a high, medium or low importance level. It may also be noted that some dimensions of the object(s) may not be associated with an axis at all, and that such dimensions will not therefore be considered in evaluating candidate virtual build volumes.
  • Block 408 comprises determining, for each object, a plurality of object orientations in which an identified axis is parallel to a boundary between print agent applicator paths.
  • a number n of orientations may be identified.
  • the object 206 may be rotated about these axes (i.e.,‘rolled’ in the plane of the page, such that for the left and right pointing arrows, in which the first axis 208a is parallel to the boundaries, the arrow may be rolled onto its side with the direction of the arrow point remaining unchanged, and for the up and down pointing arrows, in which the second axis 208b is parallel to the boundaries, the arrow may be rolled to point out of or into the plane of the page).
  • a right pointing arrow object 206 while maintaining the long axis 208a parallel with the boundaries, this may be rotated about the central long axis 208a.
  • a predetermined number of object orientations may be determined. For example four object orientations may be determined for each identified axis.
  • a first constraint is added to the number of possible candidate virtual build volumes that may be generated.
  • a second constraint is also added in that the number of rotations, n, for each axis (in some examples, in each direction of an axis vector) is a predetermined number of rotations.
  • the number n may be selected according to an intended size of the set of candidate virtual build volumes.
  • the number of rotations for each axis may be, for example, in the order of 1-10, in some examples being around four (meaning 90° rotations may be applied).
  • the number n may in some examples be associated with a determined importance level. For example, more rotations may be associated with an axis with a high importance than for an axis with a relatively lower importance.
  • the number n may also be selected given available processing resources, with lower values of n being associated with less processing resource.
  • Block 410 comprises determining a plurality of candidate virtual build volumes in which the objects have the orientations determined in block 408 and/or different relative placements in different candidate virtual build volumes. In other words, the combinations of object orientations and/or the placement of objects may differ between candidate virtual build volumes.
  • a first plurality of candidate virtual build volumes may be determined in which, for a given object, a given axis is parallel to the boundary, and the object is rotated about the axis.
  • a second plurality of candidate virtual build volumes may be determined in which, for the object, the axis is parallel to the boundary but is oriented in an opposed direction (for example, referring to Figure 2, the arrow object 206 pointing right instead of left, or vice versa), and again, the object is rotated about the axis.
  • Block 412 comprises evaluating each of the plurality of candidate virtual build volumes, wherein the evaluation comprises determining a number of identified axes which cross a boundary. In some examples, the relative importance of the axes is taken into account. In addition, in some examples, other criteria such as the height of the virtual build volume, the number of objects, the density with which the objects are packed and/or the like, may be considered.
  • a candidate virtual build volume may be assessed using an equation as set out below:
  • the first term of the equation (e p ) 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, the total height as a proportion of the usable height, and the number of axes which cross a boundary.
  • a score of 0 indicates a‘perfect’ packing.
  • the number of identified axes in each importance level which cross a boundary may be associated with an assigned importance for that importance level (i.e. there may be multiple terms of
  • candidate_virtual_build_volume_score as set out above may be evaluated, with a, b and g being selected, for example according to user priorities or default parameters.
  • a target function may be intended to produce a value between 1 and 0, where 1 or 0 represents a perfect score in which all objects are arranged such that no boundaries are crossed, a height is minimised and a packing density is maximised.
  • These different criteria may take different weights within the function depending on the priorities of a user, default parameters or the like. For the sake of a simple example, 20% of the value may represent the contribution from the evaluation of how many axes cross a boundary, 40% may be provided as an indication of how closely height is to the minimum height and 40% may relate to the packing density. Other proportions may be selected in other examples. For example, where high-speed is the priority, more weight may be given to the height of the virtual build volume whereas where high precision is a priority more weight may be given to how many axes (or other object parts or features) cross a boundary.
  • the object placement is constrained by the criteria that at least one of the axes is to be parallel to a boundary, and by the predetermined number of rotations about that axis, and different possible candidate virtual build volumes fulfilling this criteria may be assessed and selected between.
  • the number of candidate virtual build volumes may be predetermined and/or evaluation may continue until a predetermined outcome (such as a rate of change of the scores output falling below a threshold) is seen.
  • Block 414 comprises selecting between the pluralities of candidate virtual build volumes based on the evaluation. For example, this may comprise selecting, in some examples automatically, the candidate virtual build volume based on a lowest or highest score (whether a high or a low score is selected may be predetermined, for example depending on the evaluation scheme used) or in some other way.
  • Block 416 comprises generating object generation instructions based on the selected virtual build volume.
  • generating object generation instructions may comprise determining‘slices’ of the selected virtual build volume, and rasterising these slices into pixels (or voxels, i.e. three- dimensional pixels).
  • An amount of print agent (or no print agent) may be associated with each of the pixels/voxels. For example, if a pixel relates to a region of a build volume which is intended to solidify, the print instructions may be generated to specify that fusing agent should be applied to a corresponding region of build material in object generation.
  • object generation instructions may be generated to specify that no agent, or a coalescence modifying agent such as a detailing agent, may be applied thereto.
  • a coalescence modifying agent such as a detailing agent
  • the amounts of such agents may be specified in the generated instructions and these amounts may be determined based on, for example, thermal considerations and the like.
  • Block 418 comprises generating (or printing) the object according to the generated object generation instructions.
  • the object may be generated in a layer-wise manner.
  • this may comprise forming a layer of build material, applying print agents, for example through use of‘inkjet’ liquid distribution technologies in locations specified in the object generation instructions for an object model slice corresponding to that layer, and using at least one print agent applicator, and applying energy, for example heat, to the layer.
  • Some techniques allow for accurate placement of print agent on a build material, for example by using printheads operated according to inkjet principles of two dimensional printing to apply print agents, which in some examples may be controlled to apply print agents with a resolution of around 600dpi, or 1200dpi.
  • a further layer of build material may then be formed and the process repeated, for example with the object generation instructions for the next slice.
  • FIG. 5 shows an example of apparatus 500 comprising processing circuitry 502.
  • the processing circuitry 502 comprises a virtual build volume assessment module 504 and a print instructions module 506.
  • the virtual build volume assessment module 504 is to assess a set of candidate virtual build volumes modelling possible fabrication chamber content for object generation based on an analysis of whether at least a feature of the object spans two print agent applicator paths. For example, this assessment may be carried out as described for the evaluation in block 106 or in relation to the method of Figure 4.
  • the print instructions module 506, in use of the apparatus 500 determines print instructions (or object generation 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 504. For example, the virtual build volume assessment module 504 may score the candidate virtual build volumes and the best scoring candidate virtual build volume may be selected.
  • the feature of the object which is considered by the virtual build volume assessment module 504 may be an axis of the object.
  • the virtual build volume assessment module 504 assesses the set of candidate virtual build volumes based on whether an identified axis of the object is to span a region of a fabrication chamber which is to be addressed in more than one print agent applicator pass in an object generation process. The passes may be repeated passes by one print agent applicator or may be passes by different print agent applicators.
  • the virtual build volume assessment module 504 assesses the set of candidate virtual build volumes based on at least one of a height of each candidate virtual build volume and the number of objects in each candidate virtual build volume. In other words, in addition to taking into account whether a feature of the object spans two print agent applicator paths, other criteria may be assessed, for example as part of an optimisation problem (or partial optimisation problem) in evaluating a virtual build volume. In some examples, these may have associated relative influences on a function such that each can be given a relative importance.
  • Figure 6 shows an example of an additive manufacturing apparatus 600, which comprises the apparatus 500 of Figure 5.
  • the additive manufacturing apparatus 600 comprises a fabrication chamber 602 in which at least one object may be generated.
  • the additive manufacturing apparatus 600 may comprise additional apparatus for generating objects in additive manufacturing, for example, any or any combination of 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.
  • Figure 7 shows an example of a tangible machine readable medium 700 in association with a processor 702.
  • the machine readable medium 700 stores instructions 704 which, when executed, cause the processor 702 to carry out certain operations.
  • the instructions 704 comprise instructions to cause the processor 702 to score a plurality of possible object generation arrangements for additive manufacturing based on a number of intersections between predetermined object axes and boundaries between print agent applicator paths.
  • the instructions 704 may cause the processor 702 to carry out block 106 or block 412 described above.
  • the possible object generation arrangements may be characterised as candidate virtual build volumes as described above.
  • the instructions 704 may further comprise instructions to cause the processor 702 to generate possible object generation arrangements (e.g. candidate virtual build volumes), wherein the objects are arranged such that at least one predetermined axis of each object is parallel to a boundary.
  • the instructions may apply rotation(s) (e.g. a predetermined number of rotations) to the aligned objects to generate different object orientations.
  • the instructions 704 may comprise instructions to carry out any of the blocks of the method of Figure 1 and/or of the method blocks 402-416 of Figure 4. In some examples, the instructions 704 may comprise instructions to cause the processor 702 to act as the virtual build volume assessment module 504 and/or the print instructions module 506.
  • 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.
  • 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.
  • a processor or processing apparatus may execute the machine-readable instructions.
  • functional modules of the apparatus and devices 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.
  • 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.
  • 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.
  • 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.

Abstract

In an example, a method comprises receiving, by a processor, object model data, the object model data describing a first object to be generated in additive manufacturing. A candidate virtual build volume indicating a possible placement and orientation of the first object in object generation may be determined and the candidate virtual build volume may be evaluated. The evaluation may comprise determining if at least part of the first object is to span a boundary between a first print agent applicator path and a second print agent applicator path during object generation.

Description

EVALUATING CANDIDATE VIRTUAL BUILD VOLUMES
BACKGROUND
[0001] Additive manufacturing techniques may generate a three- dimensional object through the solidification of a build material, for example on a layer-by-layer basis. In examples of such techniques, build material may be supplied in a layer-wise manner and the solidification method may include heating the layers of build material to cause melting in selected regions. In other techniques, chemical solidification methods may be used.
BRIEF DESCRIPTION OF DRAWINGS
[0002] Non-limiting examples will now be described with reference to the accompanying drawings, in which:
[0003] Figure 1 is an example of a method of evaluating candidate virtual build volumes for additive manufacturing;
[0004] Figure 2 is a schematic diagram of an example print bed indicating different object placements;
[0005] Figure 3 shows comparative examples of dimensional accuracy when a boundary between printhead paths is crossed, and when the boundary is avoided;
[0006] Figure 4 is an example method of generating an object in additive manufacturing,
[0007] Figures 5 and 6 are examples of apparatus for use in additive manufacturing; and [0008] Figure 7 is a simplified schematic diagram of a machine readable medium in association with a processor, according to one example.
DETAILED DESCRIPTION
[0009] 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.
[0010] 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 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 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.
[0011] 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 V1 Q60A“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 enhancers are dye based colored ink and pigment based colored ink, such as inks commercially known as CE039A and CE042A available from HP Inc.
[0012] In addition to a fusing agent, in some examples, a print agent may comprise a detailing agent, or coalescence modifier agent, which acts to modify the effects of a fusing agent for example by reducing (e.g. by cooling) or increasing coalescence or to 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. According to one example, a suitable detailing agent may be a formulation commercially known as V1 Q61A“HP detailing agent” available from HP Inc. A coloring agent, for example comprising a dye or colorant, may in some examples be used as a fusing agent or a coalescence modifier agent, and/or as a print agent to provide a particular color for the object. Print agents may control or influence other physical or appearance properties, such as strength, resilience, conductivity, transparency, surface texture or the like.
[0013] 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.
[0014] In some examples, it may be intended to manufacture objects to a high dimensional accuracy.
[0015] Figure 1 is an example of a method, which may comprise a computer implemented method and/or a method of evaluating a candidate arrangement of object(s) to be generated within a build volume of an additive manufacturing apparatus. The candidate arrangement may be referred to as a ‘candidate virtual build volume’ as it models, or virtually represents, a possible placement of object(s) which may be generated in a build volume (or fabrication chamber) of an additive manufacturing apparatus.
[0016] Block 102 comprises receiving, by at least one processor, object model data. The object model data describes at least a first object to be generated in additive manufacturing, and may in some examples describe a plurality of objects. 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 data may describe at least the geometry of object(s) to be generated, for example in the form of a vector model, a mesh model or a voxel model of the object(s). In some examples, the object model data may describe intended object properties, such as colour, strength, density and the like.
[0017] Block 104 comprises determining, by at least one processor (which may comprise the same processor(s) as performs block 102), a candidate virtual build volume indicating a possible placement and orientation of the first object in object generation. In other words, the candidate virtual build volume models 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 first object within the build volume (for example, its 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), and in some examples, its placement relative to other objects to be generated within the build volume in the same possible object generation operation. The orientation of the first object may also be specified. Thus, the orientation of the object during generation may not be constrained to the intended orientation in use - objects may be generated‘upside down’, or on their sides or in some other way.
[0018] Block 106 comprises evaluating, by at least one processor (which may comprise the same processor(s) as that which performs block 102 and/or block 104), the candidate virtual build volume, wherein the evaluation comprises determining if at least part of the object is to span a boundary between a first print agent applicator path and a second print agent applicator path during object generation. A print agent applicator path describes the path a print agent applicator takes relative to a layer of build material when applying print agent. For example, the print agent applicator(s) may be mounted on or in a moveable carriage, which scans the applicators over a print bed on which the build material layer is formed. As a print agent applicator moves it may be selectively controlled to dispense print agent, for example from each of a plurality of nozzles, which may therefore fall on a region of the build material layer which is (at least substantially) directly below the print agent applicator nozzle at that point in its pass. This allows a print agent applicator which is smaller than the print bed to apply print agent to (to‘address’) different areas of the build material layer. The extent of the region of the build material layer to which print agent may be applied by a particular print agent applicator is referred to herein as a print agent applicator path. [0019] The first and second print agent applicator paths may be made by the same print agent applicator, passing over a build volume in multiple passes, or by different print agent applicators which may pass over a build volume, for example in a coordinated manner and/or for example each making a single pass.
[0020] In some examples, the part of the object which is considered in block 106 may be a particular dimension, or an‘axis’ of the object, as is further detailed below.
[0021] In some examples, blocks 104 and 106 may be carried out iteratively, with different candidate build volumes. This may allow suitable candidate build volume(s) to be identified and utilised in additive manufacturing.
[0022] Evaluation of candidate virtual build volumes, which may be described as a nesting or object batching process, have been proposed, which may seek to optimise (in some examples, within constraints) certain criteria. For example, such candidate build volumes may be evaluated to determine how efficiently they use the space available in a build volume. Candidate virtual build volumes may be compared such that the build volume in which a certain number of objects can be generated in a minimum height is identified, as the lower the height of the build volume, the faster the build volume may be generated.
[0023] In such cases,‘nesting’ analysis has, for example, been carried out to converge on a selected candidate virtual build volume which seeks to minimise a target function which depends on parameters such as the height of the virtual build volume, the number of objects contained within the build volume and/or the density. In some examples, this is carried out by determining a random initial solution, and generating a score for the candidate virtual build volume based on a predetermined target function. The candidate virtual build volume may then be ‘shuffled’, for example by applying a random rotation to object(s) (and in some examples, validating that the new object placement remains inside the printable volume and does not result in an intersection between objects), and the shuffled candidate virtual build volume is then scored again. This process may continue until, for example, a threshold parameter is achieved, or the best score (for example the minimum or maximum score) after a predetermined number of iterations may be selected.
[0024] The method as set out in Figure 1 allows dimensional inaccuracy which may be introduced by a misalignment between print agent applicator paths to be taken into account when evaluating a candidate virtual build volume. Thus, nesting analysis as described above may be replaced by, or additionally incorporate, a consideration of whether at least part of the object spans a boundary. This may for example introduce an additional optimisation criteria to a nesting analysis or batching process (i.e. grouping objects for generation in one ‘batch’ in a single build volume). For example, this may comprise determining the number of intersections between object(s) (or axes of object(s)) and boundaries, such that a greater number of intersections may result in a negative impact on a score of a candidate virtual build volume. In some examples, as described in greater detail below, this may allow a set of candidate virtual build volumes to be evaluated so as to select a particular virtual build volume on which to base an additive manufacturing operation based on how many parts which have been identified as being associated with a high intended accuracy extend over a boundary between print agent applicator paths.
[0025] In some examples, this may allow a build volume to be identified in which objects are generated by individual print agent applicators. In other examples, the number of intersections between object parts (which may be identified object parts such as the axes discussed below) may be considered (in some examples along with other criteria) in assessing candidate build volumes, such that a lower number of intersections tends to increase a favourability (or ‘score’) of the candidate virtual build volume. In some examples, as is further described below, the dimensions of the object may be associated with a hierarchical priority level. For example, it may be that there is a first dimension of an object which is to be generated with a high dimensional accuracy whereas the dimensional accuracy of a second dimension may be associated with a higher degree of tolerance. Therefore, the evaluation carried out in block 106 may score a candidate virtual build volume higher (or more favourably) if the second dimension spans the boundary but the first dimension does not than if the reverse was true.
[0026] Figure 2 shows a schematic representation of a print bed 200. Print agent is to be applied, in this example, by three print agent applicators, in this example printheads 202a-c, each of which sweep over a different part of the print bed 200, and therefore provide three print agent applicator paths 204a-c. While care may be taken to align the printheads 202, there may be minor misalignments and/or the printheads may become mis-aligned over time. Four instances of an object 206a-d are shown in two dimensions, indicating possible placements in the print bed. The object 206 has two defined dimensions, also referred to as axes herein. The first axis 208a runs the length of the arrow-shaped object 206 whereas a second axis 208b runs across the width of the object 206 as shown. In some examples, the dimension of the first axis 208a and the dimension of the second axis 208b may be associated with different priority levels. In this example, it is assumed that accuracy of the object length (axis 208a) is more of a priority for the object’s intended purpose than the width (axis 208b). In some examples, the axes may be defined as vectors. While the axes shown here are perpendicular, this need not be the case. Axes may be defined at any angle to an object and/or each other, and there may be parallel axes defined (for example, another axis could be associated with width of the shaft of the arrow as well as axis 208b relating to the width of the arrow head)
[0027] Each of the objects 206 are now considered in turn, working left to right. As shown in Figure 2, the leftmost object 206a does not cross any boundaries between print agent applicator paths 204. Therefore, this object 206a may be printed with a high accuracy in both its length and its width dimensions. The second object 206b is placed such that a boundary intercepts its width. This may introduce dimensional inaccuracies, in particular in the second axis 208b. The third object 206c is placed such that a boundary intercepts its length, and may therefore introduce dimensional accuracies in particular in the first axis 208a. As noted above, in this example, if the length is of higher priority than the width, the placement of the second object 206b may be preferred to the placement of the third object 206c. The first axis 208a of the fourth object 206d intercepts with two print agent applicator path boundaries. Therefore, this may introduce additional dimensional inaccuracy along the length when compared to the placement of the third object 206c therefore, the placement of the third object 206c may be favoured over the placement of the fourth object 206d.
[0028] For the sake of example, and with reference to the method of Figure 1 , a function which seeks to evaluate a candidate virtual build volume may be applied to four different candidate virtual build volumes, each containing a single instance of the object 206, and placing the object 206 in a different one of the positions shown in Figure 2. The function may evaluate the candidate virtual built volumes based on intersections between the object axes and a boundary. In this way, the candidate virtual build volumes may be ranked in order, with the candidate virtual build volume in which the object 206 is shown in the leftmost position being the most favourable, the candidate virtual build volume with the object 206 shown in the second position along being the second ranked, the object 206 shown in the third position along being the third ranked and the object shown in the fourth position along being the least favoured candidate virtual build volume.
[0029] Of course, Figure 2 is used to demonstrate the principle for a single object 206. However, in other examples, the function may evaluate different arrangements of a plurality of objects, for example to identify a favoured‘overall’ arrangement, which in some cases may mean sacrificing accuracy in some of the objects. In other words, in practice, it may be the case that the build volume is to contain multiple objects. In such an example, the evaluation process may seek to optimise (at least within constraints) over the full set of objects, for example by determining the number of (e.g. counting) the number of axes which cross boundaries. In addition, in some examples, the evaluation process may consider other factors, such as any or any combination of the relative importance of axes crossing a boundary, the height of the virtual build volume, the density of object placement, the overall number of objects, and the like.
[0030] Figure 3 shows an example of dimensional accuracy of an object printed in two different positions. In a first position, associated with line 302, the object spans a boundary between print agent paths. The measurements along its length show a deviation from an intended dimension of up to 0.1 mm. When the object is printed in a second position, associated with line 304, in which the dimension does not span the boundary, the maximum deviation is around 0.06mm, and the average magnitude deviation is lower.
[0031] As noted above, in some examples, the process of Figure 1 may be carried out iteratively, with new candidate virtual build volumes being determined and evaluated recursively for example until, for example, a predetermined criteria is reached and/or until a certain number of evaluations has been carried out, at which point the best scoring candidate virtual build volume may be adopted as a selected build volume. In some examples, the predetermined criteria relates to a rate of change of the result of the evaluation. For example, 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). In some examples, there may be at least one constraint placed on the arrangement of objects within the candidate virtual build volumes. [0032] Figure 4 shows an example of a process which may be carried out to identify a virtual build volume from which to generate object generation instructions, and to generate such instructions (which portions of the method may be computer implemented), and then to generate an object.
[0033] Block 402 comprises receiving object model data describing a plurality of objects to be generated in additive manufacturing. This may for example comprise receiving object model data as described in relation to block 102 above. In some examples, the axes may be defined as vectors, and may have a directionality.
[0034] Block 404 comprises identifying, for each of the plurality of objects, at least one axis of that object which is associated with a high intended manufacturing accuracy. In some examples, this information may be provided with the object model data. In other examples, the information may be indicated by a user input or the like, and identified by a processing apparatus accordingly.
[0035] Block 406 comprises associating an importance level with each identified axis. For example, the different axes may be ranked, for example having one of a predetermined set of ranks or in order, or in some other way. In one example, each axis may be associated with a high, medium or low importance level. It may also be noted that some dimensions of the object(s) may not be associated with an axis at all, and that such dimensions will not therefore be considered in evaluating candidate virtual build volumes.
[0036] Block 408 comprises determining, for each object, a plurality of object orientations in which an identified axis is parallel to a boundary between print agent applicator paths.
[0037] For example, in the case of Figure 2, there are two directions in which the long axis 208a is parallel to the boundaries (arrow pointing left and arrow pointing right) and two directions in which the width axis 208b are parallel to the boundaries (arrow pointing up and arrow pointing down). By defining the axes as vectors, this may assist in differentiating between the respective directions.
[0038] For at least one (and in some examples, each) alignment between an axis and the boundary, a number n of orientations may be identified. The object 206 may be rotated about these axes (i.e.,‘rolled’ in the plane of the page, such that for the left and right pointing arrows, in which the first axis 208a is parallel to the boundaries, the arrow may be rolled onto its side with the direction of the arrow point remaining unchanged, and for the up and down pointing arrows, in which the second axis 208b is parallel to the boundaries, the arrow may be rolled to point out of or into the plane of the page).
[0039] For example, in the case of a right pointing arrow object 206, while maintaining the long axis 208a parallel with the boundaries, this may be rotated about the central long axis 208a. In some examples a predetermined number of object orientations may be determined. For example four object orientations may be determined for each identified axis.
[0040] By specifying that the axes are parallel to the boundaries, a first constraint is added to the number of possible candidate virtual build volumes that may be generated. In this example, a second constraint is also added in that the number of rotations, n, for each axis (in some examples, in each direction of an axis vector) is a predetermined number of rotations. The number n may be selected according to an intended size of the set of candidate virtual build volumes. In one example, the number of rotations for each axis may be, for example, in the order of 1-10, in some examples being around four (meaning 90° rotations may be applied). The number n may in some examples be associated with a determined importance level. For example, more rotations may be associated with an axis with a high importance than for an axis with a relatively lower importance. The number n may also be selected given available processing resources, with lower values of n being associated with less processing resource.
[0041] Block 410 comprises determining a plurality of candidate virtual build volumes in which the objects have the orientations determined in block 408 and/or different relative placements in different candidate virtual build volumes. In other words, the combinations of object orientations and/or the placement of objects may differ between candidate virtual build volumes.
[0042] In some examples, a first plurality of candidate virtual build volumes may be determined in which, for a given object, a given axis is parallel to the boundary, and the object is rotated about the axis. A second plurality of candidate virtual build volumes may be determined in which, for the object, the axis is parallel to the boundary but is oriented in an opposed direction (for example, referring to Figure 2, the arrow object 206 pointing right instead of left, or vice versa), and again, the object is rotated about the axis. [0043] Block 412 comprises evaluating each of the plurality of candidate virtual build volumes, wherein the evaluation comprises determining a number of identified axes which cross a boundary. In some examples, the relative importance of the axes is taken into account. In addition, in some examples, other criteria such as the height of the virtual build volume, the number of objects, the density with which the objects are packed and/or the like, may be considered.
[0044] For example, a candidate virtual build volume may be assessed using an equation as set out below:
Figure imgf000013_0001
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
Q = Number of identified axes which cross a boundary
f = Number of identified axes
ΰ = Usable height of build volume
a Assigned importance of the average height
b = Assigned importance of the maximum height
g = Assigned importance of the critical dimension axis
[0045] 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, the total height as a proportion of the usable height, and the number of axes which cross a boundary. A score of 0 indicates a‘perfect’ packing. To allow the relative importance of the axes to taken into account, the number of identified axes in each importance level which cross a boundary may be associated with an assigned importance for that importance level (i.e. there may be multiple terms of
g .
the form g} *— , where j is an importance level).
Figure imgf000013_0002
[0046] 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.
[0047] For example, candidate_virtual_build_volume_score as set out above may be evaluated, with a, b and g being selected, for example according to user priorities or default parameters.
[0048] In another example, a target function may be intended to produce a value between 1 and 0, where 1 or 0 represents a perfect score in which all objects are arranged such that no boundaries are crossed, a height is minimised and a packing density is maximised. These different criteria may take different weights within the function depending on the priorities of a user, default parameters or the like. For the sake of a simple example, 20% of the value may represent the contribution from the evaluation of how many axes cross a boundary, 40% may be provided as an indication of how closely height is to the minimum height and 40% may relate to the packing density. Other proportions may be selected in other examples. For example, where high-speed is the priority, more weight may be given to the height of the virtual build volume whereas where high precision is a priority more weight may be given to how many axes (or other object parts or features) cross a boundary.
[0049] In this example, the object placement is constrained by the criteria that at least one of the axes is to be parallel to a boundary, and by the predetermined number of rotations about that axis, and different possible candidate virtual build volumes fulfilling this criteria may be assessed and selected between. In some examples, the number of candidate virtual build volumes may be predetermined and/or evaluation may continue until a predetermined outcome (such as a rate of change of the scores output falling below a threshold) is seen.
[0050] Block 414 comprises selecting between the pluralities of candidate virtual build volumes based on the evaluation. For example, this may comprise selecting, in some examples automatically, the candidate virtual build volume based on a lowest or highest score (whether a high or a low score is selected may be predetermined, for example depending on the evaluation scheme used) or in some other way.
[0051] Block 416 comprises generating object generation instructions based on the selected virtual build volume. For example, generating object generation instructions may comprise determining‘slices’ of the selected virtual build volume, and rasterising these slices into pixels (or voxels, i.e. three- dimensional pixels). An amount of print agent (or no print agent) may be associated with each of the pixels/voxels. For example, if a pixel relates to a region of a build volume which is intended to solidify, the print 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 object generation instructions may be generated to specify that no agent, or a coalescence modifying agent such as a detailing agent, may be applied thereto. In addition, the amounts of such agents may be specified in the generated instructions and these amounts may be determined based on, for example, thermal considerations and the like.
[0052] Block 418 comprises generating (or printing) the object according to the generated object generation instructions. For example, the object 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 object generation 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. Some techniques allow for accurate placement of print agent on a build material, for example by using printheads operated according to inkjet principles of two dimensional printing to apply print agents, which in some examples may be controlled to apply print agents with a resolution of around 600dpi, or 1200dpi. A further layer of build material may then be formed and the process repeated, for example with the object generation instructions for the next slice.
[0053] Figure 5 shows an example of apparatus 500 comprising processing circuitry 502. The processing circuitry 502 comprises a virtual build volume assessment module 504 and a print instructions module 506.
[0054] In use of the apparatus 500, the virtual build volume assessment module 504 is to assess a set of candidate virtual build volumes modelling possible fabrication chamber content for object generation based on an analysis of whether at least a feature of the object spans two print agent applicator paths. For example, this assessment may be carried out as described for the evaluation in block 106 or in relation to the method of Figure 4. [0055] The print instructions module 506, in use of the apparatus 500, determines print instructions (or object generation 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 504. For example, the virtual build volume assessment module 504 may score the candidate virtual build volumes and the best scoring candidate virtual build volume may be selected.
[0056] The feature of the object which is considered by the virtual build volume assessment module 504 may be an axis of the object. In some such examples, the virtual build volume assessment module 504 assesses the set of candidate virtual build volumes based on whether an identified axis of the object is to span a region of a fabrication chamber which is to be addressed in more than one print agent applicator pass in an object generation process. The passes may be repeated passes by one print agent applicator or may be passes by different print agent applicators.
[0057] In some examples, the virtual build volume assessment module 504 assesses the set of candidate virtual build volumes based on at least one of a height of each candidate virtual build volume and the number of objects in each candidate virtual build volume. In other words, in addition to taking into account whether a feature of the object spans two print agent applicator paths, other criteria may be assessed, for example as part of an optimisation problem (or partial optimisation problem) in evaluating a virtual build volume. In some examples, these may have associated relative influences on a function such that each can be given a relative importance.
[0058] Figure 6 shows an example of an additive manufacturing apparatus 600, which comprises the apparatus 500 of Figure 5. In addition, the additive manufacturing apparatus 600 comprises a fabrication chamber 602 in which at least one object may be generated. In some examples, in addition to the fabrication chamber 602 the additive manufacturing apparatus 600 may comprise additional apparatus for generating objects in additive manufacturing, for example, any or any combination of 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. [0059] Figure 7 shows an example of a tangible machine readable medium 700 in association with a processor 702. The machine readable medium 700 stores instructions 704 which, when executed, cause the processor 702 to carry out certain operations. In this example, the instructions 704 comprise instructions to cause the processor 702 to score a plurality of possible object generation arrangements for additive manufacturing based on a number of intersections between predetermined object axes and boundaries between print agent applicator paths. In some such examples, the instructions 704 may cause the processor 702 to carry out block 106 or block 412 described above. For example, the possible object generation arrangements may be characterised as candidate virtual build volumes as described above.
[0060] In some examples, the instructions 704 may further comprise instructions to cause the processor 702 to generate possible object generation arrangements (e.g. candidate virtual build volumes), wherein the objects are arranged such that at least one predetermined axis of each object is parallel to a boundary. In some examples, as set out above, the instructions may apply rotation(s) (e.g. a predetermined number of rotations) to the aligned objects to generate different object orientations.
[0061] In other examples, the instructions 704 may comprise instructions to carry out any of the blocks of the method of Figure 1 and/or of the method blocks 402-416 of Figure 4. In some examples, the instructions 704 may comprise instructions to cause the processor 702 to act as the virtual build volume assessment module 504 and/or the print instructions module 506.
[0062] 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.
[0063] 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.
[0064] 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 virtual build volume assessment module 504 and/or the print instructions module 506) 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.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] The features of any dependent claim may be combined with the features of any of the independent claims or other dependent claims.

Claims

1 . A method comprising:
receiving, by a processor, object model data, the object model data describing a first object to be generated in additive manufacturing;
determining, by a processor, a candidate virtual build volume indicating a possible placement and orientation of the first object in object generation; and evaluating, by a processor, the candidate virtual build volume, wherein the evaluation comprises determining if at least part of the first object is to span a boundary between a first print agent applicator path and a second print agent applicator path during object generation.
2. A method according to claim 1 further comprising:
determining and evaluating a plurality of candidate virtual build volumes indicating different possible placements and/or orientations of the first object in object generation; and
selecting between the candidate virtual build volumes based on the evaluation.
3. A method according to claim 1 further comprising:
identifying a first axis of the first object, wherein the first axis of the first object is associated with a high intended manufacturing accuracy; and
wherein evaluating the candidate virtual build volume comprises determining if the first axis spans the boundary between the first print agent applicator path and the second print agent applicator path.
4. A method according to claim 3 in which determining the candidate virtual build volume comprises determining a candidate virtual build volume in which the first axis of the first object is parallel to the boundary between the first print agent applicator path and the second print agent applicator path.
5. A method according to claim 4 further comprising determining, by at least one processor, a first plurality of candidate virtual build volumes in which the first axis of the first object is parallel to the boundary, wherein the first object is relatively rotated about the first axis between different candidate virtual build volumes.
6. A method according to claim 5 further comprising determining, by at least one processor, a second plurality of candidate virtual build volumes in which the first axis of the first object is parallel to the boundary, and the first object is orientated in an opposed direction to a direction in the first plurality of candidate virtual build volumes.
7. A method according to claim 1 in which receiving the object model data comprises receiving object model data describing a plurality of objects to be generated in additive manufacturing; the method further comprising:
identifying, for each of a plurality of the objects, and by at least one processor, at least one axis of that object which is associated with a high intended manufacturing accuracy;
determining, by at least one processor and for each object, a plurality of object orientations in which an identified axis is parallel to a line indicating a boundary between print agent applicator paths;
determining, by at least one processor, a plurality of candidate virtual build volumes, wherein the objects have the determined object orientations and wherein a relative placement of objects is different in different candidate virtual build volumes;
evaluating, by at least one processor, the plurality of candidate virtual build volumes, wherein the evaluation comprises determining a number of identified axes which cross a boundary; and
selecting, by at least one processor, between the plurality of candidate virtual build volumes based on the evaluation.
8. A method according to claim 7 further comprising associating, by at least one processor, an importance level with each identified axis, and wherein the evaluation comprises determining the number of identified axes which cross a boundary and an indication of a relative importance of the identified axes which cross a boundary.
9. A method according to claim 1 further comprising, if the candidate virtual build volume is selected, generating by at least one processor, object generation instructions based on the selected virtual build volume and generating the object.
10. Apparatus comprising:
processing circuitry comprising:
a virtual build volume assessment module to assess a set of candidate virtual build volumes modelling possible fabrication chamber contents for object generation based on an analysis of whether at least a feature of the object spans two print agent applicator paths; 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 an assessment by the virtual build volume assessment module.
1 1. Apparatus according to claim 10 wherein the virtual build volume assessment module is to assess the set of candidate virtual build volumes based on whether an identified axis of the object is to span a region of a fabrication chamber which is to be addressed in more than one print agent applicator pass in an object generation process.
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 which comprises additive manufacturing apparatus.
14. A tangible machine readable medium storing instructions which, when executed by a processor, cause the processor to:
score a plurality of possible object generation arrangements based on a number of intersections between predetermined object axes and boundaries between print agent applicator paths.
15. A tangible machine readable medium according to claim 14 in which the instructions further comprise instructions to cause the processor to generate possible object generation arrangements, wherein in the possible object generation arrangements, objects are arranged such that at least one predetermined axes of each object is parallel to a boundary.
PCT/US2018/052790 2018-09-26 2018-09-26 Evaluating candidate virtual build volumes WO2020068059A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2018/052790 WO2020068059A1 (en) 2018-09-26 2018-09-26 Evaluating candidate virtual build volumes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/052790 WO2020068059A1 (en) 2018-09-26 2018-09-26 Evaluating candidate virtual build volumes

Publications (1)

Publication Number Publication Date
WO2020068059A1 true WO2020068059A1 (en) 2020-04-02

Family

ID=69952713

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/052790 WO2020068059A1 (en) 2018-09-26 2018-09-26 Evaluating candidate virtual build volumes

Country Status (1)

Country Link
WO (1) WO2020068059A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014207454A1 (en) * 2013-06-26 2014-12-31 Renishaw Plc Method and apparatus for generating geometric data for use in additive manufacturing
US20150151492A1 (en) * 2013-12-03 2015-06-04 Autodesk, Inc. Generating support material for three-dimensional printing
WO2016043914A1 (en) * 2014-09-19 2016-03-24 Siemens Product Lifecycle Management Software Inc. Build orientations for additive manufacturing
US20160250810A1 (en) * 2015-02-26 2016-09-01 Stratasys, Inc. Surface Angle Model Evaluation Process for Additive Manufacturing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014207454A1 (en) * 2013-06-26 2014-12-31 Renishaw Plc Method and apparatus for generating geometric data for use in additive manufacturing
US20150151492A1 (en) * 2013-12-03 2015-06-04 Autodesk, Inc. Generating support material for three-dimensional printing
WO2016043914A1 (en) * 2014-09-19 2016-03-24 Siemens Product Lifecycle Management Software Inc. Build orientations for additive manufacturing
US20160250810A1 (en) * 2015-02-26 2016-09-01 Stratasys, Inc. Surface Angle Model Evaluation Process for Additive Manufacturing

Similar Documents

Publication Publication Date Title
US11954413B2 (en) Evaluating candidate virtual build volumes
US20210370611A1 (en) Object model dimensions for additive manufacturing
US10710376B2 (en) Inkjet position adjustment method and three-dimensional printing equipment
US20230339188A1 (en) Predicted object attributes
US20220009171A1 (en) Separation of objects for additive manufacturing
US20210349440A1 (en) Geometrical Compensations for Additive Manufacturing
US11780169B2 (en) Virtual object volumes
WO2020068059A1 (en) Evaluating candidate virtual build volumes
US20230027565A1 (en) Spatial Arrangements of Objects for Additive Manufacturing
US20230024633A1 (en) Geometrical compensation models
EP3774296B1 (en) Three-dimensional object production
US20220075347A1 (en) Geometrical compensations
US20220113700A1 (en) Geometrical transformations in additive manufacturing
WO2021080561A1 (en) Surface offsets
WO2020222781A1 (en) Geometrical compensations
WO2023249657A1 (en) Orientation of object models for additive manufacturing
US20220288862A1 (en) Thermal interactions
US20220105685A1 (en) Object Locations in Additive Manufacturing
WO2021230858A1 (en) Identifying interior surfaces
TWI716703B (en) Inkjet position adjustment method and three-dimensional printing equiment
WO2022005464A1 (en) Spatial arrangements for additive manufacturing
WO2022211780A1 (en) Relatively rotated objects
US20220128970A1 (en) Geometrical Transformations in Additive Manufacturing
US20220072801A1 (en) Printer and method for adapting printing fluid strategy
US20220067225A1 (en) Dimensions in Additive Manufacturing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18934786

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18934786

Country of ref document: EP

Kind code of ref document: A1