-
Notifications
You must be signed in to change notification settings - Fork 171
/
extruder_fan_clip_parts.scad
67 lines (51 loc) · 1.47 KB
/
extruder_fan_clip_parts.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
include <config.scad>
use <GDMUtils.scad>
use <joiners.scad>
$fa = 2;
$fs = 2;
h = 6;
thick = 8;
inset = thick-2.5;
module extruder_fan_clip()
{
color("violet")
prerender(convexity=10)
union() {
difference() {
union() {
// Base
up(h-inset+thick/2) {
difference() {
union() {
chamfcube([extruder_fan_size+8, extruder_fan_size+8, thick], chamfer=12, chamfaxes=[0,0,1], center=true);
cube([extruder_fan_size+3*joiner_width, extruder_fan_size/2, thick], center=true);
}
cylinder(d=extruder_fan_size, h=100, center=true);
down(thick/2) {
cube([extruder_fan_size+2*printer_slop, extruder_fan_size+2*printer_slop, inset*2], center=true);
}
}
up((inset+1)/2) {
cylinder(d=extruder_fan_size/2, h=thick-inset-1, center=true);
zring(n=8, r=extruder_fan_size/4) {
cube([extruder_fan_size/2+1, 3, thick-inset-1], center=true);
}
}
}
}
// Fan clip joiner clearance
xspread(extruder_fan_size+2*joiner_width) {
xrot(-90) half_joiner_clear(h=extruder_fan_size/2, w=joiner_width, a=joiner_angle, clearance=2);
}
}
// Fan clip Joiners
xspread(extruder_fan_size+2*joiner_width) {
xrot(-90) half_joiner(h=extruder_fan_size/2, w=joiner_width, l=h+thick-inset, a=joiner_angle);
}
}
}
module extruder_fan_clip_parts() { // make me
up(h+thick-inset) xrot(180) extruder_fan_clip();
}
extruder_fan_clip_parts();
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap