Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

This page contains a listing of available variables for Machine Runtime pricing and sample pricing scripts for different technologies.

For a general overview of how Pricing Scripts work, read General Rules for Pricing Scripts.

Machine cost is calculated by multiplying the time it takes to print out a model by the hourly machine use rate. The hourly rate depends on many factors such as printer price, maintenance cost, depreciation period, and so on. The formula for calculating the machine time will be different for different technologies, as various factors impact the printing time in a way that is usually technology-dependent.

Table of Contents

General Format for Machine Hourly Rate Calculation

The basic format that we recommend for your Javascript pricing code is:

Code Block
languagejs
let priceOfMachine = 200000;         // $ or €
let usefulLife = 7;                  // years
let maintenance = 40000;             // $ or €
let powerConsumption = 10000;        // $/year or €/year
let roomCost = 4000;                 // $/year/m^2 or year €/year/m^2

let space = 10;                      // $/year or €/year
let spareParts = 2000;               // $/year or €/year
let gasUsage = 0;                    // $/year or €/year
let workingHoursPerYear = 3500;      // h/year

// Don't change the following lines
let hourlyRate = ((priceOfMachine + maintenance)/usefulLife + powerConsumption +
roomCost*space + spareParts + gasUsage)/workingHoursPerYear;

Sample Machine Time Pricing Scripts

FDM Machine Time Formula

Fused deposition modeling (FDM) is one of the most widely used additive manufacturing processes for fabricating prototypes and functional parts in common plastic engineering.

...

Code Block
languagejs
let lineWidth = 0.1;              // mm
let layerHeight = 0.1;            // mm
let speed = 45;                   // mm/s
let infill = 0.2;                 // number in [0,1]
let wallThickness = 2;            // mm
let supportInfill = 0.2;          // number in [0,1]

let volumeFactor = 0.0010747;     // number, describes importance of model's volume
let areaFactor = 0.04317783;      // number, describes importance of model's surface area
let supportFactor = 0.0003774;    // number, describes importance of support volume

// Don't change the following lines
let exponent;
if( model.volume < 3000){
        exponent = 0.55;
} else {
        exponent = 0.88;
        }

let volumePart = volumeFactor*(0.818182 - lineWidth)*(Math.pow(layerHeight, (-1.07)) +
0.232)*(Math.pow(speed, (-1.08)))*(Math.pow(infill*100, (1.02)))*model.volume;

let areaPart = areaFactor*(1.578431 - lineWidth)*(Math.pow(layerHeight, (-0.98)) + 0.341)*
(Math.pow(wallThickness, exponent) + 0.002)*(Math.pow(speed, (-0.84)) +
0.003)*model.area;

let supportPart =  supportFactor*supportInfill*support.volume;

let time = volumePart + areaPart + supportPart; // time in minutes

let machineTime = time/60;                      // time in hours

SLS Machine Time Formula

Two factors will have an impact on the machine time: the model's volume that needs to be sintered, and the model's height, as consecutive layers will require the machine to lower the powder bed and put new material on the platform. Furthermore, in the case of more than one model being placed on the platform, the total machine time will not be simply a sum of unit printing times, as adding new parts of lower or the same height as the tallest model will not change the time related to preparation of all layers required to print all parts.

Code Block
let scanningSpeed = 45;            // mm/s
let laserDiameter = 0.1;           // mm
let layerHeight = 0.2;             // mm
let layerPreparationTime = 10;     // sec

// Don't change the following lines
let machineTime = (model.volume/(scanningSpeed*laserDiameter*layerHeight) +
layerPreparationTime*model.h/layerHeight/item.quantity)/3600;

DMLS/SLM Machine Time Formula

DMLS/SLM is a process very similar to SLS with one important difference: despite the fact that the technology utilizes a laser-sintered powder, which for plastic materials serves as a support structure, all metal-printed parts need to have support structures attached, playing various roles in the process.

...

Code Block
let scanningSpeed = 40;              // mm/s
let supportScanningSpeed = 40;       // mm/s
let laserDiameter = 0.1;             // mm
let layerHeight = 0.1;               // mm
let layerPreparationTime = 10;       // sec
let supportInfill = 0.2;             // number in [0,1]

// Don't change the following lines
let machineTime = ((model.volume)/(scanningSpeed*laserDiameter*layerHeight) +
support.volume*supportInfill/(supportScanningSpeed*laserDiameter*layerHeight) +
layerPreparationTime*model.h/layerHeight/item.quantity)/3600;

MJF Machine Time Formula

This process is similar to SLS, the main difference being the heat source. SLS uses a laser to scan and sinter each cross-section, while in MJF an ink (fusing agent) is dispensed on the powder that promotes the absorption of infrared light. An infrared energy source then passes over the building platform and fuses the inked areas. In SLS each cross section is fused point-by-point, while in MJF fusing happens in a line-wise fashion.

...

Code Block
let singleLayerPrintTime = 15;         // sec
let layerHeight = 0.2;                 // mm

// Don't change the following lines
let numberOfLayers = model.h/layerHeight;
let machineTime = singleLayerPrintTime*numberOfLayers/item.quantity;

CLIP Machine Time Formula

Code Block
let maxXYSurface = 1000;        // xy surface of the printer in mm^2
let timePerHeight = 10;         // h/mm model's height

// Don't change the following line
let time = (model.h*timePerHeight)*((model.w*model.d)/maxXYSurface);

...