Makerfarm to Wilson X-Carriage Adapter Take II
authorClinton Ebadi <clinton@unknownlamer.org>
Sat, 29 Aug 2015 21:11:46 +0000 (17:11 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Sat, 29 Aug 2015 21:11:46 +0000 (17:11 -0400)
Code is a tiny bit less heinous, but still relies on global variables
and fugly math.

* Loosened screw holes a bit to (hopefully) avoid the need to drill
  them out.
* Actually center x-carriage mount and make it the same width as the
  wilson x-carriage
* Reduced default depth to 6mm so that the bolts included in the
  Clough42 kit will work. This makes it so that the second nut in the
  wilson part of the mount will not fit fully, but that should be OK
  because the M4x20mm screws in the BOM won't fully bit into the
  second one anyway (build instructions specify 25mm, but BOM doesn't
  mention them).

carriage adapter/itty-wilson.scad

index 75cbb6c..980eab4 100644 (file)
@@ -33,92 +33,98 @@ the geometry of the object abound.
 use <MCAD/nuts_and_bolts.scad>
 
 carriage_height = 65;
+carriage_width = 50;
 
 plate_width = 75; // wilson carriage is only 50mm wide!
-plate_depth = 8; // wilson default depth = 8, makerfarm = 6
+plate_depth = 6; // wilson default depth = 8, makerfarm = 6
+
+hole_tolerance = 0.25; // widen holes a bit, may still need to drill out
 
 plate_cut_height = 6.5;
 plate_cut_width = 6;
 plate_cut_distance = 13;
 plate_cut_center = 25.1;
 plate_cut_y_offset = 27;
-plate_cut_bolt = 3;
+plate_cut_bolt = 3 + hole_tolerance;
 plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2;
 
-plate_height = carriage_height + plate_cut_height + plate_cut_y_offset; //100;
+plate_extra_height = 3; // make plate a bit taller so it is structurally sound
+
+plate_height = plate_cut_height + plate_cut_y_offset + plate_extra_height; 
 
 lower_cut_y_offset = 5.33; // 5.325 in CAD
 lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2;
 lower_bolt_y_offset = 3.275 + plate_cut_bolt / 2;
 
-carriage_bolt = 4;
+carriage_bolt = 4 + hole_tolerance;
 carriage_hole_spacing = 24;
 carriage_clearance = 20; // holes are 20mm from bottom of plate
 carriage_y_offset =  plate_cut_y_offset + plate_cut_height + carriage_clearance;
-carriage_nut_depth = 2 * 3.2 + 0.1; // m4 nut depth + tolerance
+carriage_nut_depth = 3.2 + 3.2/2 + 0.1; // m4 nut depth + half of an m4 nut + tolerance
 
 corner_radius = 3; // round off the corners to make it look nicer
 
-bump_strip = false; // generate holes to mount a strip to hit the end stop -- experimental / bad code
-
-module plate_outline () {
-     $fn = 16;
-      difference () {
-          minkowski () {
-               translate ([corner_radius, corner_radius, 0])
-                    square ([plate_width - corner_radius*2, plate_height - corner_radius*2]);
-               circle (r = corner_radius);
-          }
-
-         // upper plate mount
-         translate ([0, plate_cut_y_offset, 0]) {
-              for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01])
-                   translate ([x, 0, 0]) square ([plate_cut_width, plate_cut_height]);
-
-              // looks like the bolt is at the midpoint between the cut outs
-              for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset])
-                   translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt, $fn = 16);
-         }
+shelf_mount ();
+translate ([(plate_width - carriage_width) / 2, plate_height - plate_extra_height, 0]) carriage_mount ();
+
+// mount to wilson x-carriage
+module carriage_mount () {
+     difference () {
+         linear_extrude (height = plate_depth, convexity = 8) {
+              // outline of plate + bolt holes
+              difference () {
+                   translate ([corner_radius, corner_radius, 0]) {
+                        minkowski () {
+                             square ([carriage_width - corner_radius*2, carriage_height - corner_radius]);
+                             circle (r = corner_radius);
+                        }
+                   }
 
-         // lower plate mount
-         translate ([0, lower_cut_y_offset, 0]) {
-              for (x = [-0.01, plate_width - plate_cut_width + 0.01]) {
-                   // lower cut out is closer to 6mm than 6.5mm in cad drawings
-                   translate ([x, -0.01, 0]) square ([plate_cut_width, plate_cut_height - 0.5]);
+                   #translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, 0])
+                   for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
+                        translate ([x, y, 0]) circle (d = carriage_bolt, $fn = 16);
+                   }
               }
-              // I think the intention is for the screw holes to be centered over the cut out
-              for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset])
-                   translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt, $fn = 16);
          }
-
-         // mount to wilson x-carriage
-         translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, 0])
+         // after extruding, cut out spaces for M4 hex nuts.
+         translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, plate_depth - carriage_nut_depth]) {
               for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
-                   translate ([x, y, 0]) circle (d = carriage_bolt, $fn = 16);
+                   translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1);
               }
-
-         if (bump_strip) {
-              translate ([6, carriage_y_offset, 0])
-                   for (y = [0, carriage_hole_spacing]) {
-                        translate ([0, y, 0]) circle (d = carriage_bolt, $fn = 16);
-                   }
          }
      }
 }
 
-difference () {
-     linear_extrude (height = plate_depth, convexity = 50) plate_outline ();
-     // after extruding, cut out spaces for M4 hex nuts (6 - 6.5mm deep, for two nuts)
-     translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, plate_depth - carriage_nut_depth]) {
-         for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
-              translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1);
-         }
-     }
+// mount for makerfarm extruder shelf
+module shelf_mount () {
+     linear_extrude (height = plate_depth, convexity = 8) {     
+         difference () {
+              translate ([corner_radius, corner_radius, 0]) {
+                   minkowski () {
+                        square ([plate_width - corner_radius*2, plate_height - corner_radius*2]);
+                        circle (r = corner_radius);
+                   }
+              }
 
-     if (bump_strip) {
-         translate ([6, carriage_y_offset, plate_depth - carriage_nut_depth/2]) {
-              for (y = [0, carriage_hole_spacing]) {
-                   translate ([0, y, 0]) linear_extrude (height = carriage_nut_depth/2 + 0.01) nutHole (size = carriage_bolt, proj = 1);
+              // upper shelf mount
+              translate ([0, plate_cut_y_offset, 0]) {
+                   for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01])
+                        translate ([x, 0, 0]) square ([plate_cut_width, plate_cut_height]);
+
+                   // looks like the bolt is at the midpoint between the cut outs
+                   for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset])
+                        translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt + hole_tolerance, $fn = 16);
+              }
+
+              // lower shelf mount
+              translate ([0, lower_cut_y_offset, 0]) {
+                   for (x = [-0.01, plate_width - plate_cut_width + 0.01]) {
+                        // lower cut out is closer to 6mm than 6.5mm in cad drawings
+                        translate ([x, -0.01, 0]) square ([plate_cut_width, plate_cut_height - 0.5]);
+                   }
+                   // I think the intention is for the screw holes to be centered over the cut out
+                   for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset])
+                        translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt + hole_tolerance, $fn = 16);
               }
          }
      }