x-end/idler: integrate original tensioner, remove anti-pitching ribs
authorClinton Ebadi <clinton@unknownlamer.org>
Mon, 20 May 2019 23:44:53 +0000 (19:44 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Mon, 20 May 2019 23:44:53 +0000 (19:44 -0400)
Not sure anti-pitching ribs do anything, remove for now.

Use stock tensioner, but shortened since mounting point is different.

This does not scale with the size of the bearing (but manual y/z
offsets were hacks, so removed for now).

box_frame/x-end-idler.scad

dissimilarity index 69%
index cbf2238..38d4c66 100644 (file)
@@ -1,57 +1,63 @@
-// PRUSA iteration3
-// X end idler
-// GNU GPL v3
-// Josef Průša <iam@josefprusa.cz> and contributors
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://prusamendel.org
-// Alterations for reprap wilson by M. Rice <mrice411@gmail.com>
-
-include <configuration.scad>
-use <x-end.scad>
-
-idler_offs_z = -1; // negative here means "up" when installed
-idler_offs_y = 4;
-
-center_z = 30.25 -1;
-tensioner_size_z = 12;
-
-module x_end_idler_base(){
- x_end_base();
-}
-
-module x_end_idler_holes(){
- x_end_holes();
- translate([0,idler_offs_y,idler_offs_z]) {
-      #translate(v=[0,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=idler_bearing[2]/2+.3, $fn=30);
-      #translate(v=[2,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 10, r=idler_bearing[2]/2 + 1, $fn=30);
-      #translate(v=[-21.5,-22,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 80, r=idler_bearing[2], $fn=6);
-
-      // create a notch for the X tensioner, to improve the length of
-      // travel available
-      translate (v=[0,-22,30.25]) translate(v=[-10,-20,1]) #difference()  {
-          rotate(a=[45,0,0])  cube(size=[30,22,22],center=true); 
-          translate(v=[0,14,0]) cube(size=[31,4,8],center=true);
-      }
- }
-}
-// Final part
-module x_end_idler(){
- mirror([0,1,0]) difference(){
-  x_end_idler_base();
-  x_end_idler_holes();
- }
-
- // added ridges to keep the tensioner from pitching
- for (x = [-9.8, -20.2], z = [center_z-tensioner_size_z/2 - .5, center_z+tensioner_size_z/2 + .5]) {
-      d = 2;
-      translate(v=[x,1, z]) intersection () {
-          rotate ([45, 0, 90]) cube(size=[20,d, d],center=true);
-          translate ([(x < -15) ? d  : -d, 0, 0]) rotate ([0, 0, 90]) cube(size=[20,d*2, d*2],center=true);
-      }
- }
-}
-
-x_end_idler();
-
-
+// PRUSA iteration3
+// X end idler
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+// Alterations for reprap wilson by M. Rice <mrice411@gmail.com>
+
+include <configuration.scad>
+use <x-end.scad>
+use <inc/bearing-guide.scad>
+use <y-drivetrain.scad>
+
+// todo:
+
+//  - restore y and z offsets. shift y with bearing_z, z with
+//    idler_bearing diameter to maintain a straight belt line
+
+module x_end_idler_base(){
+ x_end_base();
+}
+
+module x_end_idler_holes(){
+ x_end_holes();
+
+ // tensioner mount
+ translate([-20, -15 - z_delta / 2, 30]) {
+      rotate([0, 90, 0]) cylinder(r=m4_diameter / 2, h=33, center=true, $fn=small_hole_segments);
+      translate([15 - 2 * single_wall_width, 0, 0]) rotate([90, 0, 90]) cylinder(r=m4_nut_diameter_horizontal / 2, h=3, $fn=6);
+ }
+ // create a notch for the X tensioner, to improve the length of
+ // travel available
+ // todo: doesn't scale with size of idler bearing correctly
+ translate (v=[x_base_back() + x_box_width/2,(-sqrt(2)*22)/2 + x_base_inside() + idler_bearing[0],x_box_height/2]) difference()  {
+      rotate(a=[45,0,0])  cube(size=[x_box_width*2,22,22],center=true);
+      translate(v=[0,14,0]) cube(size=[x_box_width*2,4,8],center=true);
+ }
+}
+
+// Final part
+module x_end_idler(){
+ mirror([0,1,0]) difference(){
+  x_end_idler_base();
+  x_end_idler_holes();
+ }
+
+ %translate([-14 - xy_delta / 2, 25, 30.5 - (max(idler_width, 16) / 2)]) x_tensioner();
+}
+
+module x_tensioner(len=50, idler_height=max(idler_bearing[0], 16)) {
+     // todo: scal narrow_width with size of belt hole, if that becomes scalable
+     idlermount(len=len, rod=m4_diameter / 2 + 0.5, idler_height=idler_height, narrow_len=30, narrow_width=9);
+}
+
+translate([-40, 0, 4 - bushing_xy[0]]) x_tensioner();
+
+x_end_idler();
+
+if (idler_bearing[3] == 1) {  // bearing guides
+    translate([-39,  -60 - idler_bearing[0] / 2, 4 - bushing_xy[0]]) rotate([0, 0, 55]) {
+        render() bearing_assy();
+    }
+}