$fn = 64; // --- Parametric Dimensions (in mm) --- bin_width = 80; // Total width of the bin bin_depth = 100; // Total depth from front to back bin_height = 60; // Height at the back wall_thickness = 2.5; // Thickness of the walls and base top_flat_depth = 40; // Length of the flat top section before the tilt front_lip_height = 20; // Height of the front wall for easy access module tilted_parts_bin() { difference() { // Main outer solid body cube([bin_width, bin_depth, bin_height]); // Inner hollow cavity // Translated inward by wall thickness, extended out the top for clean cut translate([wall_thickness, wall_thickness, wall_thickness]) cube([ bin_width - (2 * wall_thickness), bin_depth - (2 * wall_thickness), bin_height + 2 ]); // Angled slice to create the tilted open front // Rotated to smoothly connect the top flat section to the front lip translate([-1, top_flat_depth, bin_height]) rotate([-atan2(bin_height - front_lip_height, bin_depth - top_flat_depth), 0, 0]) cube([bin_width + 2, bin_depth * 2, bin_height * 2]); } } // Render the model tilted_parts_bin();