summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-08-22 10:47:08 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-22 10:47:08 (UTC)
commit4bb6687a7d733a947943b67cf77c3963041c6fb0 (patch) (side-by-side diff)
tree67e1e7b383c289ad41865ccfcc85f0ce9e95717e
parent2bb1330fffd3b2c7d83361f536eb155640e4c867 (diff)
downloadextrudery-4bb6687a7d733a947943b67cf77c3963041c6fb0.zip
extrudery-4bb6687a7d733a947943b67cf77c3963041c6fb0.tar.gz
extrudery-4bb6687a7d733a947943b67cf77c3963041c6fb0.tar.bz2
teardrop module
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad33
1 files changed, 18 insertions, 15 deletions
diff --git a/another.scad b/another.scad
index f4e8904..23243d9 100644
--- a/another.scad
+++ b/another.scad
@@ -89,12 +89,21 @@ module the_extruder(
ls_z = filament_elevation; // leverspace mid-z
ls_h = lever_thickness+lever_v_clearance; // leverspace height
mount_depth = mount_screw_l - (ls_z+ls_h/2+min_z_shell);
body_h = max(protrusion_h+bore_l,mount_screw_l-mount_depth+mount_screwhead_h+min_z_shell,ls_z*2);
echo("mount depth",mount_depth);
+ module teardrop(r,d,h,center=false,angle=45) {
+ dd = d ? d : (2*r);
+ $fn = dd*fnd;
+ cylinder(d=dd,h=h,center=center);
+ if(angle>0) translate([0,0,center?-h/2:0])
+ rotate([0,0,angle])
+ cube(size=[d/2,d/2,h]);
+ }
+
module mirrorleft() {
mirror([left?0:1,0,0]) children();
}
module place_idler() {
rotate([0,0,45])
translate([(pulley_d+idler_d)/2,0,0])
@@ -161,30 +170,27 @@ module the_extruder(
translate([mount_d/2,-longwing,0]) rotate([0,90,0])
cylinder(d=lever_thickness,h=lsd,center=true,$fn=60);
}//hull
}//union
// filament path
- place_idler() {
- translate([-idler_d/2-idler_filament_offset,0,0]) rotate([90,0,0]) {
- cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30);
- translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45])
- cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true);
- }//rotate translate
- translate([-idler_d/2-idler_filament_offset,0,0])
- rotate([90,0,0])
+ place_idler()
+ translate([-idler_d/2-idler_filament_offset,0,0])
+ rotate([90,0,0]) {
+ mirror([0,1,0])
+ teardrop(d=filament_path_d,h=3*gearbox_d,center=true);
translate([0,0,
sqrt(2)*(mount_d-pulley_d+lsd)/2
]) {
cylinder(d1=filament_path_d,d2=2*filament_path_d,
h=filament_path_d,$fn=2*filament_path_d*fnd);
translate([0,0,filament_path_d-epsilon])
cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd);
- }
- }//place_idler
-
+ }//translate
+ }//rotate translate place_idler
+
// idler space and mounting hole
place_idler() {
difference() {
cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60);
if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width])
translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1])
@@ -307,16 +313,13 @@ module the_extruder(
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+epsilon])
rotate([0,0,180]) {
pushfit(pf);
- cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d);
- translate([0,-filament_guide_d/2/sqrt(2),0])
- rotate([0,0,45])
- cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true);
+ mirror([0,1,0]) teardrop(d=filament_guide_d,h=gearbox_d,center=true);
}//rotate translate rotate translate rotate translate
// 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])