-rw-r--r-- | another.scad | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/another.scad b/another.scad index 74b7ffa..78d4320 100644 --- a/another.scad +++ b/another.scad @@ -54,2 +54,3 @@ module the_extruder( pulley_d_clearance=2, + pulley_small_d_clearance=0.5, lever_v_clearance=.7, // vertical clearance for the lever @@ -329,4 +330,4 @@ module the_extruder( fh = 1.5* (filament_guide_d-filament_path_d)/2; - fo = pf_offset-(idler_d+idler_clearance)/2-fh; - translate([0,0,-1]) teardrop(d=filament_guide_d,h=fo-extrusion_width+1,angle=225); + fo = pf_offset -filament_path_d /*(idler_d+idler_clearance)/2*/-fh; + translate([0,0,-1]) teardrop(d=filament_guide_d,h=fo/2,angle=225); translate([0,0,-1]) teardrop(d=filament_path_d,h=gearbox_d/2+1,angle=-225); @@ -337,28 +338,19 @@ module the_extruder( // pulley - cylinder(d=pulley_d+pulley_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); - - // leverspace - hull() for(x=[0,gearbox_d]) - rotate([0,0,45]) - translate([x,0,ls_z-ls_h/2]) - cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance)); - - // idler clearance - a=cos(45)*(pulley_d+idler_d)/2; - b=mount_d/2-a; - x=sqrt(pow(a,2)+pow(b,2)); - translate([mount_d/2,0,ls_z]) - intersection() { - r = x+idler_d/2+idler_clearance; - cylinder(r=r,h=ls_h,center=true); - translate([-r-1,0,-ls_h/2-1]) cube(size=[2*r+2,r+1,ls_h+2]); - } + cylinder(d=pulley_d+pulley_small_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); + cylinder(d=pulley_d+pulley_d_clearance,ls_z-max(idler_h,filament_guide_d)/2,$fn=fnd*(pulley_d+pulley_d_clearance)); - rotate([0,0,-45]) - translate([0,0,ls_z-ls_h/2]) - cube(size=[gearbox_d,gearbox_d,lever_thickness+lever_v_clearance]); translate([0,0,ls_z-ls_h/2]) { - translate([mount_screwhead_d/2,0,0]) - mirror([0,1,0]) - cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]); + // idler travel + translate([mount_d/2,0,0]) + rotate([0,0,45]) + rotate_extrude(angle=90,$fn=fnr*(shortwing+(idler_d+idler_clearance)/2)) + square([shortwing+(idler_d+idler_clearance)/2,ls_h]); + // idler itself + place_idler() + cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance)); + // lever space + echo(atan(1-2*fsw/gearbox_d)); + rotate([0,0,45]) + rotate_extrude(angle=-135+max(atan(2*fsw/gearbox_d-1),atan(gearbox_d/mount_d-1))) + square([gearbox_d/2+1,ls_h]); } |