summaryrefslogtreecommitdiff
path: root/another.scad
Unidiff
Diffstat (limited to 'another.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad44
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
@@ -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));
339 340 cylinder(d=pulley_d+pulley_d_clearance,ls_z-max(idler_h,filament_guide_d)/2,$fn=fnd*(pulley_d+pulley_d_clearance));
340 // leverspace
341 hull() for(x=[0,gearbox_d])
342 rotate([0,0,45])
343 translate([x,0,ls_z-ls_h/2])
344 cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance));
345
346 // idler clearance
347 a=cos(45)*(pulley_d+idler_d)/2;
348 b=mount_d/2-a;
349 x=sqrt(pow(a,2)+pow(b,2));
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 341
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]) { 342 translate([0,0,ls_z-ls_h/2]) {
361 translate([mount_screwhead_d/2,0,0]) 343 // idler travel
362 mirror([0,1,0]) 344 translate([mount_d/2,0,0])
363 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]); 345 rotate([0,0,45])
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()
350 cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance));
351 // lever space
352 echo(atan(1-2*fsw/gearbox_d));
353 rotate([0,0,45])
354 rotate_extrude(angle=-135+max(atan(2*fsw/gearbox_d-1),atan(gearbox_d/mount_d-1)))
355 square([gearbox_d/2+1,ls_h]);
364 } 356 }
365 357
366 // back side cutout 358 // back side cutout