]> www.fi.muni.cz Git - things.git/blobdiff - rc-plane-wheel.scad
FT Scout Landing Gear - alternative layout
[things.git] / rc-plane-wheel.scad
index 869ca1b31aa90b850e5ce6058e9697b958d83c9f..b5d70f66b22e53f1420931aacaa396ec1a1744b4 100644 (file)
@@ -1,43 +1,57 @@
 infty = 100;
 eps = 0.01;
 
-wheel_d = 60;
-wheel_h = 4;
-wheel_thick = 1;
+wheel_d = 50;
+wheel_h = 3;
+wheel_d1 = wheel_d + wheel_h/2;
+wheel_thick_outer = 0.5;
+wheel_thick_inner = 1.5;
+wheel_rim = 3.5;
+
+min_wall = 0.5;
 
 spokes = 5;
-spoke_w =  5;
-spoke_h = 3;
+spoke_w =  3.5;
+spoke_h = 1.5;
 
-center_d = 8;
-center_hole = 3;
+center_d = 5;
+center_hole = 1;
+center_h = 8;
 
 module body() {
        // rim
        difference() {
-               cylinder(r = wheel_d/2, h = wheel_h, $fn = 128);
+               hull() {
+                       cylinder(r = wheel_d/2, h = wheel_h, $fn = 128);
+                       translate([0, 0, wheel_h/2-eps])
+                               cylinder(r = wheel_d1/2, h = 2*eps, $fn = 128);
+               }
+               translate([0,0,min_wall-eps])
+                       cylinder(r1 = wheel_d/2 - wheel_thick_inner,
+                               r2 = wheel_d/2 - wheel_thick_outer,
+                               h = wheel_h - min_wall+ 2*eps);
                translate([0,0,-eps])
-                       cylinder(r = wheel_d/2 - wheel_thick, h = wheel_h + 2*eps);
+                       cylinder(r = wheel_d/2 - wheel_rim,
+                               h = min_wall+2*eps);
        }
 
        // spokes
        for (a = [0:360/spokes:360-eps]) {
                rotate([0, 0, a])
-               translate([2, 0, 0])
                hull() {
                        translate([-spoke_w/2, 0, 0])
-                               cube([spoke_w, wheel_d/2 - wheel_thick/2, eps]);
-                       translate([-eps/2, 0, spoke_h-eps])
-                               cube([eps, wheel_d/2 - wheel_thick/2, eps]);
+                               cube([spoke_w, wheel_d/2 - min_wall/2, min_wall]);
+                       translate([-min_wall/2, 0, spoke_h-eps])
+                               cube([min_wall, wheel_d/2 - min_wall/2, eps]);
                }
        }
 
-       cylinder(r = center_d/2, h = wheel_h);
+       cylinder(r1 = center_d/2, r2 = center_hole/2 + 2*min_wall, h = center_h);
 }
 
 difference() {
        body();
        // center hole
        translate([0, 0, -eps])
-               cylinder(r = center_hole/2, h = wheel_h + 2*eps);
+               cylinder(r = center_hole/2, h = center_h + 2*eps);
 }