From: Jan "Yenya" Kasprzak Date: Thu, 13 Apr 2017 15:22:08 +0000 (+0200) Subject: Motor holder for Hydrofoam RC plane X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=265140ade3d8a01835743a571313f4ae4a99235e;p=things.git Motor holder for Hydrofoam RC plane --- diff --git a/hydrofoam-motor-holder.scad b/hydrofoam-motor-holder.scad new file mode 100644 index 0000000..ad9c521 --- /dev/null +++ b/hydrofoam-motor-holder.scad @@ -0,0 +1,101 @@ +eps = 0.01; +infty = 300; + +stem_len = 90; +stem_d = 12; +stem_d2 = 2; +stem_x = 12; + +stem_hole_w = 4; +stem_hole_h = 12; + +module stem_profile() { +difference() { + translate([0, 0, stem_d/2]) + hull() { + rotate([0, 90, 0]) + scale([1.5, 1, 1]) + cylinder(r = stem_d/2, h = stem_len, $fn = 64); + rotate([0, 90, 0]) + translate([-stem_x-stem_d2/2, 0, 0]) + cylinder(r = stem_d2/2, h = stem_len, $fn = 16); + } + translate([-infty/2, -infty/2, -infty]) cube(infty); + translate([-eps, -stem_hole_w/2, -eps]) + cube([stem_len + 2*eps, stem_hole_w, stem_hole_h + 2*eps]); +} +} + +motor_d = 28; // unused here, just for reference +motor_screw_dist = 12.5; +motor_screw_d = 3 + 0.5; +motor_screw_head = 5 + 0.5; +motor_center_hole = 8 + 2; +motor_wall = 2.5; +motor_plate_h = 2.5; // base thickness of the motor mount + +module motor_mount_body() { + // make it symmetrical in both axes + for (x = [-1,1]) scale([x, 1, 1]) + for (y = [-1,1]) scale([1, y, 1]) { + hull() { // bottom plate with motor mount + cylinder(r = motor_center_hole/2 + motor_wall, + h = motor_plate_h); + translate([motor_screw_dist/2, motor_screw_dist/2, 0]) + cylinder(r = motor_screw_d/2 + motor_wall, + h = motor_plate_h); + } + } +} + +module motor_mount_square() { + translate([-motor_screw_dist/2-motor_screw_d/2-motor_wall, + -motor_screw_dist/2-motor_screw_d/2-motor_wall, 0]) + cube([motor_screw_dist + motor_screw_d + 2*motor_wall, + motor_screw_dist + motor_screw_d + 2*motor_wall, + motor_plate_h]); +} + +screw_hole_h = 20; +module motor_mount_holes() { + // center hole + translate([0, 0, -eps]) + cylinder(r = motor_center_hole/2, h = 2*motor_plate_h + 2*eps); + // make it symmetrical in both axes + for (x = [-1,1]) scale([x, 1, 1]) + for (y = [-1,1]) scale([1, y, 1]) { + // screw hole + translate([motor_screw_dist/2, motor_screw_dist/2, -eps]) + cylinder(r = motor_screw_d/2, h = screw_hole_h+eps); + // screw head cone + translate([motor_screw_dist/2, motor_screw_dist/2, motor_plate_h - (motor_screw_head - motor_screw_d)/2]) + cylinder(r1 = motor_screw_d/2, r2 = motor_screw_head/2, h = (motor_screw_head - motor_screw_d)/2 + eps); + // screw top (for subtracting from other objects + translate([motor_screw_dist/2, motor_screw_dist/2, motor_plate_h]) + cylinder(r = motor_screw_head/2, h = screw_hole_h - motor_plate_h); + } + // cut the bottom + translate([-infty/2, -infty/2, -infty]) cube(infty); +} + +mount_angle = -110; + +difference() { + union() { + stem_profile(); + translate([stem_len, 0, 0]) + rotate([0, mount_angle, 0]) + translate([motor_screw_dist/2 + motor_screw_d/2 + motor_wall, 0, 0]) + motor_mount_square(); + } + translate([stem_len, 0, 0]) + rotate([0, mount_angle, 0]) + translate([motor_screw_dist/2 + motor_screw_d/2 + motor_wall, 0, 0]) + rotate([0, 0, 90]) // rotate the hexagons + motor_mount_holes($fn = 6); + // cut the bottom of the rotated motor plate + translate([-infty/2, -infty/2, -infty]) cube(infty); + // angled rear end + rotate([0, 45, 0]) + translate([-infty, -infty/2, -infty/2]) cube(infty); +}