Friday, January 10, 2020

SpaceX Spiral welded tube

Spiral weld stainless 30X into a tube that can be continuously
unrolled from coil, laser edge profiled, welded,
 heat treated, weld forming by a cryo weld planisher, X-ray inspected and cut to length with laser or precision plasma.



{


    //
    for (i = [-1: 0.01: 3])

        color("gray") hull() {
            translate([jsin(10 * i * 360) * 0.1, 0, 0])
            translate([i * 2, min(i, 0) * -12, 0]) rotate([max(i, 0) * 360, 0, 0]) 
translate([0, 0, 2]) cube([2 - 0.1, 0.01, 0.001], center = true);
            j = i + 0.01;
            translate([jsin(10 * j * 360) * 0.1, 0, 0])
            translate([j * 2, min(j, 0) * -12, 0]) rotate([max(j, 0) * 360, 0, 0]) 
translate([0, 0, 2]) cube([2 - .1, 0.01, 0.001], center = true);
        }

    // uncut stainless
    color("gray") translate([-0.17, 1, 0] * 0.22)
    translate([0, 0, 2])
    linear_extrude(0.002)
    polygon([
        [-3, 12],
        [-1, 12],
        [0, 6],
        [-2, 6]
    ]);




    // final rocket trunk
    translate([4, 0, 0]) color([0.6, 0.6, 0.6]) rotate([0, 90, 0])
 linear_extrude(13) difference() {
        $fn = 120;
        circle(2 - 0.001);
        circle(2 - 0.002);
    }
    $fn = 120;

    // laser cutter profile edges
    color([0.4, 0.5, 0.7]) translate([-1.8, 12] * 0.5) translate([0, 0, 2]) 
cube([2.4, 0.5, 1], center = true);

    // coil
    color([0.6, 0.6, 0.6]) translate([-2, 12] * 1.025) translate([0, 0, 1]) 
rotate([0, 0, 7]) rotate([0, 90, 0]) cylinder(2, 1, 1, center = true);


    // xray and heat treat
    color("red") rotate([30, 0, 0]) translate([1, 0, 2]) cube([.5, 0.25, 1], center = true);
    color("orange") rotate([50, 0, 0]) translate([1, 0, 2]) cube([.5, 0.25, 1], center = true);
    color("gold") rotate([60, 0, 0]) translate([1, 0, 2]) cube([.5, 0.25, 1], center = true);
    color("blue") rotate([90, 0, 0]) translate([1, 0, 2]) cube([.5, 0.25, 1], center = true);


    //welder
    color("yellow") rotate([1, 0, 0]) translate([1, 0, 2]) cube([.125, 0.125, 1.5], center = true);
    color([1, .8, .3]) rotate([1, 0, 0]) translate([1, 0, 2]) cube([.4, 0.4, .25], center = true);


}

function jsin(s) =
max(clamp(sin(s + 60) * 3, -0.5, 0.5), clamp(sin(s) * 3, -0.5, 0.5));


function clamp(a, b, c) = min(max(a, min(b, c)), max(b, c));