Patent Publication Number: US-11376793-B2

Title: Printing production quality prediction

Description:
BACKGROUND 
     Printing service providers often maintain numerous machines performing a variety of tasks involved in the printing production. These machines may include, for example, printers, cutting machines, sandblasters, hole drillers, tumblers, painters, and so forth. In some cases, to fulfill demand, the companies may maintain multiple identical machines, or several machines that perform the same or similar tasks. Multiple machines may allow the printing company to increase overall throughput, to handle different types of jobs, to account for throughput differences between different types of machines, and so forth. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       Certain examples are described in the following detailed description and in reference to the drawings, in which: 
         FIG. 1  is an illustration of a plurality of parts according to one example; 
         FIG. 2  is an illustration of an image of input capture according to one example; 
         FIG. 3  is a multilayer perceptron with a dog bone according to one example; 
         FIG. 4  is a graph illustrating receiver operating characteristic (ROC) curves  400  for multilayer perceptron (MLPC), random forest, and support vector machine (SVM) machine learning functions according to one example; 
         FIG. 5A  is a process flow diagram illustrating a method to achieve a robust model that can accurately identify an output based on one or more inputs according to one example; 
         FIG. 5B  is a process flow diagram illustrating a method for predicting printing production quality according to one example; 
         FIG. 6  is a process flow diagram of a method that enables three dimensional printing production quality prediction according to one example; 
         FIG. 7  is a block diagram of a system to predict print production quality according to one example; and 
         FIG. 8  is a block diagram of a medium containing code to execute three-dimensional printing production quality prediction in accordance with examples of the present techniques. 
     
    
    
     DETAILED DESCRIPTION 
     Techniques for printing production quality prediction are described herein. In examples, a print service provider may maintain a manufacturing facility including manufacturing equipment and facilities that are adapted for mass production. The equipment may include three dimensional (3D) printers. In examples, 3D printing is realized by building and modifying materials in a “layer-by-layer” fashion, as the final product may include an amalgamation of individual layers that have been “stitched” together at a molecular level via the introduction of thermal, radiative, and/or ionized beam energy. The thermal and radiative energy may be provided by a lamp assembly. The 3D printer may include an inkjet-type print head pen with a plurality of nozzles that selectively apply printing agents to the various layers of material. The lamp assembly enables fusion of the layers by melting the material. The present techniques are used to predict if the final part or product will meet a quality specification prior to completion of the final part or product. The prediction can be used to derive an accurate pre-print and post-print workflow that eliminates idle time for various equipment and facilities used in the pre-print and post-print workflow. This prediction can also be used to obtain the number of parts from a print job that will be reworked. 
     In the situation where the rework of parts that do not meet a quality specification is required, the rework can reduce an overall throughout and productivity of the manufacturing facility. For example, consider a case where two print jobs are scheduled in the manufacturing facility. Print job A will produce a plurality of parts A, and print job B will produce a plurality of parts B. Further consider that the plurality of parts A requires the application of a post-print workflow that includes sandblasting then painting, while the plurality of parts B requires the application of a post-print workflow that includes only sandblasting. In such a scenario, when the plurality of parts A is printed, the plurality of parts A can proceed to sandblasting then painting while the plurality of parts B is printed. In particular, equipment scheduling in the manufacturing facility may dictate that the plurality of parts A is painted while the plurality of parts B is sandblasted, leaving the printer available for other scheduled print jobs. 
     However, in the case where a number of parts from the plurality of parts A are to be reworked due to not meeting a quality specification, each of the sandblasting and painting equipment may sit idle until enough of the plurality of parts A are completed to begin the post-print workflow. Further, the rework of a portion of the plurality of parts A can cause delays for the plurality of parts B by creating a bottleneck at the sandblasting equipment, as both the plurality of parts A and the plurality of parts B require sandblasting. Additionally, the rework of a portion of the plurality of parts A can result in idle time at the painting equipment. As a result, the overall non-productive time of the manufacturing equipment can be substantially high. Accordingly, if a large number of printed products are to be manufactured using the same equipment, various factors, such as setup times, processing times, and process flows, for each product, may come into play and may hamper the overall productivity of the manufacturing equipment that can be exacerbated when rework of parts is required. 
     As described herein, print jobs may include pre-print workflows such as set-up of machines, heating of equipment and various materials. A pre-print workflow can be described as the manufacturing activities that occur prior to printing. Print jobs may also include printing and post-print workflows such as rasterizers, cutting machines, folders, binders, hole drillers, sandblasters, painters, tumblers, and the like. A post-print workflow can be described as the manufacturing activities that occur after printing. The print jobs may be scheduled based on different factors, such as materials needed, projected print time, equipment used, part specifications, part dimensions, or any combination thereof associated with the finished parts or products. The queuing of print jobs in a schedule may be complicated because of the various stages of production involved in the manufacturing of the product. Consequently, scheduling techniques are often ineffective in view of necessary rework that can change a schedule, create bottlenecks, and leave various equipment idle. 
     The techniques described herein are directed to providing printing production quality prediction. Three dimensional (3D) printers, such as those used in additive manufacturing, are used to print a plurality of parts in a layer-by-layer fashion. A print job may include thousands of layers, and in some cases can take an entire day to complete. After the pre-print workflow and printing, a post-print workflow is used to complete each part, and should only be applied to parts that satisfy a quality specification. The quality specification may be outlined in a service level agreement. In the event that a part fails to satisfy the quality specification, the failed parts should be reworked. Reworking failed parts can lead to various delays in manufacturing, and can cause several manufacturing components to be idle as the failed parts are reworked. To maintain efficient pre-printing, printing, and post-printing workflows, parts likely to fail may be predicted in order to efficiently account for the rework of the failed parts. As a plurality of parts are printed, a region of interest for each layer of the plurality of parts is scanned to obtain an input for each region of interest. An input metric associated with each layer is computed. Finally, a likelihood of each part to satisfy a quality specification is determined via a trained machine learning function. 
       FIG. 1  is an illustration of a plurality of parts  100 . The plurality of parts  100  may be created during a 3D print job. In some cases, the plurality of parts  100  may be referred to as a batch. For exemplary purposes, in  FIG. 1  the plurality of parts is illustrated as a plurality of dog bones. However, the present techniques should not be limited to dog bones, and can be used with any printed products. As illustrated, the print job created three rows  106 ,  108 , and  110  of dog bones. The print job also created eight columns  102 A,  104 A,  1028 ,  1048 ,  102 C,  104 C,  102 D, and  104 D of dog bones. As illustrated, each dog bone is printed such that it is turned ninety degrees with respect to adjacent dog bones. 
     Many model shops and print service providers build the same batch of parts over and over again. For such batches, physical characteristics of the printed part can be predicted while the parts are in a build bucket during printing. The post-print workflow is then reserved for parts which have high likelihood of meeting quality standards. In this manner, an accurate number of satisfactory parts may be predicted, and this information can be used to schedule printing, as well as pre-print and post print workflows. Destructive testing of parts is not desirable due to the manual effort and the time needed to test each part. For example, it can take two hours for a 3D printer to warm up, eight hours to print a thousand layer job, then eight to twenty-four hours to cool the printed bucket and up to twenty-four hours to destructively test parts in the bucket. Even if each step of the workflow is automated, it is expensive to rework a batch if the parts do not meet the required quality specification, thereby increasing per unit cost of the part. 
     Consider the multiple layer build of dog bones as shown in  FIG. 1 . Each layer of dog bones is referred to as a row so as not to confuse each row with the layer by layer process of printing a part. In the example of  FIG. 1 , each dog bone is built vertically. Regions of interest in  FIG. 1  may be defined as a cross section area of each part in the XY plane, where a desired application of the part will face stress along the neck (in Z direction). The part may be likely to fail in a region (spanning multiple layers) where the layer to layer bonding is not strong. Generally, a printed part can have one or more regions of interest. Further, a region of interest can be generally described as regions of the part where failure to meet a quality specification is likely. In some cases, a region of interest is defined as an area noted to fail in previous printing of the same parts. Additionally, in examples, an input may be defined that is used to predict the likelihood of part failure. The input may be a measurement, value, or combination of measurements and values that can be obtained during the printing process. For example, the input may be a temperature, layer thickness, temperature from previously laid blank layers, particular powder characteristics from a powder used during printing, firmware parameters such as lamp power pulse width modulation (PWM), roller temperature, cooling experienced by the part during and after printing, etc. The input may also be any combination of values that can be used to predict a likelihood of part failure. 
       FIG. 2  is an illustration of an image  200  of input capture. In  FIG. 2 , note that the image  200  includes a capture of a region of interest  202  for a first printed part and a region of interest  204  for a second printed part. The layout of the regions of interest in image  200  may correspond to the printed dog bones of  FIG. 1 . 
     In examples, a region of interest is scanned as each part is printed to obtain an input for each region of interest. Images, sensors, and other measurement techniques may be used to capture the input during a scan. For example, consider a print job with temperature as the input. Images from a high resolution thermal camera may be captured during the printing of the dog bones to obtain the image  200 . In examples, the images may be 640*480 pixels in size. A low resolution thermal camera can also be used to capture the images, provided the regions of interest are up scaled accordingly. For example, a low resolution thermal camera may capture a larger number of pixels such that the number of pixels captured for each part can be used to derive the input value, which is a temperature value in this example. In some cases, a lower resolution thermal image can be up scaled to higher resolution thermal images. Images as well as sensors and other measurement techniques can also be used to capture inputs such as a color of the part, thickness of the layers as deposited, surface roughness, surface texture, dimensional accuracy, and other characteristics of the part that may be used to determine the quality of the finished part. 
     Selected regions of the parts may be designated regions of interest based on the input and its contribution to the desired output. These regions can be captured by an input capture mechanism. For example, in the case of the dog bones, selected regions of the dog bones are annotated for their contribution to mechanical strength.  FIG. 2  illustrates dog bones with their associated regions of interest captured during printing. For each layer, an aggregate input metric can be calculated. In the example of the dog bones with temperature as an input, the input metric is a temperature metric that is associated with that layer. For example, the temperature metric may be a mean temperature of the pixels captured by each region of interest at a particular layer. 
     Consider a 3D printer with temperature as the input. Further consider a printer that follows a four pass per layer print mode. Accordingly, for each layer there are four pass temperatures as inputs, one for each pass. Additionally, for each pass, multiple frames may be captured so that in-process cooling can be determined and fed to the machine learning functions. The input temperature of the region of interest for each layer and, optionally, the associated firmware parameters then becomes a final input to a machine learning function such as a multilayer perceptron illustrated in  FIG. 3 . Further inputs may also include the orientation, layer (position in the build bucket resulting from stacking multiple parts in a build), or numbering for each part to the inputs. 
       FIG. 3  is a multilayer perceptron  300  with a dog bone  302 . The dog bone has layers  304 ,  306 ,  308 , and  310 . Each of the layers  304 ,  306 ,  308 , and  310  of the dog bone  302  are associated with inputs  312  of the multilayer perceptron  300 . The multilayer perceptron is trained to derive outputs  314  based on the inputs  312 . In an initial set of print jobs, some of the parts from the initial print jobs are mechanically tested to determine at least one true output of a machine learning function. For the initial few builds, at least a portion of parts are destructively tested to obtain outputs. In some cases, the outputs may be a ground truth associated with a training set of parts. The outputs are labels of the multilayer perceptron. When enough of these parts have been mechanically tested, the process of prediction of mechanical strength can the automated without breaking the parts. 
       FIG. 4  is a graph illustrating receiver operating characteristic (ROC) curves  400  for multilayer perceptron (MLPC), random forest, and support vector machine (SVM) machine learning functions. In  FIG. 4 , the x-axis  402  represents a false positive rate, and the y-axis represents a true positive rate. Curve  406  corresponds to the multilayer perceptron function. Curve  408  corresponds to the SVM function. Curve  410  corresponds to the random forest function. 
     A number of machine learning functions are then tested on the input and output to learn the target function.  FIG. 4  illustrates the receiver operating characteristic (ROC) curves for the multilayer perceptron, random forest and support vector machine functions. In the case where a function is a poor learner, such that the ROC scores are more than 0.5 but less than 0.7, the majority vote provides a buffer against a false positive result. While a plurality of machine learning functions are illustrated, a single machine learning function may be used. In the example of  FIG. 4 , each machine learning function may provide different information regarding the output based on the input. In the case where a number of inputs are available, deep learning neural networks may be used. The machine learning functions may also be adapted to various changes in the inputs by adjusting the learned weights or biases that have been established via the target function. For example, machine learning models can be adapted to a different powder used in printing by adjusting the learned weights or biases (in a MPLC) or changing decision points (decision tree/random forest) based on powder characteristics. 
       FIG. 5A  is a process flow diagram illustrating a method  500 A to achieve a robust model that can accurately identify an output based on one or more inputs. In an example, the method  500 A may be used to identify the output mechanical strength from input process, thermal data. Process flow begins at the start  502 . At block  504 A, a new build is obtained. At block  506  it is determined if this is the last layer of the print job, process flow continues to block  510 . If this is not the later layer of the print job, process flow continues to block  508 . At block  508 , another layer is built. Process flow the returns to block  506 . Additionally, the input data associated with the current layer is stored. In the example of temperature as the input, thermal data is stored for each layer printed at block  512 . Process/firmware data is also stored at block  514 . Process/firmware data includes but is not limited to PWMs for warming and fusing lamps, speed of print, layer thickness, platen drop, fusing carriage, roller temperature, bed control temperature, preheat plate temperature, platen temperature, humidity percentage, airflow, etc. In general process/firmware data may be described as data specific to the particular printing technology used, such as Multi-Jet Fusion (MJF), Stereolithography (SLA), Digital Light Processing (DLP), Fused deposition modeling (FDM), Selective Laser Sintering (SLS), Selective laser melting (SLM), Electronic Beam Melting (EBM), and Laminated object manufacturing (LOM). 
     At block  510 , the output may be determined via destructive testing. In the example of temperature as an input and mechanical strength as an output, the mechanical strength of a portion of the plurality of parts may be determined via destructive testing. The output results may be stored at block  516 . At block  518 , a predictor is run. In examples, the predictor is at least one machine learning function used to obtain the output based on the input. Thus, the predictor is an instance or multiple instances of machine learning functions predicting a mechanical strength outcome. The functions are in training and are tested on a new build. When the current build has been evaluated, it may become a part of the training set. Note that a single build cannot be used for both training and testing builds at the same time. 
     At block  520 , it is determined if the area under the ROC curve for each machine learning function is more than 85%. If the area under the ROC curve is more than 85% for a majority of machine learning functions, process flow continues to block  524 . If the area under the ROC curve is not more than 85%, process flow continues to block  522 . At block  522 , machine learning on the current build stops, and the process flow waits for the next build. 
     At block  524 , it is determined if the area under the ROC curve is reproducible for three or more builds. In this manner, the machine learning function is confirmed to be correct for at least three builds of the current part. If the area under the ROC curve is not reproducible for three or more builds, process flow continues to block  522  where process flow waits for the next build. If the area under the ROC curve is reproducible for three or more builds, process flow continues to block  526 . At block  526 , an operator is informed that further mechanical testing is not needed. At this point, mechanical testing has shown that the machine learning function converges on the correct solution. The machine learning function can be trusted, and process flow continues to block A at reference number  532 . 
       FIG. 5B  is a process flow diagram illustrating a method  500 B for predicting printing production quality. The method  500 B begins at block A at reference number  532  with at least one trained machine learning function, such as the machine learning function derived by the method  500 A. At block  504 B, a new batch to be built in a production print job is initiated. At block  534 , the probability of each part in the new batch or print job to meet a quality specification based on process parameters and part position is predicted. In examples, the threshold for prediction is a probability score of more than 91% for a majority of machine learning functions. At block  536 , the parts predicted to fail at block  534  are removed and the remaining parts in the batch are rearranged until a fixed point is obtained. In some examples, the batch is not built at all. During a print job, the removal from a batch is the most extreme step for a part predicted to fail. In some cases, an identifier may be applied to the part to designate it as a failing part. An identifier may be any characteristic applied to a printed part that is different from the parts that are predicted to satisfy the quality specification. For example, the parts may be colored differently while in other cases they may be used as a sacrificial part to keep the thermal mass. In another case the part predicted to fail may be encased in a mesh for easy extraction (post-print). In yet another, case the part predicted to fail may have a different texture on the surface to easily identify failed parts. 
     At block  538 , printing of the new batch begins with the first layer to be printed. For each layer during printing, the input is monitored for each part to determine a likelihood of the part not meeting the quality specification. Accordingly, at block  540  it is determined if there are more layers to print. If there are more layers to print, process flow continues to block  544 . If there are no more layers to print, process flow continues to block  542 . 
     At block  544 , the next layer is built. For each layer, at block  546 , the probability that the input meets the quality specification is predicted based on the input images collected for each layer. In the example of temperature as an input and mechanical strength as an output, the mechanical strength for each part may be predicted based on thermal images collected and firmware parameters. Accordingly, at block  550 , during printing, for each layer, the input image is obtained. In the example of temperature as an input and mechanical strength as an output, at block  550  a thermal image is captured for each layer during printing. In examples, the predicted mechanical strength based on the thermal data and the process parameters is discounted by the number of layers not yet printed. In this manner, as more layers are printed, there is more confidence in the probability scores. 
     For each layer during printing, input data at block  552 , process/firmware data at block  554 , and past output data at block  556  may be stored. This information can be used at block  546  to predict the likelihood that each part will meet the applicable quality specification. At block  548 , parts which are identified as likely to fail to meet the quality specifications are not built anymore. At block  542 , once the batch has finished printing, a post-print workflow can optimized to take into account the parts which need to be built again or require special handling (automated filtering by a robotic arm). The schedule can be further optimized to meet the SLAs associated at the factory level. 
       FIG. 6  is a process flow diagram of a method  600  that enables three dimensional printing production quality prediction. At block  602 , a region of interest is scanned to obtain input parameters. At block  604 , a metric associated with each layer is computed. At block  606 , in response to an initial set of print jobs, at least a portion of a plurality of parts is mechanically tested to determine at least one output. At block  608 , in response to a production print job, a likelihood of each part of the plurality of parts to satisfy a quality specification is predicted by inputting each input to at least one machine learning function that is trained during the initial set of print jobs. 
       FIG. 7  is a block diagram of a system  700  to predict print production quality. The system  700  processor may include a computing device  702 , a processor  704 , a memory  706  with code  708 , and a predictor  710 . The predictor  710  may include one or more trained machine learning functions obtained from the machine learning block  714 , where the functions are trained using inputs obtained from the input capture mechanism  712 . The input capture mechanism may be able to obtain thermal data, dimension such as thickness, width, and depth of each layer. The input capture mechanism may also be used to obtain other inputs such as color, surface roughness, and the like. 
     The computing device  702  may include memory  706  that stores instructions executable by a processor  704 . The processor  704  may be more than one processor, and each processor may have more than one core. The processor  704  may be a single core processor, a multi-core processor, a computing cluster, or other configurations. The processor  704  may be a central processing unit (CPU), a microprocessor, a processor emulated on programmable hardware (e.g. FPGA), or other type of hardware processor. The processor  704  may be implemented as a Complex Instruction Set Computer (CISC) processor, a Reduced Instruction Set Computer (RISC) processor, an x86 Instruction set compatible processor, or other microprocessor or processor. 
     The memory  706  may be non-volatile memory and/or volatile memory. The non-volatile memory may include hard drive(s), solid state drive(s), read-only memory (ROM) (e.g., Mask ROM, PROM, EPROM, EEPROM, etc.), flash memory, and so forth. The volatile memory may include cache, random access memory (RAM) (e.g., SRAM, DRAM, zero capacitor RAM, SONOS, eDRAM, EDO RAM, DDR RAM, RRAM, PRAM, etc.), and other volatile memory. Other memory systems may be employed. The memory  706  can be used to store data and code  708 , such as instructions, logic, etc. that, when executed by the processor  704 , direct the processor  704  to perform various operations in accordance with examples described herein. 
     Computing device  702  may also include predictor  710 . The predictor  710  may be used to predict the likelihood of each part to meet a quality specification as described above. The computing device  702  may transmit the prediction and any other data to a display  718 , post print equipment  720 , and a printer  716 . Each of the display  718 , post print equipment  720 , and printer  716  can use the prediction to further refine their respective processes. 
     The block diagram of  FIG. 7  is not intended to indicate that the system  700  is to include all of the components shown in  FIG. 7 . Rather, the system  700  can include fewer or additional components not shown in  FIG. 7 , depending on the details of the specific implementation. The system  700  may include both local and remote implementations. Furthermore, any of the functionalities of the processor  704  may be partially, or entirely, implemented in hardware and/or a processor. For example, the functionality may be implemented in any combination of Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), logic circuits, and the like. In addition, examples of the present techniques can generally be implemented in electronic devices, including ultra-compact form factor devices, such as System-On-a-Chip (SOC), multi-chip modules, and other electronic devices. 
       FIG. 8  is a block diagram of a medium  800  containing code to execute three dimensional printing production quality prediction. The medium  800  may be a non-transitory computer-readable medium that stores code that can be accessed by a processor  802  via a bus  804 . For example, the computer-readable medium  800  can be a volatile or non-volatile data storage device. The medium  800  can also be a logic unit, such as an ASIC, an FPGA, or an arrangement of logic gates implemented in one or more integrated circuits, for example. 
     The medium  800  may include modules  806 - 812  configured to perform the techniques described herein. For example, a scanning module  806  may be configured to scan a region of interest to obtain input parameters. A metric module  808  may be configured to compute a metric associated with each layer. A training module  810  may be configured to obtain data from mechanically testing at least a portion of a plurality of parts to determine at least one output in response to an initial set of print jobs. The at least one output may be used to train at least one machine learning function. A prediction module  812  may be configured to predict a likelihood of each part of the plurality of parts to satisfy a quality specification by inputting each input to at least one machine learning function that is trained during the initial set of print jobs in response to a production print job. 
     The block diagram of  FIG. 8  is not intended to indicate that the medium  800  is to include all of the components shown in  FIG. 8 . Further, the medium  800  may include any number of additional components not shown in  FIG. 8 , depending on the details of the specific implementation. 
     The present techniques enable pre-print rework prediction, where the prediction occurs before the build has even started. If the likelihood of a part to meet a quality specification is very low, the part is removed from the build, effectively becoming a tool to influence a finer-grained keep-out zone. Additionally, in-build rework prediction includes providing a statistical assessment for the part to not meet quality. If the probability is low, the build of the part is stopped. This feature can influence the need for downstream testing of this part, and type of tools (e.g., CMM or scanning) thus optimize post-print workload. Finally, the present techniques enable production throughput optimization. In particular, the re-work flow over the entire factory floor is assessed, statistically, including the type of parts, overall volume needs to be preserved for re-work, urgency (SLA) associated with these volumes. This will guide optimization of production throughput. 
     In summary, an example may include a system for providing three dimensional printing production quality prediction. The system may include logic to scan a region of interest associated with a layer of a plurality of parts during printing to obtain an input for the region of interest and compute an input metric associated with the layer based on the input. In response to an initial set of print jobs, at least a portion of the plurality of parts is mechanically tested to determine at least one output. In response to a production print job, a likelihood of a part of the plurality of parts to satisfy a quality specification is predicted by inputting the input metric to at least one machine learning function comprising the at least one output, wherein the at least one machine learning function is trained during the initial set of print jobs. 
     The input may be a temperature of the current layer, a layer thickness, a temperature from a previously laid blank layer, a given powder, a firmware parameter, or any combination thereof. The quality specification may be a desired value of the at least one output. The input metric may be a temperature metric that is an average temperature of a plurality of pixels within the region of interest during a pass of printing. At least one output may be a probability of the part to satisfy the quality specification that specifies at least one of process, thermal, location, or orientation data associated with the part. In response to a production print job, a confidence in the likelihood may increase as the number of printed layers increases. In response to the likelihood indicating a failure of a part to satisfy the quality specification, the printing of the part is designated as a failing part by applying an identifier to the part, or printing of the part is halted. In response to the likelihood indicating a failure of the part to satisfy the quality specification, the part may be removed from parts that satisfy the quality specification. The likelihood of the part of the plurality of parts to satisfy a quality specification may be used to schedule a pre-print workflow and a post-print workflow. A thermal camera may scan the region of interest for a layer of the plurality of parts and output a temperature for the region of interest. The input metric may be input to a plurality of machine learning functions that are trained based on the at least one output, and a predicted likelihood from the plurality of machine learning functions is used to determine if the part satisfies the quality specification. 
     Another example is a method for providing three dimensional printing production quality prediction. The method may include obtaining a first input associated with a first part of a first plurality of parts during a first print job and deriving a first input metric based on the first input. The method further includes mechanically testing at least a portion of the first plurality of parts to determine a ground truth associated with the first input metric. Additionally, the method includes predicting a likelihood of a second part of a second plurality of parts to satisfy a quality specification by inputting a second input metric to at least one machine learning function trained using the ground truth and first input metric during a second print job. 
     A third print job may be scheduled based on a throughput calculated from the likelihood of the second part of the second plurality of parts to satisfy the quality specification. A post-print workflow may be derived based on a throughput calculated from the likelihood of the second part of the second plurality of parts to satisfy the quality specification. At least one machine learning function may be adapted to a change in a second input by adjusting the learned weights, biases, or decision points of the machine learning function. The ground truth may be a probability of a part to satisfy a quality specification that specifies at least one of process, thermal, location, or orientation data. 
     While the present techniques may be susceptible to various modifications and alternative forms, the examples discussed above have been shown only by way of example. It is to be understood that the technique is not intended to be limited to the particular examples disclosed herein. Indeed, the present techniques include all alternatives, modifications, and equivalents falling within the scope of the present techniques.