-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 | |||
@@ -92,6 +92,15 @@ module the_extruder( | |||
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 | } |
@@ -164,14 +173,11 @@ module the_extruder( | |||
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 | ]) { |
@@ -179,9 +185,9 @@ module the_extruder( | |||
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() { |
@@ -310,10 +316,7 @@ module the_extruder( | |||
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)); |