-rw-r--r-- | another.scad | 73 |
1 files changed, 36 insertions, 37 deletions
diff --git a/another.scad b/another.scad index 78d4320..b752f30 100644 --- a/another.scad +++ b/another.scad @@ -76,17 +76,17 @@ module the_extruder( debug = false ) { fnd = 2*PI; fnr = 2*fnd; idler_filament_offset = filament_path_d/2; // -filament_offset; lever_shell = mount_screwhead_h+0.5; lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); lsd = idler_d-idler_clearance*2; - longwing=gearbox_d/2+spring_d/2+lsd/2; + longwing=(mount_d+mount_screw_d+mount_screw_d_tolerance+spring_d+spring_d_clearance)/2+extrusion_width; shortwing = let(a=mount_d/2,c=(pulley_d+idler_d)/2/sqrt(2)) sqrt(c*c+pow(a-c,2)); longwing_travel = idler_travel*longwing/shortwing; h_ = (pulley_d+idler_d)/(2*sqrt(2)); ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); spring_dl = idler_travel*longwing/ri; // finger and spring support fsw = gearbox_d-(gearbox_d-mount_d)/2-max(spring_lc,longwing_travel+(gearbox_d-mount_d)/2); @@ -230,52 +230,28 @@ module the_extruder( cylinder(d=mount_screwhead_d,h=layer_height); }//translate }//lever module module body() { difference() { union() { cylinder(d=gearbox_d,h=body_h,$fn=fnd*gearbox_d); - translate([-gearbox_d/2,0,0]) difference() { - union() { - hull() { - translate([0,-longwing,ls_z]) - rotate([0,90,0]) - cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness); - hh=body_h-ls_z; - translate([0,0,ls_z]) - mirror([0,1,0]) cube(size=[fsw,longwing+(st_thinshell+st_split_w_tolerance)/2+st_thickshell,body_h-ls_z]); - hhh=ls_z; - translate([0,0,0]) - mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); - } - } - translate([0,-longwing,ls_z]) rotate([0,-90,0]) { - if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else { - mirror([0,0,1]) { - translate([0,0,st_thickshell]) - hull() for(o=[0,spring_d]) translate([0,-o,0]) - rotate([0,0,30]) - cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6); - 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)); - bigd = spring_d+spring_d_clearance; - hf = (bigd-st_screw_d-st_screw_d_tolerance)/2; - translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon]) { - cylinder(d1=st_screw_d+st_screw_d_tolerance,d2=bigd, - h=hf+epsilon, $fn=fnd*bigd); - translate([0,-(st_thinshell+st_split_w_tolerance)/2,0]) - cube(size=[body_h-ls_z+1,st_thinshell+st_split_w_tolerance,fsw+1]); - } - translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon]) - cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd); - } - } - } - } // translate + // spring tensioner part + translate([-gearbox_d/2,0,0]) hull() { + translate([0,-longwing,ls_z]) + rotate([0,90,0]) + cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness); + hh=body_h-ls_z; + translate([0,0,ls_z]) + mirror([0,1,0]) cube(size=[fsw,longwing+(st_thinshell+st_split_w_tolerance)/2+st_thickshell,body_h-ls_z]); + hhh=ls_z; + translate([0,0,0]) + mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); + }//hull translate // pushfit bracket translate([0,0,filament_elevation]) rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) rotate([-90,0,0]) translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) { pfbl = pf_h(pf)+gearbox_d/2; //TODO: if(pf_smooth) { @@ -381,16 +357,39 @@ module the_extruder( //translate([-mount_d/2,-longwing,filament_elevation]) if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */ translate([mount_d/2,-longwing,filament_elevation]) rotate([0,-90,0]) difference() { cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance)); translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); } + // spring tensioner + translate([-gearbox_d/2,-longwing,ls_z]) rotate([0,-90,0]) { + if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else { + mirror([0,0,1]) { + translate([0,0,st_thickshell]) + hull() for(o=[0,spring_d]) translate([0,-o,0]) + rotate([0,0,30]) + cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6); + 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)); + bigd = spring_d+spring_d_clearance; + hf = (bigd-st_screw_d-st_screw_d_tolerance)/2; + translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon]) { + cylinder(d1=st_screw_d+st_screw_d_tolerance,d2=bigd, + h=hf+epsilon, $fn=fnd*bigd); + translate([0,-(st_thinshell+st_split_w_tolerance)/2,0]) + cube(size=[body_h-ls_z+1,st_thinshell+st_split_w_tolerance,fsw+1]); + } + translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon]) + cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd); + } + } + } + }//difference if(supports) intersection() { difference() { translate([0,0,ls_z-ls_h/2-epsilon]) cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d); cylinder(d=pulley_d+pulley_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); } |