]> www.fi.muni.cz Git - things.git/commitdiff
Quasar parts
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 25 Sep 2019 08:02:54 +0000 (10:02 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 25 Sep 2019 08:03:37 +0000 (10:03 +0200)
quasar-firewall.scad
rc-control-horn-long.scad

index 7e763f1336664f9355684531e5c732fa8325d345..8df1d77a15e4134ae5c7d8db02268cc7ada7ab75 100644 (file)
@@ -13,23 +13,24 @@ 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;
+foam_horiz = 6 + 0.6;
+foam_vert = 6 + 0.6;
+support_h = 50;
 
 top_d = foam_horiz + 8;
+side_w = 40;
 
 module body() {
        // base
        cylinder(r = base_d/2, h = base_wall);
        intersection() {
-               cylinder(r1 = base_d/2, r2 = top_d/2,
+               cylinder(r1 = side_w/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]);
+                       translate([-side_w/2, -foam_horiz/2-wall, 0])
+                               cube([side_w, foam_horiz + 2*wall, support_h]);
+                       translate([-foam_vert/2-wall, -side_w/2, 0])
+                               cube([foam_vert + 2*wall, side_w, support_h]);
                }
        }
 }
@@ -41,27 +42,33 @@ module screw_hole() {
                cylinder(r1 = screw_hole/2,
                        r2 = screw_hole/2 + base_wall/2,
                        h = base_wall/2+eps, $fn = 6);
+       translate([0, 0, base_wall-eps])
+               cylinder(r = screw_hole/2 + base_wall/2, h = 2*base_wall + eps, $fn = 6);
 }
 
 difference() {
        body();
        // screw holes
+       rotate([0, 0, 45]) {
        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]);
+       translate([-side_w/2-eps, -foam_horiz/2, base_wall])
+               cube([side_w + 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]);
+       translate([-foam_vert/2, -side_w/2-eps, base_wall])
+               cube([foam_vert, side_w + 2*eps, support_h + eps]);
 }
 
index 1907fb4f1c582db514d6c11c43b7a5096f6d35ad..8d3f5cd9e3646735608aa83f6024a420628c3df4 100644 (file)
@@ -1,55 +1,70 @@
 eps = 0.01;
 infty = 100;
 
-wall = 1;
+/* Quasar elevons */
+/*
+slot_off_x = 8;
+slot_off_z = 0;
+horn_l = 40;
+slot_depth_front = 6;
+slot_depth_rear = 2.5;
+base_angle = 0;
+top_hole_h = 18;
+*/
 
+/* Quasar rudder */
 slot_off_x = 8;
-slot_off_y = 8;
+slot_off_z = -2.5;
+horn_l = 40;
+slot_depth_front = 8;
+slot_depth_rear = 5;
+base_angle = 0;
+top_hole_h = 18;
 
-slot_l = 30;
-slot_depth_front = 6;
-slot_depth_rear = 2;
+wall = 1;
 
-hole_h = 20;
-hole_d = 1.5;
-hole_step = 1.8*hole_d;
+hole_d = 1.6;
+hole_step = 3;
 n_holes = 3;
 
-base_angle = 8.5;
 
 hole_side = 2*wall;
 
-module horn() {
-       difference() {
+module horn_body() {
+       // slot
+       hull() {
+               translate([slot_off_x, slot_off_z, 0])
+                       cube([eps, slot_depth_front, wall]);
+               translate([horn_l - eps, slot_off_z, 0])
+                       cube([eps, slot_depth_rear, wall]);
+       }
        hull() {
                // base
-               rotate([0, 0, base_angle]) {
-                       translate([slot_off_x, slot_depth_front-eps, 0])
+                       translate([slot_off_x,
+                               slot_depth_front+slot_off_z-eps, 0])
                                cube([eps, eps, wall]);
-                       translate([slot_off_x + slot_l - eps, slot_depth_rear-eps, 0])
+                       translate([horn_l - eps,
+                               slot_depth_rear+slot_off_z-eps, 0])
                                cube([eps, eps, wall]);
-               }
 
-                       for (y = [1:n_holes]) {
-                               translate([0, hole_h -(y-1)*hole_step, 0])
+                       rotate([0, 0, -base_angle]) for (y = [1:n_holes]) {
+                               translate([0, top_hole_h -(y-1)*hole_step, 0])
                                        cylinder(r = hole_d/2 + hole_side,
                                                h = wall, $fn = 6);
                        }
                }
+}
 
-               for (y = [1:n_holes]) {
-                       translate([0, hole_h -(y-1)*hole_step, -eps])
+module horn() {
+       difference() {
+               horn_body();
+               // holes
+               rotate([0, 0, -base_angle]) for (y = [1:n_holes]) {
+                       translate([0, top_hole_h -(y-1)*hole_step, -eps])
                                cylinder(r = hole_d/2, h = wall + 2*eps, $fn = 6);
                }
        }
 
-       // slot
-       rotate([0, 0, base_angle]) hull() {
-               translate([slot_off_x, 0, 0])
-                       cube([eps, slot_depth_front, wall]);
-               translate([slot_off_x + slot_l - eps, 0, 0])
-                       cube([eps, slot_depth_rear, wall]);
-       }
 }
 
 horn();