--- /dev/null
+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]);