summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-08-12 21:36:03 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-12 21:36:03 (UTC)
commite33d88e915e10aa7c127a75482e1210313c29add (patch) (unidiff)
treec51b6a3fc3ff57b21b1bdfdaae0b472cd430190b
parentf123d3acb5e918b6a21af0a65bba4dc0395c73f3 (diff)
downloadextrudery-e33d88e915e10aa7c127a75482e1210313c29add.zip
extrudery-e33d88e915e10aa7c127a75482e1210313c29add.tar.gz
extrudery-e33d88e915e10aa7c127a75482e1210313c29add.tar.bz2
make offset on idler and pulley side difference
idler is moving and as long as I'm using plain bearing for idler that should be better
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad21
1 files changed, 13 insertions, 8 deletions
diff --git a/another.scad b/another.scad
index a93d21a..50b3a84 100644
--- a/another.scad
+++ b/another.scad
@@ -50,48 +50,49 @@ module the_extruder(
50 // empty spaces 50 // empty spaces
51 idler_travel = 3, // how far should idler travel when pressed 51 idler_travel = 3, // how far should idler travel when pressed
52 idler_clearance=1, 52 idler_clearance=1,
53 pulley_clearance=2, 53 pulley_clearance=2,
54 lever_v_clearance=.7, // vertical clearance for the lever 54 lever_v_clearance=.7, // vertical clearance for the lever
55 spring_d_clearance=1, 55 spring_d_clearance=1,
56 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion 56 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion
57 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion 57 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion
58 mount_screw_d_tolerance=.4, 58 mount_screw_d_tolerance=.4,
59 idler_v_tolerance=.5, 59 idler_v_tolerance=.5,
60 knob_bore_d_tolerance=.6, 60 knob_bore_d_tolerance=.6,
61 st_nut_h_tolerance=.2, 61 st_nut_h_tolerance=.2,
62 st_nut_d_tolerance=.2,/* TODO: make it st_nut_w_tolerance */ 62 st_nut_d_tolerance=.2,/* TODO: make it st_nut_w_tolerance */
63 st_screw_d_tolerance=.5, 63 st_screw_d_tolerance=.5,
64 64
65 what="lever", // lever|body|knob|springpad|* 65 what="lever", // lever|body|knob|springpad|*
66 left=false, 66 left=false,
67 vitamins = true, 67 vitamins = true,
68 supports = false, bridges = true, 68 supports = false, bridges = true,
69 tensioner = true, 69 tensioner = true,
70 debug = false 70 debug = false
71) { 71) {
72 fnd = 2*PI; fnr = 2*fnd; 72 fnd = 2*PI; fnr = 2*fnd;
73 73
74 idler_filament_offset = filament_path_d/2; // -filament_offset;
74 lever_shell = mount_screwhead_h+0.5; 75 lever_shell = mount_screwhead_h+0.5;
75 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); 76 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell);
76 lsd = idler_d-idler_clearance*2; 77 lsd = idler_d-idler_clearance*2;
77 longwing=gearbox_d/2+spring_d/2+lsd/2; 78 longwing=gearbox_d/2+spring_d/2+lsd/2;
78 h_ = (pulley_d+idler_d)/(2*sqrt(2)); 79 h_ = (pulley_d+idler_d)/(2*sqrt(2));
79 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); 80 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) );
80 spring_dl = idler_travel*longwing/ri; 81 spring_dl = idler_travel*longwing/ri;
81 82
82 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation; 83 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation;
83 ls_z = filament_elevation; // leverspace mid-z 84 ls_z = filament_elevation; // leverspace mid-z
84 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2); 85 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2);
85 ls_h = lever_thickness+lever_v_clearance; // leverspace height 86 ls_h = lever_thickness+lever_v_clearance; // leverspace height
86 87
87 module mirrorleft() { 88 module mirrorleft() {
88 mirror([left?0:1,0,0]) children(); 89 mirror([left?0:1,0,0]) children();
89 } 90 }
90 module place_idler() { 91 module place_idler() {
91 rotate([0,0,45]) 92 rotate([0,0,45])
92 translate([(pulley_d+idler_d)/2,0,0]) 93 translate([(pulley_d+idler_d)/2,0,0])
93 children(); 94 children();
94 } 95 }
95 module finger_indent(d=lever_thickness,depth/*=1*/,r/*=15*/) { 96 module finger_indent(d=lever_thickness,depth/*=1*/,r/*=15*/) {
96 if(depth) { 97 if(depth) {
97 hh = (-4*pow(depth,2)+pow(d,2))/(8*depth); 98 hh = (-4*pow(depth,2)+pow(d,2))/(8*depth);
@@ -101,85 +102,89 @@ module the_extruder(
101 hh=sqrt(pow(r,2)-pow(d,2)/4); 102 hh=sqrt(pow(r,2)-pow(d,2)/4);
102 translate([0,0,hh]) sphere(r=r,$fn=fnr*r); 103 translate([0,0,hh]) sphere(r=r,$fn=fnr*r);
103 } 104 }
104 } 105 }
105 106
106 % if(vitamins) mirrorleft() { 107 % if(vitamins) mirrorleft() {
107 translate([0,0,-epsilon]) mirror([0,0,1]) cylinder(d=gearbox_d,h=1,$fn=60); 108 translate([0,0,-epsilon]) mirror([0,0,1]) cylinder(d=gearbox_d,h=1,$fn=60);
108 for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0]) 109 for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0])
109 cylinder(d=mount_screw_d,h=20,$fn=30); 110 cylinder(d=mount_screw_d,h=20,$fn=30);
110 translate([0,0,-epsilon]) cylinder(d=protrusion_d,h=protrusion_h,$fn=30); 111 translate([0,0,-epsilon]) cylinder(d=protrusion_d,h=protrusion_h,$fn=30);
111 translate([0,0,protrusion_h]) { 112 translate([0,0,protrusion_h]) {
112 difference() { 113 difference() {
113 cylinder(d=bore_d,h=bore_l,$fn=30); 114 cylinder(d=bore_d,h=bore_l,$fn=30);
114 translate([-bore_d/2-1,bore_dd-bore_d/2,-1]) 115 translate([-bore_d/2-1,bore_dd-bore_d/2,-1])
115 cube([bore_d+2,bore_d/2,bore_l+2]); 116 cube([bore_d+2,bore_d/2,bore_l+2]);
116 } 117 }
117 translate([0,0,pulley_elevation]) { 118 translate([0,0,pulley_elevation]) {
118 cylinder(d=pulley_d,h=pulley_h,$fn=30); 119 cylinder(d=pulley_d,h=pulley_h,$fn=30);
119 translate([0,0,teeth_elevation]) { 120 translate([0,0,teeth_elevation]) {
120 place_idler() { 121 place_idler() {
121 cylinder(d=idler_d,h=idler_h,center=true,$fn=30); 122 cylinder(d=idler_d,h=idler_h,center=true,$fn=30);
122 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); 123 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30);
123 }//place idler 124 }//place idler
124 // filament path 125 // filament path
125 rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) { 126 rotate([0,0,45]) {
126 rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); 127 translate([pulley_d/2-idler_filament_offset,0,0]) rotate([90,0,0]) {
127 rotate([-90,0,0]) 128 cylinder(d=filament_d,h=gearbox_d,center=false,$fn=15);
128 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) 129 }//rotate translate
129 pushfit(pf); 130 translate([pulley_d/2+filament_offset,0,0]) rotate([-90,0,0]) {
130 } 131 cylinder(d=filament_d,h=gearbox_d,center=false,$fn=15);
132 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d])
133 pushfit(pf);
134 }//rotate translate
135 }//rotate
131 }//translate teeth 136 }//translate teeth
132 }//translate pulley 137 }//translate pulley
133 }//translate protrusion 138 }//translate protrusion
134 }//vitamins 139 }//vitamins
135 140
136 module lever() { 141 module lever() {
137 translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) { 142 translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) {
138 difference() { 143 difference() {
139 union() { 144 union() {
140 hull() { 145 hull() {
141 place_idler() 146 place_idler()
142 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); 147 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60);
143 translate([mount_d/2,0,0]) 148 translate([mount_d/2,0,0])
144 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); 149 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60);
145 }//hull 150 }//hull
146 hull() { 151 hull() {
147 translate([mount_d/2,0,0]) 152 translate([mount_d/2,0,0])
148 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); 153 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60);
149 translate([mount_d/2,-longwing,0]) rotate([0,90,0]) 154 translate([mount_d/2,-longwing,0]) rotate([0,90,0])
150 cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); 155 cylinder(d=lever_thickness,h=lsd,center=true,$fn=60);
151 }//hull 156 }//hull
152 }//union 157 }//union
153 158
154 // filament path 159 // filament path
155 place_idler() { 160 place_idler() {
156 translate([-idler_d/2+filament_offset,0,0]) rotate([90,0,0]) { 161 translate([-idler_d/2-idler_filament_offset,0,0]) rotate([90,0,0]) {
157 cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); 162 cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30);
158 translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) 163 translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45])
159 cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); 164 cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true);
160 }//rotate translate 165 }//rotate translate
161 translate([-idler_d/2+filament_offset,0,0]) 166 translate([-idler_d/2-idler_filament_offset,0,0])
162 rotate([90,0,0]) 167 rotate([90,0,0])
163 translate([0,0, 168 translate([0,0,
164 sqrt(2)*(mount_d-pulley_d+lsd)/2 169 sqrt(2)*(mount_d-pulley_d+lsd)/2
165 ]) { 170 ]) {
166 cylinder(d1=filament_path_d,d2=2*filament_path_d, 171 cylinder(d1=filament_path_d,d2=2*filament_path_d,
167 h=filament_path_d,$fn=2*filament_path_d*fnd); 172 h=filament_path_d,$fn=2*filament_path_d*fnd);
168 translate([0,0,filament_path_d-epsilon]) 173 translate([0,0,filament_path_d-epsilon])
169 cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd); 174 cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd);
170 } 175 }
171 }//place_idler 176 }//place_idler
172 177
173 // idler space and mounting hole 178 // idler space and mounting hole
174 place_idler() { 179 place_idler() {
175 difference() { 180 difference() {
176 cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); 181 cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60);
177 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) 182 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width])
178 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) 183 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1])
179 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]); 184 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]);
180 } 185 }
181 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); 186 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30);
182 translate([0,0,lever_thickness/2-idler_screwhead_h]) 187 translate([0,0,lever_thickness/2-idler_screwhead_h])
183 cylinder(d=idler_screwhead_d,h=idler_screwhead_h+1,$fn=fnd*idler_screwhead_d); 188 cylinder(d=idler_screwhead_d,h=idler_screwhead_h+1,$fn=fnd*idler_screwhead_d);
184 } 189 }
185 // mounting screw hole 190 // mounting screw hole