frame_alu: Reduce bolt head hole depth
[clinton/prusa3.git] / box_frame / extras / tube_clamp.scad
index 650a946..2a6d65a 100644 (file)
@@ -4,23 +4,37 @@
 include <../configuration.scad>;
 $fn=64;
 
-module tube_clamp(tube_r, wall_width=3, screw=false) {
-    //wall_width is in single_wall_widths
+module tube_clamp(tube_r, wall_width=3, endstop=false, h=10) {
+    //wall_width is in single_wall_widths
     difference() {
+        union(){
         intersection() {
             union(){
-                cylinder(r=tube_r + wall_width * single_wall_width, h=10);
-                translate([-4.5, 0, 0]) cube([9, 20, 10]);
+                cylinder(r=tube_r + wall_width * single_wall_width, h=h);
+                translate([-4.5, 0, 0]) cube([9, 20, h]);
             }
-            cylinder(r=tube_r + 5 + wall_width * single_wall_width, h=10);
+            cylinder(r=tube_r + 5 + wall_width * single_wall_width, h=h);
         }
-        translate([0, 0, -0.5]) cylinder(r=tube_r, h=11);
-        translate([-0.5, 0, -0.5]) cube([1, 15, 11]);
+            if (endstop) {
+                translate([-4.5, 5 + tube_r, 0]) cube([4.5, 30, h]);
+            }
+        }
+        translate([0, 0, -0.5]) cylinder(r=tube_r, h=h + 1);
+        translate([-0.5, 0, -0.5]) cube([1, 45, h + 1]);
 
-        translate([-7, max (6, tube_r + wall_width * single_wall_width + 0.5) , 5]) {
+        translate([-7, max (6, tube_r + wall_width * single_wall_width + 0.5) , h / 2]) {
             rotate([0, 90, 0]) screw(r=1.7, r_head=m3_washer_diameter/2, head_drop=3, slant=false);
             translate([10, 0, 0]) rotate([0, 90, 0]) cylinder(r=m3_nut_diameter_horizontal/2, $fn=6, h=2);
         }
+        if (endstop) {
+            translate([-7, 10 + tube_r, h / 2]) rotate([0, 90, 0]) {
+                cylinder(r = 1.2, h=10);
+                translate([0, 10, 0])
+                cylinder(r = 1.2, h=10);
+                translate([0, 20, 0])
+                cylinder(r = 1.2, h=10);
+            }
+        }
 
     }
 }
@@ -28,7 +42,7 @@ module tube_clamp(tube_r, wall_width=3, screw=false) {
 tube_clamp(3.5);
 translate([15, 0, 0]) tube_clamp(3.5);
 translate([0, 20, 0]) {
-    tube_clamp(bushing_xy[0]);
-    translate([20, 0, 0]) tube_clamp(bushing_xy[0]);
-    translate([-20, 0, 0]) tube_clamp(bushing_z[0]);
+    tube_clamp(bushing_xy[0], endstop=true, h=12);
+    translate([20, 0, 0]) tube_clamp(bushing_xy[0], endstop=true, h=12);
+    translate([-20, 0, 0]) tube_clamp(bushing_z[0], endstop=true, h=12);
 }