WO2023140860A1 - Print jobs by three-dimensional printers - Google Patents

Print jobs by three-dimensional printers Download PDF

Info

Publication number
WO2023140860A1
WO2023140860A1 PCT/US2022/013352 US2022013352W WO2023140860A1 WO 2023140860 A1 WO2023140860 A1 WO 2023140860A1 US 2022013352 W US2022013352 W US 2022013352W WO 2023140860 A1 WO2023140860 A1 WO 2023140860A1
Authority
WO
WIPO (PCT)
Prior art keywords
data set
print job
parameters
print
printer
Prior art date
Application number
PCT/US2022/013352
Other languages
French (fr)
Inventor
Prakash Reddy
Utkarsh SIDDU
Amit Kumar
Prateek SIKDAR
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/US2022/013352 priority Critical patent/WO2023140860A1/en
Publication of WO2023140860A1 publication Critical patent/WO2023140860A1/en

Links

Classifications

    • 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
    • B29C64/393Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • 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
    • B22F10/85Data acquisition or data processing for controlling or regulating additive manufacturing processes
    • 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/10Processes of additive manufacturing
    • B29C64/171Processes of additive manufacturing specially adapted for manufacturing multiple 3D objects
    • B29C64/176Sequentially
    • 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
    • B33Y10/00Processes of 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
    • B22F10/00Additive manufacturing of workpieces or articles from metallic powder
    • B22F10/20Direct sintering or melting
    • B22F10/28Powder bed fusion, e.g. selective laser melting [SLM] or electron beam melting [EBM]

