author | Michael Krelin <hacker@klever.net> | 2018-08-22 10:47:08 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2018-08-22 10:47:08 (UTC) |
commit | 4bb6687a7d733a947943b67cf77c3963041c6fb0 (patch) (unidiff) | |
tree | 67e1e7b383c289ad41865ccfcc85f0ce9e95717e | |
parent | 2bb1330fffd3b2c7d83361f536eb155640e4c867 (diff) | |
download | extrudery-4bb6687a7d733a947943b67cf77c3963041c6fb0.zip extrudery-4bb6687a7d733a947943b67cf77c3963041c6fb0.tar.gz extrudery-4bb6687a7d733a947943b67cf77c3963041c6fb0.tar.bz2 |
teardrop module
-rw-r--r-- | another.scad | 33 |
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( | |||
89 | ls_z = filament_elevation; // leverspace mid-z | 89 | ls_z = filament_elevation; // leverspace mid-z |
90 | ls_h = lever_thickness+lever_v_clearance; // leverspace height | 90 | ls_h = lever_thickness+lever_v_clearance; // leverspace height |
91 | mount_depth = mount_screw_l - (ls_z+ls_h/2+min_z_shell); | 91 | mount_depth = mount_screw_l - (ls_z+ls_h/2+min_z_shell); |
92 | body_h = max(protrusion_h+bore_l,mount_screw_l-mount_depth+mount_screwhead_h+min_z_shell,ls_z*2); | 92 | body_h = max(protrusion_h+bore_l,mount_screw_l-mount_depth+mount_screwhead_h+min_z_shell,ls_z*2); |
93 | echo("mount depth",mount_depth); | 93 | echo("mount depth",mount_depth); |
94 | 94 | ||
95 | module teardrop(r,d,h,center=false,angle=45) { | ||
96 | dd = d ? d : (2*r); | ||
97 | $fn = dd*fnd; | ||
98 | cylinder(d=dd,h=h,center=center); | ||
99 | if(angle>0) translate([0,0,center?-h/2:0]) | ||
100 | rotate([0,0,angle]) | ||
101 | cube(size=[d/2,d/2,h]); | ||
102 | } | ||
103 | |||
95 | module mirrorleft() { | 104 | module mirrorleft() { |
96 | mirror([left?0:1,0,0]) children(); | 105 | mirror([left?0:1,0,0]) children(); |
97 | } | 106 | } |
98 | module place_idler() { | 107 | module place_idler() { |
99 | rotate([0,0,45]) | 108 | rotate([0,0,45]) |
100 | translate([(pulley_d+idler_d)/2,0,0]) | 109 | translate([(pulley_d+idler_d)/2,0,0]) |
@@ -161,30 +170,27 @@ module the_extruder( | |||
161 | translate([mount_d/2,-longwing,0]) rotate([0,90,0]) | 170 | translate([mount_d/2,-longwing,0]) rotate([0,90,0]) |
162 | cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); | 171 | cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); |
163 | }//hull | 172 | }//hull |
164 | }//union | 173 | }//union |
165 | 174 | ||
166 | // filament path | 175 | // filament path |
167 | place_idler() { | 176 | place_idler() |
168 | translate([-idler_d/2-idler_filament_offset,0,0]) rotate([90,0,0]) { | 177 | translate([-idler_d/2-idler_filament_offset,0,0]) |
169 | cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); | 178 | rotate([90,0,0]) { |
170 | translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) | 179 | mirror([0,1,0]) |
171 | cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); | 180 | teardrop(d=filament_path_d,h=3*gearbox_d,center=true); |
172 | }//rotate translate | ||
173 | translate([-idler_d/2-idler_filament_offset,0,0]) | ||
174 | rotate([90,0,0]) | ||
175 | translate([0,0, | 181 | translate([0,0, |
176 | sqrt(2)*(mount_d-pulley_d+lsd)/2 | 182 | sqrt(2)*(mount_d-pulley_d+lsd)/2 |
177 | ]) { | 183 | ]) { |
178 | cylinder(d1=filament_path_d,d2=2*filament_path_d, | 184 | cylinder(d1=filament_path_d,d2=2*filament_path_d, |
179 | h=filament_path_d,$fn=2*filament_path_d*fnd); | 185 | h=filament_path_d,$fn=2*filament_path_d*fnd); |
180 | translate([0,0,filament_path_d-epsilon]) | 186 | translate([0,0,filament_path_d-epsilon]) |
181 | cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd); | 187 | cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd); |
182 | } | 188 | }//translate |
183 | }//place_idler | 189 | }//rotate translate place_idler |
184 | 190 | ||
185 | // idler space and mounting hole | 191 | // idler space and mounting hole |
186 | place_idler() { | 192 | place_idler() { |
187 | difference() { | 193 | difference() { |
188 | cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); | 194 | cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); |
189 | if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) | 195 | if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) |
190 | translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) | 196 | translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) |
@@ -307,16 +313,13 @@ module the_extruder( | |||
307 | translate([0,0,filament_elevation]) | 313 | translate([0,0,filament_elevation]) |
308 | rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) | 314 | rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) |
309 | rotate([-90,0,0]) | 315 | rotate([-90,0,0]) |
310 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) | 316 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) |
311 | rotate([0,0,180]) { | 317 | rotate([0,0,180]) { |
312 | pushfit(pf); | 318 | pushfit(pf); |
313 | cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d); | 319 | mirror([0,1,0]) teardrop(d=filament_guide_d,h=gearbox_d,center=true); |
314 | translate([0,-filament_guide_d/2/sqrt(2),0]) | ||
315 | rotate([0,0,45]) | ||
316 | cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true); | ||
317 | }//rotate translate rotate translate rotate translate | 320 | }//rotate translate rotate translate rotate translate |
318 | // pulley | 321 | // pulley |
319 | cylinder(d=pulley_d+pulley_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); | 322 | cylinder(d=pulley_d+pulley_d_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_d_clearance)); |
320 | // leverspace | 323 | // leverspace |
321 | hull() for(x=[0,gearbox_d]) | 324 | hull() for(x=[0,gearbox_d]) |
322 | rotate([0,0,45]) | 325 | rotate([0,0,45]) |