forked from GregFrost/PrusaMendel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gregs-belt-clamp.scad
102 lines (87 loc) · 2.17 KB
/
gregs-belt-clamp.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
96
97
98
99
100
101
102
//difference()
//{
//cube([28,14,6],center=true);
//for (i=[-1,1])
//{
//translate([i*7,0,0])
//{
// translate([0,0,0.5])
// cylinder(r1=1.5,r2=4.5,h=3,$fn=16);
// cylinder(r=1.5,h=8,center=true,$fn=16);
//}
//}
//}
include<configuration.scad>
belt_thickness=1.5;
tooth_height=1.5;
tooth_spacing=5;
module gregs_x_belt_clamp ()
gregs_y_belt_clamp();
module gregs_y_belt_clamp ()
{
thickness=2.5;
hole_separation=15;
mount_hole_d=6;
tension_hole_d=4.8;
belt_width=6;
belt_slot_height=belt_thickness+tooth_height;
clamp_width=2*thickness+mount_hole_d;
clamp_height=belt_slot_height+thickness+tension_hole_d+thickness+tooth_height;
clamp_length=hole_separation+mount_hole_d+2*thickness;
rotate([90,0,0])
translate([0,clamp_width/2,0])
difference()
{
translate([0,0,clamp_height/2])
cube([clamp_length,clamp_width,clamp_height],center=true);
translate([0,0,belt_slot_height/2-1])
cube([belt_width,clamp_width+2,belt_slot_height+2],
center=true);
translate([0,0,belt_slot_height+thickness+tension_hole_d/2])
rotate([90,0,0])
cylinder(r=tension_hole_d/2,h=clamp_width+2,center=true,$fn=16);
for (i=[-1:1])
{
translate([0,i*tooth_spacing,clamp_height-tooth_height/2+1])
cube([belt_width,tooth_spacing/2,tooth_height+2],center=true);
}
for (i=[-1,1])
{
translate([i*hole_separation/2,0,-1])
rotate(360/16)
cylinder(r=mount_hole_d/2,h=clamp_height+2,$fn=8);
}
}
top_thickness=thickness+tooth_height;
translate([0,clamp_width/2+2,0])
difference()
{
translate([0,0,top_thickness/2])
difference()
{
cube([clamp_length,clamp_width,top_thickness],true);
for (i=[-1,1])
{
translate([i*hole_separation/2,0,0])
cylinder(r=mount_hole_d/2,h=top_thickness+2,center=true,$fn=16);
}
}
for (i=[-1:1])
translate([0,i*tooth_spacing,top_thickness-tooth_height/2+1])
cube([belt_width,tooth_spacing/2,tooth_height+2],center=true);
}
translate([0,3*clamp_width/2+4,0])
difference()
{
translate([0,0,top_thickness/2])
difference()
{
cube([clamp_length,clamp_width,top_thickness],true);
for (i=[-1,1])
{
translate([i*hole_separation/2,0,0])
cylinder(r=mount_hole_d/2,h=top_thickness+2,center=true,$fn=16);
}
}
}
}