3D Printing | Industrial Production Challenges & Solutions



In this entry I'm going to describe some challenges facing the adoption of 3D Printing technology in industrial manufacturing environments, and three ways the industry can work towards developing tools that improve the rate of adoption by integrating a few simple features. These three features are:

  1. MRP/ERP Integration
  2. Big-O Manufacturing Analysis
  3. Generative Geometry

Here is an example of an automobile body assembly industrial manufacturing environment:

This is a long read, but I can assure that at very least the final flowchart will make your day.


Most recent investment during the boom in the 3D printing have targeted reducing print time, improving perceived quality, and unlocking new potential commercial applications. These are all required elements for generating the hype needed to inspire adventurous customers to try the technology, but I do not believe this alone has succeeded in keeping these customers engaged and satisfied. The barrier of entry to use 3D printing has declined, but the complexity and effort required has not. Lessons learned from the consumer 3D printing boom and bust indicate that the successful integration of additive manufacturing processes for the long haul will at minimum require increased investment in:

  1. Improved Convenience
  2. Realistic Assessment of Intended Application
  3. Reasonable Generative Part Design & Part Optimization

I believe the adherence to the above 3 investments will provide a sustainable path forward for the adoption of 3D printing in mainstream manufacturing environments. In the follow sections I'm going to cover example implementations to achieve these goals.

Improved Convenience | MRP/ERP Integration

Today’s production and warehouse environments are driven from all angles to become as lean as possible to minimize operation costs and risk while maintaining tolerable production rates, safety margins, and quality control. On the warehouse side, lean means maintaining only the minimum required inventory, and on the production side lean means the minimum number of people who need to interact with a fabrication or assembly process.

MRP Systems are designed to systematically assess the purchasing, fabrication, warehousing, and assembly needs of a production environment on a quantized iterative basis from immediate and forecasted order demand volume. Production environments staying in business today need some level of robust and reasonably accurate MRP coordination to remain profitable in the face of growing global competition.

3D Printing is a fabrication process that is at the core versatile and automated. However, most of the 3D printing ecosystem is fragmented and generation of print job machine instructions, print job scheduling, and printer maintenance is a manual and tedious process requiring attention to details only expert-level users can support. Hours and effort spent sustaining these machines, preparing print jobs, and debugging problems is what is known as "non-value added" labor in a manufacturing environment, e.g. an unnecessary cost, complication, and even a potential source of costly errors or delays. What I'd like to see delivered by the industry is an automated demand-driven scheduling of print job tray machine instructions, maintenance orders, and feed-material supply orders. Below is a detailed system-block level conceptual layout for how an MRP/ERP system can integrate with an existing microservice architecture 3D Printing Platform (Print App, Resource Database App, Scheduler App, and Local Print Servers).

What I'm illustrating here is the capacity for this Print Platform to receive requests from both manual and automated routes (e.g. through Print App to Scheduler App route as well as the option for the Scheduler to receive requests via external services like a production facilities MRP system, or a consumer websites ERP system). Here are the step-by-by step requirements for this integration with existing 3D Printing Platforms:

  1. Receive production order requests from major MRP/ERP software providers via API level integration
  2. Retrieve production relevant data (part revision, BOM, tray layout, machine instructions, etc.) from Database Cloud App
  3. Dynamically generate feedstock material purchase or maintenance orders as needed per production order data
  4. Dynamically assess 3D printer schedule availability from Print Scheduler App and prioritize production request per material availability
  5. Optimize production order schedule placement based on production requirement dependencies and relative importance in demand queue
  6. Maintain part, tray layout, and print file revision control synchronization between Database Cloud App and MRP System revision & specification order requirements
  7. Graceful Fault-Handling and Transition into Manual Scheduler when necessary for Plant Operations Administrator to intervene.

To my knowledge, no 3D printing company or software provider has developed the capacity to directly integrate with the most common MRP/ERP systems used in live production manufacturing environments. I believe this is one of the key factors rate-limiting the adoption of 3D printing in industrial production environments.

By implementing an MRP/ERP integration layer between 3D Printing and commercial MRP/ERP systems, many of the non-value added aspects of the 3D printing toolchain and sources of human error will be eliminated. I believe this significantly more convenient and robust, and thus one of the keys to enabling convenient access to the growing number of advanced technologies and applications 3D printing has provided. In addition to this, automated MRP unlocks the high-degree of flexibility and customization inherent in the 3D printing process, thus enabling the most efficient utilization of machines in 3D Printing Farms like the one shown below:

Realistic Assessment | Big-O Manufacturing Analysis

Assessment for 3D printing as a primary manufacturing option can be quickly determined to be viable or not by looking first at part size.

