Parametric storage trays in OpenSCAD. Three scripts, each for a different use case. Edit values at the top of the file, no sliders.
Set any width and length in mm. No Gridfinity dependency.
- Outer dimensions via
tray_width/tray_length - Gridfinity sizes as commented presets (42mm–252mm)
- Ribbed external wall texture (always rendered; adjust with
rib_*params) - Diagonal hatch texture on the outside bottom face (toggle with
hatch_enable) - Internal columns and rows with golden-ratio width support
- Per-column sinusoidal fin surface
Snaps onto any standard Gridfinity baseplate. The GF socket cannot be disabled.
- Size from
gf_cells_x×gf_cells_y(each cell = 42mm), no free width/length - Magnet pockets at every cell corner, on by default (6.5mm × 2.4mm)
- Optional center screw hole per cell
- Same partition, rib, and fin options as
tray.scad - Hatch cut into the interior floor face (bottom is the GF socket profile)
Upper trays stack into lower ones via a foot skirt that drops into the receiving tray's cavity. Size in Gridfinity grid cells; GF socket optional.
gf_base = true/falseadds the GF socket to the foot bottom face- When GF is off,
stack_depthsets foot height stack_toleranceis the radial gap per side between foot and lower tray (0.20 tight, 0.50 loose)foot_thickcontrols foot wall thickness- Ribbed external wall texture (toggle with
rib_enable) - Same partition, column, and fin layout as
tray.scad - No bottom hatch (foot occupies that face)
| Parameter | Default | Description |
|---|---|---|
wall_height |
40 | Outer wall height in mm |
wall_thick |
3 | Outer wall thickness |
corner_r |
8 | Corner radius |
floor_thick |
2 | Floor slab thickness |
int_wall_height |
30 | Internal wall height above floor |
int_wall_thick |
2 | Internal wall thickness |
col_count |
3 | Number of vertical columns |
col_widths |
[1, 1.618, 1] |
Relative column widths |
col_rows |
[2, 3, 1] |
Horizontal subdivisions per column |
col_fins |
[false, false, true] |
Per-column fin toggle |
fins_enable |
true | Master fin toggle |
fin_orient |
"width" |
Wave direction: "width" or "length" |
fin_wave_amp |
3.0 | Wave amplitude in mm (3–7) |
fin_period |
14 | Wave period in mm |
fin_z_offset |
0 | mm above floor where wave trough starts |
fin_steps |
32 | Wave resolution (reduce for faster preview) |
rib_width |
3.0 | External rib width in mm |
rib_depth |
1.5 | External rib protrusion in mm |
rib_gap |
1.5 | Gap between ribs |
rib_taper |
1.0 | Rib top/bottom width ratio (1 = uniform) |
| Parameter | Default | Description |
|---|---|---|
tray_width / tray_length |
200 | Outer dimensions in mm |
hatch_enable |
true | Bottom hatch texture on/off |
hatch_width |
0.8 | Hatch groove width |
hatch_depth |
0.5 | Hatch groove depth |
hatch_gap |
3.5 | Spacing between grooves |
| Parameter | Default | Description |
|---|---|---|
gf_cells_x |
3–4 | Grid cells in X — width = cells × 42mm |
gf_cells_y |
3–4 | Grid cells in Y — length = cells × 42mm |
gf_magnets |
false / true | Magnet pockets per cell corner |
gf_magnet_od |
6.5 | Magnet hole diameter |
gf_magnet_depth |
2.4 | Magnet hole depth |
gf_center_screw |
false | Center screw hole per cell |
gf_center_screw_od |
3.0 | Screw hole diameter |
| Parameter | Default | Description |
|---|---|---|
gf_base |
true | GF socket on foot bottom face |
stack_depth |
4 | Foot height when gf_base = false |
stack_tolerance |
0.30 | Radial gap per side between foot and lower tray |
foot_thick |
2 | Foot wall thickness |
rib_enable |
false | External rib texture on/off |
Open the script in OpenSCAD and edit parameters at the top. To render all example variants:
bash render.shOutput STL and PNG files go to output/.
OpenSCAD 2021.01 or later.
CC BY-NC-SA 4.0 — see LICENSE
