Generating a build bed layout for acceptable green part quality

By employing a machine-learning model to predict green part quality and optimizing the build bed layout using a genetic procedure, the challenges of predicting and optimizing part quality in additive manufacturing are addressed, resulting in improved part quality and increased efficiency.

WO2025095968A1PCT designated stage expired Publication Date: 2025-05-08PERIDOT PRINT LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/US2023/078274
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-31
Publication Date
2025-05-08

AI Technical Summary

Technical Problem

Current additive manufacturing techniques face challenges in predicting and optimizing the quality of green parts, leading to defects and inconsistencies in sintered parts, which are often addressed through costly and time-intensive manual trial-and-error methods.

Method used

The use of a machine-learning model, such as a deep neural network, to predict the quality of green parts and sintered parts by generating a green part quality vector, which is then utilized to optimize the build bed layout through a genetic procedure, ensuring acceptable part quality and increased packing density.

Benefits of technology

This approach enables the prediction and optimization of green part quality before actual printing, reducing defects and inconsistencies in sintered parts, while also increasing packing density and reducing manufacturing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2023078274_08052025_PF_FP_ABST
    Figure US2023078274_08052025_PF_FP_ABST
Patent Text Reader

Abstract

A method is described in which a build bed layout is generated; a green part quality vector is determined for a part of the build bed layout; and, based on the green part quality vector meeting a first threshold, a recommended part layout is provided.
Need to check novelty before this filing date? Find Prior Art

Description

GENERATING A BUILD BED LAYOUT FOR ACCEPTABLE GREEN PART QUALITYBACKGROUND OF THE INVENTION

[0001] Three-dimensional (3D) solid parts may be produced from a digital model using additive manufacturing. Additive manufacturing may be used in rapid prototyping, mold generation, mold master generation, and short-run manufacturing. Additive manufacturing involves the application of successive layers of build material. This is unlike some machining processes that often remove material to create the final part. In some additive manufacturing techniques, the build material may be cured or fused.BRIEF DESCRIPTION OF THE DRAWING

[0002] The present technology is described in detail below with reference to the attached drawing figures, wherein:

[0003] FIG. 1 is a diagram of an example device, suitable for implementing aspects of the technology;

[0004] FIG. 2 is a block diagram of an example packing system, suitable for implementing aspects of the technology;

[0005] FIG. 3 is a block diagram of an example packing system, suitable for implementing aspects of the technology;

[0006] FIG. 4 is a flow diagram showing an example method for providing a recommended part layout, in accordance with an aspect of the technology described herein;

[0007] FIG. 5 a flow diagram showing an example method for utilizing a green part quality vector to optimize a part layout, in accordance with an aspect of the technology described herein; and

[0008] FIG. 6 is a flow diagram showing an example method for utilizing a genetic procedure and a green part quality vector to optimize a part layout, in accordance with an aspect of the technology described herein.DETAILED DESCRIPTION OF THE INVENTION

[0009] Additive manufacturing may be used to manufacture three-dimensional (3D) objects. 3D printing is an example of additive manufacturing. Metal-Jet Fusion (MJF) is an example of 3D printing. During an MJF 3D printing process, a 3D printed part is printed layer-by-layer in a build volume. Each layer includes powder comprised of metal spread in a desired orientation and binding agents are selectively deposited on the powder. Generally, binding agents are applied in a precise manner during the additive manufacturing process. Subsequent to application of agents, each layer may optionally be subjected to energy from energy sources, in some aspects, such as heat lamps or laser, thereby causing at least partial removal (e.g., breakdown and elimination) of the binder. The process may be repeated for each layer until printing of the 3D part is completed. In some aspects, the 3D part is subjected to an energy source only after all the layers have been formed. Some examples of the techniques described herein may be utilized for various examples of additive manufacturing. For instance, some examples may be utilized for metal printing. Some metal printing techniques may be powderbased and driven by powder gluing and / or sintering. Some examples of the approaches described herein may be applied to area-based powder bed metal printing, such as binder jet, MJF, and / or metal binding printing, etc.

[0010] A build bed layout is information that specifies an arrangement (e.g., position, location, orientation, etc.) of parts in a build volume. A build volume is a 3D space. A build volume may correspond to a physical space in which additive manufacturing may be performed. It may be helpful to increase packing density in the build volume to increase production and / or reduce manufacturing costs. In some examples, the build bed layout may be chosen based on an objective or objectives. Examples of objectives may include packing density (e.g., increasing or maximizing packing density) or packing height (e.g., z-height). Packing density refers to the ratio of part volume to total volume of a build bucket. By increasing packing density, throughput can be increased and cost can be reduced. Z-height refers to the thickness of each layer multiplied by the number of layers in a build and may impact how much powder is used. Accordingly, z-height may affect the cost and time required (i.e. , the throughput) to complete the print.

[0011] Generally, the physical quality of parts manufactured using the additive manufacturing processes, such as the examples provided regarding metal printing, is impacted by the porosity and various characteristics of green parts. For clarity, a green part refers to an object comprised of build material that is held together, at least, by a binding agent, and is formed by additive manufacturing. Changes in position and / or orientation of parts within a packing or build bed layout affects the green part microstructure. Among various characteristics, porosity can result in defects and / or inconsistencies occurring in the sintered parts generated from the green parts.

