// -*- C -*- crewpunch_shape = [[ 6, [0.6, 6.0], [1.6, 12.3] ], [ 8, [1.1, 6.2], [1.9, 12.5] ], [ 10, [1.6, 6.5], [2.1, 12.8] ], [ 12, [1.8, 6.6], [2.3, 12.7] ], [ 14, [2.1, 6.8], [2.6, 13.0] ], [ 16, [2.4, 6.9], [2.7, 13.2] ]]; module CrewPunch(){ hull(){ for(layer=crewpunch_shape){ translate([0,0, layer[0]]){ for(xind=[0,1]) //translate([xind?0:1,0,0]) for(yind=[0,1]) //translate([0,yind?0.5:0,0]) mirror([xind?1:0,0,0]) mirror([0,yind?0:1,0]){ translate([-0.1,-0.1,-0.1]) cube([0.1 + layer[2][xind], 0.1 + layer[1][yind], 0.2]); } } } } } CrewPunch();