summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-08-01 15:16:53 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-01 15:16:53 (UTC)
commit074c2516b4ffa100d35e45a58e41c1e8d13a76b7 (patch) (unidiff)
tree0b26b19db8d665fbe623e64b5e8437857cd9d91c
parent0709ab26b17a92de950024f82a0295c06ab8fe3d (diff)
downloadextrudery-074c2516b4ffa100d35e45a58e41c1e8d13a76b7.zip
extrudery-074c2516b4ffa100d35e45a58e41c1e8d13a76b7.tar.gz
extrudery-074c2516b4ffa100d35e45a58e41c1e8d13a76b7.tar.bz2
another: parametrize pushfit type
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--another.scad8
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);