}
}
+// tensioner todo:
+// - end of screw slot does not align properly with motor holes
+// - start of screw slot material inside of belt slot does not go to edge of x-end
+// - tensioner body interferes with end stop adjuster
module x_end_belt_tensioner_base () {
- translate([-24,9,30.25]) rotate(a=[90,30,0]) cylinder(h=27, r=4, $fn=6);
+ 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]);
+ translate([-6,-27,0]) rotate(a=[0,45,0]) cube([11,27,11]);
+ translate([-13.465,-28,-10.25]) cube([10,30,21]);
+ translate([-5,-28,4.75]) cube([10,30,21]);
+ translate([4,-28,-10.25]) 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]);
+ translate([0,-27,0]) rotate(a=[90,0,0]) cylinder(h=10.5, r=5, $fn=30); // too short
+ translate([-19.5,-27,-10]) 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]);
+ translate ([0, 5, 0]) {
+ translate([0,0,0]) rotate(a=[90,0,0]) cylinder(h=35, r=1.6, $fn=30);
+ translate([0,-32,0]) rotate(a=[90,0,0]) cylinder(h=30 + motor_y_offset, r=3.2, $fn=30);
+ translate([0-10+2.8,-11,0-2.8]) cube([10,2.1,5.6]);
}
}
// based on wilson x-ends, the intention here is to
// leave a 11.5mm shaft for the screw
motor_screwhead_depth = -x_base_back() - 11.5;
- #translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- #translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = motor_screwhead_depth, r=screw_head_r, $fn=30);
-
-
- translate(v=[20,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = motor_screwhead_depth, r=screw_head_r, $fn=30);
-
- translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = motor_screwhead_depth, r=screw_head_r, $fn=30);
+ for (x =[-1:0.25:1]) {
+ translate(v=[0,-15.5+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=30, r=1.55, $fn=60);
+ translate(v=[0,-15.5+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
+ translate(v=[1,-15.5+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.05, $fn=60);
+ translate(v=[20,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
+ translate(v=[0,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
+ translate(v=[1,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
- translate(v=[20,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = motor_screwhead_depth, r=screw_head_r, $fn=30);
+ translate(v=[20,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
+ translate(v=[0,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
+ translate(v=[1,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
+ }
// Material saving cutout
translate(v=[-10,12+motor_y_offset/2,10]) cube(size = [60,42 + motor_y_offset,42], center = true);
// Final part
module x_end_motor(){
- difference(){
- x_end_motor_base();
- x_end_motor_holes();
- }
- // strain relief (zip tie point) below the motor
- x_end_motor_sr();
- %x_end_motor_pulley();
+ // 9 is specific to current model, might be better to have that translate in x_belt_tensioner modules?
+ belt_tensioner_offset = [x_base_back (), 9 + motor_y_offset, x_motor_shaft_z ()];
+ difference () {
+ union () {
+ difference() {
+ x_end_motor_base ();
+ x_end_motor_holes ();
+ }
+ translate (belt_tensioner_offset) x_end_belt_tensioner_base ();
+ }
+ translate (belt_tensioner_offset) x_end_belt_tensioner_holes ();
+ }
+ // strain relief (zip tie point) below the motor
+ x_end_motor_sr ();
+ %x_end_motor_pulley ();
}
//rotate([0,0,180])