Definitions

  • Three-dimensional (3D) printers are employed in additive manufacturing processes, also known as 3D printing.
  • 3D printing a 3D object or any part thereof is fabricated by laying down successive layers of material one on top of each other.
  • the 3D printers may utilize a variety of print materials.
  • FIG. 1 illustrates a system for comparison of print jobs performed by a three-dimensional printer, according to an example
  • FIG. 2 illustrates a system for comparison of print jobs performed by a first three-dimensional printer and a second three- dimensional printer, according to an example
  • FIG. 3 illustrates a method for comparing print jobs performed by a first three-dimensional printer and a second three-dimensional printer, according to an example
  • FIGS. 4A and 4B illustrate a method for comparing print jobs performed by a first three-dimensional printer and a second three- dimensional printer, according to an example
  • FIG. 5 illustrates a non-transitory computer readable medium for comparing print jobs performed by a first three-dimensional printer and a second three-dimensional printer, according to an example.
  • a manufacturing process such as a three-dimensional (3D) printing process, may involve a design phase, a development phase, and a verification phase.
  • a 3D printer may sequentially deposit a material onto a material bed of the 3D printer to fabricate a prototype or a 3D object or a 3D part. Further, a first materiallayer is formed, and thereafter, successive material-layers (or parts thereof) are added one by one, wherein each new material-layer is added on a preformed previous material-layer, until completely designed 3D object or 3D part is fabricated.
  • Such layer-by-layer printing may involve interactions among various parameters involved in the 3D printing process.
  • the parameters include, but are not limited to, a print material, ambient humidity, ambient temperature, and a mixing ratio of the print material. Any change in the interactions of the various parameters may cause deviation in layer properties, and thus, may result in anomalies in layers as well as the 3D object.
  • a user may assess effects of different parameters, associated with the 3D printer, on various layers that will be printed during execution of a print job. This may allow the user to timely identify and prevent occurrence of any anomaly in a completed 3D object or a finished 3D product.
  • the data obtained from the 3D printer, during different print jobs may be of different types, the user may be unable to compare the different print jobs by employing same comparison technique. To change a comparison technique for each data type may be timeconsuming and may slow down the process of comparison.
  • a 3D printed object or 3D printed part may undergo multiple iterations to be able to meet a desired quality. Performing multiple iterations on one print job may slow down the printing process and may turn out to be cost ineffective.
  • the present subject matter discloses example approaches for comparing print jobs performed by a 3D printer.
  • the present subject matter may compare two or more print jobs to identify a cause of inconsistency between the two or more print jobs.
  • the comparison of the two or more print jobs may be data-agnostic and may be performed for similar or different print jobs performed at same or on different 3D printers.
  • data sets associated with a first print job and a second print job are compared using a non-parametric model.
  • the data sets may indicate values of input parameters associated with first print job and second print job and values of parameters measured during execution and upon completion of the first print job and the second print job.
  • the non-parametric model may be a statistical model which does not make any assumptions of parameters for a given sample.
  • the non-parametric model may determine a deviation in the data sets. For example, the non-parametric model may identify a set of parameters that may be responsible for causing the deviation in the first print job and the second print job. The set of parameters identified by the non-parametric model may be provided to the user for taking actions, such as adjusting the values of the set of parameters to ensure that the first print job and the second job are consistent.
  • the present subject matter facilitates in ensuring that 3D printed objects or 3D printed are consistent. Further, as the non- parametric model is data-agnostic, i.e., capable of processing data collected from heterogeneous data sources, data pertaining to all parameters associated with the printjobs may be compared simultaneously. As a result, the comparison technique described by the present subject matter is fast and cost-efficient. [0016] The present subject matter is further described with reference to the accompanying figures. Wherever possible, the same reference numerals are used in the figures and the following description to refer to the same or similar parts. It should be noted that the description and figures merely illustrate principles of the present subject matter.
  • FIG.1 illustrates a system 100 for comparison of print jobs performed by a 3D printer 102, according to an example.
  • the system 100 may be communicatively coupled to the 3D printer 102.
  • the 3D printer 102 may print a 3D object or a 3D part based on a digital file.
  • the digital file may include a 3D model of the 3D object or the 3D part for being printed.
  • Examples of the 3D printer 102 may include, but are not limited to, a fused deposition modeling (FDM) printer, a multi jet fusion (MJF) printer, and a selective laser sintering (SLS) printer.
  • Examples of the system 100 may include, but are not limited to, a laptop, a notebook computer, a desktop computer.
  • the system 100 may include a processor 104 that may be communicatively coupled to the 3D printer 102.
  • the processor 104 may be directly or remotely coupled to the 3D printer 102.
  • the processor 104 may include microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any other devices that manipulate signals and data based on computer-readable instructions. Further, functions of the various elements shown in the figures, including any functional blocks labelled as “processor(s)”, may be provided through the use of dedicated hardware as well as hardware capable of executing computer-readable instructions.
  • the system 100 may include a comparison engine 106 and a determination engine 108 coupled to the processor 104.
  • the comparison engine 106 and the determination engine 108 may be implemented as a combination of hardware and programming, for example, programmable instructions to implement a variety of functionalities of the comparison engine 106 and the determination engine 108.
  • the programming for the comparison engine 106 and the determination engine 108 may be executable instructions.
  • Such instructions may be stored on a non-transitory machine-readable storage medium which may be coupled either directly with the system 100 or indirectly (for example, through networked means).
  • the non-transitory machine-readable storage medium may store instructions that, when executed by the processor, implement the comparison engine 106 and the determination engine 108.
  • the comparison engine 106 and the determination engine 108 may be implemented as electronic circuitry.
  • the comparison engine 106 and the determination engine 108 include routines, programs, objects, components, and data structures, which perform particular tasks or implement particular abstract data types.
  • the comparison engine 106 and the determination engine 108 may also be implemented as, signal processor(s), state machine(s), logic circuitries, and/or any other device or component that manipulates signals based on operational instructions. Further, the comparison engine 106 and the determination engine 108 can be implemented by hardware, by computer-readable instructions executed by a processing unit, or by a combination thereof.
  • the comparison engine 106 may obtain a first data set pertaining to a first print job and a second data set pertaining to a second print job.
  • a print job may be a task, of printing an object represented by one or more digital files, to be performed on a 3D printer.
  • the comparison engine 106 may request the 3D printer 102 to provide the first data set and the second data set to the system 100.
  • the system 100 may be a part of the 3D printer 102. In such case, the comparison engine 106 may fetch the first data set and the second data set from a memory (not shown) of the system 100.
  • the first data set may be indicative of values of input parameters associated with the first printjob and values of parameters measured during execution and upon completion of the first print job.
  • the second data set may be indicative of values of input parameters associated with the second print job and values of parameters measured during execution and upon completion of the second print job.
  • the input parameters may be defined as the parameters that are specified by a user, such as a process engineer, before execution of the print job.
  • the input parameters may include a fusing temperature, a type of print material, print bed temperature, and so on.
  • the parameters measured during execution of the printjob and upon completion of the print job may include, but are not limited to, parameters related to toolpath, nozzle temperature, layer thickness, layering direction, disturbance in print, drop in a print platform, print material feed rate, parameters related to a fusing agent, parameters related to a detailing agent, a shape of a finished 3D object or a finished 3D part, and a weight or mass of the finished 3D object or the finished 3D part.
  • the first print job and the second print job may be based on same input parameters and same print instructions.
  • a print instruction may be a print command to perform a print job.
  • the print command may refer to the digital file based on which the print job may be executed.
  • the digital file may specify geometrical features of the 3D object or 3D part along with desired material properties of the 3D object or 3D part.
  • the comparison engine 106 may compare the first data set and the second data set using a non-parametric model.
  • the non- parametric model may be a statistical model that may rely on non-normal distribution or continuous data.
  • the non-parametric model may be applied on data collected from samples that do not follow a specific distribution.
  • the comparison engine 106 may compare parameters associated with different data types.
  • the first data set may include a first parameter of time-series data and the second data set may also include a first parameter of time-series data.
  • a second parameter of the first data set may be a scalar data and a second parameter of the second data set may be a scalar data.
  • the first data set and the second data set may include parameters of other data type, such as resource data, multi-dimensional data, or a combination thereof.
  • the comparison engine 106 may utilize the non-parametric model to compare parameters of the first data set having a data type with corresponding parameters of the second data set of same data type.
  • the determination engine 108 may determine a deviation between the first data set and the second data set. For example, the determination engine 108 may determine the deviation based on an output of the non-parametric model. Thereafter, the determination engine 108 may identify underlying parameters that may be causing the deviation. In an example implementation, the system 100 may determine deviation in parameters at different stages of the 3D printing process, such as warming, printing, cooling, and curing.
  • the system 100 employs non-parametric statistical models to determine deviation in the first print job and the second printjob.
  • the non-parametric model may process data sets pertaining to multiple print jobs, the system 100 may compare corresponding parameters of different data set with different characteristics without employing separate comparison techniques for each parameter associated with each print job.
  • the system 100 may facilitate the user in performing a causal analysis of various parameters involved throughout the print job.
  • the system 100 may facilitate in avoiding multiple iterations for same print job to achieve an optimal result.
  • FIG. 2 illustrates a system 200 for comparison of print jobs performed by a first 3D printer 202 and a second 3D printer 204, according to an example.
  • the system 200 may be similar to the system 100.
  • the system 200 may include a processor 206, a comparison engine 208, and a determination engine 210.
  • the processor 206, the comparison engine 208, and the determination engine 210 may be similar to the processor 104, the comparison engine 106, and the determination engine 108.
  • the first 3D printer 202 and the second 3D printer 204 may be a multi-jet fusion (MJF) 3D printer.
  • the MJF 3D printer may use an inkjet array to selectively apply fusing agent and detailing agent across a bed of powdered material, which are then fused by heating elements into a solid layer.
  • MJF multi-jet fusion
  • a 3D printer such as the first 3D printer 202 or the second 3D printer 204, may include a thermal chamber 212 having a print bed 214 on which a plurality of layers may get printed in response to a print job of the 3D printer. Further, the 3D printer may include a plurality of sensors 216, such as humidity sensors, ambient temperature sensors, printhead sensors, thermal chamber pressure sensors, carriage pressure sensors, and so on.
  • sensors 216 such as humidity sensors, ambient temperature sensors, printhead sensors, thermal chamber pressure sensors, carriage pressure sensors, and so on.
  • a humidity sensor may be placed in a work area of the 3D printer.
  • the work area may be the area in which the print bed 214 of the 3D printer is present.
  • the humidity sensor may measure humidity of the work area before a printing process of the 3D printer is started or during the printing process.
  • an ambient temperature sensor may be placed in the work area to measure the ambient temperature of the work area.
  • the print head sensors may include a temperature sensor to measure temperature of a printhead during the printing process.
  • the thermal chamber pressure sensors may be placed in the thermal chamber 212 to measure air pressure inside the thermal chamber 212.
  • a carriage pressure sensor may be placed in the work area in connection with a carriage which movably carries an inkjet array above the print bed 214. The carriage pressure sensor may measure a pressure being applied on the carriage during the printing process.
  • the first 3D printer 202 and the second 3D printer 204 may be coupled to the system 200 through a network.
  • the network may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
  • the network may be a wireless or a wired network, or a combination thereof.
  • the system 200 may include a memory 218.
  • the memory 218 may include any non-transitory computer-readable medium including, for example, volatile memory, such as static random-access memory (SRAM) and dynamic random-access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
  • volatile memory such as static random-access memory (SRAM) and dynamic random-access memory (DRAM)
  • non-volatile memory such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
  • the system 200 may include interface(s) 220.
  • the interface(s) 220 may include a variety of interfaces, for example, interface(s) 220 for users.
  • the interface(s) 220 may include data output devices.
  • the interface(s) 220 may facilitate the communication of the system 200 with various communication and electronic devices, such as the first 3D printer 202 and the second 3D printer 204.
  • the comparison engine 208 may communicate with the processor 206 to obtain a first data set pertaining to a first print job and a second data set pertaining to a second print job.
  • the first print job and the second printjob may be executed at the first 3D printer 202.
  • the first print job and the second print job may be executed at the second 3D printer 204.
  • the first print job may be executed at the first 3D printer 202 and the second print job may be executed at the second 3D printer 202.
  • the processor 206 may communicate with the first 3D printer 202 or the second 3D printer 202 or both the first and second 3D printers 202, 204, to obtain the first data set and the second data set.
  • a data set such as the first data set or the second data set, may include values of operational parameters associated with entire process of a print job, such as a first print job or the second print job.
  • the operational parameters indicate parameters associated with a 3D printer that are involved in execution of a print job.
  • the operational parameters may include data pertaining to sensors associated with the 3D printer 102.
  • the parameters may include layer data pertaining to the attributes of each layer associated with the first print job and the second print job. Examples of the layer data may include, but are not limited to, layer density data, fusing agent data, detailing agent data, z position of the layer, and so on.
  • the fusing agent data may be a volume of a fusing agent used while printing a particular layer.
  • the fusing agent may facilitate in fusing together a layer of powder (raw material).
  • the detailing agent data may be a volume of a detailing agent that may be employed to enhance part resolution.
  • the Z position denotes how far a layer is from a first layer in a vertical direction.
  • the layer density data may indicate how compact or dense a layer is.
  • the operational parameters may include parameters involved prior to execution of the print job, parameters involved during execution of the print job, and parameters recorded upon completion of the print job.
  • the parameters that may be involved prior to execution of the print job may be referred to as input parameters.
  • the input parameters indicate different aspects of the 3D printer that are defined before the print job is executed. Examples of the input parameters may include, but are not limited to, type of a print material, print speed, print bed temperature, layer volume, and fusing temperature.
  • the first print job and the second print job may be based on same or different input parameters. For example, the user may select different layer volume or different print bed temperatures for two print jobs, or the user may maintain same layer volume and same print bed temperatures for the two print jobs.
  • the parameters involved during execution of the print job may indicate signals recorded from a 3D printer when various layers associated with a printjob are undergoing print.
  • the parameters involved during execution of the print job may include parameters related to a toolpath, nozzle temperature, layer thickness, layering direction, disturbance in print, drop in a print platform, print material feed rate, parameters related to a fusing agent, parameters related to a detailing agent.
  • the parameters measured upon completion of the print job may indicate final specifications of a 3D printed object or part thereof. Examples of parameters measured upon completion of the print job may include, but are not limited to, shape of the 3D printed object, a weight of the 3D printed object, size of the 3D printed object, and an alignment of 3D printed object.
  • the first print job and the second print job may be based on same or different print materials.
  • the first print job and the second print job may be performed using polymer material.
  • the first print job may be performed using a polymer material while the second printjob may be performed using a metallic material.
  • the first print job may use a fresh raw material while the second print job may reuse a material for printing.
  • the first print job and the second printjob may be based on same or different print instructions.
  • a print instruction may include a print command associated with a print job.
  • the print command may refer to the digital file based on which the print job may be executed.
  • the digital file may specify geometrical features of the 3D object or 3D part along with properties of the print material for printing the 3D object or 3D part.
  • the digital file may specify a percentage of new material and reused material for being used in the print job.
  • the comparison engine 208 may employ a non-parametric model 222 to compare the first data set with the second data set.
  • the non-parametric model 222 may be Kolmogorov- Smirnov (KS) test.
  • the KS test is a distribution-free statistic.
  • the KS-test may be a one-sample KS test or a two-sample KS test.
  • the one-sample KS test may be used to test whether a sample comes from a reference distribution.
  • the two-sample KS test is used to test whether two samples come from a same distribution.
  • the comparison engine 208 may employ a univariate two-sample KS-test.
  • the comparison engine 208 may derive a distribution for the first data set and the second data set.
  • the distribution for the first data set may represent the first data set as a sample Xi, X2, X3, ... , Xm of size m drawn from a first unknown distribution.
  • the distribution for the second data set may represent that the second data set as a sample Y1, Y2, Y3, ... , Yn of size n drawn from a second unknown distribution.
  • the two-sample KS test is performed to test a null hypothesis that the first data set and the second data set have same distribution.
  • the comparison engine 208 may generate an empirical Cumulative Distribution Function (eCDF) for the first data set of n samples and the second data set of m samples, as: where, F n (x) is the eCDF for the first data set and G m (x) is the eCDF for the second data set, x is a particular value from a respective sample of the first data set and the second data set.
  • eCDF empirical Cumulative Distribution Function
  • the comparison engine 208 may thereafter graphically plot the eCDFs, F m (x) and G n (x). After plotting, the comparison engine 208 may calculate a maximum vertical distance ‘D’ between the eCDFs F m (x) and
  • the comparison engine 208 may cross-reference the maximum vertical distance ‘D’ with a pre-defined two-sample KS table. Based on the pre-defined two-sample KS table, a value corresponding to ‘D’ is obtained. Such obtained value may be referred to as a KS value. Further, the comparison engine 208 may obtain a p-value corresponding to the KS value. The p-value may represent a degree of confidence to reject the null hypothesis based on the KS value. In the present implementation, the p-value is considered as 0.05.
  • the comparison engine 208 may accept or reject the null hypothesis regarding the distribution of the first data set and the second data set. In an example, if the KS value is small or the p-value is high, the comparison engine 208 may accept the null hypothesis that the distribution of the first data set and the second data set is same. The acceptance of the null hypothesis may indicate that the degree of deviation between the parameters of the first data set and the second data set is negligible. Therefore, such parameters may not be considered for the purposes of identifying a root cause of the deviation.
  • the comparison engine 208 may reject the null hypothesis, i.e., the comparison engine 208 may identify that the first data set and the second data set have different distributions.
  • the rejection of the null hypothesis may indicate that the degree of deviation between the parameters of the first data set and the second data set is high. Therefore, such parameters may be considered for the purposes of identifying the root cause of a deviation.
  • the comparison engine 208 may also perform partial comparison between the first data set and the second data set.
  • the partial comparison may include comparing common parameters that are available for the first print job and the print job.
  • the first data set pertaining to the first print job may include values associated with 300 parameters.
  • the second data set pertaining to the second print job may include values associated with 250 parameters.
  • the comparison engine 208 may perform comparison of those parameters that are common in the first data set and the second data set.
  • the system 200 may be capable of identifying common parameters from the data sets and performing comparison of the identified common parameters, instead of all together halting the comparison.
  • the determination engine 210 may compute a mean of values for each parameter, for which the null hypothesis is rejected, from the first data set and the second data set.
  • layer thickness may be a parameter for which the null hypothesis is rejected by the comparison engine 208.
  • the determination engine 210 may compute a mean (MLTI ) of values corresponding to the layer thickness across all 1000 layers printed in the first print job and a mean (MLT2) of values corresponding to the layer thickness across all 2000 layers printed in the second print job.
  • the determination engine 210 may compute a difference between the mean values of each parameter of the first data set and the mean values of corresponding parameter of the second data set. For example, again considering the example of layer thickness as the parameter, the determination engine 210 may compute a difference DLT of MLTI and MLT2.
  • the determination engine 210 may assign a weight to the difference between mean values of each parameter of the first data set and the second data set.
  • the determination engine 210 may also assign a weight with the KS value for the corresponding parameter of the first data set and the second data set.
  • the determination engine 210 may assign equal weights to the difference of mean values and the KS values of each parameter.
  • the determination engine 210 may assign different weights to the difference of mean values and the KS values of each parameter.
  • the weights may be set unequal to give preference to KS value or difference in mean values.
  • the determination engine 210 may assign equal weights to all parameters. In an example, the determination engine 210 may assign different weights to different parameters.
  • the determination engine 210 may combine a weighted difference in mean values of each parameter with a weighted KS value for the corresponding parameter. For example, the determination engine 210 may add the weighted difference in mean values of each parameter to a weighted KS value for the corresponding parameter, to obtain a score ‘S’ for each parameter. For example, score ‘S’ of a parameter is computed as:
  • the determination engine 210 may rank the parameters in a specified order. For example, the determination engine 210 may arrange the parameters in a descending order of the score ‘S’ associated with the parameters. Therefore, a parameter having highest score will be ranked as first and a parameter having a lowest score will be ranked as last. In an example, parameters for which the score is above a pre-determined threshold value may be considered to cause the deviation between the first data set and the second data set. Thus, the user may obtain actionable insights from the comparison of the first print job and the second print job, to understand a behaviour of the first 3D printer 202 and the second 3D printer 204.
  • the determination engine 210 may categorize the deviation between the first data set and the second data set for each parameter associated with the first 3D printer 202 and the second 3D printer 204. In an example, the determination engine 210 may categorize the similar parameters together to show a deviation in values of similar parameters. For example, using the interface(s) 220, the determination engine 210 may club similar parameters, such as servo signals, temperature sensor signals, layer signals, and so on. In another example, the determination engine 210 may categorize the parameters associated with different stages of the 3D printing process, such as a pre-heating stage, a printing stage, a cooling stage, and a curing stage. Thus, the user may compare multiple parameters to perform a casual analysis of deviation in the first data set and the second data set.
  • the determination engine 210 may generate a report to indicate ranks associated with the parameters.
  • the determination engine 210 may also render on the interface(s) 214 a set of parameters that may be responsible for causing the deviation in the first data set and the second data set.
  • the interface(s) 220 may render graphs indicating plots of various values of the parameters associated with the first print job and the second print job. Such categorization of values pertaining to all the parameters associated with the print jobs may facilitate the user to optimize an output of the print jobs in a fast and cost-effective way.
  • FIGS. 3, 4A, and 4B illustrate methods 300 and 400 for comparing print jobs performed by a first three-dimensional (3D) printer and a second 3D printer, according to various examples.
  • FIG. 4A describes various steps of the method 400 which is continued in FIG. 4B and therefore FIGS. 4A and 4B are to be considered as the same method.
  • the first 3D printer and the second 3D printer are similar to the 3D printer 102 which may fabricate a 3D object, or a part of the 3D object based on the print job.
  • the methods 300 and 400 can be implemented by processor(s) or device(s) through any suitable hardware, a non-transitory machine readable medium, or a combination thereof. Further, although the methods 300 and 400 are described in context of the system and the first 3D printer and the second 3D printer that are similar to the aforementioned system 100 and the 3D printer 102, other suitable devices or systems may be used for execution of the methods 300 and 400.
  • processes involved in the methods 300 and 400 can be executed based on instructions stored in a non-transitory computer-readable medium.
  • the non-transitory computer-readable medium may include, for example, digital memories, magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
  • a first data set may be obtained from the first 3D printer and a second data set may be obtained from the second 3D printer.
  • a processor (not shown) of the system may obtain the first data set and the second data set from the first 3D printer and the second 3D printer, respectively.
  • the comparison engine may obtain the first data set pertaining to the first print job from the first 3D printer and the second data set pertaining to the second print job from the second 3D printer.
  • the first data set and the second data set may include values of a plurality of parameters associated with the first printjob and the second print job, respectively.
  • the plurality of parameters may include operating parameters associated with a print job.
  • the operating parameters may include parameters defined prior to execution of the print job, parameters involved during execution of the print job, and parameters measured upon completion of the print job. Examples of such parameters may include, but are not limited to, type of a print material, print speed, print bed temperature, layer volume, layer thickness, drop in a print platform, post drop surface of a layer, print surface of a layer, post spread surface of a layer, disturbance in print, shape and configuration of a printed 3D object and weight or mass of the printed 3D object.
  • the user may define same or different parameters prior to execution of the first print job and the second print job.
  • the first print job and the second print job may be based on same print instructions or different print instructions.
  • a print instruction may be a print command to perform a print job.
  • the print command may refer to the digital file based on which the print job may be executed.
  • the method 300 may include comparing, by a non-parametric model, the first data set and the second data set to determine a degree of deviation between the first data set and the second data set.
  • the comparison engine may utilize the non- parametric model, such as a Kolmogorov-Smirnov (KS) test, to determine how the first data set deviates from the second data set.
  • KS Kolmogorov-Smirnov
  • a non-parametric model may be a statistical model which does not rely on any pre-defined distribution.
  • the method 300 may include computing and associating a score with each of the plurality of parameters based on a degree of deviation between the first data set and the second data set.
  • the determination engine may compute the score for each of the plurality of parameters.
  • the score may indicate a contribution of a parameter with respect to a deviation determined between the first data set and the second data set.
  • temperature of a thermal chamber of a 3D printer is set to be 35°C. If the temperature of the thermal chamber varies, other parameters associated with the 3D printer may get effected. For example, nozzle temperature, print bed temperature, print thickness, etc. may also get varied.
  • the method 300 may include based on the score, determining a set of parameters indicative of a cause of deviation between the first data set and the second data set. For example, the determination engine may rank the plurality of parameters in an order of corresponding scores. For example, the determination engine may rank the plurality of parameters in a descending order of the score. Thus, a highest scoring parameter may be ranked first, and a lowest scoring parameter may be ranked last. Upon ranking the parameters, the parameters having the score above a pre-determined threshold value may be determined as the set of parameters causing deviation between the first data set and the second data set.
  • the present subject matter therefore employs non-parametric models to efficiently compare data sets from unknown distributions.
  • the present subject matter further facilitates in optimizing an output of a print job by timely identifying factors responsible for causing deviation in two print jobs.
  • the method 400 may include obtaining a first data set from a first 3D printer.
  • the first data set may pertain to a first print job that may be performed on the first 3D printer.
  • the first data set may be indicative of values of a plurality of parameters associated with the first print job. Examples of the plurality of parameters may include, but are not limited to, print material, print speed, layer density, fusing agent, detailing agent, z position of a layer, print material feed rate, shape of a finished 3D object, and weight or mass of a finished 3D object.
  • the method 400 may include obtaining a second data set from a second 3D printer.
  • the second data set may pertain to a second print job that may be performed on the second 3D printer.
  • the second data set may be indicative of values of a plurality of parameters associated with the first print job.
  • the first print job and the second print job may be based on same input parameters and print instructions.
  • the method 400 may include comparing the first data set with the second data set.
  • the comparison engine may use a non-parametric model to compare the first data set with the second data set.
  • the non-parametric model does not make any implicit assumptions about underlying distribution of a sample. Therefore, the non- parametric model performs an effective comparison of parameters involved across multiple printjobs.
  • the non-parametric model is a two- sample Kolmogorov-Smirnov (KS) test with a null hypothesis that the first data set and the second data set are drawn from similar distributions.
  • KS Kolmogorov-Smirnov
  • the comparison engine may derive a distribution for the first data set and the second data set.
  • the distribution for the first data set may represent the first data set as a sample Xi, X2, X3,... , Xm of size m drawn from a first unknown distribution.
  • the distribution for the second data set may represent that the second data set as a sample Y1 , Y2, Y3, ... , Yn of size n drawn from a second unknown distribution.
  • an output value of the non- parametric model may be determined for each parameter of the first data set and the second data set.
  • the output value of the KS test is referred to as a KS value that depicts a maximum vertical distance between graphs plotted for empirical Cumulative Distribution Function (eCDF) for each of the first data set and the second data set.
  • eCDF empirical Cumulative Distribution Function
  • the comparison engine 208 may generate an eCDF for the first data set of n samples and the second data set of m samples, as: Number of sample observations ⁇ x
  • the comparison engine may calculate a maximum vertical distance ‘D’ between a graphical plot of the eCDFs F m (x) and G n (x), as:
  • the comparison engine may determine the output value (KS value) of the non-parametric model. Further, the comparison engine may obtain a p-value corresponding to the KS value. The p-value may represent a degree of confidence to reject the null hypothesis based on the KS value. In the present implementation, the p-value is considered as 0.05.
  • the method 400 may include based on the output value of the non-parametric model, accepting or rejecting the null hypothesis of the non-parametric model for each of the plurality of parameters.
  • the comparison engine 208 may accept the null hypothesis for those parameters for which the KS value is high, i.e. , the parameters that exhibit less deviation are assumed to be drawn from similar distributions.
  • the comparison engine 208 may reject the null hypothesis for those parameters for which the KS value is small, i.e., the parameters that exhibit considerable deviation are assumed to be drawn from different distributions.
  • the method 400 may include computing a score for each of the plurality of parameters. For example, the determination engine may compute a mean of values for each parameter, for which the null hypothesis is rejected, from the first data set and the second data set. Further, the determination engine may compute a difference between the mean values of each parameter of the first data set and the mean values of corresponding parameter of the second data set.
  • the determination engine may assign a weight to the difference between mean values of each parameter of the first data set and the second data set.
  • the determination engine may also assign a weight with the KS value for the corresponding parameter of the first data set and the second data set.
  • the determination engine may combine a weighted difference in mean values of each parameter with a weighted KS value for the corresponding parameter. For example, the determination engine may add the weighted difference in mean values of each parameter to a weighted KS value for the corresponding parameter, to obtain an individual score ‘S’ for each parameter.
  • the method 400 may include based on the score, assigning a rank to each of the plurality of parameters.
  • the rank indicates a degree of deviation in the first data set with respect to the second data set.
  • the determination engine may assign the rank to each parameter and arrange the plurality of parameters in an ascending order or a descending order of respective score of each parameter.
  • the method 400 may include determining a set of parameters as indicative of a cause of deviation between the first data set and the second data set.
  • the determination engine may determine those parameters as the parameters responsible for causing the deviation, for which the rank exceeds a pre-defined threshold. For example, when arranged in the descending order of the respective scores, the parameters having ranks above 20 may be determined as the deviation causing parameters.
  • the method 400 may include generating a report to categorize the plurality of parameters based on the rank associated with each of the plurality of parameters.
  • the determination engine 210 may generate the report to enlist the plurality of parameters based on the ranks. Based on the report, the user may take corrective actions at the development phase of the 3D printing process, thereby saving time, minimizing wastage, and reducing cost involved in the 3D printing process.
  • FIG. 5 illustrates an example network environment 500 using a non-transitory computer-readable medium 502 comparing print jobs performed by a first three-dimensional (3D) printer and a second 3D printer, according to an example.
  • the network environment 500 may be a public networking environment or a private networking environment.
  • the network environment 500 includes a processing resource 504 communicatively coupled to the non-transitory computer-readable medium 502 through a communication link 506.
  • the processing resource 504 may be a processor of a system, such as the system communicating with the first 3D printer and the second 3D printer, for fetching and executing computer-readable instructions from the non- transitory computer-readable medium 502.
  • the non-transitory computer-readable medium 502 may be, for example, an internal memory device or an external memory device.
  • the communication link 506 may be a direct communication link, such as one formed through a memory read/write interface.
  • the communication link 506 may be an indirect communication link, such as one formed through a network interface.
  • the processing resource 504 may access the non-transitory computer-readable medium 502 through a network 508.
  • the network 508 may be a single network or a combination of multiple networks and may use a variety of communication protocols.
  • the processing resource 504 and the non-transitory computer-readable medium 502 may also be communicatively coupled to data sources 510 over the network 508.
  • the data sources 510 may include, for example, a database.
  • the data sources 510 may be used by the database administrators and other users to communicate with the processing resource 504.
  • the non-transitory computer-readable medium 502 includes a set of computer-readable and executable instructions for comparing print jobs performed by the first 3D printer and the second 3D printer.
  • the set of computer-readable instructions may include instructions as explained in conjunction with FIGS. 1 to 4B.
  • the set of computer- readable instructions referred to as instructions hereinafter, may be accessed by the processing resource 504 through the communication link 506 and subsequently executed to perform acts for comparing print jobs performed by the first 3D printer and the second 3D printer.
  • the non-transitory computer-readable medium may include instructions 512 to cause a processor, coupled to the first 3D printer, to obtain a first data set pertaining to a first print job.
  • the non-transitory computer-readable medium 502 may also include instructions 514 to cause the processor, coupled to the second 3D printer, to obtain a second data set pertaining to a second print job.
  • the first data set and the second data set may be indicative of values of a plurality of parameters associated with the first print job and the second print job, respectively.
  • the first data set and the second data set may include scalar data, resource data, multidimensional data, time-series data, or a combination thereof.
  • the comparison engine may obtain the first data set and the second data set.
  • the first print job and the second print job may be based on different print instructions.
  • a print instruction may indicate a command to print a 3D object, or a 3D part as indicated in a digital file.
  • the digital file may include geometrical features of the 3D object or the 3D part along with desired material properties of the 3D object or the 3D part. Therefore, the first print job and the second print job are executed to print different 3D objects or 3D parts.
  • the first print job and the second print job may be based on same or different input parameters.
  • the user may select different layer volume or different print bed temperatures for two print jobs, or the user may maintain same layer volume and same print bed temperatures for the two print jobs.
  • the first print job and the second print job may be based on same or different print materials.
  • the first print job and the second print job may be performed using polymer material.
  • the first print job may be performed using a polymer material while the second printjob may be performed using a metallic material.
  • the first print job may use a fresh raw material while the second print job may reuse a material for printing.
  • the non-transitory computer-readable medium 502 may also include instructions 516 to compare the first data set and the second data set to ascertain a degree of deviation in each of the plurality of parameters associated with the first data set and the second data set.
  • the first data set and the second data set may be compared using a non- parametric model, such as a Kolmogorov-Smirnov (KS) test.
  • the comparison engine may compare the first data set and the second data set using the non-parametric model.
  • the non-transitory computer-readable medium 502 may also include instructions 518 to, based on the ascertainment, identify a set of parameters for which the degree of deviation is above a pre-defined value.
  • the determination engine may compute a score corresponding to the identified set of parameters. The score may be computed based on an output value of the non-parametric model and a difference between mean values of the first data set and the second data set. Based on the score, the determination engine may identify the set of parameters for which the degree of deviation is above the pre-defined value.
  • the non-transitory computer-readable medium 502 may also include instructions 520 to generate a report to indicate the set of parameters as a cause of deviation.
  • the non-transitory computer-readable medium 502 may include instructions to compute a score corresponding to each of the set of parameters.

