-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFanAdapter.scad
75 lines (60 loc) · 1.6 KB
/
FanAdapter.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
fan_size = 120;
fan_diameter = 115;
chamfer_width = 4;
screw_hole_diameter = 4.5;
screw_hole_distance = 105.2;
funnel_height = 30;
funnel_wall_thickness = 2;
filter_inner_diameter = 87.5;
plug_height = 10;
$fa = 1.5;
$fs = 1;
module ChamferedSquare(size, chamfer_width)
{
// Constant figured out experimentally
delta = 1.207 * chamfer_width;
offset(delta = delta, chamfer = true) square(size - 2 * delta, center = true);
}
module Plate()
{
difference()
{
ChamferedSquare(fan_size, chamfer_width);
circle(fan_diameter / 2);
for (i = [-1, 1])
{
for (j = [-1, 1])
{
x = i * screw_hole_distance / 2;
y = j * screw_hole_distance / 2;
translate([x, y])
circle(screw_hole_diameter / 2);
}
}
}
}
module Funnel()
{
translate([0,0,plug_height])
difference()
{
cylinder(h = funnel_height,
r1 = filter_inner_diameter / 2,
r2 = fan_diameter / 2 + funnel_wall_thickness);
translate([0, 0, -0.01])
cylinder(h = funnel_height + 0.02,
r1 = filter_inner_diameter / 2 - funnel_wall_thickness,
r2 = fan_diameter / 2);
}
difference() {
cylinder(h = plug_height, r = filter_inner_diameter/2);
translate([0, 0, -0.01])
cylinder(h = plug_height + 0.02, r = filter_inner_diameter/2 - funnel_wall_thickness);
}
}
mirror([0,0,1]) {
translate([0, 0, funnel_height + plug_height])
linear_extrude(2)
Plate();
Funnel();
}