[0012] Although the sintered part is a derivative of the green part, sintering is an independent process from green part production. A sintered part refers to a green part that has been sintered by the application of energy by a sintering apparatus, such as an oven or a furnace. The term “sintered part” is utilized in the context of metal additive manufacturing as an example for the purposes of this application. Additionally, a sintering batch (a layout of green parts within a sintering oven) may differ from the initial build bed layout and non-uniformity in the sintering oven may further influence the final part outcome. Accurately quantifying the green part porosity without actually printing the part has eluded some others such that the build bed layout is judged on sintered part quality only after printing. As a result, defects and / or inconsistencies are not prevented; rather, defects are sometimes addressed through costly and time-intensive manual trial- and-error approaches. Each trial-and-error approach that fails requires the entire process to be started over and a new build bed layout selected.

[0013] Some examples of the techniques described herein may generate build bed layouts where predicted quality of sintered or printed parts is one of the objectives used by the generation technique. Some examples of the techniques described herein may utilize a machine-learning model or models. For example, techniques described herein may utilize convolutional neural networks (CNNs) (e.g., basic CNN, deconvolutional neural network, inception module, residual neural network, etc.), recurrent neural networks (RNNs) (e.g., basic RNN, multi-layer RNN, bi-directional RNN, fused RNN, clockwork RNN, etc.), graph neural networks (GNNs), etc. Different depths of a neural network or neural networks may be utilized in accordance with some examples of the techniques described herein.

[0014] In some examples of the techniques described herein, a deep neural network may predict or infer a green part quality of a green part that will or is anticipated to be generated from a build bed layout. Moreover, in some examples of the techniques described herein, a deep neural network may predict or infer a sintered state of a sintered part that will or is anticipated to be generated from a layout of green parts. The green part quality inferred for a build bed layout to be generated from a build bed layout and / or the sintered state inferred for a sintered part to be generated from a layout of green parts may be represented by encoding and embedding the predictive data, output by a trained model, as a prediction vector. The prediction vector may include indications of inferred physical characteristics of a green part before the green part is actually generated from the build bed layout and / or the sintered part before the sintered part is actually generated from a layout of green parts. Examples of physicalcharacteristics include width, length, height, part mass, envelope density, erosion distance, or any combination thereof.

[0015] The technical aspects discussed herein are equally applicable to any process in which oven sintering is applied to a part, such as an intermediate part, where a change in position and / or orientation of parts within a packing or build bed layout may affect the quality of the intermediate part and / or the printed part. Examples may include(s) techniques of metal additive manufacturing and ceramic additive manufacturing.

[0016] Beginning with FIG. 1, an example device 100 is depicted. As shown in the example of FIG. 1, the device 100 includes a processor 102, a machine-readable storage such as memory 104, a nesting engine 106, and a prediction engine 108. For clarity, the term engine refers to a special-purpose program or computer software code that performs a specific function. For example, the specific functions performed by nesting engine 106 and prediction engine 108 are described herein. The processor 102 may include a central processing unit (CPU), whether virtual, physical hardware, or a combination thereof. The machine-readable storage may be any electronic, magnetic, optical, or other physical storage device that stores readable and / or executable instructions. Thus machine-readable storage may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like.

[0017] The prediction engine 108 may be a machine-learning model (e.g., neural network) in some instances. Examples of machine-learning model types also include regression analysis, logistic regression, cluster analysis, random forest, and the like. The prediction engine 108 may be trained and deployed, for example, to perform learning that is supervised, unsupervised, reinforcement, semi- supervised, self-supervised, and the like. The device 100 includes an instruction set to cooperate with the processor 102 and the machine-readable storage to, by way of the nesting engine 106 and the prediction engine 108, optimize a build bed layout for acceptable green part quality. The processor 102 may read and / or execute the instruction set stored on the machine-readable storage.

[0018] At a high level, nesting engine 106 determines how parts should be arranged in a build bed layout. For example, nesting engine 106 may perform a genetic procedure to generate the build bed layout. A genetic procedure may be a metaheuristic procedure that includes evolution and / or selection mechanisms for determining a solution. In some examples, a genetic procedure may be a technique utilized in artificial intelligence. In some examples of the techniques described herein, a genetic procedure may be utilized to optimize a build bedlayout for acceptable green part quality. In some examples of the techniques described herein, the genetic procedure may additionally be utilized to optimize the layout of green parts in a sintering oven for acceptable sintered part quality.

[0019] Prediction engine 108 may predict a quality of a physical characteristic (or a plurality of physical characteristics) of a potential green part or parts prior to sintering or further processing.

