Jdi na navigaci předmětu

OpenSCAD: Molekula

OpenSCAD: Molekula

module molecule(ar=2, ac=6, ad=5, tr=0.5) {
    for(x=[0:(ac-1)],y=[0:(ac-1)],z=[0:(ac-1)]) {
        translate([x*ad,y*ad,z*ad]) sphere(ar);
        trc([x*ad,y*ad,0], [0,0,0], ad*(ac-1), tr);
        trc([x*ad,0,z*ad], [-90,0,0], ad*(ac-1), tr);
        trc([0,y*ad,z*ad], [0,90,0], ad*(ac-1), tr);
    }
}

module trc(tv, rc, ch, cr) {
    translate(tv)
            rotate(rc)
                cylinder(h=ch, r=cr);
}

molecule();
module molecule(ar=3, ac=4, ad=8, rr=0.5) {
    for (x = [0:ac-1], y = [0:ac-1], z = [0:ac-1]) {
        translate([x*ad, y*ad, z*ad]) sphere(ar);
    }
    for (i = [0:ac-1], j = [0:ac-1]) {
        trc([i*ad, j*ad, 0], [0,0,0], rr=rr, h=ad*(ac-1));
        trc([0, i*ad, j*ad], [0,90,0], rr=rr, h=ad*(ac-1));
        trc([i*ad, 0, j*ad], [-90,0,0], rr=rr, h=ad*(ac-1));
    }
}

module trc(tra, rot, rr, h) {
    translate(tra)
        rotate(rot)
            cylinder(r=rr, h=h);
}

molecule(ac=2);