x-end: refine integration with MK3 idler tensioner
[clinton/prusa3.git] / box_frame / x-end-motor.scad
index 8ba0a9e..db273e7 100644 (file)
@@ -81,28 +81,31 @@ module x_end_motor_sr() {
      }
 }
 
+// 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]);
      }
 }
 
@@ -133,20 +136,20 @@ module x_end_motor_holes(){
                // 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);
@@ -187,13 +190,21 @@ module x_end_motor_pulley () {
 
 // 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])