ef030393 |
1 | matrix_rows = 21; |
2 | matrix_cols = 21; |
8464810c |
3 | module qr(){ |
8464810c |
4 | block_size = 2; |
ef030393 |
5 | max_x_index = matrix_cols - 1; |
6 | max_y_index = matrix_rows - 1; |
7 | fudge = block_size / 1000; |
8464810c |
8 | |
ef030393 |
9 | matrix = |
10 | [[1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1], |
11 | [1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], |
12 | [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1], |
13 | [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1], |
14 | [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1], |
15 | [1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1], |
16 | [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1], |
17 | [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], |
18 | [1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1], |
19 | [1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1], |
20 | [0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1], |
21 | [1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0], |
22 | [0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0], |
23 | [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1], |
24 | [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1], |
25 | [1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1], |
26 | [1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0], |
27 | [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0], |
28 | [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1], |
29 | [1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0], |
30 | [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1]]; |
8464810c |
31 | |
ef030393 |
32 | scale(25/21){ |
33 | for(y = [0 : max_y_index]){ |
34 | for(x = [0 : max_x_index]){ |
35 | if(matrix[y][x] == 1){ |
36 | translate([(x - max_x_index / 2.0) * block_size, |
37 | (y - max_y_index / 2.0) * block_size]){ |
38 | square(block_size + fudge, center = true);}}}}}} |
54f7d496 |
39 | |
8464810c |
40 | module qr_black_flat(){ |
41 | qr();} |
42 | module qr_black(){ |
43 | color("black") |
44 | linear_extrude(height = 2){ |
45 | qr_black_flat();}} |
46 | |
47 | module qr_white_flat(){ |
48 | difference(){ |
49 | square(54, center = true); |
50 | qr();}} |
51 | module qr_white(){ |
52 | color("white") |
53 | linear_extrude(height = 2){ |
54 | qr_white_flat();}} |
ef030393 |
55 | |
56 | qr(); |