Weight-based identification of three dimensional printed parts
09821519 · 2017-11-21
Assignee
Inventors
Cpc classification
G05B19/4099
PHYSICS
B29C64/386
PERFORMING OPERATIONS; TRANSPORTING
B33Y50/00
PERFORMING OPERATIONS; TRANSPORTING
G01G17/00
PHYSICS
B33Y50/02
PERFORMING OPERATIONS; TRANSPORTING
International classification
B29C67/00
PERFORMING OPERATIONS; TRANSPORTING
B33Y50/00
PERFORMING OPERATIONS; TRANSPORTING
G05B19/4099
PHYSICS
Abstract
Methods and systems for weight-based identification of three dimensional (3D) printed parts. Various embodiments disclosed herein may permit reliable processing of 3D printed parts to effectively scale a 3D printing service to large volumes of orders for 3D printed parts.
Claims
1. A computer system configured to process a plurality of three dimensional (3D) printed part orders, the system comprising: a memory; and a processing unit coupled to the memory, wherein the processing unit is operative to: receive a plurality of orders, each including an indication of a 3D model to print and a material to print the 3D model; calculate a theoretical weight for each 3D model in the plurality of orders based on a volume of the respective 3D model and a density of the indicated material; receive an indication of a weight of a 3D printed part; compare the indication of the weight of the 3D printed part to the theoretical weight associated with each 3D model in the plurality of orders; and identify a subset of the plurality of orders responsive to comparing the indication of the weight of the 3D printed part to the theoretical weight associated with each 3D model, the subset having a size less than a total number of orders in the plurality of orders.
2. The system of claim 1, wherein the processing unit is further operative to output the subset.
3. The system of claim 1, further comprising a printer configured to print at least one part label for at least one order of the subset.
4. The system of claim 3, wherein the at least one part label includes at least one of a barcode, a model number of the 3D model and an order number for the 3D printed part.
5. The system of claim 3, wherein the processing unit is further operative to sort the change a status of the at least one order responsive to generating the at least one part label.
6. The system of claim 1, wherein the processing unit being operative to select a subset further includes the processing unit being operative to select an order to include in the subset responsive to a determination that a deviation of the theoretical weight of a 3D model associated with the order relative to the indication of the weight of the 3D printed part does not exceed a predetermined threshold value.
7. The system of claim 1, further comprising a printing device to print the 3D printed part.
8. A computer-implemented method for processing a plurality of three dimensional (3D) printed part orders, the method comprising: receiving, by a computer system, a plurality of orders each including an indication of a 3D model to print and a material to print the 3D model; calculating, by the computer system, a theoretical weight for each 3D model in the plurality of orders based on a volume of the respective 3D model and a density of the indicated material; receiving, by the computer system, an indication of a weight of a 3D printed part; comparing, by the computer system, the indication of the weight of the 3D printed part to the theoretical weight associated with each 3D model in the plurality of orders; and identifying, by the computer system, a subset of the plurality of orders responsive to comparing the indication of the weight of the 3D printed part to the theoretical weight associated with each 3D model, the subset having a size less than a total number of orders in the plurality of orders.
9. The method of claim 8, further comprising outputting the subset of the plurality of orders.
10. The method of claim 8, further comprising generating at least one part label for at least one order of the subset.
11. The method of claim 10, wherein the at least one part label includes at least one of a barcode, a model number of the 3D printed part, and an order number.
12. The method of claim 10, further comprising changing a status of the at least one order responsive to generating the at least one part label.
13. The method of claim 8, wherein selecting the subset further includes selecting an order to include in the subset responsive to determining that a deviation of the theoretical weight of a 3D model associated with the order relative to the indication of the weight of the 3D printed part does not exceed a predetermined threshold value.
14. The method of claim 8, further comprising printing the 3D printed part.
15. A non-transitory computer readable medium storing sequences of executable instructions configured to process a plurality of three dimensional (3D) printed part orders, the sequences of instructions including instructions to: receive a plurality of orders, each including an indication of a 3D model to print and a material to print the 3D model; calculate a theoretical weight for each 3D model in the plurality of orders based on a volume of the respective 2D model and a density of the indicated material; receive an indication of a weight of a 3D printed part; compare the indication of the weight of the 3D printed part to the theoretical weight associated with each 3D model in the plurality of orders; and identify a subset of the plurality of orders responsive to comparing the indication of the weight of the 3D printed part to the theoretical weight associated with each 3D model, the subset having a size less than a total number of orders in the plurality of orders.
16. The non-transitory computer readable medium of claim 15, further comprising instructions to output the subset.
17. The non-transitory computer readable medium of claim 15, further comprising instructions to generate at least one part label for at least one order of the subset.
18. The non-transitory computer readable medium of claim 17, further comprising instructions to change a status of the at least one order responsive to generating the at least one part label.
19. The non-transitory computer readable medium of claim 15, wherein the instructions to select the subset include instructions to select an order to include in the subset responsive to determining that a deviation of the theoretical weight of a 3D model associated with the order relative to the indication of the weight of the 3D printed part does not exceed a predetermined threshold value.
20. The non-transitory compute readable medium of claim 15, further comprising instructions to print the 3D printed part.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Various aspects of at least one embodiment are discussed below with reference to the accompanying figures, which are not intended to be drawn to scale. The figures are included to provide illustration and a further understanding of the various aspects and embodiments, and are incorporated in and constitute a part of this specification, but are not intended as a definition of the limits of the invention. In the figures, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every figure. In the figures:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) Aspects and embodiments are directed to providing efficient and reliable methods for identification of 3D printed parts based on weight. Other aspects and embodiments are directed to systems that implement identification of 3D printed parts based on weight. Efficiency and reliability may be achieved by providing embodiments that enable automatically selecting a subset of 3D models that may correspond to a 3D printed part, based on the weight of the 3D printed part.
(11) It is to be appreciated that embodiments of the methods and apparatuses discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the following description or illustrated in the accompanying drawings. The methods and apparatuses are capable of implementation in other embodiments and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. In particular, acts, elements and features discussed in connection with any one or more embodiments are not intended to be excluded from a similar role in any other embodiment.
(12) Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. Any references to embodiments or elements or acts of the systems and methods herein referred to in the singular may also embrace embodiments including a plurality of these elements, and any references in plural to any embodiment or element or act herein may also embrace embodiments including only a single element. The use herein of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all of the described terms. Any references to front and back, left and right, top and bottom, upper and lower, and vertical and horizontal are intended for convenience of description, not to limit the present systems and methods or their components to any one positional or spatial orientation.
(13) Referring to
(14) At block 102 of process 100 in
(15) Still referring to
(16) In one practical example, a group of 1000 3D models that are assigned to a single tray selected at block 102 may be selected for use at block 104. However, the one or more 3D models used at block 104 may generally include any of the 3D models that were used to print 3D parts in any tray.
(17) A theoretical weight for a 3D model at block 104 may be calculated by multiplying the volume of the 3D model by the density of the material used to print the 3D model in the selected tray. In one example, the density of the material may be automatically identified upon selecting a tray at block 102. In one embodiment, block 104 may be performed only once per selected tray. If the selected tray includes 3D parts made from different materials, block 104 may be performed for each 3D printed part based on the density of the material used to print that part.
(18) At block 106 of process 100, a 3D printed part that was built in the selected tray may be weighed. In one example, the 3D printed part may be weighed by using a scale. The 3D printed part is weighed after cleaning the part to eliminate any residual weight. Cleaning may be performed prior to selecting the tray at block 102 or prior to weighing the 3D part at block 106. In other embodiments, if cleaning does not precede weight-based identification, the process of weight-based identification may compensate for an estimated weight of residue.
(19) In one embodiment, a 3D printed part from the selected tray may be weighed by a user or operator and the weight may be input to the computer system implementing weight-based identification. At block 108, the weight of the 3D printed part may be compared to the theoretical weights calculated for one or more 3D models. In one embodiment, the comparison may include calculating, for each 3D model used at block 104, a value representing a deviation of the theoretical weight of the 3D model from the weight of the 3D printed part provided at block 106. In one example, the values may be absolute values. The comparison may further include checking, for each 3D model used at block 104, whether a value representing a deviation of its theoretical weight from the weight of the 3D printed part is within a predetermined threshold value of deviation from the weight of the 3D printed part.
(20) At block 110 of process 100, a subset of 3D models may be selected from one or more models used at block 104. The number of 3D models in the subset may be less than the total number of 3D models used at block 104. The number of 3D models in the subset, i.e. the size of the subset, may be predetermined. In one example, the size may be selected by a user of the weight-based identification process. The subset of 3D models is selected based on comparing, at block 108, the weight of the 3D printed part with the theoretical weights of one or more 3D models. In one example, a 3D model may be selected for inclusion in the subset of 3D models if a value of deviation of its theoretical weight from the weight of the 3D printed part is within a predetermined threshold value of deviation.
(21) In one embodiment, selecting a subset of 3D models in at block 110 may further include sorting the 3D models within the subset. Sorting the subset of 3D models may be included within block 110 or as a separate block of process 100. In one example, the 3D models in the subset may be sorted based on values of deviation of their respective theoretical weights from the weight of the 3D printed part. For example, the subset may be sorted such that the first 3D model in the sorted subset has the smallest value or amount of deviation from the weight of the 3D printed part, thereby being the closest match to the 3D printed part based on weight.
(22) In a computer implementation of process 100, the selected subset of 3D models may at least partially be output or presented to a user or operator. In one example, a first subset of 3D models may be presented to the user. Upon receiving a request from the user for more 3D models that may match the 3D printed part, a next subset of 3D models may be presented to the user. The user may switch between viewing the different subsets and may select one or more 3D models for viewing. At block 112 of process 100, the 3D model that corresponds to the 3D printed part is identified. Block 112 may include comparing 3D models in the subset of block 110 to the 3D printed part. In one embodiment, the comparison may include visual comparison to identify the 3D model that matches the 3D printed part. In one example, the subset of 3D models at block 110 may only include a single 3D model, and at block 112, the selected 3D model may be confirmed to match the 3D printed part.
(23) Once the 3D model from which the 3D printed part has been printed is identified at block 112, a label corresponding to the 3D printed part may be generated at block 114. The label may include information identifying the 3D printed part. For example, the label may be an order card and may include customer order information, a barcode, the 3D model number that matches the 3D printed part and a code for the material used to print the part (e.g., as shown in
(24) The label may also include a storage bin number corresponding to the 3D printed part. Generating the label may include printing the label and may also include affixing or adding the label to the 3D printed part or a packaging thereof. In some embodiments, process 100 may further include removing an identified 3D printed part from the tray and removing a 3D model corresponding to the identified 3D printed part from the set of one or more 3D models used in process 100. Removing 3D models from the set of one or more 3D models used for weight based identification of 3D printed parts in a tray may increase the efficiency of weight based identification over time. In some embodiments, process 100 may further include updating a status of the 3D printed part. For example, in a computer system implementation, the status of the 3D printed part may be updated to indicate that the part has been identified or to indicate that a label has been printed for the part. The 3D printed part may be routed to one or more locations using the label. For example, the 3D printed part may be routed from the manufacturing facility to a distribution center, where it may be collected along with any other 3D printed parts from the same customer order and shipped to the customer.
(25)
(26) Column 126 lists number of items corresponding to each tray. In one example, the number of items in a tray may correspond to the number of 3D printed parts built in that tray. In another example, the number of items may correspond to a sum of the quantity of production orders assigned to that tray, where a production order is a request to produce one or more copies of a 3D part from a single 3D model. Column 128 of interface 120 lists a weight-based sorting feature available for trays that are not yet sorted. In one example, a weight-based sorting feature corresponding to a tray may be selected to launch a computer implemented method for weight-based identification of 3D printed parts in the corresponding tray. In another example, a tray may be selected from the listing of trays that are available for weight-based sorting. Selecting a tray may launch another user interface for weight-based identification of 3D printed parts in the selected tray.
(27)
(28) The user interface 130 may provide a button 136 configured to launch weight-based identification of the 3D printed part corresponding to the entered weight. In one embodiment, clicking on button 136 may result in performing process 100 at blocks 106 and 108 in
(29) The number of 3D model windows 138 displayed on the user interface 130 may be selected from a menu 144 including predetermined choices. In one example, the predetermined number of 3D models to be output may be chosen to be one of 6, 24 and 60 3D models. However, any other number may be provided for selection in menu 144. In the example shown in
(30) A user may identify the 3D model that matches the 3D printed part having a weight entered in input cell 134 from a displayed subset of 3D model windows 138 in
(31)
(32)
(33) At block 166 of process 160, a weight of a 3D printed part built in the tray may be received. The weight may be received using, for example, the input cell 134 in
(34) At block 174 of process 160, an order card may be generated for the identified part. For example, an order card may be generated using the interface 150 of
(35) Processes described above are merely illustrative embodiments of systems for weight-based identification of 3D printed parts. Such illustrative embodiments are not intended to limit the scope of the present invention, as any of numerous other implementations for performing the invention. None of the claims set forth below are intended to be limited to any particular implementation of a process of weight-based identification, unless such claim includes a limitation explicitly reciting a particular implementation.
(36) Processes associated with various embodiments, acts thereof and various embodiments and variations of these methods and acts, individually or in combination, may be defined by computer-readable signals tangibly embodied on a computer-readable medium, for example, a non-volatile recording medium, an integrated circuit memory element, or a combination thereof. Such signals may define instructions, for example, as part of one or more programs that, as a result of being executed by a computer, instruct the computer to perform one or more of the methods or acts described herein, and/or various embodiments, variations and combinations thereof. Such instructions may be written in any of a plurality of programming languages, for example, Java, Visual Basic, C, C#, or C++, Fortran, Pascal, Eiffel, Basic, COBOL, etc., or any of a variety of combinations thereof. The computer-readable medium on which such instructions are stored may reside on one or more of the components of a general-purpose computer described above, and may be distributed across one or more of such components.
(37) The computer-readable medium may be transportable such that the instructions stored thereon can be loaded onto any computer system resource to implement the aspects of the present invention discussed herein. In addition, it should be appreciated that the instructions stored on the computer-readable medium, described above, are not limited to instructions embodied as part of an application program running on a host computer. Rather, the instructions may be embodied as any type of computer code (e.g., software or microcode) that can be employed to program a processor to implement the above-discussed aspects of the present invention.
(38) Various embodiments according to the invention may be implemented on one or more computer systems. These computer systems may be, for example, general-purpose computers such as those based on Intel PENTIUM-type processor, Motorola PowerPC, Sun UltraSPARC, Hewlett-Packard PA-RISC processors, or any other type of processor. It should be appreciated that one or more of any type computer system may be used to partially or fully automate weight-based identification of 3D printed parts according to various embodiments of the invention. Further, the software design system may be located on a single computer or may be distributed among a plurality of computers attached by a communications network.
(39) The computer system may include specially-programmed, special-purpose hardware, for example, an application-specific integrated circuit (ASIC). Aspects of the invention may be implemented in software, hardware or firmware, or any combination thereof. Further, such methods, acts, systems, system elements and components thereof may be implemented as part of the computer system described above or as an independent component.
(40) A computer system for weight-based identification of 3D printed parts may be a general-purpose computer system that is programmable using a high-level computer programming language. The computer system may be also implemented using specially programmed, special purpose hardware. In a computer system there may be a processor that is typically a commercially available processor such as the well-known Pentium class processor available from the Intel Corporation. Many other processors are available. Such a processor usually executes an operating system which may be, for example, the Windows NT, Windows 2000 (Windows ME), Windows XP, Windows Vista or Windows 7 operating systems available from the Microsoft Corporation, MAC OS Snow Leopard, MAC OS Snow Lion operating systems available from Apple Computer, the Solaris Operating System available from Sun Microsystems, or UNIX available from various sources. Many other operating systems may be used.
(41) The processor and operating system together define a computer platform for which application programs in high-level programming languages are written. It should be understood that the invention is not limited to a particular computer system platform, processor, operating system, or network. Also, it should be apparent to those skilled in the art that the present invention is not limited to a specific programming language or computer system. Further, it should be appreciated that other appropriate programming languages and other appropriate computer systems could also be used.
(42) One or more portions of the computer system may be distributed across one or more computer systems coupled to a communications network. These computer systems also may be general-purpose computer systems. For example, various aspects of the invention may be distributed among one or more computer systems configured to provide a service (e.g., servers) to one or more client computers, or to perform an overall task as part of a distributed system. For example, various aspects of the invention may be performed on a client-server system that includes components distributed among one or more server systems that perform various functions according to various embodiments of the invention. These components may be executable, intermediate (e.g., IL) or interpreted (e.g., Java) code which communicate over a communication network (e.g., the Internet) using a communication protocol (e.g., TCP/IP).
(43) It should be appreciated that the invention is not limited to executing on any particular system or group of systems. Also, it should be appreciated that the invention is not limited to any particular distributed architecture, network, or communication protocol.
(44) Various embodiments of the present invention may be programmed using an object-oriented programming language, such as SmallTalk, Java, C++, Ada, or C# (C-Sharp). Other object-oriented programming languages may also be used. Alternatively, functional, scripting, and/or logical programming languages may be used. Various aspects of the invention may be implemented in a non-programmed environment (e.g., documents created in HTML, XML or other format that, when viewed in a window of a browser program, render aspects of a graphical-user interface (GUI) or perform other functions). Various aspects of the invention may be implemented as programmed or non-programmed elements, or any combination thereof.
(45) Further, on each of the one or more systems that include one or more components of a system for weight-based identification of 3D printed parts, each of the components may reside in one or more locations on the system. For example, different portions of the components of a system for weight-based identification of 3D printed parts may reside in different areas of memory (e.g., RAM, ROM, disk, etc.) on the system. Each of such one or more systems may include, among other components, a plurality of known components such as one or more processors, a memory system, a disk storage system, one or more network interfaces, and one or more busses or other internal communication links interconnecting the various components.
(46) Systems and processes disclosed herein for weight-based identification of 3D printed parts, such as a system including user interfaces 120, 130 and 150 in
(47) A system having user interfaces 120, 130 and 150 in
(48) Various aspects of the invention may be implemented as specialized software executing in a general-purpose computer system 180 such as that shown in
(49) The storage system 192, shown in greater detail in
(50) Although computer system 180 is shown by way of example as one type of computer system upon which various aspects of the invention may be practiced, it should be appreciated that aspects of the invention are not limited to being implemented on the computer system as shown in
(51) Computer system 180 may be a general-purpose computer system that is programmable using a high-level computer programming language. Computer system 180 may be also implemented using specially programmed, special purpose hardware. In computer system 180, processor 182 is typically a commercially available processor such as the well-known Pentium class processor available from the Intel Corporation. Many other processors are available. Such a processor usually executes an operating system which may be, for example, the Windows NT, Windows 2000 (Windows ME), Windows XP, Windows Vista or Windows 7 operating systems available from the Microsoft Corporation, MAC OS Snow Leopard, MAC OS Snow Lion operating systems available from Apple Computer, the Solaris Operating System available from Sun Microsystems, or UNIX available from various sources. Many other operating systems may be used.
(52) The processor and operating system together define a computer platform for which application programs in high-level programming languages are written. It should be understood that the invention is not limited to a particular computer system platform, processor, operating system, or network. Also, it should be apparent to those skilled in the art that the present invention is not limited to a specific programming language or computer system. Further, it should be appreciated that other appropriate programming languages and other appropriate computer systems could also be used.
(53) One or more portions of the computer system may be distributed across one or more computer systems (not shown) coupled to a communications network. These computer systems also may be general-purpose computer systems. For example, various aspects of the invention may be distributed among one or more computer systems configured to provide a service (e.g., servers) to one or more client computers, or to perform an overall task as part of a distributed system. For example, various aspects of the invention may be performed on a client-server system that includes components distributed among one or more server systems that perform various functions according to various embodiments of the invention. These components may be executable, intermediate (e.g., IL) or interpreted (e.g., Java) code which communicate over a communication network (e.g., the Internet) using a communication protocol (e.g., TCP/IP).
(54) It should be appreciated that the invention is not limited to executing on any particular system or group of systems. Also, it should be appreciated that the invention is not limited to any particular distributed architecture, network, or communication protocol.
(55) Various embodiments of the present invention may be programmed using an object-oriented programming language, such as SmallTalk, Java, C++, Ada, or C# (C-Sharp). Other object-oriented programming languages may also be used. Alternatively, functional, scripting, and/or logical programming languages may be used. Various aspects of the invention may be implemented in a non-programmed environment (e.g., documents created in HTML, XML or other format that, when viewed in a window of a browser program, render aspects of a graphical-user interface (GUI) or perform other functions). Various aspects of the invention may be implemented using various Internet technologies such as, for example, the well-known Common Gateway Interface (CGI) script, PHP Hyper-text Preprocessor (PHP), Active Server Pages (ASP), HyperText Markup Language (HTML), Extensible Markup Language (XML), Java, JavaScript, Asynchronous JavaScript and XML (AJAX), Flash, and other programming methods. Various aspects of the invention may be implemented as programmed or non-programmed elements, or any combination thereof.
(56) Having described above several aspects of at least one embodiment, it is to be appreciated various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure and are intended to be within the scope of the invention. Accordingly, the foregoing description and drawings are by way of example only, and the scope of the invention should be determined from proper construction of the appended claims, and their equivalents.