mcdp{providespart_volume[mm³]'Volume of the part to be produced.'providespart_resolution[1/mm]'(Inverse) resolution of the part to be produced.'providesservice_temperature[C]'Temperature that the produced part can resist.'requireselectric_power[W]'Total power drawn during production'requirestime[s]'Time necessary to produce each part'requiresmass[g]'Total mass of the extruder'requiresbudget[$]'Total cost of the extruder'requiresbudget_per_part[$]'Budget for each part to be produced'
# The extruder's components
nozzle=instance`Nozzleliquefier=instance`Liquefier
# The material (filament) used
material=instance`Materials2
# The parts that provide force to the filament
actuated_gears=instance`ActuatedGears
# The properties of the part produced that depend on the material
service_temperatureprovidedbymaterial≽providedservice_temperature
# The resolution depends on the nozzle (as well as material?)
part_resolutionprovidedbynozzle≽providedpart_resolution
# Each material has a liquefaction temperature
temperatureprovidedbyliquefier≽liquefaction_temperaturerequiredbymaterialforceprovidedbyactuated_gears≽forcerequiredbynozzle
# The time it takes to produce the part depends on the part volume
# and the nozzle properties (time_per_unit_volume)
requiredtime≽(time_per_unit_volumerequiredbynozzle)·providedpart_volume
# The cost of materials depends on the part volume and the specific cost
# of the material
material_mass=providedpart_volume·densityrequiredbymaterialcost_of_filament=(specific_costrequiredbymaterial)·material_massrequiredbudget_per_part≽cost_of_filament
# The total budget is the sum of budgets
requiredbudget≽∑budgetrequiredby*requiredelectric_power≽∑electric_powerrequiredby*requiredmass≽∑massrequiredby*}