}
}
+module x_end_belt_tensioner_base () {
+ translate([-24,9,30.25]) rotate(a=[90,30,0]) cylinder(h=27, r=4, $fn=6);
+ difference()
+ {
+ translate([-30,9-27,30.25]) rotate(a=[0,45,0]) cube([11,27,11]);
+ translate([-37.465,9-27-1,20]) cube([10,30,21]);
+ translate([-29,9-27-1,35]) cube([10,30,21]);
+ translate([-20,9-27-1,20]) cube([25,30,21]);
+ }
+ difference()
+ {
+ translate([-24,-18,30.25]) rotate(a=[90,0,0]) cylinder(h=10.5, r=5, $fn=30);
+ translate([-24-19.5,-18,20]) rotate(a=[90,0,0]) cube([20,20,20]);
+ }
+}
+
+module x_end_belt_tensioner_holes () {
+ translate(v=[0,32,30.25])
+ {
+ translate([-24,-15.5-2.5,0]) rotate(a=[90,0,0]) cylinder(h=35, r=1.6, $fn=30);
+ translate([-24,-15.5-4.5-30,0]) rotate(a=[90,0,0]) cylinder(h=30, r=3.2, $fn=30);
+ translate([-24-10+2.8,-29,0-2.8]) cube([10,2.1,5.6]);
+ }
+}
+
module x_end_motor_base(){
x_end_base();
// motor arm