author | Michael Krelin <hacker@klever.net> | 2018-08-01 15:16:53 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2018-08-01 15:16:53 (UTC) |
commit | 074c2516b4ffa100d35e45a58e41c1e8d13a76b7 (patch) (unidiff) | |
tree | 0b26b19db8d665fbe623e64b5e8437857cd9d91c | |
parent | 0709ab26b17a92de950024f82a0295c06ab8fe3d (diff) | |
download | extrudery-074c2516b4ffa100d35e45a58e41c1e8d13a76b7.zip extrudery-074c2516b4ffa100d35e45a58e41c1e8d13a76b7.tar.gz extrudery-074c2516b4ffa100d35e45a58e41c1e8d13a76b7.tar.bz2 |
another: parametrize pushfit type
-rw-r--r-- | another.scad | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/another.scad b/another.scad index b7b6e3a..7c4bf37 100644 --- a/another.scad +++ b/another.scad | |||
@@ -27,24 +27,26 @@ module the_extruder( | |||
27 | filament_path_d = 2, | 27 | filament_path_d = 2, |
28 | filament_guide_d = 4, // PTFE filament guide diameter | 28 | filament_guide_d = 4, // PTFE filament guide diameter |
29 | // knob properties | 29 | // knob properties |
30 | knob_h = 10, | 30 | knob_h = 10, |
31 | knob_bore_l = 4, | 31 | knob_bore_l = 4, |
32 | knob_indent_d = 4, | 32 | knob_indent_d = 4, |
33 | knob_indents = 12, | 33 | knob_indents = 12, |
34 | 34 | ||
35 | // screw it | 35 | // screw it |
36 | mount_screw_d = 3, mount_screw_l = 20, | 36 | mount_screw_d = 3, mount_screw_l = 20, |
37 | mount_screwhead_d=6, mount_screwhead_h=3, | 37 | mount_screwhead_d=6, mount_screwhead_h=3, |
38 | 38 | ||
39 | pf = pushfit_embeddest, | ||
40 | |||
39 | // empty spaces | 41 | // empty spaces |
40 | idler_travel = 3, // how far should idler travel when pressed | 42 | idler_travel = 3, // how far should idler travel when pressed |
41 | idler_clearance=1, | 43 | idler_clearance=1, |
42 | pulley_clearance=2, | 44 | pulley_clearance=2, |
43 | lever_v_clearance=.7, // vertical clearance for the lever | 45 | lever_v_clearance=.7, // vertical clearance for the lever |
44 | spring_d_clearance=1, | 46 | spring_d_clearance=1, |
45 | protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion | 47 | protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion |
46 | protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion | 48 | protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion |
47 | mount_screw_d_tolerance=.5, | 49 | mount_screw_d_tolerance=.5, |
48 | idler_v_tolerance=.5, | 50 | idler_v_tolerance=.5, |
49 | knob_bore_d_tolerance=.6, | 51 | knob_bore_d_tolerance=.6, |
50 | 52 | ||
@@ -98,25 +100,25 @@ module the_extruder( | |||
98 | translate([0,0,pulley_elevation]) { | 100 | translate([0,0,pulley_elevation]) { |
99 | cylinder(d=pulley_d,h=pulley_h,$fn=30); | 101 | cylinder(d=pulley_d,h=pulley_h,$fn=30); |
100 | translate([0,0,teeth_elevation]) { | 102 | translate([0,0,teeth_elevation]) { |
101 | place_idler() { | 103 | place_idler() { |
102 | cylinder(d=idler_d,h=idler_h,center=true,$fn=30); | 104 | cylinder(d=idler_d,h=idler_h,center=true,$fn=30); |
103 | cylinder(d=idler_id,h=lever_thickness+2,center=true,$fn=30); | 105 | cylinder(d=idler_id,h=lever_thickness+2,center=true,$fn=30); |
104 | }//place idler | 106 | }//place idler |
105 | // filament path | 107 | // filament path |
106 | rotate([0,0,45]) translate([(pulley_d-filament_path_d)/2,0,0]) { | 108 | rotate([0,0,45]) translate([(pulley_d-filament_path_d)/2,0,0]) { |
107 | rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); | 109 | rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); |
108 | rotate([-90,0,0]) | 110 | rotate([-90,0,0]) |
109 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) | 111 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) |
110 | pushfit(pushfit_threaded); | 112 | pushfit(pf); |
111 | } | 113 | } |
112 | }//translate teeth | 114 | }//translate teeth |
113 | }//translate pulley | 115 | }//translate pulley |
114 | }//translate protrusion | 116 | }//translate protrusion |
115 | }//vitamins | 117 | }//vitamins |
116 | 118 | ||
117 | module lever() { | 119 | module lever() { |
118 | translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) { | 120 | translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) { |
119 | difference() { | 121 | difference() { |
120 | union() { | 122 | union() { |
121 | hull() { | 123 | hull() { |
122 | place_idler() | 124 | place_idler() |
@@ -195,46 +197,46 @@ module the_extruder( | |||
195 | mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); | 197 | mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); |
196 | } | 198 | } |
197 | } | 199 | } |
198 | translate([0,-longwing,ls_z]) rotate([0,-90,0]) | 200 | translate([0,-longwing,ls_z]) rotate([0,-90,0]) |
199 | finger_indent(d=lever_thickness-1,r=15); | 201 | finger_indent(d=lever_thickness-1,r=15); |
200 | } // translate | 202 | } // translate |
201 | 203 | ||
202 | // pushfit bracket | 204 | // pushfit bracket |
203 | translate([0,0,filament_elevation]) | 205 | translate([0,0,filament_elevation]) |
204 | rotate([0,0,45]) translate([pulley_d/2,0,0]) | 206 | rotate([0,0,45]) translate([pulley_d/2,0,0]) |
205 | rotate([-90,0,0]) | 207 | rotate([-90,0,0]) |
206 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) | 208 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) |
207 | cylinder(r=min(body_h-filament_elevation,filament_elevation)/sin(60)-epsilon,h=10+gearbox_d/2/*TODO:*/,$fn=6); | 209 | cylinder(r=min(body_h-filament_elevation,filament_elevation)/sin(60)-epsilon,h=pf_h(pf)+gearbox_d/2/*TODO:*/,$fn=6); |
208 | }//union (first child of difference) | 210 | }//union (first child of difference) |
209 | // protrusion | 211 | // protrusion |
210 | translate([0,0,-1]) | 212 | translate([0,0,-1]) |
211 | cylinder(d=protrusion_d+protrusion_tolerance_h,h=protrusion_h+protrusion_tolerance_v+1,$fn=2*PI*protrusion_d); | 213 | cylinder(d=protrusion_d+protrusion_tolerance_h,h=protrusion_h+protrusion_tolerance_v+1,$fn=2*PI*protrusion_d); |
212 | // mount screw holes | 214 | // mount screw holes |
213 | for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0]) { | 215 | for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0]) { |
214 | translate([0,0,mount_screw_l-mounthole_depth/2-layer_height-1]) | 216 | translate([0,0,mount_screw_l-mounthole_depth/2-layer_height-1]) |
215 | mirror([0,0,1]) | 217 | mirror([0,0,1]) |
216 | cylinder(d=mount_screw_d+mount_screw_d_tolerance, | 218 | cylinder(d=mount_screw_d+mount_screw_d_tolerance, |
217 | h=mount_screw_l-mounthole_depth/2-layer_height+1, | 219 | h=mount_screw_l-mounthole_depth/2-layer_height+1, |
218 | $fn=2*PI*mount_screw_d); | 220 | $fn=2*PI*mount_screw_d); |
219 | translate([0,0,mount_screw_l-mounthole_depth/2]) | 221 | translate([0,0,mount_screw_l-mounthole_depth/2]) |
220 | cylinder(d=mount_screwhead_d,h=body_h+1,$fn=2*PI*mount_screwhead_d); | 222 | cylinder(d=mount_screwhead_d,h=body_h+1,$fn=2*PI*mount_screwhead_d); |
221 | }//for | 223 | }//for |
222 | // pushfit threads | 224 | // pushfit threads |
223 | translate([0,0,filament_elevation]) | 225 | translate([0,0,filament_elevation]) |
224 | rotate([0,0,45]) translate([pulley_d/2,0,0]) | 226 | rotate([0,0,45]) translate([pulley_d/2,0,0]) |
225 | rotate([-90,0,0]) | 227 | rotate([-90,0,0]) |
226 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) | 228 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) |
227 | rotate([0,0,180]) { | 229 | rotate([0,0,180]) { |
228 | pushfit(pushfit_threaded); | 230 | pushfit(pf); |
229 | cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=2*PI*filament_guide_d); | 231 | cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=2*PI*filament_guide_d); |
230 | translate([0,-filament_guide_d/2/sqrt(2),0]) | 232 | translate([0,-filament_guide_d/2/sqrt(2),0]) |
231 | rotate([0,0,45]) | 233 | rotate([0,0,45]) |
232 | cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true); | 234 | cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true); |
233 | } | 235 | } |
234 | // pulley | 236 | // pulley |
235 | cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=2*PI*(pulley_d+pulley_clearance)); | 237 | cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=2*PI*(pulley_d+pulley_clearance)); |
236 | // leverspace | 238 | // leverspace |
237 | hull() for(x=[0,gearbox_d]) | 239 | hull() for(x=[0,gearbox_d]) |
238 | rotate([0,0,45]) | 240 | rotate([0,0,45]) |
239 | translate([x,0,ls_z-ls_h/2]) | 241 | translate([x,0,ls_z-ls_h/2]) |
240 | cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=2*PI*idler_d); | 242 | cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=2*PI*idler_d); |