-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathdemo_leg.scad
executable file
·129 lines (104 loc) · 2.94 KB
/
demo_leg.scad
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
126
127
128
use <lib/servos.scad>
use <leg_holder.scad>
use <leg.scad>
use <spacer.scad>
use <spring.scad>
use <sensor.scad>
$fn = 20;
ARMS_SPACING = 20;
ARM_THICKNESS = 3.8;
SERVO_HOLDER_HEIGHT = 11.5;
SERVO_HOLDER_WIDTH = 16;
BODY_HEIGHT = 65.0;
ARM_WIDTH = 20;
module mounted_arm() {
translate([ 0, 0, ARM_THICKNESS / 2 ]) {
rotate([ 0, 180, 0 ]) {
color("black") main_arm();
}
translate([ 0, 0, ARMS_SPACING + ARM_THICKNESS]) {
rotate([ 0, 180, 0 ]) {
color("black") main_arm();
}
}
translate([ 0, -33, ARMS_SPACING / 2 + ARM_THICKNESS / 2 ]) {
rotate([ 0, 90, 90 ]) {
color("white") spacer(ARMS_SPACING, ARM_WIDTH, ARM_THICKNESS);
}
}
translate([ 0, 45, ARMS_SPACING / 2 + ARM_THICKNESS / 2 ]) {
rotate([ 0, 90, -90 ]) {
color("white") spacer(ARMS_SPACING, ARM_WIDTH, ARM_THICKNESS, true);
}
}
}
// Top arm
union() {
translate([ -69, -52, - ARM_THICKNESS]) {
rotate([ 0, 0, 90]) {
color("black") long_arm();
/*
// Spring
translate([0, -38, ARM_THICKNESS]) {
color("YELLOW")
spring();
}
*/
}
translate([ 27, 0, 18 ]) {
rotate([ 0, 90, 0 ]) {
color("white") spacer(ARMS_SPACING + ARM_THICKNESS * 2, 15, ARM_THICKNESS);
}
}
}
translate([ -42, -52, ARMS_SPACING + ARM_THICKNESS * 2]) {
rotate([ 0, 0, 90]) {
color("black") short_arm();
// Spring
rotate([0, 180, 0])
translate([0, -11, 0]) {
color("YELLOW")
spring();
}
}
}
}
// Bottom arm
union() {
translate([ -42, -12, ARMS_SPACING + ARM_THICKNESS * 2]) {
rotate([ 0, 0, 90]) {
color("black") short_arm();
}
}
translate([ -42, -12, - ARM_THICKNESS]) {
rotate([ 0, 0, 90]) {
color("black") short_arm();
}
translate([ 0, 0, 18 ]) {
rotate([ 0, 90, 0 ]) {
color("white") spacer(ARMS_SPACING + ARM_THICKNESS * 2, 15, ARM_THICKNESS);
}
}
}
}
}
module leg() {
translate([-100, ARMS_SPACING + 8, 0]) {
rotate([0, 0, -90]) {
color("white") support();
translate([SERVO_HOLDER_WIDTH - 27, -1, BODY_HEIGHT - SERVO_HOLDER_HEIGHT - 0.5]) {
rotate([90, 180, 90]) {
%color("black") futabas3003();
}
}
}
}
rotate([ -90, 0, 0]) {
mounted_arm();
}
// Leg sensor
translate([0, 14, -65]) {
sensor_all();
}
}
leg();