plunger.scad 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Button plunger for EE04 case +Y wall
  2. // At rest: flange flush with interior face, head proud of exterior face
  3. include <params.scad>
  4. module plunger() {
  5. color("orange") union() {
  6. translate([0, -FLANGE_T, 0])
  7. rotate([-90, 0, 0])
  8. cylinder(d = PLUNGER_D, h = FLANGE_T + WALL + PLUNGER_HEAD_H, $fn = 32);
  9. translate([0, -FLANGE_T, 0])
  10. rotate([-90, 0, 0])
  11. cylinder(d = FLANGE_D, h = FLANGE_T, $fn = 32);
  12. translate([0, WALL, 0])
  13. rotate([-90, 0, 0])
  14. cylinder(d = PLUNGER_D, h = PLUNGER_HEAD_H, $fn = 32);
  15. }
  16. }
  17. // ============================================================
  18. // RENDER — 4x plunger strip with breakaway sprues
  19. // 2 mm gap between flanges; snap the 3 bridges to separate.
  20. // ============================================================
  21. SPRUE_GAP = 2.0; // gap between adjacent flanges
  22. SPRUE_PITCH = FLANGE_D + SPRUE_GAP; // centre-to-centre
  23. SPRUE_T = 0.5; // bridge thickness — snaps cleanly
  24. SPRUE_Z = FLANGE_T + 0.4; // just above the flange shoulder
  25. module plunger_strip() {
  26. for (i = [0:3])
  27. translate([i * SPRUE_PITCH, 0, FLANGE_T])
  28. rotate([90, 0, 0])
  29. plunger();
  30. for (i = [0:2]) {
  31. x0 = i * SPRUE_PITCH + PLUNGER_D / 2;
  32. x1 = (i + 1) * SPRUE_PITCH - PLUNGER_D / 2;
  33. translate([x0, -PLUNGER_D / 2, SPRUE_Z])
  34. cube([x1 - x0, PLUNGER_D, SPRUE_T]);
  35. }
  36. }
  37. plunger_strip();