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) (side-by-side diff) | |
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 @@ OPENSCAD_APP?=/Applications/OpenSCAD.app OPENSCAD_BIN?=${OPENSCAD_APP}/Contents/MacOS/OpenSCAD OPENSCAD_FLAGS=-D draft=false default: @echo "And?" clean: rm -f *.stl *.gcode stl-another-%: - $(MAKE) another-$*-{body,lever}.stl + $(MAKE) another-$*-{body,lever,knob}.stl another-%-body.stl: another-%.scad another.scad $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="body"' -o "$@" "$<" another-%-lever.stl: another-%.scad another.scad $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="lever"' -o "$@" "$<" +another-%-knob.stl: another-%.scad another.scad + $(OPENSCAD_BIN) $(OPENSCAD_FLAGS) -D 'what="knob"' -o "$@" "$<" %.stl: %.scad ${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( // pulley properties pulley_d = 11.5, pulley_h=10, pulley_elevation = 1, // pulley elevation above the protrusion teeth_elevation = 7.5, // distance from the bottom of the pulley to its teeth // idler properties idler_d = 9.5, idler_h = 4, idler_id = 3, // idler dimensions: outer and inner diameters and height // spring properties spring_d = 10, spring_lc = 9.6, // spring diameter and compressed length // filament path properties filament_d = 1.75, filament_path_d = 2, filament_guide_d = 4, // PTFE filament guide diameter + // knob properties + knob_h = 10, + knob_bore_l = 4, + knob_indent_d = 4, + knob_indents = 12, // screw it mount_screw_d = 3, mount_screw_l = 20, mount_screwhead_d=6, mount_screwhead_h=3, // empty spaces idler_travel = 3, // how far should idler travel when pressed idler_clearance=1, pulley_clearance=2, lever_v_clearance=.7, // vertical clearance for the lever spring_d_clearance=1, protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion mount_screw_d_tolerance=.5, idler_v_tolerance=.5, + knob_bore_d_tolerance=.6, what="lever", left=false, vitamins = true ) { lever_shell = mount_screwhead_h+0.5; lever_thickness=max(spring_d+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); lsd = idler_d-idler_clearance*2; longwing=gearbox_d/2+spring_d/2+lsd/2; h_ = (pulley_d+idler_d)/(2*sqrt(2)); ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); spring_dl = idler_travel*longwing/ri; @@ -283,23 +289,53 @@ module the_extruder( if(false) { // parallel for(y=[-gearbox_d:4:gearbox_d]) translate([0,y-extrusion_width/2,0]) cube(size=[gearbox_d,extrusion_width,body_h]); }else{ // radial for(zr=[-65:(65+50)/7:50]) rotate([0,0,zr]) translate([0,-extrusion_width/2,0]) cube(size=[gearbox_d,extrusion_width,body_h]); } } }//body module + + module knob() { + ch = knob_indent_d/2; + translate([0,0,body_h+epsilon]) { + mirror([0,0,1]) translate([0,0,-epsilon]) { + difference() { + cylinder(d=pulley_d,h=knob_bore_l,$fn=pulley_d*PI*2); + translate([0,0,-1]) difference() { + cylinder(d=bore_d+knob_bore_d_tolerance,h=knob_bore_l+2); + translate([-bore_d/2-1,bore_dd-bore_d/2+knob_bore_d_tolerance/2,-1]) + cube([bore_d+2,bore_d/2,knob_bore_l+4]); + } + } + } + difference() { + union() { + cylinder(d1=gearbox_d-2*ch,d2=gearbox_d,h=ch+epsilon,$fn=PI*gearbox_d*2); + translate([0,0,ch]) + cylinder(d=gearbox_d,h=knob_h-2*ch+epsilon,$fn=PI*gearbox_d*2); + translate([0,0,knob_h-ch]) + cylinder(d1=gearbox_d,d2=gearbox_d-2*ch,h=ch,$fn=PI*gearbox_d*2); + } + for(a=[0:360/knob_indents:359]) rotate([0,0,a]) + translate([0,gearbox_d/2,-1]) + cylinder(d=knob_indent_d,h=knob_h+2,$fn=knob_indent_d*PI*2); + } + } + }//knob module mirrorleft() if(what=="lever") color("green",0.7) lever(); else if(what=="body") color("yellow",0.7) body(); - else if(what=="both") { + else if(what=="knob") color("red",0.7) knob(); + else if(what=="both" || what=="*") { color("green",0.7) lever(); color("yellow",0.7) body(); + color("red",0.7) knob(); } } the_extruder(what="both",left=false); |