added strain relief part by AndrewBCN
[clinton/wilson.git] / scad / strain_relief.scad
1 //-- Stepper mounted extruder cable harness strain relief
2 //-- with nylon ties
3 //-- by AndrewBCN - Barcelona, Spain - December 2014
4 //-- GPLV3
5
6 //-- I designed this for use with Marty Rice's awesome
7 //-- Direct Drive Extruder which I have installed on my
8 //-- P3Steel, but it can probably be used for many other
9 //-- extruder setups. Simple fact is, there is a thick
10 //-- bunch of electrical wires that comes out of the extruder, go
11 //-- around the top of the printer and then down to the
12 //-- RAMPS electronics. All this moves left and right together
13 //-- with the X-carriage and common sense dictates that a strain
14 //-- relief is required to avoid wire breakage and the usual
15 //-- disastrous consequences.
16 //-- I have designed this strain relief so that it is very easy
17 //-- to install even after everything is in place. It requires
18 //-- one long and two short nylon ties, the long one goes around
19 //-- the stepper and the two shorter ones are tightened around the
20 //-- cable harness.
21
22 //-- Some tweaks by MRice - I made the bit around the cables
23 //-- curved so that it would grab a little better, and
24 //-- parameterized the larger ziptie cut and then made it a
25 //-- little wider than the original.
26
27 //-- Parameters
28 large_ziptie_w = 6;
29 small_ziptie_w = 3;
30 mount_w = 4 + large_ziptie_w;
31
32
33 //-- Modules
34 module ziptie_groove() {
35 rotate([90,0,0]) difference() {
36 cylinder(r=12,h=small_ziptie_w);
37 translate([0,0,-1]) cylinder(r=10,h=small_ziptie_w+2);
38 }
39 }
40
41 module strf() {
42 // stepper mount
43 difference() {
44 union() {
45 union() {
46 cube([17.2,6,mount_w]);
47 translate([17.2,0,0]) rotate([0,0,45]) cube([6,6,mount_w]);
48 }
49 mirror([1,0,0]) union() {
50 cube([17.2,6,mount_w]);
51 translate([17.2,0,0]) rotate([0,0,45]) cube([6,6,mount_w]);
52 }
53 }
54 // tunnel for nylon tie
55 translate([-25,2.2,mount_w/2-large_ziptie_w/2]) cube([50,large_ziptie_w/3,large_ziptie_w]);
56 // delete some useless material
57 translate([-30.4,-1,-.5]) cube([10,10,mount_w+1]);
58 mirror([1,0,0]) translate([-30.4,-1,-.5]) cube([10,10,mount_w+1]);
59 }
60 // arm
61 difference() {
62 union() {
63 translate([7,0,7]) cube([6,6,28]);
64 translate([7,6,25]) cube([6,6,10]);
65 translate([7,0,33]) rotate([0,45,0]) cube([6,12,10]);
66 translate([13,0,33]) mirror([1,0,0]) rotate([0,45,0]) cube([6,12,10]);
67 translate([7,0,33]) cube([6,12,10]);
68 }
69 // cup to hold harness
70 translate([10,16,49.5]) rotate([90,0,0]) scale([1,1.4,1]) #cylinder(r=9, h=18,$fn=40);
71 // save some material
72 translate([4,13.08,17.9]) rotate([45,0,0]) cube([10,10,10]);
73 // tunnels for nylon ties
74 translate([10,4,46]) #ziptie_groove();
75 translate([10,11,46]) #ziptie_groove();
76 }
77 }
78
79 //-- Print the part
80 rotate([90,0,0]) strf();