summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad33
1 files changed, 26 insertions, 7 deletions
diff --git a/another.scad b/another.scad
index 3d804c1..03f3bf9 100644
--- a/another.scad
+++ b/another.scad
@@ -200,25 +200,24 @@ module the_extruder(
200 rotate([0,90,0]) 200 rotate([0,90,0])
201 cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness); 201 cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness);
202 hh=body_h-ls_z; 202 hh=body_h-ls_z;
203 translate([0,0,ls_z-lever_thickness/2]) 203 translate([0,0,ls_z-lever_thickness/2])
204 mirror([0,1,0]) cube(size=[fsw,longwing-hh+lever_thickness/sqrt(2),hh+lever_thickness/2]); 204 mirror([0,1,0]) cube(size=[fsw,longwing-hh+lever_thickness/sqrt(2),hh+lever_thickness/2]);
205 hhh=ls_z; 205 hhh=ls_z;
206 translate([0,0,0]) 206 translate([0,0,0])
207 mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); 207 mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]);
208 } 208 }
209 } 209 }
210 translate([0,-longwing,ls_z]) rotate([0,-90,0]) { 210 translate([0,-longwing,ls_z]) rotate([0,-90,0]) {
211 if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else { 211 if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else {
212 if(debug) translate([0,-lever_thickness/2-1,-gearbox_d]) cube(size=[body_h/2+1,lever_thickness/2+1,gearbox_d+2]);
213 mirror([0,0,1]) { 212 mirror([0,0,1]) {
214 translate([0,0,st_thickshell]) 213 translate([0,0,st_thickshell])
215 hull() for(o=[0,spring_d]) translate([0,-o,0]) 214 hull() for(o=[0,spring_d]) translate([0,-o,0])
216 rotate([0,0,30]) 215 rotate([0,0,30])
217 cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6); 216 cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6);
218 translate([0,0,-1]) cylinder(d=st_screw_d,h=fsw+2,$fn=fnd*st_screw_d); 217 translate([0,0,-1]) cylinder(d=st_screw_d,h=fsw+2,$fn=fnd*st_screw_d);
219 bigd = spring_d+spring_d_clearance; 218 bigd = spring_d+spring_d_clearance;
220 hf = (bigd-st_screw_d)/2; 219 hf = (bigd-st_screw_d)/2;
221 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon]) 220 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon])
222 cylinder(d1=st_screw_d,d2=bigd, 221 cylinder(d1=st_screw_d,d2=bigd,
223 h=hf+epsilon, $fn=fnd*bigd); 222 h=hf+epsilon, $fn=fnd*bigd);
224 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon]) 223 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon])
@@ -301,30 +300,24 @@ module the_extruder(
301 translate([mount_screwhead_d/2,0,0]) 300 translate([mount_screwhead_d/2,0,0])
302 mirror([0,1,0]) 301 mirror([0,1,0])
303 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]); 302 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]);
304 } 303 }
305 //translate([-mount_d/2,-longwing,filament_elevation]) 304 //translate([-mount_d/2,-longwing,filament_elevation])
306 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */ 305 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */
307 translate([mount_d/2,-longwing,filament_elevation]) 306 translate([mount_d/2,-longwing,filament_elevation])
308 rotate([0,-90,0]) difference() { 307 rotate([0,-90,0]) difference() {
309 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance)); 308 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance));
310 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); 309 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4);
311 } 310 }
312 311
313 if(debug) {
314 translate([mount_d/2,0,-1])
315 rotate([0,0,-45])
316 cube(size=[gearbox_d-mount_d,gearbox_d-mount_d,body_h+2]);
317 }
318
319 }//difference 312 }//difference
320 313
321 if(supports) intersection() { 314 if(supports) intersection() {
322 difference() { 315 difference() {
323 translate([0,0,ls_z-ls_h/2-epsilon]) 316 translate([0,0,ls_z-ls_h/2-epsilon])
324 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d); 317 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d);
325 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance)); 318 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance));
326 } 319 }
327 // supports 320 // supports
328 // TODO: hardcoded stuff below… 321 // TODO: hardcoded stuff below…
329 if(false) { // parallel 322 if(false) { // parallel
330 for(y=[-gearbox_d:4:gearbox_d]) 323 for(y=[-gearbox_d:4:gearbox_d])
@@ -376,24 +369,50 @@ module the_extruder(
376 translate([0,0,ch]) 369 translate([0,0,ch])
377 cylinder(d=gearbox_d,h=knob_h-2*ch+epsilon,$fn=fnd*gearbox_d); 370 cylinder(d=gearbox_d,h=knob_h-2*ch+epsilon,$fn=fnd*gearbox_d);
378 translate([0,0,knob_h-ch]) 371 translate([0,0,knob_h-ch])
379 cylinder(d1=gearbox_d,d2=gearbox_d-2*ch,h=ch,$fn=fnd*gearbox_d); 372 cylinder(d1=gearbox_d,d2=gearbox_d-2*ch,h=ch,$fn=fnd*gearbox_d);
380 } 373 }
381 for(a=[0:360/knob_indents:359]) rotate([0,0,a]) 374 for(a=[0:360/knob_indents:359]) rotate([0,0,a])
382 translate([0,gearbox_d/2,-1]) 375 translate([0,gearbox_d/2,-1])
383 cylinder(d=knob_indent_d,h=knob_h+2,$fn=fnd*knob_indent_d); 376 cylinder(d=knob_indent_d,h=knob_h+2,$fn=fnd*knob_indent_d);
384 } 377 }
385 } 378 }
386 }//knob module 379 }//knob module
387 380
381 module debug() {
382 difference() {
383 children();
384 if(debug) {
385 // spring tensioner debug cutout
386 if(tensioner) // TODO: collaps copypasted transformations
387 translate([-gearbox_d/2,0,0])
388 translate([0,-longwing,ls_z]) rotate([0,-90,0])
389 translate([0,-lever_thickness/2-1,-gearbox_d])
390 cube(size=[body_h/2+1,lever_thickness/2+1,gearbox_d+2]);
391 // lever axis debug cutout
392 translate([mount_d/2,0,-1])
393 rotate([0,0,-45])
394 cube(size=[gearbox_d-mount_d,gearbox_d-mount_d,body_h+knob_h+2]);
395 // idler debug cutout
396 translate([0,0,ls_z])
397 place_idler()
398 rotate([0,0,-45])
399 translate([0,0,-lever_thickness/2-epsilon])
400 cube(size=[(idler_d+idler_clearance)/2,(idler_d+idler_clearance)/2,
401 lever_thickness+2*epsilon]);
402 }//if debug
403 }//difference
404 }
405
406 debug()
388 mirrorleft() 407 mirrorleft()
389 if(what=="lever") color("green",0.7) lever(); 408 if(what=="lever") color("green",0.7) lever();
390 else if(what=="body") color("yellow",0.7) body(); 409 else if(what=="body") color("yellow",0.7) body();
391 else if(what=="knob") color("red",0.7) knob(); 410 else if(what=="knob") color("red",0.7) knob();
392 else if(what=="springpad") color("blue",0.7) springpad(); 411 else if(what=="springpad") color("blue",0.7) springpad();
393 else if(what=="both") { 412 else if(what=="both") {
394 color("green",0.7) lever(); 413 color("green",0.7) lever();
395 color("yellow",0.7) body(); 414 color("yellow",0.7) body();
396 }else{ 415 }else{
397 color("green",0.7) lever(); 416 color("green",0.7) lever();
398 color("yellow",0.7) body(); 417 color("yellow",0.7) body();
399 color("red",0.7) knob(); 418 color("red",0.7) knob();