]> www.fi.muni.cz Git - things.git/commitdiff
Firewall for Quasar delta RC plane
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 25 Sep 2019 06:12:49 +0000 (08:12 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 25 Sep 2019 06:12:49 +0000 (08:12 +0200)
quasar-firewall.scad [new file with mode: 0644]

diff --git a/quasar-firewall.scad b/quasar-firewall.scad
new file mode 100644 (file)
index 0000000..7e763f1
--- /dev/null
@@ -0,0 +1,67 @@
+eps = 0.01;
+infty = 100;
+
+base_d = 28;
+screw_d1 = 19;
+screw_d2 = 16;
+screw_hole = 3.5;
+base_wall = 1.5;
+wall = base_wall;
+
+center_d = 8 + 0.3;
+
+cable_slot_w = 5;
+cable_slot_h = 3;
+
+foam_horiz = 6 + 0.3;
+foam_vert = 6 + 0.3;
+support_h = 30;
+
+top_d = foam_horiz + 8;
+
+module body() {
+       // base
+       cylinder(r = base_d/2, h = base_wall);
+       intersection() {
+               cylinder(r1 = base_d/2, r2 = top_d/2,
+                        h = support_h + base_wall);
+               union() {
+                       translate([-base_d/2, -foam_horiz/2-wall, base_wall - eps])
+                               cube([base_d, foam_horiz + 2*wall, support_h]);
+                       translate([-foam_vert/2-wall, -base_d/2, base_wall - eps])
+                               cube([foam_vert + 2*wall, base_d, support_h]);
+               }
+       }
+}
+
+module screw_hole() {
+       translate([0, 0, -eps])
+               cylinder(r = screw_hole/2, h = base_wall + 2*eps, $fn = 6);
+       translate([0, 0, base_wall/2])
+               cylinder(r1 = screw_hole/2,
+                       r2 = screw_hole/2 + base_wall/2,
+                       h = base_wall/2+eps, $fn = 6);
+}
+
+difference() {
+       body();
+       // screw holes
+       for (x = [-1, 1]) translate([x*screw_d1/2, 0, 0])
+               screw_hole();
+       for (y = [-1, 1]) translate([0, y*screw_d2/2, 0])
+               screw_hole();
+       // tube hole
+       translate([0, 0, -eps])
+               cylinder(r = center_d/2, h = base_wall + 2*eps);
+       // cable slot
+       rotate([0, 0, 45])
+       translate([-cable_slot_w/2, base_d/2-cable_slot_h, -eps])
+               cube([cable_slot_w, 2*cable_slot_h, infty]);
+       // horizontal foam
+       translate([-base_d/2-eps, -foam_horiz/2, base_wall])
+               cube([base_d + 2*eps, foam_horiz, support_h + eps]);
+       // vertical foam
+       translate([-foam_vert/2, -base_d/2-eps, base_wall])
+               cube([foam_vert, base_d + 2*eps, support_h + eps]);
+}
+