summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-08-12 00:54:08 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-12 00:54:08 (UTC)
commit6c61457ea7bfaf0edc28f9e771bf608e2a9bc405 (patch) (unidiff)
tree4583dad3add8dd4c1c00ab31ef7a1f498c1a8196
parent84832958278728643334a327bc3a2783ad354d72 (diff)
downloadextrudery-6c61457ea7bfaf0edc28f9e771bf608e2a9bc405.zip
extrudery-6c61457ea7bfaf0edc28f9e771bf608e2a9bc405.tar.gz
extrudery-6c61457ea7bfaf0edc28f9e771bf608e2a9bc405.tar.bz2
more generous back side cutout
just wanted a wider opening in there, but I'm not entirely pleased with the resulting code, though given the late hour I'll leave with it. Maybe until I revert this commit or rework that part altogether.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad23
1 files changed, 16 insertions, 7 deletions
diff --git a/another.scad b/another.scad
index f54c5cd..b80d0d0 100644
--- a/another.scad
+++ b/another.scad
@@ -293,76 +293,85 @@ module the_extruder(
293 // pushfit 293 // pushfit
294 translate([0,0,filament_elevation]) 294 translate([0,0,filament_elevation])
295 rotate([0,0,45]) translate([pulley_d/2,0,0]) 295 rotate([0,0,45]) translate([pulley_d/2,0,0])
296 rotate([-90,0,0]) 296 rotate([-90,0,0])
297 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) 297 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon])
298 rotate([0,0,180]) { 298 rotate([0,0,180]) {
299 pushfit(pf); 299 pushfit(pf);
300 cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d); 300 cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d);
301 translate([0,-filament_guide_d/2/sqrt(2),0]) 301 translate([0,-filament_guide_d/2/sqrt(2),0])
302 rotate([0,0,45]) 302 rotate([0,0,45])
303 cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true); 303 cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true);
304 }//rotate translate rotate translate rotate translate 304 }//rotate translate rotate translate rotate translate
305 // pulley 305 // pulley
306 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance)); 306 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance));
307 // leverspace 307 // leverspace
308 hull() for(x=[0,gearbox_d]) 308 hull() for(x=[0,gearbox_d])
309 rotate([0,0,45]) 309 rotate([0,0,45])
310 translate([x,0,ls_z-ls_h/2]) 310 translate([x,0,ls_z-ls_h/2])
311 cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance)); 311 cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance));
312 312
313 // idler clearance 313 // idler clearance
314 a=cos(45)*(pulley_d+idler_d)/2; 314 a=cos(45)*(pulley_d+idler_d)/2;
315 b=mount_d/2-a; 315 b=mount_d/2-a;
316 x=sqrt(pow(a,2)+pow(b,2)); 316 x=sqrt(pow(a,2)+pow(b,2));
317 translate([mount_d/2,0,ls_z]) 317 translate([mount_d/2,0,ls_z])
318 intersection() { 318 intersection() {
319 r = x+idler_d/2+idler_clearance; 319 r = x+idler_d/2+idler_clearance;
320 cylinder(r=r,h=ls_h,center=true); 320 cylinder(r=r,h=ls_h,center=true);
321 translate([-r-1,0,-ls_h/2-1]) cube(size=[2*r+2,r+1,ls_h+2]); 321 translate([-r-1,0,-ls_h/2-1]) cube(size=[2*r+2,r+1,ls_h+2]);
322 } 322 }
323 323
324 // back side cutout 324 // back side cutout
325 a0 = asin((mount_screwhead_d+2*extrusion_width)/mount_d); 325 // XXX: this is somewhat ugly and potentially bugged,
326 // but I want to sleep.
327 a0_ = atan(
328 (mount_d/sqrt(2)/2+mount_screw_d+pf_h(pf)+gearbox_d/2)
329 /
330 (
331 pulley_d/2-
332 (pf_d(pf)+2*pf_shell)/2/cos(30)
333 )
334 );
335 a0 = -135 + ( (a0_>0) ? a0_ : 180+a0_ );
326 a1 = atan((longwing-lever_thickness/2)/(gearbox_d/2)); 336 a1 = atan((longwing-lever_thickness/2)/(gearbox_d/2));
327 translate([0,0,ls_z]) hull() { 337 translate([0,0,ls_z]) difference() {
328 rotate([0,0,-180+a0]) 338 rotate([0,0,-180+a0])
329 rotate_extrude(angle=a1-a0) 339 rotate_extrude(angle=a1-a0)
330 translate([0,-ls_h/2]) 340 translate([0,-ls_h/2])
331 square([sqrt(pow(gearbox_d/2,2)+pow(longwing-lever_thickness/2,2))+1, 341 square([sqrt(pow(gearbox_d/2,2)+pow(longwing-lever_thickness/2,2))+1,
332 ls_h]); 342 ls_h]);
333 cylinder(d=bore_d/2/*TODO:recalculate angles based on this, 343 translate([-mount_d/2,0,0])
334 too lazy to do that now*/, 344 cylinder(d=gearbox_d-mount_d,h=ls_h+2,center=true,$fn=fnd*(gearbox_d-mount_d));
335 h=ls_h,center=true); 345 }//difference translate
336 }
337 346
338 rotate([0,0,-45]) 347 rotate([0,0,-45])
339 translate([0,0,ls_z-ls_h/2]) 348 translate([0,0,ls_z-ls_h/2])
340 cube(size=[gearbox_d,gearbox_d,lever_thickness+lever_v_clearance]); 349 cube(size=[gearbox_d,gearbox_d,lever_thickness+lever_v_clearance]);
341 translate([0,0,ls_z-ls_h/2]) { 350 translate([0,0,ls_z-ls_h/2]) {
342 translate([mount_screwhead_d/2,0,0]) 351 translate([mount_screwhead_d/2,0,0])
343 mirror([0,1,0]) 352 mirror([0,1,0])
344 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]); 353 cube(size=[gearbox_d,gearbox_d/2+1,lever_thickness+lever_v_clearance]);
345 } 354 }
346 //translate([-mount_d/2,-longwing,filament_elevation]) 355 //translate([-mount_d/2,-longwing,filament_elevation])
347 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */ 356 if(!tensioner) /* XXX: this seems to be bullshit, but it's so old, that it's historical bullshit */
348 translate([mount_d/2,-longwing,filament_elevation]) 357 translate([mount_d/2,-longwing,filament_elevation])
349 rotate([0,-90,0]) difference() { 358 rotate([0,-90,0]) difference() {
350 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance)); 359 cylinder(d=spring_d+spring_d_clearance,h=spring_lc+spring_dl,$fn=fnd*(spring_d+spring_d_clearance));
351 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); 360 translate([0,0,spring_lc+spring_dl]) sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4);
352 } 361 }
353 362
354 }//difference 363 }//difference
355 364
356 if(supports) intersection() { 365 if(supports) intersection() {
357 difference() { 366 difference() {
358 translate([0,0,ls_z-ls_h/2-epsilon]) 367 translate([0,0,ls_z-ls_h/2-epsilon])
359 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d); 368 cylinder(d=gearbox_d,h=ls_h+2*epsilon,$fn=fnd*gearbox_d);
360 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance)); 369 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance));
361 } 370 }
362 // supports 371 // supports
363 // TODO: hardcoded stuff below… 372 // TODO: hardcoded stuff below…
364 if(false) { // parallel 373 if(false) { // parallel
365 for(y=[-gearbox_d:4:gearbox_d]) 374 for(y=[-gearbox_d:4:gearbox_d])
366 translate([0,y-extrusion_width/2,0]) 375 translate([0,y-extrusion_width/2,0])
367 cube(size=[gearbox_d,extrusion_width,body_h]); 376 cube(size=[gearbox_d,extrusion_width,body_h]);
368 }else{ // radial 377 }else{ // radial