//tb/120620-1 //see bottom: bracket(), belt() //---------------------------------------- module cutOutsZ() { translate([18,15,0]) { rotate(a=[0,0,62]) { color ("yellow") cube([6, 6, 6], center = false); } } translate([23,25,0]) { rotate(a=[0,0,62]) { color ("yellow") cube([6, 6, 6], center = false); } } translate([28,35,0]) { rotate(a=[0,0,62]) { color ("yellow") cube([6, 6, 6], center = false); } } translate([34,45,0]) { rotate(a=[0,0,62]) { color ("yellow") cube([6, 6, 6], center = false); } } translate([40,55,0]) { rotate(a=[0,0,62]) { color ("yellow") cube([6, 6, 6], center = false); } } } // end module cutOutsZ //---------------------------------------- module topPad() { difference() { translate([23,80,0]) { cylinder(h = 8, r1 = 8, r2 = 8, center = false,$fn=30); } translate([13,60,0]) { color ("black") cube([30, 15, 20], center = false); } } } // end module topPad //---------------------------------------- module bottomRightPad() { difference() { translate([51,0,0]) { cylinder(h = 8, r1 = 8, r2 = 8, center = false,$fn=30); } translate([30,0,0]) { color ("black") cube([30, 15, 20], center = false); } } } // end module bottomRightPad //---------------------------------------- module bottomLeftPad() { difference() { translate([8,0,0]) { cylinder(h = 8, r1 = 8, r2 = 8, center = false,$fn=30); } translate([0,0,0]) { color ("black") cube([30, 15, 20], center = false); } } } // end module bottomPadLeft //---------------------------------------- module triangleCutOuts() { union() { //cylinder with only 3 facets is a triangle //triangle to remove left translate([0,50,0]) { rotate(a=[0,0,30]) { cylinder(h = 40, r1 = 40, r2 = 40, center = true,$fn=3); } } //triangle to remove right translate([60,40,0]) { rotate(a=[0,0,90]) { cylinder(h = 40, r1 = 40, r2 = 40, center = true,$fn=3); } } } //end union } // end module triangleCutOuts //---------------------------------------- module strongZ() { //make Z strong top rotate(a=[0,0,-15]) { translate([-12,69,0]) { color ("blue") cube([40, 8, 2], center = false); } } //make Z strong bottom rotate(a=[0,0,-15]) { translate([10,25,0]) { color ("blue") cube([40, 8, 2], center = false); } } } //end module strongZ //---------------------------------------- module base() { union() { //base plate cube([55+4, 78, 2], center = false); //middle raise translate([40,39,2]) { color ("red") cube([30, 30, 2], center = true); } //top wall translate([0,74,2]) { cube([50, 4, 3], center = false); } //top wall left translate([13,74,2]) { cube([20, 4, 6], center = false); } //top wall right translate([45,74,2]) { cube([10, 4, 6], center = false); } //bottom wall left translate([0,0,2]) { cube([20, 4, 6], center = false); } //bottom wall right fat translate([43,0,2]) { cube([16, 7, 6], center = false); } //bottom wall right slim 90 translate([55,7,2]) { cube([4, 10, 6], center = false); } } //end union } //end module base //---------------------------------------- module beltBasicForm() { difference() { //base translate([16,-8,5]) { color ("yellow") cube([41,90, 7], center = false); } //remove translate([14,-25,3]) { color ("gray") cube([27,55, 10], center = false); } //remove translate([51,-10,3]) { color ("gray") cube([20,55, 10], center = false); } //remove translate([30,65,3]) { color ("gray") cube([30,45, 10], center = false); } //remove translate([41,-29,3]) { rotate(a=[0,0,45]) { color ("gray") cube([22,38, 10], center = false); } } //remove translate([22,21,3]) { rotate(a=[0,0,45]) { color ("blue") cube([25,60, 10], center = false); } } //remove translate([74,20,3]) { rotate(a=[0,0,45]) { color ("blue") cube([40,63, 10], center = false); } } //bottom space translate([13,35,3]) { color ("yellow") cube([40, 40, 5], center = false); } } // end difference } // end module beltBasicForm //---------------------------------------- module beltBottomPad() { difference() { translate([51,0,4]) { color ("black") cylinder(h = 8, r1 = 8, r2 = 8, center = false,$fn=30); } translate([30,6,0]) { color ("black") cube([30, 15, 20], center = false); } } } // end beltBottomPad //---------------------------------------- module beltTopPad() { difference() { translate([23,80,4]) { color("black") cylinder(h = 8, r1 = 8, r2 = 8, center = false,$fn=30); } translate([13,60,4]) { color ("black") cube([30, 15, 20], center = false); } } } // end beltTopPad //=============================== module bracket() { difference() { union() { difference() { base(); triangleCutOuts(); } //end difference strongZ(); bottomLeftPad(); bottomRightPad(); topPad(); } //end union cutOutsZ(); } //end difference } //end module bracket //=============================== module belt() { difference() { union() { beltBasicForm(); beltBottomPad(); beltTopPad(); } bracket(); } } //end module belt bracket(); belt();