/* DurangoDEX210GearCover History: -------- 2015-04-18, 21:46, h, v1-3: First try. 2015-04-20, 19:22, h, v4: v3 fits, but not soo neatly. Made inner space bigger, material strength reduced. Made it fit shorter screws (than 20mm :)). Is now much harder to print. 20mm screws were there for a reason! :) If this doesn't work, I'll try some supports. But for now, I'll just try. Since the cpu is still hogged up from the slicer, Ill try adding supports. 2015-04-21, 21:13, h: Hm. v5 was fine beside: lower diameter should be bigger, because it sits on the motor screws. And the upper struct collides with the shock tower. So, let's try version 6. 2015-04-22, 20:02, h: Upper Cylinder collides with arm - make room. Also, change supports on upper strut. -> v7 ToDo: ----- - Refactor! */ /* Modules */ include <../../_Modules/Module_Geometrical_Objects.scad>; include <../../_Modules/Module_Rounded_Cube.scad>; /* Globals */ $fn=50; gDiameterUpperInner=51; // Inner Diameter of Upper cyl gDiameterLowerInner=36; // Inner Diameter of Lower cyl gDistanceOfCenters=27; // Distance between centers of cylinders gHeightInner=7+8; gDiameterStrutOuter=8; gDiameterStrutInner=3.3; gDiameterScrewHead=6.3; // actually 6mm gMaterialStrength=1.2; union() { /* Outer Hull */ difference() { union() { twoCylinders(gDiameterUpperInner+2*gMaterialStrength, gDiameterLowerInner+2*gMaterialStrength, gDistanceOfCenters, gHeightInner+gMaterialStrength); /* The outer/upper strut for screw hole */ translate([-gDiameterUpperInner/2-gMaterialStrength-gDiameterStrutOuter*0-gMaterialStrength*2, 0*-gDiameterStrutOuter/2, (gHeightInner+gMaterialStrength)/2]) //cube([1.5*gDiameterStrutOuter, gDiameterStrutOuter, gHeightInner+gMaterialStrength]); roundedCubeWithCornerDiameter(1.0*gDiameterStrutOuter, gDiameterStrutOuter, gHeightInner+gMaterialStrength, 4, 0, 10, 0); // langLoch3D } /* Inner Space */ union() { difference() { twoCylinders(gDiameterUpperInner, gDiameterLowerInner, gDistanceOfCenters, gHeightInner); // basic form translate([gDistanceOfCenters+gDiameterLowerInner/2-gDiameterStrutOuter/2-0.01,0,0]) cylinder(d=gDiameterStrutOuter, h=gHeightInner); // strut lower end } translate([gDistanceOfCenters+gDiameterLowerInner/2-gDiameterStrutOuter/2-0.01,0,0]) cylinder(d=gDiameterStrutInner, h=gHeightInner+gMaterialStrength); // hole in inner strut for M3 screw } /* Hole in outer/upper strut for M3 screw */ translate([-gDiameterUpperInner/2-gDiameterStrutOuter/2-2*gMaterialStrength/2,0,0]) //cylinder(d=gDiameterStrutInner, h=gHeightInner+gMaterialStrength); rotate([0,0,180*0]) langLoch3D(gDiameterStrutInner, 6, gHeightInner+gMaterialStrength); /* Reduce height of outer/upper strut */ translate([-gDiameterUpperInner/2-2.1*gMaterialStrength-gDiameterStrutOuter*0-gMaterialStrength*2, 0*-gDiameterStrutOuter/2, (gHeightInner+gMaterialStrength)/2+gMaterialStrength*2]) roundedCubeWithCornerDiameter(1.0*gDiameterStrutOuter, gDiameterStrutOuter, gHeightInner+gMaterialStrength, 4, 0, 4, 0); /* Inset Hole for lower screw */ translate([gDistanceOfCenters+gDiameterLowerInner/2-gDiameterStrutOuter/2-0.01,0,(gHeightInner+1*gMaterialStrength)*0+2*gMaterialStrength]) cylinder(d=gDiameterScrewHead, h=gHeightInner+2*gMaterialStrength); // hole in inner strut for M3 screw /* Make room for right link arm */ translate([-35/1.8, gDiameterUpperInner/2-15, gHeightInner+2*3]) rotate([-30,0,10]) cube([35,15,3]); } // diff /* Supports for upper struts */ translate([-gDiameterUpperInner/2-1.1*gMaterialStrength-gMaterialStrength*2-1.5, gDiameterScrewHead/2, gMaterialStrength*2]) cube([5, 0.3, gHeightInner-gMaterialStrength]); translate([-gDiameterUpperInner/2-0.1*gMaterialStrength-gMaterialStrength*2-1.5, -gDiameterScrewHead/2, gMaterialStrength*2]) cube([3, 0.3*2, gHeightInner-gMaterialStrength]); translate([-gDiameterUpperInner/2-2.1*gMaterialStrength-gMaterialStrength*2-2, -gDiameterScrewHead/2, gMaterialStrength*2]) rotate([0,0,90]) cube([3, 0.3*2, gHeightInner-gMaterialStrength]); /* Close hole (from making room for right link arm) */ #translate([-4, gDiameterUpperInner/2-1.8, gHeightInner-0.65]) rotate([-30,0,10]) //cube([20,3,gMaterialStrength]); roundedCubeWithCornerDiameter(20,3,gMaterialStrength, 0, 0, 7, 7); } // union module twoCylinders(d1, d2, di, h) { cylinder(d=d1, h=h); translate([di, 0, 0]) cylinder(d=d2, h=h); }