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);