$fn=64; // Parameters tile_width = 100; tile_length = 100; base_thickness = 3; sidewalk_width = 15; curb_height = 2; stripe_width = 4; stripe_length = 24; stripe_height = 0.6; stripe_spacing = 10; union() { // Main solid base for the entire tile cube([tile_width, tile_length, base_thickness]); // Left Sidewalk translate([0, 0, base_thickness]) cube([sidewalk_width, tile_length, curb_height]); // Right Sidewalk translate([tile_width - sidewalk_width, 0, base_thickness]) cube([sidewalk_width, tile_length, curb_height]); // Crosswalk Stripes (Zebra Crossing) centered on the road for (x = [25 : stripe_spacing : 75]) { translate([x - stripe_width/2, tile_length/2 - stripe_length/2, base_thickness]) cube([stripe_width, stripe_length, stripe_height]); } // Road Center Lines (Dashed) // Bottom dash translate([tile_width/2 - (stripe_width/4), 10, base_thickness]) cube([stripe_width/2, 15, stripe_height]); // Top dash translate([tile_width/2 - (stripe_width/4), tile_length - 25, base_thickness]) cube([stripe_width/2, 15, stripe_height]); }