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

lowerFrame.scad - github.com/haydnhuntley/kumu-3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8a8fbee7468cb3c6d10325f6d018138ffd02a09d (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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// This lower frame works with 2020 extrusions.
//
// 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

// 30% infill is sufficient, weighs ~140g.


$fn = 360/24;

include <configuration.scad>;
include <motor.scad>;
include <vertex.scad>;
include <Orbitron_Medium.scad>


// All measurements in mm.
debug = false;
height = lowerFrameHeight;


// Draw the vertical extrusion.
if (debug)
   rotate([0, 0, 45])
   translate([-extrusionWidth/2, -extrusionWidth/2, -smidge/2])
   %cube([extrusionWidth, extrusionWidth, height+smidge]);

// Draw the horizontal extrusions.
if (debug)
	for (a = [1, -1])
		for (z = [0, 2*extrusionWidth])
			translate([a*20, -5, z])
			rotate([0, 0, a*30])
			translate([-extrusionWidth/2, -2-4*extrusionWidth, 0])
			%cube([extrusionWidth, 4*extrusionWidth, extrusionWidth]);


module lowerFrame()
{
	difference()
	{
		vertex(height);
		
		// Remove eight M5x10 holes to attach the four horizontal extrusions.
		for (z = [extrusionWidth/2, height-extrusionWidth/2])
			for (x = [1, -1])
				for (d = [35, 70])
					translate([x*fnX(d), -fnY(d), z])
					rotate([90, 0, x*120])
					translate([0, 0, -0.2])
					cylinder(r=m5LooseRadius, h=5, $fn=24);

		// Remove four M5x10 holes to attach the vertical extrusion.
		for (z = [extrusionWidth/2, height-extrusionWidth/2])
			for (x = [1, -1])
				for (a = [0, 1])
					rotate([0, 0, 45+a*90])
					translate([extrusionWidth/2, 0, z])
					rotate([0, 90, 0])
					{
						cylinder(r=m5LooseRadius, h=5, $fn=24);
						translate([0, 0, 5-smidge])
						cylinder(r1=m5LowProfileHeadRadius,
								 r2=1.5+m5LowProfileHeadRadius,
								 h=9, $fn=24);
					}

		// Remove a circular hole for the pulley and motor shaft.
		translate([0, crossPieceOffset, height/2])
		rotate([90, 0, 0])
		cylinder(r=1+nema17ShoulderDiameter/2, h=7, $fn=36);
		
		// Remove four M3x8 holes to attach the motor.
		translate([0, crossPieceOffset, height/2])
		for (a = [0:3])
			rotate([0, a*90, 0])
			rotate([90, 0, 0])
			translate([nema17ScrewSpacing/2, nema17ScrewSpacing/2, 0])
			{
				// M3x8 shaft
				cylinder(r=m3LooseRadius, h=7, $fn=24);
				// M3x8 head
				translate([0, 0, -1.55])
				cylinder(r=m3LooseHeadRadius, h=m3HeadHeight, $fn=24);

				// Tunnels for reaching the M3x8 screws.
				angle1 = 11;
				if (a == 0 || a == 2)
				{
					rotate([180+angle1, 0, 0])
					cylinder(r=4/2, h=70, $fn=12);
				}
				if (a == 1 || a == 3)
				{
					rotate([180, -angle1, 0])
					cylinder(r=4/2, h=70, $fn=12);
				}
			}

		// Incise the logo.
		// steps - the amount of detail, the higher the more detailed.
		// center - whether the output is centered or not
		// extra - extra distance between characters
		// height - height of extrusion, 0 for 2d
		translate([0, -10.5, 0])
		rotate([0, 0, 60])
		translate([0, 29, 30.5+5.5])
		rotate([0, 270, 270])
		scale([0.21, 0.21, 1])
		translate([0, -20, 0])
		Orbitron_Medium("Kumu-3D", steps=1, center=true, extra=2, height=3);
	}
}


lowerFrame();

// Draw the motor, offset by the dampener.
translate([0, crossPieceOffset-30-dampenerOffset, (height-43)/2+43/2])
rotate([0, 0, 90])
%nema17Motor();