// filter settings // this is for the "go around the outside of the filer" style wall_thickness = 3; // mm wall_height = 4; // mm outer_ring_diameter = 181; outer_ring_thickness = 7; // fan settings fan_diameter = 140; // mm fan_wall_height = 10; fan_base_height = 5; fan_base_width = 3; fan_screwhole_diameter = 5; fan_corner_offset = 5; // taper settings taper_height = 25; // ring linear_extrude(wall_height) { difference() { circle(outer_ring_diameter / 2, $fa = 1); circle(outer_ring_diameter/2 - outer_ring_thickness, $fa = 1); }; }; // fan base screw_offset = (fan_diameter / 2) - fan_corner_offset; translate([0, 0, -fan_wall_height - taper_height]) { linear_extrude(fan_base_height) { difference() { square(fan_diameter, center = true); circle(fan_diameter/2 - fan_base_width, $fa = 1); // Screw holes translate([screw_offset, screw_offset, 0]) { circle(fan_screwhole_diameter / 2, $fa = 1); }; translate([-screw_offset, screw_offset, 0]) { circle(fan_screwhole_diameter / 2, $fa = 1); }; translate([screw_offset, -screw_offset, 0]) { circle(fan_screwhole_diameter / 2, $fa = 1); }; translate([-screw_offset, -screw_offset, 0]) { circle(fan_screwhole_diameter / 2, $fa = 1); }; }; }; }; // taper from fan edge to holder translate([0, 0, -fan_wall_height-2]) { union() { difference() { cylinder(taper_height, r1 = fan_diameter / 2, r2 = outer_ring_diameter /2, center = true, $fa = 1); cylinder(taper_height, r1 = fan_diameter / 2 - wall_thickness, r2 = outer_ring_diameter /2 - outer_ring_thickness, center = true, $fa = 1); }; translate([0, 0, -19]) { linear_extrude(7) { difference() { circle(fan_diameter/2, $fa = 1); circle(fan_diameter/2 - fan_base_width, $fa = 1); }; }; }; }; };