forked from Cheekio/stewart_platform
-
Notifications
You must be signed in to change notification settings - Fork 0
/
floating_platform.scad
80 lines (69 loc) · 1.3 KB
/
floating_platform.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
thickness = 3;
length = 17.5;
width = 13.18;
height = 1.8;
radius = 70;
wire_diameter=2.73;
wire_radius = 0.5*wire_diameter;
wall_width = 2;
give = 0.5;
offset = 0.1;
module attachment_point() {
translate([10, radius, 0]){
rotate(-90, [0,1,0]){
difference(){
cube([length, width, height]);
translate([length-2*wire_diameter,0.5*width, -offset]){
cylinder(r=wire_radius + give, h=5, $fs=0.5);
}
}
}
}
}
module attachment_pair(){
translate([10,0,0]){
attachment_point();
}
mirror([1,0,0]){
translate([10,0,0]){
attachment_point();
}
}
}
module negative_circle() {
rotate(30, [0,0,1]){
translate([1.9*radius, 0, -offset]){
cylinder(r=1.3*radius, h=thickness+2*offset, $fs=0.5);
}
}
}
module small_negative_circle() {
rotate(90, [0,0,1]){
translate([0.85*radius, 0,-offset]){
cylinder(r=0.2*radius, h=thickness+2*offset);
}
}
}
difference(){
cylinder(r=1.3*radius, h=thickness, $fs=0.5);
negative_circle();
small_negative_circle();
rotate(120, [0,0,1]){
negative_circle();
small_negative_circle();
}
rotate(240, [0,0,1]){
negative_circle();
small_negative_circle();
}
translate([0,0,-offset]){
cylinder(r=0.4*radius, h=thickness+2*offset);
}
}
attachment_pair();
rotate(120, [0,0,1]){
attachment_pair();
}
rotate(240, [0,0,1]){
attachment_pair();
}