summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad73
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));
}