M0UNTAIN 0F C0DE

Kite Repairs 🪁

3D model

Nose

$fn=80;

angle=60; //deg

sparDiameter=4;
nodeHeight=sparDiameter;

module spars() {
    translate([0,0,0]) rotate([90,0,0]) cylinder(d=sparDiameter,h=100);
    rotate([0,0,angle]) translate([2,-4,0]) rotate([90,0,0]) cylinder(d=sparDiameter,h=100);
    rotate([0,0,-angle]) translate([-2,-4,0]) rotate([90,0,0]) cylinder(d=sparDiameter,h=100);
}

%spars();

module body() {
    hull() {
        translate([0,-1,-nodeHeight/2]) scale([1.2,0.8,1]) cylinder(d=14,h=nodeHeight);
        translate([-15,-6.4,0]) rotate([0,0,30]) cube([nodeHeight,nodeHeight,nodeHeight], center=true);
        translate([15,-6.4,0]) rotate([0,0,-30]) cube([nodeHeight,nodeHeight,nodeHeight], center=true);
        translate([0,-10,0]) cube([7,7,nodeHeight], center=true);
    }
}

module roundedBody() {
    minkowski() {
        body();
        sphere(d=2);
    }
}

difference() {
    roundedBody();
    spars();
    translate([0,-8,-20]) scale([1.3,0.6,1]) cylinder(d=6,h=40);
}

Wing Strut

$fn=80;

module spars() {
    translate([-50,0,0]) rotate([0,0,90]) rotate([90,0,0]) cylinder(d=4, h=100);
    translate([0,-3,0]) rotate([90,0,0]) cylinder(d=2.5,h=70);
}

%spars();

module body() {
    hull() {
        cube([20,4.5,4.5], center=true);
        translate([0,-5,0]) cube([4,6,2], center=true);
    }
}

module roundedBody() {
    minkowski() {
        body();
        sphere(d=2);
    }
}

difference() {
    roundedBody();
    spars();
}