Big O Analysis is a technique that computer scientists use to theoretically compare the performance of algorithms under worst-case situations as they are pushed to their computational limits, and Big-O Notation is means of describing algorithm performance by mathematically describing their limiting behavior as its inputs tend toward a particular value, or infinity (e.g. datasets of increasing size).

The performance of algorithms has become increasingly more significant as the scale of datasets and applications grows since the amount of time required to complete a particular task is a function of the number of discrete operations required (e.g. complexity). Details on the efficiency comparison of common algorithms and their performance under various conditions can be found at Big-O Cheatsheet. Big-O Analysis makes certain assumptions to achieve simplified comparison of algorithms. Take for instant the following functions operating on an array containing n elements:

Note 1: Operations involving constants are ignored since the added incremental complexity is independent of array length:

function sumOfSin(array){
    var sum = 0;
    for (var element in array){
        sum += 2 * Math.PI * Math.sin(element);
    return sum;

//sumOfSin(array) --> O(n)

Note 2: Nested Loops are Computationally Expensive when directly proportional to array length.

function insertionSort(array){
    var length = array.length;
    for(var i = 0; i < length; i++) {
        var temp = array[i];
        for(var j = i - 1; j >= 0 && (array[j] > temp); j--) {
            array[j+1] = array[j];
        array[j+1] = temp;
    return array;

//insertionSort(array) --> O(n^2)

Note 3: Simplification is Strictly Enforced:

function comboDeal(array){
    var sum_one = sumOfSin(array);                  //O(n)
    var sum_two = sumOfSin(insertionSort(array));   //O(n^2) + O(n)
    return sum_one + sum_two;                       //O(1)

//comboDeal(array) --> O(n^2) + 2 * O(n) + O(1) --> O(n^2)

Note 4: Detailed Expressions for Computation Complexity of Mathematical Operations is detailed here. This animation shows the performance of several different sorting algorithms in action for datasets of various initial characteristics.

Extrapolation to Manufacturing

Below is my attempt to extrapolate Big-O Analysis for computational algorithmic efficiency to industrial manufacturing processes for parts of dimensions L [length] x W [width] x D [depth]. Since each manufacturing technology has varying degree of significant working dimension (e.g. laser cutting a sheet is only a function of L x W, while 3D printing is a function of L x W x D) I will be representing all significant working dimensions with the variable "n" without loss of extrapolation generality.

Example1: Laser cutting the perimeter of a thin square (2*L + 2*W --> 4*n --> n) vs laser cutting the perimeter of a long slender thin rectangle (2*L + 2*(negligible) --> 2*n --> n)) are equivalent. However, we need to include that as overall part area increases so does the incidence of internal features to that perimeter. We can assume constant density of internal features for a part, and when we add internal features and perimeter the result becomes: const * n^2 + const * n. Since n^2 dominates n as n approaches infinity, and constants are set to 1, our simplification for both cases is n^2.

The table below outlines the Big-O Manufacturing Complexity results for the processes considered

Process Description Complexity
SLA 3D Printing resin UV laser cure coordinates on 2D layer; layer-by-layer n^3
FDM 3D Printing deposits material at coordinates on 2D layer; layer-by-layer n^3
SLS 3D Printing fuses material using laser at coordinates on 2D layer; layer-by-layer n^3
Hand Carving manual removal of material along surface of solid material n^2 log(n)
Forging / Sculpting shape solid piece of material by applying heat and plastic deformation n^2 log(n)
Machining removal of material along surface of a solid piece of material n^2 log(n)
Waterjet Cutting cutting using a high pressure abrasive water stream n^2
Laser Cutting cutting using a high powered laser beam n^2
NC Punch and Break numerically controlled metal removal using tool/die and bending into form n^2
Roll Forming continuous linear bending of a long strip of sheet metal n
Metal Spinning continuous rotational forming by applying radially symmetric pressure n
Metal Drawing progressive forming using axially symmetric series of tool/die shapes n
Progressive Stamping automated progressive steps using simultaneous punching, coining, and bending n
Chemical Etching removal of material along surface using chemical exposure n
Extrusion forcing material through a progressive set of dies n
DLP / Polyjet 3D Printing resin UV image cure full 2D layer; layer-by-layer n
Investment Casting multistep: adding molten metal into a sacrificial wax patterns 1
Die Casting forcing molten metal material into a reusable durable mold pattern 1
Thermoforming heating sheets of thermoplastic and vacuum or gravity forming to tooling 1
Injection Molding injecting molten plastic into a reusable durable mold pattern 1
Roto Molding rotational distribution of molten plastic within a hollow mold pattern 1

As you can see in this section, it is critically important to assess the overall size of the part before deciding on manufacturing process to design for. This will save a lot of business pain further down the road as production is expected to at minimum keep up with demand. For smaller sized parts, nearly every manufacturing option is equivalent in complexity. However, when you get to larger part sizes the field of selection for reasonable manufacturing processes quickly thins out. The Strati 3D printed car is a clear example of a poor decision for manufacturing based on part size:

For example: take a part of size n=10 running on a FDM 3D printing process. This complexity result is n^3 = 1000. Now take that same part of size n=10 on an FDM 3D printing process where the machine operates twice as fast. There are still n^3 operations, but each operation is twice the speed. The result is a complexity of 500. Compare that to a machining process, n^2*log(10)=100. Despite the investment in a 3D printer twice as fast, FDM 3D Printing is still only 20% the output rate compared to using conventional machining. How about making that same n=10 sized part using progressive stamping? Progressive stamping has a Big-O Complexity of O(n)=n, and thus the resulting complexity is 10. Theoretically then, progressive stamping takes only 2% of the time required for the 2x speed 3D Printer to produce a part of size n=10. To put in other words, progressive stamping will have completed 50 parts in the time it takes the 2x speed FDM 3D printer to complete a single part of size n=10!

Assessing the implication of part size becomes increasingly important for manufacturing processes with complexities of higher order. This is especially true for 3D printing processes.

Reasonable Design | Generative Geometry

Despite the drawbacks evident in the production of large parts using 3D printing technologies, there are certain areas where they can excel in a manufacturing environment based on their improved performance compared to conventional manufacturing options. These are realizable when the production rates are within an allowable range for the need of high performance parts. Take for example the below antenna mounting structure for an aircraft. The conventional manufacturing process using multi-axis machining yields a lightweight part, but the resulting part is not as light as theoretically possible for the component's functional constraints. Using generative design techniques software can determine optimum part shape based on physical constraints (e.g. boundary conditions, allowable deflections, maximum loads, vibration response, etc.). For the production volumes needed for this component, additive manufacturing provides both the means to enable the described shape and a production rate that meets the demand requirements.

Below is an outline of different ways generative part design can help aid in component manufacturing process selection by finding mechanical solutions that fit within described envelopes (geometric, functional, load, or other). These utilities are particularly useful in a high-mix low volume environment where there is considerable part to part variation thus precluding the capacity to use conventional high-volume manufacturing processes. Combined with an MRP/ERP system, generative design software can generate, schedule, and make parts on an ongoing basis without human intervention. This would be particularly useful for orthopedic devices, medical implants, etc. where scan data or functional constraints can be entered into an order system for producing the needed part.

Integrating UI/UX handles on the rendered generative geometry can provide user input and modifications to further tune the resulting generative part towards a solution viable based on constraints the software cannot perceive. Components can be imported into view, constraints and boundary conditions can be specified, and then the computational system is run to generate and display a part that satisfies the first pass requirements. The user can then visualize the result and manually adjust parameters using UI/UX tools to adjust the generative part to perfection. This last step is also a potential opportunity for machine learning to feedback desired design characteristics into the generative algorithms.

Optimize Internal Geometry for Additive Fabrication Performance:

Another area key for resulting part improvement using generative geometry is algorithmic development of optimum internal structure to improve the functional requirements of the part, all while reducing weight, material used, and also print time. Adjusting internal geometry can result in parts with improved strength at reduced weights when compared to existing conventional manufacturing processes. Strength should be optimized by placing more material along outer shells, and support should progressively become less dense towards interior.

Load bearing areas should have special attention given to load path axes for internal geometry optimization. Print preparation receives part geometry and desired indication for relative or absolute strengths (load conditions or specific regions for increased stiffness). The user of internal geometry generative software should be able to quickly alternate between preview mode and detailed print mode to ensure viability of the determined internal geometry prior to printing, and if changes are necessary provide UI/UX tools to make manual adjustments. Primitive shapes can be superimposed on the part to define regions of influence (e.g. areas that require greater, or less stiffness that the algorithm can take into account when rendering internal features). More details on this process can be found here, but if you take a look at the below images you can get an idea of the biological inspiration behind optimization of internal geometry as well as some industrial applications.


As promised, below is my reward to you for taking the time to read this entire article. Since it is common practice to include an outdated diagram when talking about manufacturing, I've included one here for your viewing pleasure:

I believe all 3 categories are critical to enabling sustained growth in industrial 3D printing, but the areas of MRP/ERP Integration and Improved Assessment using Big-O Manufacturing Analysis desperately need attention today. Parts not tailored for 3D printing at the production rates need should not be 3D printed, and non-value-added steps in the 3D printing tool-chain need to be eliminated immediately because they introduce waste and human error that further drags the 3D printing industry behind its potential capacity.

Generative Design Algorithms can be designed to infer or modify part intent to propose more suitable manufacturing methods for the target manufacturing method, and for 3D printing design for manufacture is just as important as it is for any other manufacturing process to ensure throughput, quality, and production success.

Tags: Manufacturing, MRP/ERP, 3D Printing, Algorithms, Automation