# Exercise 3: sizing a hanger rod # A steel hanger carries a steady tension of 200 kN. Yield strength 355 MPa. # Required factor of safety: 1.5. Stock rod diameters (mm): 25, 30, 32, 36, 40. import math load_kn = 200 yield_mpa = 355 factor = 1.5 stock = [25, 30, 32, 36, 40] def area_mm2(d): return math.pi * (d / 2) ** 2 def stress_mpa(force_kn, area): return force_kn * 1000 / area # N / mm2 = MPa needed = load_kn * 1000 * factor / yield_mpa print(f"required area {needed:.1f} mm2 (diameter {2 * math.sqrt(needed / math.pi):.1f} mm)") for d in stock: a = area_mm2(d) s = stress_mpa(load_kn, a) print(f"{d} mm: area {a:.1f} mm2, stress {s:.1f} MPa, factor {yield_mpa / s:.2f}") chosen = next(d for d in stock if area_mm2(d) >= needed) print("smallest stock rod that works:", chosen, "mm") # Output (as run): # required area 845.1 mm2 (diameter 32.8 mm) # 25 mm: area 490.9 mm2, stress 407.4 MPa, factor 0.87 # 30 mm: area 706.9 mm2, stress 282.9 MPa, factor 1.25 # 32 mm: area 804.2 mm2, stress 248.7 MPa, factor 1.43 # 36 mm: area 1017.9 mm2, stress 196.5 MPa, factor 1.81 # 40 mm: area 1256.6 mm2, stress 159.2 MPa, factor 2.23 # smallest stock rod that works: 36 mm # # Notice 32 mm is only just short (1.43 against 1.5). That is why the stock list matters.