/
slotted steel.scad
102 lines (69 loc) · 1.6 KB
/
slotted steel.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
include <config.scad>
use <core_utils/complex primitives.scad>
use <core_utils/complex operations.scad>
thick = 1.05;
//angle dimensions
l_leg = 30;
s_leg = 17.5;
//long leg holes
d1 = 7.19;
d2 = 14.38;
d3 = 22.03;
//short leg holes
d4 = 5;
d5 = 7.5;
module slotted_steel_angle(length = 1){
difference(){
intersection(){
rounded_square([l_leg + 2, s_leg + 2, length], cr = 2);
cube([l_leg, s_leg, length]);
}
translate([thick, thick, -1])
rounded_square([l_leg, s_leg, length + 2], cr = 2 - thick);
rotate([90, 0, 0])
_slots(length)
cylinder(h = thick * 3, d = 3.75, center = true);
rotate([90, 0, 90])
_slots(length, s = true)
cylinder(h = thick * 3, d = 3.75, center = true);
}
}
module _slots(length, s = false){
dep = 0;
for(i = [0:(length + 22.5) / 7.5]){
if(!s){
if((i % 4) == 0){
l = 7.5 - 3.75;
translate([l_leg - d2 - l / 2, i * 7.5, 0])
extrude([l, 0, 0])
children();
}else{
l = 5 - 3.75;
translate([l_leg - d1, i * 7.5 - l / 2, 0])
extrude([0, l, 0])
children();
}
if((i % 4) == 2){
l = 20 - 3.75;
translate([l_leg - d2, i * 7.5, 0])
children();
translate([l_leg - d3, i * 7.5 - l / 2, 0])
extrude([0, l, 0])
children();
}
}else{
if(i % 2 == 0){
l = 7.5 - 3.75;
translate([s_leg - d5 - l / 2, i * 7.5, 0])
extrude([l, 0, 0])
children();
}else{
l = 5 - 3.75;
translate([s_leg - d4, i * 7.5 - l / 2, 0])
extrude([0, l, 0])
children();
}
}
}
}
slotted_steel_angle(ft(1));