Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DETERMINING START POSITION IN THREE-DIMENSIONAL PRINTERS
Document Type and Number:
WIPO Patent Application WO/2019/006071
Kind Code:
A1
Abstract:
A method includes monitoring a rate of change of an output of a non-contact distance sensor forming part of a three-dimensional printer that includes the non- contact distance sensor, a build plate, and at least one data processor, wherein the non-contact distance sensor is arranged above the build plate and the output of the non-contact distance sensor characterizes a distance between the non-contact distance sensor and the build plate, the build plate configured to be in motion towards the non- contact distance sensor and/or the non-contact distance sensor configured to be in motion towards the build plate; stopping, in response to identifying a decrease in the rate of change of the output of the non-contact distance sensor, the build plate at a stop position; calculating, based on the stop position, a start position for the build plate; and providing the start position. Related apparatus, systems, techniques and articles are also described.

Inventors:
TORRES DIEGO (US)
KENY CHETAN (US)
BERLIN ANDY (US)
THOMAS ANISH (US)
DAVIDSON TOM (US)
Application Number:
PCT/US2018/039916
Publication Date:
January 03, 2019
Filing Date:
June 28, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
RIZE INC (US)
International Classes:
B33Y50/02; B29C64/10; B29C64/20; B29C64/30; B33Y10/00; B33Y50/00
Foreign References:
US20170057173A12017-03-02
US20130242317A12013-09-19
US20170050383A12017-02-23
US20140265049A12014-09-18
US20150147424A12015-05-28
US20150273583A12015-10-01
US20150130100A12015-05-14
US20170165752A12017-06-15
Attorney, Agent or Firm:
AMENDT, Kevin, C. et al. (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A method comprising :

monitoring a rate of change of an output of a non-contact distance sensor forming part of a three-dimensional printer that includes the non-contact distance sensor, a build plate, and at least one data processor, wherein the non-contact distance sensor is arranged above the build plate and the output of the non-contact distance sensor characterizes a distance between the non-contact distance sensor and the build plate, the build plate configured to be in motion towards the non-contact distance sensor and/or the non-contact distance sensor configured to be in motion towards the build plate;

stopping, in response to identifying a decrease in the rate of change of the output of the non-contact distance sensor, the build plate at a stop position;

calculating, using the at least one data processor and based on the stop position, a start position for the build plate; and

providing the start position.

2. The method of claim 1, wherein the three-dimensional printer includes a nozzle and the decrease in the rate of change of the output indicates that the nozzle has made contact with the build plate.

3. The method of claim 1, further comprising:

positioning the non-contact distance sensor above the build plate of the three- dimensional printer;

raising the build plate toward the non-contact distance sensor and an extruder nozzle;

identifying when a rate of change of the non-contact distance sensor reading decreases; and

recording a position of the build plate upon stopping as the stop position.

4. The method of claim 1, further comprising positioning the build plate at the calculated start position.

5. The method of claim 3, wherein the build plate is positioned at the calculated start position without operator intervention.

6. The method of claim 1, further comprising issuing a warning in response to determining that the start position indicates the build plate is not installed.

7. The method of claim 1, further comprising issuing a warning in response to determining that the start position indicates the build plate is not properly installed.

8. The method of claim 1, further comprising obtaining a plurality of start positions by repeating the monitoring, the stopping, and the calculating at multiple positions across the build plate.

9. The method of claim 8, further comprising calculating a best fit plane from the plurality of start positions.

10. The method of claim 9, further comprising calculating an alternate coordinate system with an alternate X and Y axes lying in the calculated best fit plane.

11. The method of claim 10, further comprising building a three-dimensional part in the alternate coordinate system.

12. The method of claim 1, further comprising automatically positioning the build plate at the calculated start position.

13. The method of claim 1, further comprising performing calculations based on the calculated start position to define a coordinate system.

14. The method of claim 13, further comprising building a three-dimensional object in the defined coordinate system.

15. The method of claim 1, wherein providing the start position includes transmitting, storing, processing, and/or displaying the start position.

16. The method of claim 1, wherein the three-dimensional printer includes an extruder assembly including an extruder nozzle and a heat source.

17. The method of claim 1, wherein the three-dimensional printer includes a fusion deposition modeling apparatus, a laminated object manufacturing apparatus, and/or a photopolymer deposition apparatus.

18. The method of claim 1, wherein the three-dimensional printer includes a print head and ink delivery system that includes a print head including a thermal print head, a piezo print head, a MEMS print head, an electrostatic print head, a plotter-style single nozzle unit, a continuous ink jet, and/or a drop-on demand system.

19. The method of claim 1, wherein the non-contact distance sensor includes a sonar sensor, capacitive sensor, Linear Variable Differential Transformer (LVDT), photo diode, and/or phototransistor.

20. A system comprising:

a build plate;

a non-contact distance sensor arranged above the build plate, an output of the non-contact distance sensor characterizes a distance between the non-contact sensor and the build plate, the build plate configured to be in motion towards the non-contact distance sensor and/or the non-contact distance sensor configured to be in motion towards the build plate; and

at least one data processor configured to monitor a rate of change of the output of the non-contact distance sensor, stop, in response to identifying a decrease in the rate of change of the output of the non-contact distance sensor, the build plate at a stop position, calculate, based on the stop position, a start position for the build plate, and provide the start position.

21. The system of claim 1, further comprising a nozzle and wherein the decrease in the rate of change of the output indicates that the nozzle has made contact with the build plate.

22. The system of claim 20, wherein the at least one data processor is further configured to:

position the non-contact distance sensor above the build plate;

raise the build plate toward the non-contact distance sensor and a nozzle; identify when a rate of change of the non-contact distance sensor reading decreases; and

record a position of the build plate upon stopping as the stop position.

23. The system of claim 20, wherein the at least one data processor is further configured to position the build plate at the calculated start position.

24. The system of claim 23, wherein the system is configured to position the build plate at the calculated start position without operator intervention.

25. The system of claim 20, wherein the at least one data processor is further configured to issue a warning in response to determining that the start position indicates the build plate is not installed.

26. The system of claim 20, wherein the at least one data processor is further configured to issue a warning in response to determining that the start position indicates the build plate is not properly installed.

27. The system of claim 20, wherein the at least one data processor is further configured to obtain a plurality of start positions by repeating the monitoring, the stopping, and the calculating at multiple positions across the build plate.

28. The system of claim 27, wherein the at least one data processor is further configured to calculate a best fit plane from the plurality of start positions.

29. The system of claim 28, wherein the at least one data processor is further configured to calculate an alternate coordinate system with an alternate X and Y axes lying in the calculated best fit plane.

30. The system of claim 29, wherein the at least one data processor is further configured to build a three-dimensional part in the alternate coordinate system.

31. The system of claim 20, wherein the at least one data processor is further configured to automatically position the build plate at the calculated start position.

32. The system of claim 20, wherein the at least one data processor is further configured to perform calculations based on the calculated start position to define a coordinate system.

33. The system of claim 32, wherein the at least one data processor is further configured to build a three-dimensional object in the defined coordinate system.

34. The system of claim 20, wherein providing the start position includes transmitting, storing, processing, and/or displaying the start position.

35. The system of claim 20, further comprising an extruder assembly including extruder nozzle and a heat source.

36. The system of claim 20, further comprising a fusion deposition modeling apparatus, a laminated object manufacturing apparatus, and/or a photopolymer deposition apparatus.

37. The system of claim 20, further comprising a print head and ink delivery system that includes a print head including a thermal print head, a piezo print head, MEMS print head, an electrostatic print head, a plotter-style single nozzle unit, a continuous ink jet, and/or a drop-on demand system.

38. The system of claim 20, wherein the non-contact distance sensor includes a sonar sensor, capacitive sensor, Linear Variable Differential Transformer (LVDT), photo diode, and/or phototransistor.

39. Apparatus, systems, articles, and techniques described or illustrated herein.

Description:
DETERMINING START POSITION IN THREE-

DIMENSIONAL PRINTERS

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority under 35 U.S.C. § 119 to U.S. provisional patent application number 62/527,697 filed June 30, 2017, and to U.S. provisional patent application number 62/581,352 filed November 3, 2017, the entire contents of each of which is hereby expressly incorporated by reference herein.

BACKGROUND

[0002] In three-dimensional (3D) printing, a part is typically built (e.g., built up) by deposition on a base, or build plate, which can be removably mounted on a platform that moves in a height (Z) direction. The material being deposited can adhere to the build plate to form a foundation layer above which the remaining layers are deposited. The build plate can stabilize the part as it is built and can facilitate removal of the part from the 3D printer when the part is complete.

[0003] It can be necessary for parts deposited on the build plate to be strongly bonded thereto. Strain generated within the deposited material tends to warp the part unless it is firmly attached to the build plate. The build plate can be important in limiting localized shrinkage in the foundation layer. Shrinkage may be caused by temperature changes in the deposited material (as from extruded thermoplastic), phase changes in the deposited material, chemical reactions within the deposited material, or other causes. Furthermore, in some deposition processes there may be forces exerted on the part due to the 3D printing process (e.g. frictional forces from an extruder nozzle depositing material to form a subsequent layer). Delamination of the foundation layer (or a part thereof) can result in a total failure of the part forming operation.

[0004] Before building a part in a 3D printer, which builds parts on a build plate mounted to a platform that moves along a Z axis, the Z axis position of the platform can require initialization. This can be done manually by the operator by moving the platform up or down to place the material deposition system (e.g. an extrusion nozzle, a print head, or other device) at a predetermined height above the build plate. This manual process is typically done at a single location on the build plate.

SUMMARY

[0005] In an aspect, a method includes monitoring a rate of change of an output of a non-contact distance sensor forming part of a three-dimensional printer that includes the non-contact distance sensor, a build plate, and at least one data processor, wherein the non-contact distance sensor is arranged above the build plate and the output of the non-contact distance sensor characterizes a distance between the non-contact distance sensor and the build plate, the build plate configured to be in motion towards the non-contact distance sensor and/or the non-contact distance sensor configured to be in motion towards the build plate; stopping, in response to identifying a decrease in the rate of change of the output of the non-contact distance sensor, the build plate at a stop position; calculating, using the at least one data processor and based on the stop position, a start position for the build plate; and providing the start position.

[0006] In another aspect, a system includes a build plate; a non-contact distance sensor arranged above the build plate, an output of the non-contact distance sensor characterizes a distance between the non-contact sensor and the build plate, the build plate configured to be in motion towards the non-contact distance sensor and/or the non-contact distance sensor configured to be in motion towards the build plate; and at least one data processor configured to monitor a rate of change of the output of the non-contact distance sensor, stop, in response to identifying a decrease in the rate of change of the output of the non-contact distance sensor, the build plate at a stop position, calculate, based on the stop position, a start position for the build plate, and provide the start position.

[0007] One or more of the following features can be included in any feasible combination. For example, the three-dimensional printer can include a nozzle and the decrease in the rate of change of the output indicates that the nozzle has made contact with the build plate. The non-contact distance sensor can be positioned above the build plate of the three-dimensional printer. The build plate can be raised toward the non-contact distance sensor and an extruder nozzle. When a rate of change of the non-contact distance sensor reading decreases can be identified. A position of the build plate upon stopping can be recorded as the stop position. The build plate can be positioned at the calculated start position. The build plate can be positioned at the calculated start position without operator intervention. A warning can be issued in response to determining that the start position indicates the build plate is not installed. A warning can be issued in response to determining that the start position indicates the build plate is not properly installed. A plurality of start positions can be obtained by repeating the monitoring, the stopping, and the calculating at multiple positions across the build plate. A best fit plane can be calculated from the plurality of start positions. An alternate coordinate system with an alternate X and Y axes lying in the calculated best fit plane can be calculated. A three-dimensional part in the alternate coordinate system can be built. The build plate can be automatically positioned at the calculated start position. Calculations can be performed based on the calculated start position to define a coordinate system. A three-dimensional object can be built in the defined coordinate system. Providing the start position can include transmitting, storing, processing, and/or displaying the start position. The three-dimensional printer can include an extruder assembly including an extruder nozzle and a heat source. The three-dimensional printer can include a fusion deposition modeling apparatus, a laminated object manufacturing apparatus, and/or a photopolymer deposition apparatus. The three-dimensional printer can include a print head and ink delivery system that includes a print head including a thermal print head, a piezo print head, a MEMS print head, an electrostatic print head, a plotter-style single nozzle unit, a continuous ink jet, and/or a drop-on demand system. The non-contact distance sensor can include a sonar sensor, capacitive sensor, Linear Variable Differential

Transformer (LVDT), photo diode, and/or phototransistor.

[0008] The present subject matter relates to an improved system and improved methods for detecting a build plate of a three-dimensional (3D) printer. The system and method of the present subject matter may be used for determining a starting Z position of a 3D printer build plate and adjusting the Z position of a 3D printer build plate. To produce a high quality part using the 3D printer, the distance between the build plate on which the part will be formed and the nozzle through which the build material will be deposited or extruded can be carefully controlled. Some implementations of the present subject matter include a system and method for properly initializing a 3D printer prior to a build to insure the successful production of quality 3D printed parts. [0009] In accordance with example embodiments of the present subject matter, a method for determining or calculating a Z axis start position of a build plate can include (a) positioning a non-contact distance sensor above a build plate of a three-dimensional printer; (b) raising the build plate toward the sensor and an extruder nozzle; (c) monitoring an output of the sensor as the build plate is raised, the sensor output characterizing a Z position of the build plate; (d) identifying when a rate of change of the sensor output decreases; (e) stopping the motion of the build plate upon identification of the rate of change; (f) recording the build plate position upon stopping as the Z position; and (g) calculating a Z start position for the build plate based on the recorded Z position.

[0010] In certain aspects, the method further comprises positioning the build plate at the calculated Z start position. The build plate may be positioned at the calculated Z start position without operator intervention. In some aspects, a warning issues if the Z position indicates the build plate is not installed or is not properly installed.

[0011] In certain aspects, the method further comprises obtaining a plurality of Z positions by repeating steps A-F at multiple X, Y positions. A best fit plane may be calculated from the plurality of Z positions obtained. In some aspects, an alternate coordinate system is calculated with alternate X and Y axes lying in the calculated best fit plane. A three-dimensional part may be built in an alternate coordinate system.

[0012] In some aspects, the described method further comprises automatically positioning the build platform at the calculated Z start position. In other aspects, the method described herein further comprises performing calculations based on the calculated Z start position to define a coordinate system. A three-dimensional object may be built in the defined coordinate system.

[0013] Non-transitory computer program products (i.e., physically embodied computer program products) are also described that store instructions, which when executed by one or more data processors of one or more computing systems, causes at least one data processor to perform operations herein. Similarly, computer systems are also described that may include one or more data processors and memory coupled to the one or more data processors. The memory may temporarily or permanently store instructions that cause at least one processor to perform one or more of the operations described herein. In addition, methods can be implemented by one or more data processors either within a single computing system or distributed among two or more computing systems. Such computing systems can be connected and can exchange data and/or commands or other instructions or the like via one or more connections, including a connection over a network (e.g. the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc.

[0014] The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

[0015] In the drawings, like reference characters generally refer to the same parts throughout the different views. Also, the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the present subject matter are described with reference to the following drawings, in which:

[0016] FIG. 1 depicts a schematic configuration of a prior art Filament Deposition Modeling apparatus;

[0017] FIG. 2 depicts a schematic configuration of a fabrication apparatus according to a known process;

[0018] FIG. 3 depicts a schematic configuration of a fabrication process according to an aspect of the present subject matter;

[0019] FIG. 4 depicts a schematic configuration of a fabrication apparatus having a non-contact sensor in accordance with aspects of the present subject matter;

[0020] FIG. 5 is a diagrammatic illustration of a high level architecture for implementing processes in accordance with aspects of the present subject matter; and

[0021] FIG. 6 is a process flow diagram illustrating a process for determining a start position of a build plate in a three dimensional printer. DETAILED DESCRIPTION

[0022] Achieving the correct build plate initial position in a three- dimensional printer can be difficult and time consuming and can be prone to error. It can be difficult for an inexperienced user to identify the correct position. Furthermore, if the top surface of the build plate is not in an x-y plane, the deposition system to plate position can be incorrect at some locations of the build plate. This may result in "printing on air", which generally results in a part defect or printing error rather than a part, or excessive contact between the material deposition system and the build plate, which may damage the build plate or the deposition system. If the build plate is positioned too high the extruder can jam. Alternatively, if the build plate is positioned too low the part does not adhere to the build plate properly.

[0023] An incorrect Z start position can result in failure in forming the part. Additionally, if the build plate is not mounted flat to the platform, or if the build plate is deformed or improperly mounted so that it lacks a horizontal planar surface, the part quality can be adversely affected regardless of the Z start position selected. There exists a need for a Z axis initialization routine that does not require operator intervention.

[0024] The present subject matter relates to a system and method for determining Z axis position in three-dimensional (3D) printers. The system and method may be used for identifying an initial Z axis position (e.g., height) for three- dimensional printing. In accordance with some aspects of the present subject matter, the method calculates a Z start position based on one or more Z axis positions of the build plate obtained by detecting when the material deposition system contacts the build platform at one or more X, Y positions in a plane defined by the build plate.

[0025] A method for determining the Z start position of a 3D printer build platform includes the steps of (a) positioning a non-contact distance sensor above a build plate (e.g., mounting the sensor above the build plate so that the build plate will come into contact with an extruder nozzle before coming into contact with the sensor); (b) raising the build plate toward the sensor and nozzle while monitoring the output of the sensor; (c) stopping the upward motion of the build plate when the rate of change of the range reading decreases as this indicates the nozzle has made contact with the build plate; (d) recording the Z position thus found; and (e) calculating a Z start position based on this measurement and positioning the build plate at the calculated Z start position without operator intervention.

[0026] In some aspects, the described method is repeated at a plurality of X, Y positions to determine the Z position of a plurality of points on the build plate. Utilizing the additional data, the Z start position may be fine-tuned. In certain aspects, a warning issues to the operator or user if the Z position indicates the build plate is not installed or is not properly installed. In some aspects, the method further includes calculating a best fit plane from the plurality of Z positions. In certain aspects, the method includes building a part in an alternate coordinate system, where the alternate coordinate system has alternate X and Y axes lying in the best fit plane calculated from the plurality of Z positions.

[0027] In an alternative embodiment, the methods described herein are used to determine if a previously built part is still on the build plate by sensing the Z position at an X-Y coordinate known to correspond to a highest point on the previously built part or at an alternative X-Y coordinate.

[0028] In some embodiments, the methods described herein can be used to identify the position of the material deposition system in other axes. For instance, another sensor oriented with respect to the Y-axis can be used to determine when an edge of an extruder nozzle contacts a side of the build plate orthogonal to the Y-axis.

[0029] It should be noted that the non-contact sensor (e.g., distance sensor) of the inventive system may use any of several non-contact devices for determining range including, but not limited to, sonar, inductive, capacitive, Linear Variable Differential Transformer (LVDT), photo diode, phototransistor, or any emitter-detector pair operating at any convenient wavelength with or without optics to focus, collimate, or filter the beam. In some implementations, any non-contact sensor, including an optical sensor, an ultrasound sensor, or a microwave sensor, may be used in the described system. In exemplary implementations, the sensor is a reflective optical sensor with an infrared LED emitter and a phototransistor detector.

[0030] In some implementations, the measurements taken by the non- contact sensor can be more precise than previously available. The resolution of each measurement may be within one to five microns, or more particularly may be about three microns. The non-contact sensor can detect contact between the build plate and a nozzle (e.g., an extruder nozzle) directly (e.g., when the build plate hits or makes contact with the nozzle). Some implementations of the current subject matter can eliminate a majority of tolerances involved in measuring the Z axis position, and provide an accurate measure of where the build plate is on the machine relative to the nozzle with no intermediary parts and/or switches. Variations may be detected when taking measurements with the non-contact sensor. The variations can be primarily associated with manufacturing tolerances in the system, not with tolerances related to taking the measurements. In some implementations, the manufacturing tolerances are not more precise, but instead that the variations are detected more precisely.

[0031] As noted above, the current subject matter can enable improved accuracy. Some prior systems utilize a separate switch assembly to contact a build plate. In that case, there are a number of tolerances between the contact point of the switch assembly and the nozzle. The exact tolerance can depend on the details of the design and the number of parts involved. In addition, mechanical switches can have significant variations in when they trigger. So that, a switch that detects movement will still include considerable variation (and hysteresis) due to the mechanical nature of the switch. Some implementations of the current subject matter can utilize a precise non-contact sensor and, as a result, may not be subject to these mechanical tolerances. Some optical systems (e.g., sensors) can provide more precise results than mechanical switches.

[0032] Various three-dimensional deposition or fabrication apparatuses and methods may be used in conjunction with aspects of the present subject matter to result in the innovative advancements described herein. In some aspects, a three- dimensional fabrication apparatus utilized herein can include a deposition apparatus and a printing apparatus. In some aspects, a three-dimensional fabrication apparatus includes a deposition apparatus without a printing apparatus. The deposition apparatus may be similar to that used for fused deposition modeling. In some embodiments, the printing apparatus can be paired with any solid free-form fabrication apparatus, for example, a device that produces metal or ceramic parts, and/or a device that builds three-dimensional polymer objects by utilizing a layer-by-layer build process. Non- limiting examples of such apparatuses include a laminated object manufacturing apparatus or a three-dimensional photopolymer apparatus.

[0033] One example of a known fused deposition modeling apparatus is shown in FIG. 1. The example extruder assembly 12 dispenses polymer 14 onto build platform 18, in a layer-by-layer process, to form three-dimensional object 16. Once three-dimensional object 16 is completed it may be removed from build platform 18 and a new project may begin.

[0034] An example of another three-dimensional fabrication apparatus is described in U.S. Patent No. 9,227,366, which is incorporated herein by reference in its entirety. A schematic of the known example three-dimensional fabrication apparatus is provided in FIG. 2. The example apparatus includes a deposition apparatus 20 similar to that used for fused deposition modeling and a printing apparatus 30 having a print head and ink delivery system 32. The three-dimensional fabrication apparatus includes extruder assembly 22 that dispenses polymeric material 24, in a layer-by-layer process, to form three-dimensional object 26 on build platform 28. In addition, the fabrication apparatus includes print head and ink delivery system 32, which dispenses ink on three-dimensional object 26, in a layer-by-layer process, during the build process.

[0035] A deposition apparatus 20 includes an extruder assembly 22 that dispenses a polymeric material 24. The extruder assembly 22 may include one or more extruder heads 23 for dispensing one or more polymeric materials 24 (e.g., polymers). In some aspects, the polymeric material 24 forms a three-dimensional object 26 in a layer-by-layer process on a build platform 28.

[0036] The printing apparatus 30 includes a print head and ink delivery system 32 for depositing an ink 34 during production of any three-dimensional object 26 using the three-dimensional fabrication apparatus. The printing apparatus 30 may include one or more print heads 33 for dispensing one or more inks 34. The print head and ink delivery system 32 may deposit the ink 34 in a layer-by-layer fashion during the fabrication process.

[0037] The printing apparatus 30 having the print head and ink delivery system 32 is attached to the same mechanism as the deposition apparatus 20 having the extruder assembly 22, such that it travels with the deposition apparatus 20. In some embodiments, the printing apparatus 30 is attached to an independent moving or stationary mechanism that is attached to the three-dimensional fabrication apparatus. In still other embodiments, the printing apparatus 30 is aligned with the deposition apparatus 20, but not attached to the deposition apparatus 20. [0038] The printing apparatus 30 includes a print head(s) 33 that is, for example, a piezoelectric print head, a thermal print head, a MEMS print head, an electrostatic print head, or combinations thereof. In some aspects, the printing apparatus 30 includes a print head 33 that is a plotter type single nozzle unit, a continuous ink jet, or a drop on demand system. In certain aspects, one or more print heads 33 are included within the printing apparatus 30. In other aspects, a print head 33 includes one or more channels. In some embodiments, the printing apparatus 30 utilizes a jetting deposition method. Alternatively, the printing apparatus 30 utilizes a deposition method that is not jetting. For example, the printing apparatus 30 may include an extrusion nozzle, such as for release agent deposition, a sprayer, brushing or capillary tubing.

[0039] The above-described known three-dimensional fabrication apparatus of FIG. 2 is representative of a number of different apparatuses that can be modified in accordance the present subject matter to include a non-contact distance sensor and be operated to carry out the inventive method. An example of a three- dimensional fabrication method for producing a three-dimensional object is provided herein. A three-dimensional fabrication method may include depositing a first polymer layer 42, printing a first ink layer 40 on to the first polymer layer 42, depositing a second polymer layer 42 on to the first ink layer 40, and printing a second ink layer 40 on to the second polymer layer 42. The second ink layer 40 may comprise the same ink as that used in the first ink layer 40. In some embodiments, the fabrication process is repeated until a completed three-dimensional object is formed. A schematic demonstrating a three-dimensional fabrication process is provided in FIG. 3, showing an ink layer 40 being formed on a polymer layer 42 by having print head and ink delivery system 32 deposit ink droplets 34, optionally including dyes onto polymer layer 42. Ink droplets 34 form interaction area 36 where the ink contacts polymer layer 42. In alternative fabrication methods, a polymer layer 42 is deposited, and the process of depositing polymer layer 42 is repeated until a completed three- dimensional object is formed.

[0040] The first and second polymer layers 42 may each include a plurality of polymer layers 42. The plurality of polymer layers 42 forming a first (or second) polymer layer 42 need not all be formed of the same polymeric material 24, but may include one or more distinct polymeric materials 24. The first and second ink layers 40 may each include a plurality of ink layers 40. The plurality of ink layers 40 forming a first (or second) ink layer 40 need not all be formed of the same ink 34, but may include one or more distinct inks 34. In certain embodiments, the polymer layers 42 and ink layers 40 are deposited in varying number and in varying order when fabricating a three-dimensional object and/or support structure. Further, the polymer layers 42 and/or the ink layers 40 need not extend completely over the previously deposited layer. In some instances, an ink layer 40 is deposited only over a portion of the previously deposited polymer (or ink) layer 42.

[0041] In certain embodiments, a polymer layer 42 is deposited completely prior to an ink layer 40 being printed onto the polymer layer 42. In some embodiments, while the polymeric material 24 is in the process of being deposited, an ink layer 40 is printed onto the same polymer layer 42. In some embodiments, a first portion of at least one ink layer 40 includes a first ink 34 and a second portion of the at least one ink layer 40 includes a second ink 34. In certain embodiments, a first portion of at least one polymer layer 42 includes a first polymeric material 24 and a second portion of the at least one polymer 42 layer includes a second polymeric material 24.

[0042] At least one of the polymer layers 42 may include a polymeric material 24, such as, for example, acrylonitrile butadiene styrene ("ABS"), polyacrylates, polyolefins, cyclic olefin polymers and copolymers, polycarbonates, poly amides, polyimides, polyethylene and polybutylene terephthalate, liquid crystal polymer resins ("LCP"), polyether ether ketone ("PEEK"), thermoplastic elastomers ("TPE"), polystyrenes, polyvinyl chloride, polysulfones, polyacrylates, polyurethanes, polyamides, polyesters, polyolefins, epoxy resins, silicon resin, a diallyl phthalate resin, a cellulosic plastic, a rosin-modified maleic acid resin, copolymers thereof, any other macromolecular structure, and combinations thereof. In certain aspects, the polymeric material 24 is acrylonitrile butadiene styrene. In some aspects, the polymer layer 42 includes a biocompatible or biodegradable polymeric material, such as, for example, collagen, elastin, hydrogels, xerogels, proteins, peptides, or a combination of any of them. In some embodiments, the polymer layer 42 includes a synthetic polymer, such as, for example, polycaprolactone ("PCL"), poly(D,L,-lactide-co- glycolide) ("PLGA"), polyactide ("PLA"), poly(lactide-co-caprolactone) ("PLCL"), or a combination of any of them. In certain aspects, the polymeric material 24 is supplemented with one or more ingredients, such as inorganic or organic filler, adhesives, plasticizers, coloring agents (e.g., dyes or pigments), functional fillers or combinations thereof.

[0043] An example of a three-dimensional fabrication apparatus with a non-contact distance sensor is shown in FIG. 4. The distance Dl between the non- contact distance sensor and the build plate is strictly larger than the distance D2 between the material deposition system and the build plate. In some embodiments, the non-contact sensor is mounted about 1 millimeter to 200 millimeters, 5 millimeters to 150 millimeters, 10 millimeters to 100 millimeters, or 15 millimeters to 50 millimeters above the tip of the extruder nozzle. In certain exemplary embodiments, the non-contact sensor is mounted about 1 millimeter to 10 millimeters, 2 millimeters to 7 millimeters, or 3 millimeters to 5 millimeters above the tip of the extruder nozzle. The non-contact sensor may be mounted about 1, 2, 3, 4, 5, 6, 7, 8, 9, or 10 millimeters above the tip of the extruder nozzle. In some aspects, the non-contact sensor is mounted less than 200 millimeters, less than 175 millimeters, less than 150 millimeters, less than 125 millimeters, less than 100 millimeters, less than 75 millimeters, less than 50 millimeters, or less than 25 millimeters above the tip of the extruder nozzle. In some implementations, the face plate of the sensor is 8 mm above the tip of the nozzle (e.g., nominally).

[0044] In certain exemplary embodiments, the non-contact sensor is mounted about 1 millimeter to 200 millimeters, 5 millimeters to 150 millimeters, 10 millimeters to 100 millimeters, or 15 millimeters to 50 millimeters to one side of the extruder nozzle. The non-contact sensor may be mounted about 5, 10, 15, 20, 25, 30, 35, 40, or 50 millimeters to one side of the extruder nozzle. In some aspects, the non- contact sensor is mounted less than 200 millimeters, less than 175 millimeters, less than 150 millimeters, less than 125 millimeters, less than 100 millimeters, less than 75 millimeters, or less than 50 millimeters to one side of the extruder nozzle. In certain exemplary embodiments, the non-contact sensor is mounted about 3 millimeters above the tip of the extruder nozzle and about 20 millimeters to one side. In another example embodiment, the centerline of the sensor is about 33 mm to one side of the nozzle in the X axis and 10mm in the Y axis (e.g., hypotenuse 34.5mm). Other values are possible. The sensor can be mounted on or along a material deposition system and move in the X, Y plane with the material deposition system. Alternatively, the sensor can be mounted and move independently of the material deposition system.

[0045] In some implementations, the size of the build plate and the desirability to measure points near the edges of the plate can be a limiting factor. In an example implementation 4 points near the corners of the build plate and 2 along the Y centerline of the plate approximately equidistant from the X centerline and each X edge of the plate are measured. The greater the distance from the sensor to the nozzle the further from the edge of the plate it can be possible to detect the Z location. In some implementations, because the nozzle touches the plate in order to measure the distance and the sensor should be arranged to "see" the plate, neither the sensor nor the nozzle can be arranged so that they are beyond any edge of the plate during the detection process.

[0046] In certain embodiments, when initialization of the Z axis begins, the build plate moves from a starting point (e.g., an original parked position) toward the material deposition system and sensor. Simultaneously, the non-contact distance sensor monitors the rate of change in the distance Dl. When the material deposition system contacts the build plate, or D2=0, the rate of change in Dl decreases. The Z position of the build plate at that moment is recorded. This can be done once, or repeated at the same X,Y coordinates once or multiple times. Alternatively, the material deposition system and the non-contact sensor can move to different X,Y coordinates above the build plate, and the method is repeated in one or several new X,Y locations. The Z start position is then calculated from the one or several Z positions detected at one or several X,Y coordinates where the material deposition system was in contact with the build plate, and the build plate is then automatically positioned at that calculated Z start position at the beginning of a build prior to depositing the first layer of material. In some aspects, the non-contact sensor can be used to align the print head(s) to the extruder nozzle.

[0047] In certain aspects, multiple points are measured on the build plate for calculating the Z start position. In some instances, at least 5 points, at least six points, at least 7 points, at least 8 points, at least 9 points, or at least 10 points are measured on the build plate. A warning may issue to a user of the system that the build plate is not properly installed if the variation across the multiple points totals an amount within the range of about 400 microns to 1200 microns, 600 microns to 1000 microns, or 700 microns to 900 microns. If the variation across the multiple points totals greater than 600, 700, or 800 microns a warning issues to the user of the system that the build plate is not properly installed.

[0048] In some embodiments, more than one non-contact sensor can be included. The multiple non-contact sensors may be positioned or located in different orientations from one another. In a system with multiple non-contact sensors, the described method may be used to calibrate X and Y distances, in addition to the Z distance, by utilizing the multiple sensors positioned in different orientations.

[0049] In some aspects, instead of the build plate moving toward the material deposition system, the material deposition system and sensor can move toward the build plate, or the material deposition system and/or build plate can move toward one another while the sensor remains stationary.

[0050] In some embodiments, the described system is a multi-nozzle system (e.g., has two or more extruder nozzles). In a multi-nozzle system, the described calibration method may be used to calibrate the distance from one extruder nozzle to a second extruder nozzle.

[0051] FIG. 6 is a process flow diagram illustrating a process 700 for determining a start position of a build plate in a three dimensional printer. The process 700 can be implemented in a three dimensional printer having a non-contact sensor, a build plate, an extruder assembly with extruder nozzle, and at least one data processor.

[0052] At 710, the output of a non-contact distance sensor of the three dimensional printer can be monitored. The monitoring can include observing the rate of change of the output over a period of time. During monitoring, the build plate can be in motion relative to the non-contact sensor (e.g., the build plate can be in motion with the sensor fixed, the sensor can be in motion with the build plate fixed, and the like). The output of the non-contact distance sensor can characterize the distance between the non-contact distance sensor and the build plate. The monitoring can include monitoring for and/or identifying a decrease in the rate of change of the output of the non-contact distance sensor. The decrease in the rate of change of the output can indicate the extruder nozzle has made contact with the build plate.

[0053] At 720, the motion can be stopped in response to identifying the decrease in the rate of change of the output of the non-contact sensor. The motion can be stopped at a stop position. For example, motion of the build plate can be stopped in response to identifying a decrease in the rate of change of the output. Identification of the decrease in the rate of change can occur when the rate of change decreases by a threshold amount. In some implementations, the decrease in the rate of change can be computed as a derivative, which can amplify noise. Accordingly, in some implementations, the output of the non-contact distance sensor can be filtered (e.g., digitally), a derivative computed, the derivative can be filtered, and the result can be compared to a threshold value to detect for a decrease in the rate of change of the output of the non-contact sensor.

[0054] At 730, a start position for the build plate can be determined based on the stop position. The start position can be the stop position. In some

implementations, an offset can be applied to the stop position to determine the start position. In some implementations, additional processing of the stop position can be performed in order to calculate the start position. In some implementations, as described in more detail above, multiple stop positions can be identified by repeating step 720. In that case, for multiple identified stop positions, the start position can be based off the set of multiple identified stop positions. For example, the start position can be the maximum, an average, or a best fit of the set of identified stop positions.

[0055] At 740, the start position can be provided. The providing can include storing the start position in memory, transmitting the start position (e.g., to another module or data processing unit for further use), and/or displaying the start position (e.g., to a user for manual positioning of the build plate and/or extruder nozzle).

[0056] A method for fabricating an object in accordance with the methods described herein, may include using a software program, such as alignment software for three-dimensional printing. The software may be used to perform or assist in the performance of various steps of the fabrication method, operating on suitable computer hardware having the necessary processing capabilities as would be readily understood by those of skill in the art. FIG. 5 depicts an illustrative suitable computing device 600 that can be used to implement the computing

methods/functionality described herein and be converted to a specific system for performing the operations and features described herein through modification of hardware, software, and firmware, in a manner significantly more than mere execution of software on a generic computing device, as would be appreciated by those of skill in the art. The computing device 600 is merely an illustrative example of a suitable computing environment and in no way limits the scope of the present subject matter. A "computing device," as represented by FIG. 5, can include a "workstation," a "server," a "laptop," a "desktop," a "hand-held device," a "mobile device," a "tablet computer," or other computing devices, as would be understood by those of skill in the art. Given that the computing device 600 is depicted for illustrative purposes, embodiments of the present subject matter may utilize any number of computing devices 600 in any number of different ways to implement a single embodiment of the present subject matter. Accordingly, embodiments of the present subject matter are not limited to a single computing device 600, as would be appreciated by one with skill in the art, nor are they limited to a single type of implementation or configuration of the example computing device 600.

[0057] The computing device 600 can include a bus 610 that can be coupled to one or more of the following illustrative components, directly or indirectly: a memory 612, one or more processors 614, one or more presentation components 616, input/output ports 618, input/output components 620, and a power supply 624. One of skill in the art will appreciate that the bus 610 can include one or more busses, such as an address bus, a data bus, or any combination thereof. One of skill in the art additionally will appreciate that, depending on the intended applications and uses of a particular embodiment, multiple of these components can be implemented by a single device. Similarly, in some instances, a single component can be implemented by multiple devices. As such, FIG. 5 is merely illustrative of an exemplary computing device that can be used to implement one or more embodiments of the present subject matter, and in no way limits the invention.

[0058] The computing device 600 can include or interact with a variety of computer-readable media. For example, computer-readable media can include Random Access Memory (RAM); Read Only Memory (ROM); Electronically Erasable Programmable Read Only Memory (EEPROM); flash memory or other memory technologies; CDROM, digital versatile disks (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices that can be used to encode information and can be accessed by the computing device 600. [0059] The memory 612 can include computer- storage media in the form of volatile and/or nonvolatile memory. The memory 612 may be removable, nonremovable, or any combination thereof. Exemplary hardware devices are devices such as hard drives, solid-state memory, optical-disc drives, and the like. The computing device 600 can include one or more processors that read data from components such as the memory 612, the various I/O components 616, etc. Presentation component(s) 616 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.

[0060] The I/O ports 618 can enable the computing device 600 to be logically coupled to other devices, such as I/O components 620. Some of the I/O components 620 can be built into the computing device 600. Examples of such I/O components 620 include a microphone, joystick, recording device, game pad, satellite dish, scanner, printer, wireless device, networking device, and the like.

[0061] In some embodiments, a computing device is used to implement an alignment software facilitated process for three-dimensional printing. The computing device may obtain the measurements received from the non-contact sensor and store those measurements for later use and/or may process those measurements and store the results (e.g., stop positions) for later use. In some aspects, the computing device stores the measurement and/or stop position data temporarily, or alternatively, stores the measurement and/or stop position data for an extended period of time. The stop position data may include 2 to 10 data points processed from the non-contact sensor. In some aspects, the stop position data stored by the computing device includes at least six stop positions processed from measurements received from the non-contact sensor. The computing device may utilize the measurements received from the non- contact sensor and/or stop position data to calculate whether the build plate is properly installed. In some aspects, the measurements received from the non-contact sensor and/or the stop position data are stored and logged for debugging purposes.

[0062] In some implementations, raw data from the non-contact sensor can include thousands of data points for each stop point determined. In some

implementations, the build plate can be moved incrementally and the non-contact sensor can be sampled several times. These data points can be digitally filtered to arrive at one filtered point for a Z position. The Z position of the plate can be incrementally moved again and another group of readings can be taken, filtering can be performed, and using the previous reading, a difference (or derivative) can be computed, which can be compared to a threshold. The Z axis position of the plate can be incremented again, additional readings can be taken, filtering can be performed, derivative calculations performed, and the like. In some implementations, each stop point can be derived from thousands of measurements using the non-contact sensor.

[0063] One skilled in the art readily appreciates that the present subject matter is well adapted to carry out the objects and obtain the ends and advantages mentioned, as well as those inherent therein. The details of the description and the examples herein are representative of certain embodiments, are exemplary, and are not intended as limitations on the scope of the invention. Modifications therein and other uses will occur to those skilled in the art. These modifications are encompassed within the spirit of the invention. It will be readily apparent to a person skilled in the art that varying substitutions and modifications may be made to the invention disclosed herein without departing from the scope and spirit of the invention.

[0064] The articles "a" and "an" as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to include the plural referents. Claims or descriptions that include "or" between one or more members of a group are considered satisfied if one, more than one, or all of the group members are present in, employed in, or otherwise relevant to a given product or process unless indicated to the contrary or otherwise evident from the context. The invention includes embodiments in which exactly one member of the group is present in, employed in, or otherwise relevant to a given product or process. The invention also includes embodiments in which more than one, or all of the group members are present in, employed in, or otherwise relevant to a given product or process.

Furthermore, it is to be understood that the invention provides all variations, combinations, and permutations in which one or more limitations, elements, clauses, descriptive terms, etc., from one or more of the listed claims is introduced into another claim dependent on the same base claim (or, as relevant, any other claim) unless otherwise indicated or unless it would be evident to one of ordinary skill in the art that a contradiction or inconsistency would arise. It is contemplated that all embodiments described herein are applicable to all different aspects of the invention where appropriate. It is also contemplated that any of the embodiments or aspects can be freely combined with one or more other such embodiments or aspects whenever appropriate. Where elements are presented as lists, e.g., in Markush group or similar format, it is to be understood that each subgroup of the elements is also disclosed, and any element(s) can be removed from the group. It should be understood that, in general, where the invention, or aspects of the invention, is/are referred to as comprising particular elements, features, etc., certain embodiments of the invention or aspects of the invention consist, or consist essentially of, such elements, features, etc. For purposes of simplicity those embodiments have not in every case been specifically set forth in so many words herein. It should also be understood that any embodiment or aspect of the invention can be explicitly excluded from the claims, regardless of whether the specific exclusion is recited in the specification. For example, any one or more active agents, additives, ingredients, optional agents, types of organism, disorders, subjects, or combinations thereof, can be excluded.

[0065] Where the claims or description relate to a composition of matter, it is to be understood that methods of making or using the composition of matter according to any of the methods disclosed herein, and methods of using the composition of matter for any of the purposes disclosed herein are aspects of the invention, unless otherwise indicated or unless it would be evident to one of ordinary skill in the art that a contradiction or inconsistency would arise. Where the claims or description relate to a method, e.g., it is to be understood that methods of making compositions useful for performing the method, and products produced according to the method, are aspects of the invention, unless otherwise indicated or unless it would be evident to one of ordinary skill in the art that a contradiction or inconsistency would arise.

[0066] Where ranges are given herein, the invention includes

embodiments in which the endpoints are included, embodiments in which both endpoints are excluded, and embodiments in which one endpoint is included and the other is excluded. It should be assumed that both endpoints are included unless indicated otherwise. Furthermore, it is to be understood that unless otherwise indicated or otherwise evident from the context and understanding of one of ordinary skill in the art, values that are expressed as ranges can assume any specific value or subrange within the stated ranges in different embodiments of the invention, to the tenth of the unit of the lower limit of the range, unless the context clearly dictates otherwise. It is also understood that where a series of numerical values is stated herein, the invention includes embodiments that relate analogously to any intervening value or range defined by any two values in the series, and that the lowest value may be taken as a minimum and the greatest value may be taken as a maximum. Numerical values, as used herein, include values expressed as percentages. For any embodiment of the invention in which a numerical value is prefaced by "about" or

"approximately", the invention includes an embodiment in which the exact value is recited. For any embodiment of the invention in which a numerical value is not prefaced by "about" or "approximately", the invention includes an embodiment in which the value is prefaced by "about" or "approximately".

[0067] As used herein "A and/or B", where A and B are different claim terms, generally means at least one of A, B, or both A and B. For example, one sequence which is complementary to and/or hybridizes to another sequence includes (i) one sequence which is complementary to the other sequence even though the one sequence may not necessarily hybridize to the other sequence under all conditions, (ii) one sequence which hybridizes to the other sequence even if the one sequence is not perfectly complementary to the other sequence, and (iii) sequences which are both complementary to and hybridize to the other sequence.

[0068] "Approximately" or "about" generally includes numbers that fall within a range of 1% or in some embodiments within a range of 5% of a number or in some embodiments within a range of 10% of a number in either direction (greater than or less than the number) unless otherwise stated or otherwise evident from the context (except where such number would impermissibly exceed 100% of a possible value). It should be understood that, unless clearly indicated to the contrary, in any methods claimed herein that include more than one act, the order of the acts of the method is not necessarily limited to the order in which the acts of the method are recited, but the invention includes embodiments in which the order is so limited. It should also be understood that unless otherwise indicated or evident from the context, any product or composition described herein may be considered "isolated".

[0069] As used herein the term "comprising" or "comprises" is used in reference to compositions, methods, and respective component(s) thereof, that are essential to the invention, yet open to the inclusion of unspecified elements, whether essential or not. [0070] As used herein the term "consisting essentially of" refers to those elements required for a given embodiment. The term permits the presence of additional elements that do not materially affect the basic and novel or functional characteristic(s) of that embodiment of the invention.

[0071] The term "consisting of" refers to compositions, methods, and respective components thereof as described herein, which are exclusive of any element not recited in that description of the embodiment.

[0072] Although a few variations have been described in detail above, other modifications or additions are possible. For example, the current subject matter is not limited to an extruder, but could be utilized with any deposition technique, device, system, and composition. For example, the current subject matter can be implemented with a print head, powder deposition system, and the like.

[0073] The subject matter described herein provides many technical advantages. For example, some implementations of the current subject matter can be automated and more consistent, which can increase reliability at least by preventing or reducing failures typically caused by the manual process. A more reliable build process can be provided. In some implementations, automation can result in a more precise starting point than a manual process, it can detect errors (e.g., a build plate not installed correctly), and it can save the user time. In some implementations, changing the coordinate system to a best fit of the build plate and changing the X-Y plane to match this best fit plane can result in a better quality 3D printed part (e.g., more accurate) that can be created without changing the coordinate system.

[0074] One or more aspects or features of the subject matter described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof. These various aspects or features can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

[0075] These computer programs, which can also be referred to as programs, software, software applications, applications, components, or code, include machine instructions for a programmable processor, and can be implemented in a high-level procedural language, an object-oriented programming language, a functional programming language, a logical programming language, and/or in assembly/machine language. As used herein, the term "machine-readable medium" refers to any computer program product, apparatus and/or device, such as for example magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor. The machine-readable medium can store such machine instructions non-transitorily, such as for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium. The machine -readable medium can alternatively or additionally store such machine instructions in a transient manner, such as for example as would a processor cache or other random access memory associated with one or more physical processor cores.

[0076] To provide for interaction with a user, one or more aspects or features of the subject matter described herein can be implemented on a computer having a display device, such as for example a cathode ray tube (CRT) or a liquid crystal display (LCD) or a light emitting diode (LED) monitor for displaying information to the user and a keyboard and a pointing device, such as for example a mouse or a trackball, by which the user may provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well. For example, feedback provided to the user can be any form of sensory feedback, such as for example visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input. Other possible input devices include touch screens or other touch- sensitive devices such as single or multi-point resistive or capacitive trackpads, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices and associated interpretation software, and the like.

[0077] In the descriptions above and in the claims, phrases such as "at least one of or "one or more of may occur followed by a conjunctive list of elements or features. The term "and/or" may also occur in a list of two or more elements or features. Unless otherwise implicitly or explicitly contradicted by the context in which it is used, such a phrase is intended to mean any of the listed elements or features individually or any of the recited elements or features in combination with any of the other recited elements or features. For example, the phrases "at least one of A and Β;" "one or more of A and Β;" and "A and/or B" are each intended to mean "A alone, B alone, or A and B together." A similar interpretation is also intended for lists including three or more items. For example, the phrases "at least one of A, B, and C;" "one or more of A, B, and C;" and "A, B, and/or C" are each intended to mean "A alone, B alone, C alone, A and B together, A and C together, B and C together, or A and B and C together." In addition, use of the term "based on," above and in the claims is intended to mean, "based at least in part on," such that an unrecited feature or element is also permissible.

[0078] The subject matter described herein can be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. For example, the implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flows depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Other implementations may be within the scope of the following claims.