scad/Fan Filter Adapter.scad

67 lines
1.8 KiB
OpenSCAD

// 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);
};
};
};
};
};