$fn=64; // --- Parametric Dimensions --- stand_height = 250; // Total height of the stand base_width = 320; // Width and depth of the stand at the bottom top_width = 260; // Width and depth of the stand at the top corner_radius = 40; // Radius of the rounded corners wall_thickness = 8; // Thickness of the walls and top surface bowl_hole_dia = 215; // Diameter of the hole for the water bowl // NOTE: For optimal 3D printing without supports, print this model upside-down. module elevated_bowl_stand() { difference() { // Main solid outer body hull() { // Base profile for(x = [-1, 1], y = [-1, 1]) translate([x * (base_width/2 - corner_radius), y * (base_width/2 - corner_radius), 0]) cylinder(r=corner_radius, h=0.1); // Top profile for(x = [-1, 1], y = [-1, 1]) translate([x * (top_width/2 - corner_radius), y * (top_width/2 - corner_radius), stand_height - 0.1]) cylinder(r=corner_radius, h=0.1); } // Inner hollowed section (maintains uniform wall thickness) hull() { // Inner base profile for(x = [-1, 1], y = [-1, 1]) translate([x * (base_width/2 - corner_radius), y * (base_width/2 - corner_radius), -1]) cylinder(r=corner_radius - wall_thickness, h=0.1); // Inner top profile for(x = [-1, 1], y = [-1, 1]) translate([x * (top_width/2 - corner_radius), y * (top_width/2 - corner_radius), stand_height - wall_thickness]) cylinder(r=corner_radius - wall_thickness, h=0.1); } // Cutout for the water bowl translate([0, 0, stand_height - wall_thickness - 1]) cylinder(d=bowl_hole_dia, h=wall_thickness + 2); // Finger lift notches at the bottom edge for easy handling for(angle = [0, 90, 180, 270]) { rotate([0, 0, angle]) translate([0, base_width/2, 0]) scale([2, 1.5, 1]) sphere(r=15); } } } // Render the stand elevated_bowl_stand();