The present disclosure is directed to a system and method for determining estimated conditions of a finished printed part generated by a three-dimensional printer based on one or more numerical control code files, machine parameters of the three-dimensional printer, and one or more operator defined inputs. The estimated conditions of the finished printed part allow for an operator to analyze the numerical control code files and modify various machine parameters to improve machine performance and part quality, without the need to operate the three-dimensional printer.
Three-dimensional printers utilize a set of instructions, typically in the form of a computer numerical control programming language, to direct the movements of the print head when depositing filament on the print platform. While the print instructions may be manually programed, print instructions are often automatically programmed through computer aided machining (CAM) software that derives the geometry code, which is referred to as g-code, from a computer aided design (CAD) file. For three-dimensional printing, the CAD file representing the three-dimensional object is manipulated by the slicing software to define the printed object scale relative to the design scale, slice the three-dimensional object into a number of layers with a motion path based on, for example, an assumed trace height and width, divide the object up into chords or segments, define infill, and determine exposed wall thicknesses. Then for each layer, a series of actions is created for moving the print head and depositing the filament. Such actions include defining a home position, starting and stopping locations, distances of travel, rates of travel, interpolation of mid-points, returns to the home position, extrusion rate, etc. The series of actions are codified as print instructions as g-code or another form of numerical control code. These instructions are then provided to and executed by the three-dimensional printer.
G-code, which is output from a slicer that processes a three-dimensional object into layers for a target three-dimensional printing system, may not be in an optimized condition. The series of actions described above do not allow for optimizing printing conditions that may ultimately affect part quality before operation of a three-dimensional printer. For example, a programmer entering data does not presently have the capability to modify features such as velocity, time, temperature and flow rate and obtain an analysis of the impacts of each change without first entering the G-code file data into a three-dimensional printer and performing a three-dimensional print operation.
While the methods of generating a G-code print file work to achieve their intended purpose, there is a need for new and improved systems and processes for three-dimensional printing.
According to several aspects, the present disclosure relates to a numerical control language conversion process for systems analysis and for optimizing three-dimensional printing process parameters. The process includes inputting a numerical control language file data for printing a three-dimensional object, from any three-dimensional Slicer or generator, to a processor for parsing the computer numerical control code and then use a machine state approach with the specific machine parameters to output the machine state at every motion command or control instruction. The processed output data is available in a software toolbox wherein analyses of the data and machine response to the control commands may be conducted without requiring operation of the three-dimensional printing system.
In further aspects, the analyses toolbox includes motion state of the machine over time, such as real velocities, corner velocities and average velocities per axes or path, which could be used to evaluate and improve the selection of machine parameters and motion control strategies.
In further aspects, the analyses toolbox includes time analysis of the numerical control language which could provide total print job time, time per numerical control language command, time per layer, and total travel-time, which could be used to evaluate and improve the selection of slicing strategies and slice parameters.
In further aspects, the analyses toolbox allows inspection of numerical control language to validate the compatibility with the three-dimensional printing system and to prevent commands that exceed the limits of the system. For instance, commands that exceed the limits of the system may include syntax errors, unsupported commands and high temperatures commands that will cause material degradation and jamming, low temperatures commands that can cause cold extrusion and poor layer adhesion, incorrect motion commands that exceed the limits of the machine kinematics or prevent tool head collisions.
In further aspects, the analyses toolbox includes the extrusion rate which may be used to adjust extrusion temperature base on the material characterization, which includes a relation of the extrusion rate vs extruder temperature.
In additional aspects, the analyses toolbox includes a comparison of the real velocity of a print head and the commanded velocity of the print head or per axis.
In further aspects, the analyses include nozzle temperature over time.
In additional aspects, the analyses include an identification of non-ideal temperatures based on a material characterization.
According to several aspects, the analyses include an analysis of non-ideal velocity of a print head. As for example, the geometric constraints and machine kinematics will define the maximum velocities that could be reached on those sections.
According to several aspects, the present disclosure relates to a system and method for analyzing data in advance of printing a three-dimensional object. The system includes a print head carried by an x-y carriage, including a heated nozzle and a feed motor that could be a direct or a Bowden system, a heated bed, a mechanism to move on the z-axis either by moving the x-y carriage or the heated bed, and a processor control system.
In further aspects, the process includes a software package used in a stand-alone application.
The drawing described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
The present disclosure relates to a process and method for analyzing a computer numerical control code, for example for use in a system for three-dimensional printing. The process and method take into account control commands and machine parameters to assist in the printing process development without the need of printing.
As noted above, three-dimensional 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. In one embodiment, the computer numerical control code is G-code, however, it is to be appreciated that other numerical control codes may alternatively be used as well. A computer aided design (CAD) file is used to develop a three-dimensional part which is then passed through a slicer software or a computer aided machining (CAM) software to generate the G-code. 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.
According to several aspects, the processor 118 includes one or more processors 120, which in exemplary aspects are microprocessors. The processor 118 receives static computer numerical control code such as, for example, G-code files and includes hardware, firmware, and software for parsing, analyzing, and optimizing the numerical control language and provides an optimized executable code which may then be loaded as low-level servo controller optimizations for use by the three-dimensional printer 101. The processor 118, in exemplary aspects, may reside in a computer independent of the three-dimensional printer 101 and the output is provided to the three-dimensional printer 101, or the processor 118 may reside within the three-dimensional printer 101 itself. Where more than one processor 120 is present in the processor 118 the processors 120 perform distributed or parallel processing protocols and the processors 120 may include, for example, application specific integrated circuits, a programmable gate array include a field programmable gate array, a graphics processing unit, a physics processing unit, digital-signal processor, or a front-end processor.
The processor 118 also includes or accesses information, stored in a memory 122 with which the processor 120 is operatively coupled, regarding the filament materials which may be printed with the three-dimensional 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.
With reference to
With reference to
In embodiments, the second portion 138 of the analyses tool 124 also includes a smoothening function 156. The smoothening function 156 is configured to smoothen relatively short movements of the print head 102 (
Referring to
Referring back to
In another embodiment, the second portion 138 of the analysis tool includes an initial extrusion analyzer 160. The initial extrusion analyzer 160 calculates a slower acceleration for the print head 102 to compensate for a change in viscoelasticity of the print material as the print head 102 travels during non-print times. Reducing the acceleration may reduce the possibility of jamming due to backflow or increased force of extrusion.
The items entered by the operator or programmer into the second portion 138 of the analyses tool 124 produce one of multiple different print analyses 154. The print analyses 154 individually define projected or estimated conditions of a finished three-dimensional part without the need at this time to run the three-dimensional printer 101. Further optimization of the projected three-dimensional part based on one or more additional print analyses 154 may be conducted by further modifying any of the data entered into the second portion 138 or by e-slicing with different parameters to create a new file to produce further print analyses 154 and comparing results between different print analyses 154.
The analyses tool 124 includes a method to parse numerical control language and identify a machine state at every motion command. The analyses tool 124 allows modification/optimization of the to improve machine performance and part quality. The analyses tool 124 analyzes the numerical control language and allows visibility to statistics of the manufacturing process.
The analyses tool 124 can be used either offline or online. The analyses tool 124 allows path/trajectory simulations. The analyses tool 124 and the method of operation of the analyses tool 124 can be applied to any numerical control language and machine using predetermined machine specifics.
The inputs to the analyses tool 124 are any numerical control language, and the machine parameters for an initial machine conditions may be optionally included. The analyses tool 124 can be used in a single line of numerical control language, in a section of a numerical control language file, or in one or several numerical control language files. The analyses tool 124 analyzes the numerical control language line-by-line and generates information after any motion command, which in an exemplary embodiment is referred to as a node.
The information available at every node includes the state of the machine, the elapsed time for the motion command, and this information can be used for path/trajectory planning and simulations.
An overview of the process of the present disclosure is provided as follows:
The process and method of the present disclosure offers several advantages, including but not limited to three-dimensional printing having a numerical control language with less travel moves which leads to higher throughput and less stringing. The process and method of the present disclosure can also be used to compare files from different slicers, as well as settings that can be changed to decrease a travel time, for example when the extruder is not printing. The process and method of the present disclosure also allows a user to identify an extrusion rate to adjust an extruder temperature. Statistics that can be further obtained for analysis and optimization are extruder velocities, XYZ velocities, average velocities, temperatures, segment lengths, segments distribution and the like. The analysis and optimization of the numerical control language will further yield improved machine performance and part quality. Further, a time required to develop the process parameters to print a part is decreased because it is possible to detect problems and improve the numerical control language before printing a part.
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.
This application claims priority to U.S. Application No. 63/081,640 filed on Sep. 22, 2020, the teachings of which are incorporated herein by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US21/51040 | 9/20/2021 | WO |
Number | Date | Country | |
---|---|---|---|
63081640 | Sep 2020 | US |