infty = 200; eps = 0.1; heatsink_w = 15 + 0.5; heatsink_h = 3; wall = 1.5; xoff = 5+heatsink_h; yoff = 10; bottom_off = 20; clip_l = 2; body_h = 8; // bottom translate([-bottom_off, -wall, 0]) cube([bottom_off+wall, wall, body_h]); // front translate([0, -wall, 0]) cube([wall, yoff+wall, body_h]); // front-bottom translate([0, yoff-wall, 0]) cube([xoff+wall, wall, body_h]); // heatsink rear translate([xoff, yoff-wall, 0]) cube([wall, heatsink_w + 2*wall, body_h]); // heatsink top translate([xoff-wall-heatsink_h, yoff+heatsink_w, 0]) cube([2*wall+heatsink_h, wall, body_h]); // clip top translate([xoff-wall-heatsink_h, yoff+heatsink_w-clip_l, 0]) cube([wall, clip_l+wall, body_h]); // clip bottom translate([xoff-wall-heatsink_h, yoff-wall, 0]) cube([wall, clip_l+wall, body_h]);