diff --git a/rylynn/Full Unit.3mf b/rylynn/Full Unit.3mf new file mode 100644 index 0000000..10bcc28 Binary files /dev/null and b/rylynn/Full Unit.3mf differ diff --git a/rylynn/Full Unit.scad b/rylynn/Full Unit.scad new file mode 100644 index 0000000..73e0696 --- /dev/null +++ b/rylynn/Full Unit.scad @@ -0,0 +1,174 @@ +// use + +wallLength=127; +largeWallHeight=228.6; +//full size is 228.6mm +wallWidth=10; +sinkHoleDiameter=19.05; +sinkPadding=1; + +circleRadius=3.175; + +module CutOutCircles(r) +{ + color("blue") + cylinder(h=15, r=r, center=false); + translate([0, 0, 29]) + sphere(r*5.2); +} + +module DrawAllCircles(startPoint, endPoint, distanceBetween, xPoint, zPoint) { + for(i = [startPoint : distanceBetween : endPoint]) + { + translate([xPoint, i, zPoint]) + CutOutCircles(circleRadius); + } +} + + +module mainBody() { + translate([0, 0, wallWidth]) + difference(){ + + union(){ + //Longer Wall + color("cyan") + cube([wallLength, wallWidth, largeWallHeight]); + color("cyan") + translate([0, -117, 0]) + cube([wallLength, wallWidth, largeWallHeight]); + + //Shorter Wall + color("yellow") + translate([0,0,-10]) + rotate([0, 0, -90]) + cube([wallLength - (wallWidth*2), wallWidth, largeWallHeight + 10]); + + color("yellow") + translate([117, 0, -10]) + rotate([0, 0, -90]) + cube([wallLength - (wallWidth*2), wallWidth, largeWallHeight + 10]); + + + difference() + { + color("green") + rotate([90,0,0]) + translate([0, -10, -10]) + cube([wallLength, wallWidth, wallLength]); + + DrawAllCircles(-72, -27.5, circleRadius*4, 15, -20); + DrawAllCircles(-91, -10, circleRadius*4, 27.5, -20); + DrawAllCircles(-91, -10, circleRadius*4, 40, -20); + DrawAllCircles(-91, -10, circleRadius*4, 52.5, -20); + DrawAllCircles(-91, -10, circleRadius*4, 65, -20); + DrawAllCircles(-91, -10, circleRadius*4, 77.5, -20); + DrawAllCircles(-91, -10, circleRadius*4, 90, -20); + DrawAllCircles(-91, -10, circleRadius*4, 102.5, -20); + DrawAllCircles(-72, -27.5, circleRadius*4, 113, -20); + } + } + + + + + // Holes in the bottom + + // translate([15, -30, -20]) + // CutOutCircles(circleRadius); + + + + + // Triangular cutouts in the corners + union(){ + color("blue") + translate([0, 10, -30]) + rotate([45, 0, 45]) + + cube([70,70,70], center=true); + + color("blue") + translate([0, -117, -30]) + rotate([45, 0, -45]) + cube([70,70,70], center=true); + + color("blue") + translate([wallLength, 10, -30]) + rotate([-45, 0, -45]) + cube([70,70,70], center=true); + + color("blue") + translate([127, -117, -30]) + rotate([-45, 0, 45]) + cube([70,70,70], center=true); + } + + + } +} + +// Grip Mechanism +module grip() { + translate([0, 0, wallWidth]) + difference() + { + union() + { + //Base + translate([63.5, 30, 162.3]) + cube([90.8,47.4,76.2], center=true); + + //Rounded far edge + translate([63.5, 46.6625, 125]) + rotate([0,90,0]) + cylinder(h = 90.8, r = 6.0375, center=true); + + //Rounded near edge + translate([63.5, 15.6875, 125]) + rotate([0,90,0]) + cylinder(h = 90.8, r = 6.0375, center=true); + } + + //Opening for grip + union() + { + //Cylinders for hole + translate([63.5, 31, 170]) + rotate([0,90,0]) + cylinder(h = 91, r = sinkHoleDiameter/2 + (sinkPadding * 2), center=true); + + translate([63.5, 31, 138.7]) + cube([91, sinkHoleDiameter + (sinkPadding * 2), 60], center=true); + } + } +} + + +difference() { + union() { + rotate([0, -45, 0]) + union() { + mainBody(); + grip(); + + for(i = [1,2]) { + translate([-wallLength * 2 - 0.1, -wallLength*i/3 + wallWidth, 0]) + cube([wallLength*2, 1.2, largeWallHeight]); + + } + + for(i = [-1, 1]) { + translate([-wallLength*2 + 63.5 - (90.8/2) - 0.1, 30 + 16*i, 0]) + cube([wallLength*2, 1.2, largeWallHeight]); + translate([0, -50-50*i, -80.1]) cube([80, 1.2, 80]); + } + } + translate([-140, -74, 0]) cube([1.2, 121, 100]); + + } + + translate([-400, -400, -400]) cube([800, 800, 400]); + translate([-980, -200, -1]) cube([800, 400, 400]); + translate([90, -200, -1]) cube([800, 400, 400]); +}