-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathamazeballs.scad
132 lines (116 loc) · 3.4 KB
/
amazeballs.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
129
130
131
132
// Thickness of the material you are cutting the module from. This adjusts the notch width.
material_thickness = 5;
// Adjust the notches to account for swarf. on the hacman laser this is 0.15mm
swarf = 0;
// AMB specifies the drop per module at 63mm, but this can generate modules of any drop.
drop_per_module = 63;
// AMB modules are 480mm long
module_length = 480;
module endplate()
{
difference()
{
square([400+swarf, 120+swarf], center=true);
translate ([0,drop_per_module/2,0])
{
circle(r=30/2);
for(x=[-150, -100, 100, 150])
translate([x,0]) circle(r=8/2);
}
}
}
module endplate_holes()
{
difference()
{
endplate();
for(x=[-192, 192])
for(y=[-50,0,50])
translate ([x,y]) circle(r=4/2);
}
}
module endplate_box()
{
difference()
{
endplate();
for (x=[(material_thickness/2)-200-0.5,200-(material_thickness/2)+0.5])
translate([x,0])
square([material_thickness-swarf+1, 40-swarf], center=true);
}
}
module endplate_box_up()
{
difference()
{
endplate_box();
for (x=[-100,0,100])
translate([x,(material_thickness/2)-60-1])
square([40-swarf, material_thickness-swarf+1], center=true);
}
}
module endplate_box_down()
{
difference()
{
endplate_box();
for (x=[-100,0,100])
translate([x,60-(material_thickness/2)+1])
square([40-swarf, material_thickness-swarf+1], center=true);
}
}
module baseplate()
{
union()
{
square([400-material_thickness-material_thickness+swarf, module_length-material_thickness-material_thickness+swarf], center=true);
for (x=[-100,0,100])
for (y=[(material_thickness/2)-(module_length/2), (module_length/2)-(material_thickness/2)])
translate([x,y])
square([40-swarf, material_thickness-swarf], center=true);
for (x=[(material_thickness/2)-(400/2), (400/2)-(material_thickness/2)])
for (y=[-200,-100,0,100,200])
translate([x,y])
square([material_thickness-swarf, 40-swarf], center=true);
}
}
module sideplate()
{
union ()
{
difference()
{
square([120+swarf, module_length-material_thickness-material_thickness+swarf], center=true);
for (y=[-200,-100,0,100,200])
translate([60-(material_thickness/2)+1,y])
square([material_thickness-swarf+1, 40-swarf], center=true);
hull()
{
translate([-60,0]) square([1, module_length-material_thickness-material_thickness], center=true);
for (y=[-(module_length-150)/2, (module_length-150)/2])
translate([0,y])
circle(r=40, center=true);
}
}
for (y=[(material_thickness/2)-(module_length/2), (module_length/2)-(material_thickness/2)])
translate([0,y])
square([40-swarf, material_thickness-swarf], center=true);
}
}
module amb_box_2d()
{
translate([280, 0]) rotate([0,0,180]) sideplate();
translate([0, 320]) endplate_box_up();
baseplate();
translate([0, -320]) endplate_box_down();
translate([-280,0]) sideplate();
}
module amb_box_3d()
{
color("red") linear_extrude(height=material_thickness) baseplate();
color("blue") translate([0, (module_length/2), 60]) rotate([90,0,0]) linear_extrude(height=material_thickness) endplate_box_up();
color("blue") translate([0, -(module_length/2), 60]) rotate([-90,0,0]) linear_extrude(height=material_thickness) endplate_box_down();
color("green") translate([-200, 0, 60]) rotate([0,90,0]) linear_extrude(height=material_thickness) sideplate();
color("green") translate([200, 0, 60]) rotate([0,-90,0]) mirror([1,0,0]) linear_extrude(height=material_thickness) sideplate();
}
amb_box_2d();