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
|
Leiterplattendicke = 1;
Bodenfreiheit = 3;
Kopffreiheit = 24;
Breite = 100;
Hoehe = 67;
Dicke = 1.5;
Nuttiefe = 1;
Nutlaenge = 20;
a = 7;
module Sechseck(a,d) {
for (alpha = [30:60:330])
rotate([0,0,alpha])
translate([0,a,0])
rotate([0,0,-30])
translate([a/2,0,d/2])
cube([a,d,d], center=true);
}
module Wabe(x,y,d,a) {
intersection() {
cube([x,y,d]);
for (dy=[0:2*y/(sqrt(3)*a)])
for (dx=[0:3*a:x])
translate([dx+(dy%2 == 1 ? 3/2*a : 0),dy*sqrt(3)/2*a,0])
Sechseck(a,d);
}
}
module Rahmen(x,y,z,d) {
difference() {
cube([x,y,z]);
for (f=[[-1,1,1],[1,-1,1],[1,1,-1]])
translate([f[0]*d,f[1]*d,f[2]*d])
cube([x-f[0]*2*d,y-f[1]*2*d,z-f[2]*2*d]);
};
Wabe(x,y,d,a);
for (i = [0:1])
translate([d+(x-d)*i,0,0])
rotate([0,-90,0])
Wabe(z,y,d,a);
for (i = [0:1])
translate([0,d+(y-d)*i,z])
rotate([90,90,0])
Wabe(z,x,d,a);
};
translate([0,Bodenfreiheit,0])
difference() {
cube([Breite + 2*Dicke, 2*Dicke + Leiterplattendicke, Nutlaenge + Dicke]);
translate([Dicke,Dicke,Dicke])
cube([Breite, Leiterplattendicke, Hoehe + Dicke]);
translate([Dicke+Nuttiefe,-Dicke,Dicke+Nuttiefe])
cube([Breite-2*Nuttiefe, Leiterplattendicke + 4*Dicke, Hoehe + Dicke]);
}
Rahmen(Breite+2*Dicke,Kopffreiheit+Bodenfreiheit+Leiterplattendicke+2*Dicke,Hoehe+2*Dicke,Dicke);
|