plunger.scad 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 = 1.0; // bridge thickness — 1.5mm meets resin min
  24. SPRUE_OVL = 0.2; // overlap into each flange edge so shells merge
  25. module plunger_strip() {
  26. union() {
  27. for (i = [0:7])
  28. translate([i * SPRUE_PITCH, 0, FLANGE_T])
  29. rotate([90, 0, 0])
  30. plunger();
  31. // Sprues on flange outer edges — hidden surface, no post-removal cleanup needed
  32. for (i = [0:6]) {
  33. x0 = i * SPRUE_PITCH + FLANGE_D / 2 - SPRUE_OVL;
  34. x1 = (i + 1) * SPRUE_PITCH - FLANGE_D / 2 + SPRUE_OVL;
  35. translate([x0, -SPRUE_T / 2, FLANGE_T / 2 - SPRUE_T / 2])
  36. cube([x1 - x0, SPRUE_T, SPRUE_T]);
  37. }
  38. }
  39. }
  40. plunger_strip();