Foamboard Case

The airconditioner vent blasting directly onto the printer is probably a bad thing, so my first case cover was from amazon:

Effective at preventing the direct blast of cool air, but not as elegant as I'd like :-).

Using that cover, however, I was able to experiment with different ways to print clips I could attach to the case so I could add clip-on panels which I planned to cut from some foam board I had laying around. Here's the clip model in scad:

variable-cover-clip.scad

// Clips for holding foamboard cover panels to solidoodle.

// foamboard is the thickness of the foamboard plus whatever slop seems
// advisable for ease of sliding the panels (all dimensions are millimeters).
//
foamboard = 6;

// middlebar is the thickness of the middle bar which determines how far off
// the steel frame the foamboard will be held. This should be large enough
// to clear the end of any rods, bolt heads, rivets, etc which stick out of
// the frame.
//
middlebar = 4;

// bars is the thickness of the other bars making up the clip.
//
bars = 2.25;

// leadingtooth is the gap between the middle bar and the leading tooth
// that sticks down from the top bar.
//
leadingtooth = 0.2;

// trailingtooth is the gap between the middle bar and the innermost
// tooth that sticks down from the top bar.
//
trailingtooth = 0.35;

// clipheight is the height of the clip (too big and there are places it won't
// fit on the frame). I made the bottom, left, and right clips 20mm high
// and the short clips 10mm high.
//
clipheight = 20;

// shortedge is the shortest bar that holds the edge of the foamboard.
//
shortedge = 15;

// longedge is the longest edge that clips to the side of the frame.
//
longedge = 20;

// cornerprong is the length of the prong that sticks out the other side of the
// clip to hold a small strip of foamboard at the corner of the case to help seal
// cracks a bit.
//
cornerprong = 6;

// exactfoam is the exact thickness of the foamboard which determine the space
// allowed to make a press fit for small strips of foamboard to fit under on the
// corners.
//
exactfoam = 5.2;

// propsize is the size of the additional prop piece you can rest the foam
// against after pulling it all the way up to expose the inside of the printer.
// I use same size of foamboard for left and right clips and zero (to disable
// this) for the bottom clips.
//
propsize = foamboard;

// righthand is set to non-zero to print a righthanded version, defaults to
// lefthanded
//
righthand = 0;

toothyinc = (trailingtooth - leadingtooth) / 6.0;
toothxinc = (bars + 0.25);

firstoothy = (bars+foamboard+middlebar+bars+(bars/2.0))-(bars-trailingtooth);
firstoothx = (bars/2.0);

module clip()
{
   difference() {
      union() {
         cube([shortedge,bars,clipheight]);
         cube([bars,bars+foamboard+middlebar,clipheight]);
         translate([0,foamboard+bars,0])
            cube([longedge,middlebar,clipheight]);
         translate([0,bars+foamboard+middlebar+bars,0])
            cube([longedge,bars,clipheight]);
         translate([shortedge,bars+foamboard,0])
            cube([longedge-shortedge,middlebar+bars+bars,clipheight]);
         translate([firstoothx,firstoothy,0])
            cylinder(h=clipheight,r=(bars/2.0));
         translate([firstoothx+toothxinc,firstoothy+toothyinc,0])
            cylinder(h=clipheight,r=(bars/2.0));
         translate([firstoothx+2*toothxinc,firstoothy+2*toothyinc,0])
            cylinder(h=clipheight,r=(bars/2.0));
         translate([firstoothx+3*toothxinc,firstoothy+3*toothyinc,0])
            cylinder(h=clipheight,r=(bars/2.0));
         translate([firstoothx+4*toothxinc,firstoothy+4*toothyinc,0])
            cylinder(h=clipheight,r=(bars/2.0));
         translate([firstoothx+5*toothxinc,firstoothy+5*toothyinc,0])
            cylinder(h=clipheight,r=(bars/2.0));
         if (cornerprong > 0) {
            translate([-cornerprong,(foamboard+middlebar)-exactfoam,0])
               cube([cornerprong+bars,bars,clipheight]);
         }
         if (propsize > 0) {
            translate([0,-propsize,clipheight-bars])
               cube([shortedge,propsize+bars,bars]);
            translate([0,-propsize,clipheight-bars])
               cube([shortedge,bars,propsize+bars]);
            translate([0,-propsize,clipheight-bars])
               rotate(a=[0,90,0])
                  linear_extrude(height=shortedge)
                     polygon(points=[[0,0],[0,propsize],[propsize,propsize]]);
            translate([0,-propsize,clipheight-bars])
               cube([bars,propsize+bars,propsize+bars]);
         }
      }
      translate([shortedge+0.5,bars+foamboard+middlebar+(bars/2.0),0])
         cylinder(h=clipheight,r=(bars+0.75)/2.0);
   }
}

// A brim generated by slic3r is irritating and makes it hard to clear the
// teeth, so manufacture my own "brim" that just sticks out in a few places
// (because this does come lose when I print without a brim :-).
//
module clipbrim()
{
   union() {
      translate([0,-5,0])
         cube([shortedge,5+bars,0.3]);
      translate([0,bars+foamboard+middlebar+bars,0])
         cube([longedge,5+bars,0.3]);
      translate([-5,-5,0])
         cube([5+bars,5+bars+foamboard+middlebar,0.3]);
      translate([longedge,bars+foamboard,0])
         cube([5+bars,middlebar+bars+bars+5,0.3]);
   }
}

// To print right hand versions, use mirror([0,1,0]) on each element in union.

union() {
   if (righthand == 0) {
      clip();
      clipbrim();
   } else {
      mirror([0,1,0]) clip();
      mirror([0,1,0]) clipbrim();
   }
}

I actually got brave enough to print multiple copies of the different kinds of clips I needed in a single print job, and it worked quite well. Here are a couple of examples:

 

Had to fiddle with the “teeth” to get them sufficently grippy, and the short clips I printed probably need to be taller (so they'll have a larger gripping surface). I may reprint them someday with the same 20mm clipheight I used for everything else.

My final teeth geometry need to be wedged open with a small screwdriver to get them on the case, but are very solid once in place.

Anyway, here's how the different clips go on the case:

And after measuring and cutting, here's how the foamboard goes in:

And here is how the cover can be propped open on the ledges provided on the left and right clips:

After a little more work with foamboard and boxcutter, I have three new sides which should block any direct breezes very well:

Next I need to add some windows and a top cover (probably also made of foamboard) and it will be perfect. I can also cut down on airflow around the edges by pushing some small strips of foamboard under the “prongs” I provided on the left, right, and short clips. And it is done:

I subsequently made a different cover to go with my Solidoodle Spool Mount and enclose the whole filament spool along with the printer.

This case does work, but it is kind of inconvenient to use. I've replaced the front door with Foamboard Case MK2 and will probably do the side doors someday (but I don't need to remove them as often).

Go back to my main Solidoodle page.

Page last modified Sat Nov 2 13:09:05 2013