board_x = 5; board_y = 5; board_z = 0; board_length = 1000; board_width = 1000; board_height = 12; board_wall_length = 160; board_wall_width = 1000; board_wall_height = 12; //board_wall_heaight = 90; board_wall_j_width = 6; board_wall_j_length = 6; board_wall_j_height = 12; wall_j_width = 6; wall_j_length = 6; wall_j_height = 12; wall_height = 60; kerf = 0.2; cell_size = board_length/10;// it's equal to car width/length(will be fine if car be quadrat) module board(x, y, z, length, width, height) { translate([x, y, z]) color("orange") cube([length , width, height]); } module set_board_nets(x, y, z, length, width, height) { for(i = [board_x + cell_size : cell_size/2 : (board_length)]) { for(j = [board_y + cell_size : cell_size/2 : board_width]){ translate([i, j, 0]) color("red") cube([length, width, height]); } } } module BoardWithNets() { difference() { board(board_x, board_y, board_z, board_wall_length, board_width, board_height); set_board_nets(board_x, board_y, board_z+2, wall_j_width, wall_j_length, wall_j_height); } } module joint(tx, ty) { translate([tx, ty, 0]) color("black") cube([board_height-0.3, board_height * 8, board_height]); } projection(cut = false) { union(){ // joints inner wall difference() { board(board_x, board_y, board_z, board_wall_length, board_width, board_height); for (pos = [1/5, 2/5, 3/5, 4/5]) { offset = board_length * pos - board_height * 4; joint(board_x + board_wall_length/2 - board_height, board_y + offset); } translate([board_x+board_wall_length/8, board_y + board_wall_width/2 - 20, 0]) cube([10, 10, board_height]); translate([board_x+board_wall_length/8, board_y + board_wall_width/2 +10, 0]) cube([10, 10, board_height]); } // Top and Bottom walls combined into one loop for (y_pos = [board_y - board_wall_height, board_y + board_width]) { difference() { // The Wall translate([board_x, y_pos, 0]) color("black") cube([board_wall_length, board_wall_height, board_wall_height]); // The Cuts for (pos = [1/3, 2/3]) { offset_x = board_wall_length * pos - board_height * 2 + board_height / 2; translate([board_x + offset_x, y_pos, 0]) cube([board_height * 2.5, board_height, board_height]); } } } } }