August 31st, 2020
In our last blog post, we provided an overview of Foundry, Digital Alloys’ software platform for implementing Joule Printing™ in production applications and delivering efficient operation of printers at factory-scale. In this post, we provide details on Build Planner, the software module that converts a part design file to instructions that tell the Joule Printer how to create a part. Build Planner includes a proprietary interactive “slicer” and a build simulator.
In 3D printing, a slicer program converts digital 3D CAD models into printing instructions for building an object. 3D printers create objects by adding material layer-by-layer. Slicer software “slices” 3D models into horizontal layers and then generates printer instructions for building each of the layers. For technologies like Joule Printing™ or Fused Deposition Modeling (FDM) printing that deposit material in lines, the instructions are G-code that describes a tool path as well as printing parameters such as speed, process power and temperature.
G-code is familiar to those who use traditional computer-aided manufacturing (CAM). In conventional machining, CAD drawings are translated into machine commands that control cutting machine movements. The predominant language for controlling these types of machines is also G-code.
When we started Digital Alloys, our preference was to use a pre-existing slicer – keeping with our philosophy of using off-the-shelf solutions as much as possible. However, the slicers available had been designed for managing 3D plastic printers that use a Fused Deposition Modeling (FDM) process. In FDM, the creation of an optimal tool path is concerned primarily with geometric parameters – such as model scaling, object density/hollowness (“infill”), thickness, orientation, layer height and choosing the shortest tool path to create each part layer. The physics of depositing molten plastic do not have a strong impact on the tool path.
In Joule printing™ (and most other metal 3D printing processes), one must consider the process physics – including material deposition rate and input energy – when creating a tool path. For example, imagine a part layer that consists of three pillars in a triangular pattern. After printing the first pillar, the slicer must decide which of the other two pillars should be printed next. Existing slicers might pick whichever pillar is closest to the current nozzle location, which works well enough for FDM systems. But for Joule Printing factors such as the quick dissipation of heat and the costs of starting and stopping a line might result in non-optimal toolpaths that require more energy and time to print than necessary.
Another limitation of existing slicers was their ability to manipulate print process parameters. Existing solutions generate parameters in a global manner that applies to the entire part or to predetermined regions. Changing one or more G-code parameters in an arbitrary region of the part requires time intensive manual editing of G-code.
What was needed was a slicer that is:
- an automated tool path generator that produces G-code optimized for the Joule Printing™ process;
- an interactive editor that allows for fine-grained adjustment of the toolpath at every segment of the part, while minimizing tedious, time-consuming edit tasks;
- a build simulator that makes it easy to verify new G-codes; and
- a platform that allows for future automation of optimization tasks.
This is what we created in Build Planner. It also includes a build simulator to ease the task of verifying G-codes prior to 3D printing.
Build Planner includes several patent-pending inventions including: an optimized slicer that optimizes toolpaths to minimize cost based on key factors such as print time and energy efficiency; and an interactive slicer that allows fine-grained control of parameters for arbitrary sections of a part based on a hierarchical structure.
The use of Build Planner for a new part begins using an automatic, optimized tool path generator that involves specifying a cost function that evaluates the total cost of a toolpath. This cost represents real-world costs to print a given toolpath, and includes factors such as print time, energy input, and consumable usage. For many parts, the initial tool path generated is sufficient for successful part printing. (Over time, most parts will use the automatically generated tool path without any further edits).
In the next step, the operator can use the interactive slicer to override or modify various parameters at a very fine-grained level. To avoid making the process too tedious, the slicer uses a hierarchical structure (see Figure 2 below) such that if a user does not specify parameter values for a given section they default to the values of the parent section.
For example, consider the following hierarchical structure: a Job represents a single toolpath file of objects filling some or all of the available print volume, and is made up of one or more Parts. A Part represents a single object being printed, and is made up of one or more horizontal Slices. A Slice is made up or one or more Segments. A Segment represents the portion of a Slice that can be printed with one continuous deposition (in other words, you could color in the entire patch without lifting your pen).
With this structure in place, the user would input default parameters for an entire Job. From there, the user could override those parameters at any other branch in the hierarchical tree. When the slicer is generating the toolpath and needs to query, for example, the speed of a given Segment, it will first check if the Segment has an override for the ‘speed’ field. If not, it will check the Slice to which the Segment belongs. It will continue traversing up the hierarchy until it reaches a level that has a value for ‘speed’, and use that value to calculate the toolpath for the Patch. This simple hierarchical override technique gives the user extremely fine-grained control over the toolpath being generated, without requiring unnecessary or tedious work.
The tools for editing G-code are exposed through a visual user interface (UI) that dynamically updates to reflect changes in the tool path. A unique aspect of the UI is the ability to view multiple slices of the part in a side-by-side view. This view allows the user to quickly compare adjacent layers.
The software includes a History system that maintains a list of user operations (known as commands) performed on the model and provides the ability to undo/redo them so that the user can maintain a revision history and roll-back capability. History also allows a series of operations to be saved as a script that can be reused for other jobs or CAD files.
The Build Planner also includes powerful features such as integrated g-code protocol documentation and validation. Once a G-code is complete, the Build Simulator allows a rapid simulation of the build that makes it easy to verify a tool path.
Build Planner delivers what was needed, an integrated tool set that allows automated creating of G-code for most parts, and a simple rapid way to further edit and optimize G-codes. Build Planner is in use by our R&D team today, and they are able to create optimal G-codes in less than an hour. We look forward to sharing Build Planner in the future.
Please check out other posts in our blog series:
Learn about the technology behind our process:
Digital Alloys is committed to providing the technology and expertise manufacturers need to use metal additive manufacturing in production — enabling them to save time, shrink costs, and produce valuable new product.