author | Michael Krelin <hacker@klever.net> | 2018-08-12 21:20:15 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2018-08-12 21:20:15 (UTC) |
commit | f123d3acb5e918b6a21af0a65bba4dc0395c73f3 (patch) (unidiff) | |
tree | ac940d2b2c28ce486eee0b34872345d92e789901 | |
parent | 6c61457ea7bfaf0edc28f9e771bf608e2a9bc405 (diff) | |
download | extrudery-f123d3acb5e918b6a21af0a65bba4dc0395c73f3.zip extrudery-f123d3acb5e918b6a21af0a65bba4dc0395c73f3.tar.gz extrudery-f123d3acb5e918b6a21af0a65bba4dc0395c73f3.tar.bz2 |
finetune filament offset relative to the pulley
-rw-r--r-- | another.scad | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/another.scad b/another.scad index b80d0d0..a93d21a 100644 --- a/another.scad +++ b/another.scad | |||
@@ -15,12 +15,13 @@ module the_extruder( | |||
15 | bore_d = 8, bore_l = 17.6, | 15 | bore_d = 8, bore_l = 17.6, |
16 | bore_dd = 7, | 16 | bore_dd = 7, |
17 | // pulley properties | 17 | // pulley properties |
18 | pulley_d = 11.5, pulley_h=10, | 18 | pulley_d = 11.5, pulley_h=10, |
19 | pulley_elevation = 1, // pulley elevation above the protrusion | 19 | pulley_elevation = 1, // pulley elevation above the protrusion |
20 | teeth_elevation = 7.5, // distance from the bottom of the pulley to its teeth | 20 | teeth_elevation = 7.5, // distance from the bottom of the pulley to its teeth |
21 | filament_offset = (8.25-(3.0+3.5)/2) - 11.5/2 + 1.75/2, | ||
21 | // idler properties | 22 | // idler properties |
22 | idler_d = 9.5, idler_h = 4, idler_id = 3,// idler dimensions: outer and inner diameters and height | 23 | idler_d = 9.5, idler_h = 4, idler_id = 3,// idler dimensions: outer and inner diameters and height |
23 | // spring properties | 24 | // spring properties |
24 | spring_d = 10, spring_lc = 9.6, // spring diameter and compressed length | 25 | spring_d = 10, spring_lc = 9.6, // spring diameter and compressed length |
25 | // filament path properties | 26 | // filament path properties |
26 | filament_d = 1.75, | 27 | filament_d = 1.75, |
@@ -118,13 +119,13 @@ module the_extruder( | |||
118 | translate([0,0,teeth_elevation]) { | 119 | translate([0,0,teeth_elevation]) { |
119 | place_idler() { | 120 | place_idler() { |
120 | cylinder(d=idler_d,h=idler_h,center=true,$fn=30); | 121 | cylinder(d=idler_d,h=idler_h,center=true,$fn=30); |
121 | cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); | 122 | cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); |
122 | }//place idler | 123 | }//place idler |
123 | // filament path | 124 | // filament path |
124 | rotate([0,0,45]) translate([pulley_d/2,0,0]) { | 125 | rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) { |
125 | rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); | 126 | rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); |
126 | rotate([-90,0,0]) | 127 | rotate([-90,0,0]) |
127 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) | 128 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) |
128 | pushfit(pf); | 129 | pushfit(pf); |
129 | } | 130 | } |
130 | }//translate teeth | 131 | }//translate teeth |
@@ -149,18 +150,18 @@ module the_extruder( | |||
149 | cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); | 150 | cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); |
150 | }//hull | 151 | }//hull |
151 | }//union | 152 | }//union |
152 | 153 | ||
153 | // filament path | 154 | // filament path |
154 | place_idler() { | 155 | place_idler() { |
155 | translate([-idler_d/2,0,0]) rotate([90,0,0]) { | 156 | translate([-idler_d/2+filament_offset,0,0]) rotate([90,0,0]) { |
156 | cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); | 157 | cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); |
157 | translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) | 158 | translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) |
158 | cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); | 159 | cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); |
159 | }//rotate translate | 160 | }//rotate translate |
160 | translate([-idler_d/2,0,0]) | 161 | translate([-idler_d/2+filament_offset,0,0]) |
161 | rotate([90,0,0]) | 162 | rotate([90,0,0]) |
162 | translate([0,0, | 163 | translate([0,0, |
163 | sqrt(2)*(mount_d-pulley_d+lsd)/2 | 164 | sqrt(2)*(mount_d-pulley_d+lsd)/2 |
164 | ]) { | 165 | ]) { |
165 | cylinder(d1=filament_path_d,d2=2*filament_path_d, | 166 | cylinder(d1=filament_path_d,d2=2*filament_path_d, |
166 | h=filament_path_d,$fn=2*filament_path_d*fnd); | 167 | h=filament_path_d,$fn=2*filament_path_d*fnd); |
@@ -243,13 +244,13 @@ module the_extruder( | |||
243 | } | 244 | } |
244 | } | 245 | } |
245 | } // translate | 246 | } // translate |
246 | 247 | ||
247 | // pushfit bracket | 248 | // pushfit bracket |
248 | translate([0,0,filament_elevation]) | 249 | translate([0,0,filament_elevation]) |
249 | rotate([0,0,45]) translate([pulley_d/2,0,0]) | 250 | rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) |
250 | rotate([-90,0,0]) | 251 | rotate([-90,0,0]) |
251 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) { | 252 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) { |
252 | pfbl = pf_h(pf)+gearbox_d/2; //TODO: | 253 | pfbl = pf_h(pf)+gearbox_d/2; //TODO: |
253 | if(pf_smooth) { | 254 | if(pf_smooth) { |
254 | pfbd = pf_d(pf)+2*pf_shell; | 255 | pfbd = pf_d(pf)+2*pf_shell; |
255 | hull() { | 256 | hull() { |
@@ -289,13 +290,13 @@ module the_extruder( | |||
289 | $fn=fnd*(mount_screw_d+mount_screw_d_tolerance)); | 290 | $fn=fnd*(mount_screw_d+mount_screw_d_tolerance)); |
290 | translate([0,0,mount_screw_l-mounthole_depth/2]) | 291 | translate([0,0,mount_screw_l-mounthole_depth/2]) |
291 | cylinder(d=mount_screwhead_d,h=body_h+1,$fn=fnd*mount_screwhead_d); | 292 | cylinder(d=mount_screwhead_d,h=body_h+1,$fn=fnd*mount_screwhead_d); |
292 | }//for | 293 | }//for |
293 | // pushfit | 294 | // pushfit |
294 | translate([0,0,filament_elevation]) | 295 | translate([0,0,filament_elevation]) |
295 | rotate([0,0,45]) translate([pulley_d/2,0,0]) | 296 | rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) |
296 | rotate([-90,0,0]) | 297 | rotate([-90,0,0]) |
297 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) | 298 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) |
298 | rotate([0,0,180]) { | 299 | rotate([0,0,180]) { |
299 | pushfit(pf); | 300 | pushfit(pf); |
300 | cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d); | 301 | cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d); |
301 | translate([0,-filament_guide_d/2/sqrt(2),0]) | 302 | translate([0,-filament_guide_d/2/sqrt(2),0]) |
@@ -325,13 +326,13 @@ module the_extruder( | |||
325 | // XXX: this is somewhat ugly and potentially bugged, | 326 | // XXX: this is somewhat ugly and potentially bugged, |
326 | // but I want to sleep. | 327 | // but I want to sleep. |
327 | a0_ = atan( | 328 | a0_ = atan( |
328 | (mount_d/sqrt(2)/2+mount_screw_d+pf_h(pf)+gearbox_d/2) | 329 | (mount_d/sqrt(2)/2+mount_screw_d+pf_h(pf)+gearbox_d/2) |
329 | / | 330 | / |
330 | ( | 331 | ( |
331 | pulley_d/2- | 332 | pulley_d/2+filament_offset- |
332 | (pf_d(pf)+2*pf_shell)/2/cos(30) | 333 | (pf_d(pf)+2*pf_shell)/2/cos(30) |
333 | ) | 334 | ) |
334 | ); | 335 | ); |
335 | a0 = -135 + ( (a0_>0) ? a0_ : 180+a0_ ); | 336 | a0 = -135 + ( (a0_>0) ? a0_ : 180+a0_ ); |
336 | a1 = atan((longwing-lever_thickness/2)/(gearbox_d/2)); | 337 | a1 = atan((longwing-lever_thickness/2)/(gearbox_d/2)); |
337 | translate([0,0,ls_z]) difference() { | 338 | translate([0,0,ls_z]) difference() { |