-
Notifications
You must be signed in to change notification settings - Fork 0
/
JSON Export to 3D.scad
53 lines (48 loc) · 20.7 KB
/
JSON Export to 3D.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
data = [[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false], [true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, false, true, false, true, true, false, true, true, true, true, false, true, true, true, true, true, true, false, true, true, true, false, true, true, true, true, false, true], [true, false, true, false, true, true, true, false, false, true, true, false, true, false, false, true, false, true, false, false, false, true, false, true, false, true, true, false, false, false, false, true, false, false, false, false, false, false, true, false, false, false, true, false, true, false, false, false, false, true], [false, false, false, false, false, false, true, true, false, true, false, false, true, false, true, true, false, true, false, true, false, true, false, true, false, false, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true, true, false, true, true, true, true, false, false], [true, true, true, true, true, true, true, false, false, true, true, false, true, false, true, false, false, true, false, true, false, true, false, true, true, false, false, false, false, false, true, true, false, false, false, false, false, false, true, false, false, false, true, false, true, false, false, false, false, true], [false, false, false, false, true, false, true, true, false, false, false, false, true, false, true, true, false, true, false, true, false, true, false, true, true, false, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, false, true, true, true, true, false, false], [false, true, false, true, true, false, false, false, false, true, true, false, true, true, true, false, false, true, false, true, false, true, false, true, false, false, true, false, true, false, false, true, false, false, false, false, false, false, true, false, false, false, true, false, true, true, true, true, true, true], [true, true, true, true, false, false, true, true, false, true, false, false, false, false, true, true, false, true, false, true, false, true, true, true, false, true, true, false, true, true, false, true, true, true, true, true, true, false, true, false, true, true, true, false, false, false, false, false, false, true], [true, true, true, true, true, false, true, false, false, true, true, false, true, false, true, false, false, true, false, true, false, true, false, true, false, true, false, false, false, true, false, true, false, false, false, false, false, false, true, false, true, true, true, true, false, true, false, true, false, true], [false, true, false, true, true, true, true, true, false, true, false, false, true, false, true, true, false, true, false, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, true, true, true, true, true, false, false, false, false, true, true, true, true, true, true, true], [false, false, false, false, false, false, true, false, false, true, true, false, true, false, false, false, false, true, false, true, false, true, false, true, true, false, true, true, false, true, false, true, false, false, false, false, false, false, true, true, true, true, false, false, false, false, false, false, false, false], [false, true, false, true, false, true, true, true, false, true, false, false, true, false, true, true, false, true, false, true, false, true, false, true, true, false, true, false, false, true, true, true, true, true, true, true, true, false, false, false, false, true, false, true, false, true, false, true, false, true], [false, true, false, true, true, true, true, false, false, true, true, true, true, false, true, false, false, true, false, true, false, true, false, true, false, false, true, false, true, true, false, true, false, false, false, false, false, false, true, true, false, true, false, true, true, true, true, true, true, true], [false, false, false, true, true, false, true, true, false, false, false, false, true, true, true, true, false, true, false, true, false, true, false, false, false, true, true, false, true, true, false, true, false, true, true, true, true, true, true, true, false, true, false, false, true, false, false, false, false, false], [false, true, false, true, false, false, false, false, false, true, true, false, true, false, true, false, false, true, false, true, false, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, false, false, true, false, true, true, false, true, true, false, true, false, true], [true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, false, false, false, true, false, true, false, true, true, false, true, true, true, true, false, true], [false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, false, true, false, true, false, true, false, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, false, true, false, true, true, false, true, false, false, false, false, false], [false, true, false, true, false, true, false, true, false, true, true, false, true, false, true, true, false, true, true, true, false, true, true, true, false, false, false, true, false, false, false, true, false, false, false, false, false, false, false, true, false, true, false, false, true, true, false, true, false, true], [true, true, false, true, true, true, true, true, true, true, true, false, true, false, true, false, false, false, false, true, false, false, false, false, false, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, false, true, false, true, true, true, true, true, true, true], [false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, true, true, true, false, true, false, true, true, true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, false, false, false, false, false], [true, false, true, false, true, false, true, false, true, false, true, false, true, false, false, false, false, false, false, false, false, true, false, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true, false, true, false, true, false], [true, true, true, true, true, false, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, true, true, true, true, true, true, true], [false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, true, false, false, false, false, true, true, true, true, true, false, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, false, false, true, false, false, false, false, false], [true, false, true, false, true, true, true, false, true, true, true, false, true, true, true, false, true, false, true, true, false, true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, true, true, false, true, false, true, false, true, false], [true, true, true, true, true, false, false, false, false, false, true, false, true, false, false, false, false, false, true, false, false, true, true, true, true, true, false, true, true, true, false, true, true, true, false, true, true, true, false, true, true, true, true, false, true, false, true, true, true, false], [true, false, true, true, true, false, true, true, true, false, true, true, true, false, true, true, true, false, true, true, false, true, false, false, false, false, false, true, false, false, false, false, false, true, false, true, false, false, false, false, false, true, true, false, true, false, false, false, true, false], [true, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, true, true, false, true, false, true, true, false, true, true, true, false, true, true, true, false, true, true, true, false, true, true, false, true, true, true, false, true, false], [true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, true, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, true, false, false, false, false, true, false, true, false], [true, false, false, true, true, true, false, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, true, false, true, false, true, false], [true, true, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, false, true, false, false, true, false, true, false], [true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true, true, true, true], [false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, true, false, false, false], [true, true, true, true, false, true, true, false, true, false, true, false, true, true, true, true, true, true, false, true, true, false, true, true, false, true, true, true, true, true, true, false, true, true, true, false, true, true, true, false, true, true, false, true, true, false, true, true, false, true], [false, false, false, false, false, true, false, false, true, false, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, true, false, true, false, false, true], [false, true, false, true, false, true, false, true, true, false, true, false, true, true, true, false, true, true, true, false, true, true, true, false, true, true, true, true, true, true, false, true, true, false, true, true, true, true, false, true, true, true, true, false, true, false, true, false, true, true], [true, true, false, true, true, true, false, true, false, false, true, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, true, false, false, false, false, false, false, true, false, false, false, false, false, true, true, false, true, false, true, false, true, true], [false, false, false, true, true, false, false, true, false, true, true, true, false, true, true, true, false, true, false, true, true, true, true, true, false, true, true, false, true, true, true, false, true, true, false, true, true, false, true, true, false, true, true, false, true, false, true, true, true, false], [true, false, true, true, true, false, true, true, false, false, true, true, false, true, false, false, false, true, false, false, false, false, false, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, true, false, false, false, true, false, true, false, false, false, true, false], [true, false, false, false, true, false, true, false, false, true, true, false, false, true, true, true, true, true, true, true, false, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, false], [true, false, true, true, true, false, true, true, false, false, true, false, true, true, false, true, false, true, false, true, false, false, true, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, false, false, false, false, true, false], [true, false, true, false, false, false, true, true, true, false, true, false, true, true, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, false], [true, false, true, false, true, false, true, true, false, false, true, false, false, true, true, false, true, false, true, false, true, true, false, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, false, false, false, false, false, false, false], [true, false, true, false, true, false, false, true, false, true, true, true, false, true, false, false, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true], [false, false, true, false, true, true, false, true, false, false, true, true, false, true, false, true, true, false, false, false, true, false, false, false, true, false, false, false, false, false, false, true, false, true, true, false, false, false, false, false, false, false, false, true, false, true, true, false, false, false], [false, true, true, false, false, true, false, true, false, true, true, false, false, true, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, false, true, false, false, true, true, false, true, true, true, true, true, false, true, false, false, true, true], [false, true, true, true, false, true, false, true, false, false, true, false, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false], [false, true, false, false, false, true, false, true, true, false, true, false, true, true, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, false, false, false, false, true, true, false, true, true, false, true, false, false, false, false, false, true, true], [false, true, false, true, false, true, false, false, true, false, true, false, false, true, false, true, true, false, true, false, false, false, true, false, false, false, true, false, false, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false], [false, true, false, true, false, true, true, false, true, false, true, true, false, true, false, false, true, false, true, true, false, true, true, true, false, true, true, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true], [false, true, false, true, false, false, true, false, true, false, false, true, false, true, true, false, true, false, true, false, false, false, true, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false], [false, true, false, true, true, false, true, true, true, true, false, true, false, true, false, false, true, false, true, false, true, false, true, true, true, false, true, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true], [false, true, false, true, true, false, true, true, false, true, true, true, true, true, false, true, true, false, true, false, true, false, true, false, false, false, false, true, false, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false], [false, true, false, true, false, false, true, false, false, false, false, false, false, false, false, true, false, false, true, false, true, false, true, true, true, true, true, true, true, false, true, false, false, false, false, false, true, true, false, true, true, false, true, false, false, false, false, false, true, true], [false, true, false, true, false, true, true, false, true, true, true, true, true, true, true, true, false, false, true, false, true, false, false, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false], [false, true, false, true, false, false, true, false, false, true, false, false, false, false, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false, false, true, false, false, true, true], [false, true, false, true, true, false, true, false, true, true, false, true, false, false, false, true, false, false, true, false, false, true, false, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false, false, true, false, false, true, true, false, true, true, false, false, false], [false, true, false, true, false, false, true, false, false, true, false, true, true, true, true, true, false, false, true, false, true, true, true, false, true, true, true, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true], [false, true, false, true, true, false, true, false, true, true, false, true, false, false, false, false, false, false, true, false, false, true, true, false, false, false, false, true, false, false, true, true, false, true, true, false, true, false, false, true, false, false, true, true, false, true, true, false, true, false], [true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]];
IN_MM_CONVERSION = 25.4;
options = len(data[0]);
radius = 20;
slice_height = (radius * 2 * PI)/len(data[0]);
echo(slice_height);
ang = 360/options;
wall_radius = radius + slice_height;
bottom_thickness = 8;
pvc_outer_radius = ((2.375)/2 * IN_MM_CONVERSION);
pvc_inner_radius = ((2.047)/2 * IN_MM_CONVERSION);
handle_radius = pvc_outer_radius + slice_height + 1;
indentation_depth = 5;
module pie_slice(r,a) {
$fn=52*4;
scale([1, 1, 1]) {
linear_extrude(height=slice_height) {
intersection() {
circle(r=r);
square(r);
rotate(a-90) square(r);
}
}
}
}
union () {
translate ([0, 0, bottom_thickness]){ difference() {
union() {
for (s = [0:len(data)-1]) {
for (l = [0:len(data[0])-1]) {
if (data[s][l] == true) {
translate([0,0,slice_height*s])
rotate([0,0,ang*l]) pie_slice(r=wall_radius, a=ang);
} else {
translate([0,0,slice_height*s])
rotate([0,0,ang*l]) pie_slice(r=radius, a=ang);
}
}
}
}
translate([0, 0, bottom_thickness]) cylinder(h=slice_height*len(data),r=radius-slice_height, $fn=208);
}}
difference() {
cylinder(h=bottom_thickness, r=handle_radius, $fn=12);
translate([0, 0, bottom_thickness - indentation_depth]) cylinder(h=indentation_depth+1, r=pvc_outer_radius);
}
cylinder(h=bottom_thickness, r=pvc_inner_radius, $fn=208);
}