Rev Author Line No. Line
4132 kaklik 1 heatsink_xsize = 50.1;
2 heatsink_ysize = 50.1;
3 heatsink_zsize = 45;
4 heatsink_thickness = 2;
4124 kaklik 5  
4132 kaklik 6 TEG_xsize = 40.1;
7 TEG_ysize = 40.1;
8 TEG_zsize = 8;
4124 kaklik 9  
4132 kaklik 10 mount_hole = 3.5; // mounting screw hole diameter
11 clearance = 0.175; // spare clearance for printing tolerances.
12 sealing_ring_width = 3; // width of sealing gab under the cover
13 wall_thickness = 12; // thickness of the box wall
14 volume_encore = 10; // space added to the size of internar heatsink
4124 kaklik 15  
4132 kaklik 16 height = heatsink_zsize + TEG_zsize+volume_encore;
4124 kaklik 17  
4143 kaklik 18 module box () {
4124 kaklik 19  
4143 kaklik 20 difference () {
21 union (){
22 cube([heatsink_xsize+2*wall_thickness+volume_encore,heatsink_ysize+2*wall_thickness+volume_encore,height]); // overal plastic brick
23 // cube([heatsink_xsize+2*wall_thickness,heatsink_ysize+2*wall_thickness,heatsink_zsize+wall_thickness]); // overal plastic brick
24 }
4124 kaklik 25  
4143 kaklik 26 translate ([wall_thickness-clearance+volume_encore/2, wall_thickness-clearance+volume_encore/2, TEG_zsize-clearance])
27 cube([heatsink_xsize+2*clearance, heatsink_ysize+2*clearance, heatsink_xsize+2*clearance]); // hollow for heat sink
28  
29 translate ([wall_thickness, wall_thickness, TEG_zsize+heatsink_thickness])
30 cube([heatsink_xsize+2*clearance+volume_encore, heatsink_ysize+2*clearance+volume_encore, heatsink_xsize+2*clearance+volume_encore]); // hollow for heat storage liquid.
4124 kaklik 31  
4143 kaklik 32 translate ([((heatsink_xsize+2*wall_thickness+volume_encore)-TEG_xsize)/2 - clearance, ((heatsink_ysize+2*wall_thickness+volume_encore)-TEG_ysize)/2 - clearance, 0])
33 cube([TEG_xsize+2*clearance, TEG_ysize+2*clearance, wall_thickness]); // hollow for the thermoelectric generator
4124 kaklik 34  
4143 kaklik 35 translate ([((heatsink_xsize+2*wall_thickness+volume_encore)-TEG_xsize)/2, 0, 0])
36 cube([4, wall_thickness+volume_encore, TEG_zsize-1]); // hollow for the thermoelectric generator
37 translate ([((heatsink_xsize+2*wall_thickness+volume_encore)-TEG_xsize)/2 +TEG_xsize-4, 0, 0])
38 cube([4, wall_thickness+volume_encore, TEG_zsize-1]); // hollow for the thermoelectric generator
39  
40  
41 translate ([wall_thickness, wall_thickness, height-sealing_ring_width])
42 union () {
43 difference () {
44 minkowski() {
45 cube([heatsink_xsize+volume_encore, heatsink_xsize+volume_encore, sealing_ring_width]); // Rib for o-ring.
46 cylinder(r=wall_thickness/2,h=0.1);
47 }
4124 kaklik 48  
4143 kaklik 49 translate ([sealing_ring_width/2, sealing_ring_width/2, 0])
50 minkowski() {
51 cube([heatsink_xsize-sealing_ring_width+volume_encore, heatsink_ysize-sealing_ring_width+volume_encore, sealing_ring_width]); // Rib for o-ring.
52 cylinder(r=wall_thickness/2,h=0.1);
53 }
4124 kaklik 54 }
55 }
4143 kaklik 56  
57 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, heatsink_xsize+2*wall_thickness+volume_encore-wall_thickness/3, height-wall_thickness/2])
58 {
59 translate([-4, -3, -1.5])
60 cube([wall_thickness, 6, 3], center = false); // hole for top part mounting nut
61 translate([0, 0, 1.8])
62 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
63 }
4124 kaklik 64  
4143 kaklik 65 translate ([wall_thickness/3, wall_thickness/3, height-wall_thickness/2])
66 {
67 translate([-8, -3, -1.5])
68 cube([wall_thickness, 6, 3], center = false); // hole for top part mounting nut
69 translate([0, 0, 1.8])
70 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
71 }
72  
73 translate ([wall_thickness/3, heatsink_xsize+2*wall_thickness+volume_encore-wall_thickness/3, height-wall_thickness/2])
74 {
75 translate([-8, -3, -1.5])
76 cube([wall_thickness, 6, 3], center = false); // hole for top part mounting nut
77 translate([0, 0, 1.8])
78 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
79 }
4132 kaklik 80  
4143 kaklik 81 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, wall_thickness/3,height-wall_thickness/2])
82 {
83 translate([-4, -3, -1.5])
84 cube([wall_thickness, 6, 3], center = false); // hole for top part mounting nut
85 translate([0, 0, 1.8])
86 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
87 }
88  
4132 kaklik 89 }
4124 kaklik 90 }
91  
4132 kaklik 92  
93  
4124 kaklik 94 // Heat reservoir cover
4143 kaklik 95 module cover (){
96 translate ([0, 0, 3*height])
97 {
98 difference () {
4124 kaklik 99  
4143 kaklik 100 cube([heatsink_xsize+2*wall_thickness+volume_encore,heatsink_ysize+2*wall_thickness+volume_encore,wall_thickness]);
101  
102 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, wall_thickness/3,0])
103 {
104 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
105 }
106 translate ([wall_thickness/3, wall_thickness/3,0])
107 {
108 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
109 }
110 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, heatsink_ysize+2*wall_thickness-wall_thickness/3+volume_encore,0])
111 {
112 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
113 }
114 translate ([wall_thickness/3, heatsink_ysize+2*wall_thickness-wall_thickness/3+volume_encore,0])
115 {
116 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
117 }
4132 kaklik 118 }
4143 kaklik 119 }
4132 kaklik 120 }
4143 kaklik 121  
122 cover ();