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

keyBakLifter.scad - github.com/haydnhuntley/kumu-3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1fe98efc3fc50251134a6c54ae312aa0d213c362 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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();
}