// Rostock Mini 40mm CPU fan duct mount // Jay Summet // jay@summet.com // // Print with the "fan side" (top) down to avoid the use of support material. // // Turn on the "wire slot" to be able to install it around your wires and // bowden tube without having to disassemble everything. If you want the // super finished look, print it without the wire slot and unhook all of your // fan/hotend wires and bowden tube. // platform_thickness = 8; // From rostock mini configuration.scad file. h=platform_thickness; cutout = 12.5; inset = 6; tT = 16; module fan40mm () { // Fan mounting screw holes: cylinder(r=1.5, h=14, $fs=0.15); translate([32,32,0]) cylinder(r=1.5, h=14, $fs=0.15); translate([32,0,0]) cylinder(r=1.5, h=14, $fs=0.15); translate([0,32,0]) cylinder(r=1.5, h=14, $fs=0.15); } // Uncomment this to draw the fan to see where it goes! // color( [0.3,0.3,0.3] ) // translate([0,0,50]) // cube([40,40,5], center=true); // wire slot //translate([25,0,17]) // cube([50,5,36], center=true); module fanDuct(wireSlot = false) { difference() { union() { hull() { //Top square //old and busted! //translate([0,0,60]) // cube( [41,41,5],center=true); // New hotness: Rounded Square! hull() { translate([tT,tT,60]) cylinder(h=5,r=4,center=true); translate([tT,-tT,60]) cylinder(h=5,r=4,center=true); translate([-tT,tT,60]) cylinder(h=5,r=4,center=true); translate([-tT,-tT,60]) cylinder(h=5,r=4,center=true); } //bottom cylinder translate([0,0,h/2]) cylinder(r=30, h=h, center=true); } } // Things to cut out of the sucker! if (wireSlot == true) { translate([55,0,45]) cube([100,0.5,100], center=true); } // end if cutting the wire slot out! //Cut out the inside. //cylinder(r=20, h=h+178, center=true); // old and fat // New Hotness cutout from inside, leaving the hole mounts! difference() { cylinder(r1=35, r2=19, h=126, center=true); // new and slim! // subtract the four hole surrounds that match up with the //platform holes from what we subtract from above...WILD! for (a = [1,2,4,5]) { rotate(a*60) { translate([0, -25, 0]) cylinder(r1=5, r2=3, h=h+100, center=true, $fn=12); } } } // end new hotness! //Cut out the square hole for the hot end mount cube([23.5,90,32], center=true); // wire hole translate([14,0,40]) rotate([0,25,0]) cylinder(r=5,h=30); // Four holes to mount the 40mm fan to the top! color([0,1,0]) translate([-16,-16,49]) fan40mm(); // Add the (six, two hidden) holes that match up with the platform holes, // but slightly smaller than the platform hole radius of 2.2, to allow M3 // Screws to self tap into them! for (a = [0:5]) { rotate(a*60) { translate([0, -25, 0]) cylinder(r=1.6, h=h+10, center=true, $fn=12); } } } } rotate([0,180,0]) // Rotate for printing! fanDuct(false);