summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-08-06 11:50:50 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-06 11:50:50 (UTC)
commit1d8f93c354df4effca90d355841d189ecdec7a27 (patch) (unidiff)
tree23fba408f025c5ebff445ff57bbbe2823c0c24d4
parent33bc5b6d63d542af268a3af98a7f07c57cce73a4 (diff)
downloadextrudery-1d8f93c354df4effca90d355841d189ecdec7a27.zip
extrudery-1d8f93c354df4effca90d355841d189ecdec7a27.tar.gz
extrudery-1d8f93c354df4effca90d355841d189ecdec7a27.tar.bz2
a bit of rework and addition of debug cutouts
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad33
1 files changed, 26 insertions, 7 deletions
diff --git a/another.scad b/another.scad
index 3d804c1..03f3bf9 100644
--- a/another.scad
+++ b/another.scad
@@ -188,49 +188,48 @@ module the_extruder(
188 }//lever module 188 }//lever module
189 189
190 module body() { 190 module body() {
191 difference() { 191 difference() {
192 union() { 192 union() {
193 cylinder(d=gearbox_d,h=body_h,$fn=fnd*gearbox_d); 193 cylinder(d=gearbox_d,h=body_h,$fn=fnd*gearbox_d);
194 // finger and spring support 194 // finger and spring support
195 fsw = gearbox_d-(gearbox_d-mount_d)/2-spring_lc; 195 fsw = gearbox_d-(gearbox_d-mount_d)/2-spring_lc;
196 translate([-gearbox_d/2,0,0]) difference() { 196 translate([-gearbox_d/2,0,0]) difference() {
197 union() { 197 union() {
198 hull() { 198 hull() {
199 translate([0,-longwing,ls_z]) 199 translate([0,-longwing,ls_z])
200 rotate([0,90,0]) 200 rotate([0,90,0])
201 cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness); 201 cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness);
202 hh=body_h-ls_z; 202 hh=body_h-ls_z;
203 translate([0,0,ls_z-lever_thickness/2]) 203 translate([0,0,ls_z-lever_thickness/2])
204 mirror([0,1,0]) cube(size=[fsw,longwing-hh+lever_thickness/sqrt(2),hh+lever_thickness/2]); 204 mirror([0,1,0]) cube(size=[fsw,longwing-hh+lever_thickness/sqrt(2),hh+lever_thickness/2]);
205 hhh=ls_z; 205 hhh=ls_z;
206 translate([0,0,0]) 206 translate([0,0,0])
207 mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); 207 mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]);
208 } 208 }
209 } 209 }
210 translate([0,-longwing,ls_z]) rotate([0,-90,0]) { 210 translate([0,-longwing,ls_z]) rotate([0,-90,0]) {
211 if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else { 211 if(!tensioner) finger_indent(d=lever_thickness-1,r=15); else {
212 if(debug) translate([0,-lever_thickness/2-1,-gearbox_d]) cube(size=[body_h/2+1,lever_thickness/2+1,gearbox_d+2]);
213 mirror([0,0,1]) { 212 mirror([0,0,1]) {
214 translate([0,0,st_thickshell]) 213 translate([0,0,st_thickshell])
215 hull() for(o=[0,spring_d]) translate([0,-o,0]) 214 hull() for(o=[0,spring_d]) translate([0,-o,0])
216 rotate([0,0,30]) 215 rotate([0,0,30])
217 cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6); 216 cylinder(d=st_nut_d+st_nut_d_tolerance,h=st_nut_h+st_nut_h_tolerance,$fn=6);
218 translate([0,0,-1]) cylinder(d=st_screw_d,h=fsw+2,$fn=fnd*st_screw_d); 217 translate([0,0,-1]) cylinder(d=st_screw_d,h=fsw+2,$fn=fnd*st_screw_d);
219 bigd = spring_d+spring_d_clearance; 218 bigd = spring_d+spring_d_clearance;
220 hf = (bigd-st_screw_d)/2; 219 hf = (bigd-st_screw_d)/2;
221 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon]) 220 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell-epsilon])
222 cylinder(d1=st_screw_d,d2=bigd, 221 cylinder(d1=st_screw_d,d2=bigd,
223 h=hf+epsilon, $fn=fnd*bigd); 222 h=hf+epsilon, $fn=fnd*bigd);
224 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon]) 223 translate([0,0,st_thickshell+st_nut_h+st_nut_h_tolerance+st_thinshell+hf-epsilon])
225 cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd); 224 cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd);
226 } 225 }
227 } 226 }
228 } 227 }
229 } // translate 228 } // translate
230 229
231 // pushfit bracket 230 // pushfit bracket
232 translate([0,0,filament_elevation]) 231 translate([0,0,filament_elevation])
233 rotate([0,0,45]) translate([pulley_d/2,0,0]) 232 rotate([0,0,45]) translate([pulley_d/2,0,0])
234 rotate([-90,0,0]) 233 rotate([-90,0,0])
235 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) 234 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/])
236 cylinder(r=min(body_h-filament_elevation,filament_elevation)/sin(60)-epsilon,h=pf_h(pf)+gearbox_d/2/*TODO:*/,$fn=6); 235 cylinder(r=min(body_h-filament_elevation,filament_elevation)/sin(60)-epsilon,h=pf_h(pf)+gearbox_d/2/*TODO:*/,$fn=6);
@@ -289,54 +288,48 @@ module the_extruder(
289 translate([0,-ls_h/2]) 288 translate([0,-ls_h/2])
290 square([sqrt(pow(gearbox_d/2,2)+pow(longwing-lever_thickness/2,2))+1, 289 square([sqrt(pow(gearbox_d/2,2)+pow(longwing-lever_thickness/2,2))+1,
291 ls_h]); 290 ls_h]);
292 cylinder(d=bore_d/2/*TODO:recalculate angles based on this, 291 cylinder(d=bore_d/2/*TODO:recalculate angles based on this,
293 too lazy to do that now*/, 292 too lazy to do that now*/,
294 h=ls_h,center=true); 293 h=ls_h,center=true);
295 } 294 }
296 295
297 rotate([0,0,-45]) 296 rotate([0,0,-45])
298 translate([0,0,ls_z-ls_h/2]) 297 translate([0,0,ls_z-ls_h/2])
299 cube(size=[gearbox_d,gearbox_d,lever_thickness+lever_v_clearance]); 298 cube(size=[gearbox_d,gearbox_d,lever_thickness+lever_v_clearance]);
300 translate([0,0,ls_z-ls_h/2]) { 299 translate([0,0,ls_z-ls_h/2]) {
301 translate([mount_screwhead_d/2,0,0]) 300 translate([mount_screwhead_d/2,0,0])
302 mirror([0,1,0]) 301 mirror([0,1,0])
303 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]); 302 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]);
304 } 303 }
305 //translate([-mount_d/2,-longwing,filament_elevation]) 304 //translate([-mount_d/2,-longwing,filament_elevation])
306 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */ 305 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */
307 translate([mount_d/2,-longwing,filament_elevation]) 306 translate([mount_d/2,-longwing,filament_elevation])
308 rotate([0,-90,0]) difference() { 307 rotate([0,-90,0]) difference() {
309 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance)); 308 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance));
310 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); 309 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4);
311 } 310 }
312 311
313 if(debug) {
314 translate([mount_d/2,0,-1])
315 rotate([0,0,-45])
316 cube(size=[gearbox_d-mount_d,gearbox_d-mount_d,body_h+2]);
317 }
318
319 }//difference 312 }//difference
320 313
321 if(supports) intersection() { 314 if(supports) intersection() {
322 difference() { 315 difference() {
323 translate([0,0,ls_z-ls_h/2-epsilon]) 316 translate([0,0,ls_z-ls_h/2-epsilon])
324 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d); 317 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d);
325 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance)); 318 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance));
326 } 319 }
327 // supports 320 // supports
328 // TODO: hardcoded stuff below… 321 // TODO: hardcoded stuff below…
329 if(false) { // parallel 322 if(false) { // parallel
330 for(y=[-gearbox_d:4:gearbox_d]) 323 for(y=[-gearbox_d:4:gearbox_d])
331 translate([0,y-extrusion_width/2,0]) 324 translate([0,y-extrusion_width/2,0])
332 cube(size=[gearbox_d,extrusion_width,body_h]); 325 cube(size=[gearbox_d,extrusion_width,body_h]);
333 }else{ // radial 326 }else{ // radial
334 for(zr=[-65:(65+50)/7:50]) 327 for(zr=[-65:(65+50)/7:50])
335 rotate([0,0,zr]) translate([0,-extrusion_width/2,0]) 328 rotate([0,0,zr]) translate([0,-extrusion_width/2,0])
336 cube(size=[gearbox_d,extrusion_width,body_h]); 329 cube(size=[gearbox_d,extrusion_width,body_h]);
337 } 330 }
338 } 331 }
339 332
340 }//body module 333 }//body module
341 334
342 module springpad() { 335 module springpad() {
@@ -364,41 +357,67 @@ module the_extruder(
364 difference() { 357 difference() {
365 cylinder(d=pulley_d,h=knob_bore_l,$fn=fnd*pulley_d); 358 cylinder(d=pulley_d,h=knob_bore_l,$fn=fnd*pulley_d);
366 translate([0,0,-1]) difference() { 359 translate([0,0,-1]) difference() {
367 cylinder(d=bore_d+knob_bore_d_tolerance,h=knob_bore_l+2); 360 cylinder(d=bore_d+knob_bore_d_tolerance,h=knob_bore_l+2);
368 translate([-bore_d/2-1,bore_dd-bore_d/2+knob_bore_d_tolerance/2,-1]) 361 translate([-bore_d/2-1,bore_dd-bore_d/2+knob_bore_d_tolerance/2,-1])
369 cube([bore_d+2,bore_d/2,knob_bore_l+4]); 362 cube([bore_d+2,bore_d/2,knob_bore_l+4]);
370 } 363 }
371 } 364 }
372 } 365 }
373 difference() { 366 difference() {
374 union() { 367 union() {
375 cylinder(d1=gearbox_d-2*ch,d2=gearbox_d,h=ch+epsilon,$fn=fnd*gearbox_d); 368 cylinder(d1=gearbox_d-2*ch,d2=gearbox_d,h=ch+epsilon,$fn=fnd*gearbox_d);
376 translate([0,0,ch]) 369 translate([0,0,ch])
377 cylinder(d=gearbox_d,h=knob_h-2*ch+epsilon,$fn=fnd*gearbox_d); 370 cylinder(d=gearbox_d,h=knob_h-2*ch+epsilon,$fn=fnd*gearbox_d);
378 translate([0,0,knob_h-ch]) 371 translate([0,0,knob_h-ch])
379 cylinder(d1=gearbox_d,d2=gearbox_d-2*ch,h=ch,$fn=fnd*gearbox_d); 372 cylinder(d1=gearbox_d,d2=gearbox_d-2*ch,h=ch,$fn=fnd*gearbox_d);
380 } 373 }
381 for(a=[0:360/knob_indents:359]) rotate([0,0,a]) 374 for(a=[0:360/knob_indents:359]) rotate([0,0,a])
382 translate([0,gearbox_d/2,-1]) 375 translate([0,gearbox_d/2,-1])
383 cylinder(d=knob_indent_d,h=knob_h+2,$fn=fnd*knob_indent_d); 376 cylinder(d=knob_indent_d,h=knob_h+2,$fn=fnd*knob_indent_d);
384 } 377 }
385 } 378 }
386 }//knob module 379 }//knob module
387 380
381 module debug() {
382 difference() {
383 children();
384 if(debug) {
385 // spring tensioner debug cutout
386 if(tensioner) // TODO: collaps copypasted transformations
387 translate([-gearbox_d/2,0,0])
388 translate([0,-longwing,ls_z]) rotate([0,-90,0])
389 translate([0,-lever_thickness/2-1,-gearbox_d])
390 cube(size=[body_h/2+1,lever_thickness/2+1,gearbox_d+2]);
391 // lever axis debug cutout
392 translate([mount_d/2,0,-1])
393 rotate([0,0,-45])
394 cube(size=[gearbox_d-mount_d,gearbox_d-mount_d,body_h+knob_h+2]);
395 // idler debug cutout
396 translate([0,0,ls_z])
397 place_idler()
398 rotate([0,0,-45])
399 translate([0,0,-lever_thickness/2-epsilon])
400 cube(size=[(idler_d+idler_clearance)/2,(idler_d+idler_clearance)/2,
401 lever_thickness+2*epsilon]);
402 }//if debug
403 }//difference
404 }
405
406 debug()
388 mirrorleft() 407 mirrorleft()
389 if(what=="lever") color("green",0.7) lever(); 408 if(what=="lever") color("green",0.7) lever();
390 else if(what=="body") color("yellow",0.7) body(); 409 else if(what=="body") color("yellow",0.7) body();
391 else if(what=="knob") color("red",0.7) knob(); 410 else if(what=="knob") color("red",0.7) knob();
392 else if(what=="springpad") color("blue",0.7) springpad(); 411 else if(what=="springpad") color("blue",0.7) springpad();
393 else if(what=="both") { 412 else if(what=="both") {
394 color("green",0.7) lever(); 413 color("green",0.7) lever();
395 color("yellow",0.7) body(); 414 color("yellow",0.7) body();
396 }else{ 415 }else{
397 color("green",0.7) lever(); 416 color("green",0.7) lever();
398 color("yellow",0.7) body(); 417 color("yellow",0.7) body();
399 color("red",0.7) knob(); 418 color("red",0.7) knob();
400 color("blue",0.7) springpad(); 419 color("blue",0.7) springpad();
401 } 420 }
402} 421}
403 422
404the_extruder(what="both",left=false); 423the_extruder(what="both",left=false);