-
Notifications
You must be signed in to change notification settings - Fork 0
/
filament-sensor-snapon.scad
75 lines (66 loc) · 1.5 KB
/
filament-sensor-snapon.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
frame_cube=[40.4,6.4,50];
snapon_points=[
// bottom part near frame
[-frame_cube[0]/2,frame_cube[1]/2],[-frame_cube[0]/2,-frame_cube[1]/2],
// click notch slightly up
[-frame_cube[0]/2+1,-frame_cube[1]/2],[-frame_cube[0]/2,-frame_cube[1]/2-2],
// bottom edge
[-25,-frame_cube[1]/2-2],[-25,9],
// back side
[25,9],[25,-9],
// holder notch
[15,-9],[15,-frame_cube[1]/2],[frame_cube[0]/2,-frame_cube[1]/2],
// angled insertion helper
[frame_cube[0]/2,frame_cube[1]/2+1],[15,frame_cube[1]/2]
// insertion
];
extbar_thick = 5.5;
angular_adjust = 3;
extbar_points = [
// go up
[25,-9], [30,-9],
// lean forward
[70,-60], [160, -60],
// back side return
[160, -60+extbar_thick], [70+angular_adjust, -60+extbar_thick],
// return down
[30+angular_adjust,-9+extbar_thick], [25,-9+extbar_thick]
];
module frame()
{
cube(frame_cube,center=true);
}
module mounting_holes_cutter()
{
// [[4.5,-6],[11.5,10]];
offset=[145,-60,0];
holes_pos=[[offset[0]+10,offset[1],offset[2]-10],[offset[0]-10,offset[1],offset[2]+10]];
for(i=[0,1])
translate(holes_pos[i])
rotate([90,0,0])
cylinder(d=3,h=20,$fn=12,center=true);
}
module snapon_clip()
{
linear_extrude(30,center=true)
polygon(points=snapon_points);
}
module snapon_clip_with_holes()
{
difference()
{
union()
{
snapon_clip();
extension_bar();
}
mounting_holes_cutter();
}
}
module extension_bar()
{
linear_extrude(30,center=true)
polygon(points=extbar_points);
}
%frame();
snapon_clip_with_holes();