Systems and methods for predictive tool path planning for additive manufacturing of functionally graded materials
Patent Information
- Application Number
- EP2023805253
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-13
- Filing Date
- 2023-10-13
- Publication Date
- 2025-10-22
AI Technical Summary
Current additive manufacturing techniques for functionally graded materials (FGMs) face challenges such as limitations in gradient control, high energy consumption, hazardous byproducts, and instability, particularly due to immature printing hardware that struggles with rapid and accurate material transitions, leading to increased build time and material waste.
A predictive tool path planning method using a control system that adjusts the mixing ratio in real-time to generate optimized G-code for FGMs, incorporating a look-ahead routine and purge routine to minimize material waste and ensure accurate gradient transitions, allowing for consistent line spacing and orientation adjustments to follow the contours of the gradient.
This approach enables efficient and accurate printing of FGMs by optimizing the mixing ratio and reducing material waste, allowing for uninterrupted dispensing and precise control of gradients, thereby improving the overall printing process and reducing build time.
Smart Images

Figure 1.1
Abstract
Description
SYSTEMS AND METHODS FOR PREDICTIVE TOOL PATH PLANNING FOR ADDITIVE MANUFACTURING OF FUNCTIONALLY GRADEDMATERIALSREFERENCE TO GOVERNMENT RIGHTS
[0001] This invention was made with United States government support under Contract number #160810 (Software for Automated Slicing of 3D Models for Additive Manufacturing of Functionally Graded Materials) awarded by the United States Army. The United States government has certain rights in the invention.CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of and priority to U.S. Provisional Patent Application No. 63 / 432.220, filed December 13, 2022, which is incorporated herein by reference in its entirety.BACKGROUND
[0003] A functionally-graded material (FGM) is a structure that gradually transitions between different types of materials as a function of position. FGMs naturally give rise to different kinds of physical mechanisms and are of interest in a large variety of applications including organ and tissue transplants in biomedical research, thermal shielding in aerospace technologies, armor and munitions, and sensors, fibers, and dielectrics in electronic and electromagnetic applications.
[0004] Historically, manufacturing these devices was limited to gaseous methods of deposition using chemical vapors, centrifuging liquids, or aligning metallic powders and sintering them. However, these techniques led to problems such as limitations in the resultant gradients and part geometries, high-energy consumption, hazardous byproducts, and instability in the material itself.
[0005] With the potential offered hy additive manufacturing (AM) to build parts with FGMs, research and interest has increased significantly in recent years. Advances in additive manufacturing have enabled the rapid prototyping and development of some limited types of FGMs while reducing the negative aspects of traditionally manufacturing FGMs. Processes being studied include fused filament fabrication, stereolithography, ink-jetting, and selective laser sintering, and directed energy deposition.
[0006] To build FGMs using AM, there have been multiple attempts to provide algorithms and software to design and plan out processes for depositing mixed materials. One such example is where tool paths are generated using a machine learning algorithm normally used in robotics path planning. The algorithm recognizes that certain regions of FGMs are structurally unstable, and avoids these regions in a similar way a robot would avoid an obstacle while moving. Another example is where paths based on stochastic models and printing parameters to avoid undesirable areas where FGMs are unstable. It would be desirable to provide a system and method that fulfills the need for a predictive measuring tool which is required to fully realize a properly graded path could be implemented for arbitrary types of FGMs.
[0007] Further, current printing hardware for manufacturing functionally graded materials (FGMs) is immature and primitive. Of primary concern is the volume of material that resides between where the materials are being mixed and where they are being dispensed. When this volume is large, it will take a long time to switch between two mix ratios and it becomes difficult to accurately control the transition. Until printing hardware can be improved, the only solution that currently exists is purging the volume of material whenever it is desired to change the mix ratio. This dramatically slows down the build time and wastes a lot of material. A more sophisticated approach is needed.SUMMARY
[0008] The present application generally described herein fulfills the need for a predictive measure to fully realize a properly graded path could be implemented for arbitrary types of FGMs by providing a method of predicting a graded path for use with FGMs. In one example, the presented process is implemented using a direct-write dispensing method, however, it is contemplated that the method could be implemented to work with any AM process capable of mixing a plurality of materials.
[0009] The present application generally provides for a control system configured to vary the orientation of the write paths within a layer to follow the contours of the gradient of an FGM part. The present teaching provide for using fused filament fabrication (FFF).
[0010] The present application generally provides for a method of determining and / or applying a generalized gradient to a three-dimensional model and generating an appropriate G-code to predictively dispense the correct material according to the gradient. The methods described herein balance the amount of wasted material and the resolution of the gradient realized in the print by defining a general gradient throughout a three-dimensional part, slicing the three-dimensional model to generate a single G-code file with FGM capabilities, and printing the material by controlling a printer to mix and dispense two different viscous materials corresponding to the desired gradient. The present application further provides for a process of volume compensation of material that resides between the mixer and the tip of the dispenser of the printer by adjusting the mixing ratio at the correct time before the material is dispensed so that a layer can be printed with uninterrupted dispensing.
[0011] The present teachings further provides for incorporating spatially-variant write paths into the systems and methods (e.g., with the use of OmniSlice™) in order to print along thecontours of the material gradient where the mix ratio is constant. For anything other than simple linear gradients, this will require the orientation of the lines to vary across a layer. Using conventional path planning methods, this implies the spacing between the lines would also have to be varied. However, it may be preferable to maintain consistent spacing of the lines despite their orientation being spatially varied. Since a consistent line space is needed, utilizing a control system capable of varying any set of geometric properties of a periodic structure while keeping others constant. In the current application, the periodic structure is the array of lines that define the toolpaths for building a part via 3D printing. The control system for spatially-variant lattices (SVLs) will be modified to generate write paths that follow the contours of the gradient of the FGM while simultaneously keeping a consistent spacing between lines.
[0012] In another aspect of the disclosure, a method of planning a tool path for three- dimensional printing an object with a 3D printer by applying functionally-graded material. The method includes providing a three-dimensional model of an object to be printed with a plurality of materials, the plurality of materials including at least a first material and at least a second material. The method also includes defining a gradient path for a material gradient through the plurality of materials to follow along the three-dimensional model of the object. The method further includes defining a mathematical profile comprising a plurality of points of the material gradient for the plurality of materials along the gradient path. The method further includes assigning a mix ratio for the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path. The method further includes calculating each mix for the plurality of materials at each of the plurality of points throughout an entire volume of the object. The method further includes calculating a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing. Themethod further includes determining a lag volume of when the 3D printer begins commanding at least one material from the plurality of materials at a mixing device to when that mix ratio is dispensed for printing and providing a look-ahead routine to implement each mix ratio for the plurality of materials as the object is printed.
[0013] In another aspect of the disclosure, a method of planning a tool path for three- dimensional printing an object with a 3D printer by applying functionally-graded material. The method includes providing a three-dimensional model of an object to be printed with a plurality of materials, the plurality of materials including at least a first material and at least a second material. The method also includes defining a gradient path for a material gradient for the plurality of materials to follow through the three-dimensional model of the object. The method further includes defining a mathematical profile comprising a plurality of points of the material gradient for the plurality of materials along the gradient path. The method further includes assigning a mix ratio for the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path. The method further includes calculating each mix ratio between for the plurality of materials at each of the plurality of points throughout an entire volume of the object. The method further includes calculating an infill orientation of the object to be printed to minimize a rate at which each mix ratio is required to change as the plurality of materials are dispensed. The method further includes calculating a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing.
[0014] In yet another aspect of the disclosure, a system for 3D printing is provided. The system includes a three-dimensional printing device configured to mix and print a plurality of materials including at least a first material and at least a second material. The system further includes acontrol system operatively connected with the three-dimensional printing device. The control system is configured to provide a three-dimensional model of an object to be printed with the plurality of materials. The control system is further configured to define a gradient path for a material gradient of the plurality of materials to follow through the three-dimensional model of the object. The control system is further configured to define a mathematical profile comprising a plurality of points of the material for the plurality of materials along the gradient path. The control system is further configured to assign a mix ratio of between for the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path. The control system is further configured to calculate each mix ratio for the plurality of materials at each of the plurality of points throughout an entire volume of the object. The control system is further configured to calculate a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing. The control system is further configured to calculate an infill orientation of the object to be printed to minimize a rate at which each mix ratio is required to change as the plurality of materials are dispensed. The control system is further configured to determine a lag volume of when the three-dimensional printing device begins commanding at least one material of the plurality of materials at a mixing device to when that mix ratio is dispensed for printing and provide a look-ahead routine to implement each mix ratio for the plurality of materials as the object is printed.BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Advantages of the present disclosure will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings.
[0016] Figure 1 illustrates one example of a gradient path that defines the direction of the gradient.
[0017] Figure 2 illustrates several examples of different types of gradient profiles.
[0018] Figures 3 illustrates example cube models with different gradient profiles along a straight line.
[0019] Figures 4A illustrates an arbitrary gradient applied to an arbitrary tool path.
[0020] Figure 4B illustrates a tool path aligned to the isocontours of the gradient.
[0021] Figures 5 illustrates one example of a look-ahead routine.
[0022] Figure 6 illustrates flow chart showing the g-code generation.
[0023] Figure 7 shows one example of a g-code with the routine shown in Figure 6.
[0024] Figure 8 illustrates one example of a generated part next to the excess waste material when the present teachings are not implemented.
[0025] Figure 9A and 9B show examples of horizontal gradient application with look-ahead and transition processes implemented.
[0026] Figures 10A and 10B illustrate examples of improperly printed parts in the absence of the present teachings.
[0027] Figure 11 illustrates an example sequence of steps to generate spatially-variant write paths along the contours of the gradient.
[0028] Figure 12 illustrates an example sequence of steps to generate spatially-variant write paths.
[0029] Figure 13 is a colorized equivalent of Figure 2.
[0030] Figure 14 is a colorized equivalent of Figure 3.
[0031] Figures 15A and 15B are colorized equivalents of Figures 4A and 4B.
[0032] Figure 16 is a colorized equivalent of Figure 5.
[0033] Figure 17 is a colorized equivalent of Figure 8.
[0034] Figures 18 A and 18B are colorized equivalents of Figures 9A and 9B .
[0035] Figures 19A and 19B are colorized equivalents of Figures 10A and 10B.
[0036] Figure 20 is a colorized equivalent of Figure 11.
[0037] Figure 21 is a colorized equivalent of Figure 12.DETAILED DESCRIPTION
[0038] Several examples have been discussed in the foregoing description. However, the examples discussed herein are not intended to be exhaustive or limit the invention to any particular form. The terminology that has been used is intended to be in the nature of words of description rather than of limitation. Many modifications and variations are possible in light of the above teachings and the invention may be practiced otherwise than as specifically described.
[0039] The present teachings provide for a system and method of controlling the system to predict and apply direct-write additive manufacturing with functionally-graded materials.
[0025] The present teachings provide for a printing system including a control system connected a printing system. The printing system includes a three-dimensional printer including two or more material storage containers (e.g., hopper), one or more augers / pumps, a dispensing tip operatively connected with the one or more pumps to dispense material from the material storage containers. The control system includes one or more controllers configured to control the operation of the printing system, which will be further described below.
[0026] The printing system includes one or more controllers, or other type of control unit, is provided to control the printing system. The controller may comprise one or more computers, or any other suitable form of controller that directs operation of the printing system and motion ofthe dispensing tip. The controller may have a central processing unit (CPU) and / or other processors, memory, and storage (not shown). The controller is loaded with software as described below, such as OmniSlice™. The processors could include one or more processors to control operation of the printing system. The processors can be any type of microprocessor, multiprocessor, and / or multi-core processing system. The controller may additionally, or alternatively, comprise one or more microcontrollers, field programmable gate arrays, systems on a chip, discrete circuitry, and / or other suitable hardware, software, or firmware that is capable of carrying out the functions described herein. The term processor is not intended to limit any embodiment to a single processor. The printing system may also comprise a user interface UI with one or more displays and / or input devices (e.g., triggers, push buttons, foot switches, keyboard, mouse, microphone (voice-activation), gesture control devices, touchscreens, etc.).
[0027] In some examples, the 3D printer is a modified Lulzbot Taz 6., which is configured in with three stepper motors that control two pistons and a mixing auger. The pistons feed viscous material via plastic tubes that connect to the auger’s housing. The housing and the auger may be printed with polyethylene terephthalate glycol (PETG) filament to allow for the simple and low- cost swapping of parts.
[0028] An Arduino controller may be connected via I2C to the Lulzbot’ s control board for providing the commands for the external stepper motors. The Arduino intercepts the input G-code file and parses its text to control the stepper motors analogous to a typical FDM printer. It does this by accepting a single “R” flag in the G-code file followed by a value between 0 and 1 that determines the mix ratio to be dispensed. A desired mix-ratio of 25% material A and 75% material B would be represented as “RO.25” in the G-code. The stepper motors for the pistons and the auger are driven by completing a certain number of turns according to the mix ratio. Following theprevious example, for a mix ratio of 25% material A and 75% material B, for every turn of piston A, piston B will turn three times.
[0029] Further, the contents of US Patent Publication 10,824,045 titled “Spatially variant photonic crystal apparatus, methods, and applications,” filed June 17, 2016, are hereby incorporated by reference in its entirety.
[0030] In certain embodiments, a system for 3D printing is provided. The system includes a three-dimensional printing device configured to mix and print a plurality of materials including at least a first material and at least a second material. The system further includes a control system operatively connected with the three-dimensional printing device. The control system is configured to provide a three-dimensional model of an object to be printed with the plurality of materials. The control system is further configured to define a gradient path for a material gradient for the plurality of materials to follow through the three-dimensional model of the object. The control system is further configured to define a mathematical profile comprising a plurality of points of the material gradient for the plurality of materials along the gradient path. The control system is further configured to assign a mix ratio for the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path. The control system is further configured to calculate each mix ratio for the plurality of materials at each of the plurality of points throughout an entire volume of the object. The control system is further configured to calculate a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing. The control system is further configured to calculate an infill orientation of the object to be printed to minimize a rate at which each mix ratio is required to change as the plurality of materials are dispensed. The control system is further configured to determine a lag volume of when the three-dimensional printingdevice begins commanding at least one material of the plurality of materials at a mixing device to when that mix ratio is dispensed for printing and provide a look-ahead routine to implement each mix ratio for the plurality of materials as the object is printed.
[0031] The computational routines discussed herein were all incorporated into the OmniSlice™ slicing software developed by Kraetonics, LLC. The software offers advanced slicing techniques such as conformal printing, off-axis printing, and hybrid printing of electronics and electromagnetic devices. The architecture of OmniSlice™ makes it easy to incorporate new algorithms and features, including the present work for FGMs.
[0032] It is first necessary to define the desired gradient in a simple and flexible way. The algorithm for generating the gradient went as follows: (1) define a gradient path for the material gradient to follow, (2) define a mathematical profile of the material gradient along the gradient path, and (3) assign a mix ratio to each point in a part based on the gradient at the closest point on the path. The gradient path is created by defining (s), y(s), and z(s) as the variable s progresses from 0 to 1 from the start to the end of the spline, respectively. The functions are defined to control the path of the spline and were to be within the boundaries of the part being printed. Figure 1 shows an example of the gradient path. It should be noted that the spline does not necessarily have to be a straight line. In other words, the spline or mathematical profile may be non-linear.
[0033] Next, the mixing ratio along the length of the spline is defined by the function m(s). This function ranges from 0 to 1 corresponding to a 0% to 100% mixing ratio, respectively, to realize the gradient. The function m(s) is defined over the domain 0 < s < 1 to cover the entire length of the spline through the part. Figures 2 and 13 show different material profiles that can be generated through the function m(s). The material gradient is then assigned to each position along the spline.
[0034] Last, the material mix ratios throughout the entire volume of the part are calculated. The mix ratio at any position inside the part is set equal to the mix ratio that is assigned to the nearest point on the spline. Figures 3 and 14 show various gradients across a cube model where the spline is a straight line connecting one corner of the cube to the opposite corner.
[0035] Simply assigning the gradient information to a model is not sufficient because fails to take into consideration aspects of the printing hardware. In general, there will be a delay between when the printer begins mixing and when the mixed material is dispensed. This results in a lag volume which comes from the volume of space in the mixing auger’s housing that the material travels through before reaching the end of the dispenser. The lag volume, consequently, imposes a limit on how fast the dispensed material can change composition. Algorithms were developed to take these issues into account and optimize the mix ratio dispensing. Optimized gradient control for a print was achieved by combining three routines: (1) a revised infill orientation, (2) a purge routine, and (3) a look-ahead routine.
[0036] A direct gradient assignment to the tool paths can result in paths where the gradient changes too rapidly to print accurately due to the hardware limitation discussed previously. Part (a) of Figure 5 illustrates this issue. As shown in Figure 4a and 15a, the infill direction may be about 45° from the x-axis while the gradient change is vertical along the y axis. In certain embodiments, the infill is substantially perpendicular to the gradient or from 75 to 105 degrees relative to the gradient. The infill orientation may be aligned to the isocontours of the gradient for each slice, such as shown in Figures 4b and 15b. The Part (b) of Figure 5 shows this adjustment where both the infill orientation and the isocontours of the gradient are aligned along the y axis.This practice minimizes how rapidly the mix ratio changes as material is dispensed.
[0037] The purge routine is a maneuver that consists of dispensing material in a waste area away from the part in anticipation of a new mix ratio. The role of the purge is to bring the dispensed material to a certain mix ratio whenever the mix ratio rapidly changes, such as between layers. A user-defined tolerance was incorporated that initiates the routine every time the mixing ratio changes more than the defined tolerance. To execute the purge maneuver, the auger head is moved to the location of a waste area and purges the necessary volume needed to make the transition in mix ratio.
[0038] The routine is essential to achieve a successful print due to the lag volume previously described. For example, the lag volume needed to transition from 100% material A to 100% material B may be 3.2 cm3for the printer used in the present work. This volume was the experimentally measured volume to change between any two mixing ratios since it purges the entire volume contained within the mixing auger’s chamber.
[0039] In conjunction with the purge routine and the infill reorientation, the look-ahead routine is essential for optimized gradient control. The look-ahead routine considers the lag volume of when the printer begins driving the pistons at a certain mix ratio to when that mix ratio is dispensed at the end of the nozzle. Without the look ahead routine, the transition between materials would not be as continuous and accurate as desired. There are three phases during that encompass the look ahead routine: (1) the priming phase, (2) the mid-slice phase, and (3) the end phase. Figure 5 shows the predictive mixing across these three phases.
[0040] During the priming phase, the correct starting mix ratio needs to be loaded into the chamber and be ready at the nozzle to begin dispensing. There are many possibilities of the chamber’s state before starting to print a new layer. Therefore, it is necessary to purge enough material to fill the chamber with fresh material with the starting mix ratio. This amount of materialis the priming volume, and it should he set to at least the value of the lag volume. Once the starting mix ratio is reached, the algorithm looks ahead for any changes in the mix ratio that exceed the predefined tolerance previously described. This predictive mixing ratio is then loaded into the chamber to be printed during the future layer extrusion. Figures 5 and 16 shows this priming step. The initial material is all red and slowly grades to blue. The chamber is therefore primed with a lag volume amount of material with predictive mixtures of materials.
[0041] During the mid-slice phase, Figures 5 and 16, the layer is actively being printed while the material with future mix ratios of the layer is loaded into the chamber. The current material being printed mid layer is purple, while the material being loaded into the chamber is blue. When the end of the current layer material has been reached, the predictive algorithm begins the material preparation for the next slice.
[0042] During the end phase, when the layer is finished printing and the next layer is primed into the mixing auger, the correct material mixture is ensured by purging a small lag volume between the last mix ratio of the previous layer and the starting mix ratio of the next layer to account for variations that may have emerged when priming the material. Once the layer is complete, the printer initiates a purge of this short transition material and the look ahead process repeats, beginning with the priming phase. If there are no other tool paths to be printed, there is no change to the final mix ratio. Figures 5 and 16 shows the final step in the look-ahead routine where the beginning red material of the next slice is prepared ahead of the current blue material. The lag volume that is included to be purged during the priming phase provides enough time to ensure that the starting mix ratio of the next layer material is printed.
[0043] Figure 6 shows the flowchart for how the G-code is written with FGMs included. Figure7 shows a portion of the resulting G-code with the priming and look-ahead routines. The sets ofcommands for each routine are inserted in their corresponding positions as the G-code is being written.
[0044] In section (a) of Figure 6, the priming phase is executed. The command to dispense the initial mix ratio is written followed by the priming volume purge routine. This is shown as PURGE MATERIAL” in Figure 7. The vertices of the tool paths that come next are read and used to calculate the accumulated volume to be dispensed. The mix ratios assigned to each vertex are also read. Two conditions are then tested: (1) if the mix ratio tolerance has been reached, and (2) if the priming volume has been reached. New mix ratio commands are written every time the mix ratio goes beyond the tolerance. It continues to do this until the accumulated volume equals the priming volume. Once this happens, the priming routine is complete and begins to print the layer. This portion of G-code is shown under AUGER PRIME” in Figure 7. At this point, no device tool paths have extruded by the printer.
[0045] In section (b) of Figure 6, the main loop for the mid-slice phase is shown. This part of the routine is straightforward as the vertices of the tool paths are read and written to the G-code. The look ahead routine is executed as outlined in section (c) of Figure 6. The vertex that is one lag volume ahead of the current vertex is read, and the corresponding mix ratio of the future vertex is compared to the mix ratio of the current vertex. A new mix ratio “R” value is written just after the current vertex if the difference is beyond the mix ratio tolerance. If a new layer is detected, the “R” values for the starling mix ratios are written as well. Once the layer is finished, the priming routine initiates and begins the next layer, shown in section (d) of Figure 6. Once the last tool path is reached, the look ahead routine no longer needs to execute and the mix ratio stops being updated.
[0046] Initial testing of the FGM algorithm involved printing small conical devices with a vertical gradient. This meant that there was no change in mix ratio within a single layer, and thatpurging would only happen between slices. The main objective of this print was to see how much material needed to be purged for a full print. Purging during this test was carried out using the baseline 3.2 cm3lag volume for each transition between mix ratios. The mix ratio tolerance was set to 2%, meaning that the material was purged every time the mix ratio changed by 2%. Figures 8 and 17 show the printed device next to the purged material.10047] The lag volume is another parameter that can result in an incorrect gradient change if not set properly. Too small of a lag volume produces a similar issue to a small mix ratio tolerance. The new mix ratios will become too frequent, and again, cause incorrect material mixtures. Too large of a lag volume will cause the gradient to not change quickly enough. This is shown in Figure 10(b) and section (b) of Figure 19 where the blue toothpaste seems to dominate the majority of the disk’s area while never reaching the red section. The value that proved successful was the given 3.2 cm3.
[0048] Tool path planning for FGM devices is essential to build parts with generalized graded profiles. With a proper slicing and planning algorithm, a working FGM device can be printed using a modified auger mixing system on a commercially available Lulzbot Taz 6. Since there was no commercially available software that incorporates general FGMs, the slicer OmniSlice™ was adapted for the task. Finally, fully generalized FGM devices were shown to be printed directly with G-code without manual interaction from the user. Future endeavors include adapting the FGM algorithm to printing fully arbitrary 3D structures to include overhanging features, printing a continuous tool path volumetrically, and printing FGMs with other AM technologies. The algorithms described here can theoretically be extended to printing fully 3D structures provided the correct configurations are in place. To further limit the amount of purged material between material mixtures, a fully 3D structure could be printed from a single continuous line through moreadvanced routing. Finally, other AM technologies can benefit from the algorithms presented in this work to produce FGM devices of other kinds of materials. One example is fused deposition modeling printers that can be fitted with single extrusion, dual filament heads to mix two thermoplastics together. The predictive algorithms can be utilized in the same way to anticipate the lag volume of material to be dispensed as the thermoplastics are mixed together.F0049] Figures Hand 20 illustrates the current teachings with a sharp and dramatic gradient. Part (a) shows the three-dimensional part, the gradient, the spline that defines the gradient, and the layer that will be sliced and processed for this example. The spline is the black curved path shown passing from the lower right part of the cube to the upper left part. Part (b) shows the gradient in a sliced layer extracted from the part. Part (c) shows the lines generated from the ordinary contours of the gradient. The dramatic variation in line spacing throughout the slice makes these lines not feasible to use as line paths. Part (d) shows lines generated using the SVL algorithm and demonstrates a much more consistent line spacing throughout the slice. Part (e) shows the final write path for depositing the layer that was generated from the spatially-variant lines. More typical and more linear gradients will lead to even more consistent line spacing within a layer.
[0050] This task will prototype the algorithm for generating the write paths within a single layer so that they follow the contours of the gradient of the FGM. The SVL algorithm will be used so that the direction of the lines can be varied while simultaneously keeping the spacing between adjacent lines consistent throughout the layer. The algorithm will use the following steps: (1) calculate the gradient of the FGM, (2) use the gradient to define the direction of the lines, (3) generate write paths using the SVL algorithm, (4) connect the lines to minimize line terminations throughout the layer.
[0051] Figures 12 and 21 illustrates the steps of the algorithm implemented in the control system. The first diagram depicts the desired direction for the lines as a function of position through the layer. This comes from the material gradient throughout the part, but in general can be discrete regions or continuously varying. The second diagram in Figures 12 and 21 shows that the ideal lines are discontinuous at the interface between regions that have different line directions. The discontinuities complicate the print considerably and the numerical stop / start depositions will slow down the build, introduce defects into the part, and increase risk of making the print fail. Alternatively, the lines can be generated using the SVL algorithm as shown in the third diagram in the figure. These can be interpreted as write paths to be used in the control system implementing a software such as OmniSlice™ slicing software. The diagram shows a simulated deposition through the layer using SVL write paths.
[0052] Some variation in the line width may still be necessary for extremely nonlinear gradients. Processes will be developed to vary line width and the bounds of how much the line width can be varied will be used by the SVL algorithm. The consequence of a limited range of line widths is that the write paths may deviate slightly from the exact contours.
[0053] While the SVL algorithm greatly enhances the uniformity of line spacing throughout a slice, some variation is still necessary to achieve 100% fill. This task will develop the process to vary line width into order to 100% fill the space between adjacent lines. This may include adjusting dispense rate, height of the print head, layer height and print speed. This task will also quantify the range of line widths that are feasible. This information can be fed into the SVL algorithm in order to create a pattern that can be printed with 100% fill. The present teachings provide for slicing and printing a variety of parts with different gradients.
[0054] The foregoing description is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses. The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims. It should be understood that one or more steps within a method may be executed in different order (or concurrently) without altering the principles of the present disclosure. Further, although each of the examples is described above as having certain features, any one or more of those features described with respect to any example of the disclosure can be implemented in and / or combined with features of any of the other examples, even if that combination is not explicitly described. In other words, the described examples are not mutually exclusive, and permutations of one or more examples with one another remain within the scope of this disclosure.
[0055] Spatial and functional relationships between elements (for example, between controllers, circuit elements, semiconductor layers, etc.) are described using various terms, including “connected,” “engaged,” “coupled,” “adjacent,” “next to,” “on top of,” “above,” “below,” and “disposed.” Unless explicitly described as being “direct,” when a relationship between first and second elements is described in the above disclosure, that relationship can be a direct relationship where no other intervening elements are present between the first and second elements, but can also be an indirect relationship where one or more intervening elements are present (either spatially or functionally) between the first and second elements.
[0056] As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A OR B OR C), using a non-exclusive logical OR, and should not be construed to mean“at least one of A, at least one of B, and at least one of C.” The term subset does not necessarilyrequire a proper subset. In other words, a first subset of a first set may be coextensive with (equal to) the first set.
[0057] In the figures, the direction of an arrow, as indicated by the arrowhead, generally demonstrates the flow of information (such as data or instructions) that is of interest to the illustration. For example, when element A and element B exchange a variety of information but information transmitted from element A to element B is relevant to the illustration, the arrow may point from element A to element B. This unidirectional arrow does not imply that no other information is transmitted from element B to element A. Further, for information sent from element A to element B, element B may send requests for, or receipt acknowledgements of, the information to element A.
[0058] In this application, including the definitions below, the term “controller” may be replaced with the term “circuit.” The term “controller” may refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); a digital, analog, or mixed analog / digital discrete circuit; a digital, analog, or mixed analog / digital integrated circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor circuit (shared, dedicated, or group) that executes code; a memory circuit (shared, dedicated, or group) that stores code executed by the processor circuit; other suitable hardware components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip.
[0059] The controller(s) may include one or more interface circuits. In some examples, the interface circuit(s) may implement wired or wireless interfaces that connect to a local area network (LAN) or a wireless personal area network (WPAN). Examples of a LAN are Institute of Electrical and Electronics Engineers (IEEE) Standard 802.11-2016 (also known as the WIFI wireless networking standard) and IEEE Standard 802.3-2015 (also known as the ETHERNET wirednetworking standard). Examples of a WPAN are the BLUETOOTH wireless networking standard from the Bluetooth Special Interest Group and IEEE Standard 802.15.4.
[0060] The controller may communicate with other controllers using the interface circuit(s). Although the controller may be depicted in the present disclosure as logically communicating directly with other controllers, in various configurations the controller may actually communicate via a communications system. The communications system includes physical and / or virtual networking equipment such as hubs, switches, routers, and gateways. In some configurations, the communications system connects to or traverses a wide area network (WAN) such as the Internet. For example, the communications system may include multiple LANs connected to each other over the Internet or point-to-point leased lines using technologies including Multiprotocol Label Switching (MPLS) and virtual private networks (VPNs).
[0061] In various configurations, the functionality of the controller may be distributed among multiple controllers that are connected via the communications system. For example, multiple controllers may implement the same functionality distributed by a load balancing system. In a further example, the functionality of the controller may be split between a server (also known as remote, or cloud) controller and a client (or, user) controller.
[0062] Some or all hardware features of a controller may be defined using a language for hardware description, such as IEEE Standard 1364-2005 (commonly called “Verilog”) and IEEE Standard 10182-2008 (commonly called “VHDL”). The hardware description language may be used to manufacture and / or program a hardware circuit. In some configurations, some or all features of a controller may be defined by a language, such as IEEE 1666-2005 (commonly called“SystemC”), that encompasses both code, as described below, and hardware description.
[0063] The term code, as used above, may include software, firmware, and / or microcode, and may refer to programs, routines, functions, classes, data structures, and / or objects. The term shared processor circuit encompasses a single processor circuit that executes some or all code from multiple controllers. The term group processor circuit encompasses a processor circuit that, in combination with additional processor circuits, executes some or all code from one or more controllers. References to multiple processor circuits encompass multiple processor circuits on discrete dies, multiple processor circuits on a single die, multiple cores of a single processor circuit, multiple threads of a single processor circuit, or a combination of the above. The term shared memory circuit encompasses a single memory circuit that stores some or all code from multiple controllers. The term group memory circuit encompasses a memory circuit that, in combination with additional memories, stores some or all code from one or more controllers.
[0064] The term memory circuit is a subset of the term computer-readable medium. The term computer-readable medium, as used herein, does not encompass transitory electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term computer-readable medium may therefore be considered tangible and non-transitory. Non-limiting examples of a non-transitory computer-readable medium are nonvolatile memory circuits (such as a flash memory circuit, an erasable programmable read-only memory circuit, or a mask read-only memory circuit), volatile memory circuits (such as a static random access memory circuit or a dynamic random access memory circuit), magnetic storage media (such as an analog or digital magnetic tape or a hard disk drive), and optical storage media (such as a CD, a DVD, or a Blu-ray Disc).
[0065] The apparatuses and methods described in this application may be partially or fully implemented by a special purpose computer created by configuring a general purpose computer toexecute one or more particular functions embodied in computer programs. The functional blocks and flowchart elements described above serve as software specifications, which can be translated into the computer programs by the routine work of a skilled technician or programmer.
[0066] The computer programs include processor-executable instructions that are stored on at least one non-transitory computer-readable medium. The computer programs may also include or rely on stored data. The computer programs may encompass a basic input / output system (BIOS) that interacts with hardware of the special purpose computer, device drivers that interact with particular devices of the special purpose computer, one or more operating systems, user applications, background services, background applications, etc.
[0067] The computer programs may include: (i) descriptive text to be parsed, such as HTML (hypertext markup language), XML (extensible markup language), or JSON (JavaScript Object Notation), (ii) assembly code, (iii) object code generated from source code by a compiler, (iv) source code for execution by an interpreter, (v) source code for compilation and execution by a just-in-time compiler, etc. As examples only, source code may be written using syntax from languages including C, C++, C#, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, JavaScript®, HTML5 (Hypertext Markup Language 5th revision), Ada, ASP (Active Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, MATLAB, SENSORLINK, and Python®.EXAMPLES
[0068] To illustrate the benefits of the disclosure, in some examples, the raw materials used for printing comprised a food coloring mixed into Colgate Optic White toothpaste to make two batches of two different colors. Toothpaste was used since it has a similar viscosity to certain ceramic pastes that would be used to build a functional FGM part, is non-toxic, inexpensive, easyto work with, and easy to clean. Food coloring was used to visually inspect the composition of the mixed materials. Red and blue colors were chosen due to their contrasting hues and simple inspection after mixing the two. It is contemplated that the systems and methods described herein are capable of being implemented with two or more, three or more, ten or more, and / or any number of materials to be used by a printing system.
[0069] To prepare the materials, the toothpaste was mixed with the food coloring in separate containers and loaded into two syringes. Care was taken to ensure each loaded syringe did not have any air bubbles suspended in the toothpaste. Couplings to plastic tubes were attached to the ends of the syringes. After loading the syringes, the Arduino’s serial monitor was used to move the pistons to a raised position. The syringes were then placed into the holders and screwed tight to the printer. To load the materials into the chamber, the serial monitor was used to push the pistons down and load enough material into the tubes until it reached the mixing chamber.
[0070] Several examples have been discussed in the foregoing description. However, the examples discussed herein are not intended to be exhaustive or limit the invention to any particular form. The terminology that has been used is intended to be in the nature of words of description rather than of limitation. Many modifications and variations are possible in light of the above teachings and the invention may be practiced otherwise than as specifically described.
[0071] Several individual line segments show rapid change from one material to the next. The rapid change in gradient implies that the volume needed to print these lines is less than the lag volume needed to change a mix ratio. To address this issue, the infill orientation was aligned to the isocontours of the gradient for each slice. The Part (b) of Figures 5 and 16 shows this adjustment where both the infill orientation and the isocontours of the gradient are aligned along the y axis. This practice minimizes how rapidly the mix ratio changes as material is dispensed.
[0072] Single-layer disks with a horizontal gradient were printed to demonstrate the look- ahead and transition capabilities from one mix ratio to another within a single slice. Figure 9 shows two single-layer disks with a functional gradient. The gradient was set to change from 100% red- colored toothpaste to 100% blue-colored toothpaste for both attempts. The mix ratio tolerance for both prints were set at 25%. Part (a) depicts a disk with 1.0 inch diameter. Pail (b) depicts a 3.0 inch diameter disk. Each print had a different set of toothpaste and food coloring prepared and consequently show changes in their hue.Findings and Limits
[0073] A recurring drawback that was encountered when testing the look ahead was the need to purge a lot of material to accurately realize fast gradients. In some examples, a volume of 3.2 cm3was used as the amount of material to ensure a change from one gradient to another. This large amount of material resulted in a large amount of material needing to be purged before the desired mixing ratio was reached. To reduce the amount of material needed to be purged before the slice begins, it is recommended for future work to begin the next slice at a point where the mixing ratio is the most similar to the previous slice.
[0074] Another recommendation for limiting the amount of material needed to be purged is to determine the volume needed to change between two different mixing ratios. In some examples, the volume measured while changing from 100% material A to 100% material B may be 3.2 cm3. It is very likely that this is only the maximum volume needed to purge between routines, and changing between mix ratios that are less different may require less volume. Determining the range of volumes needed to purge between two arbitrary mixing ratios may further reduce the amount of waste material during a full print.
[0075] During testing, it was observed that there seemed to be a threshold as to how fast the print speed could be set. This was due to the fixed speed of the pistons’ stepper motors. The Arduino driven pistons operate on a fixed speed step-based system rather than a variable pressurebased system. Their feed rates are not affected by a change in the printing speed. The static rate of the pistons gives limited range for the overall feed rate of the auger, both when it is printing material on the bed and when it is purging material on the side. If the auger feed rate is too fast, the material will dispense faster than the pistons are feeding the auger. This empties the auger too quickly. If the auger feed rate is too slow, the auger will back flow with material, resulting in an unknown mix ratio. Through experimentation, the printing speed that was found to work the best was around 5 mm / s considering the limitations of the hardware. This discrepancy between the print speed and the material mixing speed should also be addressed in the software.
[0076] It was found that the most important parameters to configure were the mix ratio tolerance and the lag volume. Improper configuration of either of these values caused the gradient to be skewed, as depicted in Figure 10a and section (a) of Figure 19. In contrast, proper configuration produced the correct gradient as shown in Figures 9a, 9b and 18.
[0077] Considering the mix ratio tolerance, too small of a tolerance called for the pistons to begin dispensing new mix ratios very frequently. This caused the mixed material to not be fully prepared before printing, resulting in an incorrect mixture being dispensed. This was due to the static feed rate of both pistons previously described. The mix ratio of the dispensed material is ultimately dependent on the amount of turns the stepper motors complete. Since the feed rates for both stepper motors are the same, both materials are fed into the auger at the same rate for a period of time. If the mix ratio tolerance is too small and the print speed is too high, the pistons and the auger will not be able to complete a proper mix ratio before performing the next look ahead,resulting in an incomplete transition. Figure 10(a) shows an example of red toothpaste never completing the transition to blue toothpaste. Considering this fact, the mix ratio tolerance that seemed to work well with a print speed of 5 mm / s and the yield for successful prints was 25%.
Claims
CLAIMSWhat is claimed is:
1. A method of planning a tool path for three-dimensional printing an object with a 3D printer by applying a functional gradient to the tool path to print the object with a functionally-graded material, the method comprising: providing a three-dimensional model of the object to be printed with a plurality of materials, the plurality of materials including at least a first material and at least a second material; defining a gradient path for a material gradient for the plurality of materials to follow through the three-dimensional model of the object; defining a mathematical profile comprising a plurality of points of the material gradient for the plurality of materials along the gradient path; assigning a mix ratio of between the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path; calculating each mix ratio for the plurality of materials at each of the plurality of points throughout an entire volume of the object; calculating a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing; and determining a lag volume of when the 3D printer begins commanding at least one material of the plurality of materials at a mixing device to when that mix ratio is dispensed for printing and providing a look-ahead routine to implement each mix ratio between the plurality of materials as the object is printed.
2. The method as set forth in claim 1 wherein the look-ahead routine includes a priming phase to prepare the 3D printer to dispense a mix ratio at a first point of the plurality of points along the mathematical profile.
3. The method as set forth in claim 1 or 2 wherein the mathematical profile is a linear expression.
4. The method as set forth in claim 1 or 2 wherein the mathematical profile is a nonlinear function.
5. The method as set forth in one of claims 1 to 4 further comprising calculating an infill orientation of the object to be printed to minimize a rate at which each mix ratio is required to change as the first material and the second material are dispensed.
6. The method as set forth in claim 5 wherein the infill orientation is substantially perpendicular to the gradient.
7. The method as set forth in claim 6 wherein the infill orientation is from 75 to 105 degrees relative to the gradient.
8. The method as set forth in claim 5 wherein the infill orientation is substantially parallel to the gradient.
9. The method as set forth in any one of claims 1 to 8 further comprising determining material mix ratios throughout the entire volume of the object by determining a nearest point of the gradient path and assigning the mix ratio to a particular volume equal to the mix ratio of the nearest point of the gradient path.
10. A method of planning a tool path for three-dimensional printing an object with a 3D printer by applying a functional gradient to the tool path to print the object with a functionally - graded material, the method comprising: providing a three-dimensional model of an object to be printed with a plurality of materials, the plurality of materials including at least a first material and at least a second material; defining a gradient path for a material gradient for the plurality of materials to follow through the three-dimensional model of the object; defining a mathematical profile comprising a plurality of points of the material gradient for the plurality of materials along the gradient path; assigning a mix ratio between the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path; calculating each mix ratio between the plurality of materials at each of the plurality of points throughout an entire volume of the object;calculating an infill orientation of the object to be printed to minimize a rate at which each mix ratio is required to change as the plurality of materials arc dispensed; and calculating a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing.
11. The method as set forth in claim 10 wherein the infill orientation is substantially perpendicular to the gradient.
12. The method as set forth in claim 11 wherein the infill orientation is from 75 to 105 degrees relative to the gradient.
13. The method as set forth in claim 10 wherein the infill orientation is substantially parallel to the gradient.
14. The method as set forth in any one of claims 10 to 13 further comprising determining a lag volume of when the 3D printer begins commanding one or more of the first material and the second material at a mixing device to when that mix ratio is dispensed for printing and providing a look-ahead routine to implement each mix ratio between the first material and the second material as the object is printed.
15. The method as set forth in claim 14 wherein the look- ahead routine includes a priming phase to prepare the 3D printer to dispense a mix ratio at a first point of the plurality of points along the mathematical profile.
16. A system for 3D printing comprising: a three-dimensional printing device configured to mix and print a plurality of materials including at least a first material and at least a second material; and a control system operatively connected with the three-dimensional printing device, the control system configured to: provide a three-dimensional model of an object to be printed with the plurality of materials;define a gradient path for a material gradient between the plurality of materials to follow through the three-dimensional model of the object; define a mathematical profile comprising a plurality of points of the material gradient through the plurality of materials along the gradient path; assign a mix ratio of for the plurality of materials to each of the plurality of points based on the material gradient at a closest point on the gradient path; calculate each mix ratio for the plurality of materials at each of the plurality of points throughout an entire volume of the object; calculate a purge routine to dispense at least one material of the plurality of materials to bring each mix ratio into a user defined tolerance before dispensing; calculate an infill orientation of the object to be printed to minimize a rate at which each mix ratio is required to change as the plurality of materials are dispensed; and determine a lag volume of when the three-dimensional printing device begins commanding at least one material of the plurality of materials at a mixing device to when that mix ratio is dispensed for printing and provide a look-ahead routine to implement each mix ratio for the plurality of materials as the object is printed.
17. The system as set forth in claim 16 wherein the infill orientation is substantially perpendicular to the gradient.
18. The system as set forth in claim 17 wherein the infill orientation is from 75 to 105 degrees relative to the gradient.
19. The system as set forth in claim 16 wherein the infill orientation is substantially parallel to the gradient.
20. The system as set forth in claim 16 wherein the look-ahead routine includes a priming phase to prepare the three-dimensional printing device to dispense a mix ratio at a first point of the plurality of points along the mathematical profile.