author | Michael Krelin <hacker@klever.net> | 2017-12-16 15:09:58 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2017-12-16 15:09:58 (UTC) |
commit | 3f077364320ef368c4fd64d476c6e9fd9394c07a (patch) (unidiff) | |
tree | 60517e0de3b0cc5a48ddc522c561a0cc6a955e46 /unbacklash.scad | |
parent | 98f9a2d2169059542f92d6546f9979664b805788 (diff) | |
download | extrudery-3f077364320ef368c4fd64d476c6e9fd9394c07a.zip extrudery-3f077364320ef368c4fd64d476c6e9fd9394c07a.tar.gz extrudery-3f077364320ef368c4fd64d476c6e9fd9394c07a.tar.bz2 |
anti-backlash bowden clip
-rw-r--r-- | unbacklash.scad | 53 |
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 | ||
2 | inner_diameter = 6; | ||
3 | // The diameter of the inner collet top lip | ||
4 | outer_diameter = 10; | ||
5 | // Thickness | ||
6 | thickness = 1.5; | ||
7 | |||
8 | /* [Hidden] */ | ||
9 | layer_height=0.15; extrusion_width=0.4; | ||
10 | epsilon=.01; | ||
11 | |||
12 | module 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 | |||
53 | unbacklash(); | ||