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  
18  
19 difference () {
20 union (){
4132 kaklik 21 cube([heatsink_xsize+2*wall_thickness+volume_encore,heatsink_ysize+2*wall_thickness+volume_encore,height]); // overal plastic brick
4124 kaklik 22 // cube([heatsink_xsize+2*wall_thickness,heatsink_ysize+2*wall_thickness,heatsink_zsize+wall_thickness]); // overal plastic brick
23 }
24  
4132 kaklik 25 translate ([wall_thickness-clearance+volume_encore/2, wall_thickness-clearance+volume_encore/2, TEG_zsize-clearance])
26 cube([heatsink_xsize+2*clearance, heatsink_ysize+2*clearance, heatsink_xsize+2*clearance]); // hollow for heat sink
27  
28 translate ([wall_thickness, wall_thickness, TEG_zsize+heatsink_thickness])
29 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 30  
4132 kaklik 31 translate ([((heatsink_xsize+2*wall_thickness+volume_encore)-TEG_xsize)/2 - clearance, ((heatsink_ysize+2*wall_thickness+volume_encore)-TEG_ysize)/2 - clearance, 0])
4124 kaklik 32 cube([TEG_xsize+2*clearance, TEG_ysize+2*clearance, wall_thickness]); // hollow for the thermoelectric generator
33  
4132 kaklik 34 translate ([((heatsink_xsize+2*wall_thickness+volume_encore)-TEG_xsize)/2, 0, 0])
35 cube([4, wall_thickness+volume_encore, TEG_zsize-1]); // hollow for the thermoelectric generator
36 translate ([((heatsink_xsize+2*wall_thickness+volume_encore)-TEG_xsize)/2 +TEG_xsize-4, 0, 0])
37 cube([4, wall_thickness+volume_encore, TEG_zsize-1]); // hollow for the thermoelectric generator
38  
39  
4125 kaklik 40 translate ([wall_thickness, wall_thickness, height-sealing_ring_width])
41 union () {
4124 kaklik 42 difference () {
43 minkowski() {
4132 kaklik 44 cube([heatsink_xsize+volume_encore, heatsink_xsize+volume_encore, sealing_ring_width]); // Rib for o-ring.
4124 kaklik 45 cylinder(r=wall_thickness/2,h=0.1);
46 }
47  
4126 kaklik 48 translate ([sealing_ring_width/2, sealing_ring_width/2, 0])
4124 kaklik 49 minkowski() {
4132 kaklik 50 cube([heatsink_xsize-sealing_ring_width+volume_encore, heatsink_ysize-sealing_ring_width+volume_encore, sealing_ring_width]); // Rib for o-ring.
4124 kaklik 51 cylinder(r=wall_thickness/2,h=0.1);
52 }
53 }
4125 kaklik 54 }
4132 kaklik 55 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])
56 {
57 translate([-6, -3, -1.5])
58 cube([wall_thickness, 6, 3], center = false); // hole for top part mounting nut
59 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
60 }
4124 kaklik 61  
4132 kaklik 62 translate ([wall_thickness/3, wall_thickness/3, height-wall_thickness/2])
63 {
64 translate([-6, 0, -1.5])
65 cube([wall_thickness-3, 6, 3], center = true); // hole for top part mounting nut
66 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
67 }
68  
69 translate ([wall_thickness/3, heatsink_xsize+2*wall_thickness+volume_encore-wall_thickness/3, height-wall_thickness/2])
70 {
71 translate([-6, 0, -1.5])
72 cube([wall_thickness-3, 6, 3], center = true); // hole for top part mounting nut
73 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
74 }
75  
76 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, wall_thickness/3,height-wall_thickness/2])
77 {
78 translate([6, 0, -1.5])
79 cube([wall_thickness-3, 6, 3], center = true); // hole for top part mounting nut
80 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
81 }
82  
4124 kaklik 83 }
84  
4132 kaklik 85  
86  
4124 kaklik 87 // Heat reservoir cover
4132 kaklik 88 translate ([0, 0, 3*height])
89 {
90 difference () {
4124 kaklik 91  
4132 kaklik 92 cube([heatsink_xsize+2*wall_thickness+volume_encore,heatsink_ysize+2*wall_thickness+volume_encore,wall_thickness]);
93  
94 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, wall_thickness/3,0])
95 {
96 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
97 }
98 translate ([wall_thickness/3, wall_thickness/3,0])
99 {
100 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
101 }
102 translate ([ heatsink_xsize+2*wall_thickness-wall_thickness/3+volume_encore, heatsink_ysize+2*wall_thickness-wall_thickness/3+volume_encore,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, heatsink_ysize+2*wall_thickness-wall_thickness/3+volume_encore,0])
107 {
108 cylinder (h = wall_thickness, r= mount_hole/2, $fn=20); // hole for top part mounting screw.
109 }
110 }
111 }