|
@@ -0,0 +1,41 @@
|
|
1
|
+$fa=1/1;
|
|
2
|
+$fs=1/2;
|
|
3
|
+bissl=1/100;
|
|
4
|
+wall=1.6;
|
|
5
|
+hole=3;
|
|
6
|
+hd=10;
|
|
7
|
+height=40;
|
|
8
|
+vd=height-wall;
|
|
9
|
+segments=14;
|
|
10
|
+radius=1;
|
|
11
|
+thickness=7;
|
|
12
|
+offset=wall/2+hole/2;
|
|
13
|
+difference() {
|
|
14
|
+ linear_extrude(thickness, convexity=4) difference() {
|
|
15
|
+ offset(r=-radius)offset(r=radius)union() {
|
|
16
|
+ for (i=[0:hd:hd*(segments-1)]) translate ([i,0]) {
|
|
17
|
+ for (tr=[[[hd,0],[0,0]],[[-hd/2,vd],[0,0]],[[hd/2,vd],[0,0]],[[hd/2,vd],[-hd/2,vd]]]) hull() { //diagonals
|
|
18
|
+ translate(tr[0])circle(d=wall);
|
|
19
|
+ translate(tr[1]) circle(d=wall);
|
|
20
|
+ }
|
|
21
|
+ for (tr=[[hd/2,vd-offset],[-hd/2,vd-offset],[hd,offset],[0,offset]]) translate(tr)circle(d=2*wall+hole); //big circles
|
|
22
|
+ }
|
|
23
|
+ for (tr=[[[-hd/2-offset,0],[0,0]],[[-hd/2-offset,0],[-hd/2-offset,vd]],[[-hd/2-offset,vd],[-hd/2,vd]]]) hull() {//left
|
|
24
|
+ translate(tr[0])circle(d=wall);
|
|
25
|
+ translate(tr[1]) circle(d=wall);
|
|
26
|
+ }
|
|
27
|
+hull() for (tr=[[0,0],[-hd/2-offset,0],[-hd/2-offset,vd],[-hd/2,vd]]) translate(tr) circle(d=wall); //solid triangle
|
|
28
|
+ for (tr=[[[hd*segments+offset,0],[0,0]],[[hd*segments+offset,0],[hd*segments+offset,vd]],[[hd*segments+offset,vd],[hd*(segments-0.5),vd]],[[hd*segments,0],[hd*(segments-0.5),vd]]]) hull() { //right
|
|
29
|
+ translate(tr[0])circle(d=wall);
|
|
30
|
+ translate(tr[1]) circle(d=wall);
|
|
31
|
+ }
|
|
32
|
+ }
|
|
33
|
+ for (i=[0:segments]) {
|
|
34
|
+ translate([i*hd,offset]) circle(d=hole);
|
|
35
|
+ translate([(i-0.5)*hd,vd-offset]) circle(d=hole);
|
|
36
|
+ }
|
|
37
|
+ }
|
|
38
|
+#translate([-hd/2-offset-wall/2,height/4-wall,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
|
|
39
|
+#translate([-hd/2-offset-wall/2,height/2-wall/2,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
|
|
40
|
+#translate([-hd/2-offset-wall/2,height*3/4,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
|
|
41
|
+}
|