| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Button plunger for EE04 case +Y wall
- // At rest: flange flush with interior face, head proud of exterior face
- include <params.scad>
- module plunger() {
- color("orange") union() {
- translate([0, -FLANGE_T, 0])
- rotate([-90, 0, 0])
- cylinder(d = PLUNGER_D, h = FLANGE_T + WALL + PLUNGER_HEAD_H, $fn = 32);
- translate([0, -FLANGE_T, 0])
- rotate([-90, 0, 0])
- cylinder(d = FLANGE_D, h = FLANGE_T, $fn = 32);
- translate([0, WALL, 0])
- rotate([-90, 0, 0])
- cylinder(d = PLUNGER_D, h = PLUNGER_HEAD_H, $fn = 32);
- }
- }
- // ============================================================
- // RENDER — 4x plunger strip with breakaway sprues
- // 2 mm gap between flanges; snap the 3 bridges to separate.
- // ============================================================
- SPRUE_GAP = 2.0; // gap between adjacent flanges
- SPRUE_PITCH = FLANGE_D + SPRUE_GAP; // centre-to-centre
- SPRUE_T = 1.0; // bridge thickness — 1.5mm meets resin min
- SPRUE_OVL = 0.2; // overlap into each flange edge so shells merge
- module plunger_strip() {
- union() {
- for (i = [0:7])
- translate([i * SPRUE_PITCH, 0, FLANGE_T])
- rotate([90, 0, 0])
- plunger();
- // Sprues on flange outer edges — hidden surface, no post-removal cleanup needed
- for (i = [0:6]) {
- x0 = i * SPRUE_PITCH + FLANGE_D / 2 - SPRUE_OVL;
- x1 = (i + 1) * SPRUE_PITCH - FLANGE_D / 2 + SPRUE_OVL;
- translate([x0, -SPRUE_T / 2, FLANGE_T / 2 - SPRUE_T / 2])
- cube([x1 - x0, SPRUE_T, SPRUE_T]);
- }
- }
- }
- plunger_strip();
|