DigiFabster is about cost calculation for online quoting, and we know a lot about this subject. We wanted to share a bit of know-how to empower our users. 

Prices for 3D printing are made up of two major parts: the cost of materials consumed for the model and the cost of the time the machine is in use to produce the model. The cost of materials used follows from the model itself and is usually easy to calculate, the time the machine is used to produce the model is harder to predict from the model dimensions.

This article only discusses how to calculate the cost of machine use, not the calculation of material consumption. Two notes:

  1. Establishing the real cost per hour for machine XYZ is not the object of this discussion. We have tips for that too, but they will be published elsewhere.

  2. The huge time savings per model, feasible through nesting and batching are outside the scope of this article. DigiFabster does online quoting, so at the moment the quoting is done, nothing is known about other models which might end up in the same batch. If this does not satisfy you, a laconic workaround can be found here

That said, there is still a lot that can be done to get a highly accurate, lightning fast cost calculation for powder bed machines by using statistical methods. We'll go through the process step by step.

Step 1: Get samples

We recommend getting 10 to 50 fully documented models from your archives. Best choose 1 in every 10 or one in every 20 models in the order you received them, that way you will get a reasonably representative sample batch. 

Step 2: Set up a basic spreadsheet

We use this structure:

Step 3: Populate the basic spreadsheet

It's great if you have all the above info available in your archives, if not, use Meshlab to get the dimensional data.

Ask Meshlab to show layer dialogue.

Ask Meshlab to compute geometric data.

Copy the relevant geometric data.

After you've finished with the geometric data, add the time calculations your software gives you, or even better, use the factual, historical data from your archives.

Now take a break, because the fun part is about to begin.
Step 4: Find the key factor for print time

Put in correlation functions between the dimensional columns on the left and the "hours total" on the right. 

Look for the column with the highest correlation.

Now you know: For this printer and this material, the key factor to predict print time is model volume

Work out the relation between volume and print time, so you create a formula to generate print time from volume. 

Divide the volume by 1000 to get cm3

Plot the relationship between volume and print time.

The relationship is not completely straightforward (linear), but it gives us something to start with.

Calculate the melting speeds per model by dividing the volumes in cm3 by the print times in hours.

Select the maximum melting speed:

Now use the maximum melting speed to predict print time. Except for one model, all the print times will be slightly underestimated, but that is not a problem as yet.

Calculate prices for this maximum printing speed, as was foreseeable, they are all a little underestimated:

If we calculate the differences in percentages, we get the following picture: 

We're on average 9,9 % short, with a standard deviation of 5,6%. We could lower the calculated melting speed of 7,5 cm3/hour to get overall higher prices, but that will not change the standard deviation, i.e. the accuracy of our prediction. We need to use more data to be more accurate. 

Step 5: Get the second key factor and put a price on it.

We need to fill the gap between the expected price, which follows from the calculation by the printer software, and the price we got by dividing the model volume by the melting speed and multiplying the resulting time by 60$. 

First, we calculate the differences, I called it "missing money":

The maximum missing sum is 144$. Knowing the technology, we may suspect that the difference in price is mainly caused by the height of the model: For every layer, a wiper has to go left and right, and the number of times this has to happen is determined by the height of the model divided by the layer height. So the lower the layer height, and the higher the model, the longer the model will take to print, independent of the volume. 

So let's put a premium on height. For now, we simply divide the 144$ by the 100 mm and see what happens. We postulate: each millimeter of height costs 1,44 extra (144/100). 

We use the 1,44 to calculate the total premium for height:

and add the premium to the calculated price:

The total price is now too high on average, but the standard deviation has dropped by more than one percent, so the calculation has become more accurate. 

Now we go back to the melting speed, which was 7,5 cm3/hour, and increase it, this will lower the total prices again.

I put 8 cm3/hour in. The average price is now 100,3% of the calculated one, the standard deviation 3,98%

You can keep tweaking melting speed and height premium still more, like this 

(melting speed 8,6, height premium 2$ 100,27%, 3,16%) but keep in mind that you have a limited sample. Spending time getting ideal prices, tweaking a limited sample set is less effective than adding data to the sample set and tweaking the bigger set. 

Step 6: Enter factor in DigiFabster back office. 

For now, unfortunately, we have to create one printer for each material and each layer thickness, but in the future, that may be improved. 

Open your Printers and Materials tab, select SLM, select your printer (in this case an EOS EOSINT M290)

Edit the printing speed and the geometry prices:

and save the printer.
Now add a material (without material you will not get any results).

Make sure the offered layer thickness is the same as the nominal one:

and save the material. 

Now upload mymodel01 open the  price tweaker and see what price you get:

The expected price was 1013$, we get 1004,17, not too bad :-)

Hope this helped,

Your DigiFabster team. 

Did this answer your question?