PROCESS FOR CONTROLLING EXTRUSION SPEED IN 3D PRINTING SYSTEMS
20250108563 ยท 2025-04-03
Inventors
- Iris Gisey Euan Waldestrand (Puebla, MX)
- Jorge Arturo Mijares Tobias (Puebla, MX)
- William Jack MacNeish, III (Santa Ana, CA, US)
Cpc classification
G05B19/4099
PHYSICS
B29C64/118
PERFORMING OPERATIONS; TRANSPORTING
B29C64/386
PERFORMING OPERATIONS; TRANSPORTING
B33Y30/00
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/49023
PHYSICS
International classification
B29C64/386
PERFORMING OPERATIONS; TRANSPORTING
G05B19/4099
PHYSICS
B33Y50/00
PERFORMING OPERATIONS; TRANSPORTING
B29C64/118
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A process for automatically adjusting print speed in a 3D printer, a system for printing a 3D object, and a method of printing a 3D object. A scaling factor is selected, including a first component for print speed and a second component for print quality, an extrusion nozzle port size is identified, and a maximum volumetric extrusion rate for a filament material and a minimum volumetric extrusion rate for the filament material is identified. An optimized volumetric extrusion rate is calculated from the maximum volumetric extrusion rate, the minimum volumetric extrusion rate, and the scaling factor. An optimized X-Y velocity V.sub.xy of a print head based on the optimized volumetric extrusion rate is calculated. A computer numerical control code is adjusted to include the optimized X-Y velocity V.sub.xy of the print head.
Claims
1. A process of automatically adjusting print speed in a 3D printer, comprising: selecting a scaling factor, wherein the scaling factor includes a first component for print speed and a second component for print quality; identifying an extrusion nozzle port size; identifying a maximum volumetric extrusion rate for a filament material and a minimum volumetric extrusion rate for the filament material; calculating an optimized volumetric extrusion rate from the maximum volumetric extrusion rate, the minimum volumetric extrusion rate, and the scaling factor; calculating an optimized X-Y velocity V.sub.XY of a print head based on the optimized volumetric extrusion rate; and adjusting a computer numerical control code to include the optimized X-Y velocity V.sub.XY of the print head.
2. The process of claim 1, wherein the scaling factor is binary.
3. The process of claim 1, where the scaling factor is a sliding scaling factor.
4. The process of claim 1, wherein the optimized volumetric extrusion rate is calculated from the following:
5. The process of claim 4, wherein the optimized X-Y velocity V.sub.XY of the print head is calculated from the following:
6. The process of claim 5, wherein if the optimized print head velocity V.sub.XY exceeds a maximum machine velocity V.sub.XY-MAX, then the optimized print head velocity V.sub.XY is set at the machine maximum velocity V.sub.XY-MAX.
7. The process of claim 5, further comprising selecting a nozzle temperature based on the optimized volumetric extrusion rate {dot over (V)}.sub.E.
8. The process of claim 7, wherein the computer numerical control code is first generated by a slicer and the process further comprises overriding a slicer temperature command with the nozzle temperature.
9. The process of claim 1, wherein the computer numerical control code is first generated by a slicer and the process further comprises overriding a slicer speed command with the optimized X-Y velocity V.sub.xy of the print head.
10. A system for printing a 3D object, comprising: a print head carried by an x-y carriage, including a nozzle having an extrusion port, wherein the extrusion port exhibits a extrusion nozzle port size; and a processor control system, wherein the processor control system includes executable code to: identify the extrusion nozzle port size of the nozzle extrusion port; identify a maximum volumetric extrusion rate for a filament material and a minimum volumetric extrusion rate for the filament material; calculate an optimized volumetric extrusion rate from the maximum volumetric extrusion rate, the minimum volumetric extrusion rate, and a scaling factor identified by a user, wherein the scaling factor includes a first component for print speed and a second component for print quality; calculate an optimized X-Y velocity V.sub.XY of the print head based on the optimized volumetric extrusion rate; and adjust a computer numerical control code to include the optimized X-Y velocity V.sub.XY of the print head.
11. The system of claim 10, wherein the processor control system further includes executable code to: calculate the optimized volumetric extrusion rate from the following:
12. The system of claim 11, wherein the processor control system further includes executable code to: calculate the optimized X-Y velocity V.sub.XY of the print head from the following:
13. The system of claim 12, wherein the processor control system further includes executable code to: set the optimized X-Y velocity V.sub.XY as a machine maximum velocity V.sub.XY-MAX if the optimized X-Y velocity V.sub.XY exceeds the maximum machine velocity V.sub.XY-MAX.
14. The system of claim 13, wherein the processor control system further includes executable code to: select a nozzle temperature based on the optimized volumetric extrusion rate {dot over (V)}.sub.E.
15. The system of claim 14, further comprising non-transitory memory operatively coupled to the processor control system, wherein the memory includes information regarding the filament material and a plurality of machine characteristics.
16. The system of claim 15, wherein the memory further includes information regarding machine dynamics including the machine maximum velocity V.sub.XY-MAX and the maximum machine velocity V.sub.XY-MAX.
17. The system of claim 10, further comprising a fan configured to cool the nozzle.
18. The system of claim 10, further comprising a print platform movable in a z-axis.
19. A method of printing a three-dimensional object, comprising: generating a computer numerical control code from a computer aided design file representing a three-dimensional object; selecting a filament material; selecting a scaling factor, wherein the scaling factor includes a first component representative of maximizing print speed and a second component representative of maximizing print quality; identifying an extrusion nozzle port size; identifying a maximum volumetric extrusion rate for a filament material and a minimum volumetric extrusion rate for the filament material; calculating an optimized volumetric extrusion rate from the maximum volumetric extrusion rate, the minimum volumetric extrusion rate, and the scaling factor; calculating an optimized X-Y velocity V.sub.XY of a print head based on the optimized volumetric extrusion rate; adjusting the computer numerical control code to include the optimized X-Y velocity V.sub.XY of the print head; and printing the three-dimensional object.
20. The method of claim 19, further comprising selecting a nozzle temperature based on the optimized volumetric extrusion rate {dot over (V)}.sub.E.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
DETAILED DESCRIPTION
[0026] The present disclosure is directed to a process of maximizing extrusion speed, part quality, or balancing extrusion speed and part quality, in a 3D printing system. The process and system uses a scaling factor for automatically adjusting the velocity of the print head in the computer numerical control code used to control the printer. In aspects, the scaling factor includes at least two components, wherein at least one component is selected by the user and the second component is calculated from the first component. The user selects the scaling factor based on the degree to which print speed is prioritized over print quality, or vice versa. In aspects, the user may elect to balance print speed with print quality, select relatively greater print speed over print quality, or select relatively lower print speed over print quality, wherein print quality is understood to be a reference to the surface finish of the completed part.
[0027] As noted above, 3D printers utilize a set of instructions, typically in the form of a computer numerical control programming language, to direct the movements of a print head when depositing filament on the print platform. The computer numerical control code often uses g-code, however, other numerical control codes may alternatively, or additionally, be used. The print instructions, in the form of executable code, may be programed into computer aided machining (CAM) software or derived from a computer aided design (CAD) file into computer aided machining (CAM) software. In aspects, the processes are coded or embodied by one or more of a number of programming languages including, but not limited to, at least one of the following: C#, C++, Python and Java.
[0028]
[0029] As illustrated in
[0030] The processor control system 120 also includes or accesses information stored in memory 122, with which the processor 124 is operatively coupled, regarding the filament materials that may be printed with the 3D printer 101 as well as various characteristics of the 3D printer 101. Memory is understood as a physical device capable of storing information temporarily, such as in the case of random-access memory, or permanently, such as in the case of read-only memory. Representative physical devices include hard disk drives, solid state drives, optical discs, or storage accessible through the cloud over networks.
[0031] Information stored in memory 122 regarding filament materials include, for example, filament process temperature ranges and filament viscosity ranges for a given nozzle 106 extrusion port 118 size at which the filament may be extruded as well as a predicted feed motor power for feeding the filament at those temperature and viscosity ranges through the given port sizes. It is noted that filament process temperatures include, in aspects, temperatures where the filament begins to soften and flow, such as above one of the Vicat softening temperature and heat deflection temperature, and below the material degradation temperature, including, in aspects, temperatures 20 degrees Celsius below the filament melt temperature to temperatures greater than the filament melt temperature. In addition, the volumetric extrusion rate for each filament material is stored. The volumetric extrusion rate is understood as the volume of filament that can be extruded from the nozzle 106 extrusion port 118 in a given period of time. It should be appreciated that the volumetric extrusion rates are temperature dependent, as well as dependent on the material viscosity (or the ability of the material to flow upon application of a given force) at a given temperature. The relationships between temperature, viscosity, port size and volumetric extrusion rates for a given filament material may be characterized in advance and stored within the memory 122. In aspects, a maximum volumetric extrusion rate is set where the extruded filament undergoes various distortions or instabilities, such as when the extruded filament is exposed to a shear stress above a critical shear stress, or when cold coring occurs due to the inability to provide sufficient heat to the filament to allow the filament to flow. Shear stress being dependent on force applied, nozzle geometry, and viscosity of the fluid at a given temperature, and the critical shear stress being a shear stress above which distortions and instabilities are observed in the extruded filament. In aspects, the minimum volumetric extrusion rate is also selected to avoid instabilities as well as jamming, based on factors such as the length of the nozzle barrel, nozzle port size, material temperature, and viscosity. For example, while an ideal temperature may be selected for a certain velocity, however, friction may be caused by semi-melted or cold material causing instability. It should further be appreciated that individual data points may be stored for each material, each nozzle 106 extrusion port 118 size, etc., or functions representing the data may be stored and utilized.
[0032] Machine characteristic data stored in memory 122 include the nozzle 106 extrusion port 118 size and maximum print head velocity V.sub.XY-MAX in the XY direction. The size of the nozzle 106 extrusion port 118 is understood as the cross-sectional area of the nozzle 106 opening from which the filament is extruded from and deposited on the print platform 114. The maximum print head velocity V.sub.XY-MAX in the XY direction is understood as the fastest rate at which the print head 102 moves in the 3D printer 101.
[0033] In addition, the processor 124 also includes or accesses information, stored in memory 122 with which the processor 124 is operatively coupled, regarding additional machine dynamics including, in aspects, the thermal characteristics of the heated nozzle 106, such as the rate at which the heated nozzle 106 increases in temperature upon the application of heating power or decreases in temperature upon the application of fan power. Information stored regarding machine dynamics further includes, in aspects, the maximum acceleration and maximum deceleration of the print head 102 in either the X or the Y direction. Further machine dynamics information also includes, in aspects, the maximum and minimum feed motor power range, the maximum and minimum heated nozzle power range, and the maximum and minimum fan power range.
[0034]
[0035] At block 404, the filament material is selected, and the filament material characterization data is referenced to determine, as alluded to above, the maximum and minimum operating temperatures for the filament material, the maximum and minimum volumetric extrusion rates of the filament material due to, e.g., material viscosity at temperatures between the maximum and minimum operating temperatures, and the maximum and minimum extruder velocity based on port size. In aspects, blocks 402 and 404 are performed one after the other, at the same time, or in reverse order.
[0036] At block 406 a scaling factor is calculated based on an input from the user as to whether the user favors print speed or print quality. In aspects, the scaling factor is based on a binary selection between maximizing one of print speed and print quality. In alternative aspects, the scaling factor is a sliding scale, wherein the user selects the degree to which either print speed or print quality is prioritized.
[0037] For example, if a sliding scale is used, the user may select an interval from 0 to 1, wherein 0 is maximizing print quality and 1 is maximizing print speed. If 1 is selected, print speed is maximized and the 3D printer 101 prints at the maximum print head velocity V.sub.XY-MAX even though print quality may be relatively lower. If 0 is selected, print quality is maximized and the 3D printer 101 prints at the lowest print head velocity available for the filament material, even though print speed may be relatively lower. If 0.5 is selected, then print speed and print quality are balanced. Accordingly, it should be appreciated that the scaling factor, in aspects, includes two components, a first component for print speed and a second component for print quality, wherein the user selects one of the two components and the other of the two components is determined from the user selection. It should be appreciated that the interval may be reversed, that is, in aspects, 0 is selected for maximizing the print speed and 1 is selected for maximizing the print quality.
[0038] The sliding scale is then used to calculate an optimized volumetric extrusion rate and an optimized extrusion velocity from the maximum and minimum volumetric extrusion rates for the selected filament material stored in memory 122. In aspects, the following equations (EQ1.) and (EQ2.) may be used to calculate an optimized volumetric extrusion rate based on the scaling factor, a, selected by the user, and in aspects the degree to which, print speed or print quality are indicated as being more desirable.
[0039] The user selected scaling factor (a) is used to determine C.sub.1 and C.sub.2 as follows.
[0040] {dot over (V)}.sub.E is the optimized volumetric extrusion rate, {dot over (V)}.sub.E.sub.
[0041] Where, V.sub.xy is the optimized X-Y velocity in either the X or Y direction, Area.sub.Filament is the cross-sectional area of the filament entering the nozzle 106, Width.sub.TRACE is the cross-sectional width of the printed, extruded filament, Height.sub.TRACE is the cross-sectional height of the printed, extruded filament, E.sub.ratio is the relation between the Area.sub.Filament entering the extruder and the desired trace cross-sectional area, and V.sub.E is the linear velocity of the extruder motor. If the optimized X-Y velocity V.sub.XY exceeds the maximum machine velocity (V.sub.XY-MAX), then the optimized X-Y velocity V.sub.XY is limited at the maximum machine velocity (V.sub.XY-MAX). It should be appreciated that Width.sub.TRACE*Height.sub.TRACE may be replaced by another representation of cross-sectional area of the printed filament.
[0042] In aspects, Area.sub.Filament is known and stored in memory 122 for a given material. In addition, in aspects, the extruded filament width Width.sub.TRACE and height Height.sub.TRACE, illustrated in
[0043] For example, a CAD file representing a three-dimensional (3D) object 112 is manipulated in a slicer, which slices the 3D object into a number of layers of a given thickness t.sub.1 based on, e.g., an assumed filament thickness, which may be adjusted by adjusting the distance in the z-direction (see
[0044] The computer numerical control code is then modified at block 410 by overriding the slicer speed commands with the optimized X-Y velocity V.sub.XY of the print head 102 when printing the 3D object 112. In addition, at block 410 other commands may be overridden or optimized, such as the temperature of heated nozzle 106. Temperature optimization is based on the optimized volumetric extrusion rate {dot over (V)}.sub.E, wherein nozzle temperature of the heated nozzle 106 is selected from a table of values that correlates the optimized volumetric extrusion rate {dot over (V)}.sub.E to a nozzle temperature for a given material. The slicer temperature commands may then be adjusted by the selected optimized nozzle temperature. In aspects, at block 412, the 3D printer 101 then uses the modified computer numerical control code to print the 3D object 112.
[0045] In aspects, a method of printing a three-dimensional (3D) object 112 is also provided herein as illustrated in
[0046] The process, method, and system of the present disclosure offer several advantages, these advantages include automated adjustment to the computer numerical control code and print head velocity in the X-Y direction to achieve the desired balance between print speed and print quality based on user selection.
[0047] The description of the present disclosure is merely exemplary in nature and variations that do not depart from the gist of the present disclosure are intended to be within the scope of the present disclosure. Such variations are not to be regarded as a departure from the spirit and scope of the present disclosure.