WO2018226206A1 - Thermal volumetric extrusion controller for 3d printers - Google Patents
Thermal volumetric extrusion controller for 3d printers Download PDFInfo
- Publication number
- WO2018226206A1 WO2018226206A1 PCT/US2017/035969 US2017035969W WO2018226206A1 WO 2018226206 A1 WO2018226206 A1 WO 2018226206A1 US 2017035969 W US2017035969 W US 2017035969W WO 2018226206 A1 WO2018226206 A1 WO 2018226206A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- filament
- target value
- extrusion
- electronic processor
- diameter
- Prior art date
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
- B29C64/393—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/10—Processes of additive manufacturing
- B29C64/106—Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material
- B29C64/118—Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material using filamentary material being melted, e.g. fused deposition modelling [FDM]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/20—Apparatus for additive manufacturing; Details thereof or accessories therefor
- B29C64/205—Means for applying layers
- B29C64/209—Heads; Nozzles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/307—Handling of material to be used in additive manufacturing
- B29C64/321—Feeding
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/307—Handling of material to be used in additive manufacturing
- B29C64/343—Metering
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y10/00—Processes of additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y30/00—Apparatus for additive manufacturing; Details thereof or accessories therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y40/00—Auxiliary operations or equipment, e.g. for material handling
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
- B33Y50/02—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
Definitions
- additive manufacturing otherwise known as three-dimensional (3D) printing
- 3D printing is a technique used for manufacturing 3D parts by depositing successive layers of material.
- a particular type of 3D printing fused filament fabrication, utilizes thermoplastic build material that is extruded through a printer head to form the printed part upon a suitable surface, such as a substrate or the surface of the build platform.
- the utilization of 3D printing objects has been rapidly growing due to the increased speed and decreased cost with which a large variety of parts can be manufactured.
- 3D printers typically receive extrusion parameters (for example, slice data) that are generic for the specific type of model 3D printer. Abnormalities in the feedstock of the 3D printer and the manner in which the 3D printer was exactly constructed can result in small variances that cause defects and distortion of the 3D printed parts. Many 3D printing applications require variances of less than two percent. Thus, abnormalities in the feedstock of a 3D printer and the manner in which a 3D printer was exactly constructed can result in a large number of part failures.
- FIG. 1 is a diagram of a 3D printer, in accordance with some embodiments.
- FIG. 2 is a diagram of an extruder included in the 3D printer of FIG. 1, in accordance with some embodiments.
- FIG. 3 is a diagram of a thermal volumetric extrusion controller included in the 3D printer of FIG. 1, in accordance with some embodiments.
- FIG. 4 is a perspective view of a thermal volumetric extrusion controller included in the 3D printer of FIG. 1, in accordance with some embodiments.
- FIG. 5 is a flowchart of a method of adjusting extrusion parameters of the 3D printer included in FIG. 1, in accordance with some embodiments.
- FIG. 6 is a diagram of a 3D print system, in accordance with some embodiments.
- FIG. 7 is a diagram of a server included in the 3D print system of FIG. 6, in accordance with some embodiments.
- FIG. 8 is a flowchart of a method of determining printer calibration data of the 3D printer included in FIG. 1, in accordance with some embodiments.
- a thermal volumetric extrusion controller of an extruder of a 3D printer may be configured to receive feedback from sensors positioned on the extruder and to adjust the build parameters, build speed, or positioning of extruder in real-time during a build to compensate for variances detected.
- the thermal volumetric extrusion controller includes one or more position sensors and at least one electronic processor.
- the position sensor is configured to measure filament position at the extruder.
- the electronic processor is electrically coupled to the position sensor and is configured to receive input data (for example, the data collected by the position sensors).
- the input data may include first target value (for example, values indicated by a build file, such as a Computer-Aided Design (CAD) file) of extrusion speed and a first target value of the filament position.
- the electronic processor is also configured to receive an observed value of the filament position from the position sensor.
- the electronic processor may be further configured to determine a difference between the first target value of the filament position and the observed value of the filament position.
- the electronic processor may be also configured to determine a second target value of the extrusion speed based in part on the determined difference between the first target value of the filament position and the observed value of the filament position.
- the electronic processor is further configured to adjust a speed of the extruder based in part on the second target value of the extrusion speed.
- Another embodiment provides a method of adjusting a plurality of extrusion parameters for a 3D printer.
- the method includes receiving input data via a transceiver included in the 3D printer.
- the input data includes a first target value of extrusion speed and a first target value of filament position.
- the method also includes determining, with a position sensor included in the 3D printer, an observed value of the filament position at an extruder of the 3D printer.
- the method further includes determining, with an electronic processor included in the 3D printer, a difference between the first target value of the filament position and the observed value of the filament position.
- the method also includes determining, with the electronic processor, a second target value of the extrusion speed based in part on the determined difference between the first target value of the filament position and the observed value of the filament position.
- the method further includes adjusting, with the electronic processor, a speed of the extruder based in part on the second target value of the extrusion speed.
- the thermal volumetric extrusion controller includes a diameter sensor, a position sensor, a transceiver, and an electronic processor.
- the diameter sensor is configured to measure filament diameter at the extruder.
- the position sensor is configured to measure filament position at the extruder.
- the electronic processor is electrically coupled to the diameter sensor, the position sensor, and the transceiver.
- the electronic processor is configured to receive input data via the transceiver.
- the input data includes first target values for each of a plurality of extrusion parameters.
- the electronic processor is also configured to receive sensor data from the diameter sensor and the position sensor indicating the filament diameter and the filament position.
- the electronic processor is further configured to determine observed values for each of the plurality of extrusion parameters based in part on the sensor data.
- the electronic processor is also configured to determine second target values for each of the plurality of extrusion parameters based on the determined difference between the first target values of a build file and the observed values for each of the plurality of extrusion parameters.
- the electronic processor is further configured to adjust extrusion parameters of the extruder based in part on the second target values for each of the plurality of extrusion parameters.
- the thermal volumetric extrusion controller may include position sensors to collect data associated with the filament and to adjust a speed, position, and/or other parameters of the 3D printer or the extruder to maintain the part within desired tolerances in substantially real-time.
- temperature of the physical environment surrounding the build environment may affect the temperature within the build environment, which may in turn cause the filament to cool at a rate faster or slower than expected.
- changes in the rate of cooling of the filament cause unexpected variances within the resulting part.
- the variances in the resulting parts cause at least some of the parts to fail to meet the desired or targeted build tolerances.
- parts have tight tolerances and even small variances cause the parts to fail testing and ultimately be discharged.
- the extruders including position sensor in combination with the thermal volumetric extrusion controller described herein the build parameters may be altered in real-time resulting in 3D generated parts that can be reproduced at mass scales within desired tolerances.
- FIG. 1 is a diagram of one example embodiment of a 3D printer 100.
- the 3D printer 100 is configured to manufacture a part 105 (or print) by 3D printing, or additive manufacturing, techniques such as fused filament fabrication.
- the 3D print system 100 can be used to produce the part 105 by depositing layers of a build material on a build platform 104.
- the object may be removed by hand, by a process involving specialized tooling, or by auto-ejection techniques.
- the 3D printer 100 includes a build platform 110, a 3D print environment 115, an extruder 120, a material source 125, and a thermal volumetric extrusion controller 130.
- the 3D printer 100 can be used to produce the part 105 by depositing layers of a build material (for example, filament 135) on the build platform 110.
- the 3D print environment 115 surrounds the build platform 110 and houses various components of the 3D printer 100.
- the extruder 120 is configured to dispense build material, layer by layer, to form the part 105 on the surface of the build platform 110.
- the material source 125 stores the filament 135 used to form the part 105.
- the material source 125 can be coupled to the extruder 120 by a tubing system or other suitable connection system.
- the extruder 120 may include one or more sensors configured to collect data associated with the build environment, the extruder 120 position, speed, build rate, etc., as well as the part 105.
- the data collected by the sensors may be provided to a thermal volumetric extrusion controller configured to adjust a speed, position, and/or other parameters of the 3D printer 100 or the extruder 120 to maintain the part within desired tolerances in substantially real-time.
- FIG. 2 is a diagram of one example embodiment of the extruder 120.
- the extruder 120 includes an extruder body 205 and a hot end 210.
- the extruder body 205 includes a drive system 215 that drives the filament 135 into the hot end 210 (for example, a stepper motor or gears).
- the hot end 210 gets hot to melt the filament 135 and deposit it on the part 105 being printed.
- the hot end 210 includes, among other things, a heater 220, a heating barrel 225, and an opening (for example, a nozzle 230).
- the heater 220 generates the heat needed.
- the filament 135 is fed through the heating barrel 225 causing the filament to become heated prior to placement by the nozzle 230.
- the nozzle 230 emits the filament 135 to form the part 105.
- the opening of the nozzle 230 may vary in diameter dependent upon the building material and the size of the part 105 being formed. The size of the opening dictates part quality and extrusion
- the drive system 215, the heater 220, the heating barrel 225, and/or the nozzle 230 may be equipped with one or more sensors to monitor the operations of the extruder 120 as filament 135 is dispensed via the hot end 210.
- the nozzle 230 may extrude the filament 135 at a rate slower than expected or in lower amounts than expected.
- the sensors may detect the temperature of the filament 135 and provide the temperature data to a thermal volumetric extrusion controller module, system, or instructions which may reduce the speed of the extruder 120 to compensate.
- the extruder 120 of the illustrated example may be equipped to adjust printing parameters in real-time or substantially real time and produce parts 105 that are more likely to be within the desired tolerances.
- FIG. 3 is a block diagram of one example embodiment of the thermal volumetric extrusion controller 130.
- the thermal volumetric extrusion controller 130 includes an electronic controller 305, a diameter sensor 310, a position sensor 315, and a temperature sensor 317.
- the thermal volumetric extrusion controller 130 may include fewer or additional components in configurations different from the configuration illustrated in FIG. 3.
- the thermal volumetric extrusion controller 130 may include more than one diameter sensor 310, and may include more than one position sensor 315 or more than one temperature sensor 317.
- the electronic controller 305 includes, among other things, an electronic processor 320 (for example, a microprocessor, one or more access components, control logic circuits, central processing units, processors, etc.), computer-readable media 325 (for example, a memory), a transceiver 330, and a user interface 335.
- the electronic processor 320, the computer-readable media 325, and the various other components of the electronic controller 305 are coupled to each other directly or via one or more buses (not shown).
- the electronic controller 305 may include fewer or additional components in configurations different from the configuration illustrated in FIG. 3.
- the electronic controller 305 may include more than one electronic processor 320, and may include more than one memory 325.
- the computer-readable media 325 may be an example of tangible non-transitory computer storage media and may include volatile and nonvolatile memory and/or removable and non-removable media implemented in any type of technology for storage of information such as computer-readable instructions or modules, data structures, program modules or other data.
- Such computer-readable media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other computer-readable media technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, solid state storage, magnetic disk storage, RAID storage systems, storage arrays, network attached storage, storage area networks, cloud storage, or any other medium that can be used to store information and which can be accessed by the electronic controller 305 or electronic processor 320.
- the computer-readable media 325 may store a closed loop control module or instructions 340.
- the computer-readable media 325 may also store building material data 345 associated with timing and temperature information related to materials that may be used to 3D print an object.
- the computer-readable media 325 may also store printer calibration data 350 associated with the brand, model, and/or individual unit of the 3D printer 100. As described in more detail below, the printer calibration data 350 includes, among other things, optimized extrusion speeds for different extrusion temperatures, and slipping rates for different extrusion speeds.
- the electronic processor 320 is configured to retrieve program instructions and data from the computer-readable media 325 and execute, among other things, instructions to perform the methods described herein. Additionally or alternatively, the computer-readable media 325 is included in the electronic processor 320.
- the transceiver 330 is configured to provide communications between the thermal volumetric extrusion controller 130 and other components internal and external to the 3D printer 100. For example, the transceiver 330 transmits signals to components external to the 3D printer 100, and receives signals from components external to the 3D printer 100. In some embodiments, signals include, for example, data, data packets, or any combination thereof. In some embodiments, the transceiver 330 includes separate transmitters and receivers.
- the user interface 335 includes any combination of digital and analog input devices required to achieve a desired level of control for the thermal volumetric extrusion controller 130 or the 3D printer 100.
- the user interface 335 can include a computer having a display and input devices, a display, a keyboard, a mouse, speakers, and the like.
- the diameter sensor 310 is configured to measure the filament diameter.
- the filament diameter includes, for example, the cross section arear of the filament 135.
- the diameter sensor 310 includes an optical sensor.
- the diameter sensor 310 includes an emitter that emits an infrared beam on the filament 135, and a receiver that analyzes the reflection of the infrared beam to determine the cross sectional area of the filament 135.
- the diameter sensor 310 includes other types of sensors (for example, electrical, mechanical, pneumatic, and the like).
- the position sensor 315 is configured to measure the filament position. In other words, the position sensor 315 is configured to determine the current portion of the filament 135 that is being fed into the extruder 120.
- the electronic processor 320 can determine the length of filament 135 being fed into the extruder 120 by monitoring the change in the current position of the filament 135.
- the position sensor 315 includes an optical sensor. Alternatively or in addition, the position sensor 315 includes other types of sensors (for example, electrical, mechanical, pneumatic, and the like). In some embodiments, the position sensor 315 includes encoders, fluid level sensors, flow-rate sensors, or a combination thereof.
- the temperature sensor 317 is configured to measure the temperature of the extruder 120. In some embodiments, the temperature sensor 317 is positioned near the heating barrel 225 of the extruder 120.
- FIG. 4 is a perspective view of one example embodiment of the thermal volumetric extrusion controller 130.
- the thermal volumetric extrusion controller 130 includes the electronic controller 305, the diameter sensor 310, the position sensor 315, a pinch bearing 405, and a clamp 410.
- the filament 135 passes through the diameter sensor 310 and engages with the pinch bearing 405 to trigger the position sensor 315.
- the pinch bearing 405 translates motion of the filament 135 to the position sensor 315.
- the clamp 410 couples the thermal volumetric extrusion controller 130 to the extruder 120.
- the 3D printer 100 can include, be coupled to, or obtain data from a CAD system to provide a digital representation of the part 105 to be formed by the 3D printer 100.
- Any suitable CAD software program can be utilized to create the digital representation of the part 105.
- a user can design, using a 3D modeling software program executing on a host computer, a part having a particular shape with specified dimensions, such as part 105, that is to be manufactured using the 3D printer 100.
- the CAD system can mathematically slice the digital representation of the part 105 into multiple horizontal layers.
- the CAD system can then design build paths along which the filament 135 is to be deposited in a layer-by-layer fashion to form the part 105.
- the CAD system uses the building paths to produce code in a numerical programming language, such as G-code.
- G-code can include target values for a plurality of extrusion parameters.
- Extrusion parameters include, for example, filament diameter, filament position, extrusion speed, and extrusion temperature.
- the thermal volumetric extrusion controller 130 adjusts the target values of the plurality of extrusion parameters based on measurement data received from the diameter sensor 310 and the position sensor 315.
- the thermal volumetric extrusion controller 130 reduces variances between the target extrusion values included in the G-code and the actual extrusion values determined based on measurement data received from the diameter sensor 310 and the position sensor 315.
- the thermal volumetric extrusion controller 130 manages and/or directs one or more components of the 3D printer 100, such as the extruder 120, by controlling movement of those components according to the G-code produced by the CAD system.
- a separate control system included in the 3D printer 100 manages and/or directs the one or more components of the 3D printer 100 according to the G-code produced by the CAD system.
- the thermal volumetric extrusion controller 130 adjusts the G-code produced by the CAD system before the G-code is transmitted to the separate control system.
- the movement of the various components of the 3D printer 100, such as the extruder 120, can be performed by the use of stepper motors, servo motors, microcontrollers, combinations thereof, and the like.
- the closed loop control module 340 stored in the memory 325 is configured to adjust extrusion parameters of the 3D printer 100 to account for variations in the components of the 3D printer 100.
- the closed loop control module 340 adjusts the extrusion parameters based on real-time feedback from the diameter sensor 310 and the position sensor 315.
- Extrusions parameters include, for example, feedstock diameter, set point temperature, extrusion speed, acceleration, pressure advancement, or a combination thereof.
- FIGS. 5 and 8 are flow diagrams illustrating example processes associated with a closed loop system for adjusting 3D printer parameters within an extruder according to some implementations.
- the processes are illustrated as a collection of blocks in a logical flow diagram, which represent a sequence of operations, some or all of which can be implemented in hardware, software or a combination thereof.
- the blocks represent computer-executable instructions stored on one or more computer-readable media that, which when executed by one or more processors, perform the recited operations.
- computer- executable instructions include routines, programs, objects, components, encryption, deciphering, compressing, recording, data structures and the like that perform particular functions or implement particular abstract data types.
- FIG. 5 illustrates an example method 500 of adjusting extrusion parameters of the 3D printer 100 with the thermal volumetric extrusion controller 130.
- the method 500 includes the electronic processor 320 receiving a material type (at block 505).
- the material type indicates the material of the filament 135 (for example, polylactic acid or acrylonitrile butadiene styrene).
- the electronic processor 320 receives the material type from a user via the user interface 335.
- the electronic processor 320 receives input data indicating first target values for a plurality of extrusion parameters.
- the plurality of extrusion parameters includes, for example, filament diameter, filament position, extrusion speed, extrusion temperature, or a combination thereof.
- the input data includes one or more lines of G-code.
- the electronic processor 320 receives the input data from a CAD system. Alternatively or in addition, the electronic processor 320 receives the input data from a separate control system included in the 3D printer 100. Alternatively or in addition, the electronic processor 320 receives the input data from a user via the user interface 335.
- the electronic processor 320 determines an extrusion temperature (for example, a second target value of extrusion temperature).
- the extrusion temperature is the temperature at which the filament 135 is heated by the heater 220 in the extruder 120.
- the electronic processor 320 determines the second target value of extrusion temperature based in part on the input data. For example, the electronic processor 320 sets the second target value of extrusion temperature to a first target value of extrusion temperature included in the input data.
- the electronic processor 320 sets the second target value of extrusion temperature to a predetermined (or default) value, for example, when the input data does not include a target value of the extrusion temperature.
- the predetermined value of extrusion temperature may be stored in the computer-readable media 325.
- the electronic processor 320 determines an observed filament diameter of the filament 135 being fed into the extruder 120.
- the observed filament diameter indicates the cross sectional area of the filament 135.
- the electronic processor 320 determines the observed filament diameter based in part on measurement data which the electronic processor 320 receives from the diameter sensor 310. Alternatively, the diameter sensor 310 determines and sends the observed filament diameter to the electronic processor 320.
- the electronic processor 320 determines when the observed filament diameter is about equal to the first target value of filament diameter included in the input data. In some embodiments, the electronic processor 320 determines that the observed filament diameter is about equal to the first target value when the difference between the observed filament diameter and the first target value is less than a threshold. For example, when the first target value of filament diameter is 3 millimeters and the threshold is 0.2 millimeters, the electronic processor 320 may determine that the observed filament diameter is about equal to the first target value when the observed filament diameter is between 2.8 millimeters and 3.2 millimeters.
- the electronic processor 320 attempts to correct the deviation (at 530). In some embodiments, the electronic processor 320 modifies one or more target values of the extrusion axis included in the G-code of the input data to correct deviations between the observed filament diameter and the first target value of filament diameter. In some embodiments, the electronic processor 320 determines a second target value of filament diameter when the observed filament diameter is not equal to the first target value of filament diameter.
- the electronic processor 320 determines an extrusion speed (for example, a second target value of extrusion speed) (at 535). The rate at which filament 135 is dispensed from the extruder 120 is set based on the extrusion speed.
- the electronic processor 320 sets the second target value of extrusion speed to a first target value of extrusion speed included in the input data.
- the electronic processor 320 sets the second target value of extrusion speed based in part on extrusion temperature. For example, the electronic processor 320 sets the second target value of extrusion speed to an optimized extrusion speed for the current extrusion temperature.
- the printer calibration data 350 includes optimized extrusion speeds for different extrusion temperatures.
- the printer calibration data 350 may indicate an optimized extrusion speed of 50 millimeters per second when the extrusion temperature is set to 205 degrees Celsius.
- the electronic processor 320 sets the second target value of extrusion speed based in part on a slipping rate.
- the slipping rate indicates the difference the between target filament position and the observed filament position. Higher slipping rates cause greater deviations in the part 105. In general, slipping rate increases as extrusion speed increases.
- the electronic processor 320 sets the second target value of extrusion speed such that the slipping rate is less than a threshold.
- the printer calibration data 350 includes optimized extrusion speeds for different slipping rates.
- the electronic processor 320 sends output data that adjusts all or a portion of the plurality of extrusion parameters to the second target values.
- the electronic processor 320 transmits the output data to a separate control system in the 3D printer 100 that controls the operation of the extruder 120.
- the output data includes, among other things, second target values for each of the plurality of extrusion parameters.
- the output data includes the second target value of extrusion temperature determined at 515, the second target value of filament diameter determined at 530, and the second target value of extrusion speed determined at 535.
- the electronic processor 320 does not determine updated target values for each of the plurality of extrusion parameters included in the input data.
- a second target value of an extrusion parameter determined by the electronic processor 320 may be equal to the first target value of the extrusion parameter included in the input data.
- the input data may include a first target value for an extrusion parameter which the electronic processor 320 does not analyze.
- the output data may include second target values of extrusion parameters that are equal to the first target values of extrusion parameters included in the input data.
- the electronic processor 320 transmits the output data to control the operation of the extruder 120.
- the output data includes various control signals which cause the extruder 120 to operate according to the second target values of the plurality of extrusion parameters.
- the output data include control signals which cause the extruder 120 to dispense filament at the second target value of extrusion speed determined at 535.
- the extruder 120 dispenses set amounts (or lengths) of filament.
- the second target values of extrusion parameters included in the output data may cause the extruder 120 to dispense 10 millimeters of the filament 135.
- the electronic processor 320 determines a filament position (for example, an observed filament position) (at 545).
- the filament 135 includes a thread of building material.
- the observed filament position is the current portion of the thread being fed into the extruder 120.
- the electronic processor 320 determines the observed filament position based in part on measurement data which the electronic processor 320 receives from the position sensor 315. Alternatively, the position sensor 315 determines and sends the observed filament position to the electronic processor 320.
- the electronic processor 320 determines when the observed filament position matches with the output data. As described above, the output data causes the extruder 120 to dispense an amount of filament based on the second target values of extrusion parameters. In some embodiments, the electronic processor 320 determines and compares a target filament position to the observed filament position. The target filament position indicates the specific portion of filament 135 that should be fed into the extruder 120 at a set time based on the second target values of extrusion parameters. The electronic processor 320 may determine that the observed filament position matches the output data when the observed filament position is equal to (or within a predetermined distance from) the target filament position. When the observed filament position matches the output data, the method 500 returns to 510, and the electronic processor 320 receives a new input data.
- the electronic processor 320 determines a slipping rate (at 555).
- the slipping rate indicates the difference between the actual length of filament 135 dispensed by the extruder 120 and the target length of filament 135 which the extruder 120 is expected to dispense.
- the electronic processor 320 determines the slipping rate based in part on the observed filament position and the output data.
- the electronic processor 320 updates the printer calibration data 350 stored in the memory 325 to include the determined slipping rate (at 560). As described above, the electronic processor 320 adjusts the extrusion speed based in part on the slipping rate.
- the electronic processor 320 can later access the slipping rates to continuously adjust the extrusion speed to optimized values at different extrusion temperatures.
- the method 500 returns to 510 after 560, and the electronic processor 320 receives new input data.
- the 3D printer 100 is part of a larger system.
- FIG. 6 is a diagram of one example embodiment of a 3D print system 600.
- the 3D print system 600 includes the 3D printer 100, a communication network 605, and a server 610.
- the 3D print system 600 illustrated in FIG. 6 is provided as one example of such a system.
- the methods described herein may be used with print systems with fewer, additional, or different components in different configurations than the 3D print system 600 illustrated in FIG. 6.
- the 3D print system 600 may include more than one 3D printer 100, and may include more than one server 610.
- the communication network 605 may be a wired network, a wireless network, or both. All or parts of the communication network 605 may be implemented using various networks, for example, a cellular network, the Internet, a BluetoothTM network, a wireless local area network (for example, Wi-Fi), a wireless accessory Personal Area Networks (PAN), cable, an Ethernet network, satellite, a machine-to-machine (M2M) autonomous network, and a public switched telephone network.
- the 3D printer 100, the server 610, and other various components of the 3D print system 600 communicate with each other over the communication network 605 using suitable wireless or wired communication protocols. In some embodiments, communications with other external devices (not shown) occur over the communication network 605.
- FIG. 7 is a diagram of one example embodiment of the server 610.
- the server 610 includes a server electronic processor 705, server memory 710, a server transceiver 715, and a server user interface 720.
- the server electronic processor 705, the server memory 710, and the various other components of the server 610 are coupled to each other directly or via one or more buses (not shown).
- the server 610 may include fewer or additional components in configurations different from the configuration illustrated in FIG. 7.
- the server 610 may include more than one server electronic processor 705, and may include more than one server memory 710.
- the server memory 710 stores program instructions and data.
- the server memory 710 may include combinations of different types of memory, including the various types of memory described above with respect to the memory 325 included in the electronic controller 305 of the thermal volumetric extrusion controller 130.
- the server electronic processor 705 retrieves program instructions from the server memory 710 and executes the program instructions to perform a set of functions including all or part of the methods described herein.
- the server transceiver 715 transmits signals to and receives signals from the 3D printer 100 and the other components included in the 3D print system 600, such as through the communication network 605 or directly.
- signals include, for example, data, data packets, or any combination thereof.
- the server user interface 720 includes any combination of digital and analog input devices required to achieve a desired level of control for the server 610.
- the server user interface 720 can include a computer having a display and input devices, a display, a keyboard, a mouse, speakers, and the like.
- the server memory 710 stores a printer calibration module 735, building material data 740, and printer calibration data 745.
- the building material data 740 stored in the server memory 710 may include all or any portion of the building material data 345 stored in the memory 325 of the thermal volumetric extrusion controller 130.
- the printer calibration data 745 stored in the server memory 710 may include all or any portion of the printer calibration data 350 stored in the memory 325 of the thermal volumetric extrusion controller 130.
- the printer calibration module 735 is configured to determine the printer calibration data 745 for the 3D printer 100. In other words, the printer calibration module 735 is configured to determine optimized extrusion parameters of the 3D printer 100 that account for variations in the components of the 3D printer 100.
- FIG. 8 illustrates an example method 800 of determining the printer calibration data 745 of the 3D printer 100 with the server 610.
- the method 800 includes the server electronic processor 705 receiving a material type (at 805).
- the server electronic processor 705 receives the material type via the server user interface 720.
- the server electronic processor 705 receives material information related to the material type being used to 3D print the part 105.
- the material information includes a glass transition temperature of the material.
- the server electronic processor 705 determines the material information based on the building material data 740 stored in the server memory 710. Alternatively or in addition, the server electronic processor 705 receives the material information via the server user interface 720.
- the server electronic processor 705 determines an extrusion temperature range for the material type. For example, the server electronic processor 705 may determine an extrusion temperature range between zero degrees Celsius and 500 degrees Celsius when the filament 135 is composed of a type of acrylonitrile butadiene styrene. In some embodiments, the server electronic processor 705 receives this information from the server memory 710. Alternatively or in addition, the server electronic processor 705 receives this information from a user via the server user interface 720.
- the server electronic processor 705 determines an extrusion speed range for the material type. For example, the server electronic processor 705 may determine an extrusion speed range between zero millimeter per second and 500 millimeters per second when the filament 135 is composed of a type of acrylonitrile butadiene styrene. In some embodiments, the server electronic processor 705 receives this information from the server memory 710. Alternatively or in addition, the server electronic processor 705 receives this information from a user via the server user interface 720. [0060] At 825, the server electronic processor 705 determines test program instructions for the 3D printer 100 based in part on the determined extrusion temperature range and the determined extrusion speed range. For example, the server electronic processor 705 generates one or more lines of G-code for the 3D printer 100 with different target values of extrusion temperature and extrusion speed within the determined ranges.
- the server electronic processor 705 transmits the test program instructions to the 3D printer 100 via the server transceiver 715.
- the test program instructions cause the 3D printer 100 to dispense standard lengths of filament 135 at each different target value of extrusion temperature and extrusion speed included in the test program instructions.
- the thermal volumetric extrusion controller 130 measures the filament diameter with the diameter sensor 310 and the filament position with the position sensor 315.
- the server electronic processor 705 receives filament diameter measurement data from the thermal volumetric extrusion controller 130 (at 835).
- the server electronic processor 705 also receives filament position measurement data from the thermal volumetric extrusion controller 130 (at 840).
- the server electronic processor 705 determines a slipping rate based in part on the filament diameter measurement data, the filament position measurement data, or both. In some embodiments, the determined slipping rate is included in the printer calibration data 745 stored in the server memory 710.
- the server electronic processor 705 determines optimized extrusion speeds at different extrusion temperatures based in part on the filament diameter measurement data, the filament position measurement data, or both. In some embodiments, the optimized extrusion speeds are included in the printer calibration data 745 stored in the server memory 710. [0064] At 855, the server electronic processor 705 determines optimized extrusion temperatures. In some embodiments, the server electronic processor 705 determines optimized extrusion temperatures based in part on temperature measurement data (from the temperature sensor 317), the filament diameter measurement data, the filament position measurement data, the optimized extrusion speeds, or a combination thereof. In some embodiments, the optimized extrusion temperatures are included in the printer calibration data 745 stored in the server memory 710.
- the 3D print system 600 Given an unknown 3D printer and/or filament material combination, the 3D print system 600 first approaches new geometries at relatively low extrusion speeds until acceptable output quality has been achieved for the given combination. Then, the 3D print system 600 optimizes for printing speed while staying within the allowable defect and/or tolerance ranges. Dynamically varying the extrusion temperature for current and/or upcoming geometry is a driving parameter for optimizing printing speed once a baseline quality has been achieved at low extrusion speeds.
- the printer calibration data 350 includes optimized extrusion speeds and optimized extrusion temperatures that correspond to the loaded filament 135.
- the electronic processor 320 determines target values of extrusion speed and extrusion temperature for each piece of upcoming geometry received in the input data (for example, G-code) based on the acceleration limitations of the 3D printer 100. For example, as the extruder 120 decelerates into a corner, the electronic processor 320 decreases the extrusion temperature to a minimum target value in the printer calibration data 350 (for example, zero millimeters per second instantaneous speed).
- the electronic processor 320 increases the extrusion temperature to a maximum target value in the printer calibration data 350 when the extruder 120 reaches a maximum extrusion speed at the center of the straightaway.
- the server 610 determines an observed digital representation of the actual part produced by the 3D printer 100 (for example, a 3D model).
- the server electronic processor 705 determines the observed digital representation based on the filament diameter measurement data and the filament position measurement data. By comparing the observed digital representation with a target digital representation of a target part that was used to generate programing instructions for the 3D printer 100, the server electronic processor 705 can identify any portions of the actual part that deviate from the target part. In addition, the server electronic processor 705 can determine the amount of variation of each of these portions of the produced part. In this manner, the server electronic processor 705 can determine whether a part produced by the 3D printer 100 complies with variance restrictions for that part.
Landscapes
- Chemical & Material Sciences (AREA)
- Engineering & Computer Science (AREA)
- Materials Engineering (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Optics & Photonics (AREA)
Abstract
Thermal volumetric extrusion controllers and methods for adjusting a plurality of extrusion parameters for a 3D printer. In one embodiment, the thermal volumetric extrusion controller includes an electronic processor and a position sensor configured to measure filament position at an extruder. The electronic processor is configured to receive input data including first target values of extrusion speed and filament position. The electronic processor is also configured to receive an observed value of the filament position from the position sensor. The electronic processor is further configured to determine a difference between the first target value of the filament position and the observed value of the filament position. The electronic processor is also configured to determine a second target value of the extrusion speed based in part on the determined difference, and to adjust a speed of the extruder based in part on the second target value of the extrusion speed.
Description
THERMAL VOLUMETRIC EXTRUSION CONTROLLER
FOR 3D PRINTERS
BACKGROUND
[0001] Additive manufacturing, otherwise known as three-dimensional (3D) printing, is a technique used for manufacturing 3D parts by depositing successive layers of material. A particular type of 3D printing, fused filament fabrication, utilizes thermoplastic build material that is extruded through a printer head to form the printed part upon a suitable surface, such as a substrate or the surface of the build platform. The utilization of 3D printing objects has been rapidly growing due to the increased speed and decreased cost with which a large variety of parts can be manufactured.
[0002] However, utilizing 3D manufacturing for producing parts that are sensitive to variances of 3D printers can present several challenges. 3D printers typically receive extrusion parameters (for example, slice data) that are generic for the specific type of model 3D printer. Abnormalities in the feedstock of the 3D printer and the manner in which the 3D printer was exactly constructed can result in small variances that cause defects and distortion of the 3D printed parts. Many 3D printing applications require variances of less than two percent. Thus, abnormalities in the feedstock of a 3D printer and the manner in which a 3D printer was exactly constructed can result in a large number of part failures.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] FIG. 1 is a diagram of a 3D printer, in accordance with some embodiments.
[0004] FIG. 2 is a diagram of an extruder included in the 3D printer of FIG. 1, in accordance with some embodiments.
[0005] FIG. 3 is a diagram of a thermal volumetric extrusion controller included in the 3D printer of FIG. 1, in accordance with some embodiments.
[0006] FIG. 4 is a perspective view of a thermal volumetric extrusion controller included in the 3D printer of FIG. 1, in accordance with some embodiments.
[0007] FIG. 5 is a flowchart of a method of adjusting extrusion parameters of the 3D printer included in FIG. 1, in accordance with some embodiments.
[0008] FIG. 6 is a diagram of a 3D print system, in accordance with some embodiments.
[0009] FIG. 7 is a diagram of a server included in the 3D print system of FIG. 6, in accordance with some embodiments.
[0010] FIG. 8 is a flowchart of a method of determining printer calibration data of the 3D printer included in FIG. 1, in accordance with some embodiments.
DETAILED DESCRIPTION
[0011] Described herein are controllers and methods for adjusting extrusion parameters to account for variances in parts generated by 3D printers. For example, in one embodiment a thermal volumetric extrusion controller of an extruder of a 3D printer may be configured to receive feedback from sensors positioned on the extruder and to adjust the build parameters, build speed, or positioning of extruder in real-time during a build to compensate for variances detected. For instance, the thermal volumetric extrusion controller includes one or more position sensors and at least one electronic processor. The position sensor is configured to measure filament position at the extruder. The electronic processor is electrically coupled to the position sensor and is configured to receive input data (for example, the data collected by the position sensors). In some cases, the input data may include first target value (for example, values indicated by a build file, such as a Computer-Aided Design (CAD) file) of extrusion speed and a
first target value of the filament position. The electronic processor is also configured to receive an observed value of the filament position from the position sensor. The electronic processor may be further configured to determine a difference between the first target value of the filament position and the observed value of the filament position. The electronic processor may be also configured to determine a second target value of the extrusion speed based in part on the determined difference between the first target value of the filament position and the observed value of the filament position. The electronic processor is further configured to adjust a speed of the extruder based in part on the second target value of the extrusion speed.
[0012] Another embodiment provides a method of adjusting a plurality of extrusion parameters for a 3D printer. The method includes receiving input data via a transceiver included in the 3D printer. The input data includes a first target value of extrusion speed and a first target value of filament position. The method also includes determining, with a position sensor included in the 3D printer, an observed value of the filament position at an extruder of the 3D printer. The method further includes determining, with an electronic processor included in the 3D printer, a difference between the first target value of the filament position and the observed value of the filament position. The method also includes determining, with the electronic processor, a second target value of the extrusion speed based in part on the determined difference between the first target value of the filament position and the observed value of the filament position. The method further includes adjusting, with the electronic processor, a speed of the extruder based in part on the second target value of the extrusion speed.
[0013] Yet another embodiment provides a thermal volumetric extrusion controller for an extruder of a 3D printer. In one embodiment, the thermal volumetric extrusion controller includes a diameter sensor, a position sensor, a transceiver, and an electronic processor. The
diameter sensor is configured to measure filament diameter at the extruder. The position sensor is configured to measure filament position at the extruder. The electronic processor is electrically coupled to the diameter sensor, the position sensor, and the transceiver. The electronic processor is configured to receive input data via the transceiver. The input data includes first target values for each of a plurality of extrusion parameters. The electronic processor is also configured to receive sensor data from the diameter sensor and the position sensor indicating the filament diameter and the filament position. The electronic processor is further configured to determine observed values for each of the plurality of extrusion parameters based in part on the sensor data. The electronic processor is also configured to determine second target values for each of the plurality of extrusion parameters based on the determined difference between the first target values of a build file and the observed values for each of the plurality of extrusion parameters. The electronic processor is further configured to adjust extrusion parameters of the extruder based in part on the second target values for each of the plurality of extrusion parameters. In other cases, the thermal volumetric extrusion controller may include position sensors to collect data associated with the filament and to adjust a speed, position, and/or other parameters of the 3D printer or the extruder to maintain the part within desired tolerances in substantially real-time.
[0014] For instance, in one example, temperature of the physical environment surrounding the build environment may affect the temperature within the build environment, which may in turn cause the filament to cool at a rate faster or slower than expected. Thus, in conventional 3D build systems using conventional extruders, changes in the rate of cooling of the filament cause unexpected variances within the resulting part. In some cases, the variances in the resulting parts cause at least some of the parts to fail to meet the desired or targeted build tolerances. In specific
cases, such as when building military grade parts, parts have tight tolerances and even small variances cause the parts to fail testing and ultimately be discharged. However, by utilizing the extruders including position sensor in combination with the thermal volumetric extrusion controller described herein, the build parameters may be altered in real-time resulting in 3D generated parts that can be reproduced at mass scales within desired tolerances.
[0015] Thus, the techniques, systems, and materials described herein improve the efficiency, cost, reliability, and quality of the 3D printing process when compared with conventional 3D printing.
[0016] Before any embodiments are explained in detail, it is to be understood that no embodiment is necessarily limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. Other embodiments are possible and embodiments described are capable of being practiced or of being carried out in various ways.
[0017] It should also be noted that a plurality of different structural components may be utilized to implement the disclosure. Furthermore, and as described in subsequent paragraphs, the specific configurations illustrated in the drawings are intended to exemplify certain embodiments. Alternative configurations are possible.
[0018] For ease of description, the example systems presented herein may be illustrated with a single exemplar of each of their component parts. Some examples may not describe or illustrate all components of the systems. Other example embodiments may include more or fewer of each of the illustrated components, may combine some components, or may include additional or alternative components.
[0019] FIG. 1 is a diagram of one example embodiment of a 3D printer 100. The 3D printer 100 is configured to manufacture a part 105 (or print) by 3D printing, or additive manufacturing, techniques such as fused filament fabrication. For example, the 3D print system 100 can be used to produce the part 105 by depositing layers of a build material on a build platform 104. In some embodiments, the object may be removed by hand, by a process involving specialized tooling, or by auto-ejection techniques.
[0020] In the illustrated example, the 3D printer 100 includes a build platform 110, a 3D print environment 115, an extruder 120, a material source 125, and a thermal volumetric extrusion controller 130. The 3D printer 100 can be used to produce the part 105 by depositing layers of a build material (for example, filament 135) on the build platform 110. The 3D print environment 115 surrounds the build platform 110 and houses various components of the 3D printer 100. The extruder 120 is configured to dispense build material, layer by layer, to form the part 105 on the surface of the build platform 110. The material source 125 stores the filament 135 used to form the part 105. The material source 125 can be coupled to the extruder 120 by a tubing system or other suitable connection system.
[0021] In the current example, the extruder 120 may include one or more sensors configured to collect data associated with the build environment, the extruder 120 position, speed, build rate, etc., as well as the part 105. The data collected by the sensors may be provided to a thermal volumetric extrusion controller configured to adjust a speed, position, and/or other parameters of the 3D printer 100 or the extruder 120 to maintain the part within desired tolerances in substantially real-time.
[0022] FIG. 2 is a diagram of one example embodiment of the extruder 120. The extruder 120 includes an extruder body 205 and a hot end 210. The extruder body 205 includes a drive system
215 that drives the filament 135 into the hot end 210 (for example, a stepper motor or gears). The hot end 210 gets hot to melt the filament 135 and deposit it on the part 105 being printed. The hot end 210 includes, among other things, a heater 220, a heating barrel 225, and an opening (for example, a nozzle 230). The heater 220 generates the heat needed. The filament 135 is fed through the heating barrel 225 causing the filament to become heated prior to placement by the nozzle 230. The nozzle 230 emits the filament 135 to form the part 105. The opening of the nozzle 230 may vary in diameter dependent upon the building material and the size of the part 105 being formed. The size of the opening dictates part quality and extrusion speed.
[0023] In some cases, such as the illustrated example, the drive system 215, the heater 220, the heating barrel 225, and/or the nozzle 230 may be equipped with one or more sensors to monitor the operations of the extruder 120 as filament 135 is dispensed via the hot end 210. For example, if the filament 135 is cooler than expected the nozzle 230 may extrude the filament 135 at a rate slower than expected or in lower amounts than expected. In this case, the sensors may detect the temperature of the filament 135 and provide the temperature data to a thermal volumetric extrusion controller module, system, or instructions which may reduce the speed of the extruder 120 to compensate. Thus, the extruder 120 of the illustrated example may be equipped to adjust printing parameters in real-time or substantially real time and produce parts 105 that are more likely to be within the desired tolerances.
[0024] FIG. 3 is a block diagram of one example embodiment of the thermal volumetric extrusion controller 130. In the illustrated embodiment, the thermal volumetric extrusion controller 130 includes an electronic controller 305, a diameter sensor 310, a position sensor 315, and a temperature sensor 317. In alternate embodiments, the thermal volumetric extrusion controller 130 may include fewer or additional components in configurations different from the
configuration illustrated in FIG. 3. For example, in some embodiments, the thermal volumetric extrusion controller 130 may include more than one diameter sensor 310, and may include more than one position sensor 315 or more than one temperature sensor 317.
[0025] The electronic controller 305 includes, among other things, an electronic processor 320 (for example, a microprocessor, one or more access components, control logic circuits, central processing units, processors, etc.), computer-readable media 325 (for example, a memory), a transceiver 330, and a user interface 335. The electronic processor 320, the computer-readable media 325, and the various other components of the electronic controller 305 are coupled to each other directly or via one or more buses (not shown). In alternate embodiments, the electronic controller 305 may include fewer or additional components in configurations different from the configuration illustrated in FIG. 3. For example, in some embodiments, the electronic controller 305 may include more than one electronic processor 320, and may include more than one memory 325.
[0026] The computer-readable media 325 may be an example of tangible non-transitory computer storage media and may include volatile and nonvolatile memory and/or removable and non-removable media implemented in any type of technology for storage of information such as computer-readable instructions or modules, data structures, program modules or other data. Such computer-readable media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other computer-readable media technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, solid state storage, magnetic disk storage, RAID storage systems, storage arrays, network attached storage, storage area networks, cloud storage, or any other medium that can be used to store information and which can be accessed by the electronic controller 305 or electronic processor 320.
[0027] Several modules, such as program instructions and data stores, may be stored within the computer-readable media 325. For example, the computer-readable media 325 may store a closed loop control module or instructions 340. The computer-readable media 325 may also store building material data 345 associated with timing and temperature information related to materials that may be used to 3D print an object. The computer-readable media 325 may also store printer calibration data 350 associated with the brand, model, and/or individual unit of the 3D printer 100. As described in more detail below, the printer calibration data 350 includes, among other things, optimized extrusion speeds for different extrusion temperatures, and slipping rates for different extrusion speeds. The electronic processor 320 is configured to retrieve program instructions and data from the computer-readable media 325 and execute, among other things, instructions to perform the methods described herein. Additionally or alternatively, the computer-readable media 325 is included in the electronic processor 320.
[0028] The transceiver 330 is configured to provide communications between the thermal volumetric extrusion controller 130 and other components internal and external to the 3D printer 100. For example, the transceiver 330 transmits signals to components external to the 3D printer 100, and receives signals from components external to the 3D printer 100. In some embodiments, signals include, for example, data, data packets, or any combination thereof. In some embodiments, the transceiver 330 includes separate transmitters and receivers.
[0029] The user interface 335 includes any combination of digital and analog input devices required to achieve a desired level of control for the thermal volumetric extrusion controller 130 or the 3D printer 100. For example, the user interface 335 can include a computer having a display and input devices, a display, a keyboard, a mouse, speakers, and the like.
[0030] The diameter sensor 310 is configured to measure the filament diameter. The filament diameter includes, for example, the cross section arear of the filament 135. In some embodiments, the diameter sensor 310 includes an optical sensor. For example, the diameter sensor 310 includes an emitter that emits an infrared beam on the filament 135, and a receiver that analyzes the reflection of the infrared beam to determine the cross sectional area of the filament 135. Alternatively or in addition, the diameter sensor 310 includes other types of sensors (for example, electrical, mechanical, pneumatic, and the like).
[0031] The position sensor 315 is configured to measure the filament position. In other words, the position sensor 315 is configured to determine the current portion of the filament 135 that is being fed into the extruder 120. The electronic processor 320 can determine the length of filament 135 being fed into the extruder 120 by monitoring the change in the current position of the filament 135. In some embodiments, the position sensor 315 includes an optical sensor. Alternatively or in addition, the position sensor 315 includes other types of sensors (for example, electrical, mechanical, pneumatic, and the like). In some embodiments, the position sensor 315 includes encoders, fluid level sensors, flow-rate sensors, or a combination thereof.
[0032] The temperature sensor 317 is configured to measure the temperature of the extruder 120. In some embodiments, the temperature sensor 317 is positioned near the heating barrel 225 of the extruder 120.
[0033] FIG. 4 is a perspective view of one example embodiment of the thermal volumetric extrusion controller 130. In the illustrated example, the thermal volumetric extrusion controller 130 includes the electronic controller 305, the diameter sensor 310, the position sensor 315, a pinch bearing 405, and a clamp 410. The filament 135 passes through the diameter sensor 310 and engages with the pinch bearing 405 to trigger the position sensor 315. The pinch bearing
405 translates motion of the filament 135 to the position sensor 315. The clamp 410 couples the thermal volumetric extrusion controller 130 to the extruder 120.
[0034] The 3D printer 100 can include, be coupled to, or obtain data from a CAD system to provide a digital representation of the part 105 to be formed by the 3D printer 100. Any suitable CAD software program can be utilized to create the digital representation of the part 105. For example, a user can design, using a 3D modeling software program executing on a host computer, a part having a particular shape with specified dimensions, such as part 105, that is to be manufactured using the 3D printer 100. In order to translate the geometry of the part 105 into computer-readable instructions or commands usable by an electronic processor or a suitable electronic controller in forming the part 105, the CAD system can mathematically slice the digital representation of the part 105 into multiple horizontal layers. The CAD system can then design build paths along which the filament 135 is to be deposited in a layer-by-layer fashion to form the part 105. The CAD system uses the building paths to produce code in a numerical programming language, such as G-code. Each line of G-code can include target values for a plurality of extrusion parameters. Extrusion parameters include, for example, filament diameter, filament position, extrusion speed, and extrusion temperature. As described in more detail below, the thermal volumetric extrusion controller 130 adjusts the target values of the plurality of extrusion parameters based on measurement data received from the diameter sensor 310 and the position sensor 315. In this manner, the thermal volumetric extrusion controller 130 reduces variances between the target extrusion values included in the G-code and the actual extrusion values determined based on measurement data received from the diameter sensor 310 and the position sensor 315.
[0035] In some embodiments, the thermal volumetric extrusion controller 130 manages and/or directs one or more components of the 3D printer 100, such as the extruder 120, by controlling movement of those components according to the G-code produced by the CAD system. Alternatively, a separate control system included in the 3D printer 100 (for example, control system 140 in FIG. 1) manages and/or directs the one or more components of the 3D printer 100 according to the G-code produced by the CAD system. In some such embodiments, the thermal volumetric extrusion controller 130 adjusts the G-code produced by the CAD system before the G-code is transmitted to the separate control system. The movement of the various components of the 3D printer 100, such as the extruder 120, can be performed by the use of stepper motors, servo motors, microcontrollers, combinations thereof, and the like.
[0036] In some embodiments, the closed loop control module 340 stored in the memory 325 is configured to adjust extrusion parameters of the 3D printer 100 to account for variations in the components of the 3D printer 100. The closed loop control module 340 adjusts the extrusion parameters based on real-time feedback from the diameter sensor 310 and the position sensor 315. Extrusions parameters include, for example, feedstock diameter, set point temperature, extrusion speed, acceleration, pressure advancement, or a combination thereof.
[0037] FIGS. 5 and 8 are flow diagrams illustrating example processes associated with a closed loop system for adjusting 3D printer parameters within an extruder according to some implementations. The processes are illustrated as a collection of blocks in a logical flow diagram, which represent a sequence of operations, some or all of which can be implemented in hardware, software or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable media that, which when executed by one or more processors, perform the recited operations. Generally, computer-
executable instructions include routines, programs, objects, components, encryption, deciphering, compressing, recording, data structures and the like that perform particular functions or implement particular abstract data types.
[0038] The order in which the operations are described should not be construed as a limitation. Any number of the described blocks can be combined in any order and/or in parallel to implement the process, or alternative processes, and not all of the blocks need be executed. For discussion purposes, the processes herein are described with reference to the frameworks, architectures and environments described in the examples herein, although the processes may be implemented in a wide variety of other frameworks, architectures or environments.
[0039] FIG. 5 illustrates an example method 500 of adjusting extrusion parameters of the 3D printer 100 with the thermal volumetric extrusion controller 130. In the illustrated example, the method 500 includes the electronic processor 320 receiving a material type (at block 505). The material type indicates the material of the filament 135 (for example, polylactic acid or acrylonitrile butadiene styrene). In some embodiments, the electronic processor 320 receives the material type from a user via the user interface 335.
[0040] At 510, the electronic processor 320 receives input data indicating first target values for a plurality of extrusion parameters. The plurality of extrusion parameters includes, for example, filament diameter, filament position, extrusion speed, extrusion temperature, or a combination thereof. In some embodiments, the input data includes one or more lines of G-code. In some embodiments, the electronic processor 320 receives the input data from a CAD system. Alternatively or in addition, the electronic processor 320 receives the input data from a separate control system included in the 3D printer 100. Alternatively or in addition, the electronic processor 320 receives the input data from a user via the user interface 335.
[0041] At 515, the electronic processor 320 determines an extrusion temperature (for example, a second target value of extrusion temperature). The extrusion temperature is the temperature at which the filament 135 is heated by the heater 220 in the extruder 120. In some embodiments, the electronic processor 320 determines the second target value of extrusion temperature based in part on the input data. For example, the electronic processor 320 sets the second target value of extrusion temperature to a first target value of extrusion temperature included in the input data. In some embodiments, the electronic processor 320 sets the second target value of extrusion temperature to a predetermined (or default) value, for example, when the input data does not include a target value of the extrusion temperature. The predetermined value of extrusion temperature may be stored in the computer-readable media 325.
[0042] At 520, the electronic processor 320 determines an observed filament diameter of the filament 135 being fed into the extruder 120. The observed filament diameter indicates the cross sectional area of the filament 135. In some embodiments, the electronic processor 320 determines the observed filament diameter based in part on measurement data which the electronic processor 320 receives from the diameter sensor 310. Alternatively, the diameter sensor 310 determines and sends the observed filament diameter to the electronic processor 320.
[0043] At 525, the electronic processor 320 determines when the observed filament diameter is about equal to the first target value of filament diameter included in the input data. In some embodiments, the electronic processor 320 determines that the observed filament diameter is about equal to the first target value when the difference between the observed filament diameter and the first target value is less than a threshold. For example, when the first target value of filament diameter is 3 millimeters and the threshold is 0.2 millimeters, the electronic processor
320 may determine that the observed filament diameter is about equal to the first target value when the observed filament diameter is between 2.8 millimeters and 3.2 millimeters.
[0044] When the observed filament diameter is not equal to the first target value of filament diameter, the electronic processor 320 attempts to correct the deviation (at 530). In some embodiments, the electronic processor 320 modifies one or more target values of the extrusion axis included in the G-code of the input data to correct deviations between the observed filament diameter and the first target value of filament diameter. In some embodiments, the electronic processor 320 determines a second target value of filament diameter when the observed filament diameter is not equal to the first target value of filament diameter.
[0045] Alternatively, when the observed filament diameter is about equal to the first target value of filament diameter (or after 530), the electronic processor 320 determines an extrusion speed (for example, a second target value of extrusion speed) (at 535). The rate at which filament 135 is dispensed from the extruder 120 is set based on the extrusion speed. In some embodiments, the electronic processor 320 sets the second target value of extrusion speed to a first target value of extrusion speed included in the input data. Alternatively or in addition, the electronic processor 320 sets the second target value of extrusion speed based in part on extrusion temperature. For example, the electronic processor 320 sets the second target value of extrusion speed to an optimized extrusion speed for the current extrusion temperature. In some embodiments, the printer calibration data 350 includes optimized extrusion speeds for different extrusion temperatures. For example, the printer calibration data 350 may indicate an optimized extrusion speed of 50 millimeters per second when the extrusion temperature is set to 205 degrees Celsius. Alternatively or in addition, the electronic processor 320 sets the second target value of extrusion speed based in part on a slipping rate. As will be discussed in more detail
below, the slipping rate indicates the difference the between target filament position and the observed filament position. Higher slipping rates cause greater deviations in the part 105. In general, slipping rate increases as extrusion speed increases. Thus, in some embodiments, the electronic processor 320 sets the second target value of extrusion speed such that the slipping rate is less than a threshold. In some embodiments, the printer calibration data 350 includes optimized extrusion speeds for different slipping rates.
[0046] At 540, the electronic processor 320 sends output data that adjusts all or a portion of the plurality of extrusion parameters to the second target values. In some embodiments, the electronic processor 320 transmits the output data to a separate control system in the 3D printer 100 that controls the operation of the extruder 120. In such embodiments, the output data includes, among other things, second target values for each of the plurality of extrusion parameters. For example, the output data includes the second target value of extrusion temperature determined at 515, the second target value of filament diameter determined at 530, and the second target value of extrusion speed determined at 535. In some embodiments, the electronic processor 320 does not determine updated target values for each of the plurality of extrusion parameters included in the input data. For example, a second target value of an extrusion parameter determined by the electronic processor 320 may be equal to the first target value of the extrusion parameter included in the input data. In addition, the input data may include a first target value for an extrusion parameter which the electronic processor 320 does not analyze. In such embodiments, the output data may include second target values of extrusion parameters that are equal to the first target values of extrusion parameters included in the input data.
[0047] Alternatively, in some embodiments, the electronic processor 320 transmits the output data to control the operation of the extruder 120. In such embodiments, the output data includes various control signals which cause the extruder 120 to operate according to the second target values of the plurality of extrusion parameters. For example, the output data include control signals which cause the extruder 120 to dispense filament at the second target value of extrusion speed determined at 535.
[0048] Responsive to the output data, the extruder 120 dispenses set amounts (or lengths) of filament. For example, the second target values of extrusion parameters included in the output data may cause the extruder 120 to dispense 10 millimeters of the filament 135. In order to determine whether the extruded filament length matches the target filament length, the electronic processor 320 determines a filament position (for example, an observed filament position) (at 545). The filament 135 includes a thread of building material. The observed filament position is the current portion of the thread being fed into the extruder 120. In some embodiments, the electronic processor 320 determines the observed filament position based in part on measurement data which the electronic processor 320 receives from the position sensor 315. Alternatively, the position sensor 315 determines and sends the observed filament position to the electronic processor 320.
[0049] At 550, the electronic processor 320 determines when the observed filament position matches with the output data. As described above, the output data causes the extruder 120 to dispense an amount of filament based on the second target values of extrusion parameters. In some embodiments, the electronic processor 320 determines and compares a target filament position to the observed filament position. The target filament position indicates the specific portion of filament 135 that should be fed into the extruder 120 at a set time based on the second
target values of extrusion parameters. The electronic processor 320 may determine that the observed filament position matches the output data when the observed filament position is equal to (or within a predetermined distance from) the target filament position. When the observed filament position matches the output data, the method 500 returns to 510, and the electronic processor 320 receives a new input data.
[0050] Alternatively, when the observed filament position does not match the output data, the electronic processor 320 determines a slipping rate (at 555). The slipping rate indicates the difference between the actual length of filament 135 dispensed by the extruder 120 and the target length of filament 135 which the extruder 120 is expected to dispense. The electronic processor 320 determines the slipping rate based in part on the observed filament position and the output data. The electronic processor 320 updates the printer calibration data 350 stored in the memory 325 to include the determined slipping rate (at 560). As described above, the electronic processor 320 adjusts the extrusion speed based in part on the slipping rate. Thus, by storing updated values of slipping rate in the memory 325, the electronic processor 320 can later access the slipping rates to continuously adjust the extrusion speed to optimized values at different extrusion temperatures. In some embodiments, as illustrated in FIG. 5, the method 500 returns to 510 after 560, and the electronic processor 320 receives new input data.
[0051] In some embodiments, the 3D printer 100 is part of a larger system. FIG. 6 is a diagram of one example embodiment of a 3D print system 600. In the illustrated example, the 3D print system 600 includes the 3D printer 100, a communication network 605, and a server 610. The 3D print system 600 illustrated in FIG. 6 is provided as one example of such a system. The methods described herein may be used with print systems with fewer, additional, or different components in different configurations than the 3D print system 600 illustrated in FIG. 6. For
example, in some embodiments, the 3D print system 600 may include more than one 3D printer 100, and may include more than one server 610.
[0052] The communication network 605 may be a wired network, a wireless network, or both. All or parts of the communication network 605 may be implemented using various networks, for example, a cellular network, the Internet, a Bluetooth™ network, a wireless local area network (for example, Wi-Fi), a wireless accessory Personal Area Networks (PAN), cable, an Ethernet network, satellite, a machine-to-machine (M2M) autonomous network, and a public switched telephone network. The 3D printer 100, the server 610, and other various components of the 3D print system 600 communicate with each other over the communication network 605 using suitable wireless or wired communication protocols. In some embodiments, communications with other external devices (not shown) occur over the communication network 605.
[0053] FIG. 7 is a diagram of one example embodiment of the server 610. In the illustrated example, the server 610 includes a server electronic processor 705, server memory 710, a server transceiver 715, and a server user interface 720. The server electronic processor 705, the server memory 710, and the various other components of the server 610 are coupled to each other directly or via one or more buses (not shown). In alternate embodiments, the server 610 may include fewer or additional components in configurations different from the configuration illustrated in FIG. 7. For example, in some embodiments, the server 610 may include more than one server electronic processor 705, and may include more than one server memory 710.
[0054] The server memory 710 stores program instructions and data. The server memory 710 may include combinations of different types of memory, including the various types of memory described above with respect to the memory 325 included in the electronic controller 305 of the thermal volumetric extrusion controller 130. The server electronic processor 705 retrieves
program instructions from the server memory 710 and executes the program instructions to perform a set of functions including all or part of the methods described herein. The server transceiver 715 transmits signals to and receives signals from the 3D printer 100 and the other components included in the 3D print system 600, such as through the communication network 605 or directly. In some embodiments, signals include, for example, data, data packets, or any combination thereof. The server user interface 720 includes any combination of digital and analog input devices required to achieve a desired level of control for the server 610. For example, the server user interface 720 can include a computer having a display and input devices, a display, a keyboard, a mouse, speakers, and the like.
[0055] In some embodiments, the server memory 710 stores a printer calibration module 735, building material data 740, and printer calibration data 745. The building material data 740 stored in the server memory 710 may include all or any portion of the building material data 345 stored in the memory 325 of the thermal volumetric extrusion controller 130. Likewise, the printer calibration data 745 stored in the server memory 710 may include all or any portion of the printer calibration data 350 stored in the memory 325 of the thermal volumetric extrusion controller 130.
[0056] In some embodiments, the printer calibration module 735 is configured to determine the printer calibration data 745 for the 3D printer 100. In other words, the printer calibration module 735 is configured to determine optimized extrusion parameters of the 3D printer 100 that account for variations in the components of the 3D printer 100. FIG. 8 illustrates an example method 800 of determining the printer calibration data 745 of the 3D printer 100 with the server 610. In the illustrated example, the method 800 includes the server electronic processor 705 receiving a
material type (at 805). In some embodiments, the server electronic processor 705 receives the material type via the server user interface 720.
[0057] At 810, the server electronic processor 705 receives material information related to the material type being used to 3D print the part 105. For example, the material information includes a glass transition temperature of the material. In some embodiments, the server electronic processor 705 determines the material information based on the building material data 740 stored in the server memory 710. Alternatively or in addition, the server electronic processor 705 receives the material information via the server user interface 720.
[0058] At 815, the server electronic processor 705 determines an extrusion temperature range for the material type. For example, the server electronic processor 705 may determine an extrusion temperature range between zero degrees Celsius and 500 degrees Celsius when the filament 135 is composed of a type of acrylonitrile butadiene styrene. In some embodiments, the server electronic processor 705 receives this information from the server memory 710. Alternatively or in addition, the server electronic processor 705 receives this information from a user via the server user interface 720.
[0059] At 820, the server electronic processor 705 determines an extrusion speed range for the material type. For example, the server electronic processor 705 may determine an extrusion speed range between zero millimeter per second and 500 millimeters per second when the filament 135 is composed of a type of acrylonitrile butadiene styrene. In some embodiments, the server electronic processor 705 receives this information from the server memory 710. Alternatively or in addition, the server electronic processor 705 receives this information from a user via the server user interface 720.
[0060] At 825, the server electronic processor 705 determines test program instructions for the 3D printer 100 based in part on the determined extrusion temperature range and the determined extrusion speed range. For example, the server electronic processor 705 generates one or more lines of G-code for the 3D printer 100 with different target values of extrusion temperature and extrusion speed within the determined ranges.
[0061] At 830, the server electronic processor 705 transmits the test program instructions to the 3D printer 100 via the server transceiver 715. The test program instructions cause the 3D printer 100 to dispense standard lengths of filament 135 at each different target value of extrusion temperature and extrusion speed included in the test program instructions. While the 3D printer 100 is disposing filament 135 in accordance with the test program instructions, the thermal volumetric extrusion controller 130 measures the filament diameter with the diameter sensor 310 and the filament position with the position sensor 315. The server electronic processor 705 receives filament diameter measurement data from the thermal volumetric extrusion controller 130 (at 835). The server electronic processor 705 also receives filament position measurement data from the thermal volumetric extrusion controller 130 (at 840).
[0062] At 845, the server electronic processor 705 determines a slipping rate based in part on the filament diameter measurement data, the filament position measurement data, or both. In some embodiments, the determined slipping rate is included in the printer calibration data 745 stored in the server memory 710.
[0063] At 850, the server electronic processor 705 determines optimized extrusion speeds at different extrusion temperatures based in part on the filament diameter measurement data, the filament position measurement data, or both. In some embodiments, the optimized extrusion speeds are included in the printer calibration data 745 stored in the server memory 710.
[0064] At 855, the server electronic processor 705 determines optimized extrusion temperatures. In some embodiments, the server electronic processor 705 determines optimized extrusion temperatures based in part on temperature measurement data (from the temperature sensor 317), the filament diameter measurement data, the filament position measurement data, the optimized extrusion speeds, or a combination thereof. In some embodiments, the optimized extrusion temperatures are included in the printer calibration data 745 stored in the server memory 710.
[0065] Given an unknown 3D printer and/or filament material combination, the 3D print system 600 first approaches new geometries at relatively low extrusion speeds until acceptable output quality has been achieved for the given combination. Then, the 3D print system 600 optimizes for printing speed while staying within the allowable defect and/or tolerance ranges. Dynamically varying the extrusion temperature for current and/or upcoming geometry is a driving parameter for optimizing printing speed once a baseline quality has been achieved at low extrusion speeds.
[0066] After 3D printer 100 and filament material calibration is complete, the printer calibration data 350 includes optimized extrusion speeds and optimized extrusion temperatures that correspond to the loaded filament 135. The electronic processor 320 then determines target values of extrusion speed and extrusion temperature for each piece of upcoming geometry received in the input data (for example, G-code) based on the acceleration limitations of the 3D printer 100. For example, as the extruder 120 decelerates into a corner, the electronic processor 320 decreases the extrusion temperature to a minimum target value in the printer calibration data 350 (for example, zero millimeters per second instantaneous speed). Next, as the extruder 120 accelerates out of the corner and onto a straightaway, the electronic processor 320 increases the
extrusion temperature to a maximum target value in the printer calibration data 350 when the extruder 120 reaches a maximum extrusion speed at the center of the straightaway.
[0067] In some embodiments, the server 610 determines an observed digital representation of the actual part produced by the 3D printer 100 (for example, a 3D model). The server electronic processor 705 determines the observed digital representation based on the filament diameter measurement data and the filament position measurement data. By comparing the observed digital representation with a target digital representation of a target part that was used to generate programing instructions for the 3D printer 100, the server electronic processor 705 can identify any portions of the actual part that deviate from the target part. In addition, the server electronic processor 705 can determine the amount of variation of each of these portions of the produced part. In this manner, the server electronic processor 705 can determine whether a part produced by the 3D printer 100 complies with variance restrictions for that part.
[0068] Although the subject matter has been described in language specific to structural features, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features described. Rather, the specific features are disclosed as illustrative forms of implementing the claims.
Claims
1. A thermal volumetric extrusion controller for an extruder of a 3D printer, the thermal volumetric extrusion controller comprising:
a position sensor configured to measure filament position at the extruder; and
an electronic processor electrically coupled to the position sensor, the electronic processor configured to
receive input data including a first target value of extrusion speed and a first target value of the filament position,
receive an observed value of the filament position from the position sensor, determine a difference between the first target value of the filament position and the observed value of the filament position,
determine a second target value of the extrusion speed based in part on the
determined difference between the first target value of the filament position and the observed value of the filament position, and
adjust a speed of the extruder based in part on the second target value of the
extrusion speed.
2. The thermal volumetric extrusion controller of claim 1, wherein the electronic processor is further configured to
transmit output data to the extruder, the output data including the second target value of the extrusion speed.
3. The thermal volumetric extrusion controller of claim 1, further comprising a diameter sensor electrically coupled to the electronic processor and configured to measure filament diameter at the extruder,
wherein the input data further including a first target value of the filament diameter, and wherein the electronic processor is further configured to
receive an observed value of the filament diameter from the diameter sensor, determine a difference between the first target value of the filament diameter and the observed value of the filament diameter, and
determine the second target value of the extrusion speed based in part on
the determined difference between the first target value of the filament position and the observed value of the filament position, and the determined difference between the first target value of the filament diameter and the observed value of the filament diameter.
4. The thermal volumetric extrusion controller of claim 3, wherein the electronic processor is further configured to
determine a second target value of the filament diameter based in part on the determined difference between the first target value of the filament diameter and the observed value of the filament diameter, and adjust a diameter of the extruder based in part on the second target value of the filament diameter.
5. The thermal volumetric extrusion controller of claim 3, wherein the input data further including a first target value of extrusion temperature, and
wherein the electronic processor is further configured to
determine the second target value of the extrusion speed based in part on
the determined difference between the first target value of the filament position and the observed value of the filament position, the determined difference between the first target value of the filament diameter and the observed value of the filament diameter, and the first target value of the extrusion temperature.
6. The thermal volumetric extrusion controller of claim 5, wherein the electronic processor is further configured to
adjust a temperature of the extruder based in part on the first target value of the extrusion temperature.
7. The thermal volumetric extrusion controller of claim 1, wherein the electronic processor is further configured to
determine a second target value of the filament position based in part on the
determined difference between the first target value of the filament position and the observed value of the filament position, and
adjust a position of the extruder based in part on the second target value of the filament position.
8. The thermal volumetric extrusion controller of claim 1, wherein the electronic processor is further configured to
determine a slipping rate based on the determined difference between the first target value of the filament position and the observed value of the filament position, and
determine the second target value of the extrusion speed based in part on the
determined slipping rate.
9. A method of adjusting a plurality of extrusion parameters for a 3D printer, the method comprising:
receiving input data via a transceiver included in the 3D printer, the input data including a first target value of extrusion speed and a first target value of filament position; determining, with a position sensor included in the 3D printer, an observed value of the filament position at an extruder of the 3D printer;
determining, with an electronic processor included in the 3D printer, a difference between the first target value of the filament position and the observed value of the filament position;
determining, with the electronic processor, a second target value of the extrusion speed based in part on the determined difference between the first target value of the filament position and the observed value of the filament position; and adjusting, with the electronic processor, a speed of the extruder based in part on the second target value of the extrusion speed.
10. The method of claim 9, further comprising
transmitting output data to the extruder via the transceiver, the output data including the second target value of the extrusion speed.
11. The method of claim 9, wherein the input data further including a first target value of filament diameter, and wherein the method further comprising
determining, with a diameter sensor included in the 3D printer, an observed value of the filament diameter at the extruder;
determining, with the electronic processor, a difference between the first target value of the filament diameter and the observed value of the filament diameter; and determining, with the electronic processor, the second target value of the extrusion speed based in part on
the determined difference between the first target value of the filament position and the observed value of the filament position, and the determined difference between the first target value of the filament diameter and the observed value of the filament diameter.
12. The method of claim 11, further comprising
determining, with the electronic processor, a second target value of the filament diameter based in part on the determined difference between the first target value of the filament diameter and the observed value of the filament diameter; and
adjusting, with the electronic processor, a diameter of the extruder based in part on the second target value of the filament diameter.
13. The method of claim 11, wherein the input data further including a first target value of extrusion temperature, and wherein the method further comprising
determining, with the electronic processor, the second target value of the extrusion speed based in part on
the determined difference between the first target value of the filament position and the observed value of the filament position,
the determined difference between the first target value of the filament diameter and the observed value of the filament diameter, and the first target value of the extrusion temperature.
14. The method of claim 13, further comprising
adjusting, with the electronic processor, a temperature of the extruder based in part on the first target value of the extrusion temperature.
15. The method of claim 9, further comprising
determining, with the electronic processor, a second target value of the filament position based in part on the determined difference between the first target value of the filament position and the observed value of the filament position; and
adjusting, with the electronic processor, a position of the extruder based in part on the second target value of the filament position.
16. The method of claim 9, further comprising
determining, with the electronic processor, a slipping rate based on the determined
difference between the first target value of the filament position and the observed value of the filament position; and
determining, with the electronic processor, the second target value of the extrusion speed based in part on the determined slipping rate.
17. A thermal volumetric extrusion controller for an extruder of a 3D printer, the thermal volumetric extrusion controller comprising:
a diameter sensor configured to measure filament diameter at the extruder;
a position sensor configured to measure filament position at the extruder;
a transceiver, and
an electronic processor electrically coupled to the diameter sensor, the position sensor, and the transceiver, the electronic processor configured to
receive input data via the transceiver, the input data including first target values for each of a plurality of extrusion parameters,
receive sensor data from the diameter sensor and the position sensor indicating the filament diameter and the filament position,
determine observed values for each of the plurality of extrusion parameters based in part on the sensor data,
determine a difference between the first target values and the observed values for each of the plurality of extrusion parameters,
determine second target values for each of the plurality of extrusion parameters based on the determined difference between the first target values and the observed values for each of the plurality of extrusion parameters, and adjust extrusion parameters of the extruder based in part on the second target values for each of the plurality of extrusion parameters.
18. The thermal volumetric extrusion controller of claim 17, wherein the plurality of extrusion parameters including at least one selected from a group consisting of the filament diameter, the filament position, extrusion temperature, and extrusion speed.
19. The thermal volumetric extrusion controller of claim 17, wherein the electronic processor is further configured to
transmit output data to the extruder via the transceiver, wherein the output data including the second target values for each of the plurality of extrusion parameters.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2017/035969 WO2018226206A1 (en) | 2017-06-05 | 2017-06-05 | Thermal volumetric extrusion controller for 3d printers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2017/035969 WO2018226206A1 (en) | 2017-06-05 | 2017-06-05 | Thermal volumetric extrusion controller for 3d printers |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018226206A1 true WO2018226206A1 (en) | 2018-12-13 |
Family
ID=64565974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2017/035969 WO2018226206A1 (en) | 2017-06-05 | 2017-06-05 | Thermal volumetric extrusion controller for 3d printers |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018226206A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115122642A (en) * | 2022-05-31 | 2022-09-30 | 深圳市纵维立方科技有限公司 | Fault detection method in 3D printing, 3D printer and equipment |
DE202022104531U1 (en) | 2022-06-03 | 2023-07-10 | Renfert Gmbh | Dental printing system with a 3D printing device exclusively for printing dental devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150321418A1 (en) * | 2014-05-09 | 2015-11-12 | Nike, Inc. | System And Method For Forming Three-Dimensional Structures |
US20170050374A1 (en) * | 2015-08-21 | 2017-02-23 | Voxel8, Inc. | 3d printer calibration and control |
US20170100888A1 (en) * | 2013-03-15 | 2017-04-13 | Stratasys, Inc. | Additive manufacturing system and method for printing three-dimensional parts using velocimetry |
-
2017
- 2017-06-05 WO PCT/US2017/035969 patent/WO2018226206A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170100888A1 (en) * | 2013-03-15 | 2017-04-13 | Stratasys, Inc. | Additive manufacturing system and method for printing three-dimensional parts using velocimetry |
US20150321418A1 (en) * | 2014-05-09 | 2015-11-12 | Nike, Inc. | System And Method For Forming Three-Dimensional Structures |
US20170050374A1 (en) * | 2015-08-21 | 2017-02-23 | Voxel8, Inc. | 3d printer calibration and control |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115122642A (en) * | 2022-05-31 | 2022-09-30 | 深圳市纵维立方科技有限公司 | Fault detection method in 3D printing, 3D printer and equipment |
DE202022104531U1 (en) | 2022-06-03 | 2023-07-10 | Renfert Gmbh | Dental printing system with a 3D printing device exclusively for printing dental devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11084276B2 (en) | Method to monitor additive manufacturing process for detection and in-situ correction of defects | |
US10994462B2 (en) | Planarizing build surfaces in three-dimensional printing | |
US20160039148A1 (en) | 3-d printer having motion sensors | |
Tlegenov et al. | A dynamic model for current-based nozzle condition monitoring in fused deposition modelling | |
US10394202B2 (en) | 3D printer calibration and control | |
Greeff et al. | Closed loop control of slippage during filament transport in molten material extrusion | |
EP3504049B1 (en) | Predictive flow control responses in an additive manufacturing system | |
JP7133555B2 (en) | Systems and associated control methods for additive manufacturing processes | |
CN104571189B (en) | Control method of blow molding equipment intelligent temperature control system based on DSP and FPGA | |
US20150039113A1 (en) | Method and apparatus for 3D printing along natural direction | |
US20160221259A1 (en) | Tool path for color three-dimensional printing | |
US11007719B2 (en) | Automatically adjusting extruder for optimal viscosity in a three-dimensional (3D) printer | |
TWI821985B (en) | Manufacturing system, multi-step manufacturing method and non-transitory computer readable medium | |
US20230367301A1 (en) | Predictive process control for a manufacturing process | |
CN103240883A (en) | Multistage-temperature-control-based fused deposition modeling (FDM) type 3D printing sprayer and temperature control method | |
WO2018226206A1 (en) | Thermal volumetric extrusion controller for 3d printers | |
AU2020256077A1 (en) | Defect detection in three-dimensional printed constructs | |
CN108780588A (en) | Increasing material manufacturing method and system | |
US20220227060A1 (en) | Apparatus, system, and method of characterizing filament properties and adjusting 3d printer parameters for decreased filament deposition variability | |
KR20230038839A (en) | 3D printer monitoring system applying machine learning algorithm based on Temporal Convolution Neural Network with Two-Stage Sliding Window Strategy | |
WO2022194682A1 (en) | Additive manufacturing method with build material control and apparatus | |
EP3461618B1 (en) | Three dimensional printing method and three dimensional printing apparatus using the same | |
US10437698B2 (en) | Leader-follower system for additive manufacturing | |
JP2012131176A (en) | Plasticizing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17912687 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17912687 Country of ref document: EP Kind code of ref document: A1 |