Fan shroud for Devterm



the hole is not perfectly centered, but big enough that it fits…

Please don‘t just print in PLA, that could get soft at those temperatures… I used PETG. I hope that is good enough.

Since I don’t see a way to attach a file here the code from openscad:


//numbers in mm

$fn = 50;

fan_w = 30.4;
fan_l = 30.4;
fan_h = 4.6;
fan_d = 21;

shroud_l = 25;
shroud_l1 = 3;
shroud_l2 = 11;
shroud_l3 = 3;
shroud_l4 = 8;

shroud_h1 = 4.6;
shroud_h2 = 7;
shroud_h3 = 1;
shroud_h4 = 2;
shroud_thickness = 1;

wall = 2;


translate([-fan_w-wall*2,0,0])fan_enclosure();
shroud();




module fan_enclosure(){
    
    difference(){
        cube([fan_l+2*wall,fan_w+2*wall,fan_h+shroud_thickness]);                               //outer size
        translate([wall,wall,0])cube([fan_l+wall,fan_w,fan_h]);                                 //inner size
        translate([fan_l/2+wall,fan_w/2+wall,0])cylinder(d=fan_d, h=fan_h+shroud_thickness);    //fan hole
        translate([0,0,0])cube([wall*2,wall*2,fan_h+wall]);                                          //counter hole because of cable and easier mounting
        translate([0,fan_w,0])cube([wall*2,wall*2,fan_h+wall]);                                      //counter hole because of cable and easier mounting
    }
    
    
}


module shroud(){
    
        difference(){
            
            union(){
                translate([0,0,fan_h-shroud_h1])cube([shroud_l1, fan_w+wall*2, shroud_h1+shroud_thickness]);                        //those 4 lines are to accomodate differnt heighs
                translate([shroud_l1,0,fan_h-shroud_h2])cube([shroud_l2, fan_w+wall*2, shroud_h2+shroud_thickness]);
                translate([shroud_l1+shroud_l2,0,fan_h-shroud_h3])cube([shroud_l3, fan_w+wall*2, shroud_h3+shroud_thickness]);
                translate([shroud_l1+shroud_l2+shroud_l3,0,fan_h-shroud_h4])cube([shroud_l4, fan_w+wall*2, shroud_h4+shroud_thickness]);
            }
            translate([0,wall,-fan_h])cube([shroud_l, fan_w, fan_h*2]);
            translate([shroud_l1,wall,-fan_h])cube([shroud_l2, fan_w+1, fan_h*2]); //because of the assymetric pci-e slot
        }
    
}
8 Likes