-
Notifications
You must be signed in to change notification settings - Fork 0
/
opg_top_plate_epm_cover.scad
123 lines (107 loc) · 4.16 KB
/
opg_top_plate_epm_cover.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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
cam_plate_mount_w = 24;
cam_plate_mount_bw = 45; // Back width
cam_plate_mount_l = 37;
slot_gap = 47.8; // (40-3.1*2) * sqrt(2)
standoff_height = 15;
plate_width = 55+20;
slot_width = 3.2;
plate_thick = 3.5;
outer_hull_thick = 1;
shroud_add = 5;
module standoff(){
difference(){
cylinder(r=4.5,h=standoff_height, $fn=32);
translate([0,0,-1])
cylinder(r=2,h=standoff_height+2, $fn=64);
}
}
module standoffs(){
translate([-cam_plate_mount_l*.5,-cam_plate_mount_w*.5,0])
standoff();
translate([-cam_plate_mount_l*.5,cam_plate_mount_w*.5,0])
standoff();
translate([cam_plate_mount_l*.5,cam_plate_mount_bw*.5,0])
standoff();
translate([cam_plate_mount_l*.5,-cam_plate_mount_bw*.5,0])
standoff();
translate([0,0,plate_thick]){
translate([cam_plate_mount_l*.5,cam_plate_mount_bw*.5,0])
standoff();
translate([cam_plate_mount_l*.5,-cam_plate_mount_bw*.5,0])
standoff();
}
translate([45,0,0]){
translate([cam_plate_mount_l*.5,cam_plate_mount_bw*.5,0])
standoff();
translate([cam_plate_mount_l*.5,-cam_plate_mount_bw*.5,0])
standoff();
}
}
module plate(){
translate([0,0,standoff_height]){
difference(){
union(){
translate([10,0,0])
translate([-21-4+25,-plate_width*.5,0])
cube([93-25-10,plate_width,plate_thick]);
translate([-21-4+30-5+12,0,plate_thick*.5])
cylinder(r=plate_width*.5,h=plate_thick,center=true);
}
union(){
translate([-10+30,-slot_gap*.5-slot_width*.5,-1])
cube([35,slot_width,plate_thick+2]);
translate([-10+30,slot_gap*.5-slot_width*.5,-1])
cube([35,slot_width,plate_thick+2]);
translate([-20,-slot_width*.5,-1])
cube([80,slot_width,plate_thick+2]);
translate([-cam_plate_mount_l*.5,-cam_plate_mount_w*.5,-1])
cylinder(r=2,h=plate_thick+2,$fn=64);
translate([-cam_plate_mount_l*.5,cam_plate_mount_w*.5,-1])
cylinder(r=2,h=plate_thick+2,$fn=64);
translate([cam_plate_mount_l*.5,cam_plate_mount_bw*.5,-1])
cylinder(r=2,h=plate_thick+2,$fn=64);
translate([cam_plate_mount_l*.5,-cam_plate_mount_bw*.5,-1])
cylinder(r=2,h=plate_thick+2,$fn=64);
translate([45,0,0]){
translate([cam_plate_mount_l*.5,cam_plate_mount_bw*.5,-1])
cylinder(r=2,h=plate_thick+2,$fn=64);
translate([cam_plate_mount_l*.5,-cam_plate_mount_bw*.5,-1])
cylinder(r=2,h=plate_thick+2,$fn=64);
}
translate([59,20,-1])
cylinder(r=1.5,h=plate_thick+2,$fn=64);
translate([59,10,-1])
cylinder(r=1.5,h=plate_thick+2,$fn=64);
translate([59,-20,-1])
cylinder(r=1.5,h=plate_thick+2,$fn=64);
translate([59,-10,-1])
cylinder(r=1.5,h=plate_thick+2,$fn=64);
}
}
}
}
module outer_hull(){
translate([12,0,standoff_height*.5-shroud_add*.5])
difference(){
cylinder(r=plate_width*.5,h=standoff_height+shroud_add,center=true);
cylinder(r=plate_width*.5-outer_hull_thick,h=standoff_height+1+shroud_add,center=true);
translate([0,-500,-15])
cube([1000,1000,30]);
}
translate([10,plate_width*.5-outer_hull_thick,-shroud_add])
cube([58,outer_hull_thick,standoff_height+shroud_add]);
translate([10,-plate_width*.5,-shroud_add])
cube([58,outer_hull_thick,standoff_height+shroud_add]);
}
module mouse_ears(){
translate([0,0,standoff_height+plate_thick-0.15]){
translate([68,plate_width*.5,0.3*.5])
cylinder(r=5, h=0.3,center=true);
translate([68,-plate_width*.5,0.3*.5])
cylinder(r=5, h=0.3,center=true);
}
}
standoffs();
plate();
outer_hull();
mouse_ears();