DEVICE AND METHOD FOR CHANGING A FILAMENT COIL DURING THE PRINTING OF A THREE-DIMENSIONAL OBJECT
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- INNOVATIQ GMBH CO KG
- Filing Date
- 2023-10-10
- Publication Date
- 2026-04-30
AI Technical Summary
Conventional 3D printing methods result in surface defects when filament spools are changed during the printing process, particularly when visible areas of the three-dimensional object are being printed, leading to issues like deformation and indentation.
A device and method that moves the print head to a non-visible printing area of the three-dimensional object and pauses the printing process when the remaining filament reaches a predefined threshold, allowing for seamless filament spool changes without visible defects by using detection devices to monitor filament levels and control the print head movement.
Prevents surface defects by ensuring filament spool changes occur in non-visible areas, maintaining print quality and reducing the need for precise printhead control, thus avoiding increased costs associated with high accuracy requirements.
Description
[0001] Various embodiments relate generally to a device and a method for changing a filament spool during the printing of a three-dimensional object.
[0002] Printing can be an extrusion-based additive manufacturing process, such as a fused filament fabrication process (e.g., fused filament fabrication (FFT) or fused deposition modeling (FDM)).
[0003] In fused deposition modeling (FDM) processes for printing three-dimensional objects (i.e., 3D printing), a filament is unwound from a filament spool and melted in a print head. In conventional FDM processes, the filament spool is replaced with another spool as soon as the remaining filament material on the spool is nearly exhausted. This can lead to surface defects, such as deformation, indentation, misalignment, etc., if the print head is printing a surface area of the three-dimensional object during the filament change (sometimes referred to as a spool change).
[0004] It may be desirable and / or necessary to prevent such (e.g., visible) surface defects. Various printing systems attempt, for example, to control the printhead so precisely during spool changes that such surface defects are prevented. However, this only reduces the number of surface defects and does not eliminate them completely. Furthermore, such printing systems result in significantly increased costs due to the required printhead accuracy.
[0005] DE 601 07 569 T2 describes a three-dimensional modeling machine based on extrusion, in which a control system monitors the amount of filament remaining in a cassette during modeling. When the filament runs out in the cassette, the modeling machine automatically switches to a replacement cassette without operator intervention.
[0006] The document "Marlin Documentation - M413 M600 - Marlin Firmware - GitHub" reveals two commands from a command set that make it possible to move a print head to a specific position.
[0007] US 2022 / 0288859 A1 describes a filament monitoring system in a 3D printer.
[0008] US 2018 / 015655 A1 describes a method for printing a three-dimensional object using a filament. When the filament runs out, the printing process is paused at the position where the filament is detected to end, and the filament spools are changed. After the change, the printing process continues.
[0009] US 2020 / 0269507 A1 describes a method and device for changing filament without interrupting the printing process of a three-dimensional object.
[0010] US 2018 / 0015668 A1 describes a method and apparatus for three-dimensional printing.
[0011] The invention is based on the objective of providing a device and a method which make it possible to reduce surface defects due to changing filament spools during 3D printing.
[0012] The problem is solved by the subject matter of independent patent claims 1 and 13.
[0013] According to various embodiments, a device and a method are provided that make it possible to reduce (e.g., prevent) surface defects caused by changing filament spools during 3D printing. This is achieved by moving the print head to a non-visible printing area (e.g., a printing area for printing an infill structure) of the three-dimensional object to change the filament spool and pausing the printing process there, or, if the print head is already in a non-visible printing area of the three-dimensional object, pausing the printing process there.
[0014] During 3D printing, it's possible to detect whether the remaining filament is nearing its end. This can be achieved by determining whether the remaining filament is less than or equal to a predefined filament threshold. For example, the end of the filament can be detected (e.g., using a light barrier, a sensor, etc.). Additionally or alternatively, the amount (e.g., length) of filament unwound from the spool and / or the amount (e.g., length) of remaining filament can be continuously monitored or measured. According to various embodiments, the nearing end of the remaining filament can be determined in a different way. For example, the filament spool or the filament itself can have a marker (e.g., optical and / or mechanical) indicating that the remaining filament is equal to the predefined filament threshold.According to various embodiments, if the remaining filament is less than or equal to the predefined filament threshold, the printing process can be paused if the printhead is in a non-visible printing area of the three-dimensional object (e.g., after the printhead has been moved into the non-visible printing area to change the filament spool, or the printhead may already be in a non-visible printing area of the three-dimensional object at that time). Optionally, the printhead can be moved to a predefined park position when the printing process is paused. According to some embodiments, the filament spool can be exchanged with the other filament spool during the paused printing process (e.g., while the printhead is in the non-visible printing area or while the printhead is in the predefined park position), and the printing process can be resumed after the filament spool has been exchanged with the printhead.According to various embodiments, it can be determined whether another printhead with filament unwound from a different filament spool is available. If so, and if it is determined that another printhead with filament unwound from a different spool is available, the other printhead can be moved into the non-visible printing area of the three-dimensional object (e.g., while the previously used printhead is in the designated parked position), and the printing process can continue using the other printhead. While this might potentially create an offset in the infill structure, it will be filled in during the ongoing 3D printing process or at least will not be visible. Consequently, surface defects caused by spool changes can be prevented in this way.
[0015] Exemplary embodiments of the invention are shown in the figures and are explained in more detail below. The figures show: Figur 1A bis Figur 1D Each device for changing a filament spool during the printing of a three-dimensional object according to various embodiments; Figur 2 an exemplary detection device for permanently detecting the speed of a filament unwound from a filament spool according to various embodiments; Figur 3A and Figur 3B Each a processing scheme for generating control data to move a printhead into a non-visible printing area to change the filament spool, according to various embodiments; Figur 4 a schematic system for printing three-dimensional objects in layers using a fused deposition modeling process according to various embodiments; Figur 5A a front view and Figur 5B a side view of an exemplary system for printing three-dimensional objects according to various embodiments; and Figur 6 A flowchart of a method for changing a filament spool during the printing of a three-dimensional object according to various embodiments.
[0016] The following detailed description refers to the accompanying drawings, which form part thereof and in which specific embodiments of the invention are shown for illustrative purposes. In the drawings, the same reference numerals generally refer to the same parts. The drawings are not necessarily to scale, as the focus is generally on illustrating the principles of the invention.
[0017] In 3D printing (also known as 3D printing), a filament (e.g., a filament thread) is unwound from a spool and melted in a print head. Once the filament in the spool is used up, the spool is replaced with another. This replacement can occur during the 3D printing process. However, if a visible area (e.g., a visible side) of the three-dimensional object is being printed at the time of the replacement, or if the printing process was paused after the print head had printed a visible area, replacing the filament can lead to visible surface defects. Several embodiments describe a device and a method that can prevent such visible surface defects.This is achieved by detecting and / or determining during 3D printing whether the filament is running low (e.g., whether the remaining filament is less than or equal to a predefined filament threshold). If the filament on the spool is running low, the print head is moved to a non-visible printing area of the three-dimensional object to change the filament spool, and the printing process is paused there. If the print head is already in a non-visible printing area of the three-dimensional object, the printing process can be paused there.
[0018] FIG.1A Figure 1 shows a device 100 for changing a filament spool during the printing of a three-dimensional object according to various embodiments. The device 100 has a filament spool 102. A filament (e.g., a filament thread) can be wound onto the filament spool 102. The filament can be used to print a three-dimensional object (also known as 3D printing). The filament can be made of any material suitable for 3D printing, such as a plastic, a metal, a metal alloy, etc. The device 100 can have a drive device 106. The drive device 106 is configured to drive the filament 104 in such a way as to unwind the filament from the filament spool 102. For example, the drive device 106 can be configured to unwind the filament from the filament spool 102 and feed it to a print head (see, for example, print head 402 in Figure 1). FIG.4 ) to supply. The printhead (e.g., printhead 402) can be configured to heat the filament and convert it from a solid to a viscous state in order to print the three-dimensional object (e.g., on a print bed) (for example, according to predefined print data). Consequently, the filament can be consumed during the printing of the three-dimensional object, so that a certain amount (e.g., length) of filament remains at any given time. This remaining filament 104 can initially consist of both a quantity (e.g., length) between the printhead and the filament spool 102 and a quantity (e.g., length) wound onto the filament spool 102. As the remaining filament 104 continues to be consumed during the printing of the three-dimensional object, at a certain point there may be no filament left on the filament spool 102, and the remaining filament 104 may only consist of a quantity (e.g.,The length of the filament between the print head and a point (along the filament's path of movement) between the print head and the filament spool 102 is measured. If the remaining filament 104 is then consumed further, the filament may be completely used up at an end point (so that consequently no filament 104 remains).
[0019] The drive device 106 has at least one motor, such as motor 108. Motor 108 can be configured to drive the remaining filament 104 and thus move (e.g., transport) it at a specific speed (e.g., in the direction of the print head). In an exemplary embodiment, the drive device 106 can have at least one drive disc, which can be coupled to the filament by means of line or area printing. In this way, a rotation of the at least one drive disc (e.g., induced by motor 108) can induce movement of the filament 104. FIG.1A Figure 100 shows an exemplary embodiment with a first drive disc 118 and a second drive disc 120. It is understood that the device 100 can also have only one drive disc or more than two drive discs. In this case, one motor can drive several drive discs, or each drive disc can be driven by exactly one bijectively assigned motor, or only individual drive discs can be driven by an assigned motor. In the FIG.1A In the illustrated embodiment, the filament can be transported between the first drive disc 118 and the second drive disc 120. The first drive disc 118 and the second drive disc 120 can provide a counter-bearing relative to each other. For example, the motor 108 can have a drive shaft that is positively or frictionally coupled to the first drive disc 118. The motor 108 can move (e.g., transport) the filament in the direction 122. It is understood that the device 100 can also have several drive devices, each of which can be configured according to a different embodiment of the drive device 106.
[0020] According to various embodiments, the device 100 includes a control device 110. The control device 110 can be configured to perform digital data processing. For this purpose, the control device 110 can, for example, include at least one processor. As part of the digital data processing, the control device 110 can, for example, include a storage device 112. For data processing, the control device 110 can use various algorithms (e.g., defined by software). These algorithms (e.g., the software) can be stored in the storage device 112. If, as described herein, data and / or information are provided to the control device 110 from a component, they can be transmitted directly to the control device 110 (e.g.,stored in the storage device 112 of the control device 110) or transmitted indirectly to the control device 110 by means of one or more other components.
[0021] According to various embodiments, the device 100 can have one or more detection devices 105. The one or more detection devices 105 can be configured to detect (directly or indirectly) whether the remaining filament is less than or equal to a predefined filament threshold. In other words, the one or more detection devices 105 can detect one or more indicators that provide a direct or indirect indication of whether the remaining filament 104 is nearing its end.
[0022] The predefined filament threshold is selected such that when the predefined filament threshold is reached, sufficient filament 104 remains to actively move the print head into a non-visible printing area of the three-dimensional object during printing (e.g. by moving the print head itself and / or by moving a print bed on which the three-dimensional object is printed).
[0023] In some embodiments, the one or more detection devices 105 can detect a trigger indicating that the remaining filament is less than or equal to the predefined filament threshold. For example, the one or more detection devices 105 can include at least one (e.g., mechanical and / or optical) detection device configured to detect, as a trigger, whether an end 109 of the remaining filament 104 passes the at least one detection device. For this purpose, the at least one detection device can, for example, use a push button, a pressure switch (e.g., with a rocker), a photoelectric sensor, etc. FIG.1B Figure 1 shows an exemplary embodiment in which the at least one detection device of the one or more detection devices 105 is a light barrier 115. Additionally or alternatively, the one or more detection devices 105 can have at least one (e.g., mechanical and / or optical) detection device configured to detect, as a trigger, whether a specific area or point of the remaining filament 104 passes the at least one detection device. For this purpose, the filament can, for example, have a marking indicating that the remaining filament is equal to the predefined filament threshold. Such a marking can, for example, be an optical and / or a mechanical marking. According to various embodiments, at least one detection device can be configured to detect this (e.g., optical and / or mechanical) marking as a trigger.In one example, the one or more detection devices 105 can be configured to detect a tensile stress threshold of the remaining filament 104 and / or a compressive stress threshold of the remaining filament 104 as a trigger. The one or more detection devices 105 can also be configured to detect a quantity (e.g., length) of the remaining filament 104 while a portion of the remaining filament 104 is still wound on the filament spool 102. For example, at least one of the one or more detection devices 105 can be configured to detect a weight threshold of the filament spool 102 as a trigger. The one or more detection devices 105 can be configured to provide the detection of at least one trigger as filament information 107 to the control device 110.
[0024] In some embodiments, at least one detection device of the one or more detection devices 105 can be configured to continuously detect one or more indicators and provide them as filament information 107 to the control device 110. For example, at least one detection device of the one or more detection devices 105 can continuously detect the weight of the filament spool 102, and the control device 110 can determine whether the detected weight is less than or equal to the weight threshold. For example, at least one detection device of the one or more detection devices 105 can continuously detect tensile stress and / or compressive stress of the remaining filament 104, and the control device 110 can determine whether the detected tensile stress is less than or equal to the tensile stress threshold and / or whether the detected compressive stress is less than or equal to the compressive stress threshold.It is understood that the indicators described herein are exemplary and that any other indicator suitable for indicating whether the remaining filament is less than or equal to the predefined filament threshold may be used.
[0025] In one exemplary embodiment, at least one of the one or more detection devices 105 can be configured to continuously detect (as an indicator) the speed of the filament unwound from the filament spool 102. The term "continuous" in relation to speed detection can be understood as the detection of a specific speed value at a predefined rate, such as a number of times per predefined time interval (e.g., once per second, twice per second, every ten seconds, every twenty seconds, every thirty seconds, etc.). Consequently, the continuous detection of the filament speed can involve the continuous detection of a single speed value. Visually, the detected speed can exhibit a multitude of speed values after a given time interval.The at least one detection device of the one or more detection devices 105 can be configured to provide a speed value of the speed of the filament unwound from the filament spool 102 as filament information 107 to the control device 110. The speed value can be acquired as an analog or digital signal. The at least one detection device can have any suitable type of sensor by which a speed of the filament can be detected or which acquires information from which the speed of the filament can be determined. The control device 110 can be configured to determine a quantity (e.g., length) of the remaining filament 104 based on the continuously detected speed of the filament unwound from the filament spool 102.
[0026] FIG.1C Figure 100 shows an exemplary embodiment of the device 100, in which the one or more detection devices 105 comprise a first detection device 114 and a second detection device 116. It is understood that in some embodiments the device 100 may also comprise only one of these detection devices (i.e., the first detection device 114 or the second detection device 116). It is also understood that in some embodiments the device 100 may additionally comprise at least one detection device for sensing a trigger (e.g., the light barrier 115 for sensing whether the end 109 of the remaining filament 104 has been reached) or, alternatively to the first detection device 114 and the second detection device 116, may comprise at least one detection device for sensing a trigger (e.g., the light barrier 115).In some embodiments, the device 100 may have exactly one detection device for sensing a trigger (e.g., the light barrier 115). In other embodiments, the device 100 may have several detection devices for sensing a trigger (e.g., several light barriers configured according to the light barrier 115, which are arranged at different positions along the path of the filament; and / or several detection devices configured to sensing different triggers, such as the light barrier 115 for sensing whether the end 109 of the remaining filament 104 passes the light barrier 115, and a sensor for sensing whether a tensile and / or compressive stress of the remaining filament 104 reaches an associated threshold value).
[0027] The first detection device 114 can be configured to detect or determine a first velocity value of the velocity of the filament (at least in direction 122) in a first cycle.
[0028] The second detection device 116 can be configured to detect or determine a second velocity value of the filament (at least in direction 122) in a second cycle (which may be different from or the same as the first cycle). According to an exemplary embodiment, the second detection device 116 can be configured to detect the rotational speed of the drive shaft of the motor 108 and determine the second velocity value based on the rotational speed of the drive shaft. The second detection device 116 can include an incremental encoder with a receiver. For example, the second detection device 116 can include a light source, an encoder disk, and at least one receiver (e.g., a light sensor). The encoder disk can have a plurality of circumferential recesses.The light source can be configured to shine light onto the encoder disk so that at least some of the light can pass through the multiple openings in the encoder disk. The receiver (e.g., the light sensor) can be configured to detect the light that has passed through the multiple openings in the encoder disk. The signal detected by the receiver (e.g., the light sensor) depends on the rotational speed of the drive shaft of motor 108. Consequently, the rotational speed of the drive shaft can be determined from the detected signal, and based on this, the second speed value can be calculated.
[0029] FIG.1D Figure 100 shows an exemplary embodiment of the first detection device 114. The first detection device 114 can have an incremental encoder 124. The incremental encoder 124 can have a light source 126, an encoder disk 128, and a light sensor 130. In an example (as in Figure 100), the first detection device 114 can have an incremental encoder 124. FIG.1C (As shown) the light sensor 130 can be arranged behind the encoder disk 128 (in the side view shown). The encoder disk 128 can be in direct physical contact with the filament. The encoder disk 128 can be configured to rotate when the filament is moved (e.g., transported). The light source 126 can be configured to emit light beams toward the encoder disk 128. The light sensor 130 can be configured to detect light beams emitted by the light source 126 and passing through the encoder disk 128. The detected signal based on these light beams passing through the encoder disk 128 is therefore dependent on the rotational speed of the encoder disk 128. The first detection device 114 can be configured to determine the first velocity value of the filament based on this detected signal.The encoder disk 128 can have a first incremental section 132 and a second incremental section 134. The first incremental section 132 and the second incremental section 134 can provide different resolutions.
[0030] FIG.2 Figure 1 shows an exemplary embodiment of the first detection device 114, in which the first detection device 114 has a different encoder 200. The other encoder 200 can have an encoder disk, a transmitter unit 208, and a receiver unit 210. The encoder disk can have a disk 202 and a recess 204 (or a slot). Movement of the filament can induce movement of the encoder disk about the axis 208. The transmitter unit 208 and the receiver unit 210 can be coordinated such that they can detect a rotational speed of the encoder disk. For example, the transmitter unit 208 can be a light source, and the receiver unit 210 can be configured to detect light passing through the encoder disk or light reflected from the encoder disk. For example, the encoder disk can be made of a metallic material (e.g.The receiver unit 210 can be a magnetic resonance sensor or a Hall sensor. According to various embodiments, several encoder disks can be used. For example, the size of the recess 204 of the several encoder disks can differ from one another, so that different resolutions can be detected.
[0031] As described herein, the drive device 106 can move (e.g. transport) the filament in the direction of 122, for example by a distance, D, (in some aspects also referred to as path, distance or distance).
[0032] According to various embodiments, the control device 110 can be configured to receive filament information 107. As described herein, the filament information can indicate whether the remaining filament 104 is less than or equal to a predefined filament threshold. As described, the filament information 107 can contain data that is detected by one or more detection devices 105. Therefore, the filament information 107 can contain (e.g., continuously detected) data by which the control device 110 can determine whether the remaining filament 104 is less than or equal to a predefined filament threshold, and / or the filament information 107 can contain data relating to one or more triggers that directly indicate that the remaining filament 104 is less than or equal to a predefined filament threshold.
[0033] According to various embodiments, the control device 110 can be configured, when the filament information 107 indicates that the remaining filament 104 (e.g., a quantity (e.g., length) of the remaining filament 104) is less than or equal to the predefined filament threshold, to determine (e.g., regardless of which detection device or devices of the one or more detection devices 105 received the filament information 107) whether the printhead is in a non-visible printing area. If the printhead is already in a non-visible printing area, the control device 110 can pause the printing process to change the filament spool 102 at the time the printhead is in the non-visible printing area. Optionally, the printhead can be moved to a park position (e.g.,a position outside the print area and / or outside the three-dimensional object). If the printhead is not yet in a non-visible print area (i.e., in the case where the printhead is in a visible area of the three-dimensional object when determining that the remaining filament 104 is less than or equal to the predefined filament threshold), the control device 110 can move the printhead into a non-visible print area of the three-dimensional object and pause the printing process there to change the filament spool 102. Consequently, the printing process can always be paused at any time when the printhead is in a non-visible print area of the three-dimensional object.
[0034] According to various embodiments, the control device 110 can be configured to either resume the printing process after changing the filament spool 102 by means of the printhead in the non-visible printing area of the three-dimensional object (e.g., the printhead can be moved from the parked position back into the non-visible printing area of the three-dimensional object after changing the filament spool 102) or to resume the printing process with a different printhead in the non-visible printing area of the three-dimensional object (in which the printhead was located when the printing process was paused). For example, the control device 110 can be configured to determine whether another printhead is available that is drawing filament from a different (not yet exhausted) filament spool.If another printhead is available, the control device 110 can move the other printhead into the non-visible printing area of the three-dimensional object (in which the printing process was paused) and then continue the printing process using the other printhead. If no other printhead is available (e.g., because the device 100 or the system does not have another printhead, or because no other printhead has filament available for printing the three-dimensional object (e.g., because the filament is used up or because the filament from another filament spool is made of a different material)), the control device 110 can be configured to continue the printing process after changing the filament spool 102 with the (previously used) printhead (e.g., by moving it from the parked position back into the non-visible printing area and then continuing the printing in the non-visible printing area).
[0035] As described herein, the control device 110 can be configured to receive the velocity values detected by the at least one detection device (e.g., the first detection device 114 and / or the second detection device 116) (e.g., as a plurality of first velocity values or as a plurality of second velocity values). In this case, the control device 110 can be configured to determine the absolute distance traveled by the filament unwound from the filament spool 102 using the detected velocity values (i.e., the continuously detected velocity of the filament). The "absolute" distance, as used herein, can be understood as the distance since the filament began unwinding from the filament spool (i.e., from a "new" filament spool from which no filament had previously been unwound).The control device 110 can intuitively determine, based on the speed at which the filament is unwound from the filament spool 102 (and based on the time), the length of filament already unwound from the filament spool 102. This determination can be carried out at predefined time intervals. According to various embodiments, the control device 110 can be configured to determine the remaining filament 104 (e.g., the length of the remaining filament 104) based on this length.
[0036] As described herein, the filament information can either explicitly indicate that the remaining filament is less than or equal to the predefined filament threshold (e.g., in the case of a trigger) or implicitly indicate whether the remaining filament is less than or equal to the predefined filament threshold (e.g., in the case of continuous detection of the weight of the filament spool 102, the tensile and / or compressive stress of the filament, and / or the speed at which the filament is unwound from the filament spool 102). In the case of implicit indication, the control device 110 can be configured to use the filament information 107 to determine whether the remaining filament is less than or equal to the predefined filament threshold.
[0037] As described herein, the control device 110 can be configured to move the printhead to a non-visible print area of the three-dimensional object for changing the filament spool 102, taking into account print data (e.g., active), and / or to determine whether the printhead is already in a non-visible print area of the three-dimensional object. A "visible print area," as described herein, can be understood as any area of the three-dimensional object that is visible to an observer from any perspective in the finished printed state. This can be an outer surface, but also a surface within a cavity, a through-hole, etc.The term "non-visible print area," as described herein, can be understood as any area of the three-dimensional object that is not visible to a viewer in the finished printed state (regardless of perspective). This could, for example, be the infill structure.
[0038] In some embodiments, the control device 110 can be configured to leave the printing process unchanged. In this case, the control device 110 can be configured to determine, based on the print data, at what point in time which section of the three-dimensional object is printed. For example, the control device 110 can determine whether a visible area or a non-visible area (e.g., a fill structure) of the three-dimensional object is being printed at a specific time. The control device 110 can be configured, based on the print data and the filament information 107, to determine a time to change the filament spool 102. The control device 110 can be configured to determine the time such that a non-visible area of the three-dimensional object is printed at that time.If a non-visible area of the three-dimensional object is being printed, the print head is located within this non-visible printing area. The printing process can then be paused at this point (when the print head is in the non-visible area of the three-dimensional object).
[0039] According to various embodiments, a distance between the one or more detection devices 105 (e.g., the light barrier 115) and the printhead, and / or a distance between different detection devices of the one or more detection devices 115, can be known (e.g., stored in the storage device 112). The control device 110 can be configured to determine a quantity (e.g., length) of the remaining filament 105 based on this known distance(s). For example, the control device 110, as described herein, can determine an end time at which the filament is completely used up based on the current speed of the filament and / or an average speed of the filament. It is understood that the control device 110 can determine a time for changing the filament spool 102, as described herein, such that this time is before the end time.
[0040] According to various embodiments, the device 100 can include a changer device configured to exchange the filament spool 102 with another filament spool. For example, the control device 110 can provide control data to the changer device, which instructs the changer device to exchange the filament spool 102 with the other filament spool (e.g., at the determined time).
[0041] FIG.3A Figure 300A shows an exemplary processing scheme for generating control data 310 according to various embodiments. The control data 310 can contain instructions to move the printhead (e.g., printhead 402) to the non-visible print area and pause it there (e.g., if the printhead is currently in a visible print area of the three-dimensional object). The control data 310 can also contain instructions to pause the printing process in the non-visible print area (e.g., if the printhead is already in such an area). According to various embodiments, the control device 110 can determine, based on the print data 304, whether the printhead is in a visible or non-visible print area at a given time.
[0042] In some embodiments, the control device 110 can move the printhead itself to move it into the non-visible printing area. For example, a drive unit can be configured to move the printhead, and the control device 110 can provide the control data 310 to the drive unit. In some embodiments, the control device 110 can move the three-dimensional object to move the printhead into the non-visible printing area. For example, the printhead can be configured to print the three-dimensional object on a print bed, a drive unit can be configured to move the print bed, and the control device 110 can be configured to provide the control data 310 to the drive unit to move the print bed relative to the printhead.
[0043] The control data 310 can optionally contain instructions to move the printhead to the park position when pausing.
[0044] As described herein, the control device 110 can use the filament information 107 to determine whether a quantity 308 (e.g. a length) of the remaining filament 104 is less than or equal to the predefined filament threshold, L th . The control device 110 can be set up, when it is determined that the quantity 308 of the remaining filament 104 is less than or equal to the predefined filament threshold, L th , to generate the control data 310 to move the printhead into the non-visible printing area for changing the filament spool 102 (e.g., if it is not yet in a non-visible printing area and / or if the time described herein for changing the filament spool is determined) and subsequently pause the printing process or to pause the printing process directly if the printhead is already in a non-visible printing area of the three-dimensional object.
[0045] The control device 110 can generate the control data 310 based on print data 304. The print data 304 provides information about whether a particular area of the three-dimensional object is a visible area (in some aspects referred to as the visible print area) or a non-visible area (in some aspects referred to as the non-visible print area).
[0046] According to various embodiments, the control device 110 can be configured to determine whether it is possible to move the printhead into the non-visible printing area before the remaining filament 104 is completely consumed. The control device 110 can then generate the control data 310 for moving the printhead into the non-visible printing area, provided it determines that this is possible based on the quantity 308 of the remaining filament 104. If the control device 110 determines that it is not possible to move the printhead into the non-visible printing area before the remaining filament 104 is consumed, it can be configured to initiate the change of the filament spool 102 even in a visible area of the three-dimensional object.
[0047] As described herein, the one or more detection devices 105 (e.g. the first detection device 114 and / or the second detection device 116) can be configured to continuously provide a detected velocity value to the control device 110 as filament information 107. FIG.3B A processing scheme 300B illustrates this by way of example, where exactly one detection device (e.g., the first detection device 114 or the second detection device 116) continuously provides a speed value. It is understood that the detection device can also dynamically provide several successively detected speed values. It is also understood that the one or more detection devices 105 can also have more than one detection device (e.g., the first detection device 114 and the second detection device 116). In this case, the control device 110 can be configured to determine the control data 310 based on the respective speed values determined by the multiple detection devices.The control device 110 can be configured to determine, based on the detected velocity value, an absolute distance 306 traveled by the filament at the time the velocity value was detected. According to various embodiments, the control device 110 can be configured to determine, based on the determined absolute distance 306 traveled by the filament, the quantity (e.g., length) 308 of the remaining filament 104 (e.g., using a total quantity (e.g., total length) of the filament from the filament spool 102 stored in the storage device 112).
[0048] According to various embodiments, the control data 310 can specify a time at which the filament spool 102 is to be replaced with another filament spool. According to various embodiments, the control device 110 can be configured to determine this time such that a non-visible area of the three-dimensional object is being printed at that time (i.e., whether the print head is in a non-visible printing area). As described herein, the control device 110 can use the print data 304 to determine whether a visible area (e.g., a surface area) or a non-visible area (e.g., the infill structure) is being printed at a given time. The control device 110 can be configured to determine the time when the determined quantity 308 of the remaining filament 104 is less than or equal to a predefined filament threshold, Lth.Intuitively, the filament threshold value, Lth, can indicate whether the filament is nearing its end, and if so, the control device 110 can determine the time to change the filament spool 102. For example, the control device 110 can be configured to determine an end time at which the remaining filament 104 is completely consumed, based on the detected speed (e.g., a currently determined speed value or an average speed value) and the quantity 308 of the remaining filament 104, and can then determine the time to change the filament 104 so that it is before the end time. According to another embodiment, the absolute distance traveled 306 can also be directly compared with a predefined threshold value (e.g., predefined based on the total quantity or total length of the filament in the filament spool 102).
[0049] As described herein, the control device 110 can be configured to determine whether the printing process can be continued with a different printhead. In this case, the control data 310 can contain corresponding instructions for controlling the other printhead.
[0050] FIG.4 Figure 400 schematically shows a system 400 for printing three-dimensional objects in layers using a fused deposition modeling (FDM) process according to various embodiments. The system 400 can include the device 100. The system 400 can include a print head 402. As described herein, the device 100 can be configured to feed the filament to the print head 402. The system 400 can include a print bed 404. The print head 402 can be configured to heat the (solid) filament supplied to the print bed 404 (thus converting it into a viscous state) and print the three-dimensional object (according to the predefined print data 304) with the (viscous) filament material on the print bed 404. The system 400 can include a first drive unit 406. The first drive unit 406 can be configured to move the print head 402 at least in an x-direction and / or a y-direction (i.e., laterally).The first drive unit 406 can also be configured to move the print head 402 in a z-direction (i.e., vertically). The system 400 can have a second drive unit 408. The second drive unit 408 can be configured to move the print bed 404 at least in a z-direction (i.e., vertically). The second drive unit 408 can also be configured to move the print bed 404 in an x-direction and / or a y-direction (i.e., laterally). The control device 110 of the device 100 can be configured to control the first drive unit 406 and / or the second drive unit 408 (e.g., according to the print data 304).For example, the control device 110 can be configured to provide the control data 310 to the first drive unit 406 and / or the second drive unit 408, and the control data 310 can contain instructions to move the print head 402 into a non-visible printing area of the three-dimensional object. It is understood that the print head 402 can be moved into the non-visible printing area by moving the print head 402 itself and / or by moving the print bed 404 (relative to the print head 402).
[0051] Optionally, the system 400 can include a power supply unit 410 to provide energy to the other components. FIG.5A a front view and FIG.5B a side view of an exemplary spatial configuration of the system 400 according to various embodiments.
[0052] Although the print head 402, the print bed 404, the first drive unit 406, and the second drive unit 408 are described as part of the system 400, it is understood that one or more (e.g., all) of these components may also be part of the device 100 itself. Consequently, in some embodiments, the device 100 may include the print head 402 and / or the print bed 404 and / or the first drive unit 406 and / or the second drive unit 408.
[0053] It is understood that a drive unit described herein for moving the print bed 402 and / or a print head (e.g., the print head 402 and / or the other print head) can have several units (e.g., each having at least one motor), wherein each unit of the several units can be configured to realize a movement in at least one direction.
[0054] According to various embodiments, the device 100 and / or the system 400 can have more than one printhead (e.g., also the other printhead described herein). In this case, the device 100 and / or the system 400 can have an associated drive unit for each additional printhead, which is configured to move the respective additional printhead laterally (e.g., in the x-direction and / or in the y-direction) and / or vertically (e.g., in the z-direction).
[0055] FIG.6 Figure 600 shows a flowchart of a method for changing a filament spool during the printing of a three-dimensional object according to various embodiments.
[0056] Method 600 may include printing a three-dimensional object according to print data using a filament which is unwound from a filament spool (in 602).
[0057] Method 600 can include the acquisition of filament information (in 604) during the printing (602) of the three-dimensional object. The filament information can indicate whether a remaining filament (e.g., a quantity of the remaining filament 104) is less than or equal to a predefined filament threshold.
[0058] Method 600 can, if the filament information indicates that the remaining filament is less than or equal to the predefined filament threshold, involve moving the printhead into a non-visible area of the three-dimensional object and pausing the printing process to change the filament spool (in 606) during printing (602). This can be done taking the print data into account. If, when the filament information indicates that the remaining filament is less than or equal to the predefined filament threshold, the printhead is already in a non-visible printing area of the three-dimensional object, Method 600 (in 606) can involve pausing the printing process in that non-visible printing area.
[0059] According to various embodiments, method 600 (e.g., in 606) can include determining whether the printhead is in a non-visible printing area. If it is determined that the printhead is in a non-visible printing area, method 600 can include pausing the printing process in this non-visible printing area. If it is determined that the printhead is not in a non-visible printing area (i.e., in a visible printing area), method 600 can include moving the printhead to a non-visible area of the three-dimensional object and pausing the printing process in this non-visible area to change the filament spool.
[0060] It is understood that the acquisition of the filament information (in 604) and the movement of the printhead (in 606) can be carried out as described for the device 100.
[0061] The following examples illustrate various aspects of the device 100, the system 400, and the method 600. It is understood that aspects described in relation to the device 100 can also characterize corresponding aspects of the method 600, or that corresponding operations can be performed as a method, and vice versa (i.e., that corresponding components of the device can be configured to perform at least part of the method 600). Accordingly, it is understood that the system 400 can include the device 100 and can perform at least part of the method 600.
[0062] Example 1 is a device for changing a filament spool during the printing of a three-dimensional object, the device comprising: a filament spool on which a filament is wound;A drive device comprising a motor configured to drive the filament in order to unwind the filament from the filament spool and supply it to a printhead for printing a three-dimensional object according to print data, and a control device configured to: receive filament information indicating whether the remaining filament is less than or equal to a predefined filament threshold, and if the filament information indicates that the remaining filament is less than or equal to the predefined filament threshold, generate control data, taking into account the print data, to move the printhead to a non-visible print area of the three-dimensional object to change the filament spool and to pause the printing process there, or, if the printhead is already in a non-visible print area, to pause the printing process carried out by the printhead there.
[0063] Example 2 is set up according to Example 1, wherein the control device is further set up to move the printhead to a predetermined park position (e.g. outside the printing area and / or outside the three-dimensional object) when the printing process is paused.
[0064] Example 3 is set up according to Example 2, wherein the control device is further set up to: determine whether a filament unwound from a different filament spool (e.g. of the same material as the filament of filament spool 102) is available to another printhead, and if it is determined that a filament unwound from a different filament spool is available to another printhead, move the other printhead into the non-visible printing area of the three-dimensional object when the printing process is paused and continue the printing process there.
[0065] Example 4 is a device according to any one of Examples 1 to 3, wherein the filament information includes a tensile stress and / or compressive stress of the remaining filament; and / or wherein the filament information indicates that an end of the filament has passed a detection device; and / or wherein the filament information indicates that an optical and / or mechanical mark of the filament has passed a detection device; and / or wherein the filament information includes a weight of the filament spool.
[0066] Example 5 is set up according to one of Examples 1 to 4, wherein the control device is set up to: determine a length of the remaining filament based on the filament information, and determine that the remaining filament is less than or equal to the predefined filament threshold if the length of the remaining filament is less than or equal to a predefined length threshold.
[0067] Example 6 is a device according to any one of Examples 1 to 4, further comprising: one or more detection devices configured to capture the filament information and provide it to the control device.
[0068] Example 7 is configured according to Example 6, wherein at least one detection device of the one or more detection devices is configured to permanently detect a speed of the filament unwound from the filament spool and to provide this speed as filament information to the control device; and wherein the control device is configured to: determine a distance traveled by the filament unwound from the filament spool using the detected speed, and determine the remaining filament based on the determined distance traveled by the filament unwound from the filament spool.
[0069] Example 8 is set up according to Example 7, wherein the control device is set up to: determine, based on the filament information and based on a currently detected velocity value and / or an average velocity value determined as the average of several velocity values of the detected velocity, an expected end time at which the remaining filament is completely consumed, and determine a time to move the print head into the non-visible printing area of the three-dimensional object such that this time is earlier in time than the expected end time.
[0070] Example 9 is a device according to any one of Examples 6 to 8, wherein the one or more detection devices comprise: an incremental encoder for detecting a speed of the filament unwound from the filament spool; and / or a mechanical and / or optical detection device (e.g. a push button, a rocker switch, a photoelectric sensor, etc.) for detecting an end of the filament; and / or a mechanical and / or optical detection device for detecting an optical and / or mechanical marking of the filament.
[0071] Example 10 is set up according to one of Examples 1 to 9, wherein the control device is set up to provide the generated control data to a drive unit of the print head and / or a drive unit of a print bed on which the three-dimensional object is printed, in order to move the print head to the non-visible printing area of the three-dimensional object to change the filament spool and to pause the printing process there, or, if the print head is already in the non-visible printing area, to pause the printing process carried out by means of the print head there.
[0072] Example 11 is set up according to Example 10, wherein the control data provided to the printhead drive unit and / or the print bed drive unit instruct them to move the printhead to a predetermined park position when the printing process is paused.
[0073] Example 12 is a device according to any one of Examples 1 to 11, further comprising: a changing device which is set up to exchange the filament spool with another filament spool when the printing process is paused (e.g. when the printhead is in the specified park position).
[0074] Example 13 is a system for printing three-dimensional objects, comprising: a device according to any one of Examples 1 to 12; and the print head configured to print the three-dimensional object according to the print data using the filament unwound from the filament spool.
[0075] In Example 14, the system according to Example 13 may optionally further comprise: a print bed, wherein the print head is configured to print the three-dimensional object on the print bed; a first drive unit configured to move the print head at least in an x-direction and a y-direction; and a second drive unit configured to move the print bed at least in a z-direction; wherein the control device of the device is configured to control the first drive unit and the second drive unit.
[0076] Example 15 is a method for changing a filament spool during the printing of a three-dimensional object, comprising: printing the three-dimensional object according to print data using a filament unwound from a filament spool; during the printing of the three-dimensional object: acquiring filament information indicating whether any remaining filament is less than or equal to a predefined filament threshold, and if the filament information indicates that the remaining filament is less than or equal to the predefined filament threshold, moving the printhead, taking into account the print data, to change the filament spool into a non-visible print area of the three-dimensional object and pausing the printing process there, or, if the printhead is already in a non-visible print area, pausing the printing process being carried out by the printhead there.
[0077] In Example 16, the procedure according to Example 15 may optionally also include: when the printing process is paused, moving the printhead to a predetermined parking position.
[0078] In Example 17, the procedure according to Example 16 may optionally further include: during the printing of the three-dimensional object: determining whether a filament unwound from a different filament spool is available to another printhead, and if the printhead is in the specified park position and if it is determined that a filament unwound from a different filament spool is available to another printhead, moving the other printhead into the non-visible printing area of the three-dimensional object and continuing the printing process with the other printhead.
[0079] In Example 18, the method according to one of Examples 15 to 17 may optionally further include: changing the filament spool with another filament spool while the print head is in the non-visible printing area of the three-dimensional object.
[0080] In Example 19, the procedure according to Example 16 or 17 may optionally further include: changing the filament spool with a different filament spool while the printhead is in the park position.
[0081] Example 20 is the method according to any one of Examples 15 to 19, wherein the acquisition of the filament information comprises: sensing a tensile stress and / or a compressive stress of the filament; and / or sensing a weight of the filament spool; and / or sensing a mechanical and / or optical marking of the filament; and / or sensing an end of the remaining filament.
[0082] Example 21 is the method according to any one of Examples 15 to 20, wherein the acquisition of the filament information comprises: continuously detecting a velocity indicating the speed at which the filament is unwound from the filament spool; and wherein the method further comprises: determining a distance traveled by the filament unwound from the filament spool using the detected velocity value, and determining the remaining filament based on the determined distance traveled by the filament unwound from the filament spool.
[0083] Within this description, the terms "connected," "connected," and "coupled" are used to describe both direct and indirect connections, direct or indirect links, and direct or indirect couplings. The term "connected" can, for example, mean electrically connected. In the figures, identical or similar elements are designated with identical reference symbols where appropriate.
[0084] A "control device," as used herein, can be understood as any type of entity (e.g., implementing logic) that permits the processing of data or signals. The control device may, for example, include circuitry and / or (at least) a processor capable of executing software stored in a storage device (in some aspects also referred to as a storage medium), in firmware, or in a combination thereof, and issuing instructions based on that software. The control device may, for example, be configured by means of code segments (e.g., software) to control the operation of a system, such as a 3D printer. For instance, the data or signals may be processed according to at least one (i.e., one or more than one) specific function executed by the processor.A processor may be an analog circuit, a digital circuit, a mixed-signal circuit, a logic circuit, a microprocessor, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a programmable logic gate array (FPGA), an integrated circuit, or any combination thereof. Any other type of implementation of the respective functions described in detail herein may also be understood as a processor or logic circuit. It is understood that one or more of the procedure steps described in detail herein may be executed (i.e., implemented) by a processor through one or more specific functions performed by the processor. The processor may therefore be configured to perform one of the procedures described herein or its components for information processing.
[0085] A "storage device," as used herein, may include one or more memories. The term "memory" may refer to volatile memory (e.g., DRAM (dynamic random-access memory)) or non-volatile memory (e.g., PROM (programmable read-only memory), EPROM (erasable PROM), EEPROM (electrically erasable PROM), or flash memory, such as a floating-gate memory device, a charge-swapping memory device, MRAM (magnetoresistive random-access memory), or PCRAM (phase-change random-access memory)).
Claims
1. Apparatus (100) for changing a filament spool during the printing of a three-dimensional object, the apparatus (100) comprising: • a filament spool (102), on which a filament (104) is wound; • a drive apparatus (106) comprising a motor (108), which is configured to drive the filament (104) in order to unwind the filament (104) from the filament spool (102) and to provide it to a printhead for printing a three-dimensional object according to printing data; and • a control unit (110), which is configured: ∘ to receive filament information (107), which indicates whether a remaining filament is less than or equal to a predefined filament threshold value, wherein the predefined filament threshold value is selected such that when the predefined filament threshold value is reached, sufficient remaining filament (104) is present to actively move the printhead into a nonvisible printing area of the three-dimensional object during the printing of the three-dimensional object, and ∘ if the filament information (107) indicates that the remaining filament is less than or equal to the predefined filament threshold value, to generate control data (310) in consideration of the printing data (304), in order to move the printhead into the nonvisible printing area of the three-dimensional object during the printing to change the filament spool (102) and to pause the printing procedure there.
2. Apparatus (100) according to Claim 1, wherein the control unit (110) is furthermore configured, if the filament information (107) indicates that the remaining filament is less than or equal to the predefined filament threshold value, to generate control data (310) in consideration of the printing data (304), in order to pause the printing procedure carried out by means of the printhead in the nonvisible printing area if the printhead is already located in this nonvisible printing area.
3. Apparatus (100) according to Claim 1 or 2, wherein the control unit (110) is furthermore configured to move the printhead into a predetermined parking position during pausing of the printing procedure; wherein the control unit (110) is preferably furthermore configured: • to ascertain whether another printhead has a filament unwound from another filament spool available, and • if it is ascertained that another printhead has a filament unwound from another filament spool available, to move the other printhead into the nonvisible printing area of the three-dimensional object during pausing of the printing procedure and to continue the printing procedure there.
4. Apparatus (100) according to any one of Claims 1 to 3, wherein the control unit (110) is furthermore configured, if the filament information (107) indicates that the remaining filament is less than or equal to the predefined filament threshold value, to generate control data (310) in consideration of the printing data (304) in order to move the printhead, if the printhead is located in a visible printing area of the three-dimensional object, into a nonvisible printing area of the three-dimensional object and pause the printing procedure there to change the filament spool (102) during the printing of the three-dimensional object or, if the printhead is already located in a nonvisible printing area, to pause the printing procedure carried out by means of the printhead there.
5. Apparatus (100) according to any one of Claims 1 to 4, • wherein the filament information (107) comprises a tensile stress and / or compressive stress of the remaining filament (104); and / or • wherein the filament information (107) indicates that an end (109) of the remaining filament (104) has passed a detection apparatus; and / or • wherein the filament information (107) indicates that an optical and / or mechanical marking of the remaining filament has passed a detection apparatus; and / or • wherein the filament information (107) comprises a weight of the filament spool (102).
6. Apparatus (100) according to any one of Claims 1 to 5, wherein the control unit (110) is configured: • to ascertain an amount of the remaining filament (104) on the basis of the filament information (107), and • to ascertain that the remaining filament (104) is less than or equal to the predefined filament threshold value if the amount of the remaining filament (104) is less than or equal to a predefined amount threshold value.
7. Apparatus (100) according to any one of Claims 1 to 6, furthermore comprising: one or more detection apparatuses (105), which are configured to detect the filament information (107) and provide it to the control unit (110), wherein preferably at least one detection apparatus (105, 114, 116) of the one or more detection apparatuses (105, 114, 116) is configured to permanently detect a speed of the filament unwound from the filament spool (102) and provide it as filament information (107) to the control unit (110); and wherein the control unit (110) is configured: ∘ to ascertain a distance covered by the filament unwound from the filament spool (102) using the detected speed, and ∘ to ascertain the remaining filament (104) on the basis of the ascertained distance covered by the filament unwound from the filament spool (102), wherein furthermore the control unit (110) is preferably configured: - to ascertain, on the basis of the filament information (107) and on the basis of a currently detected speed value and / or an average speed value ascertained as the average of multiple speed values of the detected speed, an expected end time at which the remaining filament (104) will be completely consumed, and - to ascertain a time for moving the printhead into the nonvisible printing area of the three-dimensional object such that this time is chronologically before the expected end time.
8. Apparatus (100) according to Claim 7, wherein the one or more detection apparatuses (105, 114, 116) comprise: • an incremental encoder for detecting a speed of the filament unwound from the filament spool (102); and / or • a mechanical and / or optical detection apparatus for detecting an end (109) of the remaining filament (104); and / or • a mechanical and / or optical detection apparatus for detecting an optical and / or mechanical marking of the remaining filament (104).
9. Apparatus (100) according to any one of Claims 1 to 8, wherein the control unit (110) is configured to provide the generated control data (310) to a drive unit of the printhead and / or a drive unit of a printing bed, on which the three-dimensional object is being printed, in order to move the printhead into the nonvisible printing area of the three-dimensional object and pause the printing procedure there to change the filament spool (102) or, if the printhead is already in the nonvisible printing area, to pause the printing procedure carried out by means of the printhead there; wherein preferably the control data (310) provided to the drive unit of the printhead and / or the drive unit of the printing bed instruct it to move the printhead into a predefined parking position during pausing of the printing procedure.
10. Apparatus (100) according to any one of Claims 1 to 9, furthermore comprising: a changing apparatus configured to exchange the filament spool (102) with another filament spool during pausing of the printing procedure.
11. System (400) for printing three-dimensional objects, comprising: • an apparatus (100) according to any one of Claims 1 to 10; and • the printhead (402) configured to print the three-dimensional object according to the printing data using the filament unwound from the filament spool (102).
12. System (400) according to Claim 11, furthermore comprising: • a printing bed (404), wherein the printhead (402) is configured to print the three-dimensional object on the printing bed (404); • a first drive unit (406), which is configured to move the printhead (402) at least in an x direction and a y direction; and • a second drive unit (408), which is configured to move the printing bed (310) at least in a z direction; • wherein the control unit (110) of the apparatus (100) is configured to control the first drive unit (406) and the second drive unit (408).
13. Method (600) for changing a filament spool during the printing of a three-dimensional object by means of the system of claim 12, the method comprising: • printing the three-dimensional object according to printing data using a filament which is unwound from a filament spool (602); • during the printing (602) of the three-dimensional object: ∘ detecting filament information which indicates whether a remaining filament is less than or equal to a predefined filament threshold value (604), wherein the predefined filament threshold value is selected such that, when the predefined filament threshold value is reached, sufficient remaining filament (104) is present to move a printhead actively into a nonvisible printing area of the three-dimensional object during the printing of the three-dimensional object, and ∘ if the filament information indicates that the remaining filament is less than or equal to the predefined filament threshold value, if the printhead is located in a visible printing area of the three-dimensional object, moving the printhead in consideration of the printing data into the nonvisible printing area of the three-dimensional object and pausing the printing procedure there during the printing of the three-dimensional object to change the filament spool.
14. Method (600) according to Claim 13, furthermore comprising: during pausing of the printing procedure, moving the printhead into a predetermined parking position; the method preferably furthermore comprising: during the printing (602) of the three-dimensional object: • ascertaining whether another printhead has a filament unwound from another filament spool available, and • if the printhead is in the predetermined parking position and if it is ascertained that another printhead has a filament unwound from another filament spool available, moving the other printhead into the nonvisible printing area of the three-dimensional object and continuing the printing procedure using the other printhead.