/ examples / tiles / tiled_line_mobius.scad
tiled_line_mobius.scad
 1  use <experimental/tile_truchet.scad>
 2  use <polyline_join.scad>
 3  use <ptf/ptf_ring.scad>
 4  
 5  size = [20, 100];
 6  line_diameter = 1;
 7  twist = 180;
 8  $fn = 8;
 9  
10  module tiled_line_mobius(size, twist, line_diameter = 1) {
11      lines = concat(
12          [
13              for(tile = tile_truchet(size)) 
14              let(
15  			    x = tile.x,
16  				y = tile.y
17  			)
18              tile[2] <= 1 ? [[x, y], [x + 1, y + 1]] : [[x + 1, y], [x, y + 1]]  
19          ],
20          [
21              for(i = [0:size[1] - 1])
22                  [[0, i], [0, i + 1]]
23          ],
24          [
25              for(i = [0:size[1] - 1])
26                  [[size[0], i], [size[0], i + 1]]
27          ]
28      );
29              
30      half_line_diameter = line_diameter / 2;
31      for(line = lines) {
32          pts = [for(p = line) ptf_ring(size, p, size[0], twist = twist)];
33          polyline_join(pts) sphere(half_line_diameter);
34      }
35  }
36  
37  tiled_line_mobius(size, twist, line_diameter);