[0020] In additive manufacturing, as described herein, there are a set of manufacturing parameters, which reflect certain characteristics of how a part from the part design file will be produced. The manufacturing parameters generally comprise designed parameters and observed parameters. The “part design file” may be referred to interchangeably with the “green part to be printed” that is defined by the part design file, for simplicity. The part design file is configured to be manufactured using additive manufacturing techniques into a green part which may be subsequently processed into a final or completed part. For example, the part design file defines specifications and / or includes instructions for printing a specific part at the green state. Producing the green part is an intermediate process within an overall manufacturing process of a part described by the part design file. The manufacturing parameters may include and / or specify information that is determined by design, calculation, and / or measurement.

[0021] Prediction engine 108 encodes and embeds the manufacturing parameters and the part design file into a vector, referred to herein as a build vector, as discussed below in detail. A single build vector may represent a plurality of manufacturing parameters, in some aspects. As used herein, the term “single” refers to the vector, and not necessarily to a single part to be formed from such a vector. Thus, one vector could encode manufacturing parameters and part design files for a plurality of parts, or for a singular part, depending on the manufacturing parameters selected. Prediction engine 108 may generate a plurality of build vectors of a plurality of part designs, in various aspects.

[0022] Prediction engine 108 may utilize at least two inputs of the set of parameters of the designed parameters in addition to the part design file, to generate the build vector. The designed parameters are a set of print control parameters and a set of build bed design characteristics. The first parameter comprises the set of print control parameters, which may be settings and / or instructions to be utilized by an additive manufacturing machine, such as a 3D printer. Some examples of print control parameters include information such as layer thickness, contone ratio, print speed, nozzle temperatures, and / or use of a cooling fan. Additional examples of print control parameters include thermal control, use of a lamp, rollerspeed, and / or other typical 3D printer settings. These parameters may be input from the part design file, may be part of the memory 104 of the device 100, may be input by a user, and / or may be determined by a separate 3D printer controller.

[0023] The second parameter utilized by the prediction engine 108 to generate a build vector comprises build bed design characteristics. The build bed design characteristics correspond to characteristics of a build platform, a build area, or a build “bed” of a 3D printer, not to be confused with a powder bed, for example. The build bed may be a solid piece of material or may have a plurality of holes or cutouts to allow for material extraction. The build bed may vary in geometry between 3D printer models and even vary between individual 3D printers as build beds may be customized to the unique outcomes desired by a particular user and / or for a particular manufacturing process. Examples of characteristics include information identifying a 3D printer, a build bed geometry, and / or a build bed layout. As such, in aspects, the prediction engine 108 utilizes at least one print control parameter, at least one build bed design characteristic, and the part design file, to generate the build vector. Prediction engine 108 may generate the build vector from additional print control parameters or build bed design characteristics, which may improve the accuracy.

[0024] Based on the part design file and the manufacturing parameters that are selected and which relate to the part design file, prediction engine 108 encodes and embeds values and / or vectors of such information into another vector, referred to as the build vector. A single build vector may represent a plurality of manufacturing parameters of a single green part design for an individual green part or a plurality of green parts, in various aspects. In some aspects, prediction engine 108 may generate a plurality of build vectors to represent manufacturing parameters of a plurality of green part designs, which may be printed simultaneously.

[0025] Prediction engine 108 may be trained by ingesting the build vector. In some aspects, prediction engine 108 ingests a plurality of build vectors representing, for example, a change in the quantity of manufacturing parameters. Generally, utilizing an increased quantity of manufacturing parameters relative to a lower quantity of manufacturing parameters can improve and / or increase the accuracy of prediction engine 108. In some aspects, prediction engine 108 may ingest a build vector of multiple different design part files, for different green parts to be printed on a 3D printer at the same time. In some aspects, prediction engine 108 may access data from previous predictions, data from other models, and / or data from a prior part design, as stored in the memory 104, and may combine such stored data with the build vector. In some aspects, prediction engine 108 may select data regarding prediction modelsfrom other device and / or other 3D printers. In some aspects, prediction engine 108 may prompt a user to provide, input, or import additional manufacturing parameters, previously described above, to increase a level of accuracy.

[0026] Prediction engine 108 outputs prediction vector(s), referred to as a green part quality vector. The green part quality vector represents a prediction for at least one physical characteristic of a potential green part, as defined by at least one new part design file. Prediction engine 108 may be trained for a predetermined, fixed quantity of vector-ingestion and prediction cycles, for example. Prediction engine 108 may be trained for a dynamic (not fixed) quantity of vector-ingestion and prediction cycles, in another example. In some aspects, prediction engine 108 is trained until the curve of a regression algorithm sufficiently forms a flattened plateau, which is indicative of completion of the model’s learning. In yet another example, prediction engine 108 may be trained for any quantity of vector-ingestion and prediction cycles to produce a green part quality vector that meets or exceeds an accuracy threshold. Prediction engine 108 may be trained until the output substantially aligns with a vector representation of at least some of the physical characteristics (e.g., 3 point bend test, XYZ dimensions, envelope density, surface finish) of the green part after printing. A 3 point bend test subjects an object to maximum stress and strain to determine the fracture toughness of the object. XYZ dimensions refer to measurements of the object’s height, width, and depth. Envelope density refers to the mass of an object divided by its volume, where the volume includes that of its pores and small cavities. Surface finish refers to the accuracy and smoothness of the surface of an object.

