浏览代码

Add 3D printing example

David Peter 1 年之前
父节点
当前提交
8c4d563233
共有 1 个文件被更改,包括 27 次插入0 次删除
  1. 27 0
      examples/3d_printing.nbt

+ 27 - 0
examples/3d_printing.nbt

@@ -0,0 +1,27 @@
+struct Material {
+  diameter: Length,
+  density: MassDensity,
+  price: Money / Mass,
+}
+
+let PLA = Material {
+  diameter: 1.75 mm,
+  density: 1.27 g/cm^3,
+  price: 16.99 €/kg,
+}
+
+fn print_cost(material: Material, mass: Mass) -> Money = material.price × mass
+
+fn filament_length(material: Material, mass: Mass) -> Length = volume / cross_section -> meter
+  where r = material.diameter / 2
+    and cross_section: Area = π r²
+    and volume: Volume = mass / material.density
+
+
+# Print parameters
+let mass_model = 80 g
+let material = PLA
+
+print("Mass of model:   {mass_model}")
+print("Filament length: {filament_length(material, mass_model):.2}")
+print("Cost of model:   {print_cost(material, mass_model):.2}")