summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2016-07-22 22:28:52 (UTC)
committer Michael Krelin <hacker@klever.net>2016-07-22 22:28:52 (UTC)
commit8cfadb6a25fc863afd144fee8ba21b75b7cc49d8 (patch) (unidiff)
treef5da6edcf8351d5b7015b837a101e3fb62ee5be1
parenta81ecf3156452706c5f39d2d5d8edf3970a9ccb7 (diff)
downloadcarriagery-8cfadb6a25fc863afd144fee8ba21b75b7cc49d8.zip
carriagery-8cfadb6a25fc863afd144fee8ba21b75b7cc49d8.tar.gz
carriagery-8cfadb6a25fc863afd144fee8ba21b75b7cc49d8.tar.bz2
shortened the base
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--x-carriage-adapter.scad2
1 files changed, 1 insertions, 1 deletions
diff --git a/x-carriage-adapter.scad b/x-carriage-adapter.scad
index af91d52..f3ebb09 100644
--- a/x-carriage-adapter.scad
+++ b/x-carriage-adapter.scad
@@ -1,145 +1,145 @@
1screw_tolerance=0.1; slide_tolerance=.3; play_tolerance=.8; 1screw_tolerance=0.1; slide_tolerance=.3; play_tolerance=.8;
2draft=true; 2draft=true;
3use <e3dchimera.scad>; 3use <e3dchimera.scad>;
4 4
5 assembly_height = 49.5; // the height of e3d chimera assembly in e3dchimera.scad 5 assembly_height = 49.5; // the height of e3d chimera assembly in e3dchimera.scad
6 hs_nozzles_from_back = 6;// the distance from nozzles from the back of the heatsink 6 hs_nozzles_from_back = 6;// the distance from nozzles from the back of the heatsink
7 hs_size = [30,18,30]; // the heatsink size 7 hs_size = [30,18,30]; // the heatsink size
8 mounting_holes_from_top = [// the offsets of mounting holes on the back 8 mounting_holes_from_top = [// the offsets of mounting holes on the back
9 [0, 20], [-4.5,10], [4.5,10] 9 [0, 20], [-4.5,10], [4.5,10]
10]; 10];
11 mounting_holes_on_top = [// the offsets of mounting holes on the top 11 mounting_holes_on_top = [// the offsets of mounting holes on the top
12 [0,-3], [-17/2,9], [17/2,9] 12 [0,-3], [-17/2,9], [17/2,9]
13]; 13];
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
38use <threads.scad>; 38use <threads.scad>;
39/* the internal thread for e3d bowden coupling: http://e3d-online.com/E3D-v6/Spares/Threaded-Bowden-Coupling-1.75mm-Filament */ 39/* 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) { 40module pushfit_thread(h=thread_h) {
41 thr = 3/8 + .5/25.4; 41 thr = 3/8 + .5/25.4;
42 slit = 25.4*thr/2 + 0.4; 42 slit = 25.4*thr/2 + 0.4;
43 translate([0,0,-1]) if(draft) cylinder(d=thr*25.4,h=h+2); 43 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); 44 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]); 45 translate([-2,-slit,-1]) cube([4,slit,h+2]);
46} 46}
47 47
48 48
49 sff = hs_nozzles_from_back+gap; // switch from feeds 49 sff = hs_nozzles_from_back+gap; // switch from feeds
50 hff = sff+ms_size[1]+ms_bump+thread_h/2;// hinges from feeds 50 hff = sff+ms_size[1]+ms_bump+thread_h/2;// hinges from feeds
51 51
52module holder() { 52module holder() {
53 translate([0,0,0]) difference() { 53 translate([0,0,0]) difference() {
54 union() { 54 union() {
55 hull() { 55 hull() {
56 rs = 3; drs = screw_shell_d/2-rs; 56 rs = 3; drs = screw_shell_d/2-rs;
57 rf = 6; drf = feed_shell_d/2-rf; 57 rf = 6; drf = feed_shell_d/2-rf;
58 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0]) { 58 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0]) {
59 translate([0,0,drf]) 59 translate([0,0,drf])
60 cylinder(d=feed_shell_d,h=thread_h-drf,$fn=60); 60 cylinder(d=feed_shell_d,h=thread_h-drf,$fn=60);
61 cylinder(r=rf,h=thread_h,$fn=30); 61 cylinder(r=rf,h=thread_h,$fn=30);
62 } 62 }
63 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) { 63 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) {
64 translate([0,0,drs]) 64 translate([0,0,drs])
65 cylinder(d=screw_shell_d,h=thread_h-drs,$fn=30); 65 cylinder(d=screw_shell_d,h=thread_h-drs,$fn=30);
66 cylinder(r=rs,h=thread_h,$fn=30); 66 cylinder(r=rs,h=thread_h,$fn=30);
67 } 67 }
68 } 68 }
69 hull() { 69 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); 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);
71 translate([0,-hff,thread_h/2]) 71 translate([0,-hff,thread_h/2])
72 rotate([0,90,0]) 72 rotate([0,90,0])
73 cylinder(d=thread_h,h=hs_size[0]-2*hinge_s-2*slide_tolerance,center=true,$fn=60); 73 cylinder(d=thread_h,h=hs_size[0]-2*hinge_s-2*slide_tolerance,center=true,$fn=60);
74 } 74 }
75 }//union 75 }//union
76 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0]) 76 for(sx=[-1,1]) translate([sx*feeds_apart/2,0,0])
77 pushfit_thread(); 77 pushfit_thread();
78 for(mhot = mounting_holes_on_top) translate([mhot[0],mhot[1],0]) { 78 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 79 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); 80 translate([0,0,thread_h/2]) cylinder(d=screwhead_d+slide_tolerance,h=thread_h/2+1,$fn=30);
81 } 81 }
82 // hinge 82 // hinge
83 translate([0,-hff,thread_h/2]) 83 translate([0,-hff,thread_h/2])
84 rotate([0,90,0]) cylinder(d=3+slide_tolerance,h=hs_size[0],center=true,$fn=12); 84 rotate([0,90,0]) cylinder(d=3+slide_tolerance,h=hs_size[0],center=true,$fn=12);
85 // push screw 85 // 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); 86 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 87 // tune screw
88 translate([0,-sff-ms_size[1]/2,-1]) cylinder(d=3,h=thread_h+2); 88 translate([0,-sff-ms_size[1]/2,-1]) cylinder(d=3,h=thread_h+2);
89 }//difference 89 }//difference
90} 90}
91 91
92 92
93module base() { 93module base() {
94 us = 2*ms_size[2]; 94 us = ms_size[2]+screw_shell_d/2;
95 translate([0,-hff,0]) difference() { 95 translate([0,-hff,0]) difference() {
96 union() { 96 union() {
97 for(sx=[-1,1]) translate([sx*(hs_size[0]-hinge_s)/2,0,0]) hull() { 97 for(sx=[-1,1]) translate([sx*(hs_size[0]-hinge_s)/2,0,0]) hull() {
98 translate([0,0,thread_h/2]) 98 translate([0,0,thread_h/2])
99 rotate([0,90,0]) cylinder(d=thread_h,h=hinge_s,center=true,$fn=60); 99 rotate([0,90,0]) cylinder(d=thread_h,h=hinge_s,center=true,$fn=60);
100 cube(size=[hinge_s,thread_h,thread_h],center=true); 100 cube(size=[hinge_s,thread_h,thread_h],center=true);
101 translate([-hinge_s/2,0,-1]) mirror([0,1,0]) cube(size=[hinge_s,thread_h/2+back_thickness,thread_h+1]); 101 translate([-hinge_s/2,0,-1]) mirror([0,1,0]) cube(size=[hinge_s,thread_h/2+back_thickness,thread_h+1]);
102 } // hull for 102 } // hull for
103 hull() { 103 hull() {
104 translate([0,0,-us/2-slide_tolerance]) cube(size=[hs_size[0],thread_h+1,us],center=true); 104 translate([0,0,-us/2-slide_tolerance]) cube(size=[hs_size[0],thread_h+1,us],center=true);
105 for(sx=[-1,1]) translate([sx*(hs_size[0]/2-ms_bump),thread_h/2,-us-slide_tolerance]) 105 for(sx=[-1,1]) translate([sx*(hs_size[0]/2-ms_bump),thread_h/2,-us-slide_tolerance])
106 cylinder(r=ms_bump,h=us+slide_tolerance,$fn=30); 106 cylinder(r=ms_bump,h=us+slide_tolerance,$fn=30);
107 } 107 }
108 translate([-hs_size[0]/2,-thread_h/2-slide_tolerance,-us-slide_tolerance]) 108 translate([-hs_size[0]/2,-thread_h/2-slide_tolerance,-us-slide_tolerance])
109 mirror([0,1,0]) cube(size=[hs_size[0],back_thickness,us+slide_tolerance+thread_h]); 109 mirror([0,1,0]) cube(size=[hs_size[0],back_thickness,us+slide_tolerance+thread_h]);
110 } // union 110 } // union
111 translate([0,0,thread_h/2]) 111 translate([0,0,thread_h/2])
112 rotate([0,90,0]) cylinder(d=3+screw_tolerance,h=hs_size[0]+2,center=true,$fn=12); 112 rotate([0,90,0]) cylinder(d=3+screw_tolerance,h=hs_size[0]+2,center=true,$fn=12);
113 for(smx=[0,1]) mirror([smx,0,0]) 113 for(smx=[0,1]) mirror([smx,0,0])
114 translate([hs_size[0]/2+1,0,thread_h/2]) rotate([0,-90,0]) cylinder(d=screwhead_d+slide_tolerance,h=screwhead_h+1,$fn=30); 114 translate([hs_size[0]/2+1,0,thread_h/2]) rotate([0,-90,0]) cylinder(d=screwhead_d+slide_tolerance,h=screwhead_h+1,$fn=30);
115 /* changed my mind; for(srx=[-1,1]) rotate([srx*15,0,0]) 115 /* changed my mind; for(srx=[-1,1]) rotate([srx*15,0,0])
116 translate([0,0,thread_h/2-slide_tolerance]) 116 translate([0,0,thread_h/2-slide_tolerance])
117 cube(size=[hs_size[0]-2*hinge_s,thread_h*sqrt(2)+2,thread_h],center=true); */ 117 cube(size=[hs_size[0]-2*hinge_s,thread_h*sqrt(2)+2,thread_h],center=true); */
118 // switch mount 118 // switch mount
119 for(sx=[-1,1]) translate([sx*ms_screws_apart/2+ms_switch_offset,thread_h/2,-ms_size[2]]) 119 for(sx=[-1,1]) translate([sx*ms_screws_apart/2+ms_switch_offset,thread_h/2,-ms_size[2]])
120 rotate([90,0,0]) 120 rotate([90,0,0])
121 cylinder(d=2.5,h=ms_size[1]*2,center=true,$fn=12); 121 cylinder(d=2.5,h=ms_size[1]*2,center=true,$fn=12);
122 // thing mount 122 // thing mount
123 translate([0,-thread_h/2-back_thickness,lower_by]) 123 translate([0,-thread_h/2-back_thickness,lower_by])
124 for(mhft = mounting_holes_from_top) translate([mhft[0],0,-mhft[1]]) { 124 for(mhft = mounting_holes_from_top) translate([mhft[0],0,-mhft[1]]) {
125 rotate([-90,0,0]) 125 rotate([-90,0,0])
126 translate([0,0,-1]) 126 translate([0,0,-1])
127 cylinder(d=3,h=back_thickness+1); 127 cylinder(d=3,h=back_thickness+1);
128 translate([0,back_thickness/2,0]) 128 translate([0,back_thickness/2,0])
129 cube(size=[2*hs_size[0],nut_thickness+slide_tolerance,nut_width+slide_tolerance],center=true); 129 cube(size=[2*hs_size[0],nut_thickness+slide_tolerance,nut_width+slide_tolerance],center=true);
130 } // translate for 130 } // translate for
131 mirror([0,0,1]) translate([0,ps_offset,-1]) cylinder(d=3,h=hs_size[2]+1); 131 mirror([0,0,1]) translate([0,ps_offset,-1]) cylinder(d=3,h=hs_size[2]+1);
132 } // difference 132 } // difference
133} 133}
134 134
135view="*"; 135view="*";
136 136
137if(view=="holder") { 137if(view=="holder") {
138 holder(); 138 holder();
139}else if(view=="base") { 139}else if(view=="base") {
140 base(); 140 base();
141}else { 141}else {
142 % translate([0,0,-assembly_height]) chimera_assembly(); 142 % translate([0,0,-assembly_height]) chimera_assembly();
143 color("lightgreen",0.7) holder(); 143 color("lightgreen",0.7) holder();
144 color("darkgreen",0.7) base(); 144 color("darkgreen",0.7) base();
145} 145}