3d_printing.nbt 711 B

123456789101112131415161718192021222324252627
  1. struct Material {
  2. diameter: Length,
  3. density: MassDensity,
  4. price: Money / Mass,
  5. }
  6. let PLA = Material {
  7. diameter: 1.75 mm,
  8. density: 1.27 g/cm^3,
  9. price: 16.99 €/kg,
  10. }
  11. fn print_cost(material: Material, mass: Mass) -> Money = material.price × mass
  12. fn filament_length(material: Material, mass: Mass) -> Length = volume / cross_section -> meter
  13. where r = material.diameter / 2
  14. and cross_section: Area = π r²
  15. and volume: Volume = mass / material.density
  16. # Print parameters
  17. let mass_model = 80 g
  18. let material = PLA
  19. print("Mass of model: {mass_model}")
  20. print("Filament length: {filament_length(material, mass_model):.2}")
  21. print("Cost of model: {print_cost(material, mass_model):.2}")