First pass at air purifier
This commit is contained in:
parent
a13d6233f0
commit
984c659675
|
@ -0,0 +1,103 @@
|
||||||
|
|
||||||
|
filter_x = 368; // mm
|
||||||
|
filter_y = 494; // mm
|
||||||
|
filter_z = 44; // mm
|
||||||
|
|
||||||
|
module filter() {
|
||||||
|
// https://airfiltration.ca/collections/pleated-merv-plus/products/merv-13-2inch?variant=19413155348547
|
||||||
|
// merv-13 15x20x2
|
||||||
|
cube([filter_x, filter_y, filter_z]);
|
||||||
|
};
|
||||||
|
|
||||||
|
fan_box_x = 255; // mm
|
||||||
|
fan_box_y = 130; // mm
|
||||||
|
fan_box_z = 43; // mm
|
||||||
|
module fan_box() {
|
||||||
|
cube([fan_box_x, fan_box_y, fan_box_z]);
|
||||||
|
};
|
||||||
|
|
||||||
|
fan_mounting_hole_radius = 3; // mm
|
||||||
|
fan_mounting_hole_length = 56; // mm
|
||||||
|
|
||||||
|
module fan_plate_mounting_hole() {
|
||||||
|
// 56 mm length, which is 50mm between circle centers
|
||||||
|
hull() {
|
||||||
|
circle(fan_mounting_hole_radius, $fn=360);
|
||||||
|
translate([fan_mounting_hole_length - 2*fan_mounting_hole_radius, 0, 0]) {
|
||||||
|
circle(fan_mounting_hole_radius, $fn=360);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
fan_plate_x = 353; // mm
|
||||||
|
fan_plate_y = 229; // mm
|
||||||
|
fan_plate_z = 1; // mm
|
||||||
|
module fan_plate() {
|
||||||
|
linear_extrude(fan_plate_z) {
|
||||||
|
difference() {
|
||||||
|
offset(r=1, $fn=360) {
|
||||||
|
// 353x229 but reduced for offset
|
||||||
|
square([fan_plate_x-1, fan_plate_y-1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @TOOD: Fix the translation values
|
||||||
|
translate([10, 10, 0]) { rotate([0, 0, 45]) { fan_plate_mounting_hole();
|
||||||
|
}; };
|
||||||
|
translate([10, 218, 0]) { rotate([0, 0, -45]) { fan_plate_mounting_hole();
|
||||||
|
}; };
|
||||||
|
|
||||||
|
|
||||||
|
translate([310, 180, 0]) { rotate([0, 0, 45]) { fan_plate_mounting_hole();
|
||||||
|
}; };
|
||||||
|
translate([300, 50, 0]) { rotate([0, 0, -45]) { fan_plate_mounting_hole();
|
||||||
|
}; };
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fan_cable_spacing = 30; //mm
|
||||||
|
fan_box_offset_x = 48; // mm
|
||||||
|
fan_box_offset_y = 50; // mm
|
||||||
|
fan_box_offset_z = 1; // mm
|
||||||
|
module fan() {
|
||||||
|
// https://acinfinity.com/hvac-home-ventilation/exhaust-fans/crawlspace-basement-fans/airtitan-s7-crawlspace-fan-with-speed-controller-12-inch/
|
||||||
|
// AirTitan S7 crawlspace fan
|
||||||
|
union() {
|
||||||
|
translate([fan_box_offset_x, fan_box_offset_y, fan_box_offset_z]) {
|
||||||
|
fan_box();
|
||||||
|
};
|
||||||
|
fan_plate();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
side_wall_x = 5; // mm
|
||||||
|
side_wall_y = fan_box_y + 2*filter_z + 2*fan_cable_spacing;
|
||||||
|
echo("Side wall:", side_wall_y, "by", side_wall_z);
|
||||||
|
side_wall_z = filter_y; // mm
|
||||||
|
module side_wall() {
|
||||||
|
// from rona
|
||||||
|
cube([side_wall_x, side_wall_y, side_wall_z], center=false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#fan();
|
||||||
|
|
||||||
|
// leave 30mm for the power cable gland
|
||||||
|
// that comes off the fan_box
|
||||||
|
translate([-(filter_x - fan_plate_x)/2, filter_z - fan_cable_spacing , fan_plate_z]) {
|
||||||
|
rotate([90, 0, 0]) {
|
||||||
|
#filter();
|
||||||
|
}};
|
||||||
|
|
||||||
|
// leave 30mm for the power glang
|
||||||
|
// that comes off the fan_box
|
||||||
|
translate([-(filter_x - fan_plate_x)/2, fan_plate_y + fan_cable_spacing, fan_plate_z]) {
|
||||||
|
rotate([90, 0, 0]) {
|
||||||
|
#filter();
|
||||||
|
}};
|
||||||
|
|
||||||
|
translate([-2, -20, fan_plate_z]) {
|
||||||
|
#side_wall();};
|
||||||
|
translate([filter_x, -20, fan_plate_z]) {
|
||||||
|
#side_wall();};
|
Binary file not shown.
Loading…
Reference in New Issue