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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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); |
...