summaryrefslogtreecommitdiff
path: root/unbacklash.scad
authorMichael Krelin <hacker@klever.net>2017-12-16 15:09:58 (UTC)
committer Michael Krelin <hacker@klever.net>2017-12-16 15:09:58 (UTC)
commit3f077364320ef368c4fd64d476c6e9fd9394c07a (patch) (unidiff)
tree60517e0de3b0cc5a48ddc522c561a0cc6a955e46 /unbacklash.scad
parent98f9a2d2169059542f92d6546f9979664b805788 (diff)
downloadextrudery-3f077364320ef368c4fd64d476c6e9fd9394c07a.zip
extrudery-3f077364320ef368c4fd64d476c6e9fd9394c07a.tar.gz
extrudery-3f077364320ef368c4fd64d476c6e9fd9394c07a.tar.bz2
anti-backlash bowden clip
Diffstat (limited to 'unbacklash.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--unbacklash.scad53
1 files changed, 53 insertions, 0 deletions
diff --git a/unbacklash.scad b/unbacklash.scad
new file mode 100644
index 0000000..7b01cf5
--- a/dev/null
+++ b/unbacklash.scad
@@ -0,0 +1,53 @@
1// The diameter of the inner collet
2inner_diameter = 6;
3// The diameter of the inner collet top lip
4outer_diameter = 10;
5// Thickness
6thickness = 1.5;
7
8/* [Hidden] */
9layer_height=0.15; extrusion_width=0.4;
10epsilon=.01;
11
12module unbacklash(
13 id=inner_diameter,
14 od=outer_diameter,
15 h=thickness,
16 alpha=10,
17 overlap=0.8,
18 split=2*extrusion_width,
19) {
20 fnd=PI*4; fnr=2*fnd;
21 sd = (od-id)/2+overlap;
22 s = sd;
23 r = sd/2;
24 H=3*h;
25 % translate([0,0,-h]) cylinder(d=id,h=3*h,$fn=id*fnd);
26 difference() {
27 union() {
28 translate([-od/2,0,0])
29 cube(size=[od,od/2+s-r,h]);
30 hull() for(sx=[-1,1])
31 translate([sx*(od/2-r),od/2+s-r,0])
32 cylinder(r=r,h=H,$fn=r*fnr);
33 for(sx=[-1,1])
34 hull() for(y=[0,-od/2+sd/2])
35 translate([sx*(od/2-sd/2),y,0])
36 cylinder(d=sd,h=h,$fn=sd*fnd);
37 * translate([-od/2,od/2,0])
38 cube(size=[od,r,H]);
39 }
40 translate([0,0,-1]) cylinder(d=id,h=h+2,$fn=od*fnd);
41 translate([-id/2+overlap,-od/2-1,-1]) cube(size=[id-2*overlap,od/2+1,h+2]);
42 translate([0,0,h])
43 rotate([alpha,0,0])
44 translate([-od/2-1,-od,0])
45 cube(size=[od+2,od,h]);
46 hull() for(y=[0,od/2-split/2])
47 translate([0,y,-1])
48 cylinder(d=split,h=h+2,$fn=split*fnd);
49 translate([0,od/2-split,-1]) cylinder(r=split,h=h+2,$fn=split*fnr);
50 }
51}
52
53unbacklash();