[0027] Prediction engine 108 can be trained for different print modes (e.g., mechanical mode, surface finish mode, and / or a balanced mode) by utilizing weights relevant to the particular mode. In some examples, prediction engine 108 further may additionally predict a quality of a physical characteristic (or a plurality of physical characteristics) of a potential sintered part or parts, yet to be formed by a sintering process.

[0028] Prediction engine 108 may be trained to determine a sintered part quality vector for each part in a layout of green parts in a sintering oven. Training data includes green part quality represented by the green part quality vector and at least some of the physical characteristics (e.g., XYZ 3D shrinkage, sintered density (deviation from target) yield strength / tensile strength, erosion, and / or visual defect) of the sintered part after sintering, represented by another vector (the “sintered vector”). Other physical characteristics may include a width, a length, a height, a part mass, an envelope density, an erosion distance,volume, tensile strength, surface texture (e.g., roughness, smoothness, and particular textures), appearance (e.g., opacity, color, and gloss / sheen), conductivity, insulation properties, cross- sectional data (e.g., data obtained by scanning an interior of a part), defects, or any combination thereof. The sintered vector may be an encoded representation of the physical characteristics of the sintered part after printing. The sintered part may be measured manually by an operator and / or measured using various sensors (e.g., optic sensor; camera; scale) controlled by and at the direction of a computing device. An operator and / or a computing device may calculate, identify, and / or determine various physical characteristics of green parts and sintered parts.

[0029] During training, green part quality vectors are provided to prediction engine 108 until the output (i.e., the “sintered part quality vector”) aligns with the sintered vector. Prediction engine 108 may be trained by ingesting the green part quality vector and evaluating output against the sintered vector, which acts as the ground truth. In some aspects, prediction engine 108 ingests a plurality of green part quality vectors and ingests a plurality of sintered vectors representing measurements of sintered parts formed from at least a portion of the green parts. Prediction engine 108 outputs sintered part quality vector(s) that predict a quality of a physical characteristic (or a plurality of physical characteristics) of a potential sintered part or parts, yet to be formed by a sintering process. Prediction engine 108 may be trained for a predetermined, fixed quantity of vector-ingestion and prediction cycles, for example. Prediction engine 108 may be trained for a dynamic (not fixed) quantity of vector-ingestion and prediction cycles, in another example. In some aspects, prediction engine 108 is trained until the sintered part quality vector(s) approach the ground truth, which is indicative of completion of the model’s learning. In yet another example, prediction engine 108 may be trained for any quantity of vector-ingestion and prediction cycles to produce a prediction vector that meets or exceeds an accuracy threshold. Prediction engine 108 may be trained, for example, by ingesting green part quality vectors at least until a sintered part quality vector that is output by the prediction engine 108 relative to sintered vectors of sintered parts meets or exceeds an accuracy threshold. Prediction engine 108 may be trained until the output substantially aligns with a vector representation of at least some of the physical characteristics of the sintered part after printing.

[0030] In some examples, different machine-learning models may be used for predicted green part quality (e.g., prediction engine 212 of FIG. 2) and sintered part quality (e.g., sinter prediction engine 218 of FIG. 2). In some examples, prediction engine 108 may comprise a plurality of models, of the same, similar, or different types. Such a machine-learning modelmight utilize ensemble learning, wherein a plurality of models contribute to the learning process by, for example, voting.

[0031] In some examples, the nesting engine 106 and / or prediction engine 108 may be embodied on servers. In other configurations, the nesting engine 106 and / or prediction engine 108 may be implemented at least partially or entirely on a user device. The nesting engine 106 and / or prediction engine 108 (and its components) may be embodied as a set of compiled computer instructions or functions, program modules, computer software services, or an arrangement of processes carried out on one or more computer systems.

[0032] The device 100 may operate as part of and / or within the example system environment 200 shown in the diagram of FIG. 2. As such, the system environment 200 may include the nesting engine 106 and the prediction engine 108 of FIG. 1.

[0033] In some aspects, referring to FIG. 2, a part list 202 is provided to nesting engine 204. Nesting engine 204 determines an initial sequence and orientation for each part in the part list. In some examples, nesting engine 204 performs a genetic procedure that may include initializing a population, evaluation, selection, crossover, and / or mutation operations. In some examples, evaluation, selection, crossover, and / or mutation may be performed repeatedly (e.g., iteratively, recursively, etc.) until an end condition is met (e.g., the predicted green part quality of the build bed layout meets a threshold).

[0034] A chromosome is data and “n” represents the population size. For example, a chromosome may include data representing a potential solution for a question that the genetic procedure is to address. For instance, chromosomes may indicate packing positions. A packing position is a pose of an object in a build volume. A packing may include multiple packing positions corresponding to a plurality of objects. For instance, a chromosome may correspond to and / or may represent a packing. In some examples, a chromosome may include data indicating a set of object identifiers and poses. A part identifier is information (e.g., number, floating point number, integer, string, character(s), name, etc.) that identifies each part of the plurality of parts in the population. A pose is information indicating a location and / or orientation of a part. For instance, a pose may indicate a location (e.g., translation) of an object in a build volume and / or an orientation (e.g., rotation(s) in a dimension or dimensions) of an object in a build volume. In some examples, a pose may be expressed as a number or numbers (e.g., floating point numbers, integers, etc.), vector(s), matrix or matrices, quaternion(s), etc. In some examples, a chromosome may include a part identifier with a first axis rotation (e.g.,x), a second axis rotation (e.g., y), and a third axis rotation (e.g., z) for each of a set of parts (e.g., the plurality of parts).