Abstract

Examples of systems for comparing print jobs performed by three-dimensional (3D) printers are described herein. In an example, a first data set pertaining to a first print job and a second data set pertaining to a second print job are obtained. Further, the first data set and the second data set are compared using a non-parametric model to determine a deviation between the first data set and the second data set.

Description

PRINT JOBS BY THREE-DIMENSIONAL PRINTERS
BACKGROUND
[0001] Three-dimensional (3D) printers are employed in additive manufacturing processes, also known as 3D printing. In 3D printing, a 3D object or any part thereof is fabricated by laying down successive layers of material one on top of each other. To form different objects or parts thereof, the 3D printers may utilize a variety of print materials.
BRIEF DESCRIPTION OF FIGURES
[0002] The detailed description is provided with reference to the accompanying figures, wherein:
[0003] FIG. 1 illustrates a system for comparison of print jobs performed by a three-dimensional printer, according to an example;
[0004] FIG. 2 illustrates a system for comparison of print jobs performed by a first three-dimensional printer and a second three- dimensional printer, according to an example;
[0005] FIG. 3 illustrates a method for comparing print jobs performed by a first three-dimensional printer and a second three-dimensional printer, according to an example;
[0006] FIGS. 4A and 4B illustrate a method for comparing print jobs performed by a first three-dimensional printer and a second three- dimensional printer, according to an example; and
[0007] FIG. 5 illustrates a non-transitory computer readable medium for comparing print jobs performed by a first three-dimensional printer and a second three-dimensional printer, according to an example. DETAILED DESCRIPTION
[0008] A manufacturing process, such as a three-dimensional (3D) printing process, may involve a design phase, a development phase, and a verification phase. During the 3D printing process, a 3D printer may sequentially deposit a material onto a material bed of the 3D printer to fabricate a prototype or a 3D object or a 3D part. Further, a first materiallayer is formed, and thereafter, successive material-layers (or parts thereof) are added one by one, wherein each new material-layer is added on a preformed previous material-layer, until completely designed 3D object or 3D part is fabricated.
[0009] Such layer-by-layer printing may involve interactions among various parameters involved in the 3D printing process. Examples of the parameters include, but are not limited to, a print material, ambient humidity, ambient temperature, and a mixing ratio of the print material. Any change in the interactions of the various parameters may cause deviation in layer properties, and thus, may result in anomalies in layers as well as the 3D object.
[0010] During the development phase of the manufacturing process, a user (such as a process engineer) may assess effects of different parameters, associated with the 3D printer, on various layers that will be printed during execution of a print job. This may allow the user to timely identify and prevent occurrence of any anomaly in a completed 3D object or a finished 3D product. As the data obtained from the 3D printer, during different print jobs may be of different types, the user may be unable to compare the different print jobs by employing same comparison technique. To change a comparison technique for each data type may be timeconsuming and may slow down the process of comparison.
[0011] In addition, as the user may effectively compare a limited number of parameters, a 3D printed object or 3D printed part may undergo multiple iterations to be able to meet a desired quality. Performing multiple iterations on one print job may slow down the printing process and may turn out to be cost ineffective.
[0012] The present subject matter discloses example approaches for comparing print jobs performed by a 3D printer. For example, the present subject matter may compare two or more print jobs to identify a cause of inconsistency between the two or more print jobs. The comparison of the two or more print jobs may be data-agnostic and may be performed for similar or different print jobs performed at same or on different 3D printers.
[0013] In accordance with the present subject matter, data sets associated with a first print job and a second print job are compared using a non-parametric model. In an example, the data sets may indicate values of input parameters associated with first print job and second print job and values of parameters measured during execution and upon completion of the first print job and the second print job. The non-parametric model may be a statistical model which does not make any assumptions of parameters for a given sample.
[0014] Based on the comparison, the non-parametric model may determine a deviation in the data sets. For example, the non-parametric model may identify a set of parameters that may be responsible for causing the deviation in the first print job and the second print job. The set of parameters identified by the non-parametric model may be provided to the user for taking actions, such as adjusting the values of the set of parameters to ensure that the first print job and the second job are consistent.
[0015] Accordingly, the present subject matter facilitates in ensuring that 3D printed objects or 3D printed are consistent. Further, as the non- parametric model is data-agnostic, i.e., capable of processing data collected from heterogeneous data sources, data pertaining to all parameters associated with the printjobs may be compared simultaneously. As a result, the comparison technique described by the present subject matter is fast and cost-efficient. [0016] The present subject matter is further described with reference to the accompanying figures. Wherever possible, the same reference numerals are used in the figures and the following description to refer to the same or similar parts. It should be noted that the description and figures merely illustrate principles of the present subject matter. It is thus understood that various arrangements may be devised that, although not explicitly described or shown herein, encompass the principles of the present subject matter. Moreover, all statements herein reciting principles, aspects, and examples of the present subject matter, as well as specific examples thereof, are intended to encompass equivalents thereof.
[0017] The manner in which the systems and methods are implemented are explained in detail with respect to FIGS. 1-5. While aspects of described systems and methods can be implemented in any number of different electronic devices, environments, and/or implementations, the examples are described in the context of the following system (s). It is to be noted that drawings of the present subject matter shown here are for illustrative purposes and are not drawn to scale.
[0018] FIG.1 illustrates a system 100 for comparison of print jobs performed by a 3D printer 102, according to an example. The system 100 may be communicatively coupled to the 3D printer 102. The 3D printer 102 may print a 3D object or a 3D part based on a digital file. The digital file may include a 3D model of the 3D object or the 3D part for being printed. Examples of the 3D printer 102 may include, but are not limited to, a fused deposition modeling (FDM) printer, a multi jet fusion (MJF) printer, and a selective laser sintering (SLS) printer. Examples of the system 100 may include, but are not limited to, a laptop, a notebook computer, a desktop computer.
[0019] The system 100 may include a processor 104 that may be communicatively coupled to the 3D printer 102. In an example, the processor 104 may be directly or remotely coupled to the 3D printer 102. The processor 104 may include microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any other devices that manipulate signals and data based on computer-readable instructions. Further, functions of the various elements shown in the figures, including any functional blocks labelled as “processor(s)”, may be provided through the use of dedicated hardware as well as hardware capable of executing computer-readable instructions.
[0020] Further, the system 100 may include a comparison engine 106 and a determination engine 108 coupled to the processor 104. The comparison engine 106 and the determination engine 108 may be implemented as a combination of hardware and programming, for example, programmable instructions to implement a variety of functionalities of the comparison engine 106 and the determination engine 108. In examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the comparison engine 106 and the determination engine 108 may be executable instructions. Such instructions may be stored on a non-transitory machine-readable storage medium which may be coupled either directly with the system 100 or indirectly (for example, through networked means). In the present examples, the non-transitory machine-readable storage medium may store instructions that, when executed by the processor, implement the comparison engine 106 and the determination engine 108. In other examples, the comparison engine 106 and the determination engine 108 may be implemented as electronic circuitry.
[0021] The comparison engine 106 and the determination engine 108, amongst other things, include routines, programs, objects, components, and data structures, which perform particular tasks or implement particular abstract data types. The comparison engine 106 and the determination engine 108 may also be implemented as, signal processor(s), state machine(s), logic circuitries, and/or any other device or component that manipulates signals based on operational instructions. Further, the comparison engine 106 and the determination engine 108 can be implemented by hardware, by computer-readable instructions executed by a processing unit, or by a combination thereof.
[0022] In an example implementation, the comparison engine 106 may obtain a first data set pertaining to a first print job and a second data set pertaining to a second print job. A print job may be a task, of printing an object represented by one or more digital files, to be performed on a 3D printer. In an example, the comparison engine 106 may request the 3D printer 102 to provide the first data set and the second data set to the system 100. In an alternative example, the system 100 may be a part of the 3D printer 102. In such case, the comparison engine 106 may fetch the first data set and the second data set from a memory (not shown) of the system 100.
[0023] In an example, the first data set may be indicative of values of input parameters associated with the first printjob and values of parameters measured during execution and upon completion of the first print job. Further, the second data set may be indicative of values of input parameters associated with the second print job and values of parameters measured during execution and upon completion of the second print job. The input parameters may be defined as the parameters that are specified by a user, such as a process engineer, before execution of the print job. For example, the input parameters may include a fusing temperature, a type of print material, print bed temperature, and so on.
[0024] Further, the parameters measured during execution of the printjob and upon completion of the print job may include, but are not limited to, parameters related to toolpath, nozzle temperature, layer thickness, layering direction, disturbance in print, drop in a print platform, print material feed rate, parameters related to a fusing agent, parameters related to a detailing agent, a shape of a finished 3D object or a finished 3D part, and a weight or mass of the finished 3D object or the finished 3D part.
[0025] In an example, the first print job and the second print job may be based on same input parameters and same print instructions. A print instruction may be a print command to perform a print job. The print command may refer to the digital file based on which the print job may be executed. In an example, the digital file may specify geometrical features of the 3D object or 3D part along with desired material properties of the 3D object or 3D part. Thus, comparison of the first print job and the second print job which are based on same print instructions, may facilitate the user in understanding a reason of variation in an outcome of each print job.
[0026] Further, the comparison engine 106 may compare the first data set and the second data set using a non-parametric model. The non- parametric model may be a statistical model that may rely on non-normal distribution or continuous data. For example, the non-parametric model may be applied on data collected from samples that do not follow a specific distribution.
[0027] In an example implementation, the comparison engine 106 may compare parameters associated with different data types. For example, the first data set may include a first parameter of time-series data and the second data set may also include a first parameter of time-series data. Further, a second parameter of the first data set may be a scalar data and a second parameter of the second data set may be a scalar data. In an example, the first data set and the second data set may include parameters of other data type, such as resource data, multi-dimensional data, or a combination thereof.
[0028] With respect to the 3D printer 102, the comparison engine 106 may utilize the non-parametric model to compare parameters of the first data set having a data type with corresponding parameters of the second data set of same data type.
[0029] In an example, based on the comparison, the determination engine 108 may determine a deviation between the first data set and the second data set. For example, the determination engine 108 may determine the deviation based on an output of the non-parametric model. Thereafter, the determination engine 108 may identify underlying parameters that may be causing the deviation. In an example implementation, the system 100 may determine deviation in parameters at different stages of the 3D printing process, such as warming, printing, cooling, and curing.
[0030] Accordingly, the system 100 employs non-parametric statistical models to determine deviation in the first print job and the second printjob. As based on a data type of a parameter, the non-parametric model may process data sets pertaining to multiple print jobs, the system 100 may compare corresponding parameters of different data set with different characteristics without employing separate comparison techniques for each parameter associated with each print job. Thus, the system 100 may facilitate the user in performing a causal analysis of various parameters involved throughout the print job. As a result, the system 100 may facilitate in avoiding multiple iterations for same print job to achieve an optimal result.
[0031] FIG. 2 illustrates a system 200 for comparison of print jobs performed by a first 3D printer 202 and a second 3D printer 204, according to an example. The system 200 may be similar to the system 100. The system 200 may include a processor 206, a comparison engine 208, and a determination engine 210. The processor 206, the comparison engine 208, and the determination engine 210 may be similar to the processor 104, the comparison engine 106, and the determination engine 108. The first 3D printer 202 and the second 3D printer 204 may be a multi-jet fusion (MJF) 3D printer. The MJF 3D printer may use an inkjet array to selectively apply fusing agent and detailing agent across a bed of powdered material, which are then fused by heating elements into a solid layer.
[0032] A 3D printer, such as the first 3D printer 202 or the second 3D printer 204, may include a thermal chamber 212 having a print bed 214 on which a plurality of layers may get printed in response to a print job of the 3D printer. Further, the 3D printer may include a plurality of sensors 216, such as humidity sensors, ambient temperature sensors, printhead sensors, thermal chamber pressure sensors, carriage pressure sensors, and so on.
[0033] In an example, a humidity sensor may be placed in a work area of the 3D printer. The work area may be the area in which the print bed 214 of the 3D printer is present. The humidity sensor may measure humidity of the work area before a printing process of the 3D printer is started or during the printing process. In another example, an ambient temperature sensor may be placed in the work area to measure the ambient temperature of the work area. Further, the print head sensors may include a temperature sensor to measure temperature of a printhead during the printing process. In an example, the thermal chamber pressure sensors may be placed in the thermal chamber 212 to measure air pressure inside the thermal chamber 212. In another example, a carriage pressure sensor may be placed in the work area in connection with a carriage which movably carries an inkjet array above the print bed 214. The carriage pressure sensor may measure a pressure being applied on the carriage during the printing process.
[0034] In an example implementation, the first 3D printer 202 and the second 3D printer 204 may be coupled to the system 200 through a network. The network may be a single network or a combination of multiple networks and may use a variety of different communication protocols. The network may be a wireless or a wired network, or a combination thereof.
[0035] Further, the system 200 may include a memory 218. The memory 218 may include any non-transitory computer-readable medium including, for example, volatile memory, such as static random-access memory (SRAM) and dynamic random-access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
[0036] In an example, the system 200 may include interface(s) 220. The interface(s) 220 may include a variety of interfaces, for example, interface(s) 220 for users. The interface(s) 220 may include data output devices. The interface(s) 220 may facilitate the communication of the system 200 with various communication and electronic devices, such as the first 3D printer 202 and the second 3D printer 204.
[0037] In an example, the comparison engine 208 may communicate with the processor 206 to obtain a first data set pertaining to a first print job and a second data set pertaining to a second print job. In an example, the first print job and the second printjob may be executed at the first 3D printer 202. In another example, the first print job and the second print job may be executed at the second 3D printer 204. In yet another example, the first print job may be executed at the first 3D printer 202 and the second print job may be executed at the second 3D printer 202. Accordingly, the processor 206 may communicate with the first 3D printer 202 or the second 3D printer 202 or both the first and second 3D printers 202, 204, to obtain the first data set and the second data set.
[0038] In an example, a data set, such as the first data set or the second data set, may include values of operational parameters associated with entire process of a print job, such as a first print job or the second print job. The operational parameters indicate parameters associated with a 3D printer that are involved in execution of a print job. In an example, the operational parameters may include data pertaining to sensors associated with the 3D printer 102. In addition, the parameters may include layer data pertaining to the attributes of each layer associated with the first print job and the second print job. Examples of the layer data may include, but are not limited to, layer density data, fusing agent data, detailing agent data, z position of the layer, and so on. In an example, the fusing agent data may be a volume of a fusing agent used while printing a particular layer. The fusing agent may facilitate in fusing together a layer of powder (raw material). In another example, the detailing agent data may be a volume of a detailing agent that may be employed to enhance part resolution. In an example, the Z position denotes how far a layer is from a first layer in a vertical direction. Further, the layer density data may indicate how compact or dense a layer is.
[0039] In another example, the operational parameters may include parameters involved prior to execution of the print job, parameters involved during execution of the print job, and parameters recorded upon completion of the print job. The parameters that may be involved prior to execution of the print job may be referred to as input parameters. The input parameters indicate different aspects of the 3D printer that are defined before the print job is executed. Examples of the input parameters may include, but are not limited to, type of a print material, print speed, print bed temperature, layer volume, and fusing temperature. In an example implementation, the first print job and the second print job may be based on same or different input parameters. For example, the user may select different layer volume or different print bed temperatures for two print jobs, or the user may maintain same layer volume and same print bed temperatures for the two print jobs.
[0040] Further, the parameters involved during execution of the print job may indicate signals recorded from a 3D printer when various layers associated with a printjob are undergoing print. Examples of the parameters involved during execution of the print job may include parameters related to a toolpath, nozzle temperature, layer thickness, layering direction, disturbance in print, drop in a print platform, print material feed rate, parameters related to a fusing agent, parameters related to a detailing agent. In addition, the parameters measured upon completion of the print job may indicate final specifications of a 3D printed object or part thereof. Examples of parameters measured upon completion of the print job may include, but are not limited to, shape of the 3D printed object, a weight of the 3D printed object, size of the 3D printed object, and an alignment of 3D printed object.
[0041] In an example implementation, the first print job and the second print job may be based on same or different print materials. For example, the first print job and the second print job may be performed using polymer material. In another example, the first print job may be performed using a polymer material while the second printjob may be performed using a metallic material. In an example, the first print job may use a fresh raw material while the second print job may reuse a material for printing.
[0042] In an example implementation, the first print job and the second printjob may be based on same or different print instructions. A print instruction may include a print command associated with a print job. The print command may refer to the digital file based on which the print job may be executed. For example, the digital file may specify geometrical features of the 3D object or 3D part along with properties of the print material for printing the 3D object or 3D part. For example, in case the print material is partly new and partly reused, the digital file may specify a percentage of new material and reused material for being used in the print job.
[0043] In an example implementation, the comparison engine 208 may employ a non-parametric model 222 to compare the first data set with the second data set. The non-parametric model 222 may be Kolmogorov- Smirnov (KS) test. The KS test is a distribution-free statistic. The KS-test may be a one-sample KS test or a two-sample KS test. The one-sample KS test may be used to test whether a sample comes from a reference distribution. In an example, the two-sample KS test is used to test whether two samples come from a same distribution. [0044] In the present implementation, the comparison engine 208 may employ a univariate two-sample KS-test. To perform the two-sample KS-test, the comparison engine 208 may derive a distribution for the first data set and the second data set. For example, the distribution for the first data set may represent the first data set as a sample Xi, X2, X3, ... , Xm of size m drawn from a first unknown distribution. Likewise, the distribution for the second data set may represent that the second data set as a sample Y1, Y2, Y3, ... , Yn of size n drawn from a second unknown distribution.
[0045] The two-sample KS test is performed to test a null hypothesis that the first data set and the second data set have same distribution. To test the null hypothesis, the comparison engine 208 may generate an empirical Cumulative Distribution Function (eCDF) for the first data set of n samples and the second data set of m samples, as:
Figure imgf000015_0001
where, Fn(x) is the eCDF for the first data set and Gm(x) is the eCDF for the second data set, x is a particular value from a respective sample of the first data set and the second data set.
[0046] The comparison engine 208 may thereafter graphically plot the eCDFs, Fm(x) and Gn(x). After plotting, the comparison engine 208 may calculate a maximum vertical distance ‘D’ between the eCDFs Fm(x) and
Figure imgf000015_0002
Dn = max |Fm(x) - Gn(x)|
[0047] The comparison engine 208 may cross-reference the maximum vertical distance ‘D’ with a pre-defined two-sample KS table. Based on the pre-defined two-sample KS table, a value corresponding to ‘D’ is obtained. Such obtained value may be referred to as a KS value. Further, the comparison engine 208 may obtain a p-value corresponding to the KS value. The p-value may represent a degree of confidence to reject the null hypothesis based on the KS value. In the present implementation, the p-value is considered as 0.05.
[0048] Based on the KS value and the p-value, the comparison engine 208 may accept or reject the null hypothesis regarding the distribution of the first data set and the second data set. In an example, if the KS value is small or the p-value is high, the comparison engine 208 may accept the null hypothesis that the distribution of the first data set and the second data set is same. The acceptance of the null hypothesis may indicate that the degree of deviation between the parameters of the first data set and the second data set is negligible. Therefore, such parameters may not be considered for the purposes of identifying a root cause of the deviation.
[0049] In an example, if the KS value is high or the p-value is small, the comparison engine 208 may reject the null hypothesis, i.e., the comparison engine 208 may identify that the first data set and the second data set have different distributions. The rejection of the null hypothesis may indicate that the degree of deviation between the parameters of the first data set and the second data set is high. Therefore, such parameters may be considered for the purposes of identifying the root cause of a deviation.
[0050] In an example implementation, the comparison engine 208 may also perform partial comparison between the first data set and the second data set. The partial comparison may include comparing common parameters that are available for the first print job and the print job. Considering a scenario where the first data set pertaining to the first print job may include values associated with 300 parameters. Further, the second data set pertaining to the second print job may include values associated with 250 parameters. In such scenario, the comparison engine 208 may perform comparison of those parameters that are common in the first data set and the second data set. Thus, when the data sets include values of different number of parameters, the system 200 may be capable of identifying common parameters from the data sets and performing comparison of the identified common parameters, instead of all together halting the comparison.
[0051] In an example implementation, the determination engine 210 may compute a mean of values for each parameter, for which the null hypothesis is rejected, from the first data set and the second data set. For example, layer thickness may be a parameter for which the null hypothesis is rejected by the comparison engine 208. Further, considering that the first print job includes 1000 layers printed one over the other and the second print job includes 2000 layers printed one over the other. Accordingly, the determination engine 210 may compute a mean (MLTI ) of values corresponding to the layer thickness across all 1000 layers printed in the first print job and a mean (MLT2) of values corresponding to the layer thickness across all 2000 layers printed in the second print job.
[0052] Further, the determination engine 210 may compute a difference between the mean values of each parameter of the first data set and the mean values of corresponding parameter of the second data set. For example, again considering the example of layer thickness as the parameter, the determination engine 210 may compute a difference DLT of MLTI and MLT2.
[0053] In addition, the determination engine 210 may assign a weight to the difference between mean values of each parameter of the first data set and the second data set. The determination engine 210 may also assign a weight with the KS value for the corresponding parameter of the first data set and the second data set. In the present implementation, the determination engine 210 may assign equal weights to the difference of mean values and the KS values of each parameter. In an example, the determination engine 210 may assign different weights to the difference of mean values and the KS values of each parameter. For example, the weights may be set unequal to give preference to KS value or difference in mean values. Further, in the present implementation, the determination engine 210 may assign equal weights to all parameters. In an example, the determination engine 210 may assign different weights to different parameters.
[0054] Further, the determination engine 210 may combine a weighted difference in mean values of each parameter with a weighted KS value for the corresponding parameter. For example, the determination engine 210 may add the weighted difference in mean values of each parameter to a weighted KS value for the corresponding parameter, to obtain a score ‘S’ for each parameter. For example, score ‘S’ of a parameter is computed as:
S = (Weight for mean * difference in mean) + (Weight for KS value * KS value)
[0055] Based on the score ‘S’, the determination engine 210 may rank the parameters in a specified order. For example, the determination engine 210 may arrange the parameters in a descending order of the score ‘S’ associated with the parameters. Therefore, a parameter having highest score will be ranked as first and a parameter having a lowest score will be ranked as last. In an example, parameters for which the score is above a pre-determined threshold value may be considered to cause the deviation between the first data set and the second data set. Thus, the user may obtain actionable insights from the comparison of the first print job and the second print job, to understand a behaviour of the first 3D printer 202 and the second 3D printer 204.
[0056] In an example, the determination engine 210 may categorize the deviation between the first data set and the second data set for each parameter associated with the first 3D printer 202 and the second 3D printer 204. In an example, the determination engine 210 may categorize the similar parameters together to show a deviation in values of similar parameters. For example, using the interface(s) 220, the determination engine 210 may club similar parameters, such as servo signals, temperature sensor signals, layer signals, and so on. In another example, the determination engine 210 may categorize the parameters associated with different stages of the 3D printing process, such as a pre-heating stage, a printing stage, a cooling stage, and a curing stage. Thus, the user may compare multiple parameters to perform a casual analysis of deviation in the first data set and the second data set.
[0057] Further, the determination engine 210 may generate a report to indicate ranks associated with the parameters. The determination engine 210 may also render on the interface(s) 214 a set of parameters that may be responsible for causing the deviation in the first data set and the second data set. The interface(s) 220 may render graphs indicating plots of various values of the parameters associated with the first print job and the second print job. Such categorization of values pertaining to all the parameters associated with the print jobs may facilitate the user to optimize an output of the print jobs in a fast and cost-effective way.
[0058] Although the present subject matter has been explained with reference to the two-sample KS test, the present subject matter may be implemented using other non-parametric models, such as Mann-Whitney II test, two-sample t test, Wilcoxon rank sum test, and so on.
[0059] FIGS. 3, 4A, and 4B illustrate methods 300 and 400 for comparing print jobs performed by a first three-dimensional (3D) printer and a second 3D printer, according to various examples. FIG. 4A describes various steps of the method 400 which is continued in FIG. 4B and therefore FIGS. 4A and 4B are to be considered as the same method. The first 3D printer and the second 3D printer are similar to the 3D printer 102 which may fabricate a 3D object, or a part of the 3D object based on the print job. The methods 300 and 400 can be implemented by processor(s) or device(s) through any suitable hardware, a non-transitory machine readable medium, or a combination thereof. Further, although the methods 300 and 400 are described in context of the system and the first 3D printer and the second 3D printer that are similar to the aforementioned system 100 and the 3D printer 102, other suitable devices or systems may be used for execution of the methods 300 and 400.
[0060] In some examples, processes involved in the methods 300 and 400 can be executed based on instructions stored in a non-transitory computer-readable medium. The non-transitory computer-readable medium may include, for example, digital memories, magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
[0061] Referring to FIG. 3, at block 302, a first data set may be obtained from the first 3D printer and a second data set may be obtained from the second 3D printer. In an example, a processor (not shown) of the system may obtain the first data set and the second data set from the first 3D printer and the second 3D printer, respectively. In an example implementation, the comparison engine may obtain the first data set pertaining to the first print job from the first 3D printer and the second data set pertaining to the second print job from the second 3D printer.
[0062] The first data set and the second data set may include values of a plurality of parameters associated with the first printjob and the second print job, respectively. For example, the plurality of parameters may include operating parameters associated with a print job. The operating parameters may include parameters defined prior to execution of the print job, parameters involved during execution of the print job, and parameters measured upon completion of the print job. Examples of such parameters may include, but are not limited to, type of a print material, print speed, print bed temperature, layer volume, layer thickness, drop in a print platform, post drop surface of a layer, print surface of a layer, post spread surface of a layer, disturbance in print, shape and configuration of a printed 3D object and weight or mass of the printed 3D object.
[0063] In an example, the user may define same or different parameters prior to execution of the first print job and the second print job. In another example, the first print job and the second print job may be based on same print instructions or different print instructions. A print instruction may be a print command to perform a print job. The print command may refer to the digital file based on which the print job may be executed.
[0064] At block 304, the method 300 may include comparing, by a non-parametric model, the first data set and the second data set to determine a degree of deviation between the first data set and the second data set. For example, the comparison engine may utilize the non- parametric model, such as a Kolmogorov-Smirnov (KS) test, to determine how the first data set deviates from the second data set. A non-parametric model may be a statistical model which does not rely on any pre-defined distribution.
[0065] At block 306, the method 300 may include computing and associating a score with each of the plurality of parameters based on a degree of deviation between the first data set and the second data set. In an example, the determination engine may compute the score for each of the plurality of parameters. The score may indicate a contribution of a parameter with respect to a deviation determined between the first data set and the second data set. Considering an example where temperature of a thermal chamber of a 3D printer is set to be 35°C. If the temperature of the thermal chamber varies, other parameters associated with the 3D printer may get effected. For example, nozzle temperature, print bed temperature, print thickness, etc. may also get varied. Accordingly, the score associated with thermal chamber temperature may be high to indicate the contribution of thermal chamber temperature in deviation in values of other parameters. [0066] In addition, at block 308, the method 300 may include based on the score, determining a set of parameters indicative of a cause of deviation between the first data set and the second data set. For example, the determination engine may rank the plurality of parameters in an order of corresponding scores. For example, the determination engine may rank the plurality of parameters in a descending order of the score. Thus, a highest scoring parameter may be ranked first, and a lowest scoring parameter may be ranked last. Upon ranking the parameters, the parameters having the score above a pre-determined threshold value may be determined as the set of parameters causing deviation between the first data set and the second data set.
[0067] The present subject matter therefore employs non-parametric models to efficiently compare data sets from unknown distributions. The present subject matter further facilitates in optimizing an output of a print job by timely identifying factors responsible for causing deviation in two print jobs.
[0068] Referring to FIGS. 4A and 4B, in an example implementation, at block 402, the method 400 may include obtaining a first data set from a first 3D printer. The first data set may pertain to a first print job that may be performed on the first 3D printer. Further, the first data set may be indicative of values of a plurality of parameters associated with the first print job. Examples of the plurality of parameters may include, but are not limited to, print material, print speed, layer density, fusing agent, detailing agent, z position of a layer, print material feed rate, shape of a finished 3D object, and weight or mass of a finished 3D object.
[0069] At block 404, the method 400 may include obtaining a second data set from a second 3D printer. The second data set may pertain to a second print job that may be performed on the second 3D printer. Further, the second data set may be indicative of values of a plurality of parameters associated with the first print job. In an example, the first print job and the second print job may be based on same input parameters and print instructions. Thus, comparing the first print job performed at the first 3D printer with the second print job performed at the second 3D printer facilitates in understanding device to device repeatability of a given printing process.
[0070] At block 406, the method 400 may include comparing the first data set with the second data set. In an example, the comparison engine may use a non-parametric model to compare the first data set with the second data set. The non-parametric model does not make any implicit assumptions about underlying distribution of a sample. Therefore, the non- parametric model performs an effective comparison of parameters involved across multiple printjobs. In an example, the non-parametric model is a two- sample Kolmogorov-Smirnov (KS) test with a null hypothesis that the first data set and the second data set are drawn from similar distributions.
[0071] To perform the two-sample KS-test, the comparison engine may derive a distribution for the first data set and the second data set. For example, the distribution for the first data set may represent the first data set as a sample Xi, X2, X3,... , Xm of size m drawn from a first unknown distribution. Likewise, the distribution for the second data set may represent that the second data set as a sample Y1 , Y2, Y3, ... , Yn of size n drawn from a second unknown distribution.
[0072] Based on the comparison, an output value of the non- parametric model may be determined for each parameter of the first data set and the second data set. In an example, the output value of the KS test is referred to as a KS value that depicts a maximum vertical distance between graphs plotted for empirical Cumulative Distribution Function (eCDF) for each of the first data set and the second data set.
[0073] To test the null hypothesis, the comparison engine 208 may generate an eCDF for the first data set of n samples and the second data set of m samples, as: Number of sample observations < x
Fn 00 ~ n
Number of sample observations < x m 00 ~ m where, Fn(x) is the eCDF for the first data set and Gm(x) is the eCDF for the second data set, x is a particular value from a respective sample of the first data set and the second data set.
[0074] Thereafter, the comparison engine may calculate a maximum vertical distance ‘D’ between a graphical plot of the eCDFs Fm(x) and Gn(x), as:
Dn = max \Fm(x') - Gn(x)|
[0075] Based on the maximum vertical distance ‘D’, the comparison engine may determine the output value (KS value) of the non-parametric model. Further, the comparison engine may obtain a p-value corresponding to the KS value. The p-value may represent a degree of confidence to reject the null hypothesis based on the KS value. In the present implementation, the p-value is considered as 0.05.
[0076] At block 408, the method 400 may include based on the output value of the non-parametric model, accepting or rejecting the null hypothesis of the non-parametric model for each of the plurality of parameters. In an example, the comparison engine 208 may accept the null hypothesis for those parameters for which the KS value is high, i.e. , the parameters that exhibit less deviation are assumed to be drawn from similar distributions. In another example, the comparison engine 208 may reject the null hypothesis for those parameters for which the KS value is small, i.e., the parameters that exhibit considerable deviation are assumed to be drawn from different distributions.
[0077] At block 410, the method 400 may include computing a score for each of the plurality of parameters. For example, the determination engine may compute a mean of values for each parameter, for which the null hypothesis is rejected, from the first data set and the second data set. Further, the determination engine may compute a difference between the mean values of each parameter of the first data set and the mean values of corresponding parameter of the second data set.
[0078] In addition, the determination engine may assign a weight to the difference between mean values of each parameter of the first data set and the second data set. The determination engine may also assign a weight with the KS value for the corresponding parameter of the first data set and the second data set.
[0079] Further, the determination engine may combine a weighted difference in mean values of each parameter with a weighted KS value for the corresponding parameter. For example, the determination engine may add the weighted difference in mean values of each parameter to a weighted KS value for the corresponding parameter, to obtain an individual score ‘S’ for each parameter.
[0080] At block 412, the method 400 may include based on the score, assigning a rank to each of the plurality of parameters. The rank indicates a degree of deviation in the first data set with respect to the second data set. In an example, the determination engine may assign the rank to each parameter and arrange the plurality of parameters in an ascending order or a descending order of respective score of each parameter.
[0081] At block 414, the method 400 may include determining a set of parameters as indicative of a cause of deviation between the first data set and the second data set. In an example, the determination engine may determine those parameters as the parameters responsible for causing the deviation, for which the rank exceeds a pre-defined threshold. For example, when arranged in the descending order of the respective scores, the parameters having ranks above 20 may be determined as the deviation causing parameters. [0082] At block 416, the method 400 may include generating a report to categorize the plurality of parameters based on the rank associated with each of the plurality of parameters. In an example, the determination engine 210 may generate the report to enlist the plurality of parameters based on the ranks. Based on the report, the user may take corrective actions at the development phase of the 3D printing process, thereby saving time, minimizing wastage, and reducing cost involved in the 3D printing process.
[0083] FIG. 5 illustrates an example network environment 500 using a non-transitory computer-readable medium 502 comparing print jobs performed by a first three-dimensional (3D) printer and a second 3D printer, according to an example. The network environment 500 may be a public networking environment or a private networking environment. In one example, the network environment 500 includes a processing resource 504 communicatively coupled to the non-transitory computer-readable medium 502 through a communication link 506. For example, the processing resource 504 may be a processor of a system, such as the system communicating with the first 3D printer and the second 3D printer, for fetching and executing computer-readable instructions from the non- transitory computer-readable medium 502.
[0084] The non-transitory computer-readable medium 502 may be, for example, an internal memory device or an external memory device. In one example, the communication link 506 may be a direct communication link, such as one formed through a memory read/write interface. In another example, the communication link 506 may be an indirect communication link, such as one formed through a network interface. In such a case, the processing resource 504 may access the non-transitory computer-readable medium 502 through a network 508. The network 508 may be a single network or a combination of multiple networks and may use a variety of communication protocols. [0085] The processing resource 504 and the non-transitory computer-readable medium 502 may also be communicatively coupled to data sources 510 over the network 508. The data sources 510 may include, for example, a database. The data sources 510 may be used by the database administrators and other users to communicate with the processing resource 504.
[0086] In an example, the non-transitory computer-readable medium 502 includes a set of computer-readable and executable instructions for comparing print jobs performed by the first 3D printer and the second 3D printer. The set of computer-readable instructions may include instructions as explained in conjunction with FIGS. 1 to 4B. The set of computer- readable instructions, referred to as instructions hereinafter, may be accessed by the processing resource 504 through the communication link 506 and subsequently executed to perform acts for comparing print jobs performed by the first 3D printer and the second 3D printer.
[0087] Referring to FIG. 5, in an example, the non-transitory computer-readable medium may include instructions 512 to cause a processor, coupled to the first 3D printer, to obtain a first data set pertaining to a first print job. The non-transitory computer-readable medium 502 may also include instructions 514 to cause the processor, coupled to the second 3D printer, to obtain a second data set pertaining to a second print job.
[0088] In an example, the first data set and the second data set may be indicative of values of a plurality of parameters associated with the first print job and the second print job, respectively. In an example, the first data set and the second data set may include scalar data, resource data, multidimensional data, time-series data, or a combination thereof. In an example, the comparison engine may obtain the first data set and the second data set.
[0089] Further, the first print job and the second print job may be based on different print instructions. In an example, a print instruction may indicate a command to print a 3D object, or a 3D part as indicated in a digital file. The digital file may include geometrical features of the 3D object or the 3D part along with desired material properties of the 3D object or the 3D part. Therefore, the first print job and the second print job are executed to print different 3D objects or 3D parts.
[0090] In an example implementation, the first print job and the second print job may be based on same or different input parameters. For example, the user may select different layer volume or different print bed temperatures for two print jobs, or the user may maintain same layer volume and same print bed temperatures for the two print jobs.
[0091] In another example implementation, the first print job and the second print job may be based on same or different print materials. For example, the first print job and the second print job may be performed using polymer material. In another example, the first print job may be performed using a polymer material while the second printjob may be performed using a metallic material. In an example, the first print job may use a fresh raw material while the second print job may reuse a material for printing.
[0092] The non-transitory computer-readable medium 502 may also include instructions 516 to compare the first data set and the second data set to ascertain a degree of deviation in each of the plurality of parameters associated with the first data set and the second data set. In an example, the first data set and the second data set may be compared using a non- parametric model, such as a Kolmogorov-Smirnov (KS) test. In an example, the comparison engine may compare the first data set and the second data set using the non-parametric model.
[0093] Further, the non-transitory computer-readable medium 502 may also include instructions 518 to, based on the ascertainment, identify a set of parameters for which the degree of deviation is above a pre-defined value. In an example, the determination engine may compute a score corresponding to the identified set of parameters. The score may be computed based on an output value of the non-parametric model and a difference between mean values of the first data set and the second data set. Based on the score, the determination engine may identify the set of parameters for which the degree of deviation is above the pre-defined value. [0094] The non-transitory computer-readable medium 502 may also include instructions 520 to generate a report to indicate the set of parameters as a cause of deviation. In addition, upon identification of the set of parameters, the non-transitory computer-readable medium 502 may include instructions to compute a score corresponding to each of the set of parameters.
[0095] Although aspects for the present disclosure have been described in a language specific to structural features and/or methods, it is to be understood that the appended claims are not limited to the specific features or methods described herein. Rather, the specific features and methods are disclosed as examples of the present disclosure. 1

Claims

We claim:
1 . A system comprising: a processor, communicatively coupled to a three-dimensional (3D) printer, to send print instructions to the 3D printer to execute a print job; a comparison engine, coupled to the processor, to: obtain a first data set pertaining to a first print job and a second data set pertaining to a second print job, the first data set being indicative of values of input parameters associated with the first print job and values of parameters measured during execution and upon completion of the first print job, and the second data set being indicative of values of input parameters associated with the second print job and values of parameters measured during execution and upon completion of the second print job; and compare, using a non-parametric model, the first data set with the second data set; and a determination engine, coupled to the processor, to: determine a deviation between the first data set and the second data set based on the comparison.
2. The system as claimed in claim 1 , wherein the first print job and the second print job are based on same input parameters and same print instructions.
3. The system as claimed in claim 1 , wherein the first print job and the second print job are based on different input parameters and same print instructions.
4. The system as claimed in claim 1 , wherein the first print job and the second print job are based on different input parameters and different print instructions.
5. The system as claimed in claim 1 , wherein the first print job and the second print job are based on one of a same print material and a different print material.
6. The system as claimed in claim 1 , wherein the determination engine is to categorize the deviation between the first data set and the second data set for each parameter associated with the 3D printer.
7. The system as claimed in claim 6, wherein the parameter associated with the 3D printer include data pertaining to sensors associated with the 3D printer and attributes pertaining to each layer associated with the first print job and the second print job.
8. A method comprising: obtaining, by a processor, a first data set and a second data set from a first three-dimensional (3D) printer and a second 3D printer, respectively, the first data set pertaining to a first print job and the second data set pertaining to a second print job, the first data set and the second data set being indicative of values of a plurality of parameters associated with the first print job and the second print job, respectively; comparing, by a non-parametric model, the first data set and the second data set to determine a degree of deviation between the first data set and the second data set; computing and associating, a score with each of the plurality of parameters based on the degree of deviation; and based on the score, determining a set of parameters indicative of a cause of deviation between the first data set and the second data set.
9. The method as claimed in claim 8, wherein the computing the score comprises combining an output value of the non-parametric model with a difference between mean of the first data set and mean of the second data set.
10. The method as claimed in claim 8, wherein the determining the set of parameters comprises assigning, based on the score, a rank to each of the plurality of parameters, wherein the rank indicates the degree of deviation with respect to the first data set and the second data set.
11. The method as claimed in claim 8, wherein the determining the set of parameters comprises determining if the score associated with each of the plurality of parameters exceeds a pre-determined threshold value.
12. The method as claimed in claim 10, wherein the method comprises generating a report indicating ranks associated with the plurality of parameters.
13. A non-transitory computer-readable medium comprising computer- readable instructions, which, when executed by a processing resource of a system, cause the processing resource to: obtain, from a first three-dimensional (3D) printer, a first data set pertaining to a first print job; obtain, from a second 3D printer, a second data set pertaining to a second print job, the first data set and the second data set being indicative of values of a plurality of parameters associated with the first print job and the second printjob, respectively, and the first print job and the second print job being based on different print instructions; compare, using a non-parametric model, the first data set and the second data set to ascertain a degree of deviation in each of the plurality of parameters associated with the first data set and the second data set; based on the ascertainment, identify a set of parameters for which the degree of deviation is above a pre-defined value; and generate a report to indicate the set of parameters as a cause of deviation.
14. The non-transitory computer-readable medium as claimed in claim 13, wherein the first data set and the second data set include scalar data, resource data, multi-dimensional data, time-series data, or a combination thereof.
15. The non-transitory computer-readable medium as claimed in claim 13, wherein upon identification of the set of parameters, the processing resource is to compute a score corresponding to each of the set of parameters.
PCT/US2022/013352 2022-01-21 2022-01-21 Print jobs by three-dimensional printers WO2023140860A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2022/013352 WO2023140860A1 (en) 2022-01-21 2022-01-21 Print jobs by three-dimensional printers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2022/013352 WO2023140860A1 (en) 2022-01-21 2022-01-21 Print jobs by three-dimensional printers

Publications (1)

Publication Number Publication Date
WO2023140860A1 true WO2023140860A1 (en) 2023-07-27

Family

ID=87349085

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/013352 WO2023140860A1 (en) 2022-01-21 2022-01-21 Print jobs by three-dimensional printers

Country Status (1)

Country Link
WO (1) WO2023140860A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10234848B2 (en) * 2017-05-24 2019-03-19 Relativity Space, Inc. Real-time adaptive control of additive manufacturing processes using machine learning
EP3495904A1 (en) * 2017-12-07 2019-06-12 Siemens Aktiengesellschaft Method and apparatus for predicting manufacturing parameters of a product to be manufactured in a 3d-printing process
WO2020072057A1 (en) * 2018-10-04 2020-04-09 Hewlett-Packard Development Company, L.P Object orientation and/or position for additive manufacturing
WO2021126345A1 (en) * 2019-12-17 2021-06-24 Northrop Grumman Systems Corporation Machine-learning-based additive manufacturing using manufacturing data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10234848B2 (en) * 2017-05-24 2019-03-19 Relativity Space, Inc. Real-time adaptive control of additive manufacturing processes using machine learning
EP3495904A1 (en) * 2017-12-07 2019-06-12 Siemens Aktiengesellschaft Method and apparatus for predicting manufacturing parameters of a product to be manufactured in a 3d-printing process
WO2020072057A1 (en) * 2018-10-04 2020-04-09 Hewlett-Packard Development Company, L.P Object orientation and/or position for additive manufacturing
WO2021126345A1 (en) * 2019-12-17 2021-06-24 Northrop Grumman Systems Corporation Machine-learning-based additive manufacturing using manufacturing data

Similar Documents

Publication Publication Date Title
Deswal et al. Modeling and parametric optimization of FDM 3D printing process using hybrid techniques for enhancing dimensional preciseness
US10328686B2 (en) Determining print-time for generation of 3D objects based on 3D printing parameters
US11285673B2 (en) Machine-learning-based additive manufacturing using manufacturing data
US20200293021A1 (en) Method of optimizing machining simulation condition, machining simulation device, machining simulation system and program
WO2018127827A1 (en) Systems and methods for automatic three-dimensional object printing
US20220215133A1 (en) Digital build package for manufacturing a product design
JP6928175B2 (en) Structural volume acquisition methods and equipment, non-temporary computer-readable storage media and printers
JP2021132140A (en) Information processing system and simulation method
US11969949B2 (en) Custom three-dimensional (3D) print mode generation
TWI584134B (en) Method for analyzing variation causes of manufacturing process and system for analyzing variation causes of manufacturing process
US20190070785A1 (en) Design rules for printing three-dimensional parts
CN111459094A (en) Regional selection method for temperature sensitive point combination in machine tool spindle thermal error modeling
CN106273441A (en) The control method of print temperature and device thereof
TW202022633A (en) Optimization method and module thereof based on feature extraction and machine learning
Balta et al. Control-oriented modeling and layer-to-layer stability for fused deposition modeling: a kernel basis approach
JP2023515015A (en) Systems, methods and media for manufacturing processes
Bağbaba Improving collective i/o performance with machine learning supported auto-tuning
WO2023140860A1 (en) Print jobs by three-dimensional printers
US20230234136A1 (en) Heat-aware toolpath reordering for 3d printing of physical parts
CN114986833B (en) Dynamically regulated injection molding method, system, device and medium
Sampedro et al. 3D-AmplifAI: An Ensemble Machine Learning Approach to Digital Twin Fault Monitoring for Additive Manufacturing in Smart Factories
CN115026310B (en) SLM additive manufacturing powder paving porosity prediction method based on support vector regression
CN111914380A (en) Part model determination method and device, computer equipment and storage medium
Yu et al. Offline prediction of process windows for robust injection molding
TWI801820B (en) Systems and methods for manufacturing processes

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: 22922448

Country of ref document: EP

Kind code of ref document: A1