module line (L, w) { translate ([L/2-w/2,0,0]){ cube([L,w,1],center=true); } } module rep1 (L, w){ i = 1; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ line(L,w); translate ([T*(pow(2,i-1)),T*(pow(2,i-1)),0]){ rotate ([0,0,-90]){ line(L,w);} } } } module rep2 (L, w){ j = 2; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep1(L,w); translate ([K*(pow(2,j-1)),K*(pow(2,j-1)),0]){ rotate ([0,0,-90]){ rep1(L,w); } } } } module rep3 (L, w){ i = 2; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep2(L,w); translate ([T*(pow(2,i-1)),T*(pow(2,i-1)),0]){ rotate ([0,0,-90]){ rep2(L,w); } } } } module rep4 (L, w){ j = 3; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep3(L,w); translate ([K*(pow(2,j-1)),K*(pow(2,j-1)),0]){ rotate ([0,0,-90]){ rep3(L,w); } } } } module rep5 (L, w){ i = 3; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep4(L,w); translate ([T*(pow(2,i-1)),T*(pow(2,i-1)),0]){ rotate ([0,0,-90]){ rep4(L,w); } } } } module rep6 (L, w){ j = 4; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep5(L,w); translate ([K*(pow(2,j-1)),K*(pow(2,j-1)),0]){ rotate ([0,0,-90]){ rep5(L,w); } } } } module rep7 (L, w){ i = 4; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep6(L,w); translate ([T*(pow(2,i-1)),T*(pow(2,i-1)),0]){ rotate ([0,0,-90]){ rep6(L,w); } } } } module rep8 (L, w){ j = 5; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep7(L,w); translate ([K*(pow(2,j-1)),K*(pow(2,j-1)),0]){ rotate ([0,0,-90]){ rep7(L,w); } } } } module rep9 (L, w){ i = 5; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep8(L,w); translate ([T*(pow(2,i-1)),T*(pow(2,i-1)),0]){ rotate ([0,0,-90]){ rep8(L,w); } } } } module rep10 (L, w){ j = 6; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep9(L,w); translate ([K*(pow(2,j-1)),K*(pow(2,j-1)),0]){ rotate ([0,0,-90]){ rep9(L,w); } } } } module rep11 (L, w){ i = 6; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep10(L,w); translate ([T*(pow(2,i-1)),T*(pow(2,i-1)),0]){ rotate ([0,0,-90]){ rep10(L,w); } } } } module rep12 (L, w){ j = 7; T = L-w; K = T*sin(45); rotate ([0,0,-45]){ rep11(L,w); translate ([K*(pow(2,j-1)),K*(pow(2,j-1)),0]){ rotate ([0,0,-90]){ rep11(L,w); } } } } //translate ([0,0,0]) { // line (1, .33); //} // //translate ([0,2,0]) { // rep1 (1, .33); //} // //translate ([0,4,0]) { // rep2 (1, .33); //} // //translate ([0,6,0]) { // rep3 (1, .33); //} // //translate ([0,10,0]) { // rep4 (1, .33); //} // //translate ([0,14,0]) { // rep5 (1, .33); //} // //translate ([0,20,0]) { // rep6 (1, .33); //} // //translate ([0,28,0]) { // rep7 (1, .33); //} // //translate ([0,38,0]) { // rep8 (1, .33); //} // //translate ([0,54,0]) { // rep9 (1, .33); //} // //translate ([0,74,0]) { // rep10 (1, .33); //} // //translate ([0,104,0]) { // rep11 (1, .33); //} // //translate ([0,144,0]) { // rep12 (1, .33); //} //rotate ([0,0,45]) { // color("red") // rep9 (1, .33); //} // //rotate ([0,0,135]) { // color("blue") // rep9 (1, .33); //} //rotate ([0,0,-45]) { // color("yellow") // rep9 (1, .33); //} // //rotate ([0,0,-135]) { // color("green") // rep9 (1, .33); //} translate ([5.33,3.66,-.75/2]) cube([19,22,.75],center=true); rotate ([0,0,45]) { color("red") rep9 (1, .33); }