[0035] In some examples, a chromosome may include data for each part in an order or sequence. In some examples, the order or sequence may indicate an order that parts may be introduced into a build volume. In some examples, the order or sequence may remain the same through some changes to the chromosome (e.g., in some types of mutations). In some examples, the order or sequence of a chromosome may be an order or sequence of part identifiers. For instance, the order or sequence of part identifiers of a chromosome may identify the chromosome. A chromosome identifier is a value (e.g., number, vector, list, set of numbers, ordered quantities, concatenated part identifiers, etc.) that identifies a chromosome. For example, a chromosome identifier may be the order or sequence (e.g., order or sequence of part identifiers). In some examples, a set of chromosomes may represent a set of potential packings described as a sequence of part identifiers.

[0036] A population is a group or set of chromosomes. Some approaches to initialize a population may treat initial part location and / or pose arbitrarily. For instance, some approaches may determine random initial part sequences. Initially, nesting engine 204 randomizes “n” chromosomes, where “n” represents the population size, to determine the initial order or sequence of parts with the initial orientations for the plurality of parts.

[0037] A packing or build bed layout of the plurality of parts may be determined using the initial order or sequence and a part placement procedure. In some examples, part placement procedure populates the packing space by placing parts starting in a corner and continuously moving along the X, Y, Z axis to densely populate the packing space. For example, part placement procedure may utilize a bottom left first approach to populate the packing space. Nesting engine 204 may perform an operation or operations of the genetic procedure based on the initial order or sequence (e.g., the initial chromosome population that is based on the initial order or sequence) and the part placement. For instance, the genetic procedure (e.g., evaluation, selection, crossover, and / or mutation) ma y b e e xe c u ted based on the chromosome or chromosomes (e.g., the initial chromosome population that is determined based on the initial order or sequence) and the initial placement.

[0038] In performing evaluation, the chromosomes may be evaluated and / or ranked according to a fitness measure. A fitness measure is a measure that indicates a degree to which a chromosome (e.g., packing or build bed layout) satisfies an objective or objectives (e.g., increased packing density, increased number of objects packed, decreased packing heightand / or z-axis measure, etc.). For example, the fitness measure may be evaluated for each chromosome (e.g., packing). Examples of fitness measures may include packing density, number of objects packed, and / or packing height (e.g., z-height). In some examples, the fitness measure may be utilized to rank or order chromosomes.

[0039] In some examples, the fitness measure may be a combination (e.g., a weighted sum) of components of a green part quality vector. For example, the contribution of each component of the green part quality vector may be based on a selected print mode (e.g., mechanical mode, surface finish mode, and / or a balanced mode). Various weights may be applied to each component of the green part quality vector (3 point bend test, XYZ dimensions, envelope density, surface finish) based on the selected print mode. In some examples, the fitness measure may be a combination (e.g., a weighted sum) of components of the sintered part quality vector. For example, the contribution of each component of the sintered part quality vector may also be based on the selected print mode. Various weights may be applied to each component of the sintered part quality vector (3 point bend test, XYZ dimensions, envelope density, surface finish) based on the selected print mode. The various weights applied to each component based on a selected print mode may be referred to as a green part quality matrix. In some examples, weight parameters for a mechanical mode are .5 for 3 point bend test, .2 for XYZ dimensions, .25 for envelope density, and .05 for surface finish. In some examples, weight parameters for a surface finish mode are .25 for 3 point bend test, .1 for XYZ dimensions, .1 for envelope density, and .55 for surface finish. In some examples, weight parameters for a balanced mode are .25 for 3 point bend test, .25 for XYZ dimensions, .25 for envelope density, and .25 for surface finish. Additionally or alternatively, weight parameters for a selected or custom print mode may be defined by a user.

[0040] In some examples, chromosomes with relatively greater weighted sum of a green part quality vector, relatively greater packing density, a relatively greater number of objects packed, and / or a relatively lesser packing height may be ranked higher than other chromosomes. In examples where more than one fitness measure is utilized to rank or order the chromosomes, the contribution of each fitness measure may be weighted according to the importance of each objective, which may be specified by a user.

