author | Michael Krelin <hacker@klever.net> | 2017-02-06 21:20:07 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2017-02-06 21:20:07 (UTC) |
commit | 461e05f32eacaffd4508abf2943fcad8d0c7d00d (patch) (unidiff) | |
tree | b4d25537b953efb9e2e44815520f36f0c6df4773 | |
parent | c83b5d18ae09805a6a65715a2586c225ff393074 (diff) | |
download | extrudery-461e05f32eacaffd4508abf2943fcad8d0c7d00d.zip extrudery-461e05f32eacaffd4508abf2943fcad8d0c7d00d.tar.gz extrudery-461e05f32eacaffd4508abf2943fcad8d0c7d00d.tar.bz2 |
knob
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | another.scad | 38 |
2 files changed, 40 insertions, 2 deletions
@@ -2,21 +2,23 @@ | |||
2 | 2 | ||
3 | OPENSCAD_APP?=/Applications/OpenSCAD.app | 3 | OPENSCAD_APP?=/Applications/OpenSCAD.app |
4 | OPENSCAD_BIN?=${OPENSCAD_APP}/Contents/MacOS/OpenSCAD | 4 | OPENSCAD_BIN?=${OPENSCAD_APP}/Contents/MacOS/OpenSCAD |
5 | OPENSCAD_FLAGS=-D draft=false | 5 | OPENSCAD_FLAGS=-D draft=false |
6 | 6 | ||
7 | default: | 7 | default: |
8 | @echo "And?" | 8 | @echo "And?" |
9 | 9 | ||
10 | clean: | 10 | clean: |
11 | rm -f *.stl *.gcode | 11 | rm -f *.stl *.gcode |
12 | 12 | ||
13 | stl-another-%: | 13 | stl-another-%: |
14 | $(MAKE) another-$*-{body,lever}.stl | 14 | $(MAKE) another-$*-{body,lever,knob}.stl |
15 | 15 | ||
16 | another-%-body.stl: another-%.scad another.scad | 16 | another-%-body.stl: another-%.scad another.scad |
17 | $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="body"' -o "$@" "$<" | 17 | $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="body"' -o "$@" "$<" |
18 | another-%-lever.stl: another-%.scad another.scad | 18 | another-%-lever.stl: another-%.scad another.scad |
19 | $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="lever"' -o "$@" "$<" | 19 | $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="lever"' -o "$@" "$<" |
20 | another-%-knob.stl: another-%.scad another.scad | ||
21 | $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="knob"' -o "$@" "$<" | ||
20 | 22 | ||
21 | %.stl: %.scad | 23 | %.stl: %.scad |
22 | ${OPENSCAD_BIN} ${OPENSCAD_FLAGS} -o "$@" "$<" | 24 | ${OPENSCAD_BIN} ${OPENSCAD_FLAGS} -o "$@" "$<" |
diff --git a/another.scad b/another.scad index fa60676..9f42f46 100644 --- a/another.scad +++ b/another.scad | |||
@@ -23,39 +23,45 @@ module the_extruder( | |||
23 | // pulley properties | 23 | // pulley properties |
24 | pulley_d = 11.5, pulley_h=10, | 24 | pulley_d = 11.5, pulley_h=10, |
25 | pulley_elevation = 1, // pulley elevation above the protrusion | 25 | pulley_elevation = 1, // pulley elevation above the protrusion |
26 | teeth_elevation = 7.5, // distance from the bottom of the pulley to its teeth | 26 | teeth_elevation = 7.5, // distance from the bottom of the pulley to its teeth |
27 | // idler properties | 27 | // idler properties |
28 | idler_d = 9.5, idler_h = 4, idler_id = 3,// idler dimensions: outer and inner diameters and height | 28 | idler_d = 9.5, idler_h = 4, idler_id = 3,// idler dimensions: outer and inner diameters and height |
29 | // spring properties | 29 | // spring properties |
30 | spring_d = 10, spring_lc = 9.6, // spring diameter and compressed length | 30 | spring_d = 10, spring_lc = 9.6, // spring diameter and compressed length |
31 | // filament path properties | 31 | // filament path properties |
32 | filament_d = 1.75, | 32 | filament_d = 1.75, |
33 | filament_path_d = 2, | 33 | filament_path_d = 2, |
34 | filament_guide_d = 4, // PTFE filament guide diameter | 34 | filament_guide_d = 4, // PTFE filament guide diameter |
35 | // knob properties | ||
36 | knob_h = 10, | ||
37 | knob_bore_l = 4, | ||
38 | knob_indent_d = 4, | ||
39 | knob_indents = 12, | ||
35 | 40 | ||
36 | // screw it | 41 | // screw it |
37 | mount_screw_d = 3, mount_screw_l = 20, | 42 | mount_screw_d = 3, mount_screw_l = 20, |
38 | mount_screwhead_d=6, mount_screwhead_h=3, | 43 | mount_screwhead_d=6, mount_screwhead_h=3, |
39 | 44 | ||
40 | // empty spaces | 45 | // empty spaces |
41 | idler_travel = 3, // how far should idler travel when pressed | 46 | idler_travel = 3, // how far should idler travel when pressed |
42 | idler_clearance=1, | 47 | idler_clearance=1, |
43 | pulley_clearance=2, | 48 | pulley_clearance=2, |
44 | lever_v_clearance=.7, // vertical clearance for the lever | 49 | lever_v_clearance=.7, // vertical clearance for the lever |
45 | spring_d_clearance=1, | 50 | spring_d_clearance=1, |
46 | protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion | 51 | protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion |
47 | protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion | 52 | protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion |
48 | mount_screw_d_tolerance=.5, | 53 | mount_screw_d_tolerance=.5, |
49 | idler_v_tolerance=.5, | 54 | idler_v_tolerance=.5, |
55 | knob_bore_d_tolerance=.6, | ||
50 | 56 | ||
51 | what="lever", | 57 | what="lever", |
52 | left=false, | 58 | left=false, |
53 | vitamins = true | 59 | vitamins = true |
54 | ) { | 60 | ) { |
55 | lever_shell = mount_screwhead_h+0.5; | 61 | lever_shell = mount_screwhead_h+0.5; |
56 | lever_thickness=max(spring_d+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); | 62 | lever_thickness=max(spring_d+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); |
57 | lsd = idler_d-idler_clearance*2; | 63 | lsd = idler_d-idler_clearance*2; |
58 | longwing=gearbox_d/2+spring_d/2+lsd/2; | 64 | longwing=gearbox_d/2+spring_d/2+lsd/2; |
59 | h_ = (pulley_d+idler_d)/(2*sqrt(2)); | 65 | h_ = (pulley_d+idler_d)/(2*sqrt(2)); |
60 | ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); | 66 | ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); |
61 | spring_dl = idler_travel*longwing/ri; | 67 | spring_dl = idler_travel*longwing/ri; |
@@ -283,23 +289,53 @@ module the_extruder( | |||
283 | if(false) { // parallel | 289 | if(false) { // parallel |
284 | for(y=[-gearbox_d:4:gearbox_d]) | 290 | for(y=[-gearbox_d:4:gearbox_d]) |
285 | translate([0,y-extrusion_width/2,0]) | 291 | translate([0,y-extrusion_width/2,0]) |
286 | cube(size=[gearbox_d,extrusion_width,body_h]); | 292 | cube(size=[gearbox_d,extrusion_width,body_h]); |
287 | }else{ // radial | 293 | }else{ // radial |
288 | for(zr=[-65:(65+50)/7:50]) | 294 | for(zr=[-65:(65+50)/7:50]) |
289 | rotate([0,0,zr]) translate([0,-extrusion_width/2,0]) | 295 | rotate([0,0,zr]) translate([0,-extrusion_width/2,0]) |
290 | cube(size=[gearbox_d,extrusion_width,body_h]); | 296 | cube(size=[gearbox_d,extrusion_width,body_h]); |
291 | } | 297 | } |
292 | } | 298 | } |
293 | 299 | ||
294 | }//body module | 300 | }//body module |
301 | |||
302 | module knob() { | ||
303 | ch = knob_indent_d/2; | ||
304 | translate([0,0,body_h+epsilon]) { | ||
305 | mirror([0,0,1]) translate([0,0,-epsilon]) { | ||
306 | difference() { | ||
307 | cylinder(d=pulley_d,h=knob_bore_l,$fn=pulley_d*PI*2); | ||
308 | translate([0,0,-1]) difference() { | ||
309 | cylinder(d=bore_d+knob_bore_d_tolerance,h=knob_bore_l+2); | ||
310 | translate([-bore_d/2-1,bore_dd-bore_d/2+knob_bore_d_tolerance/2,-1]) | ||
311 | cube([bore_d+2,bore_d/2,knob_bore_l+4]); | ||
312 | } | ||
313 | } | ||
314 | } | ||
315 | difference() { | ||
316 | union() { | ||
317 | cylinder(d1=gearbox_d-2*ch,d2=gearbox_d,h=ch+epsilon,$fn=PI*gearbox_d*2); | ||
318 | translate([0,0,ch]) | ||
319 | cylinder(d=gearbox_d,h=knob_h-2*ch+epsilon,$fn=PI*gearbox_d*2); | ||
320 | translate([0,0,knob_h-ch]) | ||
321 | cylinder(d1=gearbox_d,d2=gearbox_d-2*ch,h=ch,$fn=PI*gearbox_d*2); | ||
322 | } | ||
323 | for(a=[0:360/knob_indents:359]) rotate([0,0,a]) | ||
324 | translate([0,gearbox_d/2,-1]) | ||
325 | cylinder(d=knob_indent_d,h=knob_h+2,$fn=knob_indent_d*PI*2); | ||
326 | } | ||
327 | } | ||
328 | }//knob module | ||
295 | 329 | ||
296 | mirrorleft() | 330 | mirrorleft() |
297 | if(what=="lever") color("green",0.7) lever(); | 331 | if(what=="lever") color("green",0.7) lever(); |
298 | else if(what=="body") color("yellow",0.7) body(); | 332 | else if(what=="body") color("yellow",0.7) body(); |
299 | else if(what=="both") { | 333 | else if(what=="knob") color("red",0.7) knob(); |
334 | else if(what=="both" || what=="*") { | ||
300 | color("green",0.7) lever(); | 335 | color("green",0.7) lever(); |
301 | color("yellow",0.7) body(); | 336 | color("yellow",0.7) body(); |
337 | color("red",0.7) knob(); | ||
302 | } | 338 | } |
303 | } | 339 | } |
304 | 340 | ||
305 | the_extruder(what="both",left=false); | 341 | the_extruder(what="both",left=false); |