-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcar_air_vent_hose_adapter.scad
95 lines (82 loc) · 2.05 KB
/
car_air_vent_hose_adapter.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Air vent hose adapter for F150. I use this to redirect the flow of A/C to my thermally
// challenged Comma 3x during the hotter months.
h = 55;
d = 100;
w = 55;
t = 2;
main();
module main(){
difference() {
box();
box(-t);
tube();
// logo();
}
connector();
scoop();
corners([60, 40]) translate([0, 0, h]) rotate([0, 180, 90]) clip();
}
// Box that interfaces with vent
module box(o=0) {
hull() {
translate([0, 0, (w+o+5)/2]) corners([d+o, w+o]) sphere(10);
corners([d+o, w+o+5]) half_sphere(10);
}
}
// Hollow bit that redirects air
module scoop() {
r1 = 70/2;
difference() {
box(-t);
hull() {
translate([-55/2, 0, -30/2]) sphere(r1, true);
translate([40, -20/2, -30/2]) sphere(r1+20, true);
}
tube();
}
}
module connector() {
difference() {
tube(t/2);
tube();
box(-t);
}
}
module tube(o=0) {
r = (23.8)/2 + o;
translate([30, 0, r+10-o]) rotate([90, 0, 35]) cylinder(60-o, r=r);
}
module half_sphere(radius) {
difference() {
sphere(radius);
translate([0, 0, -radius]) cube(radius*2, true);
}
}
module logo(){
translate([105, 0, 64]) rotate([0, 0, 270]) linear_extrude(2) text("3X", size=80, font="Monument Extended:style=bold, sans-serif", direction="ttb");
}
module corners(dimensions=[1,1], o=0) {
x = dimensions[0]/2;
y = dimensions[1]/2;
translate([-x, y]) children();
translate([x, y]) children();
translate([-x, -y]) children();
translate([x, -y]) children();
}
// The thingies that clis onto the vent fins
module clip() {
r = 6;
t = 2;
h = h + 10;
translate([0, 0, 16]) difference() {
cylinder(h, r=r);
hull() {
translate([0, 0, h - 25]) cube([h, t+1, 1], true);
translate([0, 0, h - 5 ]) cube([h, t, 1], true);
}
hull() {
translate([0, 0, h - 5 ]) cube([h, t, 1], true);
translate([0, 0, h]) cube([h, t+1, 1], true);
}
}
}