-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhl-ice-mould-stacking-tray.scad
71 lines (60 loc) · 2.96 KB
/
hl-ice-mould-stacking-tray.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
tray_depth=220; // fixed
tray_width=140; // fixed
tray_height=18; // variable
tray_wall=4;
difference() {
union() {
cube([tray_depth,tray_width,tray_wall]); // Fixed thickness of resting surface
// end legs
translate([0,0,tray_wall]) cube([tray_wall,tray_width,tray_height]);
translate([(tray_depth-tray_wall),0,tray_wall]) cube ([tray_wall,tray_width,tray_height]);
// support slants
translate([(tray_depth-tray_height-(tray_wall*2)),0,0]) rotate([270,270,0]) linear_extrude(tray_width) polygon([[0,0],[0,tray_height+tray_wall],[tray_height+tray_wall,tray_height+tray_wall]]);
translate([tray_wall,0,tray_height+tray_wall]) rotate([270,0,0]) linear_extrude(tray_width) polygon([[0,0],[0,tray_height],[tray_height,tray_height]]);
// positive registration
translate([(tray_wall/2),tray_wall,tray_height+tray_wall]) rotate([270,270,0]) cylinder(tray_width-(tray_wall*2),r=(tray_wall/2)-1, $fn=128);
translate([tray_depth-(tray_wall/2),tray_wall,tray_height+tray_wall]) rotate([270,0,0]) cylinder(tray_width-(tray_wall*2),r=(tray_wall/2)-1, $fn=128);
}
translate([tray_wall,tray_wall,tray_wall]) cube([tray_depth-(tray_wall*2), tray_width-(tray_wall*2), tray_height]);// interior void
// negative registration
translate([(tray_wall/2),tray_wall,0]) rotate([270,270,0]) cylinder(tray_width-(tray_wall*2),r=(tray_wall/2)-1, $fn=128);
translate([tray_depth-(tray_wall/2),tray_wall,0]) rotate([270,0,0]) cylinder(tray_width-(tray_wall*2),r=(tray_wall/2)-1, $fn=128);
// cutouts
/*
Space Invader - 208mm x 122mm x 16mm
Dog Paw - 214mm x 108mm x 20mm
Dog Bone - 202mm x 126mm x 24mm
Fruit - 216mm x 104mm x 17mm
Lego - 164mm x 114mm x 18mm
*/
//space invader
//translate([(tray_depth/2)-(190/2),(tray_width/2)-(104/2),0]) cube([190, 104, tray_wall]);
//fruit
//translate([(tray_depth/2)-(210/2),(tray_width/2)-(96/2),0]) fruit_cutouts();
//dogbone
//translate([(tray_depth/2)-(176/2),(tray_width/2)-(80/2),0]) dogbone_cutouts();
//dogpaw //translate([(tray_depth/2)-(208/2),(tray_width/2)-(90/2),0]) dogpaw_cutouts();
//lego
translate([(tray_depth/2)-(136/2),(tray_width/2)-(96/2),0]) cube([136, 96, tray_wall]);
};
module fruit_cutouts() {
// 96, 30 + 3 + 30 + 3+ 30
cube([210, 30, tray_wall]);
translate([0,33,0]) cube([210, 30, tray_wall]);
translate([0,66,0]) cube([210, 30, tray_wall]);
};
module dogbone_cutouts() {
// 176 x 80
// (176 - 8)/3 = 56
translate([0,0,0]) cube([56, 26, tray_wall]);
translate([60,0,0]) cube([56, 26, tray_wall]);
translate([120,0,0]) cube([56, 26, tray_wall]);
translate([0,54,0]) cube([56, 26, tray_wall]);
translate([60,54,0]) cube([56, 26, tray_wall]);
translate([120,54,0]) cube([56, 26, tray_wall]);
};
module dogpaw_cutouts() {
// (90 - 14)/2
translate([0,0,0]) cube([208, 38, tray_wall]);
translate([0,52,0]) cube([208, 38, tray_wall]);
};