3D preview of rounded valet tray
Loading the interactive model…
Interactive 3D model of rounded valet tray

Jigs and fixtures

rounded valet tray

1 views
Bounding box
200 × 150 × 15 mm
Engine
3D Printing B-rep
Parameters
9
Published
November 7, 2026

Download

Free to download and use. See the terms.

The prompt

// Valet tray - 200 x 150 x 15 mm, 3D printable, no supports. Units: mm. // Paste into OpenSCAD (2019.05 or newer), render with F6, then export STL. // Base 5 thick. Walls 5 thick, 10 tall above base. Outer corner radius 12, inner radius 7. // Wall top has a 2.4 radius fillet on both edges. Floor-to-wall fillet is 1. Bottom edge chamfer is 0.6. $fn = 96; L = 200; // outer length (walls included) W = 150; // outer width (walls included) R = 12; // outer corner radius base_t = 5; // base thickness wall_t = 5; // wall thickness wall_h = 10; // wall height above base top top_r = 2.4; // wall-top fillet radius (max is wall_t/2 = 2.5) floor_fillet = 1; // inside floor-to-wall fillet chamfer = 0.6; // bottom outer edge chamfer Rc = R - wall_t/2; // wall centerline corner radius (9.5), gives inner radius 7 cx = L/2 - R; // corner center offsets cy = W/2 - R; e = 0.01; // small overlap so the union is watertight // Wall cross-section: x = across the wall (0 = centerline), y = height above base top module wall2d() { hull() { translate([-wall_t/2, -1]) square([wall_t, 1]); // embedded 1 mm into the base for (s = [-1, 1]) translate([s*(wall_t/2 - top_r), wall_h - top_r]) circle(r = top_r); } } // Concave fillet on the interior side (negative x) where the wall meets the floor module fillet2d() { difference() { translate([-wall_t/2 - floor_fillet, -0.5]) square([floor_fillet + 0.2, floor_fillet + 0.5]); translate([-wall_t/2 - floor_fillet, floor_fillet]) circle(r = floor_fillet); } } module profile(fillet) { if (fillet) fillet2d(); else wall2d(); } module base() { hull() for (sx = [-1, 1], sy = [-1, 1]) translate([sx*cx, sy*cy, 0]) { cylinder(h = chamfer, r1 = R - chamfer, r2 = R); translate([0, 0, chamfer - e]) cylinder(h = base_t - chamfer + e, r = R); } } module ring(fillet = false) { translate([0, 0, base_t]) { // Four rounded corners for (a = [0:3]) { sx = (a == 0 || a == 3) ? 1 : -1; sy = (a < 2) ? 1 : -1; translate([sx*cx, sy*cy, 0]) rotate([0, 0, a*90]) rotate_extrude(angle = 90) translate([Rc, 0]) profile(fillet); } // Four straight sections for (s = [-1, 1]) { translate([0, s*(W/2 - wall_t/2), 0]) scale([1, s, 1]) rotate([90, 0, 90]) linear_extrude(height = 2*cx + 2*e, center = true) profile(fillet); translate([s*(L/2 - wall_t/2), 0, 0]) scale([s, 1, 1]) rotate([90, 0, 0]) linear_extrude(height = 2*cy + 2*e, center = true) profile(fillet); } } } union() { base(); ring(false); // walls ring(true); // inside floor fillet }

Parameters

NameValueRange
Outer length200 mm100 – 300
Outer width150 mm80 – 250
Outer corner radius12 mm6 – 30
Base thickness5 mm2 – 10
Wall thickness5 mm2 – 8
Wall height above base10 mm4 – 30
Wall-top fillet radius2.4 mm0.5 – 4
Inside floor-to-wall fillet radius1 mm0 – 3
Bottom outer edge chamfer0.6 mm0.2 – 2

Every value above is a live dimension. Open a model like this in the editor and each one becomes a slider you can drag before exporting.

rounded valet tray - Free CAD Model (STEP, STL) | TextoCAD