/
Cubo.scad
104 lines (91 loc) · 1.89 KB
/
Cubo.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// -----------------
// module cubo
// GPL v2.0
// yvoz.lg@gmail.com
// -----------------
// exemples ----
cubo([10,10,5], [1,2,3,4,5,6,7,8,9,10,11,12], 1.5);
translate([15, 0, 0]){
difference(){
cubo([10,20,5], [2,3], 3);
translate([5,10,-1]) cylinder(r=2, h=7, $fn=12);
}
}
translate([-15, 0, 0]){
difference(){
cube([10,20,15]);
translate([3,3,3]) cubo([10,20,50], [1,5], 3);
}
}
// ------------
module cubo(dim, cro, a){
diago = sqrt(pow(a,2)+pow(a,2));
difference(){
cube(dim);
for(i=cro){
//x
if(i==1){
translate([-1, 0, -diago/2])
rotate([45, 0, 0])
cube([dim.x+2, a, a]);
}
if(i==2){
translate([-1, 0, dim.z-diago/2])
rotate([45, 0, 0])
cube([dim.x+2, a, a]);
}
if(i==3){
translate([-1, dim.y, dim.z-diago/2])
rotate([45, 0, 0])
cube([dim.x+2, a, a]);
}
if(i==4){
translate([-1, dim.y, -diago/2])
rotate([45, 0, 0])
cube([dim.x+2, a, a]);
}
//y
if(i==5){
translate([-diago/2, -1, 0])
rotate([0, 45, 0])
cube([a, dim.y+2, a]);
}
if(i==6){
translate([dim.x-diago/2, -1, 0])
rotate([0, 45, 0])
cube([a, dim.y+2, a]);
}
if(i==7){
translate([dim.x-diago/2, -1, dim.z])
rotate([0, 45, 0])
cube([a, dim.y+2, a]);
}
if(i==8){
translate([-diago/2, -1, dim.z])
rotate([0, 45, 0])
cube([a, dim.y+2, a]);
}
//z
if(i==9){
translate([0, -diago/2, -1])
rotate([0, 0, 45])
cube([a, a, dim.z+2]);
}
if(i==10){
translate([0, dim.y-diago/2, -1])
rotate([0, 0, 45])
cube([a, a, dim.z+2]);
}
if(i==11){
translate([dim.x, dim.y-diago/2, -1])
rotate([0, 0, 45])
cube([a, a, dim.z+2]);
}
if(i==12){
translate([dim.x, -diago/2, -1])
rotate([0, 0, 45])
cube([a, a, dim.z+2]);
}
}
}
}