summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad8
1 files changed, 4 insertions, 4 deletions
diff --git a/another.scad b/another.scad
index 85715db..2be24e4 100644
--- a/another.scad
+++ b/another.scad
@@ -43,25 +43,26 @@ module the_extruder(
43 idler_clearance=1, 43 idler_clearance=1,
44 pulley_clearance=2, 44 pulley_clearance=2,
45 lever_v_clearance=.7, // vertical clearance for the lever 45 lever_v_clearance=.7, // vertical clearance for the lever
46 spring_d_clearance=1, 46 spring_d_clearance=1,
47 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion 47 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion
48 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion 48 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion
49 mount_screw_d_tolerance=.4, 49 mount_screw_d_tolerance=.4,
50 idler_v_tolerance=.5, 50 idler_v_tolerance=.5,
51 knob_bore_d_tolerance=.6, 51 knob_bore_d_tolerance=.6,
52 52
53 what="lever", 53 what="lever",
54 left=false, 54 left=false,
55 vitamins = true 55 vitamins = true,
56 supports = false
56) { 57) {
57 lever_shell = mount_screwhead_h+0.5; 58 lever_shell = mount_screwhead_h+0.5;
58 lever_thickness=max(spring_d+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); 59 lever_thickness=max(spring_d+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell);
59 lsd = idler_d-idler_clearance*2; 60 lsd = idler_d-idler_clearance*2;
60 longwing=gearbox_d/2+spring_d/2+lsd/2; 61 longwing=gearbox_d/2+spring_d/2+lsd/2;
61 h_ = (pulley_d+idler_d)/(2*sqrt(2)); 62 h_ = (pulley_d+idler_d)/(2*sqrt(2));
62 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); 63 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) );
63 spring_dl = idler_travel*longwing/ri; 64 spring_dl = idler_travel*longwing/ri;
64 65
65 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation; 66 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation;
66 ls_z = filament_elevation; // leverspace mid-z 67 ls_z = filament_elevation; // leverspace mid-z
67 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2); 68 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2);
@@ -136,26 +137,25 @@ module the_extruder(
136 137
137 // filament path 138 // filament path
138 place_idler() translate([-(idler_d+filament_path_d)/2,0,0]) rotate([90,0,0]) { 139 place_idler() translate([-(idler_d+filament_path_d)/2,0,0]) rotate([90,0,0]) {
139 cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); 140 cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30);
140 translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) 141 translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45])
141 cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); 142 cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true);
142 } 143 }
143 144
144 // idler space and mounting hole 145 // idler space and mounting hole
145 place_idler() { 146 place_idler() {
146 difference() { 147 difference() {
147 cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); 148 cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60);
148 // supports 149 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width])
149 for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width])
150 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) 150 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1])
151 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]); 151 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]);
152 } 152 }
153 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=30); 153 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=30);
154 translate([0,0,lever_thickness/2-mount_screwhead_h]) 154 translate([0,0,lever_thickness/2-mount_screwhead_h])
155 cylinder(d=mount_screwhead_d,h=mount_screwhead_h+1,$fn=2*PI*mount_screwhead_d); 155 cylinder(d=mount_screwhead_d,h=mount_screwhead_h+1,$fn=2*PI*mount_screwhead_d);
156 } 156 }
157 // mounting screw hole 157 // mounting screw hole
158 translate([mount_d/2,0,0]) 158 translate([mount_d/2,0,0])
159 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=2*PI*mount_screw_d); 159 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=2*PI*mount_screw_d);
160 160
161 // lever end 161 // lever end
@@ -265,25 +265,25 @@ module the_extruder(
265 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=PI*spring_d); 265 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=PI*spring_d);
266 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=PI*spring_d); 266 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=PI*spring_d);
267 } 267 }
268 //sphere(d=spring_d*3/4,$fn=PI*spring_d); 268 //sphere(d=spring_d*3/4,$fn=PI*spring_d);
269 *difference() { 269 *difference() {
270 // spring support 270 // spring support
271 translate([0,-longwing,filament_elevation]) 271 translate([0,-longwing,filament_elevation])
272 sphere(d=spring_d*3/4,$fn=PI*spring_d); 272 sphere(d=spring_d*3/4,$fn=PI*spring_d);
273 } 273 }
274 274
275 }//difference 275 }//difference
276 276
277 intersection() { 277 if(supports) intersection() {
278 difference() { 278 difference() {
279 translate([0,0,ls_z-ls_h/2-epsilon]) 279 translate([0,0,ls_z-ls_h/2-epsilon])
280 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=2*PI*gearbox_d); 280 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=2*PI*gearbox_d);
281 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=2*PI*(pulley_d+pulley_clearance)); 281 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=2*PI*(pulley_d+pulley_clearance));
282 } 282 }
283 // supports 283 // supports
284 // TODO: hardcoded stuff below… 284 // TODO: hardcoded stuff below…
285 if(false) { // parallel 285 if(false) { // parallel
286 for(y=[-gearbox_d:4:gearbox_d]) 286 for(y=[-gearbox_d:4:gearbox_d])
287 translate([0,y-extrusion_width/2,0]) 287 translate([0,y-extrusion_width/2,0])
288 cube(size=[gearbox_d,extrusion_width,body_h]); 288 cube(size=[gearbox_d,extrusion_width,body_h]);
289 }else{ // radial 289 }else{ // radial