[0041] In some examples, during evaluation, prediction engine 212 may receive, at each iteration of the genetic procedure, as input a chromosome that includes printer control parameters 206 and a build bed layout 208. Printer control parameters 206 and build bed layout 208 may be represented by a vector. Prediction engine 212 predicts the green part quality 216of a potential 3D printed part corresponding to the printer control parameters 206 and build bed layout 208. The green part quality may be represented by a green part quality vector. The green part quality vector may comprise a representation of the XYZ 3D shrinkage, part / envelope density, erosion, 3-point bend test, and / or a finer porosity representation vector. Prediction engine 212 predicts green part quality 216 for each part in the build bed layout. If the green part quality 216 does not meet a threshold, nesting feedback 220 is provided to nesting engine 204 to generate another iteration of the build bed layout (e.g., change the interpart distance or change at least a portion of the build bed layout). In some examples, other measures not meeting a threshold (e.g., packing density, number of objects packed, and / or packing height (e.g., z-height)) may cause nesting feedback 220 to be provided to nesting engine 204 and another iteration of the build bed layout to be generated.

[0042] Accordingly, nesting engine 204 may eliminate a portion of the chromosomes. For instance, nesting engine 204 may eliminate (e.g., discard, delete, remove, exclude, etc.) a portion of the lowest ranked chromosomes (e.g., chromosomes having a predicted green part quality that does not meet the threshold). In some examples, the chromosomes may be categorized based on rank. For example, a first portion (e.g., percentage of chromosomes, number of chromosomes, etc.) of the chromosomes may be categorized in a first category. For instance, the first portion may be a set of highest ranked chromosomes. The first portion of chromosomes may be referred to as elite chromosomes (e.g., a portion of chromosomes with best fitness measures). In some examples, a gene or genes (e.g., part identifier(s) and / or pose(s)) of the elite chromosomes may be preserved and / or propagated to a subsequent (e.g., next) generation of chromosomes. A generation is a set of chromosomes (e.g., packings). For example, a generation may correspond to each iteration of the genetic procedure.

[0043] In performing crossover, nesting engine 204 may utilize a second portion of chromosomes and elite chromosomes. The second portion of the chromosomes may he referred to as crossover chromosomes. The second portion of chromosomes may be ranked below the elite chromosomes. For instance, nesting engine 204 may randomly select chromosomes that are ranked below the elite chromosomes to select the crossover chromosomes. Nesting engine 204 may crossover the crossover chromosomes with the elite chromosomes. For example, nesting engine 204 may combine a portion or portions (e.g., gene(s), object identifier(s), pose(s), location(s), rotation(s), and / or sequence position(s)) of an elite chromosome with a portion or portions (e.g., gene(s), object identifier(s), pose(s), location(s), rotation(s), and / orsequence position(s)) of a crossover chromosome to generate a child chromosome in a subsequent (e.g., next) generation of chromosomes.

[0044] In performing mutation, nesting engine 204 may randomly mutate an elite chromosome or elite chromosomes. For example, nesting engine 204 may randomly change a gene or genes (e.g., part identifier(s), pose(s), location(s), rotation(s), orientation(s), and / or sequence position(s)) of an elite chromosome or elite chromosomes. The chromosomes to be mutated may be referred to as mutation chromosomes.

[0045] In some examples, a mutation may be performed in the genetic procedure based on an initial orientation of the initial orientations. For instance, nesting engine 204 may apply a mutation to an orientation of a part that is based on an initial orientation. In some examples, performing the mutation may include performing a rotation of an initial orientation. For instance, nesting engine 204 may apply a rotation (e.g., random rotation) to an orientation of a part in a chromosome that is based on an initial orientation. In some examples, the rotation may be a multiple of 90 degrees on an axis or axes (e.g., x, y, and / or z).

[0046] In some examples, determining the packing or build bed layout may include selecting a packing corresponding to a chromosome. For instance, nesting engine 204 may include selecting a build bed layout based on the chromosomes (e.g., chromosomes after a generation or generations). In some examples, selecting the build bed layout is based on the genetic procedure with an objective to select a chromosome having a predicted green part quality 216 that meets a threshold, to increase packing density, and / or to reduce packing height. For instance, nesting engine 204 may select a chromosome that represents a packing with a highest ranking and / or best fitness measure. In some examples, nesting engine 204 may select the packing based on an objective (e.g., predicted green part quality, predicted sintered part quality, packing density, packing height, etc.) or a combination of objectives. For instance, a packing with a best combination of objectives, such as packing density and predicted green part quality 216, may be selected. In some examples, prediction engine 218 generates a sintered part quality vector 222 that confirms (i.e., good) the predicted green part quality 216 or indicates that it is not acceptable (i.e., bad). The sintered part quality vector 222 may include X, Y, Z 3D shrinkage, sintered density (deviation from target), yield strength / tensile strength, erosion, and / or visual defect.

[0047] In some examples, the packing may be executed to manufacture the parts. For example, the objects may be manufactured by an apparatus (e.g., 3D printer) in accordance with the recommended green part layout and / or the acceptable part layout. For instance, anapparatus may send the packing to another device (e.g., 3D printer) or may execute the packing to manufacture the objects in the packing. It should be noted that some examples of the techniques described herein may be utilized in a variety of additive manufacturing. Some additive manufacturing techniques may be powder-based and driven by powder fusion. Some additive manufacturing techniques may include metal printing, such as metal jet fusion. Some examples of the approaches described herein may be utilized in powder bed fusion-based additive manufacturing, such as Selective Laser Melting (SLM), Selective Laser Sintering (SLS), etc.

