From: Jan "Yenya" Kasprzak Date: Wed, 25 Sep 2019 08:02:54 +0000 (+0200) Subject: Quasar parts X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=07258db23a917b59ca5410ba66d8c4f029359e21;p=things.git Quasar parts --- diff --git a/quasar-firewall.scad b/quasar-firewall.scad index 7e763f1..8df1d77 100644 --- a/quasar-firewall.scad +++ b/quasar-firewall.scad @@ -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]); } diff --git a/rc-control-horn-long.scad b/rc-control-horn-long.scad index 1907fb4..8d3f5cd 100644 --- a/rc-control-horn-long.scad +++ b/rc-control-horn-long.scad @@ -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();