end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

OpenSCAD の手習い

module chamfer(){   // 面取り
    cylinder(h=150, r1=2, r2=2, $fn=4);
}
module tile( pos ){ // タイル
    translate( pos ){
        difference() {
            cube([150, 70, 10]);
            translate([  0, 0,10]) rotate([  0,90,0]) chamfer();
            translate([  0,70,10]) rotate([  0,90,0]) chamfer();
            translate([  0, 0,10]) rotate([-90, 0,0]) chamfer();
            translate([150, 0,10]) rotate([-90, 0,0]) chamfer();
        }
    }
}

module tiles(){
    for( col = [0 : 3]){
        for( row = [0 : 20]){
            y = (70+5)  * row;
            x = (150+5) * col - 75 * (row % 2);
            tile( [x,y,0] );
        }
    }
}

module aligned_tiles(){
    difference() { //外形をtrim
        tiles();
        translate([-200, -5,-5]) cube([200, 2000, 20]);
        translate([ 500, -5,-5]) cube([200, 2000, 20]);
    }
}

aligned_tiles();
translate([0,0,-20]) cube([500, 1570, 20]);