]> www.fi.muni.cz Git - things.git/commitdiff
FT Scout Landing Gear - alternative layout
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 5 Nov 2017 20:47:20 +0000 (21:47 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 5 Nov 2017 20:47:20 +0000 (21:47 +0100)
ft-scout-landing-gear-support.scad

index 5576c7e0b69608b5c55324345d7dfdb3a99584cf..fe916a356511d52ee605a9c1f3c629c66937f96f 100644 (file)
@@ -7,51 +7,85 @@ gear_l = 25;
 spring_l = 6;
 
 base_w = fuse_w - 10;
-base_l = gear_l + 3;
-base_h = 1;
+base_l = gear_l + 3.5;
+base_h = 0.5;
 base_beam_w = spring_l + 2;
+base_reinf_h = 1;
+base_reinf_w = 1;
+
 rear_spring_l = 3;
 rear_beam_w = rear_spring_l + 3;
+rear_spring_w = 3;
+rear_spring_bot_w = 7;
+rear_slot_w = 0.8;
+
+side_spring_bot_w = 3.5;
+side_spring_w = 1.5;
 
-hook_wall = 1.5;
+hook_wall = 1;
 hook_in = 1.5;
+hook_h = base_h + base_reinf_h/2;
 
-module hook(w) {
-       translate([0, w/2, base_h + hook_in/2])
-       rotate([90, 90, 0])
-       difference() {
-               hull() {
-                       cylinder(r = hook_in/2 + hook_wall/2, h = w, $fn = 6);
-                       translate([hook_in/2, 0, 0])
-                               cube([eps, hook_in/2 + hook_wall, w]);
-               }
-               translate([0, 0, -eps])
-                       cylinder(r = hook_in/2, h = w + 2*eps, $fn = 6);
-               translate([-infty/2, -infty, -infty/2]) cube(infty);
-               translate([hook_in/2 + eps,, -infty/2, -infty/2]) cube(infty);
+module body() {
+       // wide beam
+       hull() {
+               translate([0, -base_w/2, 0])
+                       cube([base_beam_w, base_w, base_h]);
+               translate([base_beam_w/2-base_reinf_w/2, -base_w/2, base_h-eps])
+                       cube([base_reinf_w, base_w, base_reinf_h + eps]);
        }
-}
 
+       // long center beam
+       hull() {
+               translate([base_beam_w/2, -rear_beam_w/2, 0])
+                       cube([base_l - base_beam_w/2, rear_beam_w, base_h]);
+               translate([base_beam_w/2, -base_reinf_w/2, base_h-eps])
+                       cube([base_l - base_beam_w/2, base_reinf_w, base_reinf_h + eps]);
+       }
 
+       // rear hook
+       hull() {
+               translate([gear_l-rear_spring_bot_w/2, -rear_spring_l/2, base_h])
+                       cube([rear_spring_bot_w, rear_spring_l, eps]);
+               translate([gear_l-rear_spring_w/2, -rear_spring_l/2, hook_h+hook_in+hook_wall-eps])
+                       cube([rear_spring_w, rear_spring_l, eps]);
+       }
+               
+       // side hooks
+       for (y = [-1, 1]) scale([1, y, 1]) intersection() {
+               translate([0, gear_w/2, eps]) rotate([0, 0, -20])
+                       translate([-10, 0, 0]) hull() {
+                       cube([20, side_spring_bot_w, base_h-eps]);
+                       cube([20, side_spring_w, hook_h + hook_in + hook_wall-eps]);
+               }
+               // above the beam
+               translate([0, -base_w/2, base_h/2])
+                       cube([base_beam_w, base_w, infty]);
+               // cut the front sides
+               translate([0, gear_w/2 + 0.8, eps])
+               rotate([0, 0, -30])
+                       translate([-5, 0, 0])
+                       cube(20);
+                       
+       }
+}
 
-// wide beam
-translate([0, -base_w/2, 0])
-       cube([base_beam_w, base_w, base_h]);
-// long center beam
-translate([0, -rear_beam_w/2, 0])
-       cube([base_l, rear_beam_w, base_h]);
-
-// rear hook
-translate([gear_l, 0, 0])
-       hook(rear_spring_l);
-// rear front hook
-translate([gear_l - hook_in/2, 0, 0])
-       rotate([0, 0, 180])
-       hook(rear_spring_l);
-
-// side hooks
-for (y = [-1, 1]) scale([1, y, 1])
-       translate([1, gear_w/2, 0])
-       rotate([0, 0, 70])
-               translate([0, -spring_l/2, 0])
-               hook(spring_l);
+difference() {
+       body();
+       // rear hole
+       translate([gear_l, 0, hook_h+hook_in/2])
+       rotate([90, 90, 0])
+       translate([0, 0, -rear_beam_w/2-eps])
+               cylinder(h = rear_beam_w+2*eps, r = hook_in/2, $fn = 6);
+       // rear slot above the hole
+       translate([gear_l-rear_slot_w/2, -rear_beam_w/2+eps, hook_h+hook_in/2])
+               cube([rear_slot_w, rear_beam_w+2*eps, infty]);
+       // side slots
+       for (y = [-1, 1]) scale([1, y, 1]) {
+               translate([0, gear_w/2, hook_h+hook_in/2]) {
+                       rotate([0, 90, -20])
+                       translate([0, 0, -10])
+                       cylinder(r = hook_in/2, h = 20, $fn = 6);
+               }
+       }
+}