[0048] In some examples, referring now to FIG. 3, nesting engine initially generates a build bed layout, at step 302. Prediction engine predicts, at step 304, the green part quality. In some example, prediction engine receives as input, in addition to the build bed layout, a green part quality weight matrix. For example, each component of the green part quality vector may be weighted based on a selected print mode and the weight parameters of the green part quality weight matrix. In some examples, the weight parameters of the green part weight matrix is predefined. In other examples, the weight parameters of the green part weight matrix can be edited or defined by a user. Prediction engine may predict the green part quality based on a combination (e.g., a weighted sum) of components of the green part quality vector. If the green part quality does not meet the specifications (based on the green part quality vector), at step 308, another iteration of the genetic procedure generates, at step 302, a new build bed layout and the process is repeated. If the green part quality meets the specifications (based on the green part quality vector), at step 308, the nesting engine generates, at step 310, a layout of green parts for sintering.

[0049] The prediction engine predicts, at step 312, the sintered part quality. In some example, prediction engine receives as input, in addition to the layout of green parts for sintering, oven parameters. For example, the prediction engine may predict the sintered part quality based on the layout of green parts and the oven parameters. If the sintered part quality does not meet the specifications (based on the sintered part quality vector), at step 316, the oven parameters are tweaked, at step 318. The nesting engine generates a new layout of green parts for sintering, at step 310, and the process is repeated. If the sintered part quality meets the specifications (based on the sintered part quality vector), at step 316, a build is selected (e.g., for saving or providing to the user).

[0050] FIG. 4 is a flow diagram showing an example method 400 for providing a recommended part layout, in accordance with an aspect of the technology described herein.The method 400 may be performed, for instance, by the example device of FIG. 1 or the example system of FIG. 2. As shown at block 410, a build bed layout is initially generated. In some examples, the build bed layout may be generated by a nesting engine (such as nesting engine 106 of FIG. 1). In some examples, the nesting engine generates the build bed layout utilizing a genetic procedure.

[0051] A green part quality vector is determined for a part of the build bed layout, at step 420. In some examples, the green part quality vector is determined by a prediction engine (such as prediction engine 108 of FIG. 1). In some examples, the green part quality vector may be based on printer control parameters and the build bed layout. In some examples, the green part quality vector for each part of the build bed layout may be further based on a selected print mode, a selected part quality, or a combination thereof. In some examples, the nesting engine generates a new build bed layout when the green part quality vector for each part does not meet a first threshold. For example, the nesting engine may generate the new build bed layout by: using a genetic procedure to preserve or propagate a position of each part within the build bed layout having the green part quality vector that meets the first threshold to the next iteration of the build bed layout; and using a genetic procedure to mutate or crossover the position of each part within the build bed layout having the green part quality vector that does not meet the first threshold.

[0052] At step 430, a recommended part layout is provided. In some examples, the recommended part layout may be based on the green part quality vector for each part of the build bed layout meeting a first threshold. In some examples, the nesting engine may generate a layout of green parts within a sintering oven based on a policy set for the sintering oven. For example, the nesting engine may implement heuristics on the genetic operators (e.g., crossover / mutation and to the selection of individuals). For example, the nesting engine could apply rules including: 1) place small parts in front of large parts since the flow of the air is from front to back; 2) if the green part layout is not tracked in the sintering oven, then all parts in a tray should come from the same bucket; 3) parts requiring less variation are placed closer to the center while parts that require higher strength can be assigned closer to the top and bottom trays; 4) certain areas of the sintering layout is prepositioned with certain parts (dead weights) or are left empty for late requests. A sinter prediction engine (such as prediction engine 108 of FIG. 1) may determine a sintered part quality vector for each part of the layout of green parts meets a second threshold. Accordingly, the layout of green parts may be confirmed to be an acceptable part layout.

[0053] In some examples, a sinter prediction engine (such as prediction engine 108 of FIG. 1) may determine a sintered part quality vector for each part of the layout of green parts does not meeting a second threshold. In some examples, oven parameters may be altered and the sintered part quality vector is re-determined for each part of the layout of green parts using the altered oven parameters. In some examples, the nesting engine alters the position of each part within the layout of green parts having the sintered part quality vector that does not meet the second threshold and the sintered part quality vector is re-determined for each part of the layout of green parts. In some examples, oven parameters are initially altered and, if the sintered part quality vector for each part of the layout of green parts still does not meet the second threshold, the nesting engine alters the position of each part within the layout of green parts having the sintered part quality vector that does not meet the second threshold.

[0054] FIG. 5 a flow diagram showing an example method 500 for utilizing a green part quality vector to optimize a part layout, in accordance with an aspect of the technology described herein. The method 500 may be performed, for instance, by the example device of FIG. 1 or the example system of FIG. 2. As shown at block 510, a green part quality vector for each part of a build bed layout is determined relative to a first threshold. The green part quality vector may be determined by a prediction engine (such as prediction engine 108 of FIG. 1).

[0055] At block 520, a position of each part within the build bed layout having the green part quality vector that meets the first threshold is maintained. For example, the position of each part within the build bed layout having a green part quality vector that meets the first threshold may be maintained while genetic engine (such as genetic engine 106 of FIG. 1) performs a genetic procedure on each part within the build bed layout having a green part quality vector that does not meet the first threshold.

[0056] At block 530, the position of each part within the build bed layout having the green part quality vector that does not meet the first threshold is altered until each part within the build bed layout meets the first threshold. For example, the position of each part within the build bed layout having a green part quality vector that does not meet the first threshold may be altered using genetic engine (such as genetic engine 106 of FIG. 1) to perform a genetic procedure.

[0057] In some examples, a layout of green parts within a sintering oven based on the build bed layout may be generated. For example the layout of green parts may be generated by a nesting engine (such as nesting engine 106 of FIG. 1). In some examples, upon a sintered part quality vector for each part of the sintering green part layout meeting a second threshold,the layout of green parts may be confirmed to be an acceptable layout. Accordingly, parts of the build bed layout may be printed.

[0058] In some examples, upon a sintered part quality vector for each part of the layout of green parts not meeting a second threshold, oven parameters may be altered or a nesting engine may be caused to alter the position of each part within the layout of green parts having the sintered part quality vector that does not meet the second threshold.

[0059] FIG. 6 is a flow diagram showing an example method 600 for utilizing a genetic procedure and a green part quality vector to optimize a part layout, in accordance with an aspect of the technology described herein. The method 600 may be performed, for instance, by the example device of FIG. 1 or the example system of FIG. 2. As shown at block 610, a genetic procedure is utilized to generate a build bed layout. For example, the genetic procedure may be performed by a genetic engine (such as nesting engine 106 of FIG. 1) to generate the build bed layout. The build bed layout is optimized, at step 620, based on a weighted sum of components of a green part quality vector for each part of the build bed layout. For example, the genetic procedure is performed until the green part quality vector for each part of the build bed layout meets a threshold.

[0060] While various examples of techniques are described herein, the techniques are not limited to the examples. Variations of the examples described herein may be implemented within the scope of the disclosure. For example, operations, functions, aspects, or elements of the examples described herein may be omitted or combined.

Claims

CLAIMSWhat is claimed is:

1. An apparatus comprising: a nesting engine to generate a build bed layout; a prediction engine that determines a green part quality vector for a part of the build bed layout; and an output component that provides, based on the green part quality vector for the part meeting a first threshold, a recommended part layout.

2. The apparatus of claim 1, wherein the green part quality vector is based on printer control parameters and a part layout corresponding to the build bed layout.

3. The apparatus of claim 1, wherein the green part quality vector for each part of the build bed layout is further based on a selected print mode, a selected part quality, or a combination thereof.

4. The apparatus of claim 1, wherein the nesting engine generates the build bed layout utilizing a genetic procedure.

5. The apparatus of claim 1, wherein the nesting engine generates a new build bed layout when the green part quality vector for each part does not meet a first threshold.

6. The apparatus of claim 1, wherein the nesting engine generates the new build bed layout by: using a genetic procedure to preserve or propagate a position of each part within the build bed layout having the green part quality vector that meets the first threshold; and using the genetic procedure to mutate or crossover the position of each part within the build bed layout having the green part quality vector that does not meet the first threshold.

7. The apparatus of claim 1, further comprising the nesting engine generating a layout of green parts within a sintering oven based on the recommended part layout.

8. The apparatus of claim 7, further comprising a sinter prediction engine that: determines a sintered part quality vector for each part of the layout of green parts; and upon the sintered part quality vector for each part meeting a second threshold, confirms the layout of green parts is an acceptable part layout.

9. The apparatus of claim 7, further comprising a sinter prediction engine that: determines a sintered part quality vector for each part of the layout of green parts; and upon the sintered part quality vector for each part not meeting a second threshold, alters oven parameters or causes the nesting engine to alter the position of each part within the layout of green parts having the sintered part quality vector that does not meet the second threshold.

10. A method comprising: generating a build bed layout; determining a green part quality vector for each part of the build bed layout relative to a first threshold; using a genetic procedure to preserve or propagate a position of each part within the build bed layout having the green part quality vector that meets the first threshold; and using the genetic procedure to mutate or crossover the position of each part within the build bed layout having the green part quality vector that does not meet the first threshold.

11. The method of claim 10, further comprising generating a layout of green parts within a sintering oven based on the build bed layout.

12. The method of claim 11 , further comprising, upon a sintered part quality vector for each part of the layout of green parts meeting a second threshold, confirming the layout of green parts is an acceptable layout.

13. The method of claim 12, further comprising printing parts of the build bed layout.

14. The method of claim 12, further comprising, upon a sintered part quality vector for each part of the layout of green parts not meeting a second threshold, altering oven parameters or causing the nesting engine to alter the position of each part within the layout of green parts having the sintered part quality vector that does not meet the second threshold.

15. Non-transitory computer storage media storing computer-readable instructions that when executed by a processor, cause the processor to perform operations, the operations comprising: utilizing a genetic procedure to generate a build bed layout; and providing the build bed layout based on a combination of a green part quality vector for each part of the build bed layout.