Added 30x10 square radial fan.

This commit is contained in:
Martin Budden 2021-02-04 18:26:44 +00:00
parent 4cb324ed37
commit dd38fa6e5d
2 changed files with 33 additions and 17 deletions

View File

@ -40,8 +40,10 @@ function blower_base(type) = type[13]; //! Thickness of the base
function blower_top(type) = type[14]; //! Thickness of the top function blower_top(type) = type[14]; //! Thickness of the top
function blower_wall(type) = type[15]; //! Side wall thickness function blower_wall(type) = type[15]; //! Side wall thickness
function blower_lug(type) = type[16]; //! Height of the lugs function blower_lug(type) = type[16]; //! Height of the lugs
function blower_wall_left(type) = type[15]; //! Left side wall thickness
function blower_wall_right(type) = type[17]; //! Right wall thickness (for square fans)
function blower_casing_is_square(type) = len(blower_screw_holes(type)) > 3; //! True for square radial fans, false for spiral shape radial blowers function blower_casing_is_square(type) = blower_depth(type) < 15; //! True for square radial fans, false for spiral shape radial blowers
function blower_exit_offset(type) = blower_casing_is_square(type) ? blower_length(type) / 2 : blower_exit(type) / 2; //! Offset of exit's centre from the edge function blower_exit_offset(type) = blower_casing_is_square(type) ? blower_length(type) / 2 : blower_exit(type) / 2; //! Offset of exit's centre from the edge
fan_colour = grey(20); fan_colour = grey(20);
@ -74,41 +76,54 @@ module blower_fan(type, casing_is_square) {
module blower_square(type) { //! Draw a square blower module blower_square(type) { //! Draw a square blower
width = blower_width(type); width = blower_width(type);
depth = blower_depth(type); depth = blower_depth(type);
wall = blower_wall(type); wall_left = blower_wall_left(type);
wall_right = blower_wall_right(type);
hole_count = len(blower_screw_holes(type));
hole_pitch = (blower_screw_holes(type)[1].x - blower_screw_holes(type)[0].x) / 2; hole_pitch = (blower_screw_holes(type)[1].x - blower_screw_holes(type)[0].x) / 2;
corner_radius = width / 2 - hole_pitch; corner_radius = width / 2 - hole_pitch;
corner_inset = (width - blower_exit(type)) / 2; corner_inset = (width - blower_exit(type) - wall_left - wall_right) / (hole_count == 2 ? 1 : 2);
module inset_corners()
translate([width / 2, width / 2])
for(i = hole_count == 2 ? [1, 3] : [0 : 3])
rotate(i * 90)
translate([-width / 2 - eps, -width/ 2 - eps])
quadrant(corner_inset, corner_inset - corner_radius);
module square_inset_corners(remove_center = false) module square_inset_corners(remove_center = false)
difference() { difference() {
//overall outside //overall outside
square([width, width], center = false); rounded_square([width, width], corner_radius, center = false);
if (remove_center) { if (remove_center) {
// cut out the inside, leaving the corners // cut out the inside, leaving the corners
translate([corner_inset + wall, -eps]) translate([hole_count == 2 ? wall_left : corner_inset + wall_left, -eps])
square([width - 2 * (wall + corner_inset), width - wall + eps], center = false); square([blower_exit(type), width / 2], center = false);
translate(blower_axis(type))
translate([wall, corner_inset + wall]) circle(d = blower_bore(type) + 1);
square([width - 2 * wall, width - 2 * (wall + corner_inset)], center = false);
} else { } else {
// cut out the bore for the fan // cut out the bore for the fan
translate(blower_axis(type)) translate(blower_axis(type))
circle(d = blower_bore(type)); circle(d = blower_bore(type));
} }
// corner inset inset_corners();
translate([width / 2, width / 2])
for(i = [0 : 3])
rotate(i * 90)
translate([-width / 2 - eps, -width/ 2 - eps])
quadrant(corner_inset, corner_inset - corner_radius);
} }
base_height = blower_base(type); base_height = blower_base(type);
linear_extrude(base_height) linear_extrude(base_height)
difference () { difference () {
rounded_square([width, width], corner_radius, center = false); rounded_square([width, width], corner_radius, center = false);
blower_hole_positions(type)
circle(d = blower_screw_hole(type));
}
// add the lugs which may be higher than the base
linear_extrude(blower_lug(type))
difference () {
intersection() {
rounded_square([width, width], corner_radius, center = false);
inset_corners();
}
blower_hole_positions(type) blower_hole_positions(type)
circle(d = blower_screw_hole(type)); circle(d = blower_screw_hole(type));
} }

View File

@ -24,8 +24,9 @@
// h h s t t // h h s t t
RB5015 = ["RB5015", "Blower Runda RB5015", 51.3, 51, 15, 31.5, M4_cap_screw, 26, [27.3, 25.4], 4.5, [[4.3, 45.4], [47.3,7.4]], 20, 14, 1.5, 1.3, 1.2, 15]; RB5015 = ["RB5015", "Blower Runda RB5015", 51.3, 51, 15, 31.5, M4_cap_screw, 26, [27.3, 25.4], 4.5, [[4.3, 45.4], [47.3,7.4]], 20, 14, 1.5, 1.3, 1.2, 15];
PE4020 = ["PE4020", "Blower Pengda Technology 4020", 40, 40, 20, 27.5, M3_cap_screw, 22, [21.5, 20 ], 3.2, [[37,3],[3,37],[37,37]], 29.3, 17, 1.7, 1.2, 1.3, 13]; PE4020 = ["PE4020", "Blower Pengda Technology 4020", 40, 40, 20, 27.5, M3_cap_screw, 22, [21.5, 20 ], 3.2, [[37,3],[3,37],[37,37]], 29.3, 17, 1.7, 1.2, 1.3, 13];
BL40x10 =["BL40x10","Square radial fan 4010", 40, 40,9.5, 27, M2_cap_screw, 16, [24, 20 ], 2.4, [[2,2],[38,2],[2,38],[38,38]], 30 , 9.5, 1.5, 1.5, 1.1, 1.5]; BL30x10 =["BL30x10","Square radial fan 3010", 30, 30,10.1,25, M2_cap_screw, 16, [16, 15 ], 2.4, [[2,28],[28,2]], 21.2, 9.5, 1.1, 1.2, 2.5, 2.8, 0.9];
BL40x10 =["BL40x10","Square radial fan 4010", 40, 40,9.5, 27, M2_cap_screw, 16, [24, 20 ], 2.4, [[2,2],[38,2],[2,38],[38,38]], 27.8, 9.5, 1.5, 1.5, 1.1, 1.5, 1.1];
blowers = [BL40x10, PE4020, RB5015]; blowers = [BL30x10, BL40x10, PE4020, RB5015];
use <blower.scad> use <blower.scad>