-
Notifications
You must be signed in to change notification settings - Fork 22
/
lockpin.scad
52 lines (42 loc) · 1002 Bytes
/
lockpin.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
W=64;
W2=100;
H=90;
T=1.5;
B=4;
Q=7;
H1=7;
HR=12;
for(x=[-5,5]) {
translate([x,0,0])
rotate([0,180,0])
lockbar();
}
module lockbar() {
difference() {
translate([-H1/2-0.1,0,H1/2+0.2]) {
scale([H1/2,W2,H1/2])
rotate([-90,0,0])
triangle();
}
translate([0,0,1.5*H1/4])
cube_center([200,200,H1/4]);
translate([0,0,0])
cube_center([200,200,H1/8]);
}
}
module cube_center(dims,r=0) {
if(r==0) {
translate([-dims[0]/2, -dims[1]/2, 0])
cube(dims);
} else {
minkowski() {
translate([-dims[0]/2+r, -dims[1]/2+r, 0])
cube([dims[0]-2*r,dims[1]-2*r,dims[2]]);
cylinder(r=r,h=0.00001,$fn=32);
}
}
}
module triangle() {
linear_extrude(height = 1, center = true, convexity = 10, twist = 0)
polygon(points=[[0,0],[1,0],[0,1]]);
}