summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2016-07-22 22:47:49 (UTC)
committer Michael Krelin <hacker@klever.net>2016-07-22 22:47:49 (UTC)
commit02e67d4d4976290d500ce7e7081ae5d2f213939c (patch) (unidiff)
tree916f6c53a5209137b58f5c0e1c11186b94641557
parentfe38a13146788101d364f2f03368e0505290117c (diff)
downloadcarriagery-02e67d4d4976290d500ce7e7081ae5d2f213939c.zip
carriagery-02e67d4d4976290d500ce7e7081ae5d2f213939c.tar.gz
carriagery-02e67d4d4976290d500ce7e7081ae5d2f213939c.tar.bz2
protrusion to hold the fanholder linkHEADmaster
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--x-carriage-adapter.scad13
1 files changed, 13 insertions, 0 deletions
diff --git a/x-carriage-adapter.scad b/x-carriage-adapter.scad
index 9cf6c08..9891072 100644
--- a/x-carriage-adapter.scad
+++ b/x-carriage-adapter.scad
@@ -14,79 +14,92 @@ mounting_holes_on_top = [ // the offsets of mounting holes on the top
14 feeds_apart = 18; // the distance between nozzles (and, therefore filament feeds) 14 feeds_apart = 18; // the distance between nozzles (and, therefore filament feeds)
15 15
16 feed_shell_d = 17; // the shell diameter around filament feed, pushfit's diameter 16 feed_shell_d = 17; // the shell diameter around filament feed, pushfit's diameter
17 screw_shell_d = 8; // the shell diameter around screws 17 screw_shell_d = 8; // the shell diameter around screws
18 thread_h = 10.5; // the height of the pushfit's thread 18 thread_h = 10.5; // the height of the pushfit's thread
19 hinge_s = 6; // hinges thickness 19 hinge_s = 6; // hinges thickness
20 20
21 screwhead_d = 5.5; // the diameter of the screw head 21 screwhead_d = 5.5; // the diameter of the screw head
22 screwhead_h = 3; // the height of the screw head 22 screwhead_h = 3; // the height of the screw head
23 23
24 ms_size = [19.8,6,10]; // microswitch dimensions 24 ms_size = [19.8,6,10]; // microswitch dimensions
25 ms_screws_apart = 9.5; // distance between microswitch mounting screws 25 ms_screws_apart = 9.5; // distance between microswitch mounting screws
26 ms_switch_offset = 2.5; // the offset of the switch from the center 26 ms_switch_offset = 2.5; // the offset of the switch from the center
27 ms_bump = ms_size[1]; // how far from hinge microswitch is mounted 27 ms_bump = ms_size[1]; // how far from hinge microswitch is mounted
28 28
29 lower_by = 15; // lower hotend from the original intention by this long 29 lower_by = 15; // lower hotend from the original intention by this long
30 gap = 5; // gap between microswitch and heatsink 30 gap = 5; // gap between microswitch and heatsink
31 31
32 ps_offset = 3+3; // pushscrew offset from the hinge 32 ps_offset = 3+3; // pushscrew offset from the hinge
33 33
34 back_thickness = 8; // thickness of the part behind the hinge 34 back_thickness = 8; // thickness of the part behind the hinge
35 nut_thickness = 2.5; // intelligent guess should suffice 35 nut_thickness = 2.5; // intelligent guess should suffice
36 nut_width = 5.5; // intelligent guess should suffice 36 nut_width = 5.5; // intelligent guess should suffice
37 37
38link_thickness=3; // thickness of link holder protrusion
39link_or=3.5; // link outer diameter
40link_ir=1.5; // link inner diameter
41
38use <threads.scad>; 42use <threads.scad>;
39/* the internal thread for e3d bowden coupling: http://e3d-online.com/E3D-v6/Spares/Threaded-Bowden-Coupling-1.75mm-Filament */ 43/* the internal thread for e3d bowden coupling: http://e3d-online.com/E3D-v6/Spares/Threaded-Bowden-Coupling-1.75mm-Filament */
40module pushfit_thread(h=thread_h) { 44module pushfit_thread(h=thread_h) {
41 thr = 3/8 + .5/25.4; 45 thr = 3/8 + .5/25.4;
42 slit = 25.4*thr/2 + 0.4; 46 slit = 25.4*thr/2 + 0.4;
43 translate([0,0,-1]) if(draft) cylinder(d=thr*25.4,h=h+2); 47 translate([0,0,-1]) if(draft) cylinder(d=thr*25.4,h=h+2);
44 else english_thread(diameter=thr,threads_per_inch=28,length=(h+2)/25.4,internal=true); 48 else english_thread(diameter=thr,threads_per_inch=28,length=(h+2)/25.4,internal=true);
45 translate([-2,-slit,-1]) cube([4,slit,h+2]); 49 translate([-2,-slit,-1]) cube([4,slit,h+2]);
46} 50}
47 51
48 52
49 sff = hs_nozzles_from_back+gap; // switch from feeds 53 sff = hs_nozzles_from_back+gap; // switch from feeds
50 hff = sff+ms_size[1]+ms_bump+thread_h/2;// hinges from feeds 54 hff = sff+ms_size[1]+ms_bump+thread_h/2;// hinges from feeds
51 55
52module holder() { 56module holder() {
53 translate([0,0,0]) difference() { 57 translate([0,0,0]) difference() {
54 union() { 58 union() {
55 hull() { 59 hull() {
56 rs = 3; drs = screw_shell_d/2-rs; 60 rs = 3; drs = screw_shell_d/2-rs;
57 rf = 6; drf = feed_shell_d/2-rf; 61 rf = 6; drf = feed_shell_d/2-rf;
58 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0]) { 62 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0]) {
59 translate([0,0,drf]) 63 translate([0,0,drf])
60 cylinder(d=feed_shell_d,h=thread_h-drf,$fn=60); 64 cylinder(d=feed_shell_d,h=thread_h-drf,$fn=60);
61 cylinder(r=rf,h=thread_h,$fn=30); 65 cylinder(r=rf,h=thread_h,$fn=30);
62 } 66 }
63 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) { 67 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) {
64 translate([0,0,drs]) 68 translate([0,0,drs])
65 cylinder(d=screw_shell_d,h=thread_h-drs,$fn=30); 69 cylinder(d=screw_shell_d,h=thread_h-drs,$fn=30);
66 cylinder(r=rs,h=thread_h,$fn=30); 70 cylinder(r=rs,h=thread_h,$fn=30);
67 } 71 }
68 } 72 }
73 difference() {
74 hx0 = max(mounting_holes_on_top[1][1],mounting_holes_on_top[2][1])+screw_shell_d/2;
75 hull() {
76 for(ls=[-1,1]) translate([0,hx0+ls*link_or,thread_h+ls*link_or])
77 rotate([0,90,0]) cylinder(r=link_or,h=link_thickness,center=true,$fn=30);
78 }
79 translate([0,hx0+link_or,thread_h+link_or])
80 rotate([0,90,0]) cylinder(r=link_ir,h=link_thickness+2,center=true,$fn=30);
81 } // difference
69 hull() { 82 hull() {
70 translate([0,0,thread_h/2]) cube(size=[hs_size[0]-2*hinge_s-2*slide_tolerance,feed_shell_d,thread_h],center=true); 83 translate([0,0,thread_h/2]) cube(size=[hs_size[0]-2*hinge_s-2*slide_tolerance,feed_shell_d,thread_h],center=true);
71 translate([0,-hff,thread_h/2]) 84 translate([0,-hff,thread_h/2])
72 rotate([0,90,0]) 85 rotate([0,90,0])
73 cylinder(d=thread_h,h=hs_size[0]-2*hinge_s-2*slide_tolerance,center=true,$fn=60); 86 cylinder(d=thread_h,h=hs_size[0]-2*hinge_s-2*slide_tolerance,center=true,$fn=60);
74 } 87 }
75 }//union 88 }//union
76 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0]) 89 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0])
77 pushfit_thread(); 90 pushfit_thread();
78 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) { 91 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) {
79 translate([0,0,-1]) cylinder(d=3,h=thread_h+2,$fn=12); // TODO: sink heads 92 translate([0,0,-1]) cylinder(d=3,h=thread_h+2,$fn=12); // TODO: sink heads
80 translate([0,0,thread_h/2]) cylinder(d=screwhead_d+slide_tolerance,h=thread_h/2+1,$fn=30); 93 translate([0,0,thread_h/2]) cylinder(d=screwhead_d+slide_tolerance,h=thread_h/2+1,$fn=30);
81 } 94 }
82 // hinge 95 // hinge
83 translate([0,-hff,thread_h/2]) 96 translate([0,-hff,thread_h/2])
84 rotate([0,90,0]) cylinder(d=3+slide_tolerance,h=hs_size[0],center=true,$fn=12); 97 rotate([0,90,0]) cylinder(d=3+slide_tolerance,h=hs_size[0],center=true,$fn=12);
85 // push screw 98 // push screw
86 hull() for(oy=[-1,1]) translate([0,-hff+ps_offset+oy,-1]) cylinder(d=3+play_tolerance,h=thread_h+2,$fn=30); 99 hull() for(oy=[-1,1]) translate([0,-hff+ps_offset+oy,-1]) cylinder(d=3+play_tolerance,h=thread_h+2,$fn=30);
87 // tune screw 100 // tune screw
88 translate([0,-sff-ms_size[1]/2,-1]) cylinder(d=3,h=thread_h+2); 101 translate([0,-sff-ms_size[1]/2,-1]) cylinder(d=3,h=thread_h+2);
89 }//difference 102 }//difference
90} 103}
91 104
92 105