Search models, users, collections, and posts

Parametric Stackable Drawer System

Print Profile(1)

All
P1S
H2S
A1
P1P
H2C
X1
X1E
P2S
H2D Pro
X2D
A2L
X1 Carbon
H2D

0.2mm layer, 2 walls, 15% infill
0.2mm layer, 2 walls, 15% infill
Designer
18.7 h
7 plates

Open in Bambu Studio
Boost
4
13
1
0
2
1
Released 

Description

Content has been automatically translated.
Show original

Stackable Drawer System — Parameter & Print Guide

This guide explains the model and every parameter in the MakerWorld Customizer (or OpenSCAD) and helps you find the right values for a clean, support-free print

 

INFO: On 2026-07-10 I added more inserts to the parametric codebase! 

 

File: CAD/stackable-drawers-parametric.scad · Units: Millimeters (mm)

1. The Model in Brief

A stackable drawer system consisting of three part types:

  • Housing — closed all around, only open at the front; a rail inside. Stackable via a 45° nesting rim
  • Drawer — slides on the rail, decorative front with recessed handle and relief
  • Insert — removable compartment trays that fit into the drawer

Each "level" consists of one housing + one drawer; the levels are stacked

 

Print Orientation (all without supports)

PartPosition on bedWhy support-free
Housingon its back, front opening facing upRail runs vertically, nesting rim is 45°
Drawerflat, opening facing up (bottom of tray on the plate)Open box, front stands vertically — no cantilever
Insertflat, opening facing upOpen tray, no overhangs

The export modes (part) already orient the parts for printing

2. Quick Start — Good Print Settings

For most users, the default values are sufficient. If you only want to change a few things:

  1. Size: Adjust unit_width / unit_depth to your space (Default 120 × 150 mm)
  2. Quantity & Heights: Set drawer_count and h1…h6 (mix shallow + deep drawers)
  3. Appearance: Choose relief_style (Diamonds / Vertical ribs / …)
  4. Print: Export part = Housing / Drawer / Insert with sel = Drawer 1…N, or part = All parts flat → in Bambu Studio "Split to Objects"
  5. Test fit: Print one drawer + its housing once and check the sliding fit before printing the entire tower

Recommended Slicer Settings

PartLayer heightWallsInfillSupports
Housing0.2 mm3–415–20 %none
Drawer0.2 mm315 %none
Insert0.2 mm2–310–15 %none

Material: PLA or PETG. Two-color without AMS = simply print housings and drawers separately in different colors

3. All Parameters in Detail

[What to build] — What is built/exported

ParameterValuesMeaning / Tip
partAssembly / Housing / Drawer / Insert / Print plate / All parts flatAssembly = only preview of the entire tower. For printing, select a single part or All parts flat (all parts separated on one plate → "Split to Objects")
selDrawer 1…6Which drawer size is printed during single export (1 = top)
preview_open0–160 mmPreview only: how far the drawers are shown pulled out
preview_insertsOn/OffPreview only: display inserts too
render_onlyAll / Housings / Drawers / InsertsFor renders only: exports only one material group as STL. For printing, leave as All

[Overall Size] — External Dimensions

ParameterDefaultTip
unit_width120Width of each level. Must fit on the build plate (printed standing = height in print = unit_depth)
unit_depth150Depth = extension path. Attention: in print, this is the build height of the housing/drawer → must fit your Z-height
corner_r4Rounding of the vertical outer edges (0 = sharp)

Build plate size check: Housing/drawer are printed lying on their back. Build height ≈ unit_depth, base area ≈ unit_width × total height of the level. For large unit_depth, check the max print height of your printer

[Drawers] — Quantity & Heights

ParameterDefaultTip
drawer_count3Number of levels (1–6)
uniform_heightIndividualUniform = all drawers have the same height (drawer_clear_h). Individual = individually via h1…h6
drawer_clear_h50Usable height for Uniform
h1 … h635/50/70/…Usable internal height per drawer (top → bottom). Shallow compartments for small parts, deep for larger items

[Shell / Walls] — Wall Thicknesses

ParameterDefaultTip
shell_wall4.0Housing sides/back wall. Min. 4 mm, because the groove uses half the wall (→ ≥ 2 mm remain)
shell_tb2.4Housing top/bottom
drawer_wall2.0Drawer wall. Thin is okay by default (rail_mode 0); only increase to ≥ 4 mm for rail_mode 1
drawer_floor2.0Drawer floor
front_t3.0Thickness of the decorative front plate

[Slide Rail] — Rail/Rib (the Sliding System)

ParameterDefaultTip
rail_modeGroove in housing + rib on drawerSwitchable. Alternative: Rib in housing + groove in drawer. Choose what is more stable for your walls (groove removes material)
rail_h5.0Height of the rail
rail_wall_frac0.5Groove/rib depth as a proportion of the wall (0.5 = half wall → wall is not cut through)
rail_clear0.35Sliding clearance per side. Most important fit value: if it binds → +0.05; too loose → −0.05
rail_backstop3.0How far in front of the back wall the groove ends (insertion stop)
floor_gap1.2Distance of drawer bottom above the housing bottom
side_gap1.0Side clearance drawer ↔ housing wall
top_gap1.2Clearance drawer top edge ↔ housing top
pull_stopOnSmall rounded detent (ball) at the front of the rail: the drawer can be pushed in and gently latches against falling out. Off = no stop (then pay attention yourself to prevent falling out)
pull_stop_h0.4Detent interference (mm) — how far the nose protrudes over the rib. Larger = tighter (harder to pull out); too large = drawer can no longer be pushed in. Range 0.2–0.8

[Stacking] — Stacking

ParameterDefaultTip
stack_lipOnNesting rim: foot at the bottom, pocket at the top → levels self-center when stacking
lip_h3.0Nesting depth
lip_wall3.0How far the rim is recessed from the outer edge
lip_clear0.3Fit of the nesting rim. If stack wobbles → reduce; if it jams → increase
stack_gap0Additional gap between levels. 0 = flush (normal). Only increase for visual separation

[Front & Handle] — Front & Recessed Handle

ParameterDefaultTip
front_gap0.8Gap of the front to the housing opening (per side)
front_r6Corner rounding of the front plate
handle_w_frac0.42Width of the recessed handle (proportion of front width)
handle_h12Depth of the recessed handle from the top. 0 = no recess. More = better grip
front_inner_chamfer545° inner chamfer on the upper inner edge of the front (cosmetic, less sharp edge)

[Front Texture] — Relief/Appearance

ParameterDefaultTip
relief_styleDiamondsNone / Diamonds / Vertical ribs / Horizontal ribs / Dots / Crosshatch
relief_size7Grid/spacing of the pattern (mm)
relief_depth0.9How far the pattern protrudes (mm)

[Inserts] — Inserts (Compartments)

ParameterDefaultTip
ins1 … ins6per drawer0 Open · 1 = 2 compartments L/R · 2 = 3 compartments L/R · 3 = 2×2 grid · 4 = 2 compartments front/back · 5 = 3 compartments front/back
insert_clear0.3Fit insert ↔ drawer (per side). If it jams → increase
insert_wall1.6Wall thickness of the inserts
insert_floor1.6Floor thickness of the inserts
insert_h_ratio1.0Height as a proportion of the drawer's usable height. The height is automatically capped below the recessed handle anyway
insert_open_frontOpen frontOmits the front wall of the insert (the drawer front closes it) → saves material and keeps the recessed handle clear

4. Adjusting Fit Correctly (Troubleshooting)

ProblemCauseSolution
Drawer jams / is stiffSliding clearance too smallrail_clear +0.05 (possibly also side_gap/top_gap +0.2)
Drawer wobbles / too looseSliding clearance too largerail_clear −0.05
Drawer falls outNo/too small stoppull_stop On, increase pull_stop_h (0.5–0.7)
Drawer cannot be pushed inDetent nose too largedecrease pull_stop_h (0.3) or pull_stop Off
Stack wobblesNesting too loosedecrease lip_clear (0.2)
Levels do not fit togetherNesting too tightincrease lip_clear (0.4)
Insert jams in the drawerToo little clearanceincrease insert_clear (0.4)
Recessed handle too tightToo shallow/narrowhandle_h 14–16, handle_w_frac 0.45
Groove cuts through the wallWall too thinshell_wall (or drawer_wall for rail_mode 1) ≥ 4 mm, rail_wall_frac ≤ 0.5

Bambu Tip: If a fit is slightly too tight, the slicer value "X/Y hole compensation" or "Elephant-Foot compensation" often helps instead of changing the model

5. Print Sequence

  1. Test: Print one housing + one drawer, check sliding fit (rail_clear)
  2. For each level, print 1 housing + 1 drawer, plus the desired inserts
  3. Push in the drawer (rib slides into the rail; the rounded detent nose gently clicks in and holds it)
  4. Insert the trays
  5. Stack the housings — the 45° foot centers itself in the pocket of the level below

TIP: For inserts that have no division, only the drawer can be printed without its insert

Happy printing! 🧡

 

✅ Print notes
Designed & tested on Bambu Lab (H2C · P2S · P1S) — works on any FDM printer. 

 

💬 Enjoyed this model?

Boost Me (for free)

Enjoyed this model? ⭐ Boost & like

⭐ Boost & like · ➕ Follow me · 📸 Post a Make · 🗨️ drop a comment — I reply to every one!

🔎 All my models → Free for personal use · please remix & link back instead of re-uploading. 🧡

Comment & Rating (1)

(0/1000)

License

This user content is licensed under a Standard Digital File License.

You shall not share, sub-license, sell, rent, host, transfer, or distribute in any way the digital or 3D printed versions of this object, nor any other derivative work of this object in its digital or physical format (including - but not limited to - remixes of this object, and hosting on other digital platforms). The objects may not be used without permission in any way whatsoever in which you charge money, or collect fees.