summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-08-26 19:25:56 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-26 19:25:56 (UTC)
commitd19aafaa5b0def955a82f3952a3dc9e96dbca954 (patch) (unidiff)
tree71d6670906dcca8ffb552be38ddccd4e94e80286
parent1274626a6b611b2ba4d056ad402316d23d3b0b4c (diff)
downloadextrudery-d19aafaa5b0def955a82f3952a3dc9e96dbca954.zip
extrudery-d19aafaa5b0def955a82f3952a3dc9e96dbca954.tar.gz
extrudery-d19aafaa5b0def955a82f3952a3dc9e96dbca954.tar.bz2
don't support configuration without tensioning screw
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad49
1 files changed, 19 insertions, 30 deletions
diff --git a/another.scad b/another.scad
index 9ff7f6a..e6d9ca3 100644
--- a/another.scad
+++ b/another.scad
@@ -63,25 +63,24 @@ module the_extruder(
63 st_nut_h_tolerance=.2, 63 st_nut_h_tolerance=.2,
64 st_nut_d_tolerance=.2,/* TODO: make it st_nut_w_tolerance */ 64 st_nut_d_tolerance=.2,/* TODO: make it st_nut_w_tolerance */
65 st_screw_d_tolerance=.5, 65 st_screw_d_tolerance=.5,
66 st_split_w_tolerance = .3, 66 st_split_w_tolerance = .3,
67 67
68 min_z_shell = 4*layer_height, // the very minimal shell thickness along z-axis. 68 min_z_shell = 4*layer_height, // the very minimal shell thickness along z-axis.
69 min_xy_shell = 2*extrusion_width, 69 min_xy_shell = 2*extrusion_width,
70 70
71 what="lever", // lever|body|knob|springpad|* 71 what="lever", // lever|body|knob|springpad|*
72 left=false, 72 left=false,
73 vitamins = true, 73 vitamins = true,
74 bridges = true, 74 bridges = true,
75 tensioner = true,
76 debug = false 75 debug = false
77) { 76) {
78 fnd = 2*PI; fnr = 2*fnd; 77 fnd = 2*PI; fnr = 2*fnd;
79 78
80 idler_filament_offset = filament_path_d/2; // -filament_offset; 79 idler_filament_offset = filament_path_d/2; // -filament_offset;
81 lever_shell = mount_screwhead_h+0.5; 80 lever_shell = mount_screwhead_h+0.5;
82 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); 81 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell);
83 lsd = idler_d-idler_clearance*2; // the diameter of lever thingie 82 lsd = idler_d-idler_clearance*2; // the diameter of lever thingie
84 longwing=(mount_d+mount_screw_d+mount_screw_d_tolerance+spring_d+spring_d_clearance)/2+min_xy_shell; 83 longwing=(mount_d+mount_screw_d+mount_screw_d_tolerance+spring_d+spring_d_clearance)/2+min_xy_shell;
85 shortwing = let(a=mount_d/2,c=(pulley_d+idler_d)/2/sqrt(2)) 84 shortwing = let(a=mount_d/2,c=(pulley_d+idler_d)/2/sqrt(2))
86 sqrt(c*c+pow(a-c,2)); 85 sqrt(c*c+pow(a-c,2));
87 longwing_travel = idler_travel*longwing/shortwing; 86 longwing_travel = idler_travel*longwing/shortwing;
@@ -339,54 +338,44 @@ module the_extruder(
339 a0 = -135 + ( (a0_>0) ? a0_ : 180+a0_ ); 338 a0 = -135 + ( (a0_>0) ? a0_ : 180+a0_ );
340 a1 = atan((longwing-lever_thickness/2)/(gearbox_d/2)); 339 a1 = atan((longwing-lever_thickness/2)/(gearbox_d/2));
341 translate([0,0,ls_z]) difference() { 340 translate([0,0,ls_z]) difference() {
342 rotate([0,0,-180+a0]) 341 rotate([0,0,-180+a0])
343 rotate_extrude(angle=a1-a0) 342 rotate_extrude(angle=a1-a0)
344 translate([0,-ls_h/2]) 343 translate([0,-ls_h/2])
345 square([sqrt(pow(gearbox_d/2,2)+pow(longwing-lever_thickness/2,2))+1, 344 square([sqrt(pow(gearbox_d/2,2)+pow(longwing-lever_thickness/2,2))+1,
346 ls_h]); 345 ls_h]);
347 translate([-mount_d/2,0,0]) 346 translate([-mount_d/2,0,0])
348 cylinder(d=gearbox_d-mount_d,h=ls_h+2,center=true,$fn=fnd*(gearbox_d-mount_d)); 347 cylinder(d=gearbox_d-mount_d,h=ls_h+2,center=true,$fn=fnd*(gearbox_d-mount_d));
349 }//difference translate 348 }//difference translate
350 349
351 //translate([-mount_d/2,-longwing,filament_elevation])
352 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */
353 translate([mount_d/2,-longwing,filament_elevation])
354 rotate([0,-90,0]) difference() {
355 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance));
356 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4);
357 }
358
359 // spring tensioner 350 // spring tensioner
360 translate([-gearbox_d/2,-longwing,ls_z]) rotate([0,-90,0]) { 351 translate([-gearbox_d/2,-longwing,ls_z]) rotate([0,-90,0]) {
361 if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else { 352 mirror([0,0,1]) {
362 mirror([0,0,1]) { 353 translate([0,0,st_thickshell])
363 translate([0,0,st_thickshell]) 354 hull() for(o=[0,spring_d]) translate([0,-o,0])
364 hull() for(o=[0,spring_d]) translate([0,-o,0]) 355 rotate([0,0,30])
365 rotate([0,0,30]) 356 cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6);
366 cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6); 357 translate([0,0,-1]) cylinder(d=st_screw_d+st_screw_d_tolerance,h=fsw+2,$fn=fnd*(st_screw_d+st_screw_d_tolerance));
367 translate([0,0,-1]) cylinder(d=st_screw_d+st_screw_d_tolerance,h=fsw+2,$fn=fnd*(st_screw_d+st_screw_d_tolerance)); 358 bigd = spring_d+spring_d_clearance;
368 bigd = spring_d+spring_d_clearance; 359 hf = (bigd-st_screw_d-st_screw_d_tolerance)/2;
369 hf = (bigd-st_screw_d-st_screw_d_tolerance)/2; 360 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon]) {
370 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon]) { 361 cylinder(d1=st_screw_d+st_screw_d_tolerance,d2=bigd,
371 cylinder(d1=st_screw_d+st_screw_d_tolerance,d2=bigd, 362 h=hf+epsilon, $fn=fnd*bigd);
372 h=hf+epsilon, $fn=fnd*bigd); 363 translate([0,-(st_thinshell+st_split_w_tolerance)/2,0])
373 translate([0,-(st_thinshell+st_split_w_tolerance)/2,0]) 364 cube(size=[body_h-ls_z+1,st_thinshell+st_split_w_tolerance,fsw+1]);
374 cube(size=[body_h-ls_z+1,st_thinshell+st_split_w_tolerance,fsw+1]); 365 }//translate
375 } 366 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon])
376 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon]) 367 cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd);
377 cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd); 368 }//mirror
378 } 369 }//translate
379 }
380 }
381 370
382 }//difference 371 }//difference
383 372
384 }//body module 373 }//body module
385 374
386 module springpad() { 375 module springpad() {
387 smalld=st_screw_d+st_screw_d_tolerance+min_xy_shell; 376 smalld=st_screw_d+st_screw_d_tolerance+min_xy_shell;
388 bigd = spring_d+spring_d_clearance/2; 377 bigd = spring_d+spring_d_clearance/2;
389 hf = (bigd-smalld)/2; 378 hf = (bigd-smalld)/2;
390 h = hf*3.5; 379 h = hf*3.5;
391 translate([-gearbox_d/2+st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+1,-longwing,filament_elevation]) 380 translate([-gearbox_d/2+st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+1,-longwing,filament_elevation])
392 rotate([0,90,0]) difference() { 381 rotate([0,90,0]) difference() {
@@ -433,25 +422,25 @@ module the_extruder(
433 for(a=[0:360/knob_indents:359]) rotate([0,0,a]) 422 for(a=[0:360/knob_indents:359]) rotate([0,0,a])
434 translate([0,gearbox_d/2,-1]) 423 translate([0,gearbox_d/2,-1])
435 cylinder(d=knob_indent_d,h=knob_h+2,$fn=fnd*knob_indent_d); 424 cylinder(d=knob_indent_d,h=knob_h+2,$fn=fnd*knob_indent_d);
436 } 425 }
437 } 426 }
438 }//knob module 427 }//knob module
439 428
440 module debug() { 429 module debug() {
441 difference() { 430 difference() {
442 children(); 431 children();
443 if(debug) { 432 if(debug) {
444 // spring tensioner debug cutout 433 // spring tensioner debug cutout
445 if(tensioner) // TODO: collapse copypasted transformations 434 // TODO: collapse copypasted transformations
446 translate([-gearbox_d/2,0,0]) 435 translate([-gearbox_d/2,0,0])
447 translate([0,-longwing,ls_z]) rotate([0,-90,0]) 436 translate([0,-longwing,ls_z]) rotate([0,-90,0])
448 translate([0,-lever_thickness/2-1,-gearbox_d]) 437 translate([0,-lever_thickness/2-1,-gearbox_d])
449 cube(size=[body_h/2+1,lever_thickness/2+1,gearbox_d+2]); 438 cube(size=[body_h/2+1,lever_thickness/2+1,gearbox_d+2]);
450 // lever axis debug cutout 439 // lever axis debug cutout
451 translate([mount_d/2,0,-1]) 440 translate([mount_d/2,0,-1])
452 rotate([0,0,-45]) 441 rotate([0,0,-45])
453 cube(size=[gearbox_d-mount_d,gearbox_d-mount_d,body_h+knob_h+2]); 442 cube(size=[gearbox_d-mount_d,gearbox_d-mount_d,body_h+knob_h+2]);
454 // idler debug cutout 443 // idler debug cutout
455 translate([0,0,ls_z]) 444 translate([0,0,ls_z])
456 place_idler() 445 place_idler()
457 rotate([0,0,-45]) 446 rotate([0,0,-45])