...
Three factors have the largest impact on the printing time in the case of FDM: model's volume, surface area (related to the amount of material used to print the walls, which usually take more time to print than the infill) and support. Furthermore, we assume that, when printing larger quantities of models, the total machine time will be simply a sum of unit printing times of each of the models in the building chamber, as the height of the model should influence the time in a negligible way.
Code Block | ||
---|---|---|
| ||
//Variables starting with keyword "let" are adjustable by customers 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 |
...
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 |
---|
//Variables starting with keyword "let" are adjustable by customers
//Material variables
let materialCost = 60; // euro/kg
let density = 1.02; // g/cm^3
let margin = 1; // total price is multiplied with margin
//Machine time variables
let scanningSpeed = 45; // mm/s
let laserDiameter = 0.1; // mm
let layerHeight = 0.2; // mm
let layerPreparationTime = 10; // sec
let machineRate = 50; // euro/hour
// Material cost calculation
let material = model.volume * materialCost * density * 0.000001;
// Don't change the following lines
// Machine runtime cost calculation in hour
let numberOfLayers = model.h/layerHeight;
let machineTime = (model.volume/(scanningSpeed*laserDiameter*layerHeight) +
layerPreparationTime*numberOfLayers/item.quantity)/3600;
let machine = machineTime * machineRate;
//Total price: material price plus machine runtime cost
let price = margin * (material + machine);
price; |
...
Therefore, three factors will have an impact on the machine time: model's volume, height and support. In full analogy to the SLS, the total machine time will not be the sum of unit printing times due to the fact that the height is taken into account when computing the machine time.
Code Block |
---|
//Material variables let materialCost = Variables starting with keyword "let" are adjustable by customers //Material variables let materialCost = 180; //euro/kg let density = 4.43; //g/cm^3 //Machine time variables 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] let hourlyRate = 35; //euro/hour // Material price calculation let materialVolume = model.volume + support.volume * supportInfill; let material = density * materialVolume * materialCost / 1000000; // Machine runtime cost calculation in hour let numberOfLayers = model.h/layerHeight; let machineTime = ((model.volume)/(scanningSpeed*laserDiameter*layerHeight) + support.volume*supportInfill/(supportScanningSpeed*laserDiameter*layerHeight) + layerPreparationTime*numberOfLayers/item.quantity)/3600; let machine = hourlyRate * machineTime; let price = machine + material; // Last line must contain final price price; |
...
Due to this fusing, it is actually unimportant how many models are placed in the building chamber; the only factor that should matter is the height of the tallest model, as it determines the overall number of layers.
Code Block |
---|
//Variables starting with keyword "let" are adjustable by customers
//Material variables
let materialCost = 60; // euro/kg
let density = 1.02; // g/cm^3
let margin = 1; // total price is multiplied with margin
//Machine time variables
let singleLayerPrintTime = 15; // sec
let layerHeight = 0.2; // mm
let machineRate = 50; // euro/hour
// Material cost calculation
let material = model.volume * materialCost * density * 0.000001;
// Don't change the following lines
// Machine runtime cost calculation
let numberOfLayers = model.h/layerHeight;
let machineTime = (singleLayerPrintTime * numberOfLayers/item.quantity) / 3600;
let machine = machineTime * machineRate;
//Total price: material price plus machine runtime cost
let price = margin * (material + machine);
price; |
CLIP Material Pricing based on Machine Runtime
Code Block |
---|
//MaterialVariables variablesstarting letwith materialCostkeyword = 60; "let" are adjustable by customers //Material variables let materialCost = 60; // euro/kg let density = 1.02; // g/cm^3 let margin = 1; // total price is multiplied with margin //Machine time variables let maxXYSurface = 1000; // xy surface of the printer in mm^2 let timePerHeight = 10; // h/mm model's height let machineRate = 50; // euro/hour // Material cost calculation let material = model.volume * materialCost * density * 0.000001; // Don't change the following lines // Machine runtime cost calculation in hour let machineTime = (model.h*timePerHeight)*((model.w*model.d)/maxXYSurface); let machine = machineTime * machineRate; //Total price: material price plus machine runtime cost let price = margin * (material + machine); price; |
WAAM Material Pricing based on Machine Runtime
Code Block |
---|
//material cost
const materialCost = 50 // €/kg, the cost of metal wire is roughly 10% of the powder cost for same metal
const materialDensity = 7.93 // g/cm^3 --> SS316 density
const utilisationRate = 0.75 // 75%
const depositionRate = 3 //kg/hr, average according to literatture
const hourlyRate = 50 //€ per hour
const partVolume = model.volume
const supportVolume = support.volume
const materialPrice = Math.max(partVolume * materialDensity * materialCost*0.000001,0)
const weldingTime = (partVolume*materialDensity*0.000001)/depositionRate; //in hours
const machineCost = weldingTime*hourlyRate;
let price = 250 + (machineCost + materialPrice);
price; |