1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-02-24 09:33:26 +01:00
dotSCAD/examples/maze/stereographic_square_maze.scad
2020-02-16 16:40:43 +08:00

44 lines
1.2 KiB
OpenSCAD

use <stereographic_extrude.scad>;
use <experimental/mz_blocks.scad>;
use <experimental/mz_walls.scad>;
maze_rows = 10;
block_width = 40;
wall_thickness = 20;
fn = 24;
shadow = "YES"; // [YES, NO]
wall_height = 2;
module stereographic_projection_maze2(maze_rows, block_width, wall_thickness, fn, wall_height, shadow) {
blocks = mz_blocks(
[1, 1],
maze_rows, maze_rows
);
walls = mz_walls(blocks, maze_rows, maze_rows, block_width);
length = block_width * maze_rows + wall_thickness;
module maze() {
translate([-block_width * maze_rows / 2, -block_width * maze_rows / 2, 0])
for(wall = walls) {
for(i = [0:len(wall) - 2]) {
hull() {
translate(wall[i]) square(wall_thickness, center = true);
translate(wall[i + 1]) square(wall_thickness, center = true);
}
}
}
}
stereographic_extrude(shadow_side_leng = length, $fn = fn)
maze();
if(shadow == "YES") {
color("black")
linear_extrude(wall_height)
maze();
}
}
stereographic_projection_maze2(maze_rows, block_width, wall_thickness, fn, wall_height, shadow);