Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/haydnhuntley/kumu-3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'keyBakLifter.scad')
-rw-r--r--keyBakLifter.scad106
1 files changed, 106 insertions, 0 deletions
diff --git a/keyBakLifter.scad b/keyBakLifter.scad
new file mode 100644
index 0000000..1fe98ef
--- /dev/null
+++ b/keyBakLifter.scad
@@ -0,0 +1,106 @@
+// This KeyBak lifter works with
+// It is designed to rest on the top of a Kossel-style Delta printer.
+// It assumes that the top of the printer is made from 20x20mm aluminum
+// extrusion.
+// An M5x8 button socket head screw holds each side of the holder in place,
+// and an M3x10 to M3x20 SHCS attaches the crossbar to it.
+//
+// This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+// International License.
+// Visit: http://creativecommons.org/licenses/by-sa/4.0/
+//
+// Haydn Huntley
+// haydn.huntley@gmail.com
+
+$fn = 360/4;
+
+include <configuration.scad>;
+
+// All measurements in mm.
+debug = false;
+xSize = extrusionWidth;
+ySize = extrusionWidth * 1.5;
+topDiameter = 13;
+height = 46;
+baseHeight = 3.0;
+keyWidth = 6.5;
+keyDepth = 2.4;
+keyLength = 0.25 * ySize;
+
+
+module keyBakLifter()
+{
+ difference()
+ {
+ union()
+ {
+ hull()
+ {
+ // The circular top.
+ translate([0, 0, height-smidge])
+ cylinder(d=topDiameter, h=smidge);
+
+ // The rectangular base.
+ translate([-xSize/2, -ySize/2, 0])
+ cube([xSize, ySize, smidge]);
+ }
+
+ // Add two trapezoids as keys on the bottom.
+ color("blue")
+ for (y = [1, -1])
+ translate([0, y*ySize*0.30, 0])
+ {
+ size = keyWidth * cos(45);
+ intersection()
+ {
+ rotate([0, 45, 0])
+ cube([size, keyLength, size], true);
+
+ cube([keyWidth, keyLength, keyDepth], true);
+ }
+ }
+ }
+
+ // Tapering hole for an M3x10 to M3x20 screw to attach the crossbar
+ // supporting the KeyBak.
+ translate([0, 0, height-20-smidge/2])
+ cylinder(r1=m3Radius-4*smidge, r2=m3TightRadius+2*smidge, h=20+smidge);
+
+ // Hole for M5x8 button head screw to attach it to the top of the
+ // frame.
+ translate([0, 0, -smidge/2])
+ cylinder(r=m5LooseRadius, h=baseHeight+smidge);
+
+ // Angled hole for accessing and inserting the M5x8.
+ hull()
+ {
+ translate([16, 0, 46])
+ scale([1.2, 1, 1])
+ cylinder(r=m5ButtonHeadRadius, h=smidge);
+
+ translate([0, 0, baseHeight+m5HeadHeight])
+ scale([1.2, 1, 1])
+ cylinder(r=m5ButtonHeadRadius, h=smidge);
+ }
+ translate([0, 0, baseHeight])
+ scale([1.2, 1, 1])
+ cylinder(r=m5ButtonHeadRadius, h=m5HeadHeight+smidge);
+ }
+}
+
+
+if (debug)
+{
+ keyBakLifter();
+}
+else
+{
+ // Rotate for printing, and do two of them.
+ translate([-height/2, -(ySize/2-3), xSize/2])
+ rotate([0, 90+atan((xSize-topDiameter)/(2*height)), 0])
+ keyBakLifter();
+
+ translate([height/2, ySize/2-3, xSize/2])
+ rotate([0, 90+atan((xSize-topDiameter)/(2*height)), 180])
+ keyBakLifter();
+}