-rw-r--r-- | another.scad | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/another.scad b/another.scad index 74b7ffa..78d4320 100644 --- a/another.scad +++ b/another.scad | |||
@@ -52,6 +52,7 @@ module the_extruder( | |||
52 | idler_travel = 3, // how far should idler travel when pressed | 52 | idler_travel = 3, // how far should idler travel when pressed |
53 | idler_clearance=1, | 53 | idler_clearance=1, |
54 | pulley_d_clearance=2, | 54 | pulley_d_clearance=2, |
55 | pulley_small_d_clearance=0.5, | ||
55 | lever_v_clearance=.7, // vertical clearance for the lever | 56 | lever_v_clearance=.7, // vertical clearance for the lever |
56 | spring_d_clearance=1, | 57 | spring_d_clearance=1, |
57 | protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion | 58 | protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion |
@@ -327,40 +328,31 @@ module the_extruder( | |||
327 | pushfit(pf); | 328 | pushfit(pf); |
328 | mirror([0,0,1]) { | 329 | mirror([0,0,1]) { |
329 | fh = 1.5* (filament_guide_d-filament_path_d)/2; | 330 | fh = 1.5* (filament_guide_d-filament_path_d)/2; |
330 | fo = pf_offset-(idler_d+idler_clearance)/2-fh; | 331 | fo = pf_offset -filament_path_d /*(idler_d+idler_clearance)/2*/-fh; |
331 | translate([0,0,-1]) teardrop(d=filament_guide_d,h=fo-extrusion_width+1,angle=225); | 332 | translate([0,0,-1]) teardrop(d=filament_guide_d,h=fo/2,angle=225); |
332 | translate([0,0,-1]) teardrop(d=filament_path_d,h=gearbox_d/2+1,angle=-225); | 333 | translate([0,0,-1]) teardrop(d=filament_path_d,h=gearbox_d/2+1,angle=-225); |
333 | translate([0,0,fo+epsilon]) | 334 | translate([0,0,fo+epsilon]) |
334 | cylinder(d1=filament_path_d,d2=filament_guide_d,h=fh,$fn=fnd*filament_guide_d); | 335 | cylinder(d1=filament_path_d,d2=filament_guide_d,h=fh,$fn=fnd*filament_guide_d); |
335 | }//mirror | 336 | }//mirror |
336 | }//rotate translate rotate translate rotate translate | 337 | }//rotate translate rotate translate rotate translate |
337 | // pulley | 338 | // pulley |
338 | cylinder(d=pulley_d+pulley_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); | 339 | cylinder(d=pulley_d+pulley_small_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); |
340 | cylinder(d=pulley_d+pulley_d_clearance,ls_z-max(idler_h,filament_guide_d)/2,$fn=fnd*(pulley_d+pulley_d_clearance)); | ||
339 | 341 | ||
340 | // leverspace | 342 | translate([0,0,ls_z-ls_h/2]) { |
341 | hull() for(x=[0,gearbox_d]) | 343 | // idler travel |
344 | translate([mount_d/2,0,0]) | ||
342 | rotate([0,0,45]) | 345 | rotate([0,0,45]) |
343 | translate([x,0,ls_z-ls_h/2]) | 346 | rotate_extrude(angle=90,$fn=fnr*(shortwing+(idler_d+idler_clearance)/2)) |
347 | square([shortwing+(idler_d+idler_clearance)/2,ls_h]); | ||
348 | // idler itself | ||
349 | place_idler() | ||
344 | cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance)); | 350 | cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance)); |
345 | 351 | // lever space | |
346 | // idler clearance | 352 | echo(atan(1-2*fsw/gearbox_d)); |
347 | a=cos(45)*(pulley_d+idler_d)/2; | 353 | rotate([0,0,45]) |
348 | b=mount_d/2-a; | 354 | rotate_extrude(angle=-135+max(atan(2*fsw/gearbox_d-1),atan(gearbox_d/mount_d-1))) |
349 | x=sqrt(pow(a,2)+pow(b,2)); | 355 | square([gearbox_d/2+1,ls_h]); |
350 | translate([mount_d/2,0,ls_z]) | ||
351 | intersection() { | ||
352 | r = x+idler_d/2+idler_clearance; | ||
353 | cylinder(r=r,h=ls_h,center=true); | ||
354 | translate([-r-1,0,-ls_h/2-1]) cube(size=[2*r+2,r+1,ls_h+2]); | ||
355 | } | ||
356 | |||
357 | rotate([0,0,-45]) | ||
358 | translate([0,0,ls_z-ls_h/2]) | ||
359 | cube(size=[gearbox_d,gearbox_d,lever_thickness+lever_v_clearance]); | ||
360 | translate([0,0,ls_z-ls_h/2]) { | ||
361 | translate([mount_screwhead_d/2,0,0]) | ||
362 | mirror([0,1,0]) | ||
363 | cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]); | ||
364 | } | 356 | } |
365 | 357 | ||
366 | // back side cutout | 358 